8000 GitHub - gettalong/versadok: Versatile document creation markup and library
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

gettalong/versadok

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VersaDok

VersaDok is a lightweight markup language. Its design is mainly based on kramdown, a Markdown-superset, and on Djot, with further influence from AsciiDoc and reStructuredText.

The goal of VersaDok is to create a markup language that is easy to write, read and reason about. It should be fully-featured and not tied to a particular output format. By being Markdown-like many people will already be familiar with the general syntax.

Current State

VersaDok can be considered alpha software at the moment. The things that are implemented are thoroughly tested (100% branch coverage) and the API is documented, though general documentation is not available.

The syntax of the language is not yet finalized and may change. Some syntax elements like definition lists are still missing.

Suggestions and feedback are welcome and best reported via the issue tracker.

Syntax cheat sheet

The full syntax documentation can be found in website/syntax.page.

Block elements

  • Paragraph

    This is just some text that gets
    transformed into a paragraph.
    
  • Header

    # Headers like in Markdown
    but also lazy wrapped
    
  • Blockquote

    > Blockquotes are created like
    in Markdown.
    
  • Ordered and unordered list

    1. This is an
    2. Ordered list.
    
    * While this list
    * has no ordering
    
  • Code block

    ~~~
    Code blocks are put between lines of
    tilde characters.
    ~~~
    
  • General block

    <<< .information
    A general block is just a container for
    block elements. It can contain an attribute
    list on the starting line.
    >>>
    
  • Block extension

    ::extension: key=value #id
      A named block extension allows extending the functionality.
      The indented content can either be parsed as block elements
      or by the extension itself.
    
  • Reference link definition

    [linkdef]: http://example.com
    
  • Attribute list

    {#id .class key=value}
    The attribute list can be used to assign attributes to any
    block element.
    

Inline elements

  • Strong

    This a *strong* suggestion.
    
  • Emphasis

    The _emphasis_ is on the first letter.
    
  • Superscript

    This goes ^high^ up into the air.
    
  • Subscript

    Who said something ~down~ deep?
    
  • Verbatim

    Some things are taken `as is`.
    
  • Link

    We can [link](https://example.com) everything.
    And [to][def] everything.
    
    [def]: https://example.com
    
  • Autolink

    It's easier to write <https://example.com> than
    to write it as a normal link.
    
  • Image

    Embedding ![images](images.png) was never easier.
    
  • Inline attribute list

    As with block elements, inline elements
    like *this*{.class} can be assigned attributes.
    
  • Span

    The [span]{.highlight} element can be used to mark up
    any part of the text and assign attributes.
    
  • Line break

    As with Markdown, normal line breaks are treated
    as soft line breaks. A hard line break needs a \
    backslash before the line separator.
    
  • Inline extension

    An :inline: extension can be used like a block extension
    to :extend:[the functionality]. It can consist of just
    the name but also has parts for content and :data:(data)
    which may be :combined:[like this](data here).
    

License

MIT - see the LICENSE file for licensing details.

About

Versatile document creation markup and library

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published

Languages

0