All notable changes to the PreTeXt-CLI will be documented in this file (admittedly started rather late in the game).
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Instructions: Add a subsection under [Unreleased] for additions, fixes, changes, and removals of features accompanying each PR. When a release is made, the github action will automatically add the next version number above the unreleased changes with the date of release.
Includes updates to core through commit: f22ebc5
- Better support for building latex from pretext: detects when latex needs to be rerun multiple times.
- Bug that failed to detect webwork problems authored as local pg files.
- epub fillinmath and sfrac rendering.
Includes updates to core through commit: 22c2cd3
- Fix for fill-ins for Runestone builds
- Annotated prefigure diagrams in printouts now correctly hide instructions.
Includes updates to core through commit: 80f77ab
- Backlinks on solutions and hints to their corresponding tasks in the main text.
- LaTeX special characters with MathJax using the textmacros extension.
Includes updates to core through commit: 8fa4391
- Support for "paragraphs" element in printouts (worksheets and handouts).
- Optional LaTeX link highlighting via the
latex/@link-highlightpublisher option. - New quotation mark styles for Canada and Germany locales.
- Failed individual asset generation (when core does not produce the expected output file) now raises an error and is no longer silently treated as a success. This prevents incorrectly caching incomplete asset generation results.
- Landing page links for print and single-file targets now generate correctly.
- JavaScript bug in printouts that miscalculated workspace with slow-loading images.
- The default Asymptote generation method is now
local(using the localasybinary) instead ofserver. This improves reliability since the server method has been subject to breakage whenever the Asymptote web interface is updated. Users who need the server method can still opt in viaasy-method="server"inproject.ptx.
Includes updates to core through commit: 4e4ff13
- Design-width publication variable for interactives for improved sizing.
- Improvements to sidebyside images in slideshows.
- Improvements to printouts: hide image descriptions and order tasks correctly.
- Bug that incorrectly clipped prefigure images for portable builds
Includes updates to core through commit: 3b7177a
- Support for headers and footers in worksheets and handouts.
- Improved punctuation for LaTeX "cases" environment.
Includes updates to core through commit: d95a31b
- Publisher controlled page breaks for PDF output
- Simplified course template
Includes updates to core through commit: a7a0894
- Better support for portable builds that use worksheets and handouts (they print now).
- Improved print controls: show/hide hints/answers/solutions in print view.
- Improved whitespace in program elements.
- Support shortdescription and description for interactive elements.
Includes updates to core through commit: 1c97959
- Simplify course template.
- Update requirements for
lxmlto version 6 for compatibility with python 3.14 on Windows.
Includes updates to core through commit: 1c97959
- Improved
coursetemplate and updated readme's for main templates.
Includes updates to core through commit: 1c97959
- The
latex-sourceattribute, set to anything except "no", on a target with formatpdfwill copy latex source files to output directory. - Improvements to ePub output format (core).
- Experimental dual static/interactive exercises with Runestone support (core).
- Improvements to
intertextin display math (core).
Includes updates to core through commit: ce20f15
- PDF targets built with
--latexflag will include the latex source in the output directory.
Includes updates to core through commit: 65231d1
- Support for Kotlin programming language in activecode. (core)
- Improvements for Mermaid image generation. (core)
- Image descriptions now work on Asymptote images. (core)
- Display math can be placed inside
<md>(without<mrow>) instead of<me>. Numbered equations now specified with an attribute. (core)
- Bug that sometimes prevented
pretext viewfrom working due to permissions on mac. - Typos in template publication files.
- Default output filename for the slideshow template is now
index.htmlsopretext viewwill open directly to the slideshow. - Bug that sometimes prevented a journal article style file from being downloaded.
Includes updates to core through commit: ad3ef3f
- Runestone builds no longer try to generate codechat mapping (if you want to use codechat previews, use a non-runestone html build).
Includes updates to core through commit: e406b5c
- Bug preventing OPL WeBWorK problems from loading inside Runestone.
Includes updates to core through commit: 6e68559
- New
--slowoption forpretext generateto increase the timeout for interactive preview generation. - Publisher options for hiding subtitle and byline in html page banner.
- Solution-like elements persist for Runestone assignment page.
worksheetadded to stable schema;handoutadded to dev schema.
- When an update is available, report this on every run of pretext.
mdelements with nomrowproduce math equations (previouslyme).
- Styling for non-math, non-interactive fillins in html.
- MathJax svg display in dark mode.
- Table justification in html.
Includes updates to core through commit: 016b805
- Bug which prevented two projects to be previewed at the same time on Windows.
- Better styling for html worksheets and handouts.
- Better spacing around paragraphs inside other containers.
Includes updates to core through commit: f076608
- Now checking for full list of deprecations from core pretext by default.
- Bug preventing locally authored WeBWorK from activating in Runestone.
Includes updates to core through commit: 38f9e6c
- A description list (
dl) can now be set to@width="wide"to give more room for the titles/terms.
- You can override the default table of contents "focus" (expandable levels) for a theme with a publication variable.
- Include introductions and conclusions for tasks in Runestone.
- Variety of styling improvements.
dlwith@width="narrow"now respected in HTML.- detached proofs now reference their theorem with a knowl and without duplication.
- Project-like duplication for ActiveCode and CodeLens now fixed for Runestoone.
Includes updates to core through commit: 488b019
- Project-like that are inside a worksheet were not getting solutions in the backmatter.
- Added an optional
cnameattribute on the<project>in the manifest to allow deploy to work with github pages using custom subdomains.
Includes updates to core through commit: 5fd31db
- Bug causing poor math output inside a sidebyside/stack.
Includes updates to core through commit: bec45fb
- New "handout" division, similar to worksheets, but intended for pages you print without exercises.
@workspacecan go on most paragraph-level elements in worksheets and handouts.- Experimental support for improve bibliographies using citeproc.
pretext generate referenceswill generate the required xml file in generated assets. - Experimental support for generating STACK static assets.
pretext generate stackwill generate the required assets.
- Footnotes inside detached
proofworks better in print conversion. - Improve autoscroll of table of contents for HTML.
Includes updates to core through commit: 132ca23
- Legacy themes for HTML will now be automatically replaced with their new equivalents.
- Codelense trace improvements.
- Bug preventing authored webwork problems in projects from being generated.
- Runestone profile menu now works in mobile view.
Includes updates to core through commit: 8b25e5f
- HTML links no longer produce footnotes with url; LaTeX puts url in parentheses (core).
- WeBWorK problems can be authored in bare PG (core).
- Bug preventing braille building to work.
- Bug preventing workspace in HTML worksheets when no special worksheet formatting is requested (core).
- Variety of HTML theme improvements (core).
Includes updates to core through commit: f15f9b9
- Bug in which qrcodes don't generate for video/audio if no interactive or youtube elements exist.
- qrcodes for pdf are now generated based on a hash of the elements they point to in addition to the baseurl for the publication file.
Includes updates to core through commit: 45be2cf
- NEW BEHAVIOR: the
pretext build -gcommand will not use cached versions of assets when regenerating. You can still generate assets and use the cache withpretext generate. - Improve default settings in codespace settings.
Includes updates to core through commit: 32262dd
- Template devcontainer will now use versioned docker image.
- The
pretext upgradecommand will include prefigure and pelican if they are already installed.
- Bug that sometimes stopped
pretext viewfrom working in a codespace.
Includes updates to core through commit: c750a05
- Better error messages when node version is too low for FITB generation step.
- Github actions now install the correct version of node for FITB generation step.
- Worksheet printing bug cause by top page margin has been fixed.
- Better messages when build/generate completes with errors.
Includes updates to core through commit: 899648f
- Print preview for worksheets now has option to highlight workspace and compare the rendered workspace to the authored height.
- WeBWorK exercises can be generated using a local copy of PG (with the proper setup).
- Generating dynamic substitutions now uses node instead of playwright. Node 22.10 or greater is required.
Includes updates to core through commit: e6f9288
- Printing worksheets from HTML should work a lot better now. The "Print preview" page now matches the printed output, and you can toggle between letter and a4. Worksheets can be authored with or without
<page>elements and still get good results.
- Publication file in templates had incorrect element for latex cover setting.
Includes updates to core through commit: 2bcef90
- Python version 3.10 or higher is now required (removed support for python 3.8 and 3.9).
- Bug that caused MyOpenMath problems to be downloaded on every build, regardless of whether they were needed.
- Bug which caused error in
pretext viewwhen therunning_serversfile contained a blank line.
Includes updates to core through commit: 1ef97c0
- Default devcontainer setup now uses a simplified, versioned
pretext-fulldocker image.
- Fill-in-the-blank questions do not need dynamic-subs assets for HTML-format builds; now they will no longer be generated.
- Sometimes the
pretext viewcommand did not work in Codespaces. Now inactive server instances are removed immediately which should fix this issue.
- Sometimes something goes wrong with the pretext resources in
~/.ptx. You can now runpretext init --systemto reinstall these resources for the current version. This will also try to runnpm installfor the css themes.
Includes updates to core through commit: 1b65b63
Includes updates to core through commit: b31d10b
Includes updates to core through commit: 6a4f8ff
Includes updates to core through commit: 2a9f32a
- You can now build standalone targets as PDF, HTML, or a SCORM archive using
pretext build html -i path/to/ptx/file. Output will be placed adjacent to source. - You can now build standalone targets from within a project (in case you want to build arbitrary files without creating targets for them). Just add a target with
standalone="yes"in the manifest.
Includes updates to core through commit: 638c52a
- Update course template.
Includes updates to core through commit: 11011fb
- Update devcontainer for codespaces with more custom settings and suggested extensions.
Includes updates to core through commit: 9be1596
Includes updates to core through commit: 1024036
- Support for more journals.
- HTML build can now create a SCORM archive for uploading to an LMS.
- Further improvements for portable html builds (fewer auxilary files created).
- New "boulder" theme for minimal single-page HTML builds.
- Optional embed button (for getting
<iframe>code to put in an LMS). - Improvements to
programelement.
- Improvements to wide elements in CSS themes
- Deprecated "matches" in exercises in favor of "cardsort"
Listings now usetitles instead ofcaptions
Includes updates to core through commit: 7936f3f
- Bug preventing some repositories from using
pretext deploy.
Includes updates to core through commit: 2c3fda7
- The CLI now uses your assembled source in case you use "versions" for checking for some source errors and deciding whether assets must be regenerated. For example, if you change an asset in a component that is not part of a version, it will not trigger rebuilding all assets.
- Fixed a bug with the denver theme that displayed some tasks with their headings not inline.
Includes updates to core through commit: 7017d8f
Includes updates to core through commit: 7017d8f
- New option for
pretext deploy. If you pass--no-pushthen deploy will commit your output to thegh-pagesbranch but not push. This can be useful for CI/CD workflows or in case deploy encounters an authentication error.
- The default devcontainer no longer includes a full LaTeX install. If you run into trouble generating latex-images or building pdfs, see the README.md file for assistance.
- The default devcontainer no longer includes sagemath. If you want to build sageplot assets, see the README.md file for assistance.
Includes updates to core through commit: 7017d8f
- Bug preventing github actions from completing deploy (internal).
Includes updates to core through commit: 7017d8f
- Portable html builds now embed SVGs directly into the html (so you no longer need to upload them separately).
- Coloraide package added as a dependency (for building custom themes).
Includes updates to core through commit: bd0998c
- Portable html: setting
/publication/html/platform/@portable="yes"will create html output that doesn't rely on local css or js. Useful when chunking level is set to 0 to get a single html file to upload to an LMS. - Improved support for journals in the latex conversion.
- Dynamic substitution xml file was not generated on html build correctly; it is now.
- Bug where permalinks sometimes fail to be added if there is a webwork problem on the page.
- Miscellaneous HTML theme improvements.
- Improved success feedback message.
Includes updates to core through commit: 8f8858c
- We now package the latest runestone services with the CLI and use the packaged versions in case there is no internet access to download them directly. This allows builds to go through even if offline.
Includes updates to core through commit: 2f6bfae
- Improve robustness of
pretext viewcommand.
Includes updates to core through commit: 2f6bfae
- Update psutil requirement to 7.0 for consistent server checking with
pretext view.
Includes updates to core through commit: 2f6bfae
- Allow deployment even if there are un-committed changes to the project folder; issue warning.
- Addressed another bug causing errors on
pretext update.
Includes updates to core through commit: 2f6bfae
- Added a temporary hack to avoid build failures when not connected to the internet. This will be reverted in 2.14 in favor of a more robust solution.
Includes updates to core through commit: 2f6bfae
- Resolved bug with
pretext update. - Better warning messages if unable to build css with node.
Includes updates to core through commit: 2f6bfae
- Logging is now available when the CLI is used programmatically (as a library). See docs/api.md.
- Asset generation of asymptote, latex-image, and sageplot now utilize a generated-cache of images (stored in
.cachein the root of a project, but customizable inproject.ptx). This should speed up building and generating assets.
Includes updates to core through commit: 3ce0b18
pretext updatecommand will update managed files and therequirements.txtfile to match current installed version of PreTeXt.
- Improved help when deploy fails.
- Managed files (
project.ptx,requirements.txt, etc) are now managed by comparing to stock versions, not by a magic comment at top. - Only manage git-related files (
.gitignore,.devcontainer.json,.github/workflows/pretext-cli.yml) when project is tracked by git. - Only updates managed files when
pretext updateis run, instead on every run. - Only check for new pretext version once a day.
- Removed unneeded warnings about pretext projects existing or not when running
pretext upgradeandpretext new.
Includes updates to core through commit: 42236bf
- Bug with
pretext view.
Includes updates to core through commit: 42236bf
Includes updates to core through commit: 3c662c9
- Improved codespace view command (now respects already running servers).
- CSS fixes for logo and references from core.
Includes updates to core through commit: e4edfd0
pretext viewbug where a process is terminated abnormally
Includes updates to core through commit: e4edfd0
- New and improved css style options. See PreTeXt documentation.
pretext upgradecommand will runpip install --upgrade pretextusing the same python you are running pretext from, for smoother upgrades.
pretext viewnow reuses the current local server correctly, and starts different local servers for different projects. This allows you to correctly view multiple projects at the same time.
Includes updates to core through commit: e532f63
- Support for building stand-alone documents without adding the source to the manifest.
- Support for upcoming html themes, including
pretext build --themeto refresh theme without rebuilding entire project.
- prefigure graphics were not not being recognized.
- prefigure dependency is now an optional install. To get it, install pretext with
pip install pretext[prefigure].
- Support for generating prefigure graphics.
- Always checks whether there is a new version of the CLI available.
- Further video id bug.
- Bug: could not use custom XSL on windows without special permissions
- Bug: Runestone issue "Failed to evaluate the AVT of attribute 'data-video-divid'"
- From core: publication option to control latex style file.
- From core: default programming language can be set in
<docinfo>
- From core:
<bibinfo>container for bibliographic information previous held in<titlepage>and<colophon>. - Improved publication file template.
- Bug: temporary directories from core not deleted on builds.
- Support for reveal.js slides via
format="revealjs". - Support for custom xsl that imports core xsl via
../xsl/pretext-[type].xsl
- Bug preventing the extraction of webwork sets.
- Github action will test build on older versions listed in requirements.
- Bumped
lxmlto at least 5.3 andpsutilsto at least 6.0.
- Newest version of core pretext.
pretext viewshould now work even if a previous view process did not exit properly.
- Updated the process for generating latex-image to use pyMuPDF instead of pdf2svg
- Only generate myopenmath problems when actually needed.
- Bug with html build for source with version controlled components with duplicate ids.
- For compatibility with Runestone you must install pretext with pip install pretext[homepage] in order to get the landing page features.
- Automatically build a landing page for a project when deploying multiple targets.
- New (optional) github action workflows for publishing/deploying sites.
- Static versions of problems for MyOpenMath can now be downloaded using the CLI. Build/generate for print as usual to get these.
- Support of mermaid diagrams.
- Improved
pretext importcommand to handle modular latex files better. - Turned off image conversions for
pretext import. - Always stage to a clean stage directory for
pretext deploy. - Improved output messages for info and error messages.
- Parsons problems can have partially ordered solutions.
- Fill In The Blank problems improvements
- Improved MyOpenMath support
- Support "circular" cases for proofs (TFAE, eg)
- Improved
pretext viewfor inside codespaces.
pretext importcommand. Pass a path to a.texfile and it will use PlasTeX to do its best to convert the latex to pretext.
- Temporary hack fixes
pretext viewissues in codespaces.
pretext viewnow opens browser sooner when you are not using codespaces.
- Added this CHANGELOG.md file to track future changes to the PreTeXt-CLI.
- Generating webwork will now continue in most cases where a single exercise is invalid, still creating a representations file.
- Improve error message when webwork-representations file fails to build.