mkdocs-metadata-enricher-plugin 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. mkdocs_metadata_enricher_plugin-0.2.1/.github/dependabot.yml +27 -0
  2. mkdocs_metadata_enricher_plugin-0.2.1/.github/workflows/ci.yml +107 -0
  3. mkdocs_metadata_enricher_plugin-0.2.1/.github/workflows/docs.yml +29 -0
  4. mkdocs_metadata_enricher_plugin-0.2.1/.github/workflows/prepare-release.yml +81 -0
  5. mkdocs_metadata_enricher_plugin-0.2.1/.github/workflows/release.yml +48 -0
  6. mkdocs_metadata_enricher_plugin-0.2.1/.gitignore +134 -0
  7. mkdocs_metadata_enricher_plugin-0.2.1/.pre-commit-config.yaml +16 -0
  8. mkdocs_metadata_enricher_plugin-0.2.1/CHANGELOG.md +61 -0
  9. mkdocs_metadata_enricher_plugin-0.2.1/DEVELOPMENT.md +341 -0
  10. mkdocs_metadata_enricher_plugin-0.2.1/LICENSE +21 -0
  11. mkdocs_metadata_enricher_plugin-0.2.1/PKG-INFO +210 -0
  12. mkdocs_metadata_enricher_plugin-0.2.1/README.md +171 -0
  13. mkdocs_metadata_enricher_plugin-0.2.1/cliff.toml +77 -0
  14. mkdocs_metadata_enricher_plugin-0.2.1/docs/.nojekyll +0 -0
  15. mkdocs_metadata_enricher_plugin-0.2.1/docs/changelog.md +1 -0
  16. mkdocs_metadata_enricher_plugin-0.2.1/docs/configuration.md +118 -0
  17. mkdocs_metadata_enricher_plugin-0.2.1/docs/development.md +1 -0
  18. mkdocs_metadata_enricher_plugin-0.2.1/docs/getting-started.md +84 -0
  19. mkdocs_metadata_enricher_plugin-0.2.1/docs/how-it-works.md +119 -0
  20. mkdocs_metadata_enricher_plugin-0.2.1/docs/index.md +51 -0
  21. mkdocs_metadata_enricher_plugin-0.2.1/mkdocs.yml +85 -0
  22. mkdocs_metadata_enricher_plugin-0.2.1/pyproject.toml +107 -0
  23. mkdocs_metadata_enricher_plugin-0.2.1/src/mkdocs_metadata_enricher_plugin/__init__.py +7 -0
  24. mkdocs_metadata_enricher_plugin-0.2.1/src/mkdocs_metadata_enricher_plugin/plugin.py +276 -0
  25. mkdocs_metadata_enricher_plugin-0.2.1/src/mkdocs_metadata_enricher_plugin/py.typed +0 -0
  26. mkdocs_metadata_enricher_plugin-0.2.1/tests/conftest.py +112 -0
  27. mkdocs_metadata_enricher_plugin-0.2.1/tests/test_integration.py +121 -0
  28. mkdocs_metadata_enricher_plugin-0.2.1/tests/test_plugin.py +375 -0
  29. mkdocs_metadata_enricher_plugin-0.2.1/uv.lock +1293 -0
