mkdocs-texsmith 0.0.2.dev0__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.
@@ -0,0 +1,15 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ indent_style = space
6
+ indent_size = 4
7
+ end_of_line = lf
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+
11
+ [*.{md,js,json,css,yml}]
12
+ indent_size = 2
13
+
14
+ [Makefile]
15
+ indent_style = tab
@@ -0,0 +1,121 @@
1
+ *~
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ *.py[cod]
6
+ *$py.class
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Distribution / packaging
12
+ .Python
13
+ build/
14
+ develop-eggs/
15
+ dist/
16
+ downloads/
17
+ eggs/
18
+ .eggs/
19
+ lib/
20
+ lib64/
21
+ parts/
22
+ sdist/
23
+ var/
24
+ wheels/
25
+ share/python-wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+
31
+ # PyInstaller
32
+ # Usually these files are written by a python script from a template
33
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
34
+ *.manifest
35
+ *.spec
36
+
37
+ # Installer logs
38
+ pip-log.txt
39
+ pip-delete-this-directory.txt
40
+
41
+ # Unit test / coverage reports
42
+ htmlcov/
43
+ .tox/
44
+ .nox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+
63
+ # Flask stuff:
64
+ instance/
65
+ .webassets-cache
66
+
67
+ # Scrapy stuff:
68
+ .scrapy
69
+
70
+ # Sphinx documentation
71
+ docs/_build/
72
+
73
+ # PyBuilder
74
+ target/
75
+
76
+ # Jupyter Notebook
77
+ .ipynb_checkpoints
78
+
79
+ # IPython
80
+ profile_default/
81
+ ipython_config.py
82
+
83
+ # pyenv
84
+ .python-version
85
+
86
+ # celery beat schedule file
87
+ celerybeat-schedule
88
+
89
+ # SageMath parsed files
90
+ *.sage.py
91
+
92
+ # Environments
93
+ .env
94
+ .venv
95
+ env/
96
+ venv/
97
+ ENV/
98
+ env.bak/
99
+ venv.bak/
100
+
101
+ # Spyder project settings
102
+ .spyderproject
103
+ .spyproject
104
+
105
+ # Rope project settings
106
+ .ropeproject
107
+
108
+ # mkdocs documentation
109
+ /site
110
+
111
+ # mypy
112
+ .mypy_cache/
113
+ .dmypy.json
114
+ dmypy.json
115
+
116
+ # Pyre type checker
117
+ .pyre/
118
+
119
+ site/
120
+ links.yml
121
+ mkdocs_french/artifacts/morphalou_data.json.gz
@@ -0,0 +1,4 @@
1
+ MD046: false # Conflic between code and admonition blocks
2
+
3
+ MD013:
4
+ line_length: 1000
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Isaac Muse
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,19 @@
1
+ # Temporary compatibility mechanism between Poetry and uv.
2
+ # While waiting for full adoption of PEP 751 (the standardized lock format `pylock.toml`),
3
+ # we maintain separate lock files for each tool (`poetry.lock` and `uv.lock`)
4
+ # and also generate a unified `pylock.toml` for future interoperability.
5
+ # This ensures that developers can use either Poetry or uv seamlessly in the same project.
6
+
7
+ deps:
8
+ uv sync
9
+
10
+ deps-poetry:
11
+ poetry install
12
+
13
+ lock-all:
14
+ uv lock
15
+ poetry lock
16
+ uv export -o pylock.toml
17
+ git add pylock.toml
18
+
19
+ .PHONY: deps deps-poetry lock-all
@@ -0,0 +1,157 @@
1
+ Metadata-Version: 2.4
2
+ Name: mkdocs-texsmith
3
+ Version: 0.0.2.dev0
4
+ Summary: Convert MkDocs documentation to LaTeX PDF.
5
+ Project-URL: Homepage, https://github.com/yves-chevallier/mkdocs-texsmith
6
+ Author-email: Yves Chevallier <yves.chevalier@heig-vd.ch>
7
+ License-Expression: MIT
8
+ License-File: LICENSE.md
9
+ Keywords: convert,extensions,latex,markdown,mkdocs,texsmith
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3 :: Only
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Python: >=3.10
17
+ Requires-Dist: texsmith==0.0.2.dev0
18
+ Description-Content-Type: text/markdown
19
+
20
+ # MkDocs TeXSmith Plugin
21
+
22
+ `mkdocs-texsmith` turns any MkDocs project into a set of LaTeX sources ready for high-quality PDF production. The plugin reuses the TeXSmith rendering pipeline to transform the pages that MkDocs renders into TeX, keeping navigation structure, numbering, cross references, and assets in sync.
23
+
24
+ ## Highlights
25
+
26
+ - Export one or many "books" from the same MkDocs site, each with its own metadata and output folder.
27
+ - Reuse TeXSmith templates or override individual blocks to match your house style.
28
+ - Combine global `.bib` files, per-book bibliographies, inline citations, and DOI lookups into a single bibliography.
29
+ - Copy and prune assets automatically so only referenced images end up in the LaTeX project.
30
+ - Optional HTML snapshots for debugging, plus Material for MkDocs specific tweaks out of the box.
31
+
32
+ ## Installation
33
+
34
+ ```bash
35
+ pip install mkdocs-texsmith
36
+ ```
37
+
38
+ The package targets Python 3.12+. If you manage dependencies with [uv](https://github.com/astral-sh/uv), run:
39
+
40
+ ```bash
41
+ uv add mkdocs-texsmith
42
+ ```
43
+
44
+ ## Quick Start
45
+
46
+ 1. Add the plugin to your `mkdocs.yml`.
47
+
48
+ ```yaml
49
+ plugins:
50
+ - search
51
+ - texsmith:
52
+ build_dir: press # where LaTeX sources are written
53
+ template: book # TeXSmith template to use
54
+ bibliography:
55
+ - docs/references.bib
56
+ ```
57
+
58
+ 2. Build your site as usual:
59
+
60
+ ```bash
61
+ mkdocs build
62
+ ```
63
+
64
+ 3. The LaTeX project for each configured book is created under `press/`. Compile the resulting `index.tex` with your preferred tool (`latexmk`, `tectonic`, etc.) to produce the PDF.
65
+
66
+ ## Configuration
67
+
68
+ All plugin options are declared under the `texsmith` plugin entry.
69
+
70
+ - `enabled` (bool): turns the plugin on or off; automatically disabled during `mkdocs serve`.
71
+ - `build_dir` (str): output root for generated LaTeX projects. Defaults to `press`.
72
+ - `template` (str): default TeXSmith template name. Falls back to `book`.
73
+ - `parser` (str): HTML parser backend used by TeXSmith (`lxml` by default).
74
+ - `copy_assets` (bool): copy images and other assets referenced by the book into the build directory.
75
+ - `clean_assets` (bool): remove unused files from the generated `assets/` folder after rendering.
76
+ - `save_html` (bool): if `true`, store the rendered HTML alongside LaTeX snapshots under `html/`.
77
+ - `language` (str): override auto-detected language for templates and hyphenation.
78
+ - `bibliography` (list[str]): global `.bib` files applied to every book.
79
+ - `books` (list[dict]): per-book configuration (see below).
80
+ - `template_overrides` (dict[str, str]): map of template block names to override files.
81
+ - `register_material` (bool): register Material for MkDocs specific renderers (enabled by default).
82
+
83
+ ### Multiple books
84
+
85
+ The `books` list lets you export distinct artefacts from the same site. Each entry accepts [`BookConfig`](../../src/texsmith/core/config.py) fields plus book-specific extras (`template`, `template_overrides`, `bibliography`):
86
+
87
+ ```yaml
88
+ plugins:
89
+ - texsmith:
90
+ books:
91
+ - title: "User Guide"
92
+ root: "Guide"
93
+ folder: "user-guide"
94
+ template: book
95
+ bibliography:
96
+ - docs/guide.bib
97
+ - title: "API Reference"
98
+ root: "Reference"
99
+ base_level: 2
100
+ copy_files:
101
+ docs/appendix/*.tex: backmatter/
102
+ ```
103
+
104
+ If you do not declare any books, the plugin creates one automatically using the first navigation page as the root section.
105
+
106
+ ### Bibliography sources
107
+
108
+ - Global `bibliography` files apply to every book.
109
+ - Book-level `bibliography` entries augment or override the global list.
110
+ - YAML front matter can declare inline bibliography entries, including DOI links. DOIs are resolved at build time; failures are logged but do not stop the build.
111
+ - Per-book `.bib` files are emitted with the LaTeX project, and an `assets_map.yml` manifest records the asset locations used by the renderer.
112
+
113
+ ### Templates and overrides
114
+
115
+ TeXSmith templates bundle LaTeX, Jinja, and formatter fragments. Set `template` globally or per book, then override specific fragments via `template_overrides`:
116
+
117
+ ```yaml
118
+ plugins:
119
+ - texsmith:
120
+ template: book
121
+ template_overrides:
122
+ heading: overrides/heading.j2
123
+ books:
124
+ - title: "Whitepaper"
125
+ template_overrides:
126
+ cover: overrides/custom_cover.tex.j2
127
+ ```
128
+
129
+ The plugin automatically registers TeXSmith's Material integration when `register_material` is `true`, aligning colors and fonts with the Material theme if you use it.
130
+
131
+ ### Assets and HTML snapshots
132
+
133
+ - `copy_assets: true` copies images and other referenced files into `<build_dir>/<book>/assets/`.
134
+ - `clean_assets: true` prunes unused files after rendering, keeping the LaTeX project tidy.
135
+ - Enable `save_html` to keep the intermediate HTML for each page under `<build_dir>/<book>/html/`, which helps when troubleshooting rendering issues.
136
+
137
+ ## Development
138
+
139
+ 1. Clone the repository and install dependencies:
140
+
141
+ ```bash
142
+ uv sync
143
+ ```
144
+
145
+ 2. Run the documentation site locally:
146
+
147
+ ```bash
148
+ uv run mkdocs serve
149
+ ```
150
+
151
+ 3. Use `pytest` or `uv run pytest` to execute tests before contributing patches.
152
+
153
+ The repository maintains a `Makefile` shortcut (`make deps`) that mirrors the `uv sync` step.
154
+
155
+ ## License
156
+
157
+ The project is distributed under the MIT License. See `LICENSE.md` for the full text.
@@ -0,0 +1,138 @@
1
+ # MkDocs TeXSmith Plugin
2
+
3
+ `mkdocs-texsmith` turns any MkDocs project into a set of LaTeX sources ready for high-quality PDF production. The plugin reuses the TeXSmith rendering pipeline to transform the pages that MkDocs renders into TeX, keeping navigation structure, numbering, cross references, and assets in sync.
4
+
5
+ ## Highlights
6
+
7
+ - Export one or many "books" from the same MkDocs site, each with its own metadata and output folder.
8
+ - Reuse TeXSmith templates or override individual blocks to match your house style.
9
+ - Combine global `.bib` files, per-book bibliographies, inline citations, and DOI lookups into a single bibliography.
10
+ - Copy and prune assets automatically so only referenced images end up in the LaTeX project.
11
+ - Optional HTML snapshots for debugging, plus Material for MkDocs specific tweaks out of the box.
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ pip install mkdocs-texsmith
17
+ ```
18
+
19
+ The package targets Python 3.12+. If you manage dependencies with [uv](https://github.com/astral-sh/uv), run:
20
+
21
+ ```bash
22
+ uv add mkdocs-texsmith
23
+ ```
24
+
25
+ ## Quick Start
26
+
27
+ 1. Add the plugin to your `mkdocs.yml`.
28
+
29
+ ```yaml
30
+ plugins:
31
+ - search
32
+ - texsmith:
33
+ build_dir: press # where LaTeX sources are written
34
+ template: book # TeXSmith template to use
35
+ bibliography:
36
+ - docs/references.bib
37
+ ```
38
+
39
+ 2. Build your site as usual:
40
+
41
+ ```bash
42
+ mkdocs build
43
+ ```
44
+
45
+ 3. The LaTeX project for each configured book is created under `press/`. Compile the resulting `index.tex` with your preferred tool (`latexmk`, `tectonic`, etc.) to produce the PDF.
46
+
47
+ ## Configuration
48
+
49
+ All plugin options are declared under the `texsmith` plugin entry.
50
+
51
+ - `enabled` (bool): turns the plugin on or off; automatically disabled during `mkdocs serve`.
52
+ - `build_dir` (str): output root for generated LaTeX projects. Defaults to `press`.
53
+ - `template` (str): default TeXSmith template name. Falls back to `book`.
54
+ - `parser` (str): HTML parser backend used by TeXSmith (`lxml` by default).
55
+ - `copy_assets` (bool): copy images and other assets referenced by the book into the build directory.
56
+ - `clean_assets` (bool): remove unused files from the generated `assets/` folder after rendering.
57
+ - `save_html` (bool): if `true`, store the rendered HTML alongside LaTeX snapshots under `html/`.
58
+ - `language` (str): override auto-detected language for templates and hyphenation.
59
+ - `bibliography` (list[str]): global `.bib` files applied to every book.
60
+ - `books` (list[dict]): per-book configuration (see below).
61
+ - `template_overrides` (dict[str, str]): map of template block names to override files.
62
+ - `register_material` (bool): register Material for MkDocs specific renderers (enabled by default).
63
+
64
+ ### Multiple books
65
+
66
+ The `books` list lets you export distinct artefacts from the same site. Each entry accepts [`BookConfig`](../../src/texsmith/core/config.py) fields plus book-specific extras (`template`, `template_overrides`, `bibliography`):
67
+
68
+ ```yaml
69
+ plugins:
70
+ - texsmith:
71
+ books:
72
+ - title: "User Guide"
73
+ root: "Guide"
74
+ folder: "user-guide"
75
+ template: book
76
+ bibliography:
77
+ - docs/guide.bib
78
+ - title: "API Reference"
79
+ root: "Reference"
80
+ base_level: 2
81
+ copy_files:
82
+ docs/appendix/*.tex: backmatter/
83
+ ```
84
+
85
+ If you do not declare any books, the plugin creates one automatically using the first navigation page as the root section.
86
+
87
+ ### Bibliography sources
88
+
89
+ - Global `bibliography` files apply to every book.
90
+ - Book-level `bibliography` entries augment or override the global list.
91
+ - YAML front matter can declare inline bibliography entries, including DOI links. DOIs are resolved at build time; failures are logged but do not stop the build.
92
+ - Per-book `.bib` files are emitted with the LaTeX project, and an `assets_map.yml` manifest records the asset locations used by the renderer.
93
+
94
+ ### Templates and overrides
95
+
96
+ TeXSmith templates bundle LaTeX, Jinja, and formatter fragments. Set `template` globally or per book, then override specific fragments via `template_overrides`:
97
+
98
+ ```yaml
99
+ plugins:
100
+ - texsmith:
101
+ template: book
102
+ template_overrides:
103
+ heading: overrides/heading.j2
104
+ books:
105
+ - title: "Whitepaper"
106
+ template_overrides:
107
+ cover: overrides/custom_cover.tex.j2
108
+ ```
109
+
110
+ The plugin automatically registers TeXSmith's Material integration when `register_material` is `true`, aligning colors and fonts with the Material theme if you use it.
111
+
112
+ ### Assets and HTML snapshots
113
+
114
+ - `copy_assets: true` copies images and other referenced files into `<build_dir>/<book>/assets/`.
115
+ - `clean_assets: true` prunes unused files after rendering, keeping the LaTeX project tidy.
116
+ - Enable `save_html` to keep the intermediate HTML for each page under `<build_dir>/<book>/html/`, which helps when troubleshooting rendering issues.
117
+
118
+ ## Development
119
+
120
+ 1. Clone the repository and install dependencies:
121
+
122
+ ```bash
123
+ uv sync
124
+ ```
125
+
126
+ 2. Run the documentation site locally:
127
+
128
+ ```bash
129
+ uv run mkdocs serve
130
+ ```
131
+
132
+ 3. Use `pytest` or `uv run pytest` to execute tests before contributing patches.
133
+
134
+ The repository maintains a `Makefile` shortcut (`make deps`) that mirrors the `uv sync` step.
135
+
136
+ ## License
137
+
138
+ The project is distributed under the MIT License. See `LICENSE.md` for the full text.
@@ -0,0 +1,3 @@
1
+ # About
2
+
3
+ This plugin provides a seamless way to convert your MkDocs documentation into a LaTeX document, which can then be compiled into a PDF. It leverages the power of TeXSmith to handle the conversion process, ensuring high-quality output that adheres to LaTeX standards.
@@ -0,0 +1,153 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 27.5.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 207.8 120" style="enable-background:new 0 0 207.8 120;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#008080;}
7
+ .st1{fill:#FFFFFF;}
8
+ .st2{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:0.4166;stroke-miterlimit:1.9933;}
9
+ .st3{fill:#37C871;stroke:#FFFFFF;stroke-width:0.4166;stroke-miterlimit:1.9933;}
10
+ </style>
11
+ <g id="layer1" transform="matrix(1.199992,0,0,1.199992,-229.2782,-646.32266)">
12
+ <g id="g3363" transform="matrix(0.58826838,0,0,-0.58826838,191.06432,638.60215)">
13
+ <g id="g3365" transform="translate(-131.809,509.294)">
14
+ <g id="g3367">
15
+ <g id="g3369">
16
+ <g id="g3371">
17
+ <path id="path3373" d="M208.1-347.8c1.9-3.4,3.9-6.4,5.9-8.9l0,0l0,0c-0.9,0.1-1.9,0.2-2.9,0.2c-2,0-4.2-0.4-6.5-1.1
18
+ c4-3.3,7.4-5.8,10.4-7.7c-0.1,0-0.2,0.1-0.2,0.1l0.2-0.1c-4.6,1.4-9.6,1.6-15.4-1.1c4.2-2.6,7.7-4.5,10.8-6
19
+ c-0.1,0-0.2,0-0.3,0l0.2-0.1c-4.8,0.8-9.9,0.4-15.3-3.2c3.6-1.6,6.7-2.8,9.4-3.7l0,0l0.2-0.1c-4.6-0.2-9.2-1.6-13.6-5.9
20
+ c3.9-1,7.2-1.6,10.2-2c-0.1,0-0.2,0-0.2,0c-0.1,0-0.2,0-0.3,0h0.1c-3.4-0.8-6.8-2.5-10.1-5.8c2.7-0.6,5-1,7.2-1.3
21
+ c-2.7-1.3-5.2-3.3-7.6-6.4c3.1-0.2,5.8-0.3,8.2-0.3c-2.9-1.4-5.7-3.5-8.2-6.9c4.4-0.2,8-0.2,11.2,0c-0.1,0-0.1-0.1-0.2-0.1
22
+ c-0.2,0-0.4,0-0.6,0l0.3-0.1c-3.3-1.4-6.3-3.8-8.9-7.7c5.4-0.1,9.7,0.2,13.3,0.6c-0.1,0-0.2-0.1-0.3-0.1s-0.3,0-0.4,0h0.2
23
+ c-4.2-1.3-8.2-3.7-11.4-8.6c4.4-0.1,8,0.1,11.2,0.4c-0.1,0-0.1-0.1-0.2-0.1c-3.8-2.1-7-5.2-9.1-10.6c3.9,0.7,7.1,1.5,9.9,2.3
24
+ l-0.1-0.1h0.2c-2.9-2.2-5.3-5.2-6.9-9.6c2.7,0.6,5,1.2,7.1,1.8c-1.9-2.3-3.4-5.2-4.2-9c2.9,1.1,5.4,2.1,7.6,3.1
25
+ c0,0,0-0.1-0.1-0.1l-0.1-0.1h0.1c-2-2.4-3.6-5.5-4.4-9.6c4.1,1.6,7.4,3.2,10.1,4.7c-0.1-0.1-0.2-0.1-0.2-0.2h0.1
26
+ c-2.5-2.7-4.3-6.2-5-10.9c4.8,2.1,8.5,4.1,11.5,5.9l-0.1-0.1l0.2,0.1c-3.4-2.9-6.1-6.9-7-12.8c6.5,2.8,11,5.4,14.5,7.8
27
+ c-1.5-3-2.3-6.6-1.9-11c6.2,4.8,10.2,8.6,13.1,12.1v-0.1c-0.2-2.2,0-4.5,0.6-7.1c3.7,6.4,7.4,9,11.2,11.2
28
+ c-4.7-3-3.9-5.5-3.9-8.3c5.6,5.9,13.4,12.2,15.8,16.1c-3.2-4.8-4.5-9.3-5.3-13.4c-16.3-8.6-26.3-10.9-37.4-14.3
29
+ c4.3-1.6,9-3.1,7-5.3l-5.1-5.1c3.3,1,6.6,2.5,9.5,0.5c-0.3-2.7-3.7-4-6.6-5.6c5.1,1.8,6.2,1.4,7.5,1c0.7-3.2-1.7-4.9-3.2-7
30
+ c12.8,9.7,29.5,17.4,41.3,20.6c16.6,5.6,37.9,11.4,43.7,25.5l5.8,23.3c6.8,7.4,13.1,15,16,24.3c19,3.7,34.3,2.4,50.3,1.9
31
+ c-1.5,0.2-48.8,8.3-48.8,8.3c-13.8,18.9-34.5,6.1-41.3-12.7c-1.7-4.7-11.5-4.7-14.3,0C271.1-382.7,237.1-357.2,208.1-347.8
32
+ L208.1-347.8L208.1-347.8z"/>
33
+ </g>
34
+ <g id="g3375">
35
+ <path id="path3377" class="st0" d="M207.7-346.4c1.9-3.4,3.9-6.4,6-8.9c-0.9,0.1-1.9,0.2-2.9,0.2c-2,0-4.1-0.4-6.5-1.1
36
+ c4-3.4,7.5-5.9,10.5-7.8c-4.7,1.5-9.7,1.7-15.6-1.1c4.3-2.7,7.9-4.6,11.1-6.1c-4.9,0.9-10.1,0.5-15.6-3.2
37
+ c3.7-1.6,6.9-2.9,9.7-3.8c-4.6-0.2-9.2-1.6-13.7-5.9c3.9-1,7.2-1.6,10.2-2c-3.6-0.7-7.1-2.5-10.6-5.9c2.7-0.6,5-1,7.2-1.3
38
+ c-2.7-1.3-5.2-3.3-7.6-6.4c3.1-0.2,5.8-0.3,8.2-0.4c-2.9-1.4-5.7-3.5-8.2-7c4.4-0.2,8-0.2,11.2,0c-3.5-1.4-6.6-3.8-9.4-7.9
39
+ c5.4-0.1,9.7,0.2,13.3,0.6c-4.5-1.2-8.6-3.7-12-8.8c4.4-0.1,8,0.1,11.2,0.4c-3.8-2.1-7.1-5.3-9.3-10.7c4,0.7,7.3,1.6,10.1,2.4
40
+ c-3-2.2-5.5-5.2-7.1-9.8c2.7,0.6,5,1.2,7.1,1.8c-1.9-2.3-3.4-5.2-4.2-9c2.9,1.1,5.4,2.1,7.6,3.1c-2.1-2.5-3.7-5.6-4.5-9.7
41
+ c4.1,1.6,7.4,3.2,10.1,4.7c-2.5-2.7-4.4-6.2-5.2-11.1c4.9,2.2,8.7,4.2,11.8,6.1c-3.5-3-6.3-6.9-7.2-13
42
+ c6.5,2.8,11,5.4,14.5,7.8c-1.5-3-2.3-6.6-1.9-11.1c6.2,4.8,10.2,8.7,13.1,12.1c-0.2-2.2,0-4.6,0.6-7.2
43
+ c4.5,7.7,8.9,9.9,13.5,12.5c-7.3-3.7-6.2-6.5-6.2-9.7c5.6,5.9,13.4,12.1,15.8,16.1c-3.2-4.8-4.5-9.3-5.3-13.3
44
+ c-16.3-8.6-26.3-10.9-37.4-14.3c4.3-1.6,9-3.1,7-5.3l-5.1-5.1c3.3,1,6.6,2.5,9.5,0.5c-0.3-2.7-3.7-4-6.6-5.6
45
+ c5.1,1.8,6.2,1.4,7.5,1c0.7-3.2-1.7-4.9-3.2-7.1c12.8,9.7,29.5,17.4,41.3,20.7c16.6,5.6,37.9,11.4,43.7,25.5l5.8,23.3
46
+ c6.8,7.4,13.1,15,16,24.3c19,3.7,34.3,2.3,50.3,1.9c-1.5,0.2-48.8,8.3-48.8,8.3c-13.8,18.9-34.5,6.1-41.3-12.6
47
+ c-1.7-4.7-11.5-4.7-14.3,0C270.8-381.3,236.7-355.8,207.7-346.4L207.7-346.4L207.7-346.4z"/>
48
+ </g>
49
+ <g id="g3379">
50
+ <path id="path3381" class="st1" d="M319.6-395.8l-0.1-0.2c-0.5-0.9-1.3-1.5-2.5-1.9s-2.7-0.5-4.4-0.4h-1.1l0.8-0.8
51
+ c0.4-0.4,0.5-0.7,0.5-1s-0.1-0.6-0.4-0.9c-0.5-0.7-1.6-1.4-2.5-2.1l-0.3-0.2l0.2-0.3c0.8-1.2,1.2-2.2,1.3-2.9
52
+ c0.1-0.7-0.1-1.3-0.4-1.7c-0.7-0.9-2.2-1.5-3.5-2.3l-0.2-0.1v-0.3c0.1-0.7-0.1-1.3-0.6-1.8c-0.5-0.6-1.3-1.1-2.5-1.6l-0.3-0.1
53
+ v-0.3c0.2-1.5,0.7-2.8,1.6-3.6c0.9-0.8,2.2-1,3.8-0.6c0.3-1.6,0.7-3.1,1.7-4c1-1,2.5-1.3,4.6-0.7c0.5-1.1,1.1-1.9,1.9-2.4
54
+ c0.9-0.6,2-0.8,2.9-1.1l0.5,0.6c-0.9,0.3-2.2,0.7-3,1.2c-0.7,0.5-1.3,1.2-1.7,2.3l-0.1,0.4l-0.4-0.1c-2.1-0.7-3.3-0.4-4.1,0.4
55
+ c-0.8,0.8-1.3,2.3-1.5,4l-0.1,0.4l-0.4-0.1c-1.7-0.5-2.8-0.2-3.5,0.4s-1,1.6-1.3,2.9c1,0.5,1.9,1,2.4,1.6s0.8,1.4,0.7,2.2
56
+ c1.2,0.7,2.7,1.3,3.6,2.4c0.4,0.6,0.7,1.4,0.6,2.3c-0.1,0.8-0.5,1.8-1.2,3c0.9,0.6,1.8,1.3,2.4,2c0.3,0.4,0.6,0.9,0.6,1.4
57
+ c0,0.3-0.3,0.6-0.4,0.8c1.5,0,2.9,0.1,4,0.4c1.2,0.4,2.1,1.1,2.8,2.1c1.8,0,3.7-0.4,5.5-0.6c1.9-0.3,3.9-0.3,5.8,0.5l-0.3,0.8
58
+ c-1.6-0.7-3.4-0.7-5.3-0.4c-1.9,0.2-3.8,0.7-5.8,0.7L319.6-395.8L319.6-395.8z"/>
59
+ </g>
60
+ <g id="g3383">
61
+ <path id="path3385" class="st2" d="M326.6-395.5c0-2-1.6-3.5-3.5-3.5c-2,0-3.5,1.6-3.5,3.5c0,2,1.6,3.5,3.5,3.5
62
+ S326.6-393.6,326.6-395.5z"/>
63
+ </g>
64
+ <g id="g3387">
65
+ <path id="path3389" class="st1" d="M337.1-392.2c-3.2-4.1-4-3.1-5.9-3.8l-0.3-0.1v-0.3c0.7-4.2,3.2-5.5,5.1-7l0.1,0.3l0.5,0.1
66
+ c-1.9,1.5-4,2.8-4.8,6.3c1.4,0.3,2.8-0.1,5.8,3.8L337.1-392.2L337.1-392.2z"/>
67
+ </g>
68
+ <g id="g3391">
69
+ <path id="path3393" class="st1" d="M214.8-364c6-3.7,15.9-7.6,22.2-11.6c3.5-2.2,6.6-4.4,9.1-6.4c2.4-1.9,4.2-3.9,4.9-4.5
70
+ s1.1-0.3,0.7,0.5c-0.4,0.8-2.6,2.8-5.1,4.7c-2.5,1.9-5.6,4.1-9.1,6.4C230.5-370.4,222.2-366.4,214.8-364L214.8-364z"/>
71
+ </g>
72
+ <g id="g3395">
73
+ <path id="path3397" class="st1" d="M213.7-355.3c2.5-0.6,6.2-2.7,10.4-5c4.1-2.3,8.6-5.1,12.8-7.9c4.1-2.7,7.3-5.2,9.8-7.1
74
+ c2.4-2.1,3.6-3.4,4.1-3.4c0.1,0,0.1,0,0.2,0c0.1,0,0.3,0.1,0.3,0.2c0.1,0.2,0.1,0.3,0,0.4c0,0.1,0,0.1-0.1,0.2
75
+ c-0.1,0.2-0.3,0.4-0.6,0.7c-0.6,0.6-1.6,1.4-2.9,2.3c-2.6,2-6.3,4.6-10.4,7.4c-4.1,2.8-8.7,5.6-12.8,7.9
76
+ C223-359,215.7-355.2,213.7-355.3L213.7-355.3L213.7-355.3z"/>
77
+ </g>
78
+ <g id="g3399">
79
+ <path id="path3401" class="st1" d="M210.3-371.2c7.7-3.1,18.7-6.8,26-11.4c3.9-2.5,7.4-5,9.9-7c1.3-1,2.3-1.9,3.1-2.7
80
+ c0.8-0.7,1.2-1.4,1.5-1.6c0.5-0.4,0.9-0.1,0.7,0.5c-0.2,0.5-0.8,1-1.6,1.7s-1.9,1.7-3.2,2.7c-2.6,2.1-6,4.6-10,7.1
81
+ C228.8-376.9,219.3-372.4,210.3-371.2L210.3-371.2z"/>
82
+ </g>
83
+ <g id="g3403">
84
+ <path id="path3405" class="st1" d="M204.3-378.2c6,0,18.4-5.5,23.6-8.3c8.5-4.5,16.2-10.3,20.4-14.4c0.5-0.5,1.2-0.1,0.6,0.6
85
+ c-4,4.6-12.1,10-20.7,14.5C219.8-381.1,211-378.2,204.3-378.2L204.3-378.2z"/>
86
+ </g>
87
+ <g id="g3407">
88
+ <path id="path3409" class="st1" d="M200.9-386.1c9-1.3,19.9-5,27.7-8.9c4.4-2.2,8.3-4.6,11.3-6.7c3-2.1,5.2-4.5,5.8-5.1
89
+ c0.5-0.6,1.2-0.6,0.7,0.4c-0.5,1.1-3,3.2-6,5.4c-3,2.2-7,4.5-11.4,6.8C220.1-389.7,210-386.2,200.9-386.1L200.9-386.1z"/>
90
+ </g>
91
+ <g id="g3411">
92
+ <path id="path3413" class="st1" d="M203.9-392.8c-2.2,0.2-4.3-0.3-6.3-0.5c8,0.8,19.2-2.9,26.7-6.4
93
+ c8.8-4.1,16.1-9.8,19.6-13.4c0.5-0.6,0.9,0.2,0.6,0.5c-3.3,4.2-11,9.5-19.9,13.6C217.9-395.8,210.6-393.4,203.9-392.8
94
+ L203.9-392.8z"/>
95
+ </g>
96
+ <g id="g3415">
97
+ <path id="path3417" class="st1" d="M198.2-400c7.9-0.6,18.5-2.5,25.9-5.9c7.4-3.5,13.1-8,15.9-10.6c0.4-0.4,1.2-0.1,0.6,0.6
98
+ c-2.6,3-8.6,7.2-16.2,10.7C216.9-401.6,207.7-399.4,198.2-400L198.2-400z"/>
99
+ </g>
100
+ <g id="g3419">
101
+ <path id="path3421" class="st1" d="M205.2-406.6c-1.7,0.1-2.4-0.3-4.1-0.4c5.4-0.2,13.9-1.7,18.6-3.3c6.1-2.1,11.1-5.3,14-7.8
102
+ c0.6-0.5,1,0.2,0.6,0.6c-2.7,3-8.1,5.9-14.3,8C215.4-407.9,210.2-406.8,205.2-406.6L205.2-406.6z"/>
103
+ </g>
104
+ <g id="g3423">
105
+ <path id="path3425" class="st1" d="M205-414.4c11.5-0.8,18.4-2.8,23.7-7.5c0.4-0.4,1,0.1,0.6,0.6
106
+ C223.9-415.4,213.1-413.8,205-414.4L205-414.4z"/>
107
+ </g>
108
+ <g id="g3427">
109
+ <path id="path3429" class="st1" d="M213.8-421.2c-3.5,0.3-6.4-0.5-9.5-1.5c9.3,1.5,13.1,0.8,20.1-2.5c0.8-0.4,0.8,0.5,0.4,0.7
110
+ C221.1-422.3,217.3-421.5,213.8-421.2L213.8-421.2z"/>
111
+ </g>
112
+ <g id="g3431">
113
+ <path id="path3433" class="st1" d="M213.5-427.7c-3.3-0.3-6.1-1.4-8.4-3.3c9.2,3.5,11.7,2.8,18.7,0.8c0.9-0.3,0.6,0.6,0.3,0.8
114
+ C219.9-427.7,216.8-427.4,213.5-427.7L213.5-427.7z"/>
115
+ </g>
116
+ <g id="g3435">
117
+ <path id="path3437" class="st1" d="M231.7-433.4c-4.9,0.5-10.4-0.1-15.2-0.9c-4.8-0.9-9-2.7-11.3-4.6c8,3.4,9.5,3.4,11.5,3.8
118
+ c4.8,0.9,9.5,1.2,15,0.9C232.1-434.2,232.1-433.4,231.7-433.4L231.7-433.4z"/>
119
+ </g>
120
+ <g id="g3439">
121
+ <path id="path3441" class="st1" d="M234.5-437.3c-5.3,0.2-10.8-1.1-15.5-2.5c-4.7-1.4-8.3-3.2-10.6-5.1
122
+ c4.7,2.3,9.1,3.8,10.8,4.3c4.7,1.3,9.4,2.5,15.3,2.4C235-438.2,235.3-437.4,234.5-437.3L234.5-437.3z"/>
123
+ </g>
124
+ <g id="g3443">
125
+ <path id="path3445" class="st1" d="M238.8-440.6c-5-0.7-10.2-2.2-14.8-3.8c-4.6-1.5-7.8-3.4-9.9-5.6c5.4,3.1,8.4,4.2,10.2,4.8
126
+ c4.5,1.5,8.7,2.6,14.7,3.7C239.7-441.3,239.1-440.5,238.8-440.6L238.8-440.6z"/>
127
+ </g>
128
+ <g id="g3447">
129
+ <path id="path3449" class="st1" d="M241.4-444.7c-10-1.6-16.5-5.9-20.6-10.2c6.4,4.8,10.8,7.4,20.8,9.4
130
+ C242.2-445.4,242-444.6,241.4-444.7L241.4-444.7z"/>
131
+ </g>
132
+ <g id="g3451">
133
+ <path id="path3453" class="st1" d="M246.3-448.4c-10.1-1.6-15.9-7.7-18.3-11.7c6.4,6.4,11.3,9.8,18.5,10.9
134
+ C247.2-449.1,247-448.3,246.3-448.4L246.3-448.4z"/>
135
+ </g>
136
+ <g id="g3455">
137
+ <path id="path3457" class="st1" d="M249.3-451.6c-1.6-0.2-3.7-1.3-5.7-2.6c-2-1.3-3.5-2.8-4.5-4.9c2.4,2.5,3.4,3.2,4.9,4.2
138
+ c1.9,1.2,3.9,2,5.5,2.5C250.2-452.2,249.7-451.5,249.3-451.6L249.3-451.6z"/>
139
+ </g>
140
+ <g id="g3459">
141
+ <path id="path3461" class="st2" d="M326.6-395.5c0-2-1.6-3.5-3.5-3.5c-2,0-3.5,1.6-3.5,3.5c0,2,1.6,3.5,3.5,3.5
142
+ S326.6-393.6,326.6-395.5z"/>
143
+ </g>
144
+ <g id="g3463">
145
+ <path id="path3465" class="st3" d="M326.6-395.5c0-2-1.6-3.5-3.5-3.5c-2,0-3.5,1.6-3.5,3.5c0,2,1.6,3.5,3.5,3.5
146
+ S326.6-393.6,326.6-395.5z"/>
147
+ </g>
148
+ </g>
149
+ </g>
150
+ </g>
151
+ </g>
152
+ </g>
153
+ </svg>
@@ -0,0 +1,18 @@
1
+ # MkDocs LaTeX Plugin
2
+
3
+ This Plugin uses behind-the-scenes TeXSmith to convert your MkDocs documentation into a beautiful PDF document.
4
+
5
+ ## Features
6
+
7
+ - Convert your entire MkDocs site into a single PDF file.
8
+ - Support for custom LaTeX templates.
9
+ - Automatic handling of images and links.
10
+ - Configurable options for page size, margins, and fonts.
11
+
12
+ ## Installation
13
+
14
+ To install the MkDocs LaTeX Plugin, use pip:
15
+
16
+ ```bash
17
+ pip install mkdocs-latex
18
+ ```
@@ -0,0 +1,12 @@
1
+ from __future__ import annotations
2
+
3
+ from hatchling.metadata.plugin.interface import MetadataHookInterface
4
+
5
+
6
+ class CustomMetadataHook(MetadataHookInterface):
7
+ """Inject dynamic metadata for mkdocs-texsmith."""
8
+
9
+ def update(self, metadata: dict) -> None:
10
+ # Keep the plugin in lockstep with the main texsmith package version.
11
+ version = str(metadata["version"])
12
+ metadata["dependencies"] = [f"texsmith=={version}"]