Skip to content

Releases: kristapsdz/lowdown

Version 1.3.2

10 Dec 18:03
9f07635
Compare
Choose a tag to compare

Add --template functionality to -tman, -tms, and -tgemini.

Add and(), or(), and not() as initial values to template expressions. These allow for ifdef to test for multiple values at once.

Document all escape*() modifiers.

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.

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

06 Dec 03:12
6c42fe9
Compare
Choose a tag to compare

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

01 Dec 18:39
7f0c339
Compare
Choose a tag to compare

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

25 Oct 03:58
8fdb02c
Compare
Choose a tag to compare

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

02 Oct 18:06
5b4ca5e
Compare
Choose a tag to compare

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

24 Sep 22:53
5c4df47
Compare
Choose a tag to compare

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

08 Nov 01:44
67d206c
Compare
Choose a tag to compare

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

20 May 19:14
45c3ffa
Compare
Choose a tag to compare

(Version notes copied from the official history.)

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

20 Apr 20:27
fc1191e
Compare
Choose a tag to compare

(Version notes copied from the official history.)

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.