Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

Latest commit

 

History

History
55 lines (40 loc) · 1.55 KB

README.md

File metadata and controls

55 lines (40 loc) · 1.55 KB

vimwiki

This crate represents the language definition and parsing support for the vimwiki language. This has been broken out to be a shareable crate for others to build on top of the vimwiki language and write their own tooling.

Usage

Add this to your Cargo.toml:

[dependencies]
vimwiki = "0.1"

Examples

use vimwiki::{Language, elements::*};

// Load some language as a string
let language = Language::from_vimwiki_str(r#"
= My Header =
///
Some paragraph with *decorations* and [[links]] that you would normally
see in a vimwiki file.
"#);

// Parse the input as a page using vimwiki format
let page: Page = language.parse().unwrap();

Features

By default, no features are enable, but the following are offered:

  • html: If specified, builds in support to convert vimwiki elements to html.
  • macros: If specified, pulls in vimwiki_macros to expose top-level macro functions to parse and produce vimwiki elements at compile-time.
  • timekeeper: If specified, all parser logic runs through a statically-allocated HashMap that logs the time taken to parse various elements and can print out results in a human-readable format. This is predominately useful for performance optimizations internally.

License

This project is licensed under either of

Apache License, Version 2.0, (LICENSE-APACHE or apache-license) MIT license (LICENSE-MIT or mit-license) at your option.