pretext 2.56.1__tar.gz → 2.56.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. {pretext-2.56.1 → pretext-2.56.2}/CHANGELOG.md +19 -0
  2. {pretext-2.56.1 → pretext-2.56.2}/PKG-INFO +1 -1
  3. {pretext-2.56.1 → pretext-2.56.2}/pretext/__init__.py +1 -1
  4. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/common.py +0 -15
  5. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/pretext.py +11 -4
  6. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/webwork.py +36 -65
  7. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/core.zip +0 -0
  8. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/pelican.zip +0 -0
  9. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/resource_hash_table.json +8 -0
  10. pretext-2.56.2/pretext/resources/rs_cache.zip +0 -0
  11. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/templates.zip +0 -0
  12. {pretext-2.56.1 → pretext-2.56.2}/pyproject.toml +1 -1
  13. {pretext-2.56.1 → pretext-2.56.2}/templates/.gitignore +1 -1
  14. {pretext-2.56.1 → pretext-2.56.2}/templates/devcontainer.json +1 -1
  15. {pretext-2.56.1 → pretext-2.56.2}/templates/installPandoc.sh +1 -1
  16. {pretext-2.56.1 → pretext-2.56.2}/templates/pretext-cli.yml +1 -1
  17. {pretext-2.56.1 → pretext-2.56.2}/templates/pretext-deploy.yml +1 -1
  18. {pretext-2.56.1 → pretext-2.56.2}/templates/project.ptx +1 -1
  19. {pretext-2.56.1 → pretext-2.56.2}/uv.lock +1 -1
  20. pretext-2.56.1/pretext/resources/rs_cache.zip +0 -0
  21. {pretext-2.56.1 → pretext-2.56.2}/.claude/skills/core-changelog/SKILL.md +0 -0
  22. {pretext-2.56.1 → pretext-2.56.2}/.devcontainer/devcontainer.json +0 -0
  23. {pretext-2.56.1 → pretext-2.56.2}/.devcontainer/postCreateCommand.sh +0 -0
  24. {pretext-2.56.1 → pretext-2.56.2}/.flake8 +0 -0
  25. {pretext-2.56.1 → pretext-2.56.2}/.git-blame-ignore-revs +0 -0
  26. {pretext-2.56.1 → pretext-2.56.2}/.github/copilot-instructions.md +0 -0
  27. {pretext-2.56.1 → pretext-2.56.2}/.github/workflows/codespace-template.yml +0 -0
  28. {pretext-2.56.1 → pretext-2.56.2}/.github/workflows/deploy-nightly.yml +0 -0
  29. {pretext-2.56.1 → pretext-2.56.2}/.github/workflows/deploy-stable.yml +0 -0
  30. {pretext-2.56.1 → pretext-2.56.2}/.github/workflows/tests.yml +0 -0
  31. {pretext-2.56.1 → pretext-2.56.2}/.github/workflows/update_core_commit.yml +0 -0
  32. {pretext-2.56.1 → pretext-2.56.2}/.gitignore +0 -0
  33. {pretext-2.56.1 → pretext-2.56.2}/AGENTS.md +0 -0
  34. {pretext-2.56.1 → pretext-2.56.2}/CLAUDE.md +0 -0
  35. {pretext-2.56.1 → pretext-2.56.2}/LICENSE +0 -0
  36. {pretext-2.56.1 → pretext-2.56.2}/README.md +0 -0
  37. {pretext-2.56.1 → pretext-2.56.2}/docs/api.md +0 -0
  38. {pretext-2.56.1 → pretext-2.56.2}/docs/asset-generation.md +0 -0
  39. {pretext-2.56.1 → pretext-2.56.2}/docs/core_development.md +0 -0
  40. {pretext-2.56.1 → pretext-2.56.2}/docs/quickref-cli.pdf +0 -0
  41. {pretext-2.56.1 → pretext-2.56.2}/docs/quickref-cli.tex +0 -0
  42. {pretext-2.56.1 → pretext-2.56.2}/docs/tagged-pdf-roadmap.md +0 -0
  43. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/static/css/ptx-bg-dark.svg +0 -0
  44. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/static/css/ptx-bg-light.svg +0 -0
  45. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/static/css/style.css +0 -0
  46. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/archives.html +0 -0
  47. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/article-block.html +0 -0
  48. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/article.html +0 -0
  49. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/author.html +0 -0
  50. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/authors.html +0 -0
  51. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/base.html +0 -0
  52. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/categories.html +0 -0
  53. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/category.html +0 -0
  54. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/index.html +0 -0
  55. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/page.html +0 -0
  56. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/pagination.html +0 -0
  57. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/period_archives.html +0 -0
  58. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/tag.html +0 -0
  59. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/tags.html +0 -0
  60. {pretext-2.56.1 → pretext-2.56.2}/pelican/ptx-theme/templates/translations.html +0 -0
  61. {pretext-2.56.1 → pretext-2.56.2}/pelican/sample-source/description.html +0 -0
  62. {pretext-2.56.1 → pretext-2.56.2}/pelican/sample-source/pages/home.md +0 -0
  63. {pretext-2.56.1 → pretext-2.56.2}/pelican/sample-source/site.ptx +0 -0
  64. {pretext-2.56.1 → pretext-2.56.2}/pelican/sample-source/updates/20240617.md +0 -0
  65. {pretext-2.56.1 → pretext-2.56.2}/pretext/__main__.py +0 -0
  66. {pretext-2.56.1 → pretext-2.56.2}/pretext/cli.py +0 -0
  67. {pretext-2.56.1 → pretext-2.56.2}/pretext/constants.py +0 -0
  68. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/__init__.py +0 -0
  69. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/braille_format.py +0 -0
  70. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/braille_translate.py +0 -0
  71. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/godot_helper.py +0 -0
  72. {pretext-2.56.1 → pretext-2.56.2}/pretext/core/stack.py +0 -0
  73. {pretext-2.56.1 → pretext-2.56.2}/pretext/logger.py +0 -0
  74. {pretext-2.56.1 → pretext-2.56.2}/pretext/project/__init__.py +0 -0
  75. {pretext-2.56.1 → pretext-2.56.2}/pretext/project/generate.py +0 -0
  76. {pretext-2.56.1 → pretext-2.56.2}/pretext/project/xml.py +0 -0
  77. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/__init__.py +0 -0
  78. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/salve/__init__.py +0 -0
  79. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/salve/package.json +0 -0
  80. {pretext-2.56.1 → pretext-2.56.2}/pretext/resources/salve/ptx-jing-shim.mjs +0 -0
  81. {pretext-2.56.1 → pretext-2.56.2}/pretext/server.py +0 -0
  82. {pretext-2.56.1 → pretext-2.56.2}/pretext/types.py +0 -0
  83. {pretext-2.56.1 → pretext-2.56.2}/pretext/utils.py +0 -0
  84. {pretext-2.56.1 → pretext-2.56.2}/schema/README.md +0 -0
  85. {pretext-2.56.1 → pretext-2.56.2}/schema/project-ptx.rnc +0 -0
  86. {pretext-2.56.1 → pretext-2.56.2}/schema/project-ptx.rng +0 -0
  87. {pretext-2.56.1 → pretext-2.56.2}/scripts/__init__.py +0 -0
  88. {pretext-2.56.1 → pretext-2.56.2}/scripts/build_package.py +0 -0
  89. {pretext-2.56.1 → pretext-2.56.2}/scripts/bundle_resources.py +0 -0
  90. {pretext-2.56.1 → pretext-2.56.2}/scripts/copy_cdn_files.py +0 -0
  91. {pretext-2.56.1 → pretext-2.56.2}/scripts/fetch_core.py +0 -0
  92. {pretext-2.56.1 → pretext-2.56.2}/scripts/fetch_core_commit.py +0 -0
  93. {pretext-2.56.1 → pretext-2.56.2}/scripts/prep_nightly.py +0 -0
  94. {pretext-2.56.1 → pretext-2.56.2}/scripts/symlink_core.py +0 -0
  95. {pretext-2.56.1 → pretext-2.56.2}/scripts/tag_counter.py +0 -0
  96. {pretext-2.56.1 → pretext-2.56.2}/scripts/unlink_core.py +0 -0
  97. {pretext-2.56.1 → pretext-2.56.2}/scripts/update_changelog.py +0 -0
  98. {pretext-2.56.1 → pretext-2.56.2}/scripts/utils.py +0 -0
  99. {pretext-2.56.1 → pretext-2.56.2}/templates/article/README.md +0 -0
  100. {pretext-2.56.1 → pretext-2.56.2}/templates/article/assets/.gitkeep +0 -0
  101. {pretext-2.56.1 → pretext-2.56.2}/templates/article/assets/frog.jpg +0 -0
  102. {pretext-2.56.1 → pretext-2.56.2}/templates/article/publication/publication.ptx +0 -0
  103. {pretext-2.56.1 → pretext-2.56.2}/templates/article/source/frontmatter.ptx +0 -0
  104. {pretext-2.56.1 → pretext-2.56.2}/templates/article/source/introduction.ptx +0 -0
  105. {pretext-2.56.1 → pretext-2.56.2}/templates/article/source/main.ptx +0 -0
  106. {pretext-2.56.1 → pretext-2.56.2}/templates/article/source/section-1.ptx +0 -0
  107. {pretext-2.56.1 → pretext-2.56.2}/templates/article/source/section-2.ptx +0 -0
  108. {pretext-2.56.1 → pretext-2.56.2}/templates/book/README.md +0 -0
  109. {pretext-2.56.1 → pretext-2.56.2}/templates/book/assets/.gitkeep +0 -0
  110. {pretext-2.56.1 → pretext-2.56.2}/templates/book/publication/publication.ptx +0 -0
  111. {pretext-2.56.1 → pretext-2.56.2}/templates/book/source/backmatter.ptx +0 -0
  112. {pretext-2.56.1 → pretext-2.56.2}/templates/book/source/ch-chapter-title.ptx +0 -0
  113. {pretext-2.56.1 → pretext-2.56.2}/templates/book/source/docinfo.ptx +0 -0
  114. {pretext-2.56.1 → pretext-2.56.2}/templates/book/source/frontmatter.ptx +0 -0
  115. {pretext-2.56.1 → pretext-2.56.2}/templates/book/source/main.ptx +0 -0
  116. {pretext-2.56.1 → pretext-2.56.2}/templates/book/source/sec-section-name.ptx +0 -0
  117. {pretext-2.56.1 → pretext-2.56.2}/templates/course/README.md +0 -0
  118. {pretext-2.56.1 → pretext-2.56.2}/templates/course/assets/.gitkeep +0 -0
  119. {pretext-2.56.1 → pretext-2.56.2}/templates/course/project.ptx +0 -0
  120. {pretext-2.56.1 → pretext-2.56.2}/templates/course/publication/publication-slides-annotated.ptx +0 -0
  121. {pretext-2.56.1 → pretext-2.56.2}/templates/course/publication/publication-slides.ptx +0 -0
  122. {pretext-2.56.1 → pretext-2.56.2}/templates/course/publication/publication.ptx +0 -0
  123. {pretext-2.56.1 → pretext-2.56.2}/templates/course/publication/publication_standalone.ptx +0 -0
  124. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/activities/01-intro-activity.ptx +0 -0
  125. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/activities/activity-template.ptx +0 -0
  126. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/docinfo.ptx +0 -0
  127. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/frontmatter.ptx +0 -0
  128. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/handouts/handout-template.ptx +0 -0
  129. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/homework/homework-01.ptx +0 -0
  130. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/homework/homework-template.ptx +0 -0
  131. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/main.ptx +0 -0
  132. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/notes/week01.ptx +0 -0
  133. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/notes/week02.ptx +0 -0
  134. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/slides/slides.ptx +0 -0
  135. {pretext-2.56.1 → pretext-2.56.2}/templates/course/source/syllabus/syllabus.ptx +0 -0
  136. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/README.md +0 -0
  137. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/assets/.gitkeep +0 -0
  138. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/assets/frog.jpg +0 -0
  139. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/assets/jsxgraph/infinity.js +0 -0
  140. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/publication/publication.ptx +0 -0
  141. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/backmatter.ptx +0 -0
  142. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/ch-empty.ptx +0 -0
  143. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/ch-features.ptx +0 -0
  144. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/ch-first with spaces.ptx +0 -0
  145. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/ch-generate.ptx +0 -0
  146. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/docinfo.ptx +0 -0
  147. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/ex-first.ptx +0 -0
  148. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/fig-asymptote.ptx +0 -0
  149. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/fig-sage2d.ptx +0 -0
  150. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/fig-sage3d.ptx +0 -0
  151. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/fig-tikz.ptx +0 -0
  152. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/frontmatter.ptx +0 -0
  153. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/images/cflag.asy +0 -0
  154. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/images/sageplot2d.sage +0 -0
  155. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/images/sageplot3d.sage +0 -0
  156. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/images/tikz.tex +0 -0
  157. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/main.ptx +0 -0
  158. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/sec-features.ptx +0 -0
  159. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/sec-first-examples.ptx +0 -0
  160. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/sec-first-intro.ptx +0 -0
  161. {pretext-2.56.1 → pretext-2.56.2}/templates/demo/source/ww.ptx +0 -0
  162. {pretext-2.56.1 → pretext-2.56.2}/templates/hello/README.md +0 -0
  163. {pretext-2.56.1 → pretext-2.56.2}/templates/hello/publication/publication.ptx +0 -0
  164. {pretext-2.56.1 → pretext-2.56.2}/templates/hello/source/main.ptx +0 -0
  165. {pretext-2.56.1 → pretext-2.56.2}/templates/publication.ptx +0 -0
  166. {pretext-2.56.1 → pretext-2.56.2}/templates/slideshow/assets/.gitkeep +0 -0
  167. {pretext-2.56.1 → pretext-2.56.2}/templates/slideshow/assets/images/complete-graph.pdf +0 -0
  168. {pretext-2.56.1 → pretext-2.56.2}/templates/slideshow/assets/images/complete-graph.svg +0 -0
  169. {pretext-2.56.1 → pretext-2.56.2}/templates/slideshow/project.ptx +0 -0
  170. {pretext-2.56.1 → pretext-2.56.2}/templates/slideshow/publication/publication.ptx +0 -0
  171. {pretext-2.56.1 → pretext-2.56.2}/templates/slideshow/source/main.ptx +0 -0
  172. {pretext-2.56.1 → pretext-2.56.2}/templates/standalone-project.ptx +0 -0
  173. {pretext-2.56.1 → pretext-2.56.2}/templates/standalone-publication.ptx +0 -0
  174. {pretext-2.56.1 → pretext-2.56.2}/tests/ADDING_TESTS.md +0 -0
  175. {pretext-2.56.1 → pretext-2.56.2}/tests/README.md +0 -0
  176. {pretext-2.56.1 → pretext-2.56.2}/tests/__init__.py +0 -0
  177. {pretext-2.56.1 → pretext-2.56.2}/tests/common.py +0 -0
  178. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-wwserver/project.ptx +0 -0
  179. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-wwserver/publication/publication.ptx +0 -0
  180. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-wwserver/source/main.ptx +0 -0
  181. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-xsl/project.ptx +0 -0
  182. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-xsl/publication/publication.ptx +0 -0
  183. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-xsl/source/main.ptx +0 -0
  184. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-xsl/xsl/custom.xsl +0 -0
  185. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/custom-xsl/xsl/custom2.xsl +0 -0
  186. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/datafile/assets/data.csv +0 -0
  187. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/datafile/project.ptx +0 -0
  188. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/datafile/publication/publication.ptx +0 -0
  189. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/datafile/source/main.ptx +0 -0
  190. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/dynamic-fillin/project.ptx +0 -0
  191. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/dynamic-fillin/source/main.ptx +0 -0
  192. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/graphics/project.ptx +0 -0
  193. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/graphics/publication/publication.ptx +0 -0
  194. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/graphics/source/main.ptx +0 -0
  195. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/interactive/.gitignore +0 -0
  196. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/interactive/assets/jsxgraph/infinity.js +0 -0
  197. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/interactive/project.ptx +0 -0
  198. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/interactive/publication/publication.ptx +0 -0
  199. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/interactive/source/main.ptx +0 -0
  200. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/journal-bibliography/project.ptx +0 -0
  201. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/journal-bibliography/publication.xml +0 -0
  202. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/journal-bibliography/source/main.ptx +0 -0
  203. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/latex-image/project.ptx +0 -0
  204. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/latex-image/publication/publication.ptx +0 -0
  205. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/latex-image/source/main.ptx +0 -0
  206. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/prefigure/project.ptx +0 -0
  207. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/prefigure/publication/publication.ptx +0 -0
  208. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/prefigure/source/main.ptx +0 -0
  209. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/assets/.gitignore +0 -0
  210. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/assets/project.ptx +0 -0
  211. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/assets/publication/publication.ptx +0 -0
  212. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/assets/source/different-than-web.ptx +0 -0
  213. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/assets/source/same-as-web.ptx +0 -0
  214. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/assets/source/web.ptx +0 -0
  215. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/.gitignore +0 -0
  216. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/customizations/silly.xsl +0 -0
  217. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/dont-touch/extras/print.xml +0 -0
  218. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/dont-touch/publication.ptx +0 -0
  219. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/executables.ptx +0 -0
  220. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/external-things/foo.txt +0 -0
  221. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/my-great-site/index.html +0 -0
  222. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/my_ptx_source/book.ptx +0 -0
  223. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/my_ptx_source/main.ptx +0 -0
  224. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/my_ptx_source/para.ptx +0 -0
  225. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/elaborate/project.ptx +0 -0
  226. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/legacy/project.ptx +0 -0
  227. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/legacy/publication/publication.ptx +0 -0
  228. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/legacy_extra/project.ptx +0 -0
  229. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/legacy_extra/publication/publication.ptx +0 -0
  230. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple/.gitignore +0 -0
  231. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple/assets/foo.txt +0 -0
  232. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple/project.ptx +0 -0
  233. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple/publication/publication.ptx +0 -0
  234. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple/source/main.ptx +0 -0
  235. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_attribute/.gitignore +0 -0
  236. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_attribute/assets/foo.txt +0 -0
  237. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_attribute/project.ptx +0 -0
  238. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_attribute/publication/publication.ptx +0 -0
  239. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_attribute/source/main.ptx +0 -0
  240. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_element/.gitignore +0 -0
  241. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_element/assets/foo.txt +0 -0
  242. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_element/project.ptx +0 -0
  243. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_element/publication/publication.ptx +0 -0
  244. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/project_refactor/simple_extra_element/source/main.ptx +0 -0
  245. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/assets/frog.jpg +0 -0
  246. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/project.ptx +0 -0
  247. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/publication/html.ptx +0 -0
  248. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/publication/publication.ptx +0 -0
  249. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/publication/source.ptx +0 -0
  250. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/source/frontmatter.ptx +0 -0
  251. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/source/introduction.ptx +0 -0
  252. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/source/main.ptx +0 -0
  253. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/source/section-1.ptx +0 -0
  254. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xi_pub/source/section-2.ptx +0 -0
  255. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xref/.gitignore +0 -0
  256. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xref/project.ptx +0 -0
  257. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xref/publication/publication.ptx +0 -0
  258. {pretext-2.56.1 → pretext-2.56.2}/tests/examples/projects/xref/source/main.ptx +0 -0
  259. {pretext-2.56.1 → pretext-2.56.2}/tests/test_cli.py +0 -0
  260. {pretext-2.56.1 → pretext-2.56.2}/tests/test_generate.py +0 -0
  261. {pretext-2.56.1 → pretext-2.56.2}/tests/test_logger.py +0 -0
  262. {pretext-2.56.1 → pretext-2.56.2}/tests/test_project.py +0 -0
  263. {pretext-2.56.1 → pretext-2.56.2}/tests/test_sample_article.py +0 -0
  264. {pretext-2.56.1 → pretext-2.56.2}/tests/test_server.py +0 -0
  265. {pretext-2.56.1 → pretext-2.56.2}/tests/test_utils.py +0 -0
