pymdown-extensions 12.2__tar.gz → 13.0__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 (286) hide show
  1. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/PKG-INFO +2 -3
  2. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/changelog.md +52 -0
  3. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/arithmatex.md +39 -61
  4. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/betterem.md +8 -2
  5. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/emoji.md +1 -1
  6. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/magiclink.md +15 -0
  7. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/mark.md +0 -4
  8. pymdown_extensions-12.2/docs/theme/assets/pymdownx-extras/extra-loader-BSCOcbUK.js → pymdown_extensions-13.0/docs/theme/assets/pymdownx-extras/extra-loader-DGSk4yI3.js +1 -1
  9. pymdown_extensions-12.2/docs/theme/assets/pymdownx-extras/extra-loader-BSCOcbUK.js.map → pymdown_extensions-13.0/docs/theme/assets/pymdownx-extras/extra-loader-DGSk4yI3.js.map +1 -1
  10. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/hatch_build.py +0 -1
  11. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/__meta__.py +1 -1
  12. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/arithmatex.py +8 -8
  13. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/b64.py +1 -1
  14. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/betterem.py +5 -3
  15. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/admonition.py +1 -1
  16. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/block.py +1 -1
  17. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/caption.py +1 -1
  18. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/html.py +12 -9
  19. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/bracketspan.py +7 -19
  20. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/critic.py +117 -55
  21. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/delimiterprocessor.py +162 -69
  22. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/details.py +1 -1
  23. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/fancylists.py +8 -2
  24. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/inlinehilite.py +9 -13
  25. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/magiclink.py +60 -13
  26. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/pathconverter.py +1 -1
  27. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/progressbar.py +1 -1
  28. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/quotes.py +1 -1
  29. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/saneheaders.py +1 -1
  30. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/snippets.py +2 -2
  31. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/striphtml.py +1 -1
  32. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pyproject.toml +4 -4
  33. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (no-preview).html +2 -2
  34. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex.html +2 -2
  35. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink.html +2 -2
  36. pymdown_extensions-13.0/tests/test_extensions/_snippets/section_escaped_end_first.txt +4 -0
  37. pymdown_extensions-13.0/tests/test_extensions/_snippets/section_escaped_start_first.txt +5 -0
  38. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_arithmatex.py +40 -0
  39. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_b64.py +9 -0
  40. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_betterem.py +165 -2
  41. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_captions.py +25 -0
  42. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_bracketspan.py +35 -0
  43. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_caret.py +1 -1
  44. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_critic.py +93 -1
  45. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_fancylists.py +44 -0
  46. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_inlinehilite.py +17 -0
  47. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_magiclink.py +219 -0
  48. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_pathconverter.py +24 -0
  49. pymdown_extensions-13.0/tests/test_extensions/test_progressbar.py +18 -0
  50. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_quotes.py +17 -0
  51. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_snippets.py +26 -0
  52. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_striphmtl.py +28 -0
  53. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_tilde.py +60 -1
  54. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/zensical.yml +1 -1
  55. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/.coveragerc +0 -0
  56. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/.gitignore +0 -0
  57. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/.pyspelling.yml +0 -0
  58. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/LICENSE.md +0 -0
  59. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/README.md +0 -0
  60. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/.snippets/abbr.md +0 -0
  61. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/.snippets/links.md +0 -0
  62. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/.snippets/refs.md +0 -0
  63. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/.snippets/uml.md +0 -0
  64. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/contributing.md +0 -0
  65. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/development.md +0 -0
  66. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/license.md +0 -0
  67. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/releases/6.0.md +0 -0
  68. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/releases/7.0.md +0 -0
  69. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/releases/8.0.md +0 -0
  70. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/releases/9.0.md +0 -0
  71. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/about/security.md +0 -0
  72. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/b64.md +0 -0
  73. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/api.md +0 -0
  74. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/index.md +0 -0
  75. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/plugins/admonition.md +0 -0
  76. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/plugins/caption.md +0 -0
  77. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/plugins/definition.md +0 -0
  78. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/plugins/details.md +0 -0
  79. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/plugins/html.md +0 -0
  80. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/blocks/plugins/tab.md +0 -0
  81. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/bracketspan.md +0 -0
  82. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/caret.md +0 -0
  83. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/critic.md +0 -0
  84. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/details.md +0 -0
  85. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/escapeall.md +0 -0
  86. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/extra.md +0 -0
  87. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/fancylists.md +0 -0
  88. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/highlight.md +0 -0
  89. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/inlinehilite.md +0 -0
  90. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/keys.md +0 -0
  91. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/pathconverter.md +0 -0
  92. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/progressbar.md +0 -0
  93. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/quotes.md +0 -0
  94. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/saneheaders.md +0 -0
  95. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/smartsymbols.md +0 -0
  96. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/snippets.md +0 -0
  97. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/striphtml.md +0 -0
  98. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/superfences.md +0 -0
  99. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/tabbed.md +0 -0
  100. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/tasklist.md +0 -0
  101. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extensions/tilde.md +0 -0
  102. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extras/mermaid.md +0 -0
  103. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/extras/slugs.md +0 -0
  104. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/faq.md +0 -0
  105. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/images/mermaid-diagram.png +0 -0
  106. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/images/progress.png +0 -0
  107. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/images/tabbed-alternate.png +0 -0
  108. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/images/tabbed-default-narrow.png +0 -0
  109. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/images/tabbed-default.png +0 -0
  110. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/index.md +0 -0
  111. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/installation.md +0 -0
  112. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/src/markdown/usage_notes.md +0 -0
  113. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/theme/announce.html +0 -0
  114. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/theme/assets/pymdownx-extras/extra-b4375c8180.css +0 -0
  115. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/theme/assets/pymdownx-extras/extra-b4375c8180.css.map +0 -0
  116. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/docs/theme/main.html +0 -0
  117. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/__init__.py +0 -0
  118. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/_bypassnorm.py +0 -0
  119. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/__init__.py +0 -0
  120. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/definition.py +0 -0
  121. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/details.py +0 -0
  122. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/blocks/tab.py +0 -0
  123. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/caret.py +0 -0
  124. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/emoji.py +0 -0
  125. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/emoji1_db.py +0 -0
  126. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/escapeall.py +0 -0
  127. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/extra.py +0 -0
  128. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/gemoji_db.py +0 -0
  129. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/highlight.py +0 -0
  130. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/keymap_db.py +0 -0
  131. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/keys.py +0 -0
  132. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/mark.py +0 -0
  133. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/slugs.py +0 -0
  134. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/smartsymbols.py +0 -0
  135. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/superfences.py +0 -0
  136. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/tabbed.py +0 -0
  137. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/tasklist.py +0 -0
  138. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/tilde.py +0 -0
  139. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/twemoji_db.py +0 -0
  140. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/pymdownx/util.py +0 -0
  141. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/run_tests.py +0 -0
  142. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/__init__.py +0 -0
  143. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/_assets/bg.png +0 -0
  144. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/_assets/headeranchor.css +0 -0
  145. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/_assets/progressbar.css +0 -0
  146. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/_assets/tabs.css +0 -0
  147. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/_assets/tasklist.css +0 -0
  148. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/_assets/tasklist_custom.css +0 -0
  149. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (disable).html +0 -0
  150. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (disable).txt +0 -0
  151. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (dumb dollar).html +0 -0
  152. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (dumb dollar).txt +0 -0
  153. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (generic).html +0 -0
  154. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (generic).txt +0 -0
  155. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex (no-preview).txt +0 -0
  156. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/arithmatex.txt +0 -0
  157. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/arithmatex/tests.yml +0 -0
  158. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (entities).html +0 -0
  159. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (entities).txt +0 -0
  160. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (escaped).html +0 -0
  161. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (escaped).txt +0 -0
  162. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (long title).html +0 -0
  163. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (long title).txt +0 -0
  164. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (no title).html +0 -0
  165. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (no title).txt +0 -0
  166. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (png sprite).html +0 -0
  167. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (png sprite).txt +0 -0
  168. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (png).html +0 -0
  169. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (png).txt +0 -0
  170. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (svg sprite).html +0 -0
  171. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (svg sprite).txt +0 -0
  172. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (svg).html +0 -0
  173. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/emoji1 (svg).txt +0 -0
  174. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/gemoji (entities).html +0 -0
  175. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/gemoji (entities).txt +0 -0
  176. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/gemoji (png).html +0 -0
  177. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/gemoji (png).txt +0 -0
  178. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/tests.yml +0 -0
  179. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/twemoji (entities).html +0 -0
  180. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/twemoji (entities).txt +0 -0
  181. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/twemoji (png).html +0 -0
  182. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/twemoji (png).txt +0 -0
  183. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/twemoji (svg).html +0 -0
  184. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/emoji/twemoji (svg).txt +0 -0
  185. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/escapeall/escapeall (ws normal).html +0 -0
  186. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/escapeall/escapeall (ws normal).txt +0 -0
  187. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/escapeall/escapeall.html +0 -0
  188. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/escapeall/escapeall.txt +0 -0
  189. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/escapeall/tests.yml +0 -0
  190. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/extra/extra (config).html +0 -0
  191. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/extra/extra (config).txt +0 -0
  192. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/extra/extra.html +0 -0
  193. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/extra/extra.txt +0 -0
  194. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/extra/tests.yml +0 -0
  195. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/keys/keys (camel).html +0 -0
  196. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/keys/keys (camel).txt +0 -0
  197. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/keys/keys.html +0 -0
  198. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/keys/keys.txt +0 -0
  199. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/keys/tests.yml +0 -0
  200. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (bitbucket).html +0 -0
  201. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (bitbucket).txt +0 -0
  202. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (extensions).html +0 -0
  203. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (extensions).txt +0 -0
  204. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (gitlab).html +0 -0
  205. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (gitlab).txt +0 -0
  206. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (invalid).html +0 -0
  207. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (invalid).txt +0 -0
  208. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (shorthand).html +0 -0
  209. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (shorthand).txt +0 -0
  210. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (shorthand-social).html +0 -0
  211. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink (shorthand-social).txt +0 -0
  212. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink.txt +0 -0
  213. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink_hide_protocol.html +0 -0
  214. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/magiclink_hide_protocol.txt +0 -0
  215. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/magiclink/tests.yml +0 -0
  216. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/progressbar/progressbar.html +0 -0
  217. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/progressbar/progressbar.txt +0 -0
  218. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/progressbar/tests.yml +0 -0
  219. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/striphtml/striphtml (no attr strip).html +0 -0
  220. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/striphtml/striphtml (no attr strip).txt +0 -0
  221. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/striphtml/striphtml.html +0 -0
  222. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/striphtml/striphtml.txt +0 -0
  223. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/striphtml/tests.yml +0 -0
  224. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (custom).html +0 -0
  225. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (custom).txt +0 -0
  226. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (failures).html +0 -0
  227. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (failures).txt +0 -0
  228. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (no indent blocks).html +0 -0
  229. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (no indent blocks).txt +0 -0
  230. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (no pygments).html +0 -0
  231. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (no pygments).txt +0 -0
  232. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (normal).html +0 -0
  233. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (normal).txt +0 -0
  234. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (preserve tabs).html +0 -0
  235. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/superfences (preserve tabs).txt +0 -0
  236. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/superfences/tests.yml +0 -0
  237. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist (checkable).html +0 -0
  238. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist (checkable).txt +0 -0
  239. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist (custom checkable).html +0 -0
  240. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist (custom checkable).txt +0 -0
  241. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist (custom).html +0 -0
  242. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist (custom).txt +0 -0
  243. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist.html +0 -0
  244. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tasklist.txt +0 -0
  245. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/extensions/tasklist/tests.yml +0 -0
  246. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/__init__.py +0 -0
  247. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_assets/bg.png +0 -0
  248. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/a.txt +0 -0
  249. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/b.txt +0 -0
  250. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/c.txt +0 -0
  251. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/d.txt +0 -0
  252. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/indented.txt +0 -0
  253. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/lines.txt +0 -0
  254. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/loop.txt +0 -0
  255. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/loop_block.txt +0 -0
  256. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/missing.txt +0 -0
  257. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/nested/nested.txt +0 -0
  258. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/nested_b.txt +0 -0
  259. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/section.txt +0 -0
  260. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/_snippets/section_nested.txt +0 -0
  261. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/__init__.py +0 -0
  262. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_admonitions.py +0 -0
  263. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_definition.py +0 -0
  264. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_details.py +0 -0
  265. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_general_blocks.py +0 -0
  266. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_html.py +0 -0
  267. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_legacy_tab.py +0 -0
  268. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_blocks/test_tab.py +0 -0
  269. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_details.py +0 -0
  270. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_emoji.py +0 -0
  271. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_escapeall.py +0 -0
  272. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_highlight.py +0 -0
  273. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_keys.py +0 -0
  274. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_mark.py +0 -0
  275. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_saneheaders.py +0 -0
  276. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_slugs.py +0 -0
  277. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_smartsymbols.py +0 -0
  278. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_superfences.py +0 -0
  279. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_tabbed.py +0 -0
  280. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_extensions/test_tabbed_alternate.py +0 -0
  281. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_syntax.py +0 -0
  282. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_targeted.py +0 -0
  283. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/test_versions.py +0 -0
  284. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tests/util.py +0 -0
  285. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tools/__init__.py +0 -0
  286. {pymdown_extensions-12.2 → pymdown_extensions-13.0}/tools/pymdownx_md_render.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: pymdown-extensions
