Skip to content

Commit

Permalink
Merge branch 'release/6.0.0-rc2'
Browse files Browse the repository at this point in the history
  • Loading branch information
fletcher committed Mar 19, 2017
2 parents f3b0ba4 + ad2f133 commit 888b34a
Show file tree
Hide file tree
Showing 42 changed files with 1,411 additions and 159 deletions.
26 changes: 22 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ cmake_minimum_required (VERSION 2.6)
set (My_Project_Title "MultiMarkdown")
set (My_Project_Description "Lightweight markup processor to produce HTML, LaTeX, and more.")
set (My_Project_Author "Fletcher T. Penney")
set (My_Project_Revised_Date "2017-03-15")
set (My_Project_Revised_Date "2017-03-19")
set (My_Project_Version_Major 6)
set (My_Project_Version_Minor 0)
set (My_Project_Version_Patch 0-rc1)
set (My_Project_Version_Patch 0-rc2)

set (My_Project_Version "${My_Project_Version_Major}.${My_Project_Version_Minor}.${My_Project_Version_Patch}")

Expand Down Expand Up @@ -227,8 +227,9 @@ set(header_files
set (scripts
scripts/mmd
scripts/mmd2all
scripts/mmd2opml
scripts/mmd2epub
scripts/mmd2odf
scripts/mmd2opml
scripts/mmd2pdf
scripts/mmd2tex
scripts/markdown
Expand Down Expand Up @@ -385,6 +386,15 @@ endif (WIN32)
# Define targets
# ==============

# Is libcurl available?
find_package(CURL)
if (CURL_FOUND)
add_definitions(-DUSE_CURL)
message (STATUS "libcurl found")
else ()
message (STATUS "libcurl not found")
endif (CURL_FOUND)

# Create a library?
if (NOT DEFINED TEST)
add_library(libMultiMarkdown STATIC
Expand All @@ -403,6 +413,10 @@ else ()
)
endif ()

if (CURL_FOUND)
target_link_libraries(libMultiMarkdown curl)
endif (CURL_FOUND)

# Create a shared library if defined
if (DEFINED SHAREDBUILD)

Expand All @@ -422,6 +436,10 @@ if (DEFINED SHAREDBUILD)
# Remove "Shared" from library name
SET_TARGET_PROPERTIES(libMultiMarkdownShared PROPERTIES OUTPUT_NAME libMultiMarkdown)

if (CURL_FOUND)
target_link_libraries(libMultiMarkdownShared curl)
endif (CURL_FOUND)

endif (DEFINED SHAREDBUILD)


Expand Down Expand Up @@ -508,7 +526,7 @@ endif (DEFINED SHAREDBUILD)

# Install LaTeX support files
install (FILES ${latex}
DESTINATION share/texmf/mmd6
DESTINATION share/texmf/tex/latex/mmd6
COMPONENT latex
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ
)
Expand Down
Binary file modified DevelopmentNotes/DevelopmentNotes.epub
Binary file not shown.
152 changes: 150 additions & 2 deletions DevelopmentNotes/DevelopmentNotes.fodt
Original file line number Diff line number Diff line change
Expand Up @@ -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 <text:span text:style-name="MMD-Italic">tons</text:span> more reading, I
ultimately decided to use a parser generator to handle the task of group lines
into blocks. <text:span text:style-name="Source_20_Text">parser.y</text:span> has the source for this, and it is processed by the
<text:a xlink:type="simple" xlink:href="http://www.hwaci.com/sw/lemon/">lemon</text:a> parser generator to create the actual
code.</text:p>
<text:a xlink:type="simple" xlink:href="http://www.hwaci.com/sw/lemon/">lemon</text:a> parser generator to create the actual code.</text:p>

<text:p text:style-name="Standard">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
Expand Down Expand Up @@ -716,9 +715,158 @@ 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.</text:p>

<text:h text:outline-level="3"><text:bookmark text:name="dependencieslibraries"/>Dependencies/Libraries </text:h>

<text:p text:style-name="Standard">MMD v6 has no external dependencies when compiling, aside from the standard
libraries for C development.</text:p>

<text:p text:style-name="Standard">MMD can be compiled without any other tools beside the build system (cmake).</text:p>

<text:p text:style-name="Standard">If you want to edit the block parser, you need to modify the <text:span text:style-name="Source_20_Text">parser.y</text:span> file
and process that using <text:a xlink:type="simple" xlink:href="http://www.hwaci.com/sw/lemon/">lemon</text:a> in order to update the <text:span text:style-name="Source_20_Text">parser.c</text:span> file. The
lemon parser source is actually included in MMD and needs to be compiled to be
used.</text:p>

<text:p text:style-name="Standard">If you want to update the lexer or scanner utility functions, then you can
modify <text:span text:style-name="Source_20_Text">lexer.re</text:span> or <text:span text:style-name="Source_20_Text">scanners.re</text:span>. These need to be processed using <text:a xlink:type="simple" xlink:href="http://re2c.org/">re2c</text:a>,
which has to be installed separately.</text:p>

<text:p text:style-name="Standard">MMD v6 makes use of several other projects to improve performance and ease of
use:</text:p>

<text:list text:style-name="L1">
<text:list-item>
<text:p text:style-name="Standard"><text:a xlink:type="simple" xlink:href="https://troydhanson.github.io/uthash/">uthash</text:a> &#8211; provides support for hashes to quickly locate specific &#8220;objects&#8221;
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.</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="Standard"><text:a xlink:type="simple" xlink:href="https://github.com/richgel999/miniz">miniz</text:a> &#8211; provides zip archive support to enable creation of EPUB 3 files,
which are zip files with a specific file structure inside them.</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="Standard"><text:a xlink:type="simple" xlink:href="https://github.com/argtable/argtable3">argtable3</text:a> &#8211; provides more advanced command-line argument processing in a
more cross-platform approach than that used by MMD v5.</text:p></text:list-item>

</text:list>

<text:h text:outline-level="3"><text:bookmark text:name="changelog"/>Changelog </text:h>

<text:list text:style-name="L1">
<text:list-item>
<text:p text:style-name="Standard">2017&#8211;03&#8211;19 &#8211; v 6.0.0-rc2:</text:p>

<text:list text:style-name="L1">
<text:list-item>
<text:p text:style-name="P1">
ADDED: Add debugging info</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
ADDED: Add image assets when creating EPUB</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
ADDED: Add mmd2epub convenience script</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
ADDED: Add support for random footnote numbers</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
ADDED: Include tables as targets for cross&#8211;reference links</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
ADDED: Store css metadata as asset</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
CHANGED: Table captions now bottom aligned in HTML</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
CHANGED: Update license and development notes</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix Fuzz LaTeX test</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix bug in HR parsing</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix bug in determining label for headers</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix bug in printing NULL strings</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix bug in transclusion code</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix cmake to find on *nix systems libcurl</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix crash in parsing URL destinations</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix crash in reference definitions</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix potential crash</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix potential crash in definitions</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Fix regression in transclusion</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Free memory from asset hash</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Improve Spanish translations</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Improve token_split() algorithm and searching for abbreviations and glossary terms in text</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Improve width/height attributes for HTML images</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Update Spanish, update Spanish test suite, add languages to help screen</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
FIXED: Update table caption alignment for CSS instead of deprecated alignment</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="P1">
UPDATE: Update documentation</text:p></text:list-item>

<text:list-item>
<text:p text:style-name="Standard">UPDATED: Add notes to main.swift</text:p></text:list-item>

</text:list></text:list-item>

<text:list-item>
<text:p text:style-name="Standard">2017&#8211;03&#8211;15 &#8211; v 6.0.0-rc1:</text:p>

Expand Down
64 changes: 62 additions & 2 deletions DevelopmentNotes/DevelopmentNotes.html
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,7 @@ <h3 id="secondattempt">Second Attempt </h3>
recursive lists. After a lot of searching, and <em>tons</em> more reading, I
ultimately decided to use a parser generator to handle the task of group lines
into blocks. <code>parser.y</code> has the source for this, and it is processed by the
<a href="http://www.hwaci.com/sw/lemon/">lemon</a> parser generator to create the actual
code.</p>
<a href="http://www.hwaci.com/sw/lemon/">lemon</a> parser generator to create the actual code.</p>

<p>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
Expand Down Expand Up @@ -396,9 +395,70 @@ <h4 id="unittesting">Unit Testing </h4>
the development of <abbr title="MultiMarkdown">MMD</abbr>. So there is really not much unit testing built into
the code or used during the development.</p>

<h3 id="dependencieslibraries">Dependencies/Libraries </h3>

<p><abbr title="MultiMarkdown">MMD</abbr> v6 has no external dependencies when compiling, aside from the standard
libraries for C development.</p>

<p><abbr title="MultiMarkdown">MMD</abbr> can be compiled without any other tools beside the build system (cmake).</p>

<p>If you want to edit the block parser, you need to modify the <code>parser.y</code> file
and process that using <a href="http://www.hwaci.com/sw/lemon/">lemon</a> in order to update the <code>parser.c</code> file. The
lemon parser source is actually included in <abbr title="MultiMarkdown">MMD</abbr> and needs to be compiled to be
used.</p>

<p>If you want to update the lexer or scanner utility functions, then you can
modify <code>lexer.re</code> or <code>scanners.re</code>. These need to be processed using <a href="http://re2c.org/">re2c</a>,
which has to be installed separately.</p>

<p><abbr title="MultiMarkdown">MMD</abbr> v6 makes use of several other projects to improve performance and ease of
use:</p>

<ul>
<li><p><a href="https://troydhanson.github.io/uthash/">uthash</a> &#8211; provides support for hashes to quickly locate specific &#8220;objects&#8221;
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.</p></li>
<li><p><a href="https://github.com/richgel999/miniz">miniz</a> &#8211; provides zip archive support to enable creation of EPUB 3 files,
which are zip files with a specific file structure inside them.</p></li>
<li><p><a href="https://github.com/argtable/argtable3">argtable3</a> &#8211; provides more advanced command-line argument processing in a
more cross-platform approach than that used by <abbr title="MultiMarkdown">MMD</abbr> v5.</p></li>
</ul>

<h3 id="changelog">Changelog </h3>

<ul>
<li><p>2017&#8211;03&#8211;19 &#8211; v 6.0.0-rc2:</p>

<ul>
<li>ADDED: Add debugging info</li>
<li>ADDED: Add image assets when creating EPUB</li>
<li>ADDED: Add mmd2epub convenience script</li>
<li>ADDED: Add support for random footnote numbers</li>
<li>ADDED: Include tables as targets for cross&#8211;reference links</li>
<li>ADDED: Store css metadata as asset</li>
<li>CHANGED: Table captions now bottom aligned in HTML</li>
<li>CHANGED: Update license and development notes</li>
<li>FIXED: Fix Fuzz LaTeX test</li>
<li>FIXED: Fix bug in HR parsing</li>
<li>FIXED: Fix bug in determining label for headers</li>
<li>FIXED: Fix bug in printing NULL strings</li>
<li>FIXED: Fix bug in transclusion code</li>
<li>FIXED: Fix cmake to find on *nix systems libcurl</li>
<li>FIXED: Fix crash in parsing URL destinations</li>
<li>FIXED: Fix crash in reference definitions</li>
<li>FIXED: Fix potential crash</li>
<li>FIXED: Fix potential crash in definitions</li>
<li>FIXED: Fix regression in transclusion</li>
<li>FIXED: Free memory from asset hash</li>
<li>FIXED: Improve Spanish translations</li>
<li>FIXED: Improve token_split() algorithm and searching for abbreviations and glossary terms in text</li>
<li>FIXED: Improve width/height attributes for HTML images</li>
<li>FIXED: Update Spanish, update Spanish test suite, add languages to help screen</li>
<li>FIXED: Update table caption alignment for CSS instead of deprecated alignment</li>
<li>UPDATE: Update documentation</li>
<li>UPDATED: Add notes to main.swift</li>
</ul></li>
<li><p>2017&#8211;03&#8211;15 &#8211; v 6.0.0-rc1:</p>

<ul>
Expand Down
Binary file modified DevelopmentNotes/DevelopmentNotes.pdf
Binary file not shown.
Loading

0 comments on commit 888b34a

Please sign in to comment.