All Projects → shamansir → mdown-parse-pegjs

shamansir / mdown-parse-pegjs

Licence: other
✋ Parsing Markdown with PegJS

Programming Languages

javascript
184084 projects - #8 most used programming language

Markdown parser with PegJS

A Markdown parser written in JavaScript, generated with PEG grammar. Currently, in progress.

This is a component of xtd project, but I plan to finish developing it separately and then merge the result there. (So, the most part of its development history is located there).

In fact, it is a translation of PegC Markdown parser to JavaScript. But in the end, there are a lot differences in the sources and result.

The both C variant and JS (this) variant build a tree of parsed document elements, including their offsets and additional data required for generating some HTML result or hightlighting a syntax in some JavaScript implementation.

Sources

The Development State

Finished

  • Inlines: Strong, Em, Code
  • Html Blocks, Html entities
  • Headings
  • Horizontal Rules
  • Paragraphs
  • Top-level Lists
  • Top-level verbatims
  • Links, all modifications
  • Images, all modifications
  • Oh, all that stuff except complex lists

Not finished

(They were working some not ideal way, but I am currently refactoring this part)

So currently, the lists are parsed ok, but I plan to modify their rules to support complex indentations.

Which Way the Result Looks Like

When parsing a MarkDown document, you get a JavaScript Object containing the document tree in Markdown terms. I'll make a detailed description when I'll finish an implementation.

Competitors

Just a JS-ones:

To Develop

Install last node.js version (v0.5.8+)

Install npm

Run in node directory (or with -g):

npm install pegjs
npm install [email protected] # or higher

cd ~/Worktable # (for example)
git clone [email protected]:shamansir/pegjs.git
cd ./pegjs
jake build
node test/run
ln -sf ~/Worktable/pegjs <nodejs-location>/lib/node_modules
ln -s <nodejs-location>/lib/node_modules ./node_modules # optional, if pegjs module not found
cd ~/Workspace # (for example) 
git clone [email protected]:shamansir/mdown-parse-pegjs.git
cd ./mdown-parse-pegjs
node ./test-mdown-parser-with-node.js
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].