Push diff implementation (from libdiff)
directly into the code instead of using the external library.
From a patch by Anton Lindqvist as suggested on the OpenBSD ports
Significantly update the diffing algorithm.
First, make some general fixes to the algorithm.
Second, improve the
optimisations phase by adding top-down analysis that matches un-matched, non-terminal
This helps with text changes in text-only paragraphs.
Third, add a SES (shortest edit script) computation for matched adjacent text nodes.
Lastly, add the new diff function manpages.
Portability: don't use
%F for date formatting.
This doesn't work with some libc versions.
Also some documentation readability improvements.
Strip leading white-space from metadata extracted using -X.
Sync with newest oconfigure.
diff tool, lowdown-diff(1).
This utility uses an algorithm adapted from Detecting Changes in XML Documents
to compute the semantic difference between two parse trees.
It is fully documented.
While there, also add more inter-paragraph spacing to -Tms output, producing more elegant documents,
and continue fleshing out lowdown(5).
Also add some more metadata recognition in -s output for all modes (
Re-wrote escape parser to -Tms and -Tman to respect roff special characters.
Have e-mail autolinks respect the
mailto: in pdfhref'd output, and have links with
mailto: omit the schema in display just like in -Thtml.
Make block-list-items render properly in -Tms and -Tman.
Also introduce lowdown(5), a work-in-progress to document the Markdown formatting
accepting by this system.
The first were noted, and the last contributed in full, by Christina
Sophonpanich — thanks!
Fixed compilation on Linux and Mac OS X by adding
Noted by Christina Sophonpanich — thanks!
Considerable clean-up of -Tms and -Tman, with the aim of much higher PDF output quality:
proper nested list support, hyperlinks, PS/PDF TOC, and even some images (PS/EPS only—experimental!).
Also, after some pointers on the groff mailing list, use the correct
invocation for generating PDF output.
Fix up footnote printing to use automatic -ms macros and registers, if applicable.
Also added support for the
affiliation metadata keyword.
Added some CommonMark support, initially just escaped newlines,
supported only when the commonmark input flag is specified.
Removed the sphd input flag in favour of commonmark.
Also fixed raw HTML block outputting and setext-style level-two headers.
Fix installation of manpages (in Makefile) thanks to Anton Lindqvist.
Clean up the code some more—no functional changes, just removing useless casts and improving documentation style.
<sys/queue.h> header to library manpages.
Hot-fix number two: fix that
.pdfhref was typo'd into
Hot-fix in installing manpages.
Also fix the configure script to inherit
CFLAGS thanks to Anton Lindqvist.
Replaced use of
uint8_t in favour of traditional
char, where appropriate.
Most of all, fully document the new lowdown(3) interface.
These are listed here:
Significant internal re-write, moving from
in-line production of output to production of a parse tree,
which in turn is used to create output.
This removed a tremendous amount of cruft from document.c, including several structural elements such as pools and stacks.
The only notable difference is that PDF output with hyperlinks looks better.
(HTML output should look the same.)
html-head-ids as a tunable output option for HTML.
CSS metadata key recognised in the HTML standalone output.
Also, document the accepted metadata keys better in the manpage.
The library functions have been simplified, with the standalone functions being removed in favour of output options.
The next releases will include more library functions currently undocumented in the header file.
Fix how the final metadata with multiple lines wouldn't have the last line processed.
[%metadata] embedded in documents.
(Thanks to Anton Lindqvist for furnishing several patches for metadata!)
Note that lowdown doesn't do anything with metadata beyond pasting or standalone document creation.
Metadata has also been expanded to allow for multiple authors.
Add the nroff-numbered output mode option for numbered sections.
(None for HTML5 because it can be done with CSS.)
Add some default roff goop to the standalone -Tms file for prettier section names.
Some improvements to -Tms and -Tman readability.
Namely, lists won't have a leading newline when the first child is a paragraph.
Also make the -Thtml output more conformant to the Markdown testing suites.
To wit, add the smarty output option to disable
(It's enabled by default.)
standalone document code generator into the library,
This makes it easier for callers to create the document shell.
More small fixes, many contributed by Anton Lindqvist, for a smooth OpenBSD port.
Also internal clean-ups to the legacy code bits.
One-line fix to bundle the
configure file with the distribution.
Noted by Anton Lindqvist—thanks!
Accept image dimensions and pass them to the HTML output formatter.
Many internal clean-ups thanks to Anton Lindqvist.
Significantly update the parser to pass newline status to the front-ends, allowing (finally) for formatted links
for the -Tms and -Tman outputs when in GNU extension mode.
In the former case, this uses
In the latter cases,
Doing this involved touching basically the entire backend.
It was not pretty.
I've described the problems in the
Hacking section of the web site.
semantic quotes (where in HTML mode qoutes would be rendered as
underline as emphasis, which rendered emphasis as an underline.
The underlines aren't easy in -Tms and -Tman and presentationally confusing (is it a link?) in
Clean up nroff output a bit thanks to Baptiste Daroussin — thanks!
Add output-mode flags to lowdown(3).
Note: the -E flag of lowdown(1) has been renamed to
The -E flag, and the new -D, are used to control output modes just like -e and -d
Fix for compiling on FreeBSD. No other change.
First, add warnings with -v.
This reports MultiMarkdown and CommonMark violations.
Second, add the -e and -d flags to enable and disable, respectively, Markdown features.
For a list of Markdown features, see lowdown(1).
Third, implement MultiMarkdown meta-data with the metadata feature, enabled by default.
Lastly, deprecate the title argument, -t, in favour of the metadata.
The lowdown(3) interface has changed to accommodate for the new metadata features.
Add a -E flag to extract metadata directly, too.
Note: metadata values are still not used within the document.
So you can't
fill in metadata keys within the text.
The metadata tags, for now, are informational except in that they provide a title.
This will be expanded upon in later versions.
Lastly, remove the behaviour of printing the first HTML paragraph within an
This is now deprecated by metadata parsing.
Fix escaping of -Tman and -Tnroff output, then rename -Tnroff to -Tms. Add
documentation to index page regarding hacking.
Initial public download of a stable release.