-
Version 1.4.0,
Deprecate the --nroff argument prefix in favour of
--roff, so for example --nroff-traditional
becomes --roff-traditional. The old prefix is
retained and will not be removed. Deprecated old
forms (e.g., --nroff-no-groff) did not get a
replacement.
Deprecate
--term-nolinks and
--term-shortlinks in favour of
--term-no-links and
--term-short-links, respectively.
The old forms are retained and will not be removed.
Add --term-hpadding and clarify the roles of
--term-cols, --term-hmargin, and
--term-width. Also document auto argument
to -term-hmargin. The default output looks the
same as it did before, but --term-hpadding=0 can
now omit any leading characters.
Add --term-no-rellinks to omit only relative links.
This is useful because terminal output doesn't have a
concept of a "relative" link.
Add passing literal strings as initial values to
--template.
Document --term-hmargin=auto, previously
undocumented as centre.
Use UTF-8 sequences for -tterm lines: horizontal
lines, tables, block vertical lines, etc.
Simplify the image link output to look a little more
like pandoc.
API change (hence the minor version bump):
lowdown_tree_rndr(3)
now also accepts a pointer to the options.
This is to enable debugging of the parse tree of
--template.
Now, passing -s --template to -ttree will
produce the template's parse tree alongside the parsed
content of the input.
API change (hence the minor version bump):
moving terminal-specific members of
lowdown_opts
into
lowdown_opts_term
.
-
Version 1.3.2,
Add --template functionality to -tman,
-tms, and -tgemini.
Add not()
to the --template functions
and document escapelatex()
.
Recognise a special modifier --
at the end of
control statements (e.g., $endfor--$
, which
consumes up and and including the end-of-line. This is
necessary for integrating templates with roff-based
languages that are line sensitive.
Add escapegemini
and escaperoff
modifier families.
Clarify that any empty statement, even with only
white-space, evaluates to the $
literal.
This simplifies the parser and reduces corner cases.
(Earlier, an empty statement with white-space was ignored,
but an empty statement without white-space was a literal
$
)
-
Version 1.3.1,
Add --template functionality to -tlatex.
Add and()
and or()
as initial
values to template expressions. These allow for
ifdef
to test for multiple values at once.
-
Version 1.3.0,
Specify that characters not complying with the metadata
key specification are replaced with underscores (which are
allowed by the metadata key character restrictions)
instead of as curently with question marks (which are not
valid metadata key characters).
Add new --template functionality, initially for
-thtml. This is still experimental, so
transformations and syntax might change. It allows for
templating the output HTML file.
-
Version 1.2.0,
Output OSC8 hyperlinks in -tterm mode. See
OSC8 Adoption
for the gist. This won't affect terminals not supporting
links (such as with OpenBSD's default xterm). As of this
change, all links (including image links) and link titles
will be clickable in supporting terminals unless
--term-no-ansi is given.
Conditionally output UR
/UE
or
MT
/ME
macros for -tman
links. This makes links be live
in some
-tman utilities.
Add metadata html header
,
latex header
, ms header
, and
man header
for adding media-specific
invocations in the document headers.
Have footnotes in -tms be linked: clicking on a
footnote number will jump to that footnote in the
document.
Introduce --nroff-endnotes, which adds a new flag
to the public API (hence the minor number addition). This
delays printing of -tms footnotes until the end of
the document, making them endnotes.
Deprecate the --nroff-no-groff flag in favour of
--nroff-traditional, as the changes it effects
equally favour mandoc and Heirloom troff. Does not change
the code interface, which uses the same macro name as
before.
Have metadata not be processed by the smart
typography at all. This is because some values are links
and others are mainlined directly into output and should
not be touched.
Be specific about the behaviour of nested links. This is
inconsistent across the various Markdown implementations
(and CommonMark). Document and stick to a standard.
-
Version 1.1.2,
Add documentation for --html-titleblock and
slightly change semantics where it will print regardless
if in -s mode.
Add regression code coverage to main website, include
make
rules for generating coverage. Many
more regression tests to exercise coverage.
-
Version 1.1.1,
Fix UTF8 handling on Mac OS X. Prior to this,
some UTF8 characters (such as smart punctuation)
were being garbled on -Tgemini and
-Tterm output. These now render properly
thanks to an excellent pull request contribution
(#140).
Hack around more buggy Mac OS X software, specifically
their version of makewhatis(8)
. While man(7)
specifically allows for header macros (SH
) to
have their contents on the subsequent line, this breaks
buggy software that erroneously expects headers to have
their content on the same line. This version, thanks to
another excellent pull request
(#138),
adds a hack for that specific condition.
-
Version 1.1.0,
Accept GitHub and MDN-style admonitions.
Admonitions are block-quotes that begin with a bold phrase (e.g.,
note
).
The output rendering is only for -thtml.
Accept GitHub-style superscripts and make them the default.
Previously, lowdown accepted only the
traditional Markdown superscripts; however, pandoc and other tools
use GFM syntax by default, so use this instead and make classical
parsing into an option --parse-super-short.
Add subscript support in the same way as superscript support.
Subscripts overlap with strike-throughs, which are enabled by default.
However, strike-throughs only appear for double-tildes.
Normalise the shared library to version 1, tied to the major number
of the package, and increment the minor number of the package
following the above API changes.
In -tterm mode, don't print metadata unless -s is
specified, in which case print the title, author, and date just like
in the other modes. Provide a --term-all-meta option to
print all metadata like before.
Make some small fixes to -tgemini regarding block quotes and
block code.
Lastly, significantly update
lowdown(3)
to document the AST generated by the parser.
-
Version 1.0.2,
Accept DOS CRLF newlines in all situations. Prior to this, CRLF
newlines would cause problems in some contexts.
Add support for
pandoc title blocks
as a metadata block syntax choice.
Pandoc and MMD syntaxes are mutually exclusive, so only one may be
used in any given document.
The syntax is documented in lowdown(5).
While there, support starting and ending an MMD metadata block with
---
on its own line, as in the MMD specification.
Add the --html-titleblock option.
If specified, output a Pandoc-style title header.
Pandoc has a poorly-executed feature where -stman outputs
have the title metadata line additionally parsed into a manpage
title, section, and optional source and volume. This allows titles
like TITLE(1) Source | Volume
to be split into their
respective manpage parts—but only when in -stman mode,
so an HTML document generated from the same page will not inherit
the additional parsing.
In lowdown(5), introduce this parsing
for all outputs if --parse-mantitle is specified,
which is now the default.
Behaviour change: do not use Untitled article
as the
default title for media supporting (or requiring) titles when in
standalone -s mode. Instead, just the empty string if a
title is required. This is a more logical choice: not only is
Untitled article
language-specific, it also assumes the
output is an article. For the previous behaviour,
-mtitle="Untitled article" may always be used.
Fix support for
GFM tables.
Specifically, don't arbitrarily require a certain three or more
dashes/colons per cell in the layout row. Also allow for escaped
vertical bars in the header row.
-
Version 1.0.1,
Numerous build and configuration improvements
(via oconfigure)
for building into WASI targets and on Mac OS X.
Add -L for listing all metadata keys.
Some fixes to smart typography around hard linebreaks. These aren't
likely to affect normal documents.
Recognise void HTML elements as block elements.
Switch between types (e.g., unordered to ordered) instead of
continuing with the current list type.
Fix parsing of block versus non-block lists when switching between
list types.
Fix parsing of block versus non-block lists when sublists contain
block elements, but top-level lists don't.
The Markdown spec isn't clear on how to accept these instances, so
use pandoc as a guiding tool.
For -tman output, normalise list marker widths (unordered or
ordered) to three spaces by default, increasing for ordered lists
depending on the number of entries. For -tms, it's five.
Make other small cleanups to -tms, making sure that paragraph
indentation looks the same as with -tlatex.
Fix that escaped text (e.g., \-\-foo) is not changed by the smart
typography formatter.
Use TP
in -tman for definition lists. To align
with existing lists, use a subsequent paragraph offset of three.
Similarly, use XP
for -tms.
-
Version 1.0.0,
Very minor repairs.
All of the functionality and stability for a v1 release is in place.
Make it so, number one!
-
Version 0.11.2,
Support native roff escapes instead of using Unicode escapes.
(This is a work in progress, as there are many.)
This makes special characters usable in sections and so on.
Fix a bogus free when running
lowdown-diff(1).
While here, handle differences between totally-different
files, where before we would error out.
Document how differences are displayed in each output mode,
as well as how metadata is a special case.
Fix -tterm ANSI escape filtering for background
colour, allowing changes to be viewed again.
Fix a sneaky -tterm bug found by AFL where having
the number of footnotes change digit length (e.g., 9 to 10)
within a table would cause an assertion.
Another big thanks to Michael Dexter in providing hardware
for continuously running AFL and finding some of these
corner case bugs!
-
Version 0.11.1,
Have -tlatex process header identifiers, both automatically
generated and from PHP extra attributes. Allow linking to these
within the document body.
Have -tms print that an image happened instead of just omitting
it entirely. It now behaves like -tman in this regard.
Fix where -tterm would print double-spaces in certain
conditions.
Have extended attribute classes apply as OpenDocument classes in
-tfodt.
-
Version 0.11.0,
Add class and identifier extended attributes to headers. These are
stipulated in PHP Markdown Extra. Documentation in
lowdown(5).
When using header identifiers (the default) and the names collide,
use pandoc's method of creating unique header names. Also handle
the case of markup in headers and the identifier created from those
to also be like pandoc. This isn't a fix, but rather make output
consistent with other tools.
Fix output of how links are handled in -Tms when part of
headers. The same applies to other block-level macros with link
children such as in definition lists. This also cleans up how
headers are shown in the PDF TOC. While here, make header identifiers
the same as in -Thtml so that intra-document links are
consistent, and enable linking within a document using the PDF
markers.
Fix footnotes to be actual footnotes in -Tlatex and
-Tms instead of endnotes. The other formats (-Tman,
etc.) all continue to use endnotes. The note system has internally
been cleaned up and now allows for more flexible note placement,
e.g., side-notes.
Allow footnotes to properly exist in -Tlatex tables. Also
allow for table alignment.
Bump the minor number as the ABI has been tidied up with respect to
footnotes: they're now all in their LOWDOWN_FOOTNOTE
blocks instead of split into definitions and references.
The LOWDOWN_DOC_FOOTER
element, which was not used, has
also been removed.
The system in general has spent many, many computer-hours being
fuzzed with AFL
thanks to hardware donated by Michael Dexter. Thank you!
Finally, make -T be a synonym for the new -t, which is
used by pandoc.
-
Version 0.10.0,
Add flat
OpenDocument output with -Tfodt.
This implements the
OpenDocument v1.3
standard, and is readable at least on
LibreOffice.
This further implements -Tfodt change tracking in
lowdown-diff(1).
It does not support images or definition lists yet.
-
Version 0.9.2,
Significantly improve -Tterm output, both in terms of styles
and layout. Terminal output styles are easy to set as compile-time
constants by editing
term.h.
If you're going to edit this for a downstream installation of
lowdown, please let me know and I can stash it in a styles directory!
Add --term-no-ansi to disable all ANSI escapes in output.
This produces a clean, undecorated terminal-formatted document.
-
Version 0.9.1,
Expand support for images having PHP Extra attributes to both links
and images supporting classes, images, and the existing image attributes.
These applies to both reference and inline links.
This deprecates --parse-no-img-ext in favour of the more general
--parse-no-ext-attrs. The same applies to the library's
LOWDOWN_IMG_EXT
deprecated by
LOWDOWN_ATTRS
.
-
Version 0.9.0,
Metadata consistency.
Make sure that all standalone document metadata (e.g.,
css
for HTML, volume
for manpages, etc.)
is properly escaped for its output context.
The -X
option (metadata extraction) now extracts the
unformatted version of the given key. This is because output media
don't necessarily have a single way of formatting data: in
-Thtml, for instance, metadata may be formatted differently
if it appears in links, attributes, or within HTML content. It's
now the caller's responsibility to escape the results of
-X
.
This generates API changes, because metadata is now recorded during
the parse phase, not during the rendering phase. While here,
metadata extraction for diff
mode is disabled (as it should
be).
While here, the base level header
metadata key has been
replaced with shift-heading-level-by
. This is because the
existing base header level
never actually worked properly,
and instead behaved like shift-heading-level-by
.
Add GFM task lists to all output modes.
While doing this, clean up list output for -Tgemini and
-Tterm.
-
Version 0.8.6,
Bug-fix: the --parse-no-intraemph flag would set the
condition (i.e., intra-emphasis was not parse) instead of unsetting
it. Now it does the correct thing.
-
Version 0.8.5,
Add support for NO_COLOR
and the flag version,
--term-nocolour.
This only applies to -Tterm output when no in difference mode.
-
Version 0.8.4,
Fix a crash in -Tgemini with tables.
Allow for multi-page tables in -Tms.
Start to expand on regression suite.
Clean up documentation, when possible, and add some minor code polish.
-
Version 0.8.3,
Several fixes to -Tlatex smart typography (single quotes and
dashes). The smart typography now handles single quotes within
words. Lastly, fix a bug where footnotes started at two instead of
one.
-
Version 0.8.2,
Fix tables as processed by the difference engine.
Tables are now fully opaque, which means that any changes will
result in the deletion and re-addition of the table.
This isn't a good fix, but it does mean that any tables run through
the difference engine will be sane for output.
Fix metadata to also be properly handled by both the difference engine
and conforming front-ends. This is a bit unusual since metadata is
both processed during parse and also affects document output, such
as in document title. For now use the same rule that front-ends
with metadata differences affecting document layout (e.g., title)
use the new form, if changed.
Lastly, fix footnote reference. When they're emitted in the new
document, the reference definitions are re-ordered in the correct
way to allow -Tms and such to work properly. While here,
make sure that all printed footnote numbers start at one and colours
are properly represented in output.
Split
lowdown(1)
into
lowdown-diff(1) for easier reading.
Properly render tables for -Tgemini as fixed-width displays.
By default, render Gemini link labels using Excel
format
(hexavigesimal) with the option of using Roman numerals
(--gemini-link-roman) or without labels at all
(--gemini-link-noref). This choice of default may change in
later versions, hwoever.
-
Version 0.8.1,
Add --term-nolinks to strip URLs out of terminal output (when
alternative text is available).
Then add --nroff-nolinks and --nroff-shortlinks, just
like those for -Tterm, for use with -Tman or
--nroff-no-groff.
Fix long-standing kinda-bug where www
autolinks were
being reported as regular links instead of autolinks.
Introduce -m and -M, which allow metadata to be
provided on the command line.
Metadata keys are first looked for in -m, overridden by what's
in the document, and those overridden by what's in -M.
Remove the deprecated -D, -d, -E, and
-e, which were long ago replaced by long options.
Inhibit printing of metadata in -Tgemini unless
--gemini-metadata is given.
-
Version 0.8.0,
Recognise the volume
, source
, and
section
metadata.
These are currently only used by -Tman.
Convert all internal functions to return an error
code on memory allocation failure.
Prior to this, these functions had a chance of exiting and printing
failure to stderr.
Now, this is left as the responsibility of the front-end.
There's no significant API change except that all renderers return a
value.
Fix the difference engine in several subtle ways, improving the
produced scripts, and also fix crashes where similar text would
match multiple parts of the parse tree, resulting in assertions.
Re-write the -Tms and -Tman generator to use a
completely different internal algorithm.
This algorithm, instead of formatting directly into output, converts
the AST into an array of output blocks marked either as text,
literal, macro, or font/colour change.
An assembler for this array manages newlines and spacing between blocks.
This fixes all known instances of unexpected line breaks and allows
for significantly simplified handling of text interspersed with
macros (e.g., links, etc.).
An API result of this is that the tree passed to
lowdown_nroff_rndr(3)
is now const
.
Recognise non-block and block lists for -Tlatex output.
Emit a UTF-8 preconv header to all -Tms and -Tman so
that -Kutf8 need not be passed to the formatter.
Remove the --nroff-hardwrap option, which needlessly
complicates code without benefit.
-
Version 0.7.9,
Fix a crash introduced with the new UTF-8 handling in
-Tterm.
Allow the section
metadata key to set the manpage section
when used with -Tman.
Significantly clean up lists (definition, ordered, unordered) and
how indenting and compacting is handled in -Tman and
-Tms.
Use EX
and EE
for block code when in
-Tman. These only apply in LOWDOWN_NROFF_GROFF
mode. While looking at block codes, fix how much trailing space is
emitted and make sure that subsequent paragraphs are indented.
Don't have sections in -Tman be followed by superfluous
paragraph macros (PP
, etc.).
-
Version 0.7.7,
Have the -Tterm output correctly adjust columns for UTF-8
wide characters. This makes both ASCII and UTF-8 (e.g, Russian)
correctly align on terminal output.
-
Version 0.7.5,
Add support for the
Gemini
protocol I've been hearing so much about.
This may now be used from
lowdown(1)
or as a library in
lowdown(3).
This is a very simple output:
it basically does no formatting at all, but does have some logic to
shuffle around links.
-
Version 0.7.4,
Bug-fix: don't emit stray .PP
macros when in
-Tman or -Tms mode.
This bug was introduced in version 0.7.3.
The library is now usable from C++ applications as-is, without
needing extra compilation flags.
Add missing
lowdown_diff(3) and
lowdown_metaq_free(3)
manpages.
-
Version 0.7.3,
Fix some smart typography bugs, specifically with ending single or
double quotes.
While doing so, create a regression suite for smart typography and
update the manpage.
Bug submitted by Larry Kollar, thanks!
Make base header level
metadata key work properly.
Another bug submitted by Larry Kollar, thanks!
Fix --nroff-hard-wrap to emit trailing newlines.
Yet another bug submitted by Larry Kollar, thanks!
Larry further suggested using typographic conventions in both the
-Tlatex and -Tms output to have initial paragraphs
not indent, but subsequent ones should.
This is the default mode in LaTeX, which I was disabling.
I've now removed my override to be more like default LaTeX, and
Larry proposed an initial patch for having -Tms do the same.
Thanks yet again!
-
Version 0.7.2,
Invert logic of --parse-codeindent to be correct.
-
Version 0.7.1,
For -Tms, make numbered output the default.
This is because earlier, it was not possible to make numbered output
at all with --nroff-groff.
Also clarify the role of --no-groff while at it.
Add --latex-no-numbered to -Tlatex for symmetry with
-Tms.
Initial support for extended image attributes as in PHP Markdown
Extra.
For the time being, these only allow for non-pixel widths and
heights for images.
Spend time in the documentation explaining image support, as it's a
little complicated: LaTeX and HTML support any images, but ms
only supports EPS and PS, and only in block mode.
(Among other complexities…)
Changes to internal API: the hdoc
and hbuf
structures have been renamed to struct lowdown_doc
and
struct lowdown_buf
.
First, I dislike typedefing away the fact that a variable is a
structure very much.
Second, the names were a holdover from the old system and shouldn't
be part of the exported API.
Add lowdown_buf_new(3) and
lowdown_buf_free(3) to make
the low-level library usable, where before it was pointing to
private functions.
-
Version 0.7.0,
Simple support for LaTeX documents with -Tlatex.
This will be expanded in future versions, but for now gets most
documents having maths and graphics, too.
Significantly improve metadata handling.
Until now, metadata was handled inconsistently across output
formats, and not always in line with the documented behaviour with
respect to overriding.
Now, all of the basic metadata keys are properly handled,
RCS-specified keys properly override, and all of these is documented
more rigorously in lowdown(1).
Support base header level
metadata on all outputs.
-
Version 0.6.5,
Fix an off-by-one where smarty-pants would be applied to some
terms not on a word boundary.
For example, 1/40 was erroneously construed as 1/4 then a zero.
Use pkg-config(1
for the installed library and improve the documentation.
-
Version 0.6.4,
Enable and enforce portability by also running regression tests over
all operating systems and architectures.
Updates oconfigure.
-
Version 0.6.3,
System now works out-of-the-box on OpenBSD, FreeBSD, NetBSD, Linux,
SunOS, OmniOS (IllumOS), Darwin.
-
Version 0.6.2,
Lots of small portability tweaks to the build system.
This involves the newest
oconfigure.
-
Version 0.6.1,
Full support for definition lists (with a single definition key).
These are reflected in all output media.
Make sure that all output media reflect the block status of lists.
For example, if a list item has block elements, all list
items (before and after) should reflect block output status.
Pull in newest oconfigure.
-
Version 0.5.4,
Make sure that the system conforms with the original Markdown test
suite.
This involves significant unsetting of options, but it does work.
-
Version 0.5.3,
Fix escaping of section headers in -Tms and -Tman.
Update the www materials to be more concise and reflect current
features.
-
Version 0.5.2,
Best-effort to convert embedded entities (numeric and named) to the
appropriate output sequence in -Tterm, -Tms, and
-Tman.
For the former, this is just a UTF-8 sequence.
For the latter two, these are \u[xxxx]
sequences.
This enables the non-HTML front-ends to have entity output.
Completely overhaul the smartypants
process.
This is now fully documented in
lowdown(5).
In short, smart typography is now applied to the parse tree, not to
formatted output.
This allows the removal of a significant amount of code.
With smart typography no longer a per-formatter case, overhaul the
library interface for extracting metadata.
This was not possible before because the smart typography applied to
formatted output; thus, metadata needed to be rendered and then
converted (and escaped, too).
Metadata is now extracted during rendering so that a caller
requesting (e.g.) HTML metadata is passed the correct, formatted
sequence.
Eliminate verbose warning
output, as it was only used in a
handful of cases and required enough infrastructure to avoid it.
Re-write options to use longopts
notation.
So instead of applying -Dnroff-groff or whatnot, use long
options such as --nroff-groff.
This is much easier to document and expands to allowing option values.
The existing method is no longer documented, but still works.
This is documented in lowdown(1).
Add many options for -Tterm output: margins, widths, URL
shortening, etc.
Have paragraph content be indented and also consistently indent
other block levels to line them up.
Lastly, add a -Tnull output for fuzzing.
This makes for a tighter coverage map to focus on parsing and smart
typography.
-
Version 0.5.0,
Add -Tterm output, which renders Markdown-like output on the
terminal. This is inspired by
glow.
This output is still experimental and the style may currently not be
overridden.
Add missing documentation to lowdown(5): footnotes, image
attributes, strike-through, highlighting.
Also bring the code style up to date, add debugging to
-Ttree, and update
oconfigure.
-
Version 0.4.6,
Yet another bug fix for Mac OSX compilation.
-
Version 0.4.5,
Bug fix for Mac OSX compilation.
-
Version 0.4.4,
In CommonMark mode, have the first ordered list item be output as
the initial list value.
This differs from regular MarkDown, which always starts lists at
one.
Also bring in the newest
oconfigure.
-
Version 0.4.3,
Fix a segmentation fault.
-
Version 0.4.2,
Clarify and document mathematics handling.
Don't require the mathexp
feature: just use math
for everything.
Document this in lowdown(5).
-
Version 0.4.1,
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
mailing list.
Thank you!
-
Version 0.4.0,
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
adjacent children.
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.
-
Version 0.3.3,
Portability: don't use %F
for date formatting.
This doesn't work with some libc versions.
Also some documentation readability improvements.
-
Version 0.3.2,
Strip leading white-space from metadata extracted using -X.
Sync with newest oconfigure.
-
Version 0.3.1,
-
Version 0.3.0,
Add a 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 (copyright
,
affiliation
, etc.).
-
Version 0.2.7,
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!
-
Version 0.2.6,
Fixed compilation on Linux and Mac OS X by adding memrchr
compatibility.
Noted by Christina Sophonpanich — thanks!
-
Version 0.2.5,
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.
-
Version 0.2.4,
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.
Add required <sys/queue.h>
header to library manpages.
-
Version 0.2.3,
Hot-fix number two: fix that .pdfhref
was typo'd into .usepdf
.
-
Version 0.2.2,
Hot-fix in installing manpages.
-
Version 0.2.1,
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:
-
Version 0.2.0,
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.)
Add html-head-ids
as a tunable output option for HTML.
Add the 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.
-
Version 0.1.12,
Fix how the final metadata with multiple lines wouldn't have the last line processed.
-
Version 0.1.11,
Support [%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.
-
Version 0.1.10,
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 smartypants
.
(It's enabled by default.)
Push the standalone
document code generator into the library,
lowdown(3).
This makes it easier for callers to create the document shell.
-
Version 0.1.9,
More small fixes, many contributed by Anton Lindqvist, for a smooth OpenBSD port.
Also internal clean-ups to the legacy code bits.
-
Version 0.1.8,
One-line fix to bundle the configure
file with the distribution.
Noted by Anton Lindqvist—thanks!
-
Version 0.1.7,
Accept image dimensions and pass them to the HTML output formatter.
Many internal clean-ups thanks to Anton Lindqvist.
-
Version 0.1.6,
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 .pfdhref
.
In the latter cases, .UL
.
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.
Disable the semantic quotes
(where in HTML mode quotes would be rendered as
<q>
) and 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
-Thtml.
-
Version 0.1.5,
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
-X.
The -E flag, and the new -D, are used to control output modes just like -e and -d
for input.
-
Version 0.1.4,
Fix for compiling on FreeBSD. No other change.
-
Version 0.1.3,
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 <aside>
.
This is now deprecated by metadata parsing.
-
Version 0.1.2,
-
Version 0.1.1,
Fix escaping of -Tman and -Tnroff output, then rename -Tnroff to -Tms. Add
documentation to index page regarding hacking.
-
Version 0.1.0,
Initial public download of a stable release.