UmemotoCtrl / mdpjs

A somewhat functional JavaScript Markdown parser, affinity with formulas

Home Page:https://umemotoctrl.github.io/mdpjs/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mdpjs: MarkdownParser

A somewhat functional JavaScript Markdown parser, affinity with formulas Web Site.

This script aims to use in Client-side and was made as alternative for existing js parsers because their do not work well with math formulas.

Probably the only option intended to be used in conjunction with mathjax (or katex)!

Feature

  • Do not react to markdown control symbols in formula and code blocks. The math keeps the original structure.
  • $$ ... $$ and \[ ... \] are supported for independent line formulas. Putting a line which should have only $$, \[, or \].

Usage

Add the following to header

<script type="text/javascript" src="https://cdn.jsdelivr.net/gh/UmemotoCtrl/mdpjs@0.1.4/js/mdp.js"></script>

then execute

var mdp = makeMDP();
var html_text = mdp.render( markdown_test );

The script is pluggable, for examples,

mdp.addInlineSyntax ({	// this is sample for img
	tag: "IG",
	priority: 60,
	provisionalText: '<img url="$2" alt="$1"></img>',
	matchRegex: new RegExp("!\\[(.+?)\\]\\((.+?)\\)", 'g'),
	converter: function ( argBlock ) {
		return null;
	},
	convertedHTML: new Array()
});
mdp.addBlockSyntax ({	// this is sample for Setext headings
	tag: "SH",
	priority: 60,
	provisionalText: mdp.config.delimiter+"SH"+mdp.config.delimiter,	// should include delimiter+tag+delimiter
	matchRegex: new RegExp("^.+\\n *=+[ =]*=+ *(?=\\n)", 'gm'),
	converter: function ( argBlock ) {
		var temp = argBlock.replace(/"/g, '')
			.replace( new RegExp('^ *(.+)\\n.*$'), '<h1 id="$1">$1</h1>' );
		return mdp.mdInlineParser(temp, null);
	},
	convertedHTML: new Array()
});

About

A somewhat functional JavaScript Markdown parser, affinity with formulas

https://umemotoctrl.github.io/mdpjs/

License:MIT License


Languages

Language:JavaScript 94.0%Language:HTML 5.6%Language:Shell 0.3%Language:Batchfile 0.2%