3
- Version: 12.2
3
+ Version: 13.0
4
4
  Summary: Extension pack for Python Markdown.
5
5
  Project-URL: Homepage, https://github.com/facelessuser/pymdown-extensions
6
6
  Author-email: Isaac Muse <Isaac.Muse@gmail.com>
@@ -13,7 +13,6 @@ Classifier: Intended Audience :: Developers
13
13
  Classifier: License :: OSI Approved :: MIT License
14
14
  Classifier: Operating System :: OS Independent
15
15
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.10
17
16
  Classifier: Programming Language :: Python :: 3.11
18
17
  Classifier: Programming Language :: Python :: 3.12
19
18
  Classifier: Programming Language :: Python :: 3.13
@@ -23,7 +22,7 @@ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
23
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
23
  Classifier: Topic :: Text Processing :: Filters
25
24
  Classifier: Topic :: Text Processing :: Markup :: HTML
26
- Requires-Python: >=3.10
25
+ Requires-Python: >=3.11.5
27
26
  Requires-Dist: markdown>=3.6
28
27
  Requires-Dist: pyyaml
29
28
  Provides-Extra: extra
@@ -3,6 +3,58 @@ icon: lucide/scroll-text
3
3
  ---
4
4
  # Changelog
5
5
 
6
+ ## 13.0
7
+
8
+ - **BREAK**: Arithmatex: Generic mode is now the default mode as the old MathJax script approach has not been
9
+ supported in MathJax for a long time now. We still provide script approach and have updated configuration to get it
10
+ properly working in recent MathJax versions.
11
+ - **BREAK**: Arithmatex: Non-generic mode now escapes content in script to prevent closing `</script>` from causing
12
+ unintended behavior. Guidance on configuration for non-generic mode has been updated in the documentation.
13
+ - **NEW**: Require at least Python Markdown 3.10.3 for performance improvements.
14
+ - **NEW**: Drop Python 3.10 and require Python >= 3.11.5 as possessive quantifiers are broken on lower versions.
15
+ - **NEW**: MagicLink: Bare `http://`, `https://`, and `www.` links now follow GFM's extended autolink rules for what
16
+ is considered the end of a link (trailing punctuation, entities, unbalanced `)` and `]`) and what a link can follow.
17
+ Links no longer start after arbitrary punctuation (quotes are still allowed), and `http://host` style links with a
18
+ short host are allowed.
19
+ - **FIX**: Critic: Fix quadratic (and cubic for substitutions) time complexity when parsing a large number of unclosed
20
+ CriticMarkup openers by replacing the regular expression with a linear time scanner.
21
+ - **FIX**: PathConverter, B64: Handle elements with unquoted attributes.
22
+ - **FIX**: Arithmatex: Fix `generic` mode output when `tex_inline_wrap` or `tex_block_wrap` contain braces.
23
+ - **FIX**: InlineHilite: Fix regression related to unmatched opening and closing.
24
+ - **FIX**: FancyLists: Keep `i` and `I` in alphabetical lists after a blank line.
25
+ - **FIX**: BracketSpan: Fix unwanted colon attributes with `{: ...}` syntax.
26
+ - **FIX**: Snippets: Fix escaped section markers starting or ending a section before its start.
27
+ - **FIX**: StripHTML: Fix crash when `strip_comments` is disabled.
28
+ - **FIX**: Quotes: Fix callouts in indented blockquotes.
29
+ - **FIX**: Details, Admonitions, SaneHeaders: Improve performance of header patterns.
30
+ - **FIX**: Blocks.HTML: Improve performance of HTML patterns.
31
+ - **FIX**: MagicLink: Fix URLs with balanced parentheses or brackets losing their closing character.
32
+ - **FIX**: MagicLink: Improve performance of link and email patterns by removing excessive backtracking.
33
+ - **FIX**: ProgressBar: Fix crash on malformed `100` percent values like `[=100,0%]`.
34
+ - **FIX**: BracketSpan: Fix text being dropped or misplaced when an unpaired `[` precedes a span that is returned from
35
+ the cache, e.g. `[[]{#a}[b[]{#c}`.
36
+ - **FIX**: BetterEm, Tilde, Caret, Mark: Apply the CommonMark "rule of 3" so an ambiguous closing delimiter can skip
37
+ an incompatible opener and pair with an earlier one, e.g. `__[A](u){target="_blank"}__: x`.
38
+ - **FIX**: BetterEm, Tilde, Caret, Mark: Better handling of Python Markdown placeholders when when evaluating
39
+ CommonMark punctuation rules.
40
+ - **FIX**: Blocks.Caption: Fix crash when a numbered caption is nested inside a figure not created by the caption
41
+ block.
42
+ - **FIX**: BetterEm, Tilde, Caret, Mark: Fix text being dropped when a stray delimiter that cannot open or close
43
+ appears between delimiter pairs parsed together, e.g. `***l* * **e**`.
44
+ - **FIX**: BetterEm, Tilde, Caret, Mark: Fix text being dropped or misplaced when unused delimiters inside a
45
+ parsed span were reprocessed against delimiter pairs found later in the same text.
46
+ - **FIX**: Tilde, Caret: Fix a crash when a subscript or superscript with no space allowed starts inside emphasis,
47
+ e.g. `*a ~b~*` with `delete` disabled.
48
+ - **FIX**: BetterEm, Tilde, Caret, Mark: Unusable delimiters dropped by another delimiter's region no longer leave
49
+ stale space tracking that can reject valid pairs later.
50
+ - **FIX**: Blocks.Caption: Fix crash when a numbered caption is nested inside a figure not created by the caption
51
+ block.
52
+
53
+ ## 12.3
54
+
55
+ - **NEW**: BetterEm: Expose a way to disable CommonMark punctuation rules in BetterEm if desired via a new
56
+ `punctuation` option.
57
+
6
58
  ## 12.2
7
59
 
8
60
  - **NEW**: Add official support for Python 3.15.
@@ -41,8 +41,8 @@ $p(x|y) = \frac{p(y|x)p(x)}{p(y)}$, \(p(x|y) = \frac{p(y|x)p(x)}{p(y)}\).
41
41
 
42
42
 
43
43
  /// tip | Inline Configuration
