nowdoc: Here document without variable expansion like PHP Nowdoc

[ bsd3, library, text ] [ Propose Tags ]

Please see the README on GitHub at https://github.com/YoshikuniJujo/nowdoc#readme


[Skip to Readme]
Versions [faq] 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.1.0.4, 0.1.1.0
Change log ChangeLog.md
Dependencies base (>=4.8 && <5), bytestring, template-haskell [details]
License BSD-3-Clause
Copyright 2018 Yoshikuni Jujo
Author Yoshikuni Jujo
Maintainer PAF01143@nifty.ne.jp
Revised Revision 1 made by HerbertValerioRiedel at Mon Oct 1 16:24:20 UTC 2018
Category Text
Home page https://github.com/YoshikuniJujo/nowdoc#readme
Bug tracker https://github.com/YoshikuniJujo/nowdoc/issues
Source repo head: git clone https://github.com/YoshikuniJujo/nowdoc
Uploaded by YoshikuniJujo at Thu Sep 6 06:14:24 UTC 2018
Distributions LTSHaskell:0.1.1.0, NixOS:0.1.1.0, Stackage:0.1.1.0
Downloads 785 total (43 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2018-09-06 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for nowdoc-0.1.1.0

[back to package description]

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|]