From: Fletcher T. Penney
Date: Wed, 15 Mar 2017 18:58:45 +0000 (-0400)
Subject: UPDATE: Update documentation
X-Git-Tag: 6.0.0-rc2^2~24
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d4344411f5e9d08ddbae9ba5e56881f319de0c2c;p=multimarkdown
UPDATE: Update documentation
---
diff --git a/DevelopmentNotes/DevelopmentNotes.fodt b/DevelopmentNotes/DevelopmentNotes.fodt
index f02814d..130065e 100644
--- a/DevelopmentNotes/DevelopmentNotes.fodt
+++ b/DevelopmentNotes/DevelopmentNotes.fodt
@@ -501,8 +501,7 @@ this quickly fell apart in the face of more complex structures such as
recursive lists. After a lot of searching, and tons more reading, I
ultimately decided to use a parser generator to handle the task of group lines
into blocks. parser.y has the source for this, and it is processed by the
-lemon parser generator to create the actual
-code.
+lemon parser generator to create the actual code.
I chose to do this because hand-crafting the block parser would be complex.
The end result would likely be difficult to read and understand, which would
@@ -716,6 +715,42 @@ Otherwise, it was hard to see how to really create very good unit tests for
the development of MMD. So there is really not much unit testing built into
the code or used during the development.
+Dependencies/Libraries
+
+MMD v6 has no external dependencies when compiling, aside from the standard
+libraries for C development.
+
+MMD can be compiled without any other tools beside the build system (cmake).
+
+If you want to edit the block parser, you need to modify the parser.y file
+and process that using lemon in order to update the parser.c file. The
+lemon parser source is actually included in MMD and needs to be compiled to be
+used.
+
+If you want to update the lexer or scanner utility functions, then you can
+modify lexer.re or scanners.re. These need to be processed using re2c,
+which has to be installed separately.
+
+MMD v6 makes use of several other projects to improve performance and ease of
+use:
+
+
+
+uthash – provides support for hashes to quickly locate specific “objects”
+based on text keys. These are used for matching footnotes, links, images and
+the like when created with the reference syntax. Much faster than searching
+through each one sequentially.
+
+
+miniz – provides zip archive support to enable creation of EPUB 3 files,
+which are zip files with a specific file structure inside them.
+
+
+argtable3 – provides more advanced command-line argument processing in a
+more cross-platform approach than that used by MMD v5.
+
+
+
Changelog
diff --git a/DevelopmentNotes/DevelopmentNotes.html b/DevelopmentNotes/DevelopmentNotes.html
index b7edd23..2fcee04 100644
--- a/DevelopmentNotes/DevelopmentNotes.html
+++ b/DevelopmentNotes/DevelopmentNotes.html
@@ -181,8 +181,7 @@ this quickly fell apart in the face of more complex structures such as
recursive lists. After a lot of searching, and tons more reading, I
ultimately decided to use a parser generator to handle the task of group lines
into blocks. parser.y
has the source for this, and it is processed by the
-lemon parser generator to create the actual
-code.
+lemon parser generator to create the actual code.
I chose to do this because hand-crafting the block parser would be complex.
The end result would likely be difficult to read and understand, which would
@@ -396,6 +395,36 @@ Otherwise, it was hard to see how to really create very good unit tests for
the development of MMD. So there is really not much unit testing built into
the code or used during the development.
+Dependencies/Libraries
+
+MMD v6 has no external dependencies when compiling, aside from the standard
+libraries for C development.
+
+MMD can be compiled without any other tools beside the build system (cmake).
+
+If you want to edit the block parser, you need to modify the parser.y
file
+and process that using lemon in order to update the parser.c
file. The
+lemon parser source is actually included in MMD and needs to be compiled to be
+used.
+
+If you want to update the lexer or scanner utility functions, then you can
+modify lexer.re
or scanners.re
. These need to be processed using re2c,
+which has to be installed separately.
+
+MMD v6 makes use of several other projects to improve performance and ease of
+use:
+
+
+uthash – provides support for hashes to quickly locate specific “objects”
+based on text keys. These are used for matching footnotes, links, images and
+the like when created with the reference syntax. Much faster than searching
+through each one sequentially.
+miniz – provides zip archive support to enable creation of EPUB 3 files,
+which are zip files with a specific file structure inside them.
+argtable3 – provides more advanced command-line argument processing in a
+more cross-platform approach than that used by MMD v5.
+
+
Changelog
diff --git a/DevelopmentNotes/DevelopmentNotes.pdf b/DevelopmentNotes/DevelopmentNotes.pdf
index 6f092a3..c9de88f 100644
Binary files a/DevelopmentNotes/DevelopmentNotes.pdf and b/DevelopmentNotes/DevelopmentNotes.pdf differ
diff --git a/QuickStart/QuickStart.fodt b/QuickStart/QuickStart.fodt
index ed5c948..4e03967 100644
--- a/QuickStart/QuickStart.fodt
+++ b/QuickStart/QuickStart.fodt
@@ -576,11 +576,6 @@ existing v6 parser but it might be simpler to use the approach from v5 and
earlier, which was to have a separate parser tuned to only identify headers
and “stuff between headers”.
-
-Improved EPUB support. Currently, EPUB support is provided by a separate
-tool. At some point, I would like to
-better integrate this into MMD itself.
-
diff --git a/QuickStart/QuickStart.html b/QuickStart/QuickStart.html
index 9dc5969..52137fb 100644
--- a/QuickStart/QuickStart.html
+++ b/QuickStart/QuickStart.html
@@ -286,14 +286,11 @@ OpenDocument formats.
Some features I plan to implement at some point:
-OPML export support is not available in v6. I plan on adding improved
+
- OPML export support is not available in v6. I plan on adding improved
support for this at some point. I was hoping to be able to re-use the
existing v6 parser but it might be simpler to use the approach from v5 and
earlier, which was to have a separate parser tuned to only identify headers
-and “stuff between headers”.
-Improved EPUB support. Currently, EPUB support is provided by a separate
-tool. At some point, I would like to
-better integrate this into MMD itself.
+and “stuff between headers”.
diff --git a/QuickStart/QuickStart.pdf b/QuickStart/QuickStart.pdf
index ad3bcd8..43d5aee 100644
Binary files a/QuickStart/QuickStart.pdf and b/QuickStart/QuickStart.pdf differ
diff --git a/QuickStart/QuickStart.txt b/QuickStart/QuickStart.txt
index c3583ae..1959d99 100644
--- a/QuickStart/QuickStart.txt
+++ b/QuickStart/QuickStart.txt
@@ -281,22 +281,11 @@ existing v6 parser but it might be simpler to use the approach from v5 and
earlier, which was to have a separate parser tuned to only identify headers
and "stuff between headers".
-2. Improved EPUB support. Currently, EPUB support is provided by a separate
-[tool](https://github.com/fletcher/MMD-ePub). At some point, I would like to
-better integrate this into MMD itself.
-
-
[>MMD]: MultiMarkdown
-
[CriticMarkup]: http://criticmarkup.com/
-
[?PEG]: Parsing Expression Grammar
-
[?AST]: Abstract Syntax Tree
-
[EPUB 3]: https://en.wikipedia.org/wiki/EPUB
-
[Sigil]: https://sigil-ebook.com/
-
[Calibre]: https://calibre-ebook.com/