44
- When using MathJax, for best results, it is advised to not use [`generic`](#options) mode, and configure MathJax
45
- without the `text2jax` extension since MathJax automatically detects Arithmatex's default output.
44
+ When using MathJax, for best results, it is advised to use the [`generic`](#options) mode, and configure MathJax
45
+ with the `text2jax` extension.
46
46
 
47
47
  If using generic mode (for libraries like KaTeX), Arithmatex will convert dollars to the form `#!tex \(...\)` in the
48
48
  HTML output. This is because `#!tex $...$` is extremely problematic to scan for, which is why MathJax and KaTeX
@@ -84,15 +84,24 @@ $$
84
84
  \end{align}
85
85
  ///
86
86
 
87
+ ## Generic Output Format
88
+
89
+ If [`generic`](#options) is enabled (which it is by default), the extension will escape necessary symbols and normalize
90
+ all output to be wrapped in the more reliable `#!tex \(...\)` for inline math and `#!tex \[...\]` for display math
91
+ (unless changed via `tex_inline_wrap` and `tex_block_wrap` in the [options](#options)). Lastly, everything is inserted
92
+ into a `#!html <span>` or `#!html <div>` for inline and display math respectively.
93
+
94
+ With the default settings, if in your Markdown you used `#!tex $...$` for inline math, it would be converted to
95
+ `#!html <span class="arithmatex">\(...\)</span>` in the HTML. Blocks would be normalized from `#!tex $$...$$` to
96
+ `#!html <div class="arithmatex">\[...\]</div>`. In the case of `#!tex \begin{}...\end{}`, begins and ends will not be
97
+ replaced, only wrapped: `#!html <div class="arithmatex">\[\begin{}...\end{}\]</div>`.
98
+
87
99
  ## MathJax Output Format
88
100
 
89
101
  /// note | Format Dropped in MathJax 3
90
102
  The title is a bit misleading. Yes, MathJax 3 dropped supporting the format as a default recognized form, but you
91
- can still use the form with MathJax 3, you just have to add a little more configuration.
92
-
93
- This used to be a supported format for MathJax 2. It appears this form was dropped in MathJax 3. While it is the
94
- current default for Arithmatex, it may be relegated to a secondary option in the future. If this output is preferred
95
- method, setting `generic` to `#!py False` will prevent any surprises in the future if/when the default changes.
103
+ can still use the form with MathJax 3, you just have to add a little more configuration. It is also not the default
104
+ mode anymore as of Pymdown Extensions 13.0.
96
105
  ///
97
106
 
98
107
  The math equations will be wrapped in a special MathJax script tag and embedded into the HTML. This format does not
@@ -104,20 +113,8 @@ By default, Arithmatex will also generate a preview span with the class `MathJax
104
113
  the math content is actually loaded. If you do not want to generate the preview, simply set `preview` to
105
114
  `#!py3 False`.
106
115
 
107
- All elements are additionally wrapped in a `#!html <div class="arithmatex"></div>` container by default (`span` if outputting
108
- inline math).
109
-
110
- ## Generic Output Format
111
-
112
- If [`generic`](#options) is enabled, the extension will escape necessary symbols and normalize all output to be wrapped
113
- in the more reliable `#!tex \(...\)` for inline math and `#!tex \[...\]` for display math (unless changed via
114
- `tex_inline_wrap` and `tex_block_wrap` in the [options](#options)). Lastly, everything is inserted into a
115
- `#!html <span>` or `#!html <div>` for inline and display math respectively.
116
-
117
- With the default settings, if in your Markdown you used `#!tex $...$` for inline math, it would be converted to
118
- `#!html <span class="arithmatex">\(...\)</span>` in the HTML. Blocks would be normalized from `#!tex $$...$$` to
119
- `#!html <div class="arithmatex">\[...\]</div>`. In the case of `#!tex \begin{}...\end{}`, begins and ends will not be
120
- replaced, only wrapped: `#!html <div class="arithmatex">\[\begin{}...\end{}\]</div>`.
116
+ All elements are additionally wrapped in a `#!html <div class="arithmatex"></div>` container by default (`span` if
117
+ outputting inline math).
121
118
 
122
119
  ## Loading MathJax
123
120
 
@@ -130,12 +127,6 @@ of including MathJax is to use the CDN. Latest version at time of writing this i
130
127
  ```
131
128
  ///
132
129
 
133
- /// tab | Legacy: MathJax 2
134
- ```html
135
- <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
136
- ```
137
- ///
138
-
139
130
  Generally, it is best to add your own configuration to get exactly what you want. Here we show some simple examples of
140
131
  configurations done in JavaScript. We've provided two basic configurations below: one that is configured for
141
132
  Arithmatex's [MathJax Output Format](#mathjax-output-format), and one that works with the
@@ -166,19 +157,34 @@ window.MathJax = {
166
157
  /// tab | Script - MathJax 3
167
158
  ```js
168
159
  window.MathJax = {
160
+ tex: {
161
+ inlineMath: [],
162
+ displayMath: []
163
+ },
169
164
  options: {
170
- ignoreHtmlClass: 'tex2jax_ignore',
171
- processHtmlClass: 'tex2jax_process',
165
+ ignoreHtmlClass: '.*',
172
166
  renderActions: {
173
- find: [10, function (doc) {
167
+ findMath: [10, function(doc) {
168
+ // Used to decode script content
169
+ const temp = document.createElement('textarea');
174
170
  for (const node of document.querySelectorAll('script[type^="math/tex"]')) {
175
171
  const display = !!node.type.match(/; *mode=display/);
176
- const math = new doc.options.MathItem(node.textContent, doc.inputJax[0], display);
172
+ temp.innerHTML = node.textContent;
173
+ const math = new doc.options.MathItem(
174
+ temp.textContent, doc.inputJax[0], display
175
+ );
176
+
177
+ // Create a <pre> with an empty text node inside
177
178
  const text = document.createTextNode('');
178
179
  const sibling = node.previousElementSibling;
180
+
181
+ // Replace the <script> with the text node
179
182
  node.parentNode.replaceChild(text, node);
183
+
184
+ // Point the MathItem at the text node inside <pre>
180
185
  math.start = {node: text, delim: '', n: 0};
181
- math.end = {node: text, delim: '', n: 0};
186
+ math.end = {node: text, delim: '', n: 0};
187
+
182
188
  doc.math.push(math);
183
189
  if (sibling && sibling.matches('.MathJax_Preview')) {
184
190
  sibling.parentNode.removeChild(sibling);
@@ -191,34 +197,6 @@ window.MathJax = {
191
197
  ```
192
198
  ///
193
199
 
194
- /// tab | Legacy: Generic - MathJax 2
195
- ```js
196
- MathJax.Hub.Config({
197
- config: ["MMLorHTML.js"],
198
- extensions: ["tex2jax.js"],
199
- jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"],
200
- tex2jax: {
201
- inlineMath: [ ["\\(","\\)"] ],
202
- displayMath: [ ["\\[","\\]"] ],
203
- processEscapes: true,
204
- processEnvironments: true,
205
- ignoreClass: ".*|",
206
- processClass: "arithmatex"
207
- },
208
- });
209
- ```
210
- ///
211
-
212
- /// tab | Legacy: Script - MathJax 2
213
- ```js
214
- MathJax.Hub.Config({
215
- config: ["MMLorHTML.js"],
216
- jax: ["input/TeX", "output/HTML-CSS", "output/NativeMML"],
217
- extensions: ["MathMenu.js", "MathZoom.js"]
218
- });
219
- ```
220
- ///
221
-
222
200
  Notice that in our generic configuration, we set up `tex2jax` to only load `arithmatex` classes by excluding all
223
201
  elements and adding an exception for the `arithmatex` class. We also don't bother adding `#!tex $...$` and
224
202
  `#!tex $$...$$` to the `inlineMath` and `displayMath` options as Arithmatex converts them respectively to
@@ -395,7 +373,7 @@ Option | Type | Default | Descripti
395
373
  ----------------- | -------- | ------------------------------------- |------------
396
374
  `inline_syntax` | [string] | `#!py3 ['dollar', 'round']` | Syntax to search for: dollar=`#!tex $...$` and round=`#!tex \(...\)`.
397
375
  `block_syntax` | [string] | `#!py3 ['dollar', 'square', 'begin']` | Syntax to search for: dollar=`#!tex $...$`, square=`#!tex \[...\]`, and `#!tex \begin{}...\end{}`.
398
- `generic` | bool | `#!py3 False` | Output in a generic format suitable for non MathJax libraries.
376
+ `generic` | bool | `#!py3 True` | Output in a generic format suitable for non MathJax libraries.
399
377
  `tex_inline_wrap` | [string] | `#!py3 ['\\(', '\\)']` | An array containing the opening and closing portion of the `generic` wrap.
400
378
  `tex_block_wrap` | [string] | `#!py3 ['\\[', '\\]']` | An array containing the opening and closing portion of the `generic` wrap.
401
379
  `smart_dollar` | bool | `#!py3 True` | Enable Arithmatex's smart dollar logic to minimize math detection issues with `#!tex $`.
@@ -82,8 +82,14 @@ BetterEm will try to prioritize the more sane option when nesting bold (`**`) be
82
82
  **I'm bold. *I'm bold and italic.* I'm also just bold.**
83
83
  ///
84
84
 
85
+ > [!new] 12.3 CommonMark Punctuation Control
86
+ > 12.0 introduced a rewrite of emphasis handling which brought emphasis handling into alignment with CommonMark rules.
87
+ > Because there may be some languages or some users that may prefer the previous punctuation rules, the ability to
88
+ > disable CommonMark punctuation rules has been exposed via the [`punctuation`](#options) option.
89
+
85
90
  ## Options
86
91
 
87
- Option | Type | Default | Description
88
- -------------- | ------ | ------------------- | -----------
92
+ Option | Type | Default | Description
93
+ -------------- | ------ | -------------------- | -----------
89
94
  `smart_enable` | string | `#!py3 'underscore'` | A string that specifies whether smart should be enabled for `all`, `asterisk`, `underscore`, or `none`.
95
+ `punctuation` | bool | `#!py3 True` | Enable/Disable CommonMark punctuation rules. Enabled by default.
@@ -58,7 +58,7 @@ behind, we may wait for JoyPixels to catch up.
58
58
  ///
59
59
 
60
60
  /// tab | Gemoji
61
- [Gemoji][gemoji] (<img align="absmiddle" alt=":smile:" class="gemoji" src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" title=":smile:"/> <img align="absmiddle" alt=":heart:" class="gemoji"src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" title=":heart:"/> <img align="absmiddle" alt=":+1:" class="gemoji" src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" title=":+1:" />):
61
+ [Gemoji][gemoji] (<img align="absmiddle" alt=":smile:" class="gemoji" src="https://github.githubassets.com/images/icons/emoji/unicode/1f604.png" title=":smile:"/> <img align="absmiddle" alt=":heart:" class="gemoji" src="https://github.githubassets.com/images/icons/emoji/unicode/2764.png" title=":heart:"/> <img align="absmiddle" alt=":+1:" class="gemoji" src="https://github.githubassets.com/images/icons/emoji/unicode/1f44d.png" title=":+1:" />):
62
62
  Gemoji is GitHub's open source emoji solution. It contains a lot of common emoji and a couple special, non Unicode
63
63
  emoji (like Gemoji's `:octocat:` <img align="absmiddle" alt=":octocat:" class="gemoji" src="https://github.githubassets.com/images/icons/emoji/octocat.png" title=":octocat:" />).
64
64
  If you are a GitHub user, you are probably familiar with some of the short names associated with it. Their
@@ -42,6 +42,21 @@ auto-linked. There are some limitations placed on MagicLink to keep it from aggr
42
42
  part of links. If you have a link that cannot be detected, you can always use the old style angle bracketed link format:
43
43
  `#!md <https://www.link.com>`.
44
44
 
45
+ Bare links follow the rules of [GitHub Flavored Markdown's extended autolinks][gfm-autolinks]:
46
+
47
+ - Links must start with `http://`, `https://`, or `www.` (`ftp://` and `ftps://` are supported as well), and must be
48
+ at the start of a line, or follow whitespace or one of `*`, `_`, `~`, `(`. As MagicLink runs before other inline
49
+ syntax is resolved, quotes, `[` and `^` are also allowed so that quoted links and links in Markdown links and Caret
50
+ syntax work.
51
+ - A link ends at whitespace or `<`.
52
+ - The following trailing characters are not considered part of the link: `?`, `!`, `.`, `,`, `:`, `*`, `_`, `~`, `^`,
53
+ `'`, `"`.
54
+ - A trailing `)` is only part of the link if it closes a `(` in the link. The same is applied to `]`.
55
+ - A trailing entity like reference, such as `&amp;`, is not part of the link.
56
+ - Domains cannot have underscores in the last two segments.
57
+
58
+ [gfm-autolinks]: https://github.github.com/gfm/#autolinks-extension-
59
+
45
60
  ```text title="Auto-Linking"
46
61
  - Just paste links directly in the document like this: https://google.com.
47
62
  - Or even an email address: fake.email@email.com.
@@ -20,14 +20,10 @@ To Mark some text, simply surround the text with double `=`.
20
20
 
21
21
  ```text title="Marking"
22
22
  ==mark me==
23
-
24
- ==smart==mark==
25
23
  ```
26
24
 
27
25
  /// html | div.result
28
26
  ==mark me==
29
-
30
- ==smart==mark==
31
27
  ///
32
28
 
33
29
  The Mark extension can be included in Python Markdown by using the following:
@@ -1,2 +1,2 @@
1
1
  !function(){"use strict";var e=async e=>{class t extends HTMLElement{constructor(){super();const e=this.attachShadow({mode:"open"}),t=document.createElement("style");t.textContent="\n :host {\n display: block;\n line-height: initial;\n font-size: 16px;\n }\n div.diagram {\n margin: 0;\n overflow: visible;\n }",e.appendChild(t)}}void 0===customElements.get("diagram-div")&&customElements.define("diagram-div",t);const a=e=>{let t="";for(let a=0;a<e.childNodes.length;a++){const r=e.childNodes[a];if("code"===r.tagName.toLowerCase())for(let e=0;e<r.childNodes.length;e++){const a=r.childNodes[e],o=/^\s*$/;if("#text"===a.nodeName&&!o.test(a.nodeValue)){t=a.nodeValue;break}}}return t},r={startOnLoad:!1,theme:"default",flowchart:{useMaxWidth:!1},er:{useMaxWidth:!1},sequence:{useMaxWidth:!1,noteFontWeight:"14px",actorFontSize:"14px",messageFontSize:"16px"}};mermaid.mermaidAPI.globalReset();let o=null;try{o=document.querySelector("[data-md-color-scheme]").getAttribute("data-md-color-scheme")}catch(e){o="slate"}const i="undefined"==typeof mermaidConfig?r:mermaidConfig[o]||mermaidConfig.default||r;mermaid.initialize(i);const l=document.querySelectorAll(`pre.${e}, diagram-div`),d=document.querySelector("html body");for(let t=0;t<l.length;t++){const r=l[t],o="diagram-div"===r.tagName.toLowerCase()?r.shadowRoot.querySelector(`pre.${e}`):r,i=document.createElement("div");i.style.visibility="hidden",i.style.display="display",i.style.padding="0",i.style.margin="0",i.style.lineHeight="initial",i.style.fontSize="16px",d.appendChild(i);try{const l=await mermaid.render(`_diagram_${t}`,a(o),i),d=l.svg,n=l.bindFunctions,c=document.createElement("div");c.className=e,c.innerHTML=d,n&&n(c);const s=document.createElement("diagram-div");s.shadowRoot.appendChild(c),r.parentNode.insertBefore(s,r),o.style.display="none",s.shadowRoot.appendChild(o),o!==r&&r.parentNode.removeChild(r)}catch(e){}d.contains(i)&&d.removeChild(i)}},t=(e,t)=>{if("katex"===t){const t=document.querySelectorAll(`.${e}`);for(let e=0;e<t.length;e++){const a=t[e].textContent||t[e].innerText;a.startsWith("\\(")&&a.endsWith("\\)")?katex.render(a.slice(2,-2),t[e],{displayMode:!1}):a.startsWith("\\[")&&a.endsWith("\\]")&&katex.render(a.slice(2,-2),t[e],{displayMode:!0})}}else"mathjax"===t&&(void 0!==MathJax.startup.output.clearCache&&MathJax.startup.output.clearCache(),MathJax.typesetClear(),MathJax.texReset(),MathJax.typesetPromise())};"mathjaxConfig"in window||(window.MathJax={tex:{inlineMath:[["\\(","\\)"]],displayMath:[["\\[","\\]"]],processEscapes:!0,processEnvironments:!0,tagSide:"right",tagIndent:".8em",multlineWidth:"85%",tags:"ams"},options:{ignoreHtmlClass:".*",processHtmlClass:"arithmatex"}}),"mermaidConfig"in window||(window.mermaidConfig={slate:{startOnLoad:!1,theme:"base",themeCSS:" * { --drac-page-bg: hsl(233, 15%, 23%); --drac-white-fg: hsl(60, 30%, 96%); --drac-purple-fg: hsl(265, 89%, 78%); --drac-purple-bg: hsl(265, 25%, 39%); --drac-yellow-fg: hsl(65, 92%, 76%); --drac-blue-fg: hsl(225, 27%, 51%); } /* General */ [id^='_diagram'] { background-color: var(--drac-page-bg); } /* Entity Relationship */ rect.relationshipLabelBox { opacity: 0.75 !important; fill: var(--drac-purple-bg) !important; } defs marker#ZERO_OR_MORE_END circle { fill: var(--drac-page-bg) !important; stroke: var(--drac-purple-fg) !important; } defs marker#ZERO_OR_MORE_END path { stroke: var(--drac-purple-fg) !important; } defs marker#ZERO_OR_MORE_START circle{ fill: var(--drac-page-bg) !important; stroke: var(--drac-purple-fg) !important; } defs marker#ZERO_OR_MORE_START path { stroke: var(--drac-purple-fg) !important; } defs marker#ONLY_ONE_START path { stroke: var(--drac-purple-fg) !important; } defs marker#ONLY_ONE_END path { stroke: var(--drac-purple-fg) !important; } defs marker#ZERO_OR_ONE_START path { stroke: var(--drac-purple-fg) !important; } defs marker#ZERO_OR_ONE_END path { stroke: var(--drac-purple-fg) !important; } defs marker#ONE_OR_MORE_START path { stroke: var(--drac-purple-fg) !important; } defs marker#ONE_OR_MORE_END path { stroke: var(--drac-purple-fg) !important; } /* Flowchart */ .labelText, :not(.branchLabel) > .label text { fill: var(--drac-purple-fg); } .edgeLabel text { fill: var(--drac-purple-fg) !important; } .edgeLabel rect { opacity: 0.75 !important; fill: var(--drac-purple-bg) !important; } .grey rect.label-container { fill: var(--drac-purple-bg) !important; stroke: var(--drac-purple-fg) !important; } /* Sequence */ line[id^='actor'] { stroke: var(--drac-blue-fg); } .noteText { fill: var(--drac-yellow-fg); } /* Gantt */ .sectionTitle { fill: var(--drac-purple-fg) !important; } .grid .tick line { stroke: var(--drac-blue-fg) !important; } .grid .tick text { fill: var(--drac-purple-fg); } /* Class Diagram */ .statediagram-state rect.divider { fill: transparent !important; } /* State Diagram */ .stateGroup circle[style$=\"fill: black;\"] { fill: var(--drac-purple-bg) !important; stroke: var(--drac-purple-bg) !important; } .stateGroup circle[style$=\"fill: white;\"] { fill: var(--drac-purple-bg) !important; stroke: var(--drac-purple-fg) !important; } .stateGroup .composit { fill: var(--drac-page-bg); } /* Pie */ text.slice { fill: var(--drac-white-fg) !important; } /* Git Graph */ .commit-bullets .commit-reverse, .commit-bullets .commit-merge, .commit-bullets .commit-highlight-inner { fill: var(--drac-page-bg) !important; stroke: var(--drac-page-bg) !important; } ",themeVariables:{darkMode:!0,background:"#323443",mainBkg:"#604b7d",textColor:"#bf95f9",lineColor:"#bf95f9",errorBkgColor:"#802c2c",errorTextColor:"#ff5757",primaryColor:"#604b7d",primaryTextColor:"#bf95f9",primaryBorderColor:"#bf95f9",secondaryColor:"#297d3e",secondaryTextColor:"#52fa7c",secondaryBorderColor:"#52fa7c",tertiaryColor:"#303952",tertiaryTextColor:"#6071a4",tertiaryBorderColor:"#6071a4",noteBkgColor:"#797d45",noteTextColor:"#f1fa89",noteBorderColor:"#f1fa89",edgeLabelBackground:"#604b7d",edgeLabelText:"#604b7d",actorLineColor:"#6071a4",activeTaskBkgColor:"#803d63",activeTaskBorderColor:"#ff7ac6",doneTaskBkgColor:"#297d3e",doneTaskBorderColor:"#52fa7c",critBkgColor:"#802c2c",critBorderColor:"#ff5757",taskTextColor:"#bf95f9",taskTextOutsideColor:"#bf95f9",taskTextLightColor:"#bf95f9",sectionBkgColor:"#bf95f9b3",sectionBkgColor2:"#bf95f966",altSectionBkgColor:"#323443",todayLineColor:"#ff7ac6",gridColor:"#6071a4",defaultLinkColor:"#8be8fd",altBackground:"#bf95f9",classText:"#bf95f9",fillType0:"#406080",fillType1:"#46747f",fillType2:"#297d3e",fillType3:"#805c36",fillType4:"#803d63",fillType5:"#604b7d",fillType6:"#802c2c",fillType7:"#797d45",fillType8:"#7c7c79",git0:"#ff5555",git1:"#ffb86c",git2:"#f1fa8c",git3:"#50fa7b",git4:"#8be9fd",git5:"#809fff",git6:"#ff79c6",git7:"#bd93f9",gitInv0:"#ff5555",gitInv1:"#ffb86c",gitInv2:"#f1fa8c",gitInv3:"#50fa7b",gitInv4:"#8be9fd",gitInv5:"#809fff",gitInv6:"#ff79c6",gitInv7:"#bd93f9",gitBranchLabel0:"#323443",gitBranchLabel1:"#323443",gitBranchLabel2:"#323443",gitBranchLabel3:"#323443",gitBranchLabel4:"#323443",gitBranchLabel5:"#323443",gitBranchLabel6:"#323443",gitBranchLabel7:"#323443",commitLabelColor:"#52fa7c",commitLabelBackground:"#297d3e"},flowchart:{useMaxWidth:!1},er:{useMaxWidth:!1},sequence:{useMaxWidth:!1,noteFontWeight:"14px",actorFontSize:"14px",messageFontSize:"16px"},journey:{useMaxWidth:!1},pie:{useMaxWidth:!1},gantt:{useMaxWidth:!1},gitGraph:{useMaxWidth:!1}},default:{startOnLoad:!1,theme:"default",flowchart:{useMaxWidth:!1},er:{useMaxWidth:!1},sequence:{useMaxWidth:!1,noteFontWeight:"14px",actorFontSize:"14px",messageFontSize:"16px"},journey:{useMaxWidth:!1},pie:{useMaxWidth:!1},gantt:{useMaxWidth:!1},gitGraph:{useMaxWidth:!1}}}),(()=>{let a=Promise.resolve(),r=Promise.resolve();const o=new MutationObserver(t=>{t.forEach(t=>{"attributes"===t.type&&(t.target.getAttribute("data-md-color-scheme"),"undefined"!=typeof mermaid&&e("diagram"))})});window.document$.subscribe(()=>{o.observe(document.querySelector("body"),{attributeFilter:["data-md-color-scheme"]}),"undefined"!=typeof mermaid&&(a=a.then(()=>{e("diagram")}).catch(e=>{console.log(`UML loading failed...${e}`)})),"undefined"!=typeof katex?r=r.then(()=>{t("arithmatex","katex")}).catch(e=>{console.log(`Math loading failed...${e}`)}):"undefined"!=typeof MathJax&&"typesetPromise"in MathJax&&(r=r.then(()=>{t("arithmatex","mathjax")}).catch(e=>{console.log(`Math loading failed...${e}`)}))})})()}();
2
- //# sourceMappingURL=extra-loader-BSCOcbUK.js.map
2
+ //# sourceMappingURL=extra-loader-DGSk4yI3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extra-loader-BSCOcbUK.js","sources":["uml.js","arithmatex.js","material-extra-3rdparty.js","extra-loader.js"],"sourcesContent":["/* Notes (as of Mermaid 8.7.0):\n * - Gantt: width is always relative to the parent, if you have a small parent, the chart will be squashed.\n * Can't help it.\n * - Journey: Suffers from the same issues that Gantt does.\n * - Pie: These charts have no default height or width. Good luck pinning them down to a reasonable size.\n * - Git: The render portion is agnostic to the size of the parent element. But padding of the SVG is relative\n * to the parent element. You will never find a happy size.\n */\n\n/**\n * Targets special code or div blocks and converts them to UML.\n * @param {string} className is the name of the class to target.\n * @return {void}\n */\nexport default async className => {\n\n // Custom element to encapsulate Mermaid content.\n class MermaidDiv extends HTMLElement {\n\n /**\n * Creates a special Mermaid div shadow DOM.\n * Works around issues of shared IDs.\n * @return {void}\n */\n constructor() {\n super()\n\n // Create the Shadow DOM and attach style\n const shadow = this.attachShadow({mode: \"open\"})\n const style = document.createElement(\"style\")\n style.textContent = `\n :host {\n display: block;\n line-height: initial;\n font-size: 16px;\n }\n div.diagram {\n margin: 0;\n overflow: visible;\n }`\n shadow.appendChild(style)\n }\n }\n\n if (typeof customElements.get(\"diagram-div\") === \"undefined\") {\n customElements.define(\"diagram-div\", MermaidDiv)\n }\n\n const getFromCode = parent => {\n // Handles <pre><code> text extraction.\n let text = \"\"\n for (let j = 0; j < parent.childNodes.length; j++) {\n const subEl = parent.childNodes[j]\n if (subEl.tagName.toLowerCase() === \"code\") {\n for (let k = 0; k < subEl.childNodes.length; k++) {\n const child = subEl.childNodes[k]\n const whitespace = /^\\s*$/\n if (child.nodeName === \"#text\" && !(whitespace.test(child.nodeValue))) {\n text = child.nodeValue\n break\n }\n }\n }\n }\n return text\n }\n\n // We use this to determine if we want the dark or light theme.\n // This is specific for our MkDocs Material environment.\n // You should load your configs based on your own environment's needs.\n const defaultConfig = {\n startOnLoad: false,\n theme: \"default\",\n flowchart: {\n useMaxWidth: false\n },\n er: {\n useMaxWidth: false\n },\n sequence: {\n useMaxWidth: false,\n noteFontWeight: \"14px\",\n actorFontSize: \"14px\",\n messageFontSize: \"16px\"\n }\n }\n mermaid.mermaidAPI.globalReset()\n // Non Material themes should just use \"default\"\n let scheme = null\n try {\n scheme = document.querySelector(\"[data-md-color-scheme]\").getAttribute(\"data-md-color-scheme\")\n } catch (err) {\n scheme = \"slate\"\n }\n const config = (typeof mermaidConfig === \"undefined\") ?\n defaultConfig :\n mermaidConfig[scheme] || (mermaidConfig.default || defaultConfig)\n mermaid.initialize(config)\n\n // Find all of our Mermaid sources and render them.\n const blocks = document.querySelectorAll(`pre.${className}, diagram-div`)\n const surrogate = document.querySelector(\"html body\")\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i]\n const parentEl = (block.tagName.toLowerCase() === \"diagram-div\") ?\n block.shadowRoot.querySelector(`pre.${className}`) :\n block\n\n // Create a temporary element with the typeset and size we desire.\n // Insert it at the end of our parent to render the SVG.\n const temp = document.createElement(\"div\")\n temp.style.visibility = \"hidden\"\n temp.style.display = \"display\"\n temp.style.padding = \"0\"\n temp.style.margin = \"0\"\n temp.style.lineHeight = \"initial\"\n temp.style.fontSize = \"16px\"\n surrogate.appendChild(temp)\n\n try {\n const res = await mermaid.render(`_diagram_${i}`, getFromCode(parentEl), temp)\n const content = res.svg\n const fn = res.bindFunctions\n const el = document.createElement(\"div\")\n el.className = className\n el.innerHTML = content\n if (fn) {\n fn(el)\n }\n\n // Insert the render where we want it and remove the original text source.\n // Mermaid will clean up the temporary element.\n const shadow = document.createElement(\"diagram-div\")\n shadow.shadowRoot.appendChild(el)\n block.parentNode.insertBefore(shadow, block)\n parentEl.style.display = \"none\"\n shadow.shadowRoot.appendChild(parentEl)\n if (parentEl !== block) {\n block.parentNode.removeChild(block)\n }\n } catch (err) {} // eslint-disable-line no-empty\n\n if (surrogate.contains(temp)) {\n surrogate.removeChild(temp)\n }\n }\n}\n","export default (className, mode) => {\n if (mode === 'katex') {\n const maths = document.querySelectorAll(`.${className}`)\n\n for (let i = 0; i < maths.length; i++) {\n const tex = maths[i].textContent || maths[i].innerText\n\n if (tex.startsWith('\\\\(') && tex.endsWith('\\\\)')) {\n katex.render(tex.slice(2, -2), maths[i], {'displayMode': false})\n } else if (tex.startsWith('\\\\[') && tex.endsWith('\\\\]')) {\n katex.render(tex.slice(2, -2), maths[i], {'displayMode': true})\n }\n }\n } else if (mode === 'mathjax') {\n if (typeof MathJax.startup.output.clearCache !== \"undefined\") {\n MathJax.startup.output.clearCache()\n }\n MathJax.typesetClear()\n MathJax.texReset()\n MathJax.typesetPromise()\n }\n}\n","// MathJax configuration\n\nif (!('mathjaxConfig' in window)) {\n window.MathJax = {\n tex: {\n inlineMath: [[\"\\\\(\", \"\\\\)\"]],\n displayMath: [[\"\\\\[\", \"\\\\]\"]],\n processEscapes: true,\n processEnvironments: true,\n tagSide: \"right\",\n tagIndent: \".8em\",\n multlineWidth: \"85%\",\n tags: \"ams\"\n },\n options: {\n ignoreHtmlClass: \".*\",\n processHtmlClass: \"arithmatex\"\n }\n }\n}\n\nif (!('mermaidConfig' in window)) {\n // Our loader looks for `mermaidConfig` and will load the the appropriate\n // configuration based on our current scheme: light, dark, etc.\n window.mermaidConfig = {\n slate: {\n startOnLoad: false,\n theme: \"base\",\n themeCSS: \"\\\n * {\\\n --drac-page-bg: hsl(233, 15%, 23%);\\\n --drac-white-fg: hsl(60, 30%, 96%);\\\n --drac-purple-fg: hsl(265, 89%, 78%);\\\n --drac-purple-bg: hsl(265, 25%, 39%);\\\n --drac-yellow-fg: hsl(65, 92%, 76%);\\\n --drac-blue-fg: hsl(225, 27%, 51%);\\\n }\\\n \\\n /* General */\\\n [id^='_diagram'] {\\\n background-color: var(--drac-page-bg);\\\n }\\\n \\\n /* Entity Relationship */\\\n rect.relationshipLabelBox {\\\n opacity: 0.75 !important;\\\n fill: var(--drac-purple-bg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_END circle {\\\n fill: var(--drac-page-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_START circle{\\\n fill: var(--drac-page-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONLY_ONE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONLY_ONE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_ONE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_ONE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONE_OR_MORE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONE_OR_MORE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n \\\n /* Flowchart */\\\n .labelText,\\\n :not(.branchLabel) > .label text {\\\n fill: var(--drac-purple-fg);\\\n }\\\n .edgeLabel text {\\\n fill: var(--drac-purple-fg) !important;\\\n }\\\n .edgeLabel rect {\\\n opacity: 0.75 !important;\\\n fill: var(--drac-purple-bg) !important;\\\n }\\\n \\\n .grey rect.label-container { \\\n fill: var(--drac-purple-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n } \\\n /* Sequence */\\\n line[id^='actor'] {\\\n stroke: var(--drac-blue-fg);\\\n }\\\n .noteText {\\\n fill: var(--drac-yellow-fg);\\\n }\\\n \\\n /* Gantt */\\\n .sectionTitle {\\\n fill: var(--drac-purple-fg) !important;\\\n }\\\n \\\n .grid .tick line {\\\n stroke: var(--drac-blue-fg) !important;\\\n }\\\n \\\n .grid .tick text {\\\n fill: var(--drac-purple-fg);\\\n }\\\n \\\n /* Class Diagram */\\\n .statediagram-state rect.divider {\\\n fill: transparent !important;\\\n }\\\n \\\n /* State Diagram */\\\n .stateGroup circle[style$=\\\"fill: black;\\\"] {\\\n fill: var(--drac-purple-bg) !important;\\\n stroke: var(--drac-purple-bg) !important;\\\n }\\\n \\\n .stateGroup circle[style$=\\\"fill: white;\\\"] {\\\n fill: var(--drac-purple-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n \\\n .stateGroup .composit {\\\n fill: var(--drac-page-bg);\\\n }\\\n /* Pie */\\\n text.slice {\\\n fill: var(--drac-white-fg) !important;\\\n }\\\n /* Git Graph */\\\n .commit-bullets .commit-reverse,\\\n .commit-bullets .commit-merge, \\\n .commit-bullets .commit-highlight-inner {\\\n fill: var(--drac-page-bg) !important;\\\n stroke: var(--drac-page-bg) !important;\\\n }\\\n \",\n themeVariables: {\n darkMode: true,\n background: \"#323443\",\n mainBkg: \"#604b7d\",\n textColor: \"#bf95f9\",\n lineColor: \"#bf95f9\",\n errorBkgColor: \"#802c2c\",\n errorTextColor: \"#ff5757\",\n primaryColor: \"#604b7d\",\n primaryTextColor: \"#bf95f9\",\n primaryBorderColor: \"#bf95f9\",\n secondaryColor: \"#297d3e\",\n secondaryTextColor: \"#52fa7c\",\n secondaryBorderColor: \"#52fa7c\",\n tertiaryColor: \"#303952\",\n tertiaryTextColor: \"#6071a4\",\n tertiaryBorderColor: \"#6071a4\",\n noteBkgColor: \"#797d45\",\n noteTextColor: \"#f1fa89\",\n noteBorderColor: \"#f1fa89\",\n edgeLabelBackground: \"#604b7d\",\n edgeLabelText: \"#604b7d\",\n\n actorLineColor: \"#6071a4\",\n\n activeTaskBkgColor: \"#803d63\",\n activeTaskBorderColor: \"#ff7ac6\",\n doneTaskBkgColor: \"#297d3e\",\n doneTaskBorderColor: \"#52fa7c\",\n critBkgColor: \"#802c2c\",\n critBorderColor: \"#ff5757\",\n taskTextColor: \"#bf95f9\",\n taskTextOutsideColor: \"#bf95f9\",\n taskTextLightColor: \"#bf95f9\",\n sectionBkgColor: \"#bf95f9b3\",\n sectionBkgColor2: \"#bf95f966\",\n altSectionBkgColor: \"#323443\",\n todayLineColor: \"#ff7ac6\",\n gridColor: \"#6071a4\",\n defaultLinkColor: \"#8be8fd\",\n\n altBackground: \"#bf95f9\",\n\n classText: \"#bf95f9\",\n\n fillType0: \"#406080\",\n fillType1: \"#46747f\",\n fillType2: \"#297d3e\",\n fillType3: \"#805c36\",\n fillType4: \"#803d63\",\n fillType5: \"#604b7d\",\n fillType6: \"#802c2c\",\n fillType7: \"#797d45\",\n fillType8: \"#7c7c79\",\n\n git0: \"#ff5555\",\n git1: \"#ffb86c\",\n git2: \"#f1fa8c\",\n git3: \"#50fa7b\",\n git4: \"#8be9fd\",\n git5: \"#809fff\",\n git6: \"#ff79c6\",\n git7: \"#bd93f9\",\n\n gitInv0: \"#ff5555\",\n gitInv1: \"#ffb86c\",\n gitInv2: \"#f1fa8c\",\n gitInv3: \"#50fa7b\",\n gitInv4: \"#8be9fd\",\n gitInv5: \"#809fff\",\n gitInv6: \"#ff79c6\",\n gitInv7: \"#bd93f9\",\n\n gitBranchLabel0: \"#323443\",\n gitBranchLabel1: \"#323443\",\n gitBranchLabel2: \"#323443\",\n gitBranchLabel3: \"#323443\",\n gitBranchLabel4: \"#323443\",\n gitBranchLabel5: \"#323443\",\n gitBranchLabel6: \"#323443\",\n gitBranchLabel7: \"#323443\",\n\n commitLabelColor: '#52fa7c',\n commitLabelBackground: '#297d3e'\n },\n flowchart: {\n useMaxWidth: false\n },\n er: {\n useMaxWidth: false\n },\n sequence: {\n useMaxWidth: false,\n // Mermaid handles Firefox a little different.\n // For some reason, it doesn't attach font sizes to the labels in Firefox.\n // If we specify the documented defaults, font sizes are written to the labels in Firefox.\n noteFontWeight: \"14px\",\n actorFontSize: \"14px\",\n messageFontSize: \"16px\"\n },\n journey: {\n useMaxWidth: false\n },\n pie: {\n useMaxWidth: false\n },\n gantt: {\n useMaxWidth: false\n },\n gitGraph: {\n useMaxWidth: false\n }\n },\n\n default: {\n startOnLoad: false,\n theme: \"default\",\n flowchart: {\n useMaxWidth: false\n },\n er: {\n useMaxWidth: false\n },\n sequence: {\n useMaxWidth: false,\n noteFontWeight: \"14px\",\n actorFontSize: \"14px\",\n messageFontSize: \"16px\"\n },\n journey: {\n useMaxWidth: false\n },\n pie: {\n useMaxWidth: false\n },\n gantt: {\n useMaxWidth: false\n },\n gitGraph: {\n useMaxWidth: false\n }\n }\n }\n}\n","import uml from \"./uml\"\nimport arithmatex from \"./arithmatex\"\nimport \"./material-extra-3rdparty\"\n\n// Main function\n(() => {\n let umlPromise = Promise.resolve()\n let mathPromise = Promise.resolve()\n\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.type === \"attributes\") {\n let scheme = mutation.target.getAttribute(\"data-md-color-scheme\")\n if (!scheme) {\n scheme = \"slate\"\n }\n if (typeof mermaid !== \"undefined\") {\n uml(\"diagram\")\n }\n }\n })\n })\n\n const main = () => {\n observer.observe(document.querySelector(\"body\"), {attributeFilter: [\"data-md-color-scheme\"]})\n\n if (typeof mermaid !== \"undefined\") {\n umlPromise = umlPromise.then(() => {\n uml(\"diagram\")\n }).catch(err => {\n console.log(`UML loading failed...${err}`) // eslint-disable-line no-console\n })\n }\n\n if (typeof katex !== \"undefined\") {\n mathPromise = mathPromise.then(() => {\n arithmatex(\"arithmatex\", \"katex\")\n }).catch(err => {\n console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n })\n } else if (typeof MathJax !== \"undefined\" && 'typesetPromise' in MathJax) {\n mathPromise = mathPromise.then(() => {\n arithmatex(\"arithmatex\", \"mathjax\")\n }).catch(err => {\n console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n })\n }\n }\n\n window.document$.subscribe(main)\n})()\n"],"names":["uml","async","MermaidDiv","HTMLElement","constructor","super","shadow","this","attachShadow","mode","style","document","createElement","textContent","appendChild","customElements","get","define","getFromCode","parent","text","j","childNodes","length","subEl","tagName","toLowerCase","k","child","whitespace","nodeName","test","nodeValue","defaultConfig","startOnLoad","theme","flowchart","useMaxWidth","er","sequence","noteFontWeight","actorFontSize","messageFontSize","mermaid","mermaidAPI","globalReset","scheme","querySelector","getAttribute","err","config","mermaidConfig","default","initialize","blocks","querySelectorAll","className","surrogate","i","block","parentEl","shadowRoot","temp","visibility","display","padding","margin","lineHeight","fontSize","res","render","content","svg","fn","bindFunctions","el","innerHTML","parentNode","insertBefore","removeChild","contains","arithmatex","maths","tex","innerText","startsWith","endsWith","katex","slice","displayMode","MathJax","startup","output","clearCache","typesetClear","texReset","typesetPromise","window","inlineMath","displayMath","processEscapes","processEnvironments","tagSide","tagIndent","multlineWidth","tags","options","ignoreHtmlClass","processHtmlClass","slate","themeCSS","themeVariables","darkMode","background","mainBkg","textColor","lineColor","errorBkgColor","errorTextColor","primaryColor","primaryTextColor","primaryBorderColor","secondaryColor","secondaryTextColor","secondaryBorderColor","tertiaryColor","tertiaryTextColor","tertiaryBorderColor","noteBkgColor","noteTextColor","noteBorderColor","edgeLabelBackground","edgeLabelText","actorLineColor","activeTaskBkgColor","activeTaskBorderColor","doneTaskBkgColor","doneTaskBorderColor","critBkgColor","critBorderColor","taskTextColor","taskTextOutsideColor","taskTextLightColor","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","todayLineColor","gridColor","defaultLinkColor","altBackground","classText","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","fillType8","git0","git1","git2","git3","git4","git5","git6","git7","gitInv0","gitInv1","gitInv2","gitInv3","gitInv4","gitInv5","gitInv6","gitInv7","gitBranchLabel0","gitBranchLabel1","gitBranchLabel2","gitBranchLabel3","gitBranchLabel4","gitBranchLabel5","gitBranchLabel6","gitBranchLabel7","commitLabelColor","commitLabelBackground","journey","pie","gantt","gitGraph","umlPromise","Promise","resolve","mathPromise","observer","MutationObserver","mutations","forEach","mutation","type","target","document$","subscribe","observe","attributeFilter","then","catch","console","log"],"mappings":"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"}
1
+ {"version":3,"file":"extra-loader-DGSk4yI3.js","sources":["uml.js","arithmatex.js","material-extra-3rdparty.js","extra-loader.js"],"sourcesContent":["/* Notes (as of Mermaid 8.7.0):\n * - Gantt: width is always relative to the parent, if you have a small parent, the chart will be squashed.\n * Can't help it.\n * - Journey: Suffers from the same issues that Gantt does.\n * - Pie: These charts have no default height or width. Good luck pinning them down to a reasonable size.\n * - Git: The render portion is agnostic to the size of the parent element. But padding of the SVG is relative\n * to the parent element. You will never find a happy size.\n */\n\n/**\n * Targets special code or div blocks and converts them to UML.\n * @param {string} className is the name of the class to target.\n * @return {void}\n */\nexport default async className => {\n\n // Custom element to encapsulate Mermaid content.\n class MermaidDiv extends HTMLElement {\n\n /**\n * Creates a special Mermaid div shadow DOM.\n * Works around issues of shared IDs.\n * @return {void}\n */\n constructor() {\n super()\n\n // Create the Shadow DOM and attach style\n const shadow = this.attachShadow({mode: \"open\"})\n const style = document.createElement(\"style\")\n style.textContent = `\n :host {\n display: block;\n line-height: initial;\n font-size: 16px;\n }\n div.diagram {\n margin: 0;\n overflow: visible;\n }`\n shadow.appendChild(style)\n }\n }\n\n if (typeof customElements.get(\"diagram-div\") === \"undefined\") {\n customElements.define(\"diagram-div\", MermaidDiv)\n }\n\n const getFromCode = parent => {\n // Handles <pre><code> text extraction.\n let text = \"\"\n for (let j = 0; j < parent.childNodes.length; j++) {\n const subEl = parent.childNodes[j]\n if (subEl.tagName.toLowerCase() === \"code\") {\n for (let k = 0; k < subEl.childNodes.length; k++) {\n const child = subEl.childNodes[k]\n const whitespace = /^\\s*$/\n if (child.nodeName === \"#text\" && !(whitespace.test(child.nodeValue))) {\n text = child.nodeValue\n break\n }\n }\n }\n }\n return text\n }\n\n // We use this to determine if we want the dark or light theme.\n // This is specific for our MkDocs Material environment.\n // You should load your configs based on your own environment's needs.\n const defaultConfig = {\n startOnLoad: false,\n theme: \"default\",\n flowchart: {\n useMaxWidth: false\n },\n er: {\n useMaxWidth: false\n },\n sequence: {\n useMaxWidth: false,\n noteFontWeight: \"14px\",\n actorFontSize: \"14px\",\n messageFontSize: \"16px\"\n }\n }\n mermaid.mermaidAPI.globalReset()\n // Non Material themes should just use \"default\"\n let scheme = null\n try {\n scheme = document.querySelector(\"[data-md-color-scheme]\").getAttribute(\"data-md-color-scheme\")\n } catch (err) {\n scheme = \"slate\"\n }\n const config = (typeof mermaidConfig === \"undefined\") ?\n defaultConfig :\n mermaidConfig[scheme] || (mermaidConfig.default || defaultConfig)\n mermaid.initialize(config)\n\n // Find all of our Mermaid sources and render them.\n const blocks = document.querySelectorAll(`pre.${className}, diagram-div`)\n const surrogate = document.querySelector(\"html body\")\n for (let i = 0; i < blocks.length; i++) {\n const block = blocks[i]\n const parentEl = (block.tagName.toLowerCase() === \"diagram-div\") ?\n block.shadowRoot.querySelector(`pre.${className}`) :\n block\n\n // Create a temporary element with the typeset and size we desire.\n // Insert it at the end of our parent to render the SVG.\n const temp = document.createElement(\"div\")\n temp.style.visibility = \"hidden\"\n temp.style.display = \"display\"\n temp.style.padding = \"0\"\n temp.style.margin = \"0\"\n temp.style.lineHeight = \"initial\"\n temp.style.fontSize = \"16px\"\n surrogate.appendChild(temp)\n\n try {\n const res = await mermaid.render(`_diagram_${i}`, getFromCode(parentEl), temp)\n const content = res.svg\n const fn = res.bindFunctions\n const el = document.createElement(\"div\")\n el.className = className\n el.innerHTML = content\n if (fn) {\n fn(el)\n }\n\n // Insert the render where we want it and remove the original text source.\n // Mermaid will clean up the temporary element.\n const shadow = document.createElement(\"diagram-div\")\n shadow.shadowRoot.appendChild(el)\n block.parentNode.insertBefore(shadow, block)\n parentEl.style.display = \"none\"\n shadow.shadowRoot.appendChild(parentEl)\n if (parentEl !== block) {\n block.parentNode.removeChild(block)\n }\n } catch (err) {} // eslint-disable-line no-empty\n\n if (surrogate.contains(temp)) {\n surrogate.removeChild(temp)\n }\n }\n}\n","export default (className, mode) => {\n if (mode === 'katex') {\n const maths = document.querySelectorAll(`.${className}`)\n\n for (let i = 0; i < maths.length; i++) {\n const tex = maths[i].textContent || maths[i].innerText\n\n if (tex.startsWith('\\\\(') && tex.endsWith('\\\\)')) {\n katex.render(tex.slice(2, -2), maths[i], {'displayMode': false})\n } else if (tex.startsWith('\\\\[') && tex.endsWith('\\\\]')) {\n katex.render(tex.slice(2, -2), maths[i], {'displayMode': true})\n }\n }\n } else if (mode === 'mathjax') {\n if (typeof MathJax.startup.output.clearCache !== \"undefined\") {\n MathJax.startup.output.clearCache()\n }\n MathJax.typesetClear()\n MathJax.texReset()\n MathJax.typesetPromise()\n }\n}\n","// MathJax configuration\n\nif (!('mathjaxConfig' in window)) {\n window.MathJax = {\n tex: {\n inlineMath: [[\"\\\\(\", \"\\\\)\"]],\n displayMath: [[\"\\\\[\", \"\\\\]\"]],\n processEscapes: true,\n processEnvironments: true,\n tagSide: \"right\",\n tagIndent: \".8em\",\n multlineWidth: \"85%\",\n tags: \"ams\"\n },\n options: {\n ignoreHtmlClass: \".*\",\n processHtmlClass: \"arithmatex\"\n }\n }\n}\n\nif (!('mermaidConfig' in window)) {\n // Our loader looks for `mermaidConfig` and will load the the appropriate\n // configuration based on our current scheme: light, dark, etc.\n window.mermaidConfig = {\n slate: {\n startOnLoad: false,\n theme: \"base\",\n themeCSS: \"\\\n * {\\\n --drac-page-bg: hsl(233, 15%, 23%);\\\n --drac-white-fg: hsl(60, 30%, 96%);\\\n --drac-purple-fg: hsl(265, 89%, 78%);\\\n --drac-purple-bg: hsl(265, 25%, 39%);\\\n --drac-yellow-fg: hsl(65, 92%, 76%);\\\n --drac-blue-fg: hsl(225, 27%, 51%);\\\n }\\\n \\\n /* General */\\\n [id^='_diagram'] {\\\n background-color: var(--drac-page-bg);\\\n }\\\n \\\n /* Entity Relationship */\\\n rect.relationshipLabelBox {\\\n opacity: 0.75 !important;\\\n fill: var(--drac-purple-bg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_END circle {\\\n fill: var(--drac-page-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_START circle{\\\n fill: var(--drac-page-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_MORE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONLY_ONE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONLY_ONE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_ONE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ZERO_OR_ONE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONE_OR_MORE_START path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n defs marker#ONE_OR_MORE_END path {\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n \\\n /* Flowchart */\\\n .labelText,\\\n :not(.branchLabel) > .label text {\\\n fill: var(--drac-purple-fg);\\\n }\\\n .edgeLabel text {\\\n fill: var(--drac-purple-fg) !important;\\\n }\\\n .edgeLabel rect {\\\n opacity: 0.75 !important;\\\n fill: var(--drac-purple-bg) !important;\\\n }\\\n \\\n .grey rect.label-container { \\\n fill: var(--drac-purple-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n } \\\n /* Sequence */\\\n line[id^='actor'] {\\\n stroke: var(--drac-blue-fg);\\\n }\\\n .noteText {\\\n fill: var(--drac-yellow-fg);\\\n }\\\n \\\n /* Gantt */\\\n .sectionTitle {\\\n fill: var(--drac-purple-fg) !important;\\\n }\\\n \\\n .grid .tick line {\\\n stroke: var(--drac-blue-fg) !important;\\\n }\\\n \\\n .grid .tick text {\\\n fill: var(--drac-purple-fg);\\\n }\\\n \\\n /* Class Diagram */\\\n .statediagram-state rect.divider {\\\n fill: transparent !important;\\\n }\\\n \\\n /* State Diagram */\\\n .stateGroup circle[style$=\\\"fill: black;\\\"] {\\\n fill: var(--drac-purple-bg) !important;\\\n stroke: var(--drac-purple-bg) !important;\\\n }\\\n \\\n .stateGroup circle[style$=\\\"fill: white;\\\"] {\\\n fill: var(--drac-purple-bg) !important;\\\n stroke: var(--drac-purple-fg) !important;\\\n }\\\n \\\n .stateGroup .composit {\\\n fill: var(--drac-page-bg);\\\n }\\\n /* Pie */\\\n text.slice {\\\n fill: var(--drac-white-fg) !important;\\\n }\\\n /* Git Graph */\\\n .commit-bullets .commit-reverse,\\\n .commit-bullets .commit-merge, \\\n .commit-bullets .commit-highlight-inner {\\\n fill: var(--drac-page-bg) !important;\\\n stroke: var(--drac-page-bg) !important;\\\n }\\\n \",\n themeVariables: {\n darkMode: true,\n background: \"#323443\",\n mainBkg: \"#604b7d\",\n textColor: \"#bf95f9\",\n lineColor: \"#bf95f9\",\n errorBkgColor: \"#802c2c\",\n errorTextColor: \"#ff5757\",\n primaryColor: \"#604b7d\",\n primaryTextColor: \"#bf95f9\",\n primaryBorderColor: \"#bf95f9\",\n secondaryColor: \"#297d3e\",\n secondaryTextColor: \"#52fa7c\",\n secondaryBorderColor: \"#52fa7c\",\n tertiaryColor: \"#303952\",\n tertiaryTextColor: \"#6071a4\",\n tertiaryBorderColor: \"#6071a4\",\n noteBkgColor: \"#797d45\",\n noteTextColor: \"#f1fa89\",\n noteBorderColor: \"#f1fa89\",\n edgeLabelBackground: \"#604b7d\",\n edgeLabelText: \"#604b7d\",\n\n actorLineColor: \"#6071a4\",\n\n activeTaskBkgColor: \"#803d63\",\n activeTaskBorderColor: \"#ff7ac6\",\n doneTaskBkgColor: \"#297d3e\",\n doneTaskBorderColor: \"#52fa7c\",\n critBkgColor: \"#802c2c\",\n critBorderColor: \"#ff5757\",\n taskTextColor: \"#bf95f9\",\n taskTextOutsideColor: \"#bf95f9\",\n taskTextLightColor: \"#bf95f9\",\n sectionBkgColor: \"#bf95f9b3\",\n sectionBkgColor2: \"#bf95f966\",\n altSectionBkgColor: \"#323443\",\n todayLineColor: \"#ff7ac6\",\n gridColor: \"#6071a4\",\n defaultLinkColor: \"#8be8fd\",\n\n altBackground: \"#bf95f9\",\n\n classText: \"#bf95f9\",\n\n fillType0: \"#406080\",\n fillType1: \"#46747f\",\n fillType2: \"#297d3e\",\n fillType3: \"#805c36\",\n fillType4: \"#803d63\",\n fillType5: \"#604b7d\",\n fillType6: \"#802c2c\",\n fillType7: \"#797d45\",\n fillType8: \"#7c7c79\",\n\n git0: \"#ff5555\",\n git1: \"#ffb86c\",\n git2: \"#f1fa8c\",\n git3: \"#50fa7b\",\n git4: \"#8be9fd\",\n git5: \"#809fff\",\n git6: \"#ff79c6\",\n git7: \"#bd93f9\",\n\n gitInv0: \"#ff5555\",\n gitInv1: \"#ffb86c\",\n gitInv2: \"#f1fa8c\",\n gitInv3: \"#50fa7b\",\n gitInv4: \"#8be9fd\",\n gitInv5: \"#809fff\",\n gitInv6: \"#ff79c6\",\n gitInv7: \"#bd93f9\",\n\n gitBranchLabel0: \"#323443\",\n gitBranchLabel1: \"#323443\",\n gitBranchLabel2: \"#323443\",\n gitBranchLabel3: \"#323443\",\n gitBranchLabel4: \"#323443\",\n gitBranchLabel5: \"#323443\",\n gitBranchLabel6: \"#323443\",\n gitBranchLabel7: \"#323443\",\n\n commitLabelColor: '#52fa7c',\n commitLabelBackground: '#297d3e'\n },\n flowchart: {\n useMaxWidth: false\n },\n er: {\n useMaxWidth: false\n },\n sequence: {\n useMaxWidth: false,\n // Mermaid handles Firefox a little different.\n // For some reason, it doesn't attach font sizes to the labels in Firefox.\n // If we specify the documented defaults, font sizes are written to the labels in Firefox.\n noteFontWeight: \"14px\",\n actorFontSize: \"14px\",\n messageFontSize: \"16px\"\n },\n journey: {\n useMaxWidth: false\n },\n pie: {\n useMaxWidth: false\n },\n gantt: {\n useMaxWidth: false\n },\n gitGraph: {\n useMaxWidth: false\n }\n },\n\n default: {\n startOnLoad: false,\n theme: \"default\",\n flowchart: {\n useMaxWidth: false\n },\n er: {\n useMaxWidth: false\n },\n sequence: {\n useMaxWidth: false,\n noteFontWeight: \"14px\",\n actorFontSize: \"14px\",\n messageFontSize: \"16px\"\n },\n journey: {\n useMaxWidth: false\n },\n pie: {\n useMaxWidth: false\n },\n gantt: {\n useMaxWidth: false\n },\n gitGraph: {\n useMaxWidth: false\n }\n }\n }\n}\n","import uml from \"./uml\"\nimport arithmatex from \"./arithmatex\"\nimport \"./material-extra-3rdparty\"\n\n// Main function\n(() => {\n let umlPromise = Promise.resolve()\n let mathPromise = Promise.resolve()\n\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.type === \"attributes\") {\n let scheme = mutation.target.getAttribute(\"data-md-color-scheme\")\n if (!scheme) {\n scheme = \"slate\"\n }\n if (typeof mermaid !== \"undefined\") {\n uml(\"diagram\")\n }\n }\n })\n })\n\n const main = () => {\n observer.observe(document.querySelector(\"body\"), {attributeFilter: [\"data-md-color-scheme\"]})\n\n if (typeof mermaid !== \"undefined\") {\n umlPromise = umlPromise.then(() => {\n uml(\"diagram\")\n }).catch(err => {\n console.log(`UML loading failed...${err}`) // eslint-disable-line no-console\n })\n }\n\n if (typeof katex !== \"undefined\") {\n mathPromise = mathPromise.then(() => {\n arithmatex(\"arithmatex\", \"katex\")\n }).catch(err => {\n console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n })\n } else if (typeof MathJax !== \"undefined\" && 'typesetPromise' in MathJax) {\n mathPromise = mathPromise.then(() => {\n arithmatex(\"arithmatex\", \"mathjax\")\n }).catch(err => {\n console.log(`Math loading failed...${err}`) // eslint-disable-line no-console\n })\n }\n }\n\n window.document$.subscribe(main)\n})()\n"],"names":["uml","async","MermaidDiv","HTMLElement","constructor","super","shadow","this","attachShadow","mode","style","document","createElement","textContent","appendChild","customElements","get","define","getFromCode","parent","text","j","childNodes","length","subEl","tagName","toLowerCase","k","child","whitespace","nodeName","test","nodeValue","defaultConfig","startOnLoad","theme","flowchart","useMaxWidth","er","sequence","noteFontWeight","actorFontSize","messageFontSize","mermaid","mermaidAPI","globalReset","scheme","querySelector","getAttribute","err","config","mermaidConfig","default","initialize","blocks","querySelectorAll","className","surrogate","i","block","parentEl","shadowRoot","temp","visibility","display","padding","margin","lineHeight","fontSize","res","render","content","svg","fn","bindFunctions","el","innerHTML","parentNode","insertBefore","removeChild","contains","arithmatex","maths","tex","innerText","startsWith","endsWith","katex","slice","displayMode","MathJax","startup","output","clearCache","typesetClear","texReset","typesetPromise","window","inlineMath","displayMath","processEscapes","processEnvironments","tagSide","tagIndent","multlineWidth","tags","options","ignoreHtmlClass","processHtmlClass","slate","themeCSS","themeVariables","darkMode","background","mainBkg","textColor","lineColor","errorBkgColor","errorTextColor","primaryColor","primaryTextColor","primaryBorderColor","secondaryColor","secondaryTextColor","secondaryBorderColor","tertiaryColor","tertiaryTextColor","tertiaryBorderColor","noteBkgColor","noteTextColor","noteBorderColor","edgeLabelBackground","edgeLabelText","actorLineColor","activeTaskBkgColor","activeTaskBorderColor","doneTaskBkgColor","doneTaskBorderColor","critBkgColor","critBorderColor","taskTextColor","taskTextOutsideColor","taskTextLightColor","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","todayLineColor","gridColor","defaultLinkColor","altBackground","classText","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","fillType8","git0","git1","git2","git3","git4","git5","git6","git7","gitInv0","gitInv1","gitInv2","gitInv3","gitInv4","gitInv5","gitInv6","gitInv7","gitBranchLabel0","gitBranchLabel1","gitBranchLabel2","gitBranchLabel3","gitBranchLabel4","gitBranchLabel5","gitBranchLabel6","gitBranchLabel7","commitLabelColor","commitLabelBackground","journey","pie","gantt","gitGraph","umlPromise","Promise","resolve","mathPromise","observer","MutationObserver","mutations","forEach","mutation","type","target","document$","subscribe","observe","attributeFilter","then","catch","console","log"],"mappings":"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"}
@@ -28,7 +28,6 @@ class CustomMetadataHook(MetadataHookInterface):
28
28
  "License :: OSI Approved :: MIT License",
29
29
  "Operating System :: OS Independent",
30
30
  "Programming Language :: Python :: 3",
31
- "Programming Language :: Python :: 3.10",
32
31
  "Programming Language :: Python :: 3.11",
33
32
  "Programming Language :: Python :: 3.12",
34
33
  "Programming Language :: Python :: 3.13",
@@ -193,5 +193,5 @@ def parse_version(ver: str) -> Version:
193
193
  return Version(major, minor, micro, release, pre, post, dev)
194
194
 
195
195
 
196
- __version_info__ = Version(12, 2, 0, "final")
196
+ __version_info__ = Version(13, 0, 0, "final")
197
197
  __version__ = __version_info__._get_canonical()
@@ -76,9 +76,9 @@ def _inline_mathjax_format(math, language='math', class_name='arithmatex', md=No
76
76
  el = etree.Element(tag, {'class': 'arithmatex'})
77
77
  if preview:
78
78
  pre = etree.SubElement(el, 'span', {'class': 'MathJax_Preview'})
79
- pre.text = md_util.AtomicString(math)
79
+ pre.text = md_util.AtomicString(_escape(math))
80
80
  script = etree.SubElement(el, 'script', {'type': 'math/tex'})
81
- script.text = md_util.AtomicString(math)
81
+ script.text = md_util.AtomicString(_escape(math))
82
82
  return el
83
83
 
84
84
 
@@ -118,7 +118,7 @@ def _fence_mathjax_format(
118
118
 
119
119
  text += (
120
120
  '<script type="math/tex; mode=display">\n' +
121
- math +
121
+ _escape(math) +
122
122
  '\n</script>\n'
123
123
  )
124
124
  text += '</div>'
@@ -141,7 +141,7 @@ def _fence_generic_format(
141
141
  classes = ' class="{}"'.format(' '.join(classes))
142
142
  attrs = ' ' + ' '.join(f'{k}="{v}"' for k, v in attrs.items()) if attrs else ''
143
143
 
144
- return f'<{tag}{id_value}{classes}{attrs}>{wrap.format(math)}</{tag}>'
144
+ return f'<{tag}{id_value}{classes}{attrs}>{wrap.format(_escape(math))}</{tag}>'
145
145
 
146
146
 
147
147
  def arithmatex_fenced_format(**kwargs):
@@ -169,7 +169,7 @@ class InlineArithmatexPattern(InlineProcessor):
169
169
  self.generic = config.get('generic', False)
170
170
  wrap = config.get('tex_inline_wrap', ["\\(", "\\)"])
171
171
  self.wrap = (
172
- wrap[0].replace('{', '}}').replace('}', '}}') + '{}' + wrap[1].replace('{', '}}').replace('}', '}}')
172
+ wrap[0].replace('{', '{{').replace('}', '}}') + '{}' + wrap[1].replace('{', '{{').replace('}', '}}')
173
173
  )
174
174
  self.inline_tag = config.get('inline_tag', 'span')
175
175
 
@@ -209,7 +209,7 @@ class BlockArithmatexProcessor(BlockProcessor):
209
209
  self.generic = config.get('generic', False)
210
210
  wrap = config.get('tex_block_wrap', ['\\[', '\\]'])
211
211
  self.wrap = (
212
- wrap[0].replace('{', '}}').replace('}', '}}') + '{}' + wrap[1].replace('{', '}}').replace('}', '}}')
212
+ wrap[0].replace('{', '{{').replace('}', '}}') + '{}' + wrap[1].replace('{', '{{').replace('}', '}}')
213
213
  )
214
214
  self.block_tag = config.get('block_tag', 'div')
215
215
 
@@ -236,13 +236,13 @@ class BlockArithmatexProcessor(BlockProcessor):
236
236
  preview = etree.SubElement(parent, 'div', {'class': 'MathJax_Preview'})
237
237
  preview.text = md_util.AtomicString(math)
238
238
  el = etree.SubElement(parent, 'script', {'type': 'math/tex; mode=display'})
239
- el.text = md_util.AtomicString(math)
239
+ el.text = md_util.AtomicString(_escape(math))
240
240
 
241
241
  def generic_output(self, parent, math):
242
242
  """Generic output."""
243
243
 
244
244
  el = etree.SubElement(parent, self.block_tag, {'class': 'arithmatex'})
245
- el.text = md_util.AtomicString(self.wrap.format(math))
245
+ el.text = md_util.AtomicString(self.wrap.format(_escape(math)))
246
246
 
247
247
  def run(self, parent, blocks):
248
248
  """Find and handle block content."""
@@ -47,7 +47,7 @@ RE_TAG_HTML = re.compile(
47
47
  (?:(\r?\n?\s*)<!--[\s\S]*?-->(\s*)(?=\r?\n)|<!--[\s\S]*?-->)
48
48
  )|
49
49
  (?P<open><\s*(?P<tag>img))
50
- (?P<attr>(?:\s+[\w\-:]+(?:\s*=\s*(?:"[^"]*"|'[^']*'))?)*)
50
+ (?P<attr>(?:\s+[\w\-:]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s"'`=<>]+))?)*)
51
51
  (?P<close>\s*(?:\/?)>)
52
52
  )
53
53
  '''
@@ -33,7 +33,8 @@ class BetterEmExtension(Extension):
33
33
  """Initialize."""
34
34
 
35
35
  self.config = {
36
- 'smart_enable': ["underscore", "Treat connected words intelligently - Default: underscore"]
36
+ 'smart_enable': ["underscore", "Treat connected words intelligently - Default: underscore"],
37
+ 'punctuation': [True, "Force CommonMark punctuation rules when superscript is enabled - Default: True"]
37
38
  }
38
39
 
39
40
  super().__init__(*args, **kwargs)
@@ -58,6 +59,7 @@ class BetterEmExtension(Extension):
58
59
  enable_all = enabled == "all"
59
60
  enable_under = enabled == "underscore" or enable_all
60
61
  enable_star = enabled == "asterisk" or enable_all
62
+ punct = bool(config['punctuation'])
61
63
 
62
64
  # If we don't have to move an existing extension, use the same priority,
63
65
  # but if we do have to, move it closely to the relative needed position.
@@ -70,8 +72,8 @@ class BetterEmExtension(Extension):
70
72
  md.inlinePatterns.deregister('strong2', False)
71
73
  md.inlinePatterns.deregister('emphasis2', False)
72
74
 
73
- delim_star = Delimiter('*', 'strong,em', smart=enable_star)
74
- delim_under = Delimiter('_', 'strong,em', smart=enable_under)
75
+ delim_star = Delimiter('*', 'strong,em', smart=enable_star, punct=punct)
76
+ delim_under = Delimiter('_', 'strong,em', smart=enable_under, punct=punct)
75
77
 
76
78
  if (
77
79
  'delimiter' not in md.inlinePatterns or
@@ -6,7 +6,7 @@ from ..saneheaders import RE_HEADER, SaneHeadersProcessor
6
6
  import re
7
7
 
8
8
  RE_SEP = re.compile(r'[_-]+')
9
- RE_NORMAL_HEADING = re.compile(r'^(?P<level>#{1,6})(?P<header>(?:\\.|[^\\])*?)#*$')
9
+ RE_NORMAL_HEADING = re.compile(r'^(?P<level>#{1,6})(?P<header>(?:\\.|[^\\]|#+(?=[^#\n]))*?)#*$')
10
10
 
11
11
 
12
12
  class Admonition(Block):
@@ -34,7 +34,7 @@ def _type_multi(value: Any, types: Iterable[Callable[[Any], _T]] = ()) -> _T:
34
34
  for t in types:
35
35
  try:
36
36
  return t(value)
37
- except ValueError: # noqa: PERF203
37
+ except ValueError:
38
38
  pass
39
39
 
40
40
  raise ValueError(f"Type '{type(value)}' did not match any of the provided types")
@@ -132,7 +132,7 @@ class CaptionTreeprocessor(Treeprocessor):
132
132
  break
133
133
 
134
134
  # Check if parent element is a figure of the current type
135
- if parent.tag == 'figure' and parent.attrib['__figure_type'] == fig_type:
135
+ if parent.tag == 'figure' and parent.attrib.get('__figure_type') == fig_type:
136
136
  # See if position in stack is manually specified
137
137
  level = '__figure_level' in parent.attrib
138
138
  if level: