ltext alternatives and similar packages
Based on the "Filesystem" category.
Alternatively, view ltext alternatives based on common mentions on social networks and blogs.
-
partly
A Haskell library and command-line tool to create, inspect, and alter master boot records. -
bogocopy
Copies a directory tree, preserving permissions and modification times, but making zero-size sparse copies of big files.
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ltext or a related project?
Popular Comparisons
README
λtext
General-Purpose Templating Utility
Overview
λtext turns text files into higher-order functions, featuring a Hindley-Milner / prenex polymorphic type system. See the github.io page.
Building
$> git clone [email protected]/ltext/ltext
$> cd ltext
$> stack install ltext
This should install in one pass; all the non-stackage dependencies are included
in stack.yaml
.
Usage
$> ltext --help
λtext - parameterized file evaluator
Usage: ltext EXPRESSION [--version] [-t|--type] [-v|--verbose] [-r|--raw FILE]
[--left LEFT] [--right RIGHT]
Evaluate EXPRESSION and send the substitution to stdout. See
http://ltext.github.io/ for more details.
Available options:
-h,--help Show this help text
--version Print the version number
-t,--type Perform type inference on an expression
-v,--verbose Be verbose, sending info through stderr
-r,--raw FILE Treat these files as plaintext without an arity
header
--left LEFT The left delimiter to use for rendering partially
applied files
--right RIGHT The right delimiter to use for rendering partially
applied files
$> ltext --type "\a -> a"
a0 -> a0
How It Works
From λtext's point of view, any text file can be a template (given that
it's utf-8 encoded). Just declare parameters in the first line of
your files (usually in a different syntax than the file's native tongue,
via comments or obscure delimiters), then use those variables somewhere in
the content. With the ltext
command you can then apply the function-y
files to each other.
The CLI
There will be two primary uses of the ltext
command - evaluating template
expressions, and querying for the type signature of a template/expression.
Type Queries
Just like the :t
command in GHCi, you can find out the type of a template or
expression with -t
.
Expression Evaluation
All files have closed scope, meaning they only have access to the variables declared in the file. For instance:
{{ foo }}
...
Will only have access to the variable foo
, while using the delimiters {{
and }}
to escape your expression.
Variable Recognition
When we use a parameter in a file, we need it to be easily recognized by a parser; a different syntax than to the language you're working with.
The first line in a file will be parsed to see if it qualifies as a
lambda header. If you don't want a file have recognized arity, just invoke ltext
with the --raw
argument listing the file:
$> ltext "foo bar" --raw "bar"
Credits
All credits go to Martin Grabmueller's AlgorithmW package for the type inference algorithm used in λtext.