[!IMPORTANT]
‼️ Announcing the thi.ng user survey 2024 📋
Please participate in the survey here!
(open until end of February)
To achieve a better sample size, I'd highly appreciate if you could
circulate the link to this survey in your own networks.
Discussion
[!NOTE]
This is one of 189 standalone projects, maintained as part
of the @thi.ng/umbrella monorepo
and anti-framework.
🚀 Help me to work full-time on these projects by sponsoring me on
GitHub. Thank you! ❤️
About
Various (~100) string formatting, word wrapping & utility functions, some
higher-order, some memoized.
Partially based on Clojure version of thi.ng/strf.
General
defFormat
/ format
interpolate
/ interpolateKeys
escape
/ unescape
join
/ splice
/ split
repeat
stringify
Numeric formatters
currency
/ chf
/ eur
/ gpb
/ usd
/ yen
radix
int
/ intLocale
float
/ floatFixedWidth
maybeParseFloat
/ maybeParseInt
percent
uuid
vector
B8
/ B16
/ B32
- fixed size binary formattersU8
/ U16
/ U24
/ U32
/ U64
- fixed size hex formattersZ2
/ Z3
/ Z4
- fixed sized zero padded number formatters
Casing
lower
/ upper
/ capitalize
camel
/ kebab
/ snake
/ upperSnake
Slugify
ANSI
isAnsi
/ isAnsiEnd
/ isAnsiStart
stripAnsi
lengthAnsi
Word wrapping
wordWrap
/ wordWrapLine
/ wordWrapLines
SPLIT_PLAIN
/ SPLIT_ANSI
Padding / wrapping
center
padLeft
/ padRight
truncate
/ truncateLeft
/ truncateRight
trim
wrap
Indentation
spacesToTabs
/ spacesToTabsLine
tabsToSpaces
/ tabsToSpacesLine
Char range presets / lookup tables
charRange
ALPHA
/ ALPHA_NUM
/ DIGITS
/ LOWER
/ UPPER
/ HEX
BOM
/ ESCAPES
/ ESCAPES_REV
WS
/ PUNCTUATION
Units
units
bits
/ bytes
grams
meters
seconds
ruler
/ grid
Miscellaneous
Status
STABLE - used in production
Search or submit any issues for this package
Installation
yarn add @thi.ng/strings
ES module import:
<script type="module" src="https://cdn.skypack.dev/@thi.ng/strings"></script>
Skypack documentation
For Node.js REPL:
const strings = await import("@thi.ng/strings");
Package sizes (brotli'd, pre-treeshake): ESM: 5.44 KB
Dependencies
Usage examples
Several projects in this repo's
/examples
directory are using this package:
Screenshot | Description | Live demo | Source |
---|
| ASCII art raymarching with thi.ng/shader-ast & thi.ng/text-canvas | Demo | Source |
| Large ASCII font text generator using @thi.ng/rdom | Demo | Source |
| Basic crypto-currency candle chart with multiple moving averages plots | Demo | Source |
| Basic SPA example with atom-based UI router | Demo | Source |
| Mastodon API feed reader with support for different media types, fullscreen media modal, HTML rewriting | Demo | Source |
| Procedural stochastic text generation via custom DSL, parse grammar & AST transformation | Demo | Source |
| Generative audio synth offline renderer and WAV file export | Demo | Source |
| rstream based spreadsheet w/ S-expression formula DSL | Demo | Source |
| XML/HTML/SVG to hiccup/JS conversion | Demo | Source |
API
Generated API docs
Basic usage examples
const fmt = defFormat([
"Price: ",
{ usd: "$", gbp: "£", eur: "€" },
float(2),
" (",
percent(2),
" off)"
]);
fmt("usd", 1.2345, 0.5);
fmt("eur", 1.2345, 0.25)
Authors
If this project contributes to an academic publication, please cite it as:
@misc{thing-strings,
title = "@thi.ng/strings",
author = "Karsten Schmidt",
note = "https://thi.ng/strings",
year = 2015
}
License
© 2015 - 2024 Karsten Schmidt // Apache License 2.0