Release Notes
5.1.0 - 2016–02–22
- ADDED: Add script to build drag and drop apps on OS X
- ADDED: Beginning code for public header file support; ADDED: Beginning configuration for OS X Bundle/Framework targets
- ADDED: Include support for Xcode libraries to be iOS compatible
- CHANGED: Update copyright info for 2016
- CHANGED: Update test suite
- FIXED: Allow ATX Headers inside lists
- FIXED: Allow ‘naturally’ aligned table cells like MMD 2 allowed
- FIXED: Allow metadata variables inside links (e.g. [[%foo]][bar])
- FIXED: Allow newline inside strong/emph (Fixes #10)
- FIXED: Change handling of version.h file for deprecated make to keep it separate from cmake alternative
- FIXED: Don’t delete src/version.h
- FIXED: Fix problem with strong/emph matching incorrectly
- FIXED: Fix regression in list/heading fix that was overeager
- FIXED: Include ‘fake’ version.h for make deprecate
- FIXED: Include additional standard metadata keys in the list to not be included in HTML headers
- FIXED: Remove unneeded install directive; FIXED: Fix public header install prefix (I think)
- FIXED: Update MMD test suite for recent table alignment change
- FIXED: fix ‘make deprecate’ so that it truly doesn’t require cmake
- FIXED: Improve tight vs loose list detection with unusual setext headers
- NOTE: Fixed git clone instructions in documentation
- NOTE: Update test suite
5.0.1 - 2015–12–01
- IMPORTANT: Fix major error in last Makefile! (Only in build branch for a few minutes)
- ADDED: Improve empty list item detection in ODF output
- CHANGED: Remove unused node creation utilities
- CHANGED: Update documentation
- CHANGED: Use ‘const’ char * in g_string_new
- CODE: Improve doxygen support in libMultiMarkdown.h
- CODE: Refactor markdown_to_string() to separate parsing input text and writing output text via the intermediate node tree.
- CODE: Use node creation shortcuts for consistency and future flexibility
- FIX: Add 32 bit flag to older MinGW toolchain
- FIX: Add label for 32 bit builds
- FIX: Don’t run valgrind tests unless in ‘make debug’ mode
- FIX: Don’t static link when using ‘make debug’ for valgrind testing
- FIX: Fix memory leaks in transclude_source()
- NOTE: Add developer notes to the README information
- NOTE: Additional doxygen support
- NOTE: Autogenerate changelog since last commit to master
- NOTE: Begin tracking release notes in ‘CHANGELOG.md’
- NOTE: Change empty listitem detection logic for ODF output
- NOTE: Change whitespace for easier diffing
- NOTE: Remove redundant developer note in README
- NOTE: Use tab instead of leading spaces in CHANGELOG-UNRELEASED
5.0
- The source repository for MultiMarkdown has been completely rebuilt:
- Use my c-template to provide the basic structure
- Requires the CMake build system
- Has the beginnings of documentation within the code to support
Doxygen-generated developer documentation
- Other changes since 4.7.1:
- Improvements from Matthias Lohr for the shell scripts
- Additional documentation in code
- Fix issue with whitespace after footnotes in ODF export
- Improve accuracy of recognizing single line code blocks
- Fix memory leaks
- Fix
mmd2pdf
for certain installs of TeX on El Capitan
- Improve POSIX compliance on shell scripts
- Improve accuracy of strong/emph matching
- Make reference label matching case insensitive
- Fix error if no caption was included on table
- Fix edge case slowdown when lots of HTML included
- Fix error when quotes included in explicit link
- Allow tables inside LaTeX footnotes
- Improved window path separator support
- And other improvements/fixes
Why switch to CMake?
In early 2014, a user of MMD introduced me to the CMake build system. I
looked at it briefly, but didn’t do anything with it. Later on, I looked
at it more in depth and created a parallel branch after 4.6. This would allow
me to experiment with CMake without breaking anything else in the master
branch.
CMake isn’t perfect by any means, but it does allow for some interesting
things:
- Automatically generate GUI installers for OS X and Windows, as well as zip
files for *nix. I have not looked into using CMake to build
.deb
packages, but that might be possible as well. My old system could generate
GUI installers for Windows and OS X, but it was a complex process that
required a lot of manual processing. This is much more amenable to
automation.
- An improved organization structure for various tests, including Valgrind
testing. The old system was getting rather messy.
- A templating system that better allows me to synchronize version, and
other, information in code, documentation, and READMEs
- Automatic generation of project files for Xcode, Visual Studio, and
alternative build systems beyond
make
- An opportunity to reorganize my code directory hierarchy
- The option to start adding unit test code to the source. This probably
won’t happen, as it would be too much work. But it is possible.
The biggest problem is that this means that anyone wishing to compile the
source will need to install CMake. This isn’t hard, but it is an extra step.
As a temporary measure, you can use the make deprecated
command to use a
simplified make
recipe to compile a binary of MultiMarkdown for the current
machine. I don’t recommend this approach, but it should work in a pinch until
you can upgrade your machine to support cmake.
I welcome feedback on this decision, but please note – “I don’t like it” or
“bring back the old way” comments will be ignored. Please send meaningful
criticism or suggestions.
Perhaps an approach if others want to contribute will be to do the reverse of
what I did before – create a make
branch that includes a modified Makefile
designed to be used without CMake?
Additionally, the old Makefile had grown over time to include some tricks that
users of various systems required. I have tested the CMake system on OS X,
Ubuntu and Debian Linux, and MinGW on Ubuntu. I welcome suggestions for
improvements to the CMake configuration.
4.7.1
- New installers – should preserve proper owner on OS X; New format for Windows installer – please let me know if it doesn’t work.
- Fix memory leaks
- Fix edge case in strong/emph parsing
- custom ‘strndup’ function to improve compiling on Windows (seriously, I wish Windows would join the rest of the modern world…)
- ‘markdown’ script/batch file to run in compatibility mode
- other slight tweaks to source code
4.7
- As of version 4.7, the OS X MultiMarkdown installer will no longer support
ppc processors. You will have to compile yourself for these machines.
{{TOC}}
inserts a basic Table of Contents inside the document
- Improve abbreviation matching to include blockquotes, lists
mmd
export format – performs transclusions but doesn’t parse
- restructure test suite
- add a
cmake
experimental branch – same source, different build system
- fix error with certain invalid image links
- update documentation
- don’t break if heading immediately follows table
- fix error when parsing multiple files at once
- allow for raw RTF
- add
mmd_header
metadata support
- improve code blocks in beamer (thanks to marco-m)
- improve backtick style quotes
- improve transclusion with nested directories
- option to show manifest of transcluded files (
-x
or --manifest
)
- Improved YAML support
- Update
greg
- Improved Unicode support on Windows when transcluding
- Strip BOM when transcluding
- Support “japanese commas” for underscored strong/emph
- show “–manifest” option in help
- Other bug fixes
4.6
- Add
mmd footer
metadata feature
- Add support for abbreviations
- improve hyphen escaping in LaTeX
- Ignore wrapping
<>
in reference URLs
- Improve table alignment in LaTeX
- Improve windows batch script paths
- Additional error checking in file transclusion
- memory fixes/code cleanup
- Other small fixes
- improve strong/emph matching
- improve whitespace handling around fenced code blocks
- Improve whitespace handling around headings, block quotes
- Fix bug in tables
- Fix YAML and OPML
4.5.3
- Include mmd2rtf in Windows installer
- improved support for inline footnotes
- Fix potential bug when handling beamer latexmode metadata
- add
latex title
and latex author
metadata support
- Fix bug when sequential dashes used in code spans for LaTeX export (Thanks to Thomas Hodgson for noticing this)
- Add to list of known HTML5 tags
- update windows batch scripts
- Improve metadata handling in snippet mode
- Improved transclusion path logic
- Fix order of citations when printing footnotes in HTML
- Fix potential memory leaks
4.5.2