@hackage nowdoc0.1.1.0
Here document without variable expansion like PHP Nowdoc
Categories
License
BSD-3-Clause
Maintainer
PAF01143@nifty.ne.jp
Links
Versions
Installation
Dependencies (3)
- base >=4.8 && <5
- bytestring
- template-haskell Show all…
Dependents (4)
@hackage/acme-everything, @hackage/shaderc, @hackage/gpu-vulkan-core, @hackage/language-spir-v
nowdoc
Package nowdoc contain 3 QuasiQuotes.
- nowdoc: Simplest here document with only two transformation.
- txtfile: It incerts text file contents as string.
- binfile: It incerts binary file contents as string.
QuasiQuoter nowdoc
Simplest here document. Only two transformation.
- remove head newline if exist
- remove one space from '|', space, space, ..., ']'
short examples
hello = [nowdoc|
abc
def
ghi
|]
is
hello = "abc\ndef\nghi\n"
,
hello = [nowdoc|hello|]
is
hello = "hello"
and
hello = [nowdoc|
hello | ]
world | ]
! | ]
|]
is
hello = "hello |]\nworld| ]\n! | ]"
run perl
{-# LANGUAGE QuasiQuotes #-}
import System.Process
import Text.Nowdoc
main :: IO ()
main = () <$ rawSystem "perl" ["-e", [nowdoc|
use strict;
use warnings;
my $hello = "Hello, world!\n";
print $hello;
|]]
ASCII art
{-# LANGUAGE QuasiQuotes #-}
import Text.Nowdoc
main :: IO ()
main = putStr [nowdoc|
______
.d$$$******$$$$c.
.d$P" "$$c
$$$$$. .$$$*$.
.$$ 4$L*$$. .$$Pd$ '$b
$F *$. "$$e.e$$" 4$F ^$b
d$ $$ z$$$e $$ '$.
$P `$L$$P` `"$$d$" $$
$$ e$$F 4$$b. $$
$b .$$" $$ .$$ "4$b. $$
$$e$P" $b d$` "$$c$F
'$P$$$$$$$$$$$$$$$$$$$$$$$$$$
"$c. 4$. $$ .$$
^$$. $$ d$" d$P
"$$c. `$b$F .d$P"
`4$$$c.$$$..e$$P"
`^^^^^^^`
|]
QuasiQuoter txtfile
It incerts file contents as string without transformation. It read file as text file (with default encoding on your system).
main :: IO ()
main = putStr [txtfile|foo.txt|]
QuasiQuoter binfile
It incerts file contents as string without transformation. It read file as binary file.
main :: IO ()
main = print [binfile|foo.dat|]