uEdition 2.0.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.
- uedition-2.0.0/.github/dependabot.yml +13 -0
- uedition-2.0.0/.github/workflows/codestyle.yml +41 -0
- uedition-2.0.0/.github/workflows/coverage.yml +52 -0
- uedition-2.0.0/.github/workflows/release.yml +36 -0
- uedition-2.0.0/.github/workflows/tests.yml +37 -0
- uedition-2.0.0/.gitignore +8 -0
- uedition-2.0.0/.pre-commit-config.yaml +7 -0
- uedition-2.0.0/.readthedocs.yml +16 -0
- uedition-2.0.0/LICENSE.txt +9 -0
- uedition-2.0.0/PKG-INFO +89 -0
- uedition-2.0.0/README.md +55 -0
- uedition-2.0.0/docs/.gitignore +5 -0
- uedition-2.0.0/docs/.readthedocs.yml +16 -0
- uedition-2.0.0/docs/de/changelog.md +103 -0
- uedition-2.0.0/docs/de/getting-started/configuration.md +29 -0
- uedition-2.0.0/docs/de/getting-started/content.md +80 -0
- uedition-2.0.0/docs/de/getting-started/create.md +17 -0
- uedition-2.0.0/docs/de/getting-started/index.md +8 -0
- uedition-2.0.0/docs/de/getting-started/installation.md +26 -0
- uedition-2.0.0/docs/de/getting-started/language-add.md +13 -0
- uedition-2.0.0/docs/de/getting-started/publish.md +12 -0
- uedition-2.0.0/docs/de/getting-started/update.md +26 -0
- uedition-2.0.0/docs/de/index.md +57 -0
- uedition-2.0.0/docs/en/changelog.md +103 -0
- uedition-2.0.0/docs/en/getting-started/configuration.md +27 -0
- uedition-2.0.0/docs/en/getting-started/content.md +78 -0
- uedition-2.0.0/docs/en/getting-started/create.md +18 -0
- uedition-2.0.0/docs/en/getting-started/index.md +8 -0
- uedition-2.0.0/docs/en/getting-started/installation.md +25 -0
- uedition-2.0.0/docs/en/getting-started/language-add.md +13 -0
- uedition-2.0.0/docs/en/getting-started/publish.md +11 -0
- uedition-2.0.0/docs/en/getting-started/update.md +26 -0
- uedition-2.0.0/docs/en/getting-started/working-with-tei.tei +46 -0
- uedition-2.0.0/docs/en/index.md +56 -0
- uedition-2.0.0/docs/pyproject.toml +31 -0
- uedition-2.0.0/docs/static/overrides.css +3 -0
- uedition-2.0.0/docs/static/pyproject.toml +31 -0
- uedition-2.0.0/docs/toc.yml +13 -0
- uedition-2.0.0/docs/uEdition.yml +73 -0
- uedition-2.0.0/pyproject.toml +152 -0
- uedition-2.0.0/tests/__init__.py +4 -0
- uedition-2.0.0/tests/conftest.py +82 -0
- uedition-2.0.0/tests/fixtures/basic/uEdition.yml +3 -0
- uedition-2.0.0/tests/fixtures/empty/.gitkeep +0 -0
- uedition-2.0.0/tests/fixtures/multilang/.gitignore +4 -0
- uedition-2.0.0/tests/fixtures/multilang/de/a-1-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/de/a-2-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/de/a-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/de/b-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/de/intro.md +6 -0
- uedition-2.0.0/tests/fixtures/multilang/en/a-1-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/en/a-2-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/en/a-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/en/b-page.md +3 -0
- uedition-2.0.0/tests/fixtures/multilang/en/intro.md +6 -0
- uedition-2.0.0/tests/fixtures/multilang/references.bib +56 -0
- uedition-2.0.0/tests/fixtures/multilang/toc.yml +18 -0
- uedition-2.0.0/tests/fixtures/multilang/uEdition.yaml +12 -0
- uedition-2.0.0/tests/fixtures/yaml/uEdition.yaml +5 -0
- uedition-2.0.0/tests/test_about.py +16 -0
- uedition-2.0.0/tests/test_build.py +24 -0
- uedition-2.0.0/tests/test_ext/test_tei/__init__.py +1 -0
- uedition-2.0.0/tests/test_ext/test_tei/test_parser.py +12 -0
- uedition-2.0.0/tests/test_language.py +10 -0
- uedition-2.0.0/tests/test_serve.py +10 -0
- uedition-2.0.0/tests/test_settings.py +18 -0
- uedition-2.0.0/tests/test_update.py +10 -0
- uedition-2.0.0/tox.ini +2 -0
- uedition-2.0.0/uedition/__about__.py +6 -0
- uedition-2.0.0/uedition/__init__.py +13 -0
- uedition-2.0.0/uedition/__main__.py +8 -0
- uedition-2.0.0/uedition/cli/__init__.py +18 -0
- uedition-2.0.0/uedition/cli/base.py +8 -0
- uedition-2.0.0/uedition/cli/build.py +255 -0
- uedition-2.0.0/uedition/cli/init.py +22 -0
- uedition-2.0.0/uedition/cli/language.py +63 -0
- uedition-2.0.0/uedition/cli/migrate.py +137 -0
- uedition-2.0.0/uedition/cli/serve.py +47 -0
- uedition-2.0.0/uedition/cli/update.py +86 -0
- uedition-2.0.0/uedition/ext/__init__.py +15 -0
- uedition-2.0.0/uedition/ext/config.py +31 -0
- uedition-2.0.0/uedition/ext/language_switcher.css +7 -0
- uedition-2.0.0/uedition/ext/language_switcher.js +59 -0
- uedition-2.0.0/uedition/ext/language_switcher.py +38 -0
- uedition-2.0.0/uedition/ext/settings.py +142 -0
- uedition-2.0.0/uedition/ext/tei/__init__.py +32 -0
- uedition-2.0.0/uedition/ext/tei/builder.py +315 -0
- uedition-2.0.0/uedition/ext/tei/parser.py +321 -0
- uedition-2.0.0/uedition/ext/tei/tei_download.js +34 -0
- uedition-2.0.0/uedition/settings.py +160 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
# Check for updates of all GitHub Actions
|
|
4
|
+
- package-ecosystem: "github-actions"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
|
|
9
|
+
# Check for updates of all Python packages
|
|
10
|
+
- package-ecosystem: "pip"
|
|
11
|
+
directory: "/"
|
|
12
|
+
schedule:
|
|
13
|
+
interval: "weekly"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
name: Code Style
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
ruff:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
python_version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: ${{ matrix.python_version }}
|
|
23
|
+
|
|
24
|
+
- name: Add .local path
|
|
25
|
+
run: |
|
|
26
|
+
echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV
|
|
27
|
+
echo "PIPX_HOME=$HOME/.local/pipx" >> $GITHUB_ENV
|
|
28
|
+
echo "PIPX_BIN_DIR=$HOME/.local/bin" >> $GITHUB_ENV
|
|
29
|
+
|
|
30
|
+
- name: Install Base Dependencies
|
|
31
|
+
run: |
|
|
32
|
+
sudo apt-get install python3-venv pipx
|
|
33
|
+
pipx install hatch
|
|
34
|
+
|
|
35
|
+
- name: Run Ruff check
|
|
36
|
+
run: |
|
|
37
|
+
hatch run ruff-check
|
|
38
|
+
|
|
39
|
+
- name: Run Ruff format check
|
|
40
|
+
run: |
|
|
41
|
+
hatch run ruff-format-check
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: Coverage
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
coverage:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.11"
|
|
19
|
+
|
|
20
|
+
- name: Add .local path
|
|
21
|
+
run: |
|
|
22
|
+
echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV
|
|
23
|
+
echo "PIPX_HOME=$HOME/.local/pipx" >> $GITHUB_ENV
|
|
24
|
+
echo "PIPX_BIN_DIR=$HOME/.local/bin" >> $GITHUB_ENV
|
|
25
|
+
|
|
26
|
+
- name: Install Base Dependencies
|
|
27
|
+
run: |
|
|
28
|
+
sudo apt-get install python3-venv pipx
|
|
29
|
+
pipx install hatch
|
|
30
|
+
|
|
31
|
+
- name: Run Tests
|
|
32
|
+
run: |
|
|
33
|
+
hatch run cov
|
|
34
|
+
|
|
35
|
+
- name: Calculate coverage
|
|
36
|
+
run: |
|
|
37
|
+
hatch run coverage json
|
|
38
|
+
export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])")
|
|
39
|
+
echo "total=$TOTAL" >> $GITHUB_ENV
|
|
40
|
+
echo "### Total coverage: ${TOTAL}%" >> $GITHUB_STEP_SUMMARY
|
|
41
|
+
|
|
42
|
+
- name: "Make badge"
|
|
43
|
+
uses: schneegans/dynamic-badges-action@v1.7.0
|
|
44
|
+
with:
|
|
45
|
+
auth: ${{ secrets.GIST_TOKEN }}
|
|
46
|
+
gistID: 13b76c3c8e59fa624d03918fafde3f2d
|
|
47
|
+
filename: coverage.json
|
|
48
|
+
label: Coverage
|
|
49
|
+
message: ${{ env.total }}%
|
|
50
|
+
minColorRange: 50
|
|
51
|
+
maxColorRange: 90
|
|
52
|
+
valColorRange: ${{ env.total }}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
pypi:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
environment:
|
|
13
|
+
name: pypi
|
|
14
|
+
url: https://pypi.org/project/uedition
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
id-token: write
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
|
|
22
|
+
- uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: |
|
|
25
|
+
3.11
|
|
26
|
+
|
|
27
|
+
- name: Install Base Dependencies
|
|
28
|
+
run: |
|
|
29
|
+
pip install --user build
|
|
30
|
+
|
|
31
|
+
- name: Build the package
|
|
32
|
+
run: |
|
|
33
|
+
python -m build
|
|
34
|
+
|
|
35
|
+
- name: Publish package distributions to PyPI
|
|
36
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
tests:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
python_version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: ${{ matrix.python_version }}
|
|
23
|
+
|
|
24
|
+
- name: Add .local path
|
|
25
|
+
run: |
|
|
26
|
+
echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV
|
|
27
|
+
echo "PIPX_HOME=$HOME/.local/pipx" >> $GITHUB_ENV
|
|
28
|
+
echo "PIPX_BIN_DIR=$HOME/.local/bin" >> $GITHUB_ENV
|
|
29
|
+
|
|
30
|
+
- name: Install Base Dependencies
|
|
31
|
+
run: |
|
|
32
|
+
sudo apt-get install python3-venv pipx
|
|
33
|
+
pipx install hatch
|
|
34
|
+
|
|
35
|
+
- name: Run Tests
|
|
36
|
+
run: |
|
|
37
|
+
hatch run cov
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
os: ubuntu-22.04
|
|
5
|
+
tools:
|
|
6
|
+
python: "3.11"
|
|
7
|
+
commands:
|
|
8
|
+
- "pip install hatch"
|
|
9
|
+
- "cd docs && hatch run build"
|
|
10
|
+
- "mkdir $READTHEDOCS_OUTPUT"
|
|
11
|
+
- "mv docs/site $READTHEDOCS_OUTPUT/html"
|
|
12
|
+
|
|
13
|
+
python:
|
|
14
|
+
install:
|
|
15
|
+
- method: pip
|
|
16
|
+
path: .
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023-present Mark Hall <mark.hall@work.room3b.eu>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
+
|
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
uedition-2.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: uEdition
|
|
3
|
+
Version: 2.0.0
|
|
4
|
+
Project-URL: Documentation, https://github.com/uEdition/uEdition#readme
|
|
5
|
+
Project-URL: Issues, https://github.com/uEdition/uEdition/issues
|
|
6
|
+
Project-URL: Source, https://github.com/uEdition/uEdition
|
|
7
|
+
Author-email: Mark Hall <mark.hall@work.room3b.eu>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE.txt
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Programming Language :: Python
|
|
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
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
17
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Requires-Dist: httpx<0.29,>=0.28.1
|
|
20
|
+
Requires-Dist: livereload
|
|
21
|
+
Requires-Dist: lxml<6.0.0,>=4.9.2
|
|
22
|
+
Requires-Dist: myst-parser<5,>=4.0.1
|
|
23
|
+
Requires-Dist: packaging==24.2
|
|
24
|
+
Requires-Dist: pydantic-settings<3.0.0,>=2.0.0
|
|
25
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
|
26
|
+
Requires-Dist: pyyaml<7.0.0,>=6.0.0
|
|
27
|
+
Requires-Dist: sphinx-book-theme<2,>=1.1.4
|
|
28
|
+
Requires-Dist: sphinx-external-toc<2,>=1.0.1
|
|
29
|
+
Requires-Dist: sphinx<9,>=8.2.3
|
|
30
|
+
Requires-Dist: strictyaml<2,>=1.7.3
|
|
31
|
+
Requires-Dist: tomlkit<0.14,>=0.13.2
|
|
32
|
+
Requires-Dist: typer<1.0.0
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
|
|
35
|
+
# μEdition
|
|
36
|
+
|
|
37
|
+
The μEdition is a micro framwork for quickly building Editions.
|
|
38
|
+
|
|
39
|
+
[](https://pypi.org/project/uedition)
|
|
40
|
+
[](https://pypi.org/project/uedition)
|
|
41
|
+
[](https://github.com/uEdition/uEdition/actions/workflows/tests.yml)
|
|
42
|
+
[](https://github.com/uEdition/uEdition/actions/workflows/tests.yml)
|
|
43
|
+
[](https://uedition.readthedocs.io/en/latest/?badge=latest)
|
|
44
|
+
|
|
45
|
+
-----
|
|
46
|
+
|
|
47
|
+
**Table of Contents**
|
|
48
|
+
|
|
49
|
+
- [Quickstart](#quickstart)
|
|
50
|
+
- [Documentation](#documentation)
|
|
51
|
+
- [License](#license)
|
|
52
|
+
|
|
53
|
+
## Quickstart
|
|
54
|
+
|
|
55
|
+
To quickly get started with the μEdition follow these steps:
|
|
56
|
+
|
|
57
|
+
1. Install [Hatch](https://hatch.pypa.io/latest/install/) for your operating system.
|
|
58
|
+
2. Create a new folder for your μEdition.
|
|
59
|
+
3. Download the default {download}`https://uedition.readthedocs.io/latest/en_static/pyproject.toml` and move that into
|
|
60
|
+
your new folder.
|
|
61
|
+
4. Open a new terminal, change into your new folder and run the following command:
|
|
62
|
+
|
|
63
|
+
:::{code-block} console
|
|
64
|
+
hatch run init
|
|
65
|
+
:::
|
|
66
|
+
|
|
67
|
+
This creates the configuration file ({file}`uEdition.yml`) and table of contents ({file}`toc.yml`).
|
|
68
|
+
|
|
69
|
+
5. Then run the following command to add content in a new language:
|
|
70
|
+
|
|
71
|
+
:::{code-block} console
|
|
72
|
+
hatch run language add
|
|
73
|
+
:::
|
|
74
|
+
|
|
75
|
+
This will ask you a few questions about the new language and then create the required files.
|
|
76
|
+
|
|
77
|
+
5. Then run the following command to start the writing server:
|
|
78
|
+
|
|
79
|
+
:::{code-block} console
|
|
80
|
+
hatch run serve
|
|
81
|
+
:::
|
|
82
|
+
|
|
83
|
+
## Documentation
|
|
84
|
+
|
|
85
|
+
Full documentation is available at [https://uedition.readthedocs.io](https://uedition.readthedocs.io).
|
|
86
|
+
|
|
87
|
+
## License
|
|
88
|
+
|
|
89
|
+
The μEdition is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
|
uedition-2.0.0/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# μEdition
|
|
2
|
+
|
|
3
|
+
The μEdition is a micro framwork for quickly building Editions.
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/uedition)
|
|
6
|
+
[](https://pypi.org/project/uedition)
|
|
7
|
+
[](https://github.com/uEdition/uEdition/actions/workflows/tests.yml)
|
|
8
|
+
[](https://github.com/uEdition/uEdition/actions/workflows/tests.yml)
|
|
9
|
+
[](https://uedition.readthedocs.io/en/latest/?badge=latest)
|
|
10
|
+
|
|
11
|
+
-----
|
|
12
|
+
|
|
13
|
+
**Table of Contents**
|
|
14
|
+
|
|
15
|
+
- [Quickstart](#quickstart)
|
|
16
|
+
- [Documentation](#documentation)
|
|
17
|
+
- [License](#license)
|
|
18
|
+
|
|
19
|
+
## Quickstart
|
|
20
|
+
|
|
21
|
+
To quickly get started with the μEdition follow these steps:
|
|
22
|
+
|
|
23
|
+
1. Install [Hatch](https://hatch.pypa.io/latest/install/) for your operating system.
|
|
24
|
+
2. Create a new folder for your μEdition.
|
|
25
|
+
3. Download the default {download}`https://uedition.readthedocs.io/latest/en_static/pyproject.toml` and move that into
|
|
26
|
+
your new folder.
|
|
27
|
+
4. Open a new terminal, change into your new folder and run the following command:
|
|
28
|
+
|
|
29
|
+
:::{code-block} console
|
|
30
|
+
hatch run init
|
|
31
|
+
:::
|
|
32
|
+
|
|
33
|
+
This creates the configuration file ({file}`uEdition.yml`) and table of contents ({file}`toc.yml`).
|
|
34
|
+
|
|
35
|
+
5. Then run the following command to add content in a new language:
|
|
36
|
+
|
|
37
|
+
:::{code-block} console
|
|
38
|
+
hatch run language add
|
|
39
|
+
:::
|
|
40
|
+
|
|
41
|
+
This will ask you a few questions about the new language and then create the required files.
|
|
42
|
+
|
|
43
|
+
5. Then run the following command to start the writing server:
|
|
44
|
+
|
|
45
|
+
:::{code-block} console
|
|
46
|
+
hatch run serve
|
|
47
|
+
:::
|
|
48
|
+
|
|
49
|
+
## Documentation
|
|
50
|
+
|
|
51
|
+
Full documentation is available at [https://uedition.readthedocs.io](https://uedition.readthedocs.io).
|
|
52
|
+
|
|
53
|
+
## License
|
|
54
|
+
|
|
55
|
+
The μEdition is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
os: ubuntu-22.04
|
|
5
|
+
tools:
|
|
6
|
+
python: "3.11"
|
|
7
|
+
commands:
|
|
8
|
+
- "pip install hatch"
|
|
9
|
+
- "hatch run build"
|
|
10
|
+
- "mkdir $READTHEDOCS_OUTPUT"
|
|
11
|
+
- "mv site $READTHEDOCS_OUTPUT/html"
|
|
12
|
+
|
|
13
|
+
python:
|
|
14
|
+
install:
|
|
15
|
+
- method: pip
|
|
16
|
+
path: .
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Änderungsgeschichte
|
|
2
|
+
|
|
3
|
+
## In Entwicklung
|
|
4
|
+
|
|
5
|
+
* **Bruch**: Direkte Nutzung von Sphinx anstelle über Jupyter Book
|
|
6
|
+
* **Bruch**: Keine Nutzung von Copier mehr
|
|
7
|
+
* **Bruch**: TEI Parser und Konfiguration überarbeitet
|
|
8
|
+
* **Entfernt**: Undokumentierten "check" Kommandozeilenbefehl entfernt
|
|
9
|
+
|
|
10
|
+
## 1.x
|
|
11
|
+
|
|
12
|
+
### 1.3.2 (26.02.2024)
|
|
13
|
+
|
|
14
|
+
* **Bugfix**: Weiteren Fehler in der Sortierung nach Seitenzahlen behoben
|
|
15
|
+
|
|
16
|
+
### 1.3.1 (26.02.2024)
|
|
17
|
+
|
|
18
|
+
* **Bugfix**: Fehler in der Sortierung nach Seitenzahlen behoben
|
|
19
|
+
|
|
20
|
+
### 1.3.0 (22.02.2024)
|
|
21
|
+
|
|
22
|
+
* **Neu**: Unterstützung für Downloadlinks in TEI Dateien
|
|
23
|
+
|
|
24
|
+
### 1.2.0 (06.02.2024)
|
|
25
|
+
|
|
26
|
+
* **Neu**: TEI Funktion zum Parsen von ISO8601 Daten
|
|
27
|
+
* **Bugfix**: Fehler im TEI Parsing von Metadaten behoben
|
|
28
|
+
|
|
29
|
+
### 1.1.0 (02.02.2024)
|
|
30
|
+
|
|
31
|
+
* **Neu**: TEI Textabschnitte können jetzt sortiert werden
|
|
32
|
+
* **Bugfix**: Die Landungsseite funktioniert jetzt auch ohne JavaScript
|
|
33
|
+
|
|
34
|
+
### 1.0.0 (31.01.2024)
|
|
35
|
+
|
|
36
|
+
* **Neu**: TEI Output ist optional
|
|
37
|
+
* **Aktualisiert**: JupyterBook auf Version 1 aktualisert
|
|
38
|
+
* **Aktualisert**: Sprachwechsler wird nicht angezeigt, wenn nur eine Sprache konfiguriert ist
|
|
39
|
+
* **Bugfix**: Einen Bug im Ausgabepfadname korrigiert
|
|
40
|
+
* **Bugfix**: Einen Bug im Sprachwechsler behoben
|
|
41
|
+
|
|
42
|
+
### 0.9.0 (26.01.2024)
|
|
43
|
+
|
|
44
|
+
* **Neu**: TEI Output hinzugefügt
|
|
45
|
+
* **Aktualisiert**: Bereits beantwortet Fragen überspringen
|
|
46
|
+
|
|
47
|
+
### 0.8.0 (12.01.2024)
|
|
48
|
+
|
|
49
|
+
* **Neu**: Unterstützung von Read the Docs als Publikationsplatform
|
|
50
|
+
* **Bugfix**: Softwareabhängigkeiten aktualisiert
|
|
51
|
+
|
|
52
|
+
### 0.7.0 (04.07.2023)
|
|
53
|
+
|
|
54
|
+
* **Neu**: Unterstützung für zentrale, statische Dateien
|
|
55
|
+
* **Bugfix**: Fehlende Fortschrittsanzeige hinzugefügt
|
|
56
|
+
|
|
57
|
+
### 0.6.1 (04.07.2023)
|
|
58
|
+
|
|
59
|
+
* **Aktualisiert**: Softwareabhängigkeiten aktualisiert
|
|
60
|
+
|
|
61
|
+
### 0.6.0 (04.07.2023)
|
|
62
|
+
|
|
63
|
+
* **Neu**: Zentrale Konfiguration und Inhaltsverzeichnis
|
|
64
|
+
|
|
65
|
+
### 0.5.0 (30.06.2023)
|
|
66
|
+
|
|
67
|
+
* **Neu**: Copier in die uEdition integriert
|
|
68
|
+
|
|
69
|
+
### 0.4.0 (26.06.2023)
|
|
70
|
+
|
|
71
|
+
* **Neu**: Sprachwechsler hinzugefügt
|
|
72
|
+
|
|
73
|
+
### 0.3.1 (22.06.2023)
|
|
74
|
+
|
|
75
|
+
* **Bugfix**: Sicherstellen dass der Ausgabepfad existiert
|
|
76
|
+
|
|
77
|
+
### 0.3.0 (22.06.2023)
|
|
78
|
+
|
|
79
|
+
* **Neu**: Startseite mit automatischer Spracherkennung integriert
|
|
80
|
+
|
|
81
|
+
### 0.2.1 (16.06.2023)
|
|
82
|
+
|
|
83
|
+
* **Bugfix**: Abschnittsformatierungsbug behoben
|
|
84
|
+
|
|
85
|
+
### 0.2.0 (16.06.2023)
|
|
86
|
+
|
|
87
|
+
* **Neu**: Das TEI Layout auf vertikal umgestellt
|
|
88
|
+
|
|
89
|
+
### 0.1.0 (13.06.2023)
|
|
90
|
+
|
|
91
|
+
* **Neu**: TEI Input hinzugefügt
|
|
92
|
+
|
|
93
|
+
### 0.0.3 (17.05.2023)
|
|
94
|
+
|
|
95
|
+
* **Bugfix**: Korrektur im Softwarepublikationsprozess
|
|
96
|
+
|
|
97
|
+
### 0.0.2 (17.05.2023)
|
|
98
|
+
|
|
99
|
+
* **Bugfix**: Ausgabepfad korrekt handhaben
|
|
100
|
+
|
|
101
|
+
### 0.0.1 (17.05.2023)
|
|
102
|
+
|
|
103
|
+
* **Neu**: Erste Version
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Die μEdition konfigurieren
|
|
2
|
+
|
|
3
|
+
Die μEdition und Sphinx sind sehr konfigurable. Sowohl die μEdition, wie auch die Sphinx Funktionalität
|
|
4
|
+
werden über die {file}`uEdition.yml` (im Wurzelverzeichnis der μEdition) konfiguriert. Der folgende Block zeigt alle
|
|
5
|
+
verfügbaren Konfigurationsoptionen:
|
|
6
|
+
|
|
7
|
+
:::{code-block} yaml
|
|
8
|
+
author: # Die Autor:innen:information bestehend aus
|
|
9
|
+
name: # Dem Autor:in:namen
|
|
10
|
+
email: # Der E-Mailaddresse der/des Autor:in:s
|
|
11
|
+
languages: # Die in der μEdition konfigurierten Sprachen. Eine List, in der jeder Eintrag aus folgenden Teilen besteht:
|
|
12
|
+
- code: # Der ISO 639-1 zweistellige Sprachcode
|
|
13
|
+
label: # Der Text der in der Ausgabe für die Sprache angezeigt wird
|
|
14
|
+
path: # Der Dateipfad in dem das sprachspezifische Jupyter Book abgelegt ist
|
|
15
|
+
output: # Das Ausgabeverzeichnis für die komplette μEdition
|
|
16
|
+
repository: # Das Git Repository für diese μEdition:
|
|
17
|
+
url: # Die URL für das Repository
|
|
18
|
+
title: # Der Titel der μEdition in allen konfigurierten Sprachen. Jede konfigurierte Sprache muss vorkommen.
|
|
19
|
+
en: # Abbildung vom ISO 639-1 Sprachcode auf den natürlichsprachlichen Titel
|
|
20
|
+
version: '2' # Die Version der μEdition Konfigurationsdatei. Muss auf "2" gesetzt sein.
|
|
21
|
+
sphinx_config: # Enthält alle zusätzlichen Sphinx Konfigurationseinträge
|
|
22
|
+
:::
|
|
23
|
+
|
|
24
|
+
Alle Konfigurationselement der Datei sind optional und nicht angegebene Werte werden durch funktionierende Standardwerte
|
|
25
|
+
ersetzt.
|
|
26
|
+
|
|
27
|
+
Alle Sphinx Einstellungen können über den `sphinx_config` Eintrag konfiguriert werden. Alle Sphinxeinstellungen welche über
|
|
28
|
+
den `sphinx_config` Schlüssel konfiguriert werden, werden für alle Sprachen genutzt. Die einzige Ausnahme ist die `title`
|
|
29
|
+
Einstellung, für welche die μEdition immer den Titel der spezifischen Sprache nutzt.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Inhalte hinzufügen
|
|
2
|
+
|
|
3
|
+
Die μEdition baut auf [Sphinx](https://www.sphinx-doc.org/) auf um aus den Inhalten eine Webseite zu generieren,
|
|
4
|
+
welche dann veröffentlicht werden kann. Jede Sprache in der μEdition ist ein eigenes Sphinx Dokument und die
|
|
5
|
+
μEdition fügt die einzelnen Ausgaben in eine gemeinsame Webseite zusammen. Die μEdition lädt auch automatisch
|
|
6
|
+
die [MyST](https://myst-parser.readthedocs.io/en/latest/) Erweiterung, damit Inhalte in Markdown erstellt werden können.
|
|
7
|
+
|
|
8
|
+
## Die μEdition strukturieren
|
|
9
|
+
|
|
10
|
+
Die Struktur der μEdition wird über das Inhaltsverzeichnis definiert, welches in der {file}`toc.yml` Datei
|
|
11
|
+
(im Wurzelverzeichnis der μEdition) konfiguriert wird. Die {file}`toc.yml` Datei nutzt das Format
|
|
12
|
+
[der zugrundeliegenden Jupyter Book Technik](https://jupyterbook.org/en/stable/structure/toc.html) und die
|
|
13
|
+
Anfängliche {file}`toc.yml` sieht wie folgt aus:
|
|
14
|
+
|
|
15
|
+
:::{code-block} yaml
|
|
16
|
+
format: jb-book
|
|
17
|
+
root: index
|
|
18
|
+
:::
|
|
19
|
+
|
|
20
|
+
Wichtig hier ist die `root: index` Einstellung, welche festlegt, dass eine Datei mit dem Namen {file}`index`
|
|
21
|
+
als Anfangsseite genutzt wird. Im Dateiordner der ersten Sprache gibt es eine Datei {file}`index.md`, deren
|
|
22
|
+
Inhalt die Anfangsseite der μEdition beinhaltet.
|
|
23
|
+
|
|
24
|
+
Um der μEdition Seiten hinzuzufügen, müssen diese in Kapitel organisiert werden. Zum Beispiel um zwei Kapitel
|
|
25
|
+
"richtlinien" und "kontakt" hinzuzufügen, aktualisieren sie die {file}`toc.yml` wie folgt:
|
|
26
|
+
|
|
27
|
+
:::{code-block} yaml
|
|
28
|
+
format: jb-book
|
|
29
|
+
root: index
|
|
30
|
+
chapters:
|
|
31
|
+
- file: richtlinien
|
|
32
|
+
- file: kontakt
|
|
33
|
+
:::
|
|
34
|
+
|
|
35
|
+
Dann legen sie zwei Dateien {file}`richtlinien.md` und {file}`kontakt.md` im Dateiordner der Sprache an und
|
|
36
|
+
fügen dort die gewünschten Inhalte ein. Stellen sie sicher, dass der Dateiname jedes `file:` Eintrages ein
|
|
37
|
+
relativer Dateipfad ist, der vom Dateiordner der Sprache auf die Datei verweist.
|
|
38
|
+
|
|
39
|
+
Weiter Details über die Konfigurationsmöglichkeiten des Inhaltsverzeichnisses finden sie in der
|
|
40
|
+
[Dokumentation des Jupyter Book Inhaltsverzeichnises](https://jupyterbook.org/en/stable/structure/toc.html).
|
|
41
|
+
|
|
42
|
+
Standardmäßig wird der Titel des Dokuments als Titel im Inhaltsverzeichnis genutzt. Es ist jedoch möglich
|
|
43
|
+
einen alternativen Titel zu konfigurieren, indem ein `caption` oder `title` Eintrag bereitgestellt wird.
|
|
44
|
+
Die μEdition erweitert diese Funktionalität und ermöglicht es für jede konfigurierte Sprache einen eigenen
|
|
45
|
+
Titel zu konfigurieren:
|
|
46
|
+
|
|
47
|
+
:::{code-block} yaml
|
|
48
|
+
format: jb-book
|
|
49
|
+
root: index
|
|
50
|
+
parts:
|
|
51
|
+
- caption:
|
|
52
|
+
en: Name of Part 1
|
|
53
|
+
de: Name von Teil 1
|
|
54
|
+
chapters:
|
|
55
|
+
- title:
|
|
56
|
+
en: Chapter 1
|
|
57
|
+
de: Chapter 2
|
|
58
|
+
file: path/to/part1/chapter1
|
|
59
|
+
- file: path/to/part1/chapter2
|
|
60
|
+
:::
|
|
61
|
+
|
|
62
|
+
## Texte schreiben
|
|
63
|
+
|
|
64
|
+
Markedly Structured Text ist das primäre Format um die Textinhalte zu erstellen. Eine gute Übersicht über die
|
|
65
|
+
Kernfunktionalität [findet sich hier](https://myst-parser.readthedocs.io/en/latest/syntax/typography.html) und Erweiterungen
|
|
66
|
+
die Jupyter Book bereitstellt [sind hier dokumentiert](https://jupyterbook.org/en/stable/content/index.html)
|
|
67
|
+
und dokumentiert das einfache Erstellen von Aspekten wie Glossar, Index, Zitierbarkeit, Fußnoten und Layoutstrukturen.
|
|
68
|
+
|
|
69
|
+
## Lokaler Server
|
|
70
|
+
|
|
71
|
+
Während des Schreibprozesses kann es hilfreich sein zu sehen, wie das Ergebnis aussieht. Um dies zu vereinfachen stellt
|
|
72
|
+
die μEdition einen eingebauten Webserver zur verfügung, der die generierte μEdition automatisch aktualisiert, wenn die
|
|
73
|
+
Inhalte bearbeitet werden. Um den Server zu starten wird folgender Befehl genutzt:
|
|
74
|
+
|
|
75
|
+
:::{code-block} console
|
|
76
|
+
$ hatch run serve
|
|
77
|
+
:::
|
|
78
|
+
|
|
79
|
+
This generiert die μEdition und macht sie dann unter http://localhost:8000 verfügbar. Wenn die Inhalte geändert werden,
|
|
80
|
+
wird die μEdition automatisch neugeneriert und die Seite im Browser automatisch neugeladen.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Eine μEdition erstellen
|
|
2
|
+
|
|
3
|
+
Jetzt wo alle Vorraussetzungen installiert sind, kann die erste μEdition erstellt werden. Erstellen sie einen
|
|
4
|
+
neuen Dateiordner für die neue μEdition. Dann laden sie die {download}`../_static/pyproject.toml` herunter
|
|
5
|
+
und speichern sie diese im neuen Dateiordner ab.
|
|
6
|
+
|
|
7
|
+
Dann navigieren sie auf der Kommandozeile in den neuen Dateiordner und führen folgenden Befehl aus:
|
|
8
|
+
|
|
9
|
+
:::{code-block} console
|
|
10
|
+
$ hatch run init
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
Dies erstellt eine virtuelle Python Installation mit allen Softwarepaketen die die μEdition benötigt und führt
|
|
14
|
+
dann den Initialisierungsvorgang aus. Dies erzeugt die Dateien {file}`uEdition.yml`, welche die Konfigurationseinstellungen
|
|
15
|
+
beinhaltet, und {file}`toc.yml`, welche das Inhaltsverzeichnis beinhaltet.
|
|
16
|
+
|
|
17
|
+
Der nächste Schriftt ist es der μEdition eine Sprache hinzuzufügen, damit die Inhalte bearbeitet werden können.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Erste Schritte
|
|
2
|
+
|
|
3
|
+
Die ersten Schritte Dokumentation leitet die Herausgeber durch die Abläufe zum
|
|
4
|
+
{doc}`Erstellen einer neuen μEdition <create>`, {doc}`hinzufügen einer Sprache <language-add>`,
|
|
5
|
+
{doc}`Erstellung von Inhalten <content>` und {doc}`Veröffentlichen <publish>`.
|
|
6
|
+
|
|
7
|
+
Die Anleitung erwartet keine großen, technischen Vorkenntnisse, ausser Grundkenntnisse über die Nutzung der
|
|
8
|
+
Kommandozeile.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
Die μEdition nutzt Python und unterstützt alle aktuell unterstützten Versionen[^python-version]. Bitte
|
|
4
|
+
[installieren sie die Python Version für ihr Betriebssystem](https://python.org/downloads).
|
|
5
|
+
|
|
6
|
+
Die μEdition nutzt [Hatch](https://hatch.pypa.io) um die Python Packete der μEdition zu verwalten. Bitte installieren
|
|
7
|
+
sie die aktuellste Version für ihr Betriebssystem.
|
|
8
|
+
|
|
9
|
+
Um zu Testen ob Python und Hatch korrekt installiert wurden, führen sie die folgenden zwei Befehle auf der Kommandozeile
|
|
10
|
+
aus[^kein-prompt]:
|
|
11
|
+
|
|
12
|
+
:::{code} console
|
|
13
|
+
$ python --version
|
|
14
|
+
$ hatch
|
|
15
|
+
:::
|
|
16
|
+
|
|
17
|
+
Wenn dies die aktuell installierte Python Version und eine Liste von Hatch Befehlen anzeigt, dann war die Installation
|
|
18
|
+
erfolgreich.
|
|
19
|
+
|
|
20
|
+
Um im Team zusammenzuarbeiten und für die GitHub Pages Veröffentlichungsfunktionalität, muss auch das Versionskontrollwerkzeug
|
|
21
|
+
[Git](https://git-scm.com/downloads) installiert sein. Eine vollständige Einführung in Git übersteigt den Platz hier,
|
|
22
|
+
aber es gibt viele gute Tutorials im Netz und die [offizielle Dokumentation](https://git-scm.com/doc) ist auch hilfreich.
|
|
23
|
+
|
|
24
|
+
[^python-version]: Hier finden sie die [aktuell unterstützten Python Versionen](https://devguide.python.org/versions/)
|
|
25
|
+
[^kein-prompt]: Das `$` Zeichen darf nicht eingegeben werden, wenn der Befehl ausgeführt wird. Das `$` wird nur genutzt um
|
|
26
|
+
hier anzuzeigen, dass es sich um ein Befehl und nicht um ein Programmergebnis handelt.
|