@@ -11,6 +11,25 @@ Instructions: Add a subsection under `[Unreleased]` for additions, fixes, change
11
11
 
12
12
  ### Fixed
13
13
 
14
+ - Runestone HTML builds no longer fail while reading the Runestone Services file, which now begins with a declaration of its encoding.
15
+ - LaTeX: a boxed `fillin` has closed sides, a `fillin` in a table cell keeps its full height, and partial table rules keep their width when the `calc` package is loaded.
16
+ - EPUB: code blocks and table borders take the color of the text, so they stay readable in dark mode, and images get a white background as in HTML.
17
+ - HTML: an image `datafile` has alt text, taken from its `description` when there is one.
18
+ - HTML: a GeoGebra interactive calls a `listeners` function only when an attached script defines one.
19
+ - HTML: standalone pages without a table of contents no longer raise a JavaScript error.
20
+ - WeBWorK: a server that refuses its credentials is reported with a message instead of a traceback, and a warning notes that a non-default `@password` becomes public once the book is published.
21
+ - YouTube thumbnails are downloaded over HTTPS.
22
+
23
+ ### Changed
24
+
25
+ - A `console` may give its `input` and `output` in any order, so a session can start with output.
26
+
27
+ ## [2.56.1] - 2026-10-24
28
+
29
+ Includes updates to core through commit: [da19341](https://github.com/PreTeXtBook/pretext/commit/da193419f0746242287b2358094a496029ca9671)
30
+
31
+ ### Fixed
32
+
14
33
  - An interrupted build no longer leaves a partially copied file in the generated-asset cache, which later builds would have reused. Cached assets and the asset table are now written to a temporary file and renamed into place.
15
34
  - A target's `output-filename` is now honored for `latex` targets, and for `pdf` and `beamer` targets built with `--latex` or `latex-source="yes"`. These builds had named the file after the source instead.
16
35
  - A `beamer` target now honors `latex-source="yes"`, as a `pdf` target does.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pretext
3
- Version: 2.56.1
3
+ Version: 2.56.2
4
4
  Summary: A package to author, build, and deploy PreTeXt projects.
5
5
  Project-URL: Homepage, https://pretextbook.org
6
6
  Project-URL: Repository, https://github.com/PreTeXtBook/pretext-cli
@@ -18,7 +18,7 @@ from single_version import get_version
18
18
 
19
19
  VERSION = get_version("pretext", Path(__file__).parent.parent)
20
20
 
21
- CORE_COMMIT = "da193419f0746242287b2358094a496029ca9671"
21
+ CORE_COMMIT = "d6a846cc46399b6e2484eda40c2930bb3c80c5ce"
22
22
 
23
23
 
24
24
  def activate() -> None:
@@ -649,21 +649,6 @@ def sanitize_url(url):
649
649
  return url
650
650
 
651
651
 
652
- def sanitize_alpha_num_underscore(param):
653
- """Verify parameter is a string containing only alphanumeric and undescores"""
654
- import string
655
-
656
- allowed = set(string.ascii_letters + string.digits + "_")
657
- log.info("verifying parameter: {}".format(param))
658
- if not (set(param) <= allowed):
659
- raise ValueError(
660
- "PTX:ERROR: param {} contains characters other than a-zA-Z0-9_ ".format(
661
- param
662
- )
663
- )
664
- return param
665
-
666
-
667
652
  def get_temporary_directory():
668
653
  """Create, record, and return a scratch directory"""
669
654
  import tempfile # mkdtemp()
@@ -1881,7 +1881,7 @@ def youtube_thumbnail(xml_source, pub_file, stringparams, xmlid_root, dest_dir):
1881
1881
  failed_thumbnails = []
1882
1882
  for thumb in thumbs:
1883
1883
  thumb_pair = thumb.split(",")
1884
- url = "http://i.ytimg.com/vi/{}/default.jpg".format(thumb_pair[0])
1884
+ url = "https://i.ytimg.com/vi/{}/default.jpg".format(thumb_pair[0])
1885
1885
  path = os.path.join(dest_dir, thumb_pair[1] + ".jpg")
1886
1886
  log.info("downloading {} as {}...".format(url, path))
1887
1887
  # http://stackoverflow.com/questions/13137817/how-to-download-image-using-requests/13137873
@@ -3802,7 +3802,9 @@ def _runestone_services(stringparams, ext_rs_methods):
3802
3802
 
3803
3803
  # Now services_xml should be meaningful since we haven't raised an exception.
3804
3804
 
3805
- services = ET.fromstring(services_xml)
3805
+ # The services file begins with a declaration of its encoding, which
3806
+ # lxml accepts only from bytes, so parse the UTF-8 the text came from
3807
+ services = ET.fromstring(services_xml.encode("utf-8"))
3806
3808
  # Interrogate the services XML
3807
3809
  rs_js, rs_css, rs_cdn_url, rs_version = _parse_runestone_services(services)
3808
3810
 
@@ -3863,7 +3865,9 @@ def _cdn_runestone_services(stringparams, ext_rs_methods):
3863
3865
  raise Exception(e)
3864
3866
 
3865
3867
  # Now services_xml should be meaningful since we haven't raised an exception.
3866
- services = ET.fromstring(services_xml)
3868
+ # The services file begins with a declaration of its encoding, which
3869
+ # lxml accepts only from bytes, so parse the UTF-8 the text came from
3870
+ services = ET.fromstring(services_xml.encode("utf-8"))
3867
3871
  # Interrogate the services XML
3868
3872
  rs_js, rs_css, rs_cdn_url, rs_version = _parse_runestone_services(services)
3869
3873
 
@@ -3918,7 +3922,10 @@ def query_runestone_services(services_url):
3918
3922
  log.debug(msg)
3919
3923
  # fatal error here, a URL is not doing the job
3920
3924
  raise Exception(msg)
3921
- # Return the XML from the services response
3925
+ # Return the XML from the services response. The file declares
3926
+ # UTF-8, but the server names no charset, so "requests" would
3927
+ # decode the text as ISO-8859-1 without this.
3928
+ services_response.encoding = "utf-8"
3922
3929
  return services_response.text
3923
3930
 
3924
3931
 
@@ -109,64 +109,24 @@ def webwork_to_xml(
109
109
  webwork_sets(xml_source, pub_file, stringparams, ww_pg_dir, False, False)
110
110
  pg_macros(xml_source, pub_file, stringparams, ww_macros_dir)
111
111
 
112
- no_publication_file = False
113
- if webwork2_server is not None:
114
- server_params_pub = {
115
- "webwork2_domain": webwork2_server,
116
- "courseID": extracted_pg_xml.find("server-params-pub").get("course-id"),
117
- "user": extracted_pg_xml.find("server-params-pub").get("user-id"),
118
- "passwd": extracted_pg_xml.find("server-params-pub").get("password"),
119
- "disableCookies": '1',
120
- }
121
- static_processing = extracted_pg_xml.find("processing").attrib["static"]
122
- pg_location = extracted_pg_xml.find("processing").attrib["pg-location"]
123
- else:
124
- no_publication_file = True
125
- server_params_pub = {
126
- "webwork2_domain": "https://webwork-ptx.aimath.org",
127
- "courseID": "anonymous",
128
- "user": "anonymous",
129
- "passwd": "anonymous",
130
- "disableCookies": '1',
131
- }
132
- static_processing = 'webwork2'
133
- pg_location = '/opt/webwork/pg'
134
-
135
- # ideally, pub_file is in use, in which case server_params_pub is nonempty.
136
- # if no pub_file in use, rely on server_params argument.
137
- # if both present, use server_params_pub and give warning
138
- # if neither in use give warning and fail
139
- if no_publication_file and server_params is None:
140
- raise ValueError("Either use a publication file or pass a --server argument")
141
- elif no_publication_file:
142
- # We rely on the argument server_params
143
- # This is deprecated in favor of using a publication file
144
- log.warning("WeBWorK server declared using -s argument.\n" +
145
- " Please consider using a publication file with publication/webwork instead.")
146
- server_params = server_params.strip()
147
- if (server_params.startswith("(") and server_params.endswith(")")):
148
- server_params = server_params.strip("()")
149
- split_server_params = server_params.split(",")
150
- webwork2_domain = common.sanitize_url(split_server_params[0])
151
- courseID = common.sanitize_alpha_num_underscore(split_server_params[1])
152
- user = common.sanitize_alpha_num_underscore(split_server_params[2])
153
- passwd = common.sanitize_alpha_num_underscore(split_server_params[3])
154
- else:
155
- webwork2_domain = common.sanitize_url(server_params)
156
- courseID = "anonymous"
157
- user = "anonymous"
158
- passwd = "anonymous"
159
- else:
160
- # Now we know we had a publication file
161
- # Use it, and warn if server_params argument is also present
162
- if server_params is not None:
163
- log.warning("Publication file in use and -s argument passed for WeBWorK server.\n"
164
- + " -s argument will be ignored.\n"
165
- + " Using publication/webwork values (or defaults) instead.")
166
- webwork2_domain = common.sanitize_url(server_params_pub["webwork2_domain"])
167
- courseID = server_params_pub["courseID"]
168
- user = server_params_pub["user"]
169
- passwd = server_params_pub["passwd"]
112
+ # The extracted problems always carry the server and its credentials,
113
+ # from the "webwork" element of a publication file or from the defaults
114
+ # for that element. The "server_params" argument is not read; it stays
115
+ # in the signature because the PreTeXt command-line interface passes it.
116
+ webwork2_domain = common.sanitize_url(webwork2_server)
117
+ courseID = extracted_pg_xml.find("server-params-pub").get("course-id")
118
+ user = extracted_pg_xml.find("server-params-pub").get("user-id")
119
+ passwd = extracted_pg_xml.find("server-params-pub").get("password")
120
+ static_processing = extracted_pg_xml.find("processing").attrib["static"]
121
+ pg_location = extracted_pg_xml.find("processing").attrib["pg-location"]
122
+
123
+ # The password goes into the representations file and from there into
124
+ # the HTML of every exercise, so readers can see it once published
125
+ if passwd != "anonymous":
126
+ log.warning("WeBWorK password is not \"anonymous\".\n" +
127
+ " It is written into the generated representations file and into the HTML\n" +
128
+ " of every WeBWorK exercise, where any reader can see it.\n" +
129
+ " Use only credentials you are willing to make public.")
170
130
 
171
131
  webwork2_domain_webwork2 = webwork2_domain + "/webwork2/"
172
132
  webwork2_render_rpc = webwork2_domain_webwork2 + "render_rpc"
@@ -207,18 +167,29 @@ def webwork_to_xml(
207
167
  outputformat='raw'
208
168
  )
209
169
  render_rpc_response = requests.get(url=webwork2_render_rpc, params=params_for_version_determination)
210
- if render_rpc_response.status_code == 200:
211
- version_determination_json = render_rpc_response.json()
212
- if "ww_version" in version_determination_json:
213
- webwork2_version = version_determination_json["ww_version"]
214
- webwork2_version_match = re.search(
215
- r"((\d+)\.(\d+)(\+develop)?)", webwork2_version, re.I
216
- )
217
170
  except Exception as e:
218
171
  root_cause = str(e)
219
172
  msg = ("PTX:ERROR: There was a problem contacting the WeBWorK server.\n")
220
173
  raise ValueError(msg.format(webwork2_domain_webwork2) + root_cause)
221
174
 
175
+ if render_rpc_response.status_code == 200:
176
+ # A server that refuses the credentials still answers 200, with a
177
+ # line of text in place of the JSON of a rendered problem. Every
178
+ # JSON decoding error that "requests" raises is a ValueError.
179
+ try:
180
+ version_determination_json = render_rpc_response.json()
181
+ except ValueError:
182
+ server_reply = " ".join(render_rpc_response.text.split())[:200]
183
+ msg = ("The WeBWorK server at {} answered, but did not accept the course \"{}\",\n" +
184
+ " the user \"{}\", and the password given in the \"webwork\" element\n" +
185
+ " of the publication file. The server replied: {}")
186
+ log.fatal(msg.format(webwork2_domain, courseID, user, server_reply))
187
+ if "ww_version" in version_determination_json:
188
+ webwork2_version = version_determination_json["ww_version"]
189
+ webwork2_version_match = re.search(
190
+ r"((\d+)\.(\d+)(\+develop)?)", webwork2_version, re.I
191
+ )
192
+
222
193
  # Now if that failed, try to infer the version from what is printed on the landing page.
223
194
  if webwork2_version == None:
224
195
  try:
@@ -853,5 +853,13 @@
853
853
  "pretext-cli.yml": "8220140f3fc814b1b8d30421299cc4902c8af911569c727f9fbe94e9a8c11da7",
854
854
  "pretext-deploy.yml": "e8a889f61838d3f5fa130ec77f44d89260847488f01425d32d7c5dcb44dfcff0",
855
855
  "installPandoc.sh": "45492942e3dc7ffbfafb21e282d3a0004611572b7041b8c538d229656fdc9013"
856
+ },
857
+ "2.56.2": {
858
+ "project.ptx": "228f0f83a45bb0e2fc4950547a0e6d21ae22e3dc53b6390a320c5f8dd2705b10",
859
+ ".gitignore": "8c12c09afe8359d34ae6779eb2a4106b663bb24a287b8f9c42273fc6cf415cb0",
860
+ "devcontainer.json": "aec01163c5f28d662999d936ef5a93ca82d35dc3698b24dbddd6c00b94b75c2e",
861
+ "pretext-cli.yml": "feff84f9de4b7ee10a478c51ba23ecd9e1649b59a79c075f371e0138ccae30ab",
862
+ "pretext-deploy.yml": "5a8f323ca69b555bbc425e6005cf8ae0cbfe71f20a351852997cbe94a8bd0b91",
863
+ "installPandoc.sh": "4f6af94ce05a4d26c1a1b6d6166d2edcdc312030ee77455be25153f11c75130b"
856
864
  }
857
865
  }
