cmark

My personal build of CMark ✏️

Commit
70d53619797fa91d1d8ea597ae21c84e64175c4c
Parent
436f003ae6a2aed1e661fa4364ae33991210d92d
Author
John MacFarlane <jgm@berkeley.edu>
Date

Bigger TODO comment in js/README.md.

Diffstat

1 file changed, 69 insertions, 3 deletions

Status File Name N° Changes Insertions Deletions
Modified js/README.md 72 69 3
diff --git a/js/README.md b/js/README.md
@@ -55,12 +55,78 @@ Here's a basic usage example:
     var reader = new commonmark.Parser();
     var writer = new commonmark.HtmlRenderer();
     var parsed = reader.parse("Hello *world*"); // parsed is a 'Node' tree
+    // transform parsed if you like...
     var result = writer.render(parsed);  // result is a string
 
 <!-- TODO
 
-- example of tree manipulation
-- options
-- API documentation (each function)
+Public API
+----------
+
+### Parser
+
+constructor takes options param
+explain what can go into options
+
+public
+properties: options
+methods:  parse
+
+?? should we add a filters [] option?
+a filter could be a function that transforms a node,
+and the parser could automatically run a walker with
+each filter
+
+### Node
+
+getters:  type, firstChild, lastChild,,
+  next, prev, parent, sourcepos, isContainer
+getters+setters: literal, destination, title,
+  info, level, listType, listTight, listStart,
+  listDelimiter
+methods: appendChild(child),
+  prependChild(child),
+  unlink(),
+  insertAfter(sibling),
+  insertBefore(sibling),
+  walker()
+
+walker returns NodeWalker object with methods:
+  resumeAt(node, entering)
+  next() - returns an objcet with properties 'entering' and 'node'
+
+examples:
+  capitalize every string
+  changing emphasis to ALL CAPS
+  de-linkifying
+  running all the code samples through a highlighter or other
+  transform (svg?)
+
+?? would it be better to include NodeWalker in the API
+and have people do walker = new NodeWalker(node)?
+probably.
+
+### HtmlRenderer
+
+constructor takes options param
+document relevant options
+
+methods:
+  escapeXml(string, isAttribute)
+  render(node)
+properties:
+  options
+
+
+### XmlRenderer
+
+constructor takes options param
+document relevant options
+
+methods:
+  escapeXml(string, isAttribute)
+  render(node)
+properties:
+  options
 
 -->