MD::Noko: in goes Markdown, out comes Nokogiri
Synopsis
require 'md-noko'
mdnk = MD::Noko.new
doc = mdnk.ingest File.open('lolwut.md')
# or
doc = mdnk.ingest <<EOT
# Hi
Markdown here!

EOT
# doc is a Nokogiri::XML::DocumentDescription
This is a simple module that encapsulates a set of desirable
manipulations to the (X)HTML output
of Redcarpet. It exposes
(for now) a single method, ingest, which returns a Nokogiri::XML::Document, for further manipulation. In particular, this module:
- Adds HTML preamble to produce a valid document,
- Creates a
<base href=""/>element which you can pass a URL, - Creates a hierarchy of
<section>elements and places headings and content inside, - If the document contains exactly one
<h1>which is the very first thing in the file, it is copied into the<title>, and removed from the document body if determined to be redundant (i.e. unless it contains markup elements and not strictly text), - A
<blockquote>element containing exactly one nested<blockquote>element is converted into a single<aside role="note">, - Images on their own paragraph are transformed into a
<figure>, - Text nodes not descendants of
<pre>are whitespace-normalized and indentation is repaired.
The embedded Redcarpet::Markdown instance has the following flags set:
:tables:fenced_code_blocks:quote:highlight
These are currently not exposed.
Installation
The usual:
$ gem install md-noko
Or, download it off rubygems.org.
Contributing
Bug reports and pull requests are welcome at the GitHub repository.
Copyright & License
©2018 Dorian Taylor
This software is provided under the Apache License, 2.0.