\section{Changelog}\label{changelog}
\begin{itemize}
\item
2025/04/14
\begin{itemize}
\tightlist
\item
version \texttt{0.4d} released.
\end{itemize}
\item
2025/04/11
\begin{itemize}
\tightlist
\item
support \texttt{-\/-build-dir} in \texttt{autohtlatex}
\end{itemize}
\item
2025/03/12
\begin{itemize}
\tightlist
\item
added \texttt{Make:autohtlatex} function to automate
\LaTeX~compilation, ensuring repeated runs until temporary file
checksums stabilize or a max limit is reached. This function is used
by default instead of \texttt{Make:htlatex}.
\end{itemize}
\item
2025/03/02
\begin{itemize}
\tightlist
\item
fixed bug in the \texttt{make4ht-indexing} library. If subentries
generated by Xindex keywords were only numbers, they were mistaken
for the page numbers.
https://tug.org/pipermail/tex4ht/2025q1/003699.html
\end{itemize}
\item
2025/02/19
\begin{itemize}
\tightlist
\item
version \texttt{0.4c} released.
\end{itemize}
\item
2025/02/03
\begin{itemize}
\tightlist
\item
added the \texttt{nodynamicodt} extension. It removes dynamic
content from ODT files.
https://puszcza.gnu.org.ua/bugs/?505\#discussion
\end{itemize}
\item
2025/01/15
\begin{itemize}
\tightlist
\item
fixed handling of commands with number as optional arguments in the
\texttt{make4ht-indexing} library.
https://fosstodon.org/@juergen\
[email protected]/113809011903088411
\end{itemize}
\item
2025/01/09
\begin{itemize}
\tightlist
\item
convert horizontal rules in MathML arrays to the \texttt{rowlines}
attribute.
https://tex.stackexchange.com/a/734616/2891
\end{itemize}
\item
2025/01/06
\begin{itemize}
\tightlist
\item
use Unicode characters for MathML font styles.
https://tex.stackexchange.com/a/734331/2891
\end{itemize}
\item
2024/12/23
\begin{itemize}
\tightlist
\item
fixed bug in the \texttt{make4ht-indexing} library. It didn't handle
index entries with the duplicate locator number that were broken
over several lines correctly.
https://tex.stackexchange.com/a/733106/2891
\end{itemize}
\item
2024/12/20
\begin{itemize}
\tightlist
\item
remove duplicate index locators in the \texttt{make4ht-indexing}
library.
https://tex.stackexchange.com/a/733106/2891
\end{itemize}
\item
2024/12/19
\begin{itemize}
\tightlist
\item
fixed fatal error caused by handling comments in the
\texttt{fixinlines} DOM filter.
\end{itemize}
\item
2024/12/17
\begin{itemize}
\tightlist
\item
keep track of braces around index entries page numbers.
https://tex.stackexchange.com/a/733106/2891
\end{itemize}
\item
2024/12/08
\begin{itemize}
\tightlist
\item
support other index locators than index command counters.
https://tex.stackexchange.com/a/732446/2891
\end{itemize}
\item
2024/12/05
\begin{itemize}
\tightlist
\item
recognize inline math and comments as inline content in the
\texttt{fixinlines} DOM filter.
\end{itemize}
\item
2024/11/09
\begin{itemize}
\tightlist
\item
fixed \texttt{tablerows} for longtables longer than 200 rows.
https://tex.stackexchange.com/a/730466/2891
\end{itemize}
\item
2024/10/22
\begin{itemize}
\tightlist
\item
version \texttt{0.4b} released.
\item
test for the existence of the class atribute of tables before
performing string matches in the \texttt{tablerows} DOM filter.
\end{itemize}
\item
2024/10/21
\begin{itemize}
\tightlist
\item
version \texttt{0.4a} released.
\end{itemize}
\item
2024/09/30
\begin{itemize}
\tightlist
\item
remove last empty row in \texttt{longtable} environments.
\end{itemize}
\item
2024/09/25
\begin{itemize}
\tightlist
\item
added \texttt{make4ht-char-def} library to remove dependency on
\texttt{char-def} from ConTeXt. It is used by the \texttt{sectionid}
DOM filter. The library is automatically created from
UnicodeData.txt by \texttt{tools/make\_chardata.lua}.
https://tex.stackexchange.com/q/727202/2891
\end{itemize}
\item
2024/09/18
\begin{itemize}
\tightlist
\item
print error messages from the \texttt{log} file.
\end{itemize}
\item
2024/08/22
\begin{itemize}
\tightlist
\item
print debug message with XML parsing error context
\end{itemize}
\item
2024/08/21
\begin{itemize}
\tightlist
\item
try the HTML parser for DOM filters if XML parser fails.
\end{itemize}
\item
2024/06/18
\begin{itemize}
\tightlist
\item
changed default scaling in \texttt{dvisvgm\_hashes} to 1.4.
\end{itemize}
\item
2024/06/17
\begin{itemize}
\tightlist
\item
fixed support for index entries that are broken over several lines.
\end{itemize}
\item
2024/05/29
\begin{itemize}
\tightlist
\item
create temporary Lg file for Xtpipes.
https://github.com/michal-h21/make4ht/issues/148\#issuecomment-2136160818
\item
fixed handling of the generated ODT file, don't copy it
unnecessarily and handle build and output directories.
https://github.com/michal-h21/make4ht/issues/148\#issuecomment-2136160818
\end{itemize}
\item
2024/04/23
\begin{itemize}
\tightlist
\item
test if referenced files are contained in the \texttt{build-dir}
directory, use the current dir otherwise.
https://github.com/michal-h21/tex4ebook/issues/126
\end{itemize}
\item
2024/04/16
\begin{itemize}
\tightlist
\item
fixed bug in \texttt{dvisvgm\_hashes} log parsing. On Windows, it
didn't expect \texttt{\textbackslash{}r} characters at the line
ends, they then ended in new SVG filenames.
\end{itemize}
\item
2024/04/15
\begin{itemize}
\tightlist
\item
made the \texttt{make} command used in the \texttt{dvisvgm\_hashes}
extension configurable.
https://tex.stackexchange.com/q/715633/2891
\end{itemize}
\item
2024/03/29
\begin{itemize}
\tightlist
\item
ignore numbers in braces in \texttt{make4ht-indexing} library.
https://tex.stackexchange.com/q/714247/2891
\end{itemize}
\item
2024/02/22
\begin{itemize}
\tightlist
\item
version \texttt{0.4} released
\item
fixed name of the \texttt{\textless{}title-group\textgreater{}}
element in JATS output.
\end{itemize}
\item
2024/02/21
\begin{itemize}
\tightlist
\item
add standalone minus sign to the
\texttt{\textless{}mn\textgreater{}} element in MathML.
\end{itemize}
\item
2024/01/26
\begin{itemize}
\tightlist
\item
fixed passing of the params table in the \texttt{staticsite}
extension.
\end{itemize}
\item
2024/01/22
\begin{itemize}
\tightlist
\item
don't enable parsing of void elements in DOM filter with XML output
formats.
\end{itemize}
\item
2023/12/15
\begin{itemize}
\tightlist
\item
call \texttt{fix\_rel\_mo} MathML fix only in the ODT output.
\end{itemize}
\item
2023/12/11
\begin{itemize}
\tightlist
\item
fixed handling of the \texttt{-\/-build-dir} argument in
\texttt{dvisvgm\_hashes} extension.
\end{itemize}
\item
2023/11/03
\begin{itemize}
\tightlist
\item
remove leading dashes in ids created by the \texttt{sectionid} DOM
filter.
\end{itemize}
\item
2023/10/26
\begin{itemize}
\tightlist
\item
check that removed elements in the \texttt{sectionid} DOM filter are
\texttt{\textless{}a\textgreater{}} elements.
\end{itemize}
\item
2023/10/25
\begin{itemize}
\tightlist
\item
fixed addition of named IDs to figures.
\end{itemize}
\item
2023/10/19
\begin{itemize}
\tightlist
\item
print info about packages with no corresponding \texttt{.4ht} file.
\end{itemize}
\item
2023/10/05
\begin{itemize}
\tightlist
\item
added fix for LibreOffice's bug regarding relation type math
operators.
\end{itemize}
\item
2023/10/03
\begin{itemize}
\tightlist
\item
fixed most features that didn't work with the \texttt{-\/-build-dir}
argument.
\end{itemize}
\item
2023/10/02
\begin{itemize}
\tightlist
\item
working on new command line argument \texttt{-\/-build-dir}. It
should allow moving of temporary files to a temporary directory. The
idea and most of the code comes from Robin Seth Ekman.
\end{itemize}
\item
2023/09/07
\begin{itemize}
\tightlist
\item
fix spacing for the \texttt{dcases*} environment in the
\texttt{mathml\_fixes} DOM filter.
\end{itemize}
\item
2023/08/24
\begin{itemize}
\tightlist
\item
support non-numerical values in index entry destinations (for
example roman numerals).
\end{itemize}
\item
2023/08/22
\begin{itemize}
\tightlist
\item
updated list of DOM filters used by the \texttt{common\_domfilters}
extension, and documented that it is used automatically in the HTML
output.
\end{itemize}
\item
2023/08/12
\begin{itemize}
\tightlist
\item
remove unnecessary \texttt{\textless{}a\textgreater{}} elements with
\texttt{id} attributes and set the \texttt{id} on the parent.
\end{itemize}
\item
2023/07/06
\begin{itemize}
\tightlist
\item
add prefix to section IDs if the section name is empty.
\end{itemize}
\item
2023/06/20
\begin{itemize}
\tightlist
\item
added the \texttt{copy\_images} extension.
\end{itemize}
\item
2023/06/14
\begin{itemize}
\tightlist
\item
fixed bug in the \texttt{mathmlfixes} DOM filter -- non-empty last
rows were removed if they contained only one element.
\end{itemize}
\item
2023/05/26
\begin{itemize}
\tightlist
\item
load \texttt{tex4ht.sty} before input file processing starts.
\end{itemize}
\item
2023/04/19
\begin{itemize}
\tightlist
\item
handle additional characters in the \texttt{idcolons} DOM filter.
\end{itemize}
\item
2023/04/06
\begin{itemize}
\tightlist
\item
fixed handling of ID attributes in the \texttt{idcolons} DOM filter.
\end{itemize}
\item
2023/03/07
\begin{itemize}
\tightlist
\item
remove empty rows in \texttt{longtable}.
\end{itemize}
\item
2023/02/24
\begin{itemize}
\tightlist
\item
version \texttt{0.3k} released.
\end{itemize}
\item
2023/01/09
\begin{itemize}
\tightlist
\item
fixed detection of image file names in \texttt{mkutils.parse\_lg()}
\end{itemize}
\item
2022/11/25
\begin{itemize}
\tightlist
\item
reverted change of index page numbers, it was buggy
\item
test if the \texttt{.idx} file exists.
\end{itemize}
\item
2022/11/24
\begin{itemize}
\tightlist
\item
\texttt{make4ht-indexing}: fixed handling of numbers in index
entries text.
\end{itemize}
\item
2022/11/01
\begin{itemize}
\tightlist
\item
remove empty last rows in MathML tables.
\end{itemize}
\item
2022/10/21
\begin{itemize}
\tightlist
\item
added the \texttt{inlinecss} DOM filter and extension with the same
name.
\end{itemize}
\item
2022/09/29
\begin{itemize}
\tightlist
\item
the \texttt{join\_characters} DOM filter now shouldn't produce extra
\texttt{\textless{}span\textgreater{}} elements after white space.
\end{itemize}
\item
2022/09/16
\begin{itemize}
\tightlist
\item
use the \texttt{no\^{}} option to compile the \texttt{make4ht} HTML
docs, to prevent clash with the Doc package.
\end{itemize}
\item
2022/07/22
\begin{itemize}
\tightlist
\item
\texttt{mathmlfixes} DOM filter:
\begin{itemize}
\tightlist
\item
don't change \texttt{\textless{}mo\textgreater{}} to
\texttt{\textless{}mtext\textgreater{}} if the element contain the
\texttt{stretchy} attribute.
\item
add \texttt{\textless{}mtext\textgreater{}} to
\texttt{\textless{}mstyle\textgreater{}} if it contains only plain
text
\end{itemize}
\end{itemize}
\item
2022/07/08
\begin{itemize}
\tightlist
\item
configure elements used in \texttt{join\_characters} DOM filter.
\item
added support for the \texttt{mml:} prefix in \texttt{mathml\_fixes}
DOM filter.
\end{itemize}
\item
2022/06/28
\begin{itemize}
\tightlist
\item
handle \texttt{\textbackslash{}maketitle} in JATS.
\end{itemize}
\item
2022/06/24
\begin{itemize}
\tightlist
\item
handle internal and external links in the JATS output.
\item
better detection of empty paragraphs.
\end{itemize}
\item
2022/06/16
\begin{itemize}
\tightlist
\item
use DOM filters to fix JATS output.
\end{itemize}
\item
2022/04/22
\begin{itemize}
\tightlist
\item
use more explicit options for \texttt{latexmk}.
\end{itemize}
\item
2022/04/19
\begin{itemize}
\tightlist
\item
remove all \texttt{htlatex} calls from the build sequence when the
\texttt{latexmk\_build} extension is used.
\item
fixed other issues that caused spurious executions of
\texttt{latexmk}.
\end{itemize}
\item
2022/04/01
\begin{itemize}
\tightlist
\item
don't copy files to the output dir if it wasn't requested
\item
fixed copying of the ODT file to the output dir.
\end{itemize}
\item
2022/03/29
\begin{itemize}
\tightlist
\item
check if tidy return non-empty string in the \texttt{tidy}
extension.
\end{itemize}
\item
2022/03/24
\begin{itemize}
\tightlist
\item
don't use totally random names in the \texttt{preprocess\_input}
extension, in order to support images correctly.
\end{itemize}
\item
2022/03/22
\begin{itemize}
\tightlist
\item
version \texttt{0.3l} released.
\item
fixed issues with filenames on Windows.
\end{itemize}
\item
2022/03/01
\begin{itemize}
\tightlist
\item
use \texttt{rmarkdown} package to process \texttt{.rmd} files in the
\texttt{preprocess\_input} extension (thanks to James Clawson).
\end{itemize}
\item
2022/02/18
\begin{itemize}
\tightlist
\item
version \texttt{0.3k} released.
\end{itemize}
\item
2022/02/07
\begin{itemize}
\tightlist
\item
fixed support for some fonts in the ODT format.
\item
added \texttt{odtfonts} DOM filter.
\end{itemize}
\item
2022/01/30
\begin{itemize}
\tightlist
\item
fix \texttt{mathvariant} attribue of
\texttt{\textless{}mi\textgreater{}} elements if they are children
of \texttt{\textless{}mstyle\textgreater{}}.
\end{itemize}
\item
2021/12/17
\begin{itemize}
\tightlist
\item
quote jobname in order to support filenames like \texttt{(xxx).tex}.
\end{itemize}
\item
2021/12/13
\begin{itemize}
\tightlist
\item
fixed setting of properties in the \texttt{staticsite} filter.
\end{itemize}
\item
2021/12/06
\begin{itemize}
\tightlist
\item
in the end, use \texttt{\textless{}mtext\textgreater{}} even for one
\texttt{\textless{}mo\textgreater{}} in the \texttt{fix\_operators}
function. LO had issues with \texttt{\textless{}mi\textgreater{}}.
\end{itemize}
\item
2021/12/03
\begin{itemize}
\tightlist
\item
don't add additional \texttt{\textless{}mrow\textgreater{}} elements
in the \texttt{mathmlfixes} DOM filter. It caused various issues.
\end{itemize}
\item
2021/12/01
\begin{itemize}
\tightlist
\item
transform
\texttt{\textless{}mn\textgreater{}x\textless{}/mn\textgreater{}\textless{}mo\textgreater{}.\textless{}/mo\textgreater{}\textless{}mn\textgreater{}x\textless{}/mn\textgreater{}}
to
\texttt{\textless{}mn\textgreater{}x.x\textless{}/mn\textgreater{}}
in MathML.
\item
transform \texttt{\textless{}mo\textgreater{}} elements that are
single childs to \texttt{\textless{}mi\textgreater{}} in MathML, and
list of consecutive \texttt{\textless{}mo\textgreater{}} elements to
\texttt{\textless{}mtext\textgreater{}}. This should fix rendering
issues of superscripts in LibreOffice.
\item
added filter names in extensions to prevent multiple execution of
filters.
\end{itemize}
\item
2021/11/29
\begin{itemize}
\tightlist
\item
make current logging level available outside of the Logging module.
\item
print Xtpipes and Tidy output if these command fail in the Xtpipes
module.
\end{itemize}
\item
2021/11/18
\begin{itemize}
\tightlist
\item
don't put \texttt{\textless{}mrow\textgreater{}} as children of
\texttt{\textless{}mrow\textgreater{}} in the \texttt{mathmlfixes}
DOM filter.
\end{itemize}
\item
2021/11/04
\begin{itemize}
\tightlist
\item
more intelligent handling of text and inline elements outside of
paragraphs in the \texttt{fixinlines} DOM filter.
\end{itemize}
\item
2021/10/11
\begin{itemize}
\tightlist
\item
version \texttt{0.3j} released.
\end{itemize}
\item
2021/10/09
\begin{itemize}
\tightlist
\item
fixed wrong DOM object name in the ODT format.
\item
add addtional \texttt{\textless{}mrow\textgreater{}} elements when
necessary.
\end{itemize}
\item
2021/09/30
\begin{itemize}
\tightlist
\item
version \texttt{0.3i} released.
\end{itemize}
\item
2021/09/21
\begin{itemize}
\tightlist
\item
run DOM parse in sandbox in the ODT format picture size function.
\end{itemize}
\item
2021/09/20
\begin{itemize}
\tightlist
\item
remove LaTeX commands from TOC entries in \texttt{sectionid} DOM
filter.
\end{itemize}
\item
2021/09/09
\begin{itemize}
\tightlist
\item
corrected SVG dimension setting in the ODT output. Dimensions are
set also for PNG and JPG pictures.
\end{itemize}
\item
2021/09/05
\begin{itemize}
\tightlist
\item
corrected detection of closing brace in CSS style in \texttt{mjcli}
filter.
\end{itemize}
\item
2021/08/13
\begin{itemize}
\tightlist
\item
use LaTeX new hook mechanism to load \texttt{tex4ht.sty} before
document class. It fixes some issues with packages required in
classes.
\end{itemize}
\item
2021/08/12
\begin{itemize}
\tightlist
\item
correctly set dimensions for \texttt{SVG} images in the \texttt{ODT}
format.
\end{itemize}
\item
2021/07/29
\begin{itemize}
\tightlist
\item
sort YAML header in the \texttt{staticsite} filter.
\end{itemize}
\item
2021/07/25
\begin{itemize}
\tightlist
\item
version \texttt{0.3h} released.
\end{itemize}
\item
2021/07/25
\begin{itemize}
\tightlist
\item
use current directory as default output dir in \texttt{staticsite}
extension.
\end{itemize}
\item
2021/07/23
\begin{itemize}
\tightlist
\item
fixed detection of single paragraphs inside
\texttt{\textless{}li\textgreater{}} in the \texttt{itemparagraphs}
DOM filter.
\end{itemize}
\item
2021/07/18
\begin{itemize}
\tightlist
\item
remove elements produced by \texttt{\textbackslash{}maketitle} in
the \texttt{staticsite} extension.
\end{itemize}
\item
2021/07/05
\begin{itemize}
\tightlist
\item
sort colors alphabetically in the \texttt{joincolors} DOM filter to
enable reproducible builds.
\end{itemize}
\item
2021/06/26
\begin{itemize}
\tightlist
\item
rewrote the \texttt{collapsetoc} DOM filter.
\end{itemize}
\item
2021/06/20
\begin{itemize}
\tightlist
\item
test for the \texttt{svg} picture mode in the \texttt{tex4ht}
command. Use the \texttt{-g.svg} option if it is detected. This is
necessary for correct support of pictorial characters.
\end{itemize}
\item
2021/06/16
\begin{itemize}
\tightlist
\item
better handling of duplicate ID attributes in \texttt{sectionid} DOM
filter.
\item
support \texttt{notoc} option in \texttt{sectionid}.
\end{itemize}
\item
2021/06/13
\begin{itemize}
\tightlist
\item
added \texttt{itemparagraphs} DOM filter. It removes unnecessary
paragraphs from \texttt{\textless{}li\textgreater{}} elements.
\end{itemize}
\item
2021/05/06
\begin{itemize}
\tightlist
\item
remove \texttt{\textless{}hr\textgreater{}} elements in
\texttt{.hline} rows in \texttt{tablerows} DOM filter.
\end{itemize}
\item
2021/05/01
\begin{itemize}
\tightlist
\item
added function \texttt{mkutils.isModuleAvailable}. It checks if Lua
library is available.
\item
check for \texttt{char-def} library in \texttt{sectionid} DOM
filter.
\end{itemize}
\item
2021/04/08
\begin{itemize}
\tightlist
\item
removed \texttt{build\_changed}. New script,
\href{
https://github.com/michal-h21/siterebuild}{siterebuild},
should be used instead.
\item
new DOM filter, \texttt{sectionid}. It uses sanitized titles instead
of automatically generated numbers as section IDs.
\item
added \texttt{sectionid} to \texttt{common\_domfilters}.
\item
use \texttt{context} in the Docker file, because it contains the
\texttt{char-def.lua} file.
\end{itemize}
\item
2021/03/20
\begin{itemize}
\tightlist
\item
use \texttt{kpse} library when files are copied to the output
directory.
\item
added \texttt{clean} mode. It removes all generated, temporary and
auxilary files.
\end{itemize}
\item
2021/03/19
\begin{itemize}
\tightlist
\item
version \texttt{0.3g} released.
\end{itemize}
\item
2021/02/08
\begin{itemize}
\tightlist
\item
remove \texttt{\textless{}?xtpipes\ ?\textgreater{}} processing
instructions from the generated ODT file.
\end{itemize}
\item
2021/02/01
\begin{itemize}
\tightlist
\item
better error messages when extension cannot be loaded.
\item
added \texttt{mjcli} extension.
\item
\texttt{mjcli} filter supports \LaTeX~syntax.
\item
updated documentation.
\end{itemize}
\item
2021/01/31
\begin{itemize}
\tightlist
\item
added new MathJax Node filter, \texttt{mjcli}.
\end{itemize}
\item
2020/12/19
\begin{itemize}
\tightlist
\item
build web documentation only when documentation sources change.
\end{itemize}
\item
2020/11/22
\begin{itemize}
\tightlist
\item
set exit status for the \texttt{make4ht} command.
\end{itemize}
\item
2020/11/22
\begin{itemize}
\tightlist
\item
new extension, \texttt{build\_changed}.
\end{itemize}
\item
2020/11/01
\begin{itemize}
\tightlist
\item
fix deprecated \texttt{\textless{}mfenced\textgreater{}} element in
MathML
\item
convert \texttt{\textless{}mo\ fence\textgreater{}} elements to
\texttt{\textless{}mfenced\textgreater{}} in \texttt{ODT} format.
\end{itemize}
\item
2020/10/28
\begin{itemize}
\tightlist
\item
fixed handling of nested \texttt{\textless{}span\textgreater{}}
elements in \texttt{joincharacters} DOM filter.
\end{itemize}
\item
2020/10/25
\begin{itemize}
\tightlist
\item
fixed command name for \texttt{Make:httex}, it was
\texttt{Make:htttex}.
\end{itemize}
\item
2020/10/17
\begin{itemize}
\tightlist
\item
generate YAML header for all generated files with the
\texttt{staticsite} extension.
\end{itemize}
\item
2020/09/17
\begin{itemize}
\tightlist
\item
require \texttt{mathml} option when \texttt{mathjaxnode} extension
is used.
\end{itemize}
\item
2020/09/07
\begin{itemize}
\tightlist
\item
version \texttt{0.3f} released.
\end{itemize}
\item
2020/08/26
\begin{itemize}
\tightlist
\item
\texttt{fixinlines} DOM filter: added
\texttt{\textless{}a\textgreater{}} element into list of inline
elements.
\end{itemize}
\item
2020/08/24
\begin{itemize}
\tightlist
\item
initialize attributes in new element in \texttt{mathmlfixes} DOM
extension.
\end{itemize}
\item
2020/07/18
\begin{itemize}
\tightlist
\item
changed CSS for the HTML documentation.
\end{itemize}
\item
2020/07/17
\begin{itemize}
\tightlist
\item
fixed bug in index parsing.
\end{itemize}
\item
2020/07/10
\begin{itemize}
\tightlist
\item
use the \texttt{joincharacters} DOM filter for TEI output.
\end{itemize}
\item
2020/07/08
\begin{itemize}
\tightlist
\item
don't fail when filename cannot be detected in
\texttt{make4ht-errorlogparser.lua}.
\end{itemize}
\item
2020/05/27
\begin{itemize}
\tightlist
\item
test if copied file exists in \texttt{mkutils.cp}.
\end{itemize}
\item
2020/05/19
\begin{itemize}
\tightlist
\item
fixed image filename replace in \texttt{dvisvgm\_hashes} extension.
\end{itemize}
\item
2020/05/16
\begin{itemize}
\tightlist
\item
fixed HTML filename matching in extensions.
\end{itemize}
\item
2020/05/08
\begin{itemize}
\tightlist
\item
use global environment in the build files.
\end{itemize}
\item
2020/03/03
\begin{itemize}
\tightlist
\item
added \texttt{jats} format.
\end{itemize}
\item
2020/02/28
\begin{itemize}
\tightlist
\item
version \texttt{0.3e\ released}.
\end{itemize}
\item
2020/02/24
\begin{itemize}
\tightlist
\item
\texttt{t4htlinks} DOM filter: cleanup file names from internal
links.
\item
\texttt{make4ht-indexing}: added support for splitindex.
\end{itemize}
\item
2020/02/19
\begin{itemize}
\tightlist
\item
use \texttt{UTF-8} output by default. \texttt{8-bit} output is
broken and non fixable.
\end{itemize}
\item
2020/02/07
\begin{itemize}
\tightlist
\item
use \texttt{lualatex-dev} instead of \texttt{harflatex}
\end{itemize}
\item
2020/02/06
\begin{itemize}
\tightlist
\item
added support for \texttt{harflatex} and \texttt{harftex} in the
\texttt{detect\_engine} extension.
\end{itemize}
\item
2020/01/22
\begin{itemize}
\tightlist
\item
version \texttt{0.3d} released.
\item
added \texttt{Make:httex} command for Plain TeX support.
\item
added \texttt{detect\_engine} extension. It supports detection of
the used engine and format from TeX Shop or TeXWorks magic comments.
These comments can look like:
\texttt{\%!TEX\ TS-program\ =\ xelatex}.
\end{itemize}
\item
2020/01/22
\begin{itemize}
\tightlist
\item
fixed support for multiple indices in \texttt{make4ht-indexing.lua}.
\end{itemize}
\item
2019/12/29
\begin{itemize}
\tightlist
\item
use the \texttt{mathvariant="italic"} attribute for joined
\texttt{\textless{}mi\textgreater{}} elements.
\item
fixed comparison of element attributes in \texttt{joincharacters}
DOM filter.
\end{itemize}
\item
2019/12/28
\begin{itemize}
\tightlist
\item
print warning if the input file doesn't exist.
\end{itemize}
\item
2019/12/17
\begin{itemize}
\tightlist
\item
added \texttt{booktabs} DOM filter.
\item
load the \texttt{booktabs} in \texttt{common\_domfilters} by
default.
\end{itemize}
\item
2019/12/14
\begin{itemize}
\tightlist
\item
fixed bug in the \texttt{tablerows} DOM filter -- it could remove
table rows if they contained only one column with elements that
contained no text content.
\end{itemize}
\item
2019/11/28
\begin{itemize}
\tightlist
\item
version \texttt{0.3c} released.
\item
updated \texttt{mathmlfixes} DOM filter. It handles
\texttt{\textless{}mstyle\textgreater{}} element inside token
elements now.
\item
use \texttt{mathmlfixes} and \texttt{joincharacters} DOM filters for
math XML files in the ODT output.
\end{itemize}
\item
2019/11/25
\begin{itemize}
\tightlist
\item
added \texttt{pythontex} command.
\item
added \texttt{mathmlfixes} DOM filter.
\item
use the \texttt{mathmlfixes} DOM filter in
\texttt{common\_domfilters} extension.
\end{itemize}
\item
2019/11/22
\begin{itemize}
\tightlist
\item
\texttt{make4ht-joincharacters} dom filter: added support for the
\texttt{\textless{}mi\textgreater{}} element. Test all attributes
for match when joining characters.
\item
\texttt{html5} format: use the \texttt{common\_domfilters} by
default.
\end{itemize}
\item
2019/11/03
\begin{itemize}
\tightlist
\item
version \texttt{0.3b}
\item
use \texttt{make4ht-ext-} prefix for extensions to prevent filename
clashes with corresponding filters.
\end{itemize}
\item
2019/11/01
\begin{itemize}
\tightlist
\item
version \texttt{0.3a} released.
\item
added \texttt{make4ht-} prefix to all extensions and formats
\item
removed the unused \texttt{mathjaxnode.lua} file.
\end{itemize}
\item
2019/11/01
\begin{itemize}
\tightlist
\item
version \texttt{0.3} released.
\item
added \texttt{Make:makeindex}, \texttt{Make:xindex} and
\texttt{Make:bibtex} commands.
\end{itemize}
\item
2019/10/25
\begin{itemize}
\tightlist
\item
modified the \texttt{Make:xindy} command to use the indexing
mechanism.
\end{itemize}
\item
2019/10/24
\begin{itemize}
\tightlist
\item
added functions for preparing and cleaning of the index files in
\texttt{make4ht-indexing.lua}.
\end{itemize}
\item
2019/10/23
\begin{itemize}
\tightlist
\item
replaced \texttt{os.execute} function with \texttt{mkutils.execute}.
It uses the logging mechanism for the output.
\item
finished transforming of filters, extensions and formats to the
logging system.
\end{itemize}
\item
2019/10/22
\begin{itemize}
\tightlist
\item
added \texttt{tablerows} domfilter.
\item
added the \texttt{tablerows} domfilter to the
\texttt{common\_domfilters} extension.
\item
converted most of the filters to use the logging mechanism.
\end{itemize}
\item
2019/10/20
\begin{itemize}
\tightlist
\item
added \texttt{status} log level.
\end{itemize}
\item
2019/10/18
\begin{itemize}
\tightlist
\item
converted most print commands to use the logging mechanism.
\item
added \texttt{output} log level used for printing of the commands
output.
\end{itemize}
\item
2019/10/17
\begin{itemize}
\tightlist
\item
added \texttt{-\/-loglevel} CLI parameter.
\item
added logging mechanism.
\item
moved \texttt{htlatex} related code to \texttt{make4ht-htlatex.lua}
from \texttt{mkutils.lua}
\end{itemize}
\item
2019/10/11
\begin{itemize}
\tightlist
\item
added \texttt{xindy} settings.
\item
added simple regular expression to detect errors in the log file,
because log parsing can be slow.
\end{itemize}
\item
2019/10/09
\begin{itemize}
\tightlist
\item
added the \texttt{interaction} parameter for the \texttt{htlatex}
command. The default value is \texttt{batchmode} to suppress the
user input on errors, and to suppress full log output to the
terminal.
\item
added the \texttt{make4ht-errorlogparser} module. It is used to
parse errors in the \texttt{htlatex} run unless \texttt{interaction}
is set to \texttt{errorstopmode}.
\end{itemize}
\item
2019/10/08
\begin{itemize}
\tightlist
\item
set up Github Actions pipeline to compile the documentation to HTML
and publish it at
https://www.kodymirus.cz/make4ht/make4ht-doc.html.
\end{itemize}
\item
2019/10/07
\begin{itemize}
\tightlist
\item
don't move the \texttt{common\_domfilters} extension to the first
place in the file matches pipeline. We may want to run \texttt{tidy}
or regex filters first, to fix XML validation errors.
\end{itemize}
\item
2019/10/04
\begin{itemize}
\tightlist
\item
added HTML documentation.
\end{itemize}
\item
2019/09/27
\begin{itemize}
\tightlist
\item
don't convert Latin 1 entities to Unicode in the
\texttt{entities\_to\_unicode} extension.
\end{itemize}
\item
2019/09/20
\begin{itemize}
\tightlist
\item
fixed bugs in the temporary directory handling for the ODT output.
\end{itemize}
\item
2019/09/13
\begin{itemize}
\tightlist
\item
added \texttt{preprocess\_input} extension. It enables compilation
of formats supported by \href{
https://yihui.name/knitr/}{Knitr}
(\texttt{.Rnw}, \texttt{.Rtex}, \texttt{.Rmd}, \texttt{.Rrst}) and
also Markdown and reStructuredText formats.
\end{itemize}
\item
2019/09/12
\begin{itemize}
\tightlist
\item
added support for the ODT files in \texttt{common\_domfilters}
extension.
\item
renamed \texttt{charclases} option for the \texttt{joincharacters}
DOM filter to \texttt{charclasses}.
\item
don't execute the \texttt{fixentities} filter before Xtpipes, it
makes no sense.
\end{itemize}
\item
2019/09/11
\begin{itemize}
\tightlist
\item
added support for Biber in the build files.
\end{itemize}
\item
2019/08/28
\begin{itemize}
\tightlist
\item
added support for input from \texttt{stdin}.
\end{itemize}
\item
2019/08/27
\begin{itemize}
\tightlist
\item
fixed \texttt{-jobname} detection regex.
\item
added function \texttt{handle\_jobname}.
\item
added the \texttt{-\/-jobname} command line option.
\end{itemize}
\item
2019/08/26
\begin{itemize}
\tightlist
\item
quote file names and paths in \texttt{xtpipes} and \texttt{tidy}
invocation.
\end{itemize}
\item
2019/08/25
\begin{itemize}
\tightlist
\item
the issue tracker link in the help message is now configurable.
\item
fixed bug in the XeTeX handling: the \texttt{.xdv} argument for
\texttt{tex4ht} wasn't used if command line arguments for
\texttt{tex4ht} were present.
\end{itemize}
\item
2019/07/03
\begin{itemize}
\tightlist
\item
new DOM filter: \texttt{odtpartable}. It fixes tables nested in
paragraphs in the ODT format.
\end{itemize}
\item
2019/06/13
\begin{itemize}
\tightlist
\item
new DOM extension: \texttt{collapsetoc}.
\end{itemize}
\item
2019/05/29
\begin{itemize}
\tightlist
\item
new module: \texttt{make4ht-indexing} for working with index files.
\end{itemize}
\item
2019/05/24
\begin{itemize}
\tightlist
\item
version 0.2g released
\item
fixed failing \texttt{dvisvgm\_hashes} extension on Windows.
\end{itemize}
\item
2019/05/02
\begin{itemize}
\tightlist
\item
fixed infinite loop bug in the \texttt{dvisvgm\_hashes} extension.
\end{itemize}
\item
2019/04/09
\begin{itemize}
\tightlist
\item
\texttt{make4ht-joincolors} fix: remove the hash character from the
color name. This caused issues with colors specified in the
hexadecimal format.
\end{itemize}
\item
2019/04/02
\begin{itemize}
\tightlist
\item
\texttt{dvisvgm\_hashes} fix: update also the lgfile.images table
with generated filenames, in order to support tex4ebook
\end{itemize}
\item
2019/04/01
\begin{itemize}
\tightlist
\item
fixed bug in \texttt{dvisvgm\_hashes} extension: didn't check for
table index existence in string concenation
\end{itemize}
\item
2019/03/21
\begin{itemize}
\tightlist
\item
version 0.2f released
\end{itemize}
\item
2019/03/15
\begin{itemize}
\tightlist
\item
check for the image dimensions existence in the
\texttt{odtimagesize} domfilter.
\end{itemize}
\item
2019/03/13
\begin{itemize}
\tightlist
\item
don't use \texttt{odtimagesize} domfilter in the \texttt{ODT}
format, the issue it fixes had been resolved in \texttt{tex4ht}.
\end{itemize}
\item
2019/03/08
\begin{itemize}
\tightlist
\item
use \texttt{\%USERPROFILE} for home dir search on Windows.
\end{itemize}
\item
2019/01/28
\begin{itemize}
\tightlist
\item
added \texttt{joincolors} domfilter and \texttt{join\_colors}
extension. It can join CSS rules created for the LaTeX colors and
update the HTML file.
\end{itemize}
\item
2019/01/22
\begin{itemize}
\tightlist
\item
version 0.2e released
\item
updated the \texttt{odttemplate} filter. It will use styles from the
generated ODT file that haven't been present in the template file.
\end{itemize}
\item
2019/01/10
\begin{itemize}
\tightlist
\item
version 0.2d released
\end{itemize}
\item
2019/01/05
\begin{itemize}
\tightlist
\item
added \texttt{docbook} and \texttt{tei} output formats.
\end{itemize}
\item
2018/12/19
\begin{itemize}
\tightlist
\item
new library: \texttt{make4ht-xtpipes.lua}. It contains code for
xtpipes handling.
\item
moved Xtpipes handling code from \texttt{formats/odt.lua}.
\end{itemize}
\item
2018/12/18
\begin{itemize}
\tightlist
\item
new filter: \texttt{odttemplate}. It can be used for replacing style
in a generated \texttt{ODT} file by a style from another existing
\texttt{ODT} file.
\item
new extension: \texttt{odttemplate}. Companioning extension for
filter with the same name.
\item
fixed bug in \texttt{make4ht-filters.lua}: the parameters table
haven't been passed to filters.
\end{itemize}
\item
2018/12/17
\begin{itemize}
\tightlist
\item
fixed extension handling. The disabling from the command line didn't
take precedence over extensions enabled in the config file.
Extensions also could be executed multiple times.
\end{itemize}
\item
2018/11/08
\begin{itemize}
\tightlist
\item
removed replacing newlines by blank strings in the
\texttt{joincharacters} domfilter. The issue it fixed doesn't seem
to exist anymore, and it ate spaces sometimes.
\end{itemize}
\item
2018/11/01
\begin{itemize}
\tightlist
\item
added \texttt{t4htlinks} domfilter
\item
fixed the \texttt{xtpipes} and \texttt{filters} execution order in
the \texttt{ODT} format
\end{itemize}
\item
2018/10/26
\begin{itemize}
\tightlist
\item
fixed ODT generation for files that contains special characters for
Lua string patterns
\item
replace non-breaking spaces with entities. It caused issues in LO
\end{itemize}
\item
2018/10/18
\begin{itemize}
\tightlist
\item
fixed the executable installation
\end{itemize}
\item
2018/09/16
\begin{itemize}
\tightlist
\item
added the \texttt{scale} option for \texttt{dvisvgm\_hashes}
extension
\end{itemize}
\item
2018/09/14
\begin{itemize}
\tightlist
\item
require the \texttt{-dvi} option with \texttt{latexmk\_build}
extension
\end{itemize}
\item
2018/09/12
\begin{itemize}
\tightlist
\item
added \texttt{xindy} command for the build file
\end{itemize}
\item
2018/09/03
\begin{itemize}
\tightlist
\item
expanded the \texttt{-\/-help} option
\end{itemize}
\item
2018/08/27
\begin{itemize}
\tightlist
\item
added \texttt{odtimagesize} domfilter
\item
load \texttt{odtimagesize} by default in the ODT format
\end{itemize}
\item
2018/08/23
\begin{itemize}
\tightlist
\item
released version 0.2c
\end{itemize}
\item
2018/08/21
\begin{itemize}
\tightlist
\item
added processor core detection on Windows
\item
make processor number configurable
\item
updated the documentation.
\end{itemize}
\item
2018/08/20
\begin{itemize}
\tightlist
\item
added \texttt{dvisvgm\_hashes} extension
\end{itemize}
\item
2018/07/03
\begin{itemize}
\tightlist
\item
create the \texttt{mimetype} file to achieve the ODT file validity
\end{itemize}
\item
2018/07/02
\begin{itemize}
\tightlist
\item
disabled conversion of XML entities for \&, \textless{} and
\textgreater{} characters back to Unicode, because it breaks XML
validity
\end{itemize}
\item
2018/06/27
\begin{itemize}
\tightlist
\item
fixed root dir detection
\end{itemize}
\item
2018/06/26
\begin{itemize}
\tightlist
\item
added code for detection of TeX distribution root for Miktex and TL
\end{itemize}
\item
2018/06/25
\begin{itemize}
\tightlist
\item
moved call to \texttt{xtpipes} from \texttt{t4ht} to the
\texttt{ODT} format drives. This should fix issues with path
expansion in \texttt{tex4ht.env} in TeX distributions.
\end{itemize}
\item
2018/06/22
\begin{itemize}
\tightlist
\item
added \texttt{mkutils.find\_zip} function. It detects \texttt{zip}
or \texttt{miktex-zip} executables
\end{itemize}
\item
2018/06/19
\begin{itemize}
\tightlist
\item
added new filter: \texttt{entities-to-unicode}. It converts XML
entites for Unicode characters back to Unicode.
\item
execute \texttt{entities-to-unicode} filter on text and math files
in the ODT output.
\end{itemize}
\item
2018/06/12
\begin{itemize}
\tightlist
\item
added support for direct \texttt{ODT} file packing
\end{itemize}
\item
2018/06/11
\begin{itemize}
\tightlist
\item
new function available for formats, \texttt{format.modify\_build}
\item
function \texttt{mkutils.delete\_dir} for directory removal
\item
function \texttt{mkutils.mv} for file moving
\item
started on packing of the \texttt{ODT} files directly by the format,
instead of \texttt{t4ht}
\end{itemize}
\item
2018/06/08
\begin{itemize}
\tightlist
\item
added support for filenames containing spaces
\item
added support for filenames containing non-ascii characters
\item
don't require sudo for the installation, let the user to install
symbolic links to \texttt{\$PATH}
\end{itemize}
\item
2018/05/03
\begin{itemize}
\tightlist
\item
released version \texttt{0.2b}
\item
bug fix: use only \texttt{load} function in \texttt{Make:run}, in
order to support a local environment.
\end{itemize}
\item
2018/05/03
\begin{itemize}
\tightlist
\item
released version \texttt{0.2a}
\item
renamed \texttt{latexmk} extension to \texttt{latexmk\_build}, due
to clash in TL
\end{itemize}
\item
2018/04/18
\begin{itemize}
\tightlist
\item
\texttt{staticsite} extension:
\begin{itemize}
\tightlist
\item
make YAML header configurable
\item
set the \texttt{time} and \texttt{updated} headers
\end{itemize}
\item
don't override existing tables in \texttt{filter\_settings}
\end{itemize}
\item
2018/04/17
\begin{itemize}
\tightlist
\item
done first version of \texttt{staticsite} extension
\end{itemize}
\item
2018/04/16
\begin{itemize}
\tightlist
\item
check for Git repo in the Makefile, don't run Git commands outside
of repo
\end{itemize}
\item
2018/04/15
\begin{itemize}
\tightlist
\item
added \texttt{staticsite} filter
\item
working on \texttt{staticsite} extension
\end{itemize}
\item
2018/04/13
\begin{itemize}
\tightlist
\item
use \texttt{ipairs} instead of \texttt{pairs} to traverse lists of
images and image match functions
\item
load extensions in the correct order
\end{itemize}
\item
2018/04/09
\begin{itemize}
\tightlist
\item
released version \texttt{0.2}
\item
disabled default loading of \texttt{common\_domfilters} extension
\end{itemize}
\item
2018/04/06
\begin{itemize}
\tightlist
\item
added \texttt{Make:enable\_extension} and
\texttt{Make:disable\_extension} functions
\item
documented the configuration file
\end{itemize}
\item
2018/03/09
\begin{itemize}
\tightlist
\item
load the configuration file before extensions
\end{itemize}
\item
2018/03/02
\begin{itemize}
\tightlist
\item
Aeneas execution works
\item
Aeneas documentation
\item
added support for \texttt{.make4ht} configuration file
\end{itemize}
\item
2018/02/28
\begin{itemize}
\tightlist
\item
Aeneas configuration file creation works
\end{itemize}
\item
2018/02/22
\begin{itemize}
\tightlist
\item
fixed bug in \texttt{fixinlines} DOM filter
\end{itemize}
\item
2018/02/21
\begin{itemize}
\tightlist
\item
added Aeneas domfilter
\item
fixed bugs in \texttt{joincharacters} DOM filter
\end{itemize}
\item
2018/02/20
\begin{itemize}
\tightlist
\item
fixed bug in \texttt{joincharacters} DOM filter
\item
make \texttt{woff} default font format for \texttt{mathjaxnode}
\item
added documentation for \texttt{mathjaxnode} settings
\end{itemize}
\item
2018/02/19
\begin{itemize}
\tightlist
\item
fixed bug in filter loading
\item
added \texttt{mathjaxnode} extension
\end{itemize}
\item
2018/02/15
\begin{itemize}
\tightlist
\item
use HTML5 as a default format
\item
use \texttt{common\_domfilters} implicitly for the XHTML and HTML5
formats
\end{itemize}
\item
2018/02/12
\begin{itemize}
\tightlist
\item
added \texttt{common\_domfilters} extension
\item
documented DOM filters
\end{itemize}
\item
2018/02/12
\begin{itemize}
\tightlist
\item
handle XML parsing errors in the DOM handler
\item
enable extension loading in Formatters
\end{itemize}
\item
2018/02/11
\begin{itemize}
\tightlist
\item
fixed Tidy extension output to support LuaXML
\item
fixed white space issues with \texttt{joincharacters} DOM filter
\end{itemize}
\item
2018/02/09
\begin{itemize}
\tightlist
\item
fixed issues with the Mathjax filter
\item
documented basic info about thd DOM filters
\item
DOM filter optimalizations
\end{itemize}
\item
2018/02/08
\begin{itemize}
\tightlist
\item
make Tidy extension configurable
\item
documented filter settings
\end{itemize}
\item
2018/02/07
\begin{itemize}
\tightlist
\item
added filter for Mathjax-node
\end{itemize}
\item
2018/02/06
\begin{itemize}
\tightlist
\item
created DOM filter function
\item
added DOM filter for spurious inlinine elements
\end{itemize}
\item
2018/02/03
\begin{itemize}
\tightlist
\item
added settings handling functions
\item
settings made available for extensions and filters
\end{itemize}
\item
2017/12/08
\begin{itemize}
\tightlist
\item
fixed the \texttt{mk4} build file loading when it is placed in the
current working dir and another one with same filename somewhere in
the TEXMF tree.
\end{itemize}
\item
2017/11/10
\begin{itemize}
\tightlist
\item
Added new filter: \texttt{svg-height}. It tries to fix height of
some of the images produced by \texttt{dvisvgm}
\end{itemize}
\item
2017/10/06
\begin{itemize}
\tightlist
\item
Added support for output format selection. Supported formats are
\texttt{xhtml}, \texttt{html5} and \texttt{odt}
\item
Added support for extensions
\end{itemize}
\item
2017/09/10
\begin{itemize}
\tightlist
\item
Added support for Latexmk
\item
Added support of \texttt{math} library and \texttt{tonumber}
function in the build files
\end{itemize}
\item
2017/09/04
\begin{itemize}
\tightlist
\item
fixed bug caused by the previous change -- the --help and --version
didn't work
\end{itemize}
\item
2017/08/22
\begin{itemize}
\tightlist
\item
fixed the command line option parsing for \texttt{tex4ht},
\texttt{t4ht} and \texttt{latex} commands
\item
various grammar and factual fixes in the documentation
\end{itemize}
\item
2017/04/26
\begin{itemize}
\tightlist
\item
Released version \texttt{v0.1c}
\end{itemize}
\item
2017/03/16
\begin{itemize}
\tightlist
\item
check for \texttt{TeX\ capacity\ exceeded} error in the \LaTeX~run.
\end{itemize}
\item
2016/12/19
\begin{itemize}
\tightlist
\item
use full input name in \texttt{tex\_file} variable. This should
enable use of files without \texttt{.tex} extension.
\end{itemize}
\item
2016/10/22
\begin{itemize}
\tightlist
\item
new command available in the build file:
\texttt{Make:add\_file(filename)}. This enables filters and commands
to register files to the output.
\item
use ipairs instead of pairs for traversing files and executing
filters. This should ensure correct order of executions.
\end{itemize}
\item
2016/10/18
\begin{itemize}
\tightlist
\item
new filter: replace colons in \texttt{id} and \texttt{href}
attributes with underscores
\end{itemize}
\item
2016/01/11
\begin{itemize}
\tightlist
\item
fixed bug in loading documents with full path specified
\end{itemize}
\item
2015/12/06 version 0.1b
\begin{itemize}
\tightlist
\item
modifed lapp library to recognize \texttt{-\/-version} and
\item
added \texttt{-\/-help} and \texttt{-\/-version} command line
options
\end{itemize}
\item
2015/11/30
\begin{itemize}
\tightlist
\item
use \texttt{kpse} library for build file locating
\end{itemize}
\item
2015/11/17
\begin{itemize}
\tightlist
\item
better \texttt{-jobname} handling
\end{itemize}
\item
2015/09/23 version 0.1a
\begin{itemize}
\tightlist
\item
various documentation updates
\item
\texttt{mozhtf} profile for unicode output is used, this should
prevent ligatures in the output files
\end{itemize}
\item
2015/06/29 version 0.1
\begin{itemize}
\tightlist
\item
major README file update
\end{itemize}
\item
2015/06/26
\begin{itemize}
\tightlist
\item
added Makefile
\item
moved INSTALL instructions from README to INSTALL
\end{itemize}
\end{itemize}