@@ -0,0 +1,27 @@
1
+ # Dependabot configuration for automated dependency updates
2
+ # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates
3
+
4
+ version: 2
5
+ updates:
6
+ # Python dependencies (pip ecosystem for pyproject.toml)
7
+ - package-ecosystem: "pip"
8
+ directory: "/"
9
+ schedule:
10
+ interval: "weekly"
11
+ day: "monday"
12
+ labels:
13
+ - "dependencies"
14
+ commit-message:
15
+ prefix: "chore(deps)"
16
+
17
+ # GitHub Actions
18
+ - package-ecosystem: "github-actions"
19
+ directory: "/"
20
+ schedule:
21
+ interval: "weekly"
22
+ day: "monday"
23
+ labels:
24
+ - "dependencies"
25
+ - "github-actions"
26
+ commit-message:
27
+ prefix: "ci(deps)"
@@ -0,0 +1,107 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ pull_request:
7
+ branches: [main, develop]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ test:
14
+ name: Test Python ${{ matrix.python-version }}
15
+ runs-on: ubuntu-latest
16
+
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
21
+
22
+ steps:
23
+ - uses: actions/checkout@v6
24
+ with:
25
+ fetch-depth: 0 # Full history for git operations
26
+
27
+ - name: Set up uv
28
+ uses: astral-sh/setup-uv@v7
29
+ with:
30
+ python-version: ${{ matrix.python-version }}
31
+ enable-cache: true
32
+
33
+ - name: Install dependencies
34
+ run: uv sync --all-extras
35
+
36
+ - name: Run tests
37
+ run: uv run pytest --cov=src/mkdocs_metadata_enricher --cov-report=xml
38
+
39
+ - name: Upload coverage
40
+ uses: codecov/codecov-action@v5
41
+ if: matrix.python-version == '3.12'
42
+ with:
43
+ file: ./coverage.xml
44
+ fail_ci_if_error: false
45
+ flags: unittests
46
+ name: codecov-umbrella
47
+
48
+ lint:
49
+ name: Lint and Format
50
+ runs-on: ubuntu-latest
51
+
52
+ steps:
53
+ - uses: actions/checkout@v6
54
+
55
+ - name: Set up uv
56
+ uses: astral-sh/setup-uv@v7
57
+ with:
58
+ enable-cache: true
59
+
60
+ - name: Install dependencies
61
+ run: uv sync --all-extras
62
+
63
+ - name: Run ruff check
64
+ run: uv run ruff check .
65
+
66
+ - name: Run ruff format check
67
+ run: uv run ruff format --check .
68
+
69
+ type-check:
70
+ name: Type Check
71
+ runs-on: ubuntu-latest
72
+
73
+ steps:
74
+ - uses: actions/checkout@v6
75
+
76
+ - name: Set up uv
77
+ uses: astral-sh/setup-uv@v7
78
+ with:
79
+ enable-cache: true
80
+
81
+ - name: Install dependencies
82
+ run: uv sync --all-extras
83
+
84
+ - name: Run ty type checker
85
+ run: uvx ty check src/
86
+
87
+ build:
88
+ name: Build Package
89
+ runs-on: ubuntu-latest
90
+ needs: [test, lint, type-check]
91
+
92
+ steps:
93
+ - uses: actions/checkout@v6
94
+
95
+ - name: Set up uv
96
+ uses: astral-sh/setup-uv@v7
97
+ with:
98
+ enable-cache: true
99
+
100
+ - name: Build package
101
+ run: uv build
102
+
103
+ - name: Upload artifacts
104
+ uses: actions/upload-artifact@v6
105
+ with:
106
+ name: dist
107
+ path: dist/
@@ -0,0 +1,29 @@
1
+ name: Deploy Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ permissions:
8
+ contents: write
9
+
10
+ jobs:
11
+ deploy:
12
+ name: Deploy to GitHub Pages
13
+ runs-on: ubuntu-latest
14
+
15
+ steps:
16
+ - uses: actions/checkout@v6
17
+ with:
18
+ fetch-depth: 0 # Full history for git-revision-date-localized
19
+
20
+ - name: Set up uv
21
+ uses: astral-sh/setup-uv@v7
22
+ with:
23
+ enable-cache: true
24
+
25
+ - name: Install docs dependencies
26
+ run: uv sync --group docs
27
+
28
+ - name: Deploy to GitHub Pages
29
+ run: uv run mkdocs gh-deploy --force
@@ -0,0 +1,81 @@
1
+ name: Prepare Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ bump:
7
+ description: 'Bumping strategy (major, minor, patch)'
8
+ required: true
9
+ default: 'patch'
10
+ type: choice
11
+ options:
12
+ - patch
13
+ - minor
14
+ - major
15
+
16
+ permissions:
17
+ contents: write
18
+ pull-requests: write
19
+
20
+ jobs:
21
+ prepare:
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ with:
26
+ fetch-depth: 0
27
+
28
+ - name: Install git-cliff
29
+ uses: kenji-miyake/setup-git-cliff@v2
30
+
31
+ - name: Set up uv
32
+ uses: astral-sh/setup-uv@v7
33
+
34
+ - name: Get current version
35
+ id: current_version
36
+ run: |
37
+ VERSION=$(grep -oP '__version__ = "\K[^"]+' src/mkdocs_metadata_enricher_plugin/__init__.py)
38
+ echo "current_version=$VERSION" >> $GITHUB_OUTPUT
39
+
40
+ - name: Determine next version
41
+ id: next_version
42
+ run: |
43
+ # Use git-cliff to bump version based on commits or use the input bump
44
+ # If we want it fully automatic based on commits:
45
+ # NEXT_VERSION=$(git cliff --bump --version-only)
46
+ # For more control, we use the input:
47
+ CURRENT_VERSION=${{ steps.current_version.outputs.current_version }}
48
+ IFS='.' read -r major minor patch <<< "$CURRENT_VERSION"
49
+ if [ "${{ github.event.inputs.bump }}" == "major" ]; then
50
+ NEXT_VERSION="$((major + 1)).0.0"
51
+ elif [ "${{ github.event.inputs.bump }}" == "minor" ]; then
52
+ NEXT_VERSION="$major.$((minor + 1)).0"
53
+ else
54
+ NEXT_VERSION="$major.$minor.$((patch + 1))"
55
+ fi
56
+ echo "next_version=$NEXT_VERSION" >> $GITHUB_OUTPUT
57
+
58
+ - name: Update version in code
59
+ run: |
60
+ sed -i "s/__version__ = \".*\"/__version__ = \"${{ steps.next_version.outputs.next_version }}\"/" src/mkdocs_metadata_enricher_plugin/__init__.py
61
+
62
+ - name: Update Changelog
63
+ run: |
64
+ git cliff --tag v${{ steps.next_version.outputs.next_version }} --output CHANGELOG.md
65
+
66
+ - name: Create Pull Request
67
+ uses: peter-evans/create-pull-request@v6
68
+ with:
69
+ token: ${{ secrets.GITHUB_TOKEN }}
70
+ commit-message: "chore(release): prepare for v${{ steps.next_version.outputs.next_version }}"
71
+ branch: "release/v${{ steps.next_version.outputs.next_version }}"
72
+ title: "release: v${{ steps.next_version.outputs.next_version }}"
73
+ body: |
74
+ Automated release preparation for v${{ steps.next_version.outputs.next_version }}.
75
+
76
+ This PR:
77
+ - Bumps version to v${{ steps.next_version.outputs.next_version }}
78
+ - Updates `CHANGELOG.md`
79
+
80
+ Merge this PR to trigger a new release.
81
+ labels: release
@@ -0,0 +1,48 @@
1
+ name: Release
2
+
3
+ on:
4
+ pull_request:
5
+ types:
6
+ - closed
7
+ branches:
8
+ - main
9
+
10
+ permissions:
11
+ contents: write
12
+ id-token: write # Required for PyPI OIDC
13
+
14
+ jobs:
15
+ release:
16
+ if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release')
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ with:
21
+ fetch-depth: 0
22
+
23
+ - name: Extract version
24
+ id: extract_version
25
+ run: |
26
+ # Extract version from PR title (e.g., "release: v0.2.0")
27
+ VERSION=$(echo "${{ github.event.pull_request.title }}" | grep -oP 'v\K[0-9.]+')
28
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
29
+
30
+ - name: Create and push tag
31
+ run: |
32
+ git config user.name "github-actions[bot]"
33
+ git config user.email "github-actions[bot]@users.noreply.github.com"
34
+ git tag "v${{ steps.extract_version.outputs.version }}"
35
+ git push origin "v${{ steps.extract_version.outputs.version }}"
36
+
37
+ - name: Set up uv
38
+ uses: astral-sh/setup-uv@v5
39
+ with:
40
+ enable-cache: true
41
+
42
+ - name: Build package
43
+ run: uv build
44
+
45
+ - name: Publish to PyPI
46
+ uses: pypa/gh-action-pypi-publish@release/v1
47
+ with:
48
+ packages-dir: dist/
@@ -0,0 +1,134 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ .tox/
41
+ .nox/
42
+ .coverage
43
+ .coverage.*
44
+ .cache
45
+ nosetests.xml
46
+ coverage.xml
47
+ *.cover
48
+ *.py,cover
49
+ .hypothesis/
50
+ .pytest_cache/
51
+
52
+ # Translations
53
+ *.mo
54
+ *.pot
55
+
56
+ # Django stuff:
57
+ *.log
58
+ local_settings.py
59
+ db.sqlite3
60
+ db.sqlite3-journal
61
+
62
+ # Flask stuff:
63
+ instance/
64
+ .webassets-cache
65
+
66
+ # Scrapy stuff:
67
+ .scrapy
68
+
69
+ # Sphinx documentation
70
+ docs/_build/
71
+
72
+ # PyBuilder
73
+ target/
74
+
75
+ # Jupyter Notebook
76
+ .ipynb_checkpoints
77
+
78
+ # IPython
79
+ profile_default/
80
+ ipython_config.py
81
+
82
+ # pyenv
83
+ .python-version
84
+
85
+ # pipenv
86
+ Pipfile.lock
87
+
88
+ # PEP 582
89
+ __pypackages__/
90
+
91
+ # Celery stuff
92
+ celerybeat-schedule
93
+ celerybeat.pid
94
+
95
+ # SageMath parsed files
96
+ *.sage.py
97
+
98
+ # Environments
99
+ .env
100
+ .venv
101
+ env/
102
+ venv/
103
+ ENV/
104
+ env.bak/
105
+ venv.bak/
106
+
107
+ # Spyder project settings
108
+ .spyderproject
109
+ .spyproject
110
+
111
+ # Rope project settings
112
+ .ropeproject
113
+
114
+ # mkdocs documentation
115
+ /site
116
+
117
+ # mypy
118
+ .mypy_cache/
119
+ .dmypy.json
120
+ dmypy.json
121
+
122
+ # Pyre type checker
123
+ .pyre/
124
+
125
+ # UV package manager
126
+ .uv/
127
+
128
+ # IDE
129
+ .vscode/
130
+ .idea/
131
+ *.swp
132
+ *.swo
133
+ *~
134
+ .DS_Store
@@ -0,0 +1,16 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.15.1
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix]
7
+ - id: ruff-format
8
+
9
+ - repo: https://github.com/pre-commit/pre-commit-hooks
10
+ rev: v5.0.0
11
+ hooks:
12
+ - id: trailing-whitespace
13
+ - id: end-of-file-fixer
14
+ - id: check-yaml
15
+ - id: check-added-large-files
16
+ args: [--maxkb=1000]
@@ -0,0 +1,61 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [0.2.1] - 2026-02-16
6
+
7
+ ### Miscellaneous Tasks
8
+
9
+ - *(release)* Consolidate tagging and publishing workflows
10
+
11
+ ## [0.2.0] - 2026-02-16
12
+
13
+ ### Documentation
14
+
15
+ - Replace placeholder URLs with actual org name
16
+
17
+ ### Features
18
+
19
+ - *(docs)* Add GitHub Pages demo site with mkdocs-material
20
+ - *(ci)* Automate release process with git-cliff and GitHub Actions
21
+
22
+ ### Fixed
23
+
24
+ - Fix CI/CD workflow bugs
25
+ - Update PyPI URL in publish workflow to match renamed package
26
+ - *(docs)* User standard material icon for logo
27
+ - Use strict ISO 8601 format for git dates to support Python 3.9/3.10
28
+ - *(plugin)* Use full git commit time precision in search index
29
+
30
+ ### Miscellaneous Tasks
31
+
32
+ - Remove uv.lock from .gitignore
33
+ - Add ty type checker to CI
34
+ - Add project.urls, Python 3.13 support, bump pre-commit
35
+ - Add Dependabot configuration
36
+ - *(deps)* Bump actions/checkout from 4 to 6
37
+ - *(deps)* Bump astral-sh/setup-uv from 5 to 7
38
+ - *(deps)* Bump actions/download-artifact from 4 to 7
39
+ - *(deps)* Bump actions/upload-artifact from 4 to 6
40
+ - *(deps)* Bump codecov/codecov-action from 3 to 5
41
+
42
+ ### Performance
43
+
44
+ - Cache git dates and use path mapping in on_post_build
45
+
46
+ ### Refactor
47
+
48
+ - Rename package to mkdocs-metadata-enricher-plugin
49
+ - Replace pytz with stdlib zoneinfo
50
+ - Narrow exception handling and modernize annotations
51
+
52
+ ### Styling
53
+
54
+ - *(docs)* Enhance demo site aesthetics and add .nojekyll
55
+
56
+ ### Testing
57
+
58
+ - Enable integration test and add edge case tests
59
+ - Fix mock patch location and add path normalization for search index
60
+
61
+ <!-- generated by git-cliff -->