Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

rla/prolog-markdown

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prolog-markdown

Markdown parser implemented in Prolog. Compatible with SWI-Prolog as the output tree is for direct use by html//1. The specification for the parser was taken from http://daringfireball.net/projects/markdown/syntax (Gruber's Markdown).

Build Status

Example usage

Parse into a structure usable by html//1.

:- use_module(library(md/md_parse)).

?- md_parse_string("# Hello #", Blocks).
Blocks = [h1("Hello")].

Convert into an HTML string:

:- use_module(library(md/md_parse)).

?- md_html_string("# Hello #", Html).
Html = "<h1>Hello</h1>".

Deviations from the Gruber's Markdown

  • Some cases for tight markup (no separate lines between blocks).
  • No clever encoding for mail addresses.
  • Line break rule creates <br> not <br />.
  • No in-word emphasis with underscores.
  • Strikethrough as ~~text~~.
  • Added escape sequences \~ and \`.
  • Github-styled fenced code blocks (https://help.github.com/articles/github-flavored-markdown). No syntax highlighting is provided but the data-language attribute is set.
  • Plain link recognizion.

Performance

Example document (about 800 lines) is parsed in 80ms on 2.4GHz Q6600.

Installation

Requires SWI-Prolog 7.x.

pack_install('http://packs.rlaanemets.com/markdown/markdown-*.tgz')

API documentation

See http://packs.rlaanemets.com/markdown/doc/md_parse.html for the top-level module documentation.

Changelog

  • 2020-01-02 version 0.0.3. Fixed mode declaration in documentation.
  • 2014-02-26 version 0.0.2. Fixed HTTPS link in angled brackets. Trimmed bottom of code block.
  • 2014-01-14 version 0.0.1

Bug reports/feature requests

Please send bug reports/feature request through the GitHub project page.

License

The MIT License. See the LICENSE file.

About

Markdown parser for SWI-Prolog.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.