Skip to content

kivikakk/koino

Repository files navigation

Build status Spec Status: 671/671

Zig port of Comrak. Maintains 100% spec-compatibility with GitHub Flavored Markdown.

Getting started

Using koino as a library

  • Add koino via the zig package manager:

    $ zig fetch --save https://github.com/kivikakk/koino/archive/<commit hash>.tar.gz
  • Add the following to your build.zig's build function:

    const koino_pkg = b.dependency("koino", .{ .optimize = optimize, .target = target });
    exe.root_module.addImport("koino", koino_pkg.module("koino"));
  • Have a look at the bottom of parser.zig to see some test usage.

Using it as a CLI executable

  • Clone this repository:
    $ git clone https://github.com/kivikakk/koino
  • Build
    $ zig build
  • Use ./zig-out/bin/koino

Development

There's a flake.nix for building or getting a devShell if you're so-inclined.

  • Clone this repository (with submodules for the cmark-gfm dependency):

    $ git clone --recurse-submodules https://github.com/kivikakk/koino
    $ cd koino
  • Build and run the spec suite.

    $ zig build test
    $ make spec

Usage

Command line:

$ koino --help
Usage: koino [-hu] [-e <str>...] [--header-anchors] [--smart] <str>

Options:
    -h, --help
            Display this help and exit

    -u, --unsafe
            Render raw HTML and dangerous URLs

    -e, --extension <str>...
            Enable an extension (table,strikethrough,autolink,tagfilter)

        --header-anchors
            Generate anchors for headers

        --smart
            Use smart punctuation

    <str>

Library:

Documentation is TODO — see LoLa for an example of use. Note also the build.zig declaration.

About

CommonMark + GFM compatible Markdown parser and renderer

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors 8

Languages