Repository is archived
No release in over 3 years
Low commit activity in last 3 years
This kramdown plugin uses Tablerize to convert YAML tables in Markdown to HTML.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 1.2.0, ~> 1.2
>= 1.0.0, ~> 1.0
 Project Readme

kramdown-tablerize

Build Status

gem install kramdown-tablerize

A kramdown plugin to convert YAML to HTML tables inside Markdown, using Tablerize.

Usage

In Ruby...

require 'kramdown-tablerize'

Kramdown::Document.new(content, input: 'KramdownYamlTablerize').to_html

...and in Markdown

## Surveillance conducted pursuant to Titles I, III, IV and VII of FISA

--- table ---

    class: [statistics-table, nsa-surveillance-details]

    cols:
    - name: authority
    - name: num_orders
    - name: num_targets

    data:
    - class: table-header
      authority: Legal Authority
      num_orders: Annual Number of Orders
      num_targets: Estimated Number of Targets Affected
    - authority: |
                  __FISA Orders__
                  Based on probable cause
                  (Title I and III of FISA, Sections 703 and 704 of FISA)
      num_orders: "1,167 orders"
      num_targets: "1,144"
    - authority: |
                  __Section 702__
                  of FISA
      num_orders: "1 order"
      num_targets: "89,138"
    - authority: |
                  __FISA Pen Register/Trap and Trace__
                  (Title IV of FISA)
      num_orders: "131 orders"
      num_targets: "319"

--- /table ---

wow such surveillance

Tips

  • In YAML, leading indent doesn't matter, so you might want to indent everything (as shown above) so that it renders as a code block in naive Markdown implementations.

  • You currently can't nest --- table ------ /table --- blocks (the parser doesn't keep track of nesting levels). However, you can nest tables within each other within the YAML itself:

    --- table ---
    
        cols:
        - name: 1
        - name: 2
        data:
        - 1: cell 1,1
          2: cell 1,2
        - 1: cell 2,1
          2:
            cols:
            - name: a
            - name: b
            data:
            - a: "wow it's"
            - b: a nested table
    
    --- /table ---

Wish List

  • Support using custom delimiters for the start and end of the YAML. Find a custom delimiter that plays nicely with kramdown and markdown, i.e. one that renders the best when the plugin is not enabled. It should ideally also be easy for text editors to target in case anyone wants to make a syntax highlighter for it (which should involve little more than marking off a region of Markdown as YAML).

  • Allow outputting to Markdown, for GitHub and other sites that don't allow HTML in Markdown.

  • Improve interactive error handling, including outputting on which line of kramdown source the error occurred. Possibly also do some pre-emptive error checking for less confusion down the line.

  • After the delimiters are finalized, add support to syntax-highlight YAML inside Markdown.

Credit

The structure of rfc1459/kramdown-gist was used as a guideline for making this library.

kramdown-tablerize was originally designed and written by @szhu at @IFTTT.