# Markdown Library A markdown library with parallel Javascript and PHP implementations. Supports modular "readers" for customizing the flavor of markdown desired, including making custom modules. Javascript implementation is vanilla Javascript with no dependencies. PHP implementation is written for 8.3 but may work on older versions (only dependency is PHPUnit if running tests). ## Usage - JS Copy [markdown.js](js/markdown.js) (or [markdown.min.js](js/markdown.min.js)) into your project and include with a `` tag in your HTML. That's it. To use, create a parser with: ```javascript const myParser = new Markdown(); // defaults to standard syntax // or with a custom set of readers const myParser = new Markdown([ new MDParagraphReader(), new MDStrongReader(), new MDEmphasisReader(), ]); // or use one of the two premade parsers const myParser = Markdown.standardParser; // for a basic set of common syntaxes const myParser = Markdown.completeParser; // for all supported syntaxes (except line breaks) ``` Then convert markdown to HTML with: ```javascript const html = myParser.toHTML("Your **markdown** here."); ``` ## Usage - PHP As with Javascript, simply copy [markdown.php](php/markdown.php) into your project and `require` it in your source. To use, create a parser with: ```php $myParser = new Markdown(); // defaults to standard syntax // or with a custom set of readers $myParser = new Markdown([ new MDParagraphReader(), new MDStrongReader(), new MDEmphasisReader(), ]); // or use one of the two premade parsers $myParser = Markdown::standardParser(); // for a basic set of common syntaxes $myParser = Markdown::completeParser(); // for all supported syntaxes (except line breaks) ``` Then convert markdown to HTML with: ```php $html = $myParser->toHTML("Your **markdown** here."); ``` ## Spreadsheets One innovation in this markdown library is the ability to include _greatly simplified_ spreadsheet expressions in markdown tables. Intended for simple formulas and sums. To use, include [spreadsheet.js](js/spreadsheet.js) or [spreadsheet.php](php/spreadsheet.php) in your project along with the regular markdown source and include `MDSpreadsheetReader` in your `Markdown` instance. Example: ```markdown | Name | Unit Price | Qty | Discount | Subtotal | | ----- | ---------: | --: | -------: | --------------: | | Apple | $0.99 | 2 | | =B*C*(1-D) FILL | | Pear | $1.09 | 1 | 10% | | | **TOTAL** | | | | =SUM(E:E) | ``` can render as:
NameUnit PriceQtyDiscountSubtotal
Apple$0.992$1.98
Pear$1.09110%$0.98
TOTAL$3.07
## More info * [Markdown syntax reference](markdown.md) * [Table spreadsheet formulas](spreadsheet.md) * [Creating custom syntax](custom.md)