Vít Starý Novotný submitted an update to the
markdown
package.
Version: 3.14.1-0-g68371ac4 2026-03-27
License: lppl1.3c
Summary description: Converting and rendering markdown documents inside TeX
Announcement text:
----------------------------------------------------------------------
## 3.14.1 (2026-03-27)
### Fixes
This version of the Markdown package has fixed the following issues:
- Collapse spaces at the end of a line, even if these spaces originate from
HTML entities. (reported by @jonathan-gruber-jg in #618, fixed in #624)
- Do not consume blank lines following a line from a line block. (#627, #629)
This prevents bad interactions between a preceding line block and a following
pipe table when the `lineBlocks` and `pipeTables` options are enabled.
- Distinguish pure comment lines from partial comment lines. (#628, #630)
This prevents pure comment lines from being treated as extra blank lines
for the purpose of distinguishing between inter-block and paragraph
separators.
- Strip trailing spaces from table captions with attributes. (reported by
@lostenderman in #638, fixed in #639)
- Fix acronyms breaking various elements. (reported in #625, fixed by
@lostenderman in #626)
### Continuous integration
This version of the Markdown package has made the following changes to our
continuous integration:
- Bump `crazy-max/ghaction-github-pages` from 4 to 5. (added by @dependabot in
#632)
- Bump `actions/upload-artifact` from 6 to 7. (added by @dependabot in #633)
- Bump `docker/login-action` from 3 to 4. (added by @dependabot in #634)
- Migrate from deprecated `TeX-Live/setup-texlive-action@v3` to
`zauguin/install-texlive@v4`. (#636, 3c4c6bb0)
- Test the package on both TeX Live 2025 and 2026.
(#631, ff23b28..81928d7, 1a98fa99..c7ef926a)
### Miscellaneous
This version of the Markdown package has made the following other changes:
- Replace `mtxrun --luatex --generate` with `context --generate --luatex`
in the user manual and `Dockerfile`. (@hanshagen and @gucci-on-fleek in #637)
## 3.14.0 (2026-02-26)
### Enhancements
This version of the Markdown package has made the following new enhancements:
- Support the new prepending (`^=`) and appending (`$=`) operators for
renderers and renderer prototypes. (#232, #617)
- Support the prepending and appending operators (`^=`, `+=`, and `$=`) for
comma-list options like `extensions`. (#232, #621)
- In theme `witiko/diagrams`, add parameter `command` for Mermaid diagrams.
(#616, #622)
For example, you can use different icon packs as follows:
```` tex
\documentclass{article}
\usepackage[import=witiko/diagrams@v2]{markdown}
\begin{document}
\begin{markdown}
``` mermaid {command = "mmdc --iconPacks '@iconify-json/logos'"}
architecture-beta
group api(logos:aws-lambda)[API]
service db(logos:aws-aurora)[Database] in api
service disk1(logos:aws-glacier)[Storage] in api
service disk2(logos:aws-s3)[Storage] in api
service server(logos:aws-ec2)[Server] in api
db:L -- R:server
disk1:T -- B:server
disk2:T -- B:db
```
\end{markdown}
\end{document}
````
- Recognize acronyms, initialisms, and other all-caps sequences. (suggested by
@witiko, @michal-h21, and @TeXhackse in #615 and at [matrix.org][matrix-615],
implemented in #623 and e2747530..3e14fa11)
For example, you can automatically format acronyms in your LaTeX documents as
follows:
``` tex
\documentclass{article}
\usepackage[plain]{markdown}
\markdownSetup {
% Format the following words as acronyms.
acronyms = {HTML, YAML}, % We can also easily fill this list from e.g.
YAML and other external sources.
renderers = {
% Format acronyms as small caps.
acronym = \textsc{\MakeLowercase{#1}},
},
}
\begin{document}
\begin{markdown}
HTML and YAML are two staples of modern tooling that often get mentioned
in the same breath, even though they live in very different layers of the
stack.
\end{markdown}
\end{document}
```
The default definitions for LaTeX also provide support for explicit markup
for acronyms, as well as an integration with the `glossaries` package:
``` tex
\documentclass{article}
\usepackage{microtype, hyperref}
\usepackage[acronym]{glossaries}
\makeglossaries
\newacronym{html}{HTML}{hypertext markup language}
\newacronym{yaml}{YAML}{yet another markup language}
\usepackage[bracketed_spans]{markdown}
\begin{document}
\begin{markdown}
HTML and YAML are two staples of modern tooling that often get mentioned
in the same breath, even though they live in very different layers of the
stack.
You may also use explicit markup: [HTML]{.acronym}. This works even if the
acronym hasn't been registered with the glossaries package: [JSON]{.acronym}.
\end{markdown}
\printacronyms
\end{document}
```
Compile the above example document `⟨filename⟩.tex` with the following
commands:
```
lualatex ⟨filename⟩.tex
makeglossaries ⟨filename⟩
lualatex ⟨filename⟩.tex
```
If you are not using the default definitions for LaTeX (for example, when
loading the package with the `plain` or `noDefaults` options), you can import
the `glossaries` acronyms manually as follows:
``` tex
\markdownSetup {
import = witiko/glossaries@v1,
snippet = witiko/glossaries/import-acronyms,
}
```
- Allow absolute snippet names in `\markdownSetupSnippet { ... }` and
`\markdownSetup { snippet = ... }`. (#623)
Absolute snippet names are prefixed with a slash (`/`). The leading slash is
stripped, and the remaining name is used as-is. In contrast, relative snippet
names are prefixed with the name of the currently processed theme, if any.
For consistency, a leading slash may also be used in
`\markdownSetup { theme = ... }` and `{ import = ... }`. Theme names,
however, are currently always absolute, so the slash is only a syntactic
normalization and has no semantic effect.
For example, the following code also imports the `glossaries` acronyms:
``` tex
\markdownSetup {
import = /witiko/glossaries@v1,
snippet = /witiko/glossaries/import-acronyms,
}
```
The slash before `witiko/glossaries/import-acronyms` ensures that the correct
snippet is loaded even when used from within another theme. Without the
leading slash, the snippet name would instead be resolved as
`⟨current theme name⟩/witiko/glossaries/import-acronyms`.
By contrast, the slash before `witiko/glossaries@v1` is optional and provided
only for consistency. Therefore, the following code would have the same
effect:
``` tex
\markdownSetup {
import = witiko/glossaries@v1,
snippet = /witiko/glossaries/import-acronyms,
}
```
[matrix-615]:
https://matrix.to/#/!pznomuvubVyxElflTe:matrix.org/$PSrg2dlpGUMastZzUGOpm08HfM3wHpQryZCIyepuZoA?via=matrix.org&via=im.f3l.de
----------------------------------------------------------------------
The package’s Catalogue entry can be viewed at
https://ctan.org/pkg/markdown
The package’s files themselves can be inspected at
https://mirrors.ctan.org/macros/generic/markdown/
----------------------------------------------------------------------
Thanks for the upload.
For the CTAN Team
Vincent Goulet
----------------------------------------------------------------------
CTAN is run entirely by volunteers and supported by TeX user groups.
Please join a user group or donate to one, see https://ctan.org/lugs
_______________________________________________
ctan-ann mailing list -- [email protected]
To unsubscribe send an email to [email protected]