t-doc-common 0.22__tar.gz → 0.23.dev1__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.
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/.hgtags +1 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/PKG-INFO +4 -2
- t_doc_common-0.23.dev1/tdoc/common/__init__.py +5 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/cli.py +141 -73
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/defaults.py +1 -1
- {t_doc_common-0.22/tdoc/common → t_doc_common-0.23.dev1/tdoc/common/ext}/__init__.py +8 -9
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/ext/defaults.py +1 -1
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/ext/exec.py +1 -1
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/ext/iframe.py +1 -1
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/ext/metadata.py +1 -1
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/ext/num.py +1 -1
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/ext/solution.py +1 -1
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/styles.css.jinja +3 -2
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/.github/workflows/deploy-github-pages.yml +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/.github/workflows/package.yml +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/.github/workflows/publish.yml +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/.gitignore +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/.hgignore +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/LICENSE.txt +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/LICENSES.deps.txt +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/README.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/TODO.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/_static/demo-html-script.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/_static/demo-html-styles.css +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/conf.py +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/demo/crypto.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/demo/elements.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/demo/embedding.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/demo/html.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/demo/index.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/demo/python.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/demo/sql.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/development.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/edit.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/index.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/install/index.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/install/release_notes.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/reference/elements.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/reference/exec.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/reference/index.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/reference/people.sql +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/docs/reference/python-libs.md +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/package-lock.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/package.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/pyproject.toml +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/rollup.config.mjs +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/serve.bat +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/serve.desktop +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/locale/__init__.py +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/python/__init__.py +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/python/core.py +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/python/svg.py +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/scripts/editor.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/scripts/tdoc-worker.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/core.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/crypto.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/early.js.jinja +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/exec-html.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/exec-python.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/exec-python.py +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/exec-sql.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/exec.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/load.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static/tdoc/reload.js.jinja +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/assistive-mml.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/complexity.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/explorer.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/semantic-enrich.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/sre.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/adaptors/liteDOM.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/core.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/asciimath.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/mml/entities.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/mml/extensions/mml3.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/mml/extensions/mml3.sef.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/mml.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/action.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/all-packages.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/ams.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/amscd.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/autoload.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/bbox.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/boldsymbol.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/braket.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/bussproofs.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/cancel.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/cases.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/centernot.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/color.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/colortbl.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/colorv2.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/configmacros.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/empheq.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/enclose.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/extpfeil.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/gensymb.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/html.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/mathtools.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/mhchem.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/newcommand.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/noerrors.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/noundefined.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/physics.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/require.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/setoptions.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/tagformat.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/textcomp.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/textmacros.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/unicode.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/upgreek.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex/extensions/verb.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex-base.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex-full.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/tex.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/latest.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/loader.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/mml-chtml.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/mml-svg.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/node-main.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/tex.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml/fonts/woff-v2/MathJax_Zero.woff +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/chtml.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/svg/fonts/tex.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/output/svg.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/base.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/ca.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/da.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/de.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/en.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/es.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/fr.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/hi.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/it.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/nb.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/nemeth.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/nn.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/sre/mathmaps/sv.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/startup.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/tex-chtml-full-speech.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/tex-chtml-full.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/tex-chtml.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/tex-mml-chtml.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/tex-mml-svg.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/tex-svg-full.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/tex-svg.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/ui/lazy.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/ui/menu.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/ui/safe.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/polyscript/index.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/polyscript/index.js.map +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/polyscript/toml-DiUM0_qs.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/polyscript/toml-DiUM0_qs.js.map +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/polyscript/zip-DrwYHuF9.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/polyscript/zip-DrwYHuF9.js.map +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/pyodide/pyodide-lock.json +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/pyodide/pyodide.asm.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/pyodide/pyodide.asm.wasm +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/pyodide/pyodide.mjs +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/pyodide/pyodide.mjs.map +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/pyodide/python_stdlib.zip +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/sabayon-listeners.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/sqlite/sqlite3-bundler-friendly.mjs +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/sqlite/sqlite3-opfs-async-proxy.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/sqlite/sqlite3-worker1-bundler-friendly.mjs +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/sqlite/sqlite3-worker1-promiser.mjs +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/sqlite/sqlite3.wasm +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/tdoc/editor.js +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/templates/copyright.html +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/theme.toml +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/util.py +0 -0
- {t_doc_common-0.22 → t_doc_common-0.23.dev1}/tools/hatch_hooks.py +0 -0
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: t-doc-common
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.23.dev1
|
|
4
4
|
Summary: Common functionality for t-doc
|
|
5
5
|
Project-URL: Code, https://github.com/t-docs/common
|
|
6
6
|
Project-URL: Documentation, https://t-doc.org/common/
|
|
7
7
|
Project-URL: Homepage, https://t-doc.org/
|
|
8
8
|
Author-email: Remy Blank <remy@c-space.org>
|
|
9
|
-
License: MIT
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE.txt
|
|
11
|
+
License-File: LICENSES.deps.txt
|
|
10
12
|
Classifier: Development Status :: 3 - Alpha
|
|
11
13
|
Classifier: Framework :: Sphinx :: Extension
|
|
12
14
|
Classifier: Intended Audience :: Developers
|
|
@@ -3,24 +3,27 @@
|
|
|
3
3
|
|
|
4
4
|
import argparse
|
|
5
5
|
import contextlib
|
|
6
|
-
from http import
|
|
6
|
+
from http import HTTPMethod, HTTPStatus
|
|
7
7
|
import itertools
|
|
8
8
|
from importlib import metadata
|
|
9
9
|
import json
|
|
10
|
+
import mimetypes
|
|
10
11
|
import os
|
|
11
12
|
import pathlib
|
|
13
|
+
import posixpath
|
|
12
14
|
import re
|
|
13
15
|
import shutil
|
|
14
16
|
import socket
|
|
17
|
+
import socketserver
|
|
15
18
|
import stat
|
|
16
19
|
import subprocess
|
|
17
20
|
import sys
|
|
18
21
|
import threading
|
|
19
22
|
import time
|
|
20
23
|
from urllib import parse
|
|
24
|
+
from wsgiref import simple_server, util as wsgiutil
|
|
21
25
|
|
|
22
|
-
from
|
|
23
|
-
from . import util
|
|
26
|
+
from . import __project__, __version__, util
|
|
24
27
|
|
|
25
28
|
# TODO: Implement incremental builds, by copying previous build output
|
|
26
29
|
|
|
@@ -86,8 +89,8 @@ def main(argv, stdin, stdout, stderr):
|
|
|
86
89
|
"(default: %(default)s).")
|
|
87
90
|
arg('--port', metavar='PORT', dest='port', default=8000, type=int,
|
|
88
91
|
help="The port to bind the server to (default: %(default)s).")
|
|
89
|
-
arg('--
|
|
90
|
-
help="
|
|
92
|
+
arg('--restart-on-change', action='store_true', dest='restart_on_change',
|
|
93
|
+
help="Restart the server on changes.")
|
|
91
94
|
arg('--watch', metavar='PATH', action='append', dest='watch', default=[],
|
|
92
95
|
help="Additional directories to watch for changes.")
|
|
93
96
|
|
|
@@ -127,18 +130,24 @@ def cmd_serve(cfg):
|
|
|
127
130
|
|
|
128
131
|
class Server(ServerBase):
|
|
129
132
|
address_family = family
|
|
130
|
-
class Handler(HandlerBase):
|
|
131
|
-
protocol = cfg.protocol
|
|
132
133
|
|
|
133
|
-
with
|
|
134
|
+
with Application(cfg, addr) as app, Server(addr, RequestHandler) as srv:
|
|
135
|
+
app.server = srv
|
|
136
|
+
srv.set_app(app)
|
|
134
137
|
try:
|
|
135
138
|
srv.serve_forever()
|
|
136
139
|
except KeyboardInterrupt:
|
|
140
|
+
cfg.restart_on_change = False
|
|
137
141
|
cfg.stderr.write("Interrupted, exiting\n")
|
|
138
142
|
|
|
143
|
+
if cfg.restart_on_change:
|
|
144
|
+
cfg.stdout.flush()
|
|
145
|
+
cfg.stderr.flush()
|
|
146
|
+
os.execv(sys.argv[0], sys.argv)
|
|
147
|
+
|
|
139
148
|
|
|
140
149
|
def cmd_version(cfg):
|
|
141
|
-
cfg.stdout.write(f"{
|
|
150
|
+
cfg.stdout.write(f"{__project__}-{__version__}\n")
|
|
142
151
|
|
|
143
152
|
|
|
144
153
|
def sphinx_build(cfg, target, *, build, tags=(), **kwargs):
|
|
@@ -154,9 +163,47 @@ def sphinx_build(cfg, target, *, build, tags=(), **kwargs):
|
|
|
154
163
|
stderr=cfg.stderr, **kwargs)
|
|
155
164
|
|
|
156
165
|
|
|
157
|
-
class ServerBase(
|
|
158
|
-
|
|
166
|
+
class ServerBase(socketserver.ThreadingMixIn, simple_server.WSGIServer):
|
|
167
|
+
daemon_threads = True
|
|
168
|
+
|
|
169
|
+
def server_bind(self):
|
|
170
|
+
with contextlib.suppress(Exception):
|
|
171
|
+
self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
|
|
172
|
+
return super().server_bind()
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class RequestHandler(simple_server.WSGIRequestHandler):
|
|
176
|
+
def log_request(self, code='-', size='-'):
|
|
177
|
+
pass
|
|
178
|
+
|
|
179
|
+
def log_message(self, format, *args):
|
|
180
|
+
self.server.application.cfg.stderr.write("%s - - [%s] %s\n" % (
|
|
181
|
+
self.address_string(), self.log_date_time_string(),
|
|
182
|
+
(format % args).translate(self._control_char_table)))
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def status_str(status):
|
|
186
|
+
return f'{status} {status.phrase}'
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def error(respond, status):
|
|
190
|
+
respond(status_str(status), [
|
|
191
|
+
('Content-Type', 'text/plain;charset=utf-8'),
|
|
192
|
+
])
|
|
193
|
+
return [status.description.encode('utf-8')]
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def try_stat(path):
|
|
197
|
+
try:
|
|
198
|
+
return path.stat()
|
|
199
|
+
except OSError:
|
|
200
|
+
return None
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
class Application:
|
|
204
|
+
def __init__(self, cfg, addr):
|
|
159
205
|
self.cfg = cfg
|
|
206
|
+
self.addr = addr
|
|
160
207
|
self.lock = threading.Condition(threading.Lock())
|
|
161
208
|
self.directory = self.build_dir(0) / 'html'
|
|
162
209
|
self.upgrade_msg = None
|
|
@@ -168,28 +215,13 @@ class ServerBase(server.ThreadingHTTPServer):
|
|
|
168
215
|
self.builder.start()
|
|
169
216
|
self.checker = threading.Thread(target=self.check_upgrade, daemon=True)
|
|
170
217
|
self.checker.start()
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
def server_bind(self):
|
|
174
|
-
with contextlib.suppress(Exception):
|
|
175
|
-
self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
|
|
176
|
-
return super().server_bind()
|
|
177
|
-
|
|
178
|
-
def finish_request(self, request, client_addr):
|
|
179
|
-
with self.lock: directory = self.directory
|
|
180
|
-
self.RequestHandlerClass(request, client_addr, self,
|
|
181
|
-
directory=directory)
|
|
182
|
-
|
|
183
|
-
IGNORED_EXCEPTIONS = (BrokenPipeError, ConnectionAbortedError)
|
|
218
|
+
self.apps = {'*build': self.handle_build}
|
|
184
219
|
|
|
185
|
-
def
|
|
186
|
-
if not isinstance(sys.exception(), self.IGNORED_EXCEPTIONS):
|
|
187
|
-
super().handle_error(request, client_addr)
|
|
220
|
+
def __enter__(self): return self
|
|
188
221
|
|
|
189
|
-
def
|
|
222
|
+
def __exit__(self, typ, value, tb):
|
|
190
223
|
with self.lock: self.stop = True
|
|
191
224
|
self.builder.join()
|
|
192
|
-
return super().server_close()
|
|
193
225
|
|
|
194
226
|
def watch_and_build(self):
|
|
195
227
|
interval = self.cfg.interval * 1_000_000_000
|
|
@@ -209,6 +241,11 @@ class ServerBase(server.ThreadingHTTPServer):
|
|
|
209
241
|
prev = mtime + delay - interval
|
|
210
242
|
continue
|
|
211
243
|
if prev_mtime != 0:
|
|
244
|
+
if self.cfg.restart_on_change:
|
|
245
|
+
self.cfg.stdout.write(
|
|
246
|
+
"\nSource change detected, restarting\n")
|
|
247
|
+
self.server.shutdown()
|
|
248
|
+
break
|
|
212
249
|
self.cfg.stdout.write(
|
|
213
250
|
"\nSource change detected, rebuilding\n")
|
|
214
251
|
prev_mtime = mtime
|
|
@@ -267,7 +304,7 @@ class ServerBase(server.ThreadingHTTPServer):
|
|
|
267
304
|
shutil.rmtree(build, onexc=on_error)
|
|
268
305
|
|
|
269
306
|
def print_serving(self):
|
|
270
|
-
host, port = self.
|
|
307
|
+
host, port = self.addr[:2]
|
|
271
308
|
if ':' in host: host = f'[{host}]'
|
|
272
309
|
self.cfg.stdout.write(self.cfg.ansi("Serving at <@{LBLUE}%s@{NORM}>\n")
|
|
273
310
|
% f"http://{host}:{port}/")
|
|
@@ -276,14 +313,14 @@ class ServerBase(server.ThreadingHTTPServer):
|
|
|
276
313
|
|
|
277
314
|
def check_upgrade(self):
|
|
278
315
|
try:
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
if project not in upgrades: return
|
|
316
|
+
upgrades, editable = pip_check_upgrades(self.cfg, __project__)
|
|
317
|
+
if __project__ not in upgrades: return
|
|
282
318
|
msg = self.cfg.ansi(
|
|
283
319
|
"@{LYELLOW}A t-doc upgrade is available:@{NORM} "
|
|
284
320
|
"%s @{CYAN}%s@{NORM} => @{CYAN}%s@{NORM}\n"
|
|
285
321
|
"See <@{LBLUE}https://t-doc.org/common/%s#upgrade@{NORM}>\n"
|
|
286
|
-
% (
|
|
322
|
+
% (__project__, metadata.version(__project__),
|
|
323
|
+
upgrades[__project__],
|
|
287
324
|
'development' if editable else 'install'))
|
|
288
325
|
with self.lock:
|
|
289
326
|
self.upgrade_msg = msg
|
|
@@ -291,37 +328,68 @@ class ServerBase(server.ThreadingHTTPServer):
|
|
|
291
328
|
except Exception:
|
|
292
329
|
if self.cfg.debug: raise
|
|
293
330
|
|
|
331
|
+
def __call__(self, env, respond):
|
|
332
|
+
script_name, path_info = env['SCRIPT_NAME'], env['PATH_INFO']
|
|
333
|
+
name = wsgiutil.shift_path_info(env)
|
|
334
|
+
if (handler := self.apps.get(name)) is not None:
|
|
335
|
+
return handler(env, respond)
|
|
336
|
+
env['SCRIPT_NAME'], env['PATH_INFO'] = script_name, path_info
|
|
337
|
+
return self.handle_default(env, respond)
|
|
338
|
+
|
|
339
|
+
def handle_default(self, env, respond):
|
|
340
|
+
env['wsgi.multithread'] = True
|
|
341
|
+
if (method := env['REQUEST_METHOD']) not in (HTTPMethod.HEAD,
|
|
342
|
+
HTTPMethod.GET):
|
|
343
|
+
return error(respond, HTTPStatus.NOT_IMPLEMENTED)
|
|
344
|
+
path = self.file_path(env['PATH_INFO'])
|
|
345
|
+
if (st := try_stat(path)) is None:
|
|
346
|
+
return error(respond, HTTPStatus.NOT_FOUND)
|
|
347
|
+
|
|
348
|
+
if stat.S_ISDIR(st.st_mode):
|
|
349
|
+
parts = parse.urlsplit(env['PATH_INFO'])
|
|
350
|
+
if not parts.path.endswith('/'):
|
|
351
|
+
location = parse.urlunsplit(
|
|
352
|
+
(parts[:2] + (parts[2] + '/',) + parts[3:]))
|
|
353
|
+
respond(status_str(HTTPStatus.MOVED_PERMANENTLY), [
|
|
354
|
+
('Location', location),
|
|
355
|
+
('Content-Length', '0'),
|
|
356
|
+
])
|
|
357
|
+
return []
|
|
358
|
+
path = path / 'index.html'
|
|
359
|
+
if (st := try_stat(path)) is None:
|
|
360
|
+
return error(respond, HTTPStatus.NOT_FOUND)
|
|
361
|
+
|
|
362
|
+
if not stat.S_ISREG(st.st_mode):
|
|
363
|
+
return error(respond, HTTPStatus.NOT_FOUND)
|
|
364
|
+
mime_type = mimetypes.guess_type(path)[0]
|
|
365
|
+
if not mime_type: mime_type = 'application/octet-stream'
|
|
366
|
+
respond(status_str(HTTPStatus.OK), [
|
|
367
|
+
('Content-Type', mime_type),
|
|
368
|
+
('Content-Length', str(st.st_size)),
|
|
369
|
+
])
|
|
370
|
+
if method == HTTPMethod.HEAD: return []
|
|
371
|
+
wrapper = env.get('wsgi.file_wrapper', wsgiutil.FileWrapper)
|
|
372
|
+
return wrapper(open(path, 'rb'))
|
|
373
|
+
|
|
374
|
+
def file_path(self, path):
|
|
375
|
+
trailing = path.rstrip().endswith('/')
|
|
376
|
+
try:
|
|
377
|
+
path = parse.unquote(path, errors='surrogatepass')
|
|
378
|
+
except UnicodeDecodeError:
|
|
379
|
+
path = parse.unquote(path)
|
|
380
|
+
with self.lock: res = self.directory
|
|
381
|
+
for part in filter(None, posixpath.normpath(path).split('/')):
|
|
382
|
+
if pathlib.Path(part).parent.name or part in (os.curdir, os.pardir):
|
|
383
|
+
continue
|
|
384
|
+
res = res / part
|
|
385
|
+
return res / '' if trailing else res
|
|
294
386
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
def log_message(self, format, *args):
|
|
300
|
-
self.server.cfg.stderr.write("%s - - [%s] %s\n" % (
|
|
301
|
-
self.address_string(), self.log_date_time_string(),
|
|
302
|
-
(format % args).translate(self._control_char_table)))
|
|
303
|
-
|
|
304
|
-
def do_GET(self):
|
|
305
|
-
if not self.dispatch_star_handler(True):
|
|
306
|
-
super().do_GET()
|
|
307
|
-
|
|
308
|
-
def do_HEAD(self):
|
|
309
|
-
if not self.dispatch_star_handler(False):
|
|
310
|
-
super().do_HEAD()
|
|
311
|
-
|
|
312
|
-
def dispatch_star_handler(self, write_content):
|
|
313
|
-
url = parse.urlparse(self.path)
|
|
314
|
-
if not url.path.startswith('/*'): return
|
|
315
|
-
if handler := getattr(self, f'handle_star_{url.path[2:]}', None):
|
|
316
|
-
content = handler(url, write_content)
|
|
317
|
-
if write_content and content: self.wfile.write(content)
|
|
318
|
-
else:
|
|
319
|
-
self.send_error(server.HTTPStatus.NOT_FOUND)
|
|
320
|
-
return True
|
|
321
|
-
|
|
322
|
-
def handle_star_build(self, url, write_content):
|
|
387
|
+
def handle_build(self, env, respond):
|
|
388
|
+
if (method := env['REQUEST_METHOD']) not in (HTTPMethod.HEAD,
|
|
389
|
+
HTTPMethod.GET):
|
|
390
|
+
yield from error(respond, HTTPStatus.NOT_IMPLEMENTED)
|
|
323
391
|
t = None
|
|
324
|
-
for k, v in parse.parse_qsl(
|
|
392
|
+
for k, v in parse.parse_qsl(env.get('QUERY_STRING', '')):
|
|
325
393
|
if k == 't':
|
|
326
394
|
t = v
|
|
327
395
|
break
|
|
@@ -330,20 +398,20 @@ class HandlerBase(server.SimpleHTTPRequestHandler):
|
|
|
330
398
|
# content length is needed upfront, we return a fixed size, and
|
|
331
399
|
# terminate the request if the padding exceeds the available space.
|
|
332
400
|
size = 600
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
if
|
|
338
|
-
with self.
|
|
339
|
-
while ((mtime := self.
|
|
401
|
+
respond(status_str(HTTPStatus.OK), [
|
|
402
|
+
('Content-Type', 'text/plain;charset=utf-8'),
|
|
403
|
+
('Content-Length', str(size)),
|
|
404
|
+
])
|
|
405
|
+
if method == HTTPMethod.HEAD: return
|
|
406
|
+
with self.lock:
|
|
407
|
+
while ((mtime := self.build_mtime) is None
|
|
340
408
|
or t == build_tag(mtime)) and size > 0:
|
|
341
|
-
if self.
|
|
342
|
-
|
|
409
|
+
if self.lock.wait(timeout=1): continue
|
|
410
|
+
yield b' '
|
|
343
411
|
size -= 1
|
|
344
412
|
tag = build_tag(mtime).encode('utf-8')
|
|
345
413
|
if len(tag) > size: tag = b'' # Not enough remaining capacity
|
|
346
|
-
|
|
414
|
+
yield b' ' * (size - len(tag)) + tag
|
|
347
415
|
|
|
348
416
|
|
|
349
417
|
def build_tag(mtime):
|
|
@@ -7,14 +7,13 @@ import pathlib
|
|
|
7
7
|
from sphinx import config, locale
|
|
8
8
|
from sphinx.util import fileutil, logging
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
__version__ = '0.22'
|
|
10
|
+
from .. import __version__
|
|
12
11
|
|
|
13
12
|
_log = logging.getLogger(__name__)
|
|
14
13
|
_messages = 'tdoc'
|
|
15
14
|
_ = locale.get_translation(_messages)
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
_base = pathlib.Path(__file__).absolute().parent.parent
|
|
18
17
|
|
|
19
18
|
_license_urls = {
|
|
20
19
|
'CC0-1.0': 'https://creativecommons.org/publicdomain/zero/1.0/',
|
|
@@ -61,8 +60,8 @@ def setup(app):
|
|
|
61
60
|
app.add_config_value('tdoc_enable_sab', 'no', 'html',
|
|
62
61
|
config.ENUM('no', 'cross-origin-isolation', 'sabayon'))
|
|
63
62
|
|
|
64
|
-
app.add_html_theme('t-doc', str(
|
|
65
|
-
app.add_message_catalog(_messages, str(
|
|
63
|
+
app.add_html_theme('t-doc', str(_base))
|
|
64
|
+
app.add_message_catalog(_messages, str(_base / 'locale'))
|
|
66
65
|
|
|
67
66
|
app.connect('config-inited', on_config_inited)
|
|
68
67
|
app.connect('builder-inited', on_builder_inited)
|
|
@@ -81,7 +80,7 @@ def setup(app):
|
|
|
81
80
|
def on_config_inited(app, config):
|
|
82
81
|
cv = config.values['html_title']
|
|
83
82
|
super(cv.__class__, cv).__setattr__('default', lambda c: c.project)
|
|
84
|
-
config.templates_path.append(str(
|
|
83
|
+
config.templates_path.append(str(_base / 'templates'))
|
|
85
84
|
|
|
86
85
|
# Override defaults in html_theme_options.
|
|
87
86
|
opts = config.html_theme_options
|
|
@@ -100,8 +99,8 @@ def on_config_inited(app, config):
|
|
|
100
99
|
|
|
101
100
|
def on_builder_inited(app):
|
|
102
101
|
# Add our own static paths.
|
|
103
|
-
app.config.html_static_path.append(str(
|
|
104
|
-
app.config.html_static_path.append(str(
|
|
102
|
+
app.config.html_static_path.append(str(_base / 'static'))
|
|
103
|
+
app.config.html_static_path.append(str(_base / 'static.gen'))
|
|
105
104
|
|
|
106
105
|
# Add a default static path.
|
|
107
106
|
if '_static' not in app.config.html_static_path:
|
|
@@ -133,5 +132,5 @@ def write_static_files(app, builder):
|
|
|
133
132
|
|
|
134
133
|
# The file must be at the root of the website, to avoid limiting the scope
|
|
135
134
|
# of the service worker to _static.
|
|
136
|
-
fileutil.copy_asset_file(
|
|
135
|
+
fileutil.copy_asset_file(_base / 'scripts' / 'tdoc-worker.js',
|
|
137
136
|
builder.outdir, force=True)
|
|
@@ -10,7 +10,7 @@ from docutils.parsers.rst import directives
|
|
|
10
10
|
from sphinx.directives import code
|
|
11
11
|
from sphinx.util import logging, osutil
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from . import __version__, format_attrs, format_data_attrs, report_exceptions
|
|
14
14
|
|
|
15
15
|
_log = logging.getLogger(__name__)
|
|
16
16
|
_base = pathlib.Path(__file__).absolute().parent.parent
|
|
@@ -336,8 +336,9 @@ div.tdoc-exec div.tdoc-exec-controls {
|
|
|
336
336
|
.article-header-buttons button.pst-navbar-icon {
|
|
337
337
|
height: inherit;
|
|
338
338
|
}
|
|
339
|
-
.article-header-buttons .
|
|
340
|
-
|
|
339
|
+
.article-header-buttons .btn__icon-container {
|
|
340
|
+
display: flex;
|
|
341
|
+
align-items: center;
|
|
341
342
|
}
|
|
342
343
|
|
|
343
344
|
/* Prevent the wrapper background set by pygments from being visible if the
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/assistive-mml.js
RENAMED
|
File without changes
|
{t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/complexity.js
RENAMED
|
File without changes
|
{t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/explorer.js
RENAMED
|
File without changes
|
{t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/a11y/semantic-enrich.js
RENAMED
|
File without changes
|
|
File without changes
|
{t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/adaptors/liteDOM.js
RENAMED
|
File without changes
|
|
File without changes
|
{t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/asciimath.js
RENAMED
|
File without changes
|
{t_doc_common-0.22 → t_doc_common-0.23.dev1}/tdoc/common/static.gen/mathjax/input/mml/entities.js
RENAMED
|
File without changes
|
|
File without changes
|