@@ -11,7 +11,7 @@
11
11
  # ----------------
12
12
  [project]
13
13
  name = "pretext"
14
- version = "2.56.1"
14
+ version = "2.56.2"
15
15
  description = "A package to author, build, and deploy PreTeXt projects."
16
16
  readme = "README.md"
17
17
  license = "GPL-3.0-or-later"
@@ -1,4 +1,4 @@
1
- # This file was automatically generated with PreTeXt 2.56.1.
1
+ # This file was automatically generated with PreTeXt 2.56.2.
2
2
  # If you modify this file, PreTeXt will no longer automatically update it.
3
3
  #
4
4
  # Boilerplate list of files in a PreTeXt project for git to ignore
@@ -1,4 +1,4 @@
1
- // This file was automatically generated with PreTeXt 2.56.1.
1
+ // This file was automatically generated with PreTeXt 2.56.2.
2
2
  // If you modify this file, PreTeXt will no longer automatically update it.
3
3
  //
4
4
  //////////////////////////////////////////////////////////////
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- # This file was automatically generated with PreTeXt 2.56.1.
3
+ # This file was automatically generated with PreTeXt 2.56.2.
4
4
  # If you modify this file, PreTeXt will no longer automatically update it.
5
5
 
6
6
  # Detect architecture and download appropriate Pandoc version
@@ -1,4 +1,4 @@
1
- # This file was automatically generated with PreTeXt 2.56.1.
1
+ # This file was automatically generated with PreTeXt 2.56.2.
2
2
  # If you modify this file, PreTeXt will no longer automatically update it.
3
3
  #
4
4
  # This workflow file can be used to automatically build a project and create
@@ -1,4 +1,4 @@
1
- # This file was automatically generated with PreTeXt 2.56.1.
1
+ # This file was automatically generated with PreTeXt 2.56.2.
2
2
  # If you modify this file, PreTeXt will no longer automatically update it.
3
3
  #
4
4
 
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
- <!-- This file was automatically generated by PreTeXt 2.56.1. -->
2
+ <!-- This file was automatically generated by PreTeXt 2.56.2. -->
3
3
  <!-- If you modify this file, PreTeXt will no longer automatically update it.-->
4
4
 
5
5
  <!-- This file, the project manifest, provides the overall configuration for your PreTeXt project. To edit the content of your document, open `source/main.ptx`. See https://pretextbook.org/doc/guide/html/processing-CLI.html#cli-project-manifest. -->
@@ -1661,7 +1661,7 @@ text = [
1661
1661
 
1662
1662
  [[package]]
1663
1663
  name = "pretext"
1664
- version = "2.56.1"
1664
+ version = "2.56.2"
1665
1665
  source = { editable = "." }
1666
1666
  dependencies = [
1667
1667
  { name = "citeproc-py" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes