MyNixOS website logo
Description

Haskell wrapper for Pikchr, a PIC-like markup language for diagrams.

Please see the README on GitHub at https://github.com/ad-si/Hikchr#readme

Hikchr

Hikchr is a Haskell wrapper for Pikchr, a PIC-like markup language for diagrams.

Library

Install by adding hikchr to your *.cabal file and use the hikchr functions to convert Pikchr scripts to SVG:

import Hikchr

main :: IO ()
main = do
  let pikchrScript = """
        arrow right 200% "Markdown" "Source"
        box rad 10px "Markdown" "Formatter" "(markdown.c)" fit
        arrow right 200% "HTML+SVG" "Output"
        arrow <-> down 70% from last box.s
        box same "Pikchr" "Formatter" "(pikchr.c)" fit
      """

  svgResult <- hikchrCustom
      ( HikchrConfig
          { svgClass = Just "example"
          , darkMode = False
          , width = Nothing
          , height = Nothing
          }
      )
      pikchrScript

  -- Without configuration:
  -- svgResult <- hikchr pikchrScript

  case svgResult of
    Left err -> putErrText err
    Right svg -> writeFile "example.svg" svg

will generate following SVG:

CLI

Install by running cabal install hikchr or stack install hikchr and use the hikchr command like this:

hikchr graph.pikchr > graph.svg

echo "box \"Hello\"" | hikchr > hello.svg

hikchr --dark-mode graph.pikchr > graph-dark.svg

hikchr --class graph graph.pikchr > graph.svg

hikchr example1.pikchr example2.pikchr \
| cat "<html><body>" - "</body></html>" \
> example.html
Metadata

Version

0.2.0.0

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows