Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Effort-based Versioning. (Changes to features documented as “experimental” will not increment macro and meso version numbers.)
Unreleased¶
(no changes yet)
2.3.1 - 2025-02-12¶
This is a minor bugfix release.
Fixed¶
- Remove some debug output.
2.3.0 - 2025-02-12¶
This release adds support for Jupyter notebooks with convert_jupyter()
and introduces small breaking changes to the API.
Other noteworthy changes include new options to the compile_typst()
function,
more ways to specify variables in render_jinja()
.
Added¶
- Execute and convert Jupyter notebooks with
convert_jupyter()
. rr-bibsane
is now part of StepUp RepRep, instead of using the (retired)bibsane
package. The main difference, other than the improved integration with StepUp RepRep, is that journal abbreviations are now generated with pyiso4 instead of the abrevvIso Web API. It has a correspondingsanitize_bibtex()
function instepup.reprep.api
.
Changed¶
- Extend
compile_typst()
with additional options:- Specification of the output file.
- Key-value pairs for the
--input
argument. - PNG and SVG output formats (multipage is not working yet).
- Optional inventory output file.
- Pass-through arguments for
typst
- Breaking changes to existing API:
convert_pdf()
and related functions are renamed:convert_pdf()
becomesconvert_mutool()
convert_pdf_png()
becomesconvert_mutool_png()
convert_svg()
and related functions are renamed:convert_svg()
becomesconvert_inkscape()
convert_svg_pdf()
becomesconvert_inkscape_pdf()
convert_svg_png()
becomesconvert_inkscape_png()
- The
inkscape_args
ofconvert_inkscape()
must now be a list instead of a string. compile_latex()
no longer creates an inventory file by default. To recover the old behavior, addinventory=True
to the arguments or set the environment variableREPREP_LATEX_INVENTORY="1"
.compile_latex()
no longer callsbibsane
when the LaTeX source has a BibTeX bibliography. If you want to sanitize the BibTeX file, callsanitize_bibtex()
aftercompile_latex()
.- The
paths_variables
argument ofrender_jinja()
has been replaced by a variadic positional parameter (i.e.*paths_variables
).
- Other changes
- Change
convert_weasyprint()
to perform the conversion in a single step. - Improve handling of arguments and dependencies in
convert_markdown()
render_jinja()
now accepts JSON and YAML files with variables for Jinja2 templates. In addition, one may specify a dictionary with variables directly when calling the function.- Documentation improvements.
- Change
2.2.3 - 2025-02-05¶
This release uses the new STEPUP_EXTERNAL_SOURCES
environment variable
introduced in StepUp Core 2.0.6.
Changed¶
- Switch from SemVer to EffVer.
- Scripts that automatically detect dependencies
(
rr-compile-latex
,rr-compile-typst
andrr-convert-inkscape
) now also use the newSTEPUP_EXTERNAL_SOURCES
environment variable introduced in StepUp Core 2.0.6.
2.2.2 - 2025-01-31¶
This is a bugfix release addressing minor issues in the Typst support.
Fixed¶
- Only call
sys.exit
inrr-compile-typst
if the returncode is non-zero. This allows for other scripts to call its main function without exiting in case of a succeeded typst build.
2.2.1 - 2025-01-31¶
This is a bugfix release addressing minor issues in the Typst support.
Fixed¶
- Fix returncode of the
rr-compile-typst
command (now passes through returncode oftypst build
). - By default, depfiles created by
typst build
are now stored in a temporary directory, to avoid littering the working directory. You can keep depfiles by setting the environment variableREPREP_KEEP_TYPST_DEPS="1"
, or with the argumentkeep_deps=True
incompile_typst()
. (Either one will .)
2.2.0 - 2025-01-29¶
This release adds experimental support for typst. It also introduces a few breaking API changes for the sake of consistency. (More breaking changes should be expected in the near future.)
Added¶
- Experimental support for Typst.
Changed¶
- Rename API functions:
latex()
->compile_latex()
latex_flat()
->flatten_latex()
latex_diff()
->diff_latex()
2.1.0 - 2025-01-27¶
This release contains a few minor breaking changes for the sake of internal consistency.
Changed¶
- The conversion with Inkscape has become a single step. (It was first split up in a step scanning for dependencies followed by the actual conversion.)
- Add more entrypoints for command-line utilities in StepUp RepRep.
Existing ones were renamed from
reprep-*
torr-*
. - Rename module
stepup.reprep.render
tostepup.reprep.render_jinja
. - Rename API function:
render()
->render_jinja()
2.0.2 - 2025-01-22¶
This is the first release of StepUp RepRep that is compatible with StepUp Core 2.0.0. (Earlier 2.0 releases were yanked due to packaging issues.)
Added¶
- Add
smarty
extension to markdown conversion. - Add option to insert blank page after odd-paged PDF when concatenating PDFs.
Changed¶
- Compatibility with StepUp Core 2.0.0, which breaks compatibility with older StepUp Core versions.
Fixed¶
- Use
shlex
for building shell commands instepup.reprep.api
to avoid shell injection.
1.4.1 - 2024-09-02¶
Added¶
- An extra argument was added to
convert_markdown
to specify CSS files. - Support default arguments for
convert_markdown
defined as environment variables:${REPREP_KATEX_MACROS}
and${REPREP_MARKDOWN_CSS}
.
Fixed¶
- Fix bug: put header output of
markdown_katex
plugin in the HTML header. - Fix bug: rewrite paths to CSS files in
convert_markdown
to be relative to the parent of the output HTML file.
1.4.0 - 2024-08-27¶
Added¶
- The unplot script, a sanitized version of Depix. It converts paths from SVG files back into data, which can be used to reverse-engineer data sets from plots.
Changed¶
- Move
load_module_file
from StepUp Core tostepup.reprep.render
and improve it to facilitate local imports.
1.3.0 - 2024-06-28¶
Added¶
- The script
rr-sync-zenodo
and corresponding StepUp API functionsync_zenodo()
synchronize your local data with a draft dataset on Zenodo. - Small documentation updates
Fixed¶
- Upgraded dependency markdown-katex to version 202406.1035 and enabled concurrency for markdown conversion with equations.
- Scrub PDF files after opening them with
fitz
. See https://github.com/pymupdf/PyMuPDF/issues/3635
1.2.1 - 2024-05-27¶
Changed¶
- Conversion from HTML to weasyprint is now a two-step process and includes detection of implicit input files used in the HTML to PDF conversion. (Images and external CCS)
- Improved reusability of script modules:
add_notes_pdf
,check_hrefs
,convert_inkscape
,convert_markdown
,convert_weasyprint
,latex
,latex_flat
,make_inventory
,normalized_pdf
,nup_pdf
,raster_pdf
,render
andzip_inventory
.
Fixed¶
- Fixed a few errors in the HTML generated by
convert_markdown()
1.2.0 - 2024-05-20¶
Added¶
rr-zip-inventory
command to manually create a reproducible ZIP file from aninventory.txt
file.- More documentation on how to work with inventory files.
- Tutorial for archiving StepUp publication Git repositories.
Changed¶
- Renamed all
MANIFEST
andmanifest
occurrences toinventory
and removed dependency of setuptools for processing such files. - The API of
make_inventory
is made simpler than that ofmake_manifest
. - The commands supported in
inventory.def
files now differ from those in setuptools:include
,exclude
,include-git
,exclude-git
,include-workflow
andexclude-workflow
. - The css style has been made customizable in
convert_markdown
. - KaTeX is now optional in
convert_markdown
.
Fixed¶
- An error message is raised when trying to a put a directory in an inventory file.
- Symbolic links are no longer dereferenced when they are listed in an inventory file.
- Symbolic links are archived in ZIP files without dereferencing.
1.1.2 - 2024-05-16¶
Fixed¶
- Nicer fix for concurrent Inkscape SVG to PDF or PNG conversion
(with
SELF_CALL=x
). See: https://gitlab.com/inkscape/inkscape/-/issues/4716 - Make unit tests work with stepup-core 1.2.2.
1.1.1 - 2024-05-07¶
Fixed¶
- Inkscape SVG to PDF or PNG conversion now works also in parallel, thanks to the workaround posted here: https://gitlab.com/inkscape/inkscape/-/issues/4716
- LibrOffice PDF conversion now works also in parallel, thanks to the workaround posted here: https://bugs.documentfoundation.org/show_bug.cgi?id=106134
- Inkscape conversion no longer opens files in write mode, which triggered the watcher of StepUp Core.
- Fixed packaging mistake that confused PyCharm and Pytest.
Changed¶
- Documentation improvements
1.1.0 - 2024-05-02¶
Changed¶
- Documentation improvements
- Unit tests are made compatible with StepUp Core 1.2.0.
1.0.0 - 2024-04-25¶
Initial release