selfdoc 0.5.2__tar.gz → 0.7.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.
- selfdoc-0.7.0/.rlsbl/changes/.validated +1 -0
- selfdoc-0.7.0/.rlsbl/changes/0.5.2.md +5 -0
- selfdoc-0.7.0/.rlsbl/changes/0.6.0.jsonl +12 -0
- selfdoc-0.7.0/.rlsbl/changes/0.6.0.md +11 -0
- selfdoc-0.7.0/.rlsbl/changes/0.7.0.jsonl +11 -0
- selfdoc-0.7.0/.rlsbl/changes/0.7.0.md +12 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/hooks/pre-release.sh +3 -0
- selfdoc-0.7.0/.rlsbl/version +1 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.selfdoc/hashes/hashes.json +38 -26
- selfdoc-0.7.0/.strictcli/schema.json +178 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/CHANGELOG.md +25 -0
- selfdoc-0.7.0/CLAUDE.md +65 -0
- selfdoc-0.7.0/PKG-INFO +266 -0
- selfdoc-0.7.0/README.md +249 -0
- selfdoc-0.7.0/docs/_CLAUDE.md +39 -0
- selfdoc-0.5.2/README.md → selfdoc-0.7.0/docs/_README.md +36 -29
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-check.md +1 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/gen-index.md +3 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-build.md +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-check.md +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-cli.md +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-config.md +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-deploy.md +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-directives.md +1 -1
- selfdoc-0.7.0/docs/selfdoc-docs.md +12 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-extractors-go.md +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-extractors-python.md +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-extractors-typescript.md +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-extractors.md +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-gen.md +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-gendata.md +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-html.md +2 -2
- selfdoc-0.7.0/docs/selfdoc-icons.md +12 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-resolver.md +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-strictcli_support.md +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-tokenizer.md +2 -2
- selfdoc-0.7.0/docs/selfdoc-utils.md +12 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc.md +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/package-lock.json +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/package.json +1 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/pyproject.toml +5 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/build.py +26 -111
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/catalog.py +28 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/check.py +82 -123
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/cli.py +34 -15
- selfdoc-0.7.0/selfdoc/config.py +677 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/content.py +288 -2
- selfdoc-0.7.0/selfdoc/docs.py +125 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/gen.py +90 -65
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/html.py +2 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/resolver.py +3 -2
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/staleness.py +38 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/strictcli_support.py +86 -339
- selfdoc-0.7.0/selfdoc/utils.py +68 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc.json +1 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_build.py +35 -1
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_catalog.py +5 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_config.py +147 -7
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_content.py +3 -1
- selfdoc-0.7.0/tests/test_meta_directives.py +273 -0
- selfdoc-0.7.0/tests/test_root_files.py +161 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_staleness.py +90 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_strictcli_support.py +246 -158
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_token_migration.py +1 -1
- selfdoc-0.7.0/todo/.done/check-command-side-effect.md +24 -0
- selfdoc-0.7.0/todo/.done/gen-strictcli-coupling.md +21 -0
- selfdoc-0.7.0/todo/.done/stale001-release-friction.md +33 -0
- selfdoc-0.7.0/todo/.done/strictcli-features.md +41 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/uv.lock +12 -7
- selfdoc-0.5.2/.rlsbl/changes/.validated +0 -1
- selfdoc-0.5.2/.rlsbl/version +0 -1
- selfdoc-0.5.2/CLAUDE.md +0 -46
- selfdoc-0.5.2/PKG-INFO +0 -200
- selfdoc-0.5.2/selfdoc/config.py +0 -364
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.claude/settings.json +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.github/workflows/ci.yml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.github/workflows/publish.yml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.gitignore +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.claude/settings.json +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.github/workflows/ci.yml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.github/workflows/publish.yml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.gitignore +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.rlsbl/changes/unreleased.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.rlsbl/hooks/post-release.sh +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.rlsbl/hooks/pre-checks.sh +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.rlsbl/hooks/pre-release.sh +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.rlsbl/lint/go.toml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.rlsbl/lint/npm.toml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/.rlsbl/lint/python.toml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/bases/CLAUDE.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.1.0.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.1.0.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.2.0.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.2.0.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.3.0.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.3.0.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.3.1.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.3.1.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.0.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.0.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.1.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.1.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.2.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.2.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.3.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.3.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.4.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.4.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.5.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.4.5.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.5.0.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.5.0.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.5.1.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.5.1.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/0.5.2.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/changes/unreleased.jsonl +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/config.json +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/hashes.json +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/hooks/post-release.sh +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/hooks/pre-checks.sh +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/lint/go.toml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/lint/npm.toml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/.rlsbl/lint/python.toml +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/LICENSE +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/bin/cli.js +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/demo/index.html +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/architecture.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-build.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-deploy.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-gen-data.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-gen.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-index.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-init.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/cli-serve.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/configuration.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/deployment.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/directives.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/getting-started.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/index.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/selfdoc-__main__.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/docs/theming.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/schemas/check-output.schema.json +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/scripts/catalog-directive.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/scripts/config-schema-directive.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/__init__.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/__main__.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/deploy.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/directives.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/extractors/__init__.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/extractors/base.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/extractors/go.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/extractors/protocol.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/extractors/python.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/extractors/typescript.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/gendata.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/git.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/icons.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/themes/__init__.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/themes/clean.css +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/themes/clean.json +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/themes/minimal.css +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/themes/minimal.json +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/selfdoc/tokenizer.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_check.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_check_schema.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_cli.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_contrast.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_custom_directives.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_demo_panel.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_directives.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_e2e.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_extractors_protocol.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_future_directives.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_gen.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_gendata.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_git.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_go_extractor.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_h1.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_python_extractor.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_search.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_tokenizer.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/tests/test_ts_extractor.py +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/0.4.5-multiple-issues.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/0.4.5-regression-module-descriptions.md +0 -0
- {selfdoc-0.5.2/todo → selfdoc-0.7.0/todo/.done}/0.5.0-cli-page-description-preservation-regression.md +0 -0
- {selfdoc-0.5.2/todo → selfdoc-0.7.0/todo/.done}/atom-feed-filtering.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/auto-commit-hashes.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/auto-generated-glossary.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/auto-generation-gaps.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/brotli-dependency.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/changelog-page.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/code-help-package-path-and-strictcli.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/coverage-go-typescript.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/cross-page-term-linking.md +0 -0
- {selfdoc-0.5.2/todo → selfdoc-0.7.0/todo/.done}/css-redesign.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/gen-cli-descriptions.md +0 -0
- {selfdoc-0.5.2/todo → selfdoc-0.7.0/todo/.done}/generate-claude-readme.md +0 -0
- {selfdoc-0.5.2/todo → selfdoc-0.7.0/todo/.done}/glossary-config-opt-in.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/lint-ignores-code-blocks.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/reading-progress.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/recursive-coverage-matching.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/seo-geo-audit.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/seo-linting-gaps.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/sticky-column-striped-rows.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/sticky-table-column.md +0 -0
- {selfdoc-0.5.2/todo → selfdoc-0.7.0/todo/.done}/strictcli-schema-json.md +0 -0
- {selfdoc-0.5.2 → selfdoc-0.7.0}/todo/.done/styling-and-release.md +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ad41660337afb7f0b5bd92a6ba166cb873b9b4d5
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{"commits":["ffd2e1f4031f62d5344292a84c614e41f468892a"],"user_facing":false}
|
|
2
|
+
{"commits":["379ba6e08cc06fc4ab0161dcb2671c951dac3093"],"user_facing":false}
|
|
3
|
+
{"commits":["8b64f528432988cfa4b579909b1e78a86ee3e52a","b5acfe9daa4454a4bf29cb76ae1008430772e643"],"user_facing":false}
|
|
4
|
+
{"commits":["4b1db6378937c6bbea82b100623f2992847cd761","fb4f1779cc771becb9ab4c674f03ab65e9dcb3ef"],"user_facing":false}
|
|
5
|
+
{"commits":["ed73a66a3254fa8d6a1c6f0ab8c9b5dd45c76004","34bfab4e2a32026c6430fdeb7d8dbc945014c496","ec8e8b19371c266ccdde35b58e33853fd1054ac6","f52a0b0413f6d6e7387b76597371713a4d09f41a"],"user_facing":true,"description":"**Declarative config schema.** Config validation is now driven by a schema (FieldType enum + FieldSpec dataclass) instead of procedural code. Unknown top-level keys in selfdoc.json are now rejected.","type":"feature"}
|
|
6
|
+
{"commits":["74354656224c2f339357b56ec378f03c813e1a5e","1b76129ad004fdc44a548ec61cc5b6f13878970a"],"user_facing":true,"description":"**Five new directives.** `list-modules`, `table-commands`, `table-directives`, `table-config-schema`, and `var` for generating module lists, CLI command tables, directive catalogs, config reference tables, and project metadata interpolation.","type":"feature"}
|
|
7
|
+
{"commits":["6edcd4741a1dc09af29b0311d32f1762939ceae9","29bf767d81407a7d6e07ead4bb61ac308c1c53d8","12627ed47a61820c36f22e476360ed2f4cdf4d69","d1b6c6b7c973da39ca3c14dd6546fb3a8d45a353"],"user_facing":true,"description":"**Root file generation.** `selfdoc gen` can now produce root-level Markdown files (CLAUDE.md, README.md, etc.) from underscore-prefixed templates in docs/. Configure via `root_files` in selfdoc.json. Generated files are read-only (0o444) with an auto-generated header.","type":"feature"}
|
|
8
|
+
{"commits":["4feaf98c70d705f2a5dbeee246b8dd022d546365","f3b3570a6fbd2054af50fb7ed8f248ab78966c16","e6f09ead57c88403f2012105cb8406e1ecbe2f5b","cfc6b4256c28e19d66823bacf3bc0df30935a0e0"],"user_facing":false}
|
|
9
|
+
{"commits":["28f48c9faee8dd0876c3acc30bd6e1b4cfcd37c1","c5dd07d5e434787e977839948e3698c5e1b6a78f","fc11f02005d45753ecbd5e52500ddee79f24d9b1"],"user_facing":false}
|
|
10
|
+
{"commits":["fabfc6f4e82bf79ea14c52e3f793aceaab3395ad"],"user_facing":false}
|
|
11
|
+
{"commits":["416002f8c8f593439fd3d98d9e9c993b6785fb68","7e25995dd928d6ae98d779be1a23e6a33a23b5d5"],"user_facing":false}
|
|
12
|
+
{"commits":["3a19eb6185f43ffb5ee8f44364eb7066b69eec2f"],"user_facing":true,"description":"**Underscore-prefixed templates excluded from lint.** `selfdoc check` now skips `_*.md` files in docs/, matching the existing build exclusion.","type":"fix"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## 0.6.0
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- **Declarative config schema.** Config validation is now driven by a schema (FieldType enum + FieldSpec dataclass) instead of procedural code. Unknown top-level keys in selfdoc.json are now rejected.
|
|
6
|
+
- **Five new directives.** `list-modules`, `table-commands`, `table-directives`, `table-config-schema`, and `var` for generating module lists, CLI command tables, directive catalogs, config reference tables, and project metadata interpolation.
|
|
7
|
+
- **Root file generation.** `selfdoc gen` can now produce root-level Markdown files (CLAUDE.md, README.md, etc.) from underscore-prefixed templates in docs/. Configure via `root_files` in selfdoc.json. Generated files are read-only (0o444) with an auto-generated header.
|
|
8
|
+
|
|
9
|
+
### Fixes
|
|
10
|
+
|
|
11
|
+
- **Underscore-prefixed templates excluded from lint.** `selfdoc check` now skips `_*.md` files in docs/, matching the existing build exclusion.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{"commits":["4662248eddc55e9a73f9df2138a03a602fbbb3c3","e0e4c7b9fab63d67264ea239b7f17e78b935e79b","fd56b8a2b3882aae1e7ac3d8e04b1b2a1da4e03a"],"user_facing":false}
|
|
2
|
+
{"commits":["1617fc181590d677f6d9dd1b2fee678b5518e725","d13d1ff2acb197d6d9faf2f04cc2de6331f7f965","b9c5ca6ec417e6025bbd4819880c2a9c3af855d0"],"user_facing":true,"description":"**Shared resolution pipeline.** Directive resolution centralized in a single pass, eliminating redundant walks and double resolution in `selfdoc check`.","type":"feature"}
|
|
3
|
+
{"commits":["87148a4d0a4186660d5a9786b98392b5aa0e5806","eac635d58ae294a7f849cbeaf5d032cdd9f00f88"],"user_facing":true,"description":"**`--dry-run` flag for `selfdoc check`.** Reports staleness without writing hashes or committing. Hash computation centralized in `staleness.py`.","type":"feature"}
|
|
4
|
+
{"commits":["437989e14299d999587a465f126e24bfa7a76294"],"user_facing":true,"description":"**Glossary opt-out.** Set `\"glossary\": false` in selfdoc.json to suppress auto-generated glossary page. **Feed entry limit.** Set `\"feed_max_entries\": N` to limit the Atom feed to the N most recent pages.","type":"feature"}
|
|
5
|
+
{"commits":["c44501f7b4dda858b9ddd1b5d32a865983fefdd7"],"user_facing":true,"description":"**Schema.json-based CLI extraction.** Replaced AST-based CLI structure extraction with reading `.strictcli/schema.json`. Richer data (flag choices, hidden flags, deprecated commands). Go projects get CLI documentation for the first time.","type":"feature"}
|
|
6
|
+
{"commits":["a3c908e7786cbc2fc64828817da30361ac2bbc79"],"user_facing":true,"description":"**strictcli dependency bumped to >=0.7.0** for `--dump-schema` support.","type":"breaking"}
|
|
7
|
+
{"commits":["83b5a988820d106ba75b894df092b99d0536340b","83f73d733b2792cb925258dba0a6ce9f2f9798dc","aadff49c75d6aa6116704e140704ed3891e8d1a4"],"user_facing":false}
|
|
8
|
+
{"commits":["4d72c32453e32e86376f0e4a7a955888899931d3","0a38988185a90b9cf4c712ed8080182baf73732f","b49e973064c01b0978d582065c01ca524dea6dd3"],"user_facing":false}
|
|
9
|
+
{"commits":["eacb35107670be3dd1c0495fe7368bc7392abff3"],"user_facing":false}
|
|
10
|
+
{"commits":["b54e86870482f24e3a78405c8c300f0c98f39aea"],"user_facing":false}
|
|
11
|
+
{"commits":["907abafbbb26de0936639cf29b2f44fbe9c437c9","2c17abf22cb3bd4e0e6179b8fed1faf34f153f70","93a1fe7d9ecdc0d3d59bc2db1617a1e674f57e3e"],"user_facing":false}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
## 0.7.0
|
|
2
|
+
|
|
3
|
+
### Breaking
|
|
4
|
+
|
|
5
|
+
- **strictcli dependency bumped to >=0.7.0** for `--dump-schema` support.
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- **Shared resolution pipeline.** Directive resolution centralized in a single pass, eliminating redundant walks and double resolution in `selfdoc check`.
|
|
10
|
+
- **`--dry-run` flag for `selfdoc check`.** Reports staleness without writing hashes or committing. Hash computation centralized in `staleness.py`.
|
|
11
|
+
- **Glossary opt-out.** Set `"glossary": false` in selfdoc.json to suppress auto-generated glossary page. **Feed entry limit.** Set `"feed_max_entries": N` to limit the Atom feed to the N most recent pages.
|
|
12
|
+
- **Schema.json-based CLI extraction.** Replaced AST-based CLI structure extraction with reading `.strictcli/schema.json`. Richer data (flag choices, hidden flags, deprecated commands). Go projects get CLI documentation for the first time.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.37.0
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"description": "8a4adace98aa9e1d61ec6b19dad2790d33bb9a7b6ccc435cfc9484ea22799bc8"
|
|
9
9
|
},
|
|
10
10
|
"cli-check.md": {
|
|
11
|
-
"content": "
|
|
11
|
+
"content": "9b089d4ee112451eb379de9dfa9fa3cb69f4cd696a3ab83c4192af6cb8d7c7da",
|
|
12
12
|
"description": "7ded848e80672d3121d55b1298869333328ceeb3bab2ed722fd190f4f36865dd"
|
|
13
13
|
},
|
|
14
14
|
"cli-deploy.md": {
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"description": "a06732d81dedac36b59c719e5e6ddb4f6e39b7250cb46cd8575ac4368d270663"
|
|
45
45
|
},
|
|
46
46
|
"directives.md": {
|
|
47
|
-
"content": "
|
|
47
|
+
"content": "bbdfe1785fcce6cbe2c2744f4ccad7582b0e8ccdb6e2cfc9ba1efa303b3eb27f",
|
|
48
48
|
"description": "17f2e9be72b960c7fb00f3b9bb0caa2d2323ff159d895d528150c2bd174934fb"
|
|
49
49
|
},
|
|
50
50
|
"gen-index.md": {
|
|
51
|
-
"content": "
|
|
51
|
+
"content": "3327e75cd368e8fc574d2671ae6647b65bb178e8f011e3283d8e5c28e2a11bc2",
|
|
52
52
|
"description": "bb3cd9d34f014c0674a9285c25ee14b5b4abc5cf941f0d83594c301405e8f3b6"
|
|
53
53
|
},
|
|
54
54
|
"getting-started.md": {
|
|
@@ -64,72 +64,84 @@
|
|
|
64
64
|
"description": "be4881babd1a98706a694be1393b205768d475c98a6f715d7ec504c1382e25de"
|
|
65
65
|
},
|
|
66
66
|
"selfdoc-build.md": {
|
|
67
|
-
"content": "
|
|
68
|
-
"description": "
|
|
67
|
+
"content": "a11d09883a9c002706f29b73af2d6c74cd579b55396bbc5709cd00b8c3e7fedb",
|
|
68
|
+
"description": "25ec3ea53419eb4126b309ad81d0c2e78e1347f29201a7f1574f6e38e90e4621"
|
|
69
69
|
},
|
|
70
70
|
"selfdoc-check.md": {
|
|
71
|
-
"content": "
|
|
72
|
-
"description": "
|
|
71
|
+
"content": "6ef700fd3e91926959ef099568ed293e17a4d4a686d26c7b857bb1819d3a3f0d",
|
|
72
|
+
"description": "a458cccd01e54fe1e2266244fbbc15683400273f7f951c31c1392bc998151d6d"
|
|
73
73
|
},
|
|
74
74
|
"selfdoc-cli.md": {
|
|
75
|
-
"content": "
|
|
76
|
-
"description": "
|
|
75
|
+
"content": "02f7bd2cb044c46158e0123825beacafef4c9a02fe9bfa3ab97df174da6d3fcc",
|
|
76
|
+
"description": "ee2400812c86e36d0188ddc98abf76fe402479955e087db0b33b5016e1f500ad"
|
|
77
77
|
},
|
|
78
78
|
"selfdoc-config.md": {
|
|
79
|
-
"content": "
|
|
80
|
-
"description": "
|
|
79
|
+
"content": "e6346ad8a4024c28d54073fa33287212152fe87e0363bc8d5951390d639368e4",
|
|
80
|
+
"description": "0de91696b5053d2d39f731671dc1cd70cc0b4c0150586abf30d3346ee0da952d"
|
|
81
81
|
},
|
|
82
82
|
"selfdoc-deploy.md": {
|
|
83
83
|
"content": "d753004c1be5186890f34d42342bd4d4d9a0d35d45dc48eb74bb9eadf1036fe3",
|
|
84
|
-
"description": "
|
|
84
|
+
"description": "93a17af98499afc17c0adb017c41e304783cc76f8f474b4656483f1d5ea3595a"
|
|
85
85
|
},
|
|
86
86
|
"selfdoc-directives.md": {
|
|
87
87
|
"content": "284db842f12b44acc1a7e8b0d043571a0c587b59e474a13858291beb389484c3",
|
|
88
|
-
"description": "
|
|
88
|
+
"description": "4349c5d3d01b37655615897c7e8cf33df5aad10bfe4d4a99f4bee95947406e2c"
|
|
89
|
+
},
|
|
90
|
+
"selfdoc-docs.md": {
|
|
91
|
+
"content": "6a28a5a84ef39dce108b51e334d801a3de3090bf542e935dd78fd22efce534e8",
|
|
92
|
+
"description": "e62e4b7f625c67bc856dc0a3332930e942bf9a184a88cadcec5a34cc3d4e7f50"
|
|
89
93
|
},
|
|
90
94
|
"selfdoc-extractors-go.md": {
|
|
91
95
|
"content": "614e2764a5fffe95125a4472336018bdc91f6509a87352eb7c8a5ef7f2e04469",
|
|
92
|
-
"description": "
|
|
96
|
+
"description": "765787f8ad1d5011e0cc2990a0ac939663194d85ed56279ee7d37ccc49141e4a"
|
|
93
97
|
},
|
|
94
98
|
"selfdoc-extractors-python.md": {
|
|
95
99
|
"content": "9171a5a26e52978d019369dea38d3b5aba843b3a99e8577e4a3b33de9a8a4782",
|
|
96
|
-
"description": "
|
|
100
|
+
"description": "eee365e917adb22ebe95fd8ed6322cf23316bc777e88d0b503618f4b199358ff"
|
|
97
101
|
},
|
|
98
102
|
"selfdoc-extractors-typescript.md": {
|
|
99
103
|
"content": "ed037150438ddcea03e17cb7d91d30dc0f957d2ee950decd914bf0f6b5da6cff",
|
|
100
|
-
"description": "
|
|
104
|
+
"description": "7b9cfae65be6a84e3612b5ccd5e4751053d1945f539b42050cd3d5031ee491a3"
|
|
101
105
|
},
|
|
102
106
|
"selfdoc-extractors.md": {
|
|
103
107
|
"content": "585b695cab232ab64f87ef0b28c8547612e34192dbca6079a0eed522871d8cd1",
|
|
104
|
-
"description": "
|
|
108
|
+
"description": "f5f7ee5341943072e3d458ed7f3e03bf6ea9479ef2410ee2dc07deadd32bfadb"
|
|
105
109
|
},
|
|
106
110
|
"selfdoc-gen.md": {
|
|
107
|
-
"content": "
|
|
108
|
-
"description": "
|
|
111
|
+
"content": "35d948386f50c635ad876d973cbde438540c2a813bcbc0357661a580f2514aa7",
|
|
112
|
+
"description": "ab944a7d47b5ef1e0bdcab2670bbd62d3e0bc902798ad1ca10bc3c06c6e78be9"
|
|
109
113
|
},
|
|
110
114
|
"selfdoc-gendata.md": {
|
|
111
115
|
"content": "54e9a0a6aee2b422ced3b860c872362c65d940dae28ba3d0b79c3117bc234b62",
|
|
112
|
-
"description": "
|
|
116
|
+
"description": "b808518c126f2f07a0b93986584b7fc20ae87cb76fc5f973b579c4066354a16d"
|
|
113
117
|
},
|
|
114
118
|
"selfdoc-html.md": {
|
|
115
|
-
"content": "
|
|
116
|
-
"description": "
|
|
119
|
+
"content": "3e2ffc99495e4af66ca02b7799c10bd7439fe8c869428c432a2fb808dca5d4c1",
|
|
120
|
+
"description": "e9c373874ce0bf9eaa4716a7b9a6f1e2ee94014b24f14c95df960e94cd780c59"
|
|
121
|
+
},
|
|
122
|
+
"selfdoc-icons.md": {
|
|
123
|
+
"content": "6d3a4944698f6bef54f3eccc01b221f0f09799a30006d9765dec7284dff72c46",
|
|
124
|
+
"description": "abfb38a84d98475211dd86e7621b5dd329d2189f88dcafa085a3d8299bd0da97"
|
|
117
125
|
},
|
|
118
126
|
"selfdoc-resolver.md": {
|
|
119
127
|
"content": "4158312182ee977769882e9a4552ac2613f31bfa0dadb71be8bed0848861063d",
|
|
120
|
-
"description": "
|
|
128
|
+
"description": "273c26abce985442107be1fb321e5d51068124691b7631754cf0267af4c03adf"
|
|
121
129
|
},
|
|
122
130
|
"selfdoc-strictcli_support.md": {
|
|
123
|
-
"content": "
|
|
131
|
+
"content": "b3bc7558fb379a83785e682d3696b79d93887b505e22b1986823d6afda24f3e1",
|
|
124
132
|
"description": "ba21e34d05da48eae381df63dd5034745cbc1d5ce2d3cccf0b7a509cc89d4196"
|
|
125
133
|
},
|
|
126
134
|
"selfdoc-tokenizer.md": {
|
|
127
135
|
"content": "46c221bfa3be2e7140ce503c11beda01355a8dccce26366ed612f476ef52371e",
|
|
128
|
-
"description": "
|
|
136
|
+
"description": "d89fda0bd6354be7a60574c8cd7fa2433bcbaf315c8f165e3e06f904e9949589"
|
|
137
|
+
},
|
|
138
|
+
"selfdoc-utils.md": {
|
|
139
|
+
"content": "9279dc668ca705cc1a6c7bbcb7b8c356eac318b3a3d3bfcf63bca0b25921b067",
|
|
140
|
+
"description": "af261d72c93a904f34d57a84f012c8ab805532e62c581aa0361873265cf7680e"
|
|
129
141
|
},
|
|
130
142
|
"selfdoc.md": {
|
|
131
143
|
"content": "740137aa79607266cf4710eda34a20f09e042eb59aa74d888e1ce1c21e49b8d4",
|
|
132
|
-
"description": "
|
|
144
|
+
"description": "878a8caa74c228e469b5a7ec4f769308f83ba4b2b21b568fcb6c38756d17b8e1"
|
|
133
145
|
},
|
|
134
146
|
"theming.md": {
|
|
135
147
|
"content": "bb327170ca977b166a27223ee5ab21c8049fafc85f34519aeef10d1aac7e1506",
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "selfdoc",
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"help": "Code-aware static site generator with directive-based content extraction",
|
|
5
|
+
"env_prefix": null,
|
|
6
|
+
"config": false,
|
|
7
|
+
"global_flags": [],
|
|
8
|
+
"commands": {
|
|
9
|
+
"init": {
|
|
10
|
+
"name": "init",
|
|
11
|
+
"help": "Initialize selfdoc in the current project",
|
|
12
|
+
"flags": [
|
|
13
|
+
{
|
|
14
|
+
"name": "no-commit",
|
|
15
|
+
"type": "bool",
|
|
16
|
+
"help": "Skip auto-committing changed files",
|
|
17
|
+
"short": null,
|
|
18
|
+
"default": false,
|
|
19
|
+
"env": null,
|
|
20
|
+
"choices": null,
|
|
21
|
+
"repeatable": false,
|
|
22
|
+
"negatable": true,
|
|
23
|
+
"hidden": false
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"args": [],
|
|
27
|
+
"passthrough": false
|
|
28
|
+
},
|
|
29
|
+
"build": {
|
|
30
|
+
"name": "build",
|
|
31
|
+
"help": "Build the documentation site",
|
|
32
|
+
"flags": [
|
|
33
|
+
{
|
|
34
|
+
"name": "no-commit",
|
|
35
|
+
"type": "bool",
|
|
36
|
+
"help": "Skip auto-committing changed files",
|
|
37
|
+
"short": null,
|
|
38
|
+
"default": false,
|
|
39
|
+
"env": null,
|
|
40
|
+
"choices": null,
|
|
41
|
+
"repeatable": false,
|
|
42
|
+
"negatable": true,
|
|
43
|
+
"hidden": false
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"args": [],
|
|
47
|
+
"passthrough": false
|
|
48
|
+
},
|
|
49
|
+
"serve": {
|
|
50
|
+
"name": "serve",
|
|
51
|
+
"help": "Serve the documentation site locally",
|
|
52
|
+
"flags": [
|
|
53
|
+
{
|
|
54
|
+
"name": "port",
|
|
55
|
+
"type": "int",
|
|
56
|
+
"help": "Port to serve on (default: 8000)",
|
|
57
|
+
"short": "p",
|
|
58
|
+
"default": 8000,
|
|
59
|
+
"env": null,
|
|
60
|
+
"choices": null,
|
|
61
|
+
"repeatable": false,
|
|
62
|
+
"negatable": null,
|
|
63
|
+
"hidden": false
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"args": [],
|
|
67
|
+
"passthrough": false
|
|
68
|
+
},
|
|
69
|
+
"deploy": {
|
|
70
|
+
"name": "deploy",
|
|
71
|
+
"help": "Deploy the documentation site",
|
|
72
|
+
"flags": [],
|
|
73
|
+
"args": [],
|
|
74
|
+
"passthrough": false
|
|
75
|
+
},
|
|
76
|
+
"check": {
|
|
77
|
+
"name": "check",
|
|
78
|
+
"help": "Check documentation coverage and consistency",
|
|
79
|
+
"flags": [
|
|
80
|
+
{
|
|
81
|
+
"name": "ignore",
|
|
82
|
+
"type": "str",
|
|
83
|
+
"help": "Comma-separated SEO codes to suppress (e.g., SEO007,SEO008)",
|
|
84
|
+
"short": null,
|
|
85
|
+
"default": "",
|
|
86
|
+
"env": null,
|
|
87
|
+
"choices": null,
|
|
88
|
+
"repeatable": false,
|
|
89
|
+
"negatable": null,
|
|
90
|
+
"hidden": false
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "format",
|
|
94
|
+
"type": "str",
|
|
95
|
+
"help": "Output format (default: text)",
|
|
96
|
+
"short": null,
|
|
97
|
+
"default": "text",
|
|
98
|
+
"env": null,
|
|
99
|
+
"choices": [
|
|
100
|
+
"text",
|
|
101
|
+
"json"
|
|
102
|
+
],
|
|
103
|
+
"repeatable": false,
|
|
104
|
+
"negatable": null,
|
|
105
|
+
"hidden": false
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "no-commit",
|
|
109
|
+
"type": "bool",
|
|
110
|
+
"help": "Skip auto-committing changed files",
|
|
111
|
+
"short": null,
|
|
112
|
+
"default": false,
|
|
113
|
+
"env": null,
|
|
114
|
+
"choices": null,
|
|
115
|
+
"repeatable": false,
|
|
116
|
+
"negatable": true,
|
|
117
|
+
"hidden": false
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"name": "dry-run",
|
|
121
|
+
"type": "bool",
|
|
122
|
+
"help": "Report staleness without writing hashes",
|
|
123
|
+
"short": null,
|
|
124
|
+
"default": false,
|
|
125
|
+
"env": null,
|
|
126
|
+
"choices": null,
|
|
127
|
+
"repeatable": false,
|
|
128
|
+
"negatable": true,
|
|
129
|
+
"hidden": false
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"args": [],
|
|
133
|
+
"passthrough": false
|
|
134
|
+
},
|
|
135
|
+
"gen": {
|
|
136
|
+
"name": "gen",
|
|
137
|
+
"help": "Auto-generate documentation pages from project structure",
|
|
138
|
+
"flags": [
|
|
139
|
+
{
|
|
140
|
+
"name": "no-commit",
|
|
141
|
+
"type": "bool",
|
|
142
|
+
"help": "Skip auto-committing changed files",
|
|
143
|
+
"short": null,
|
|
144
|
+
"default": false,
|
|
145
|
+
"env": null,
|
|
146
|
+
"choices": null,
|
|
147
|
+
"repeatable": false,
|
|
148
|
+
"negatable": true,
|
|
149
|
+
"hidden": false
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"args": [],
|
|
153
|
+
"passthrough": false
|
|
154
|
+
},
|
|
155
|
+
"gen-data": {
|
|
156
|
+
"name": "gen-data",
|
|
157
|
+
"help": "Generate data files by running sandboxed scripts",
|
|
158
|
+
"flags": [
|
|
159
|
+
{
|
|
160
|
+
"name": "no-commit",
|
|
161
|
+
"type": "bool",
|
|
162
|
+
"help": "Skip auto-committing changed files",
|
|
163
|
+
"short": null,
|
|
164
|
+
"default": false,
|
|
165
|
+
"env": null,
|
|
166
|
+
"choices": null,
|
|
167
|
+
"repeatable": false,
|
|
168
|
+
"negatable": true,
|
|
169
|
+
"hidden": false
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"args": [],
|
|
173
|
+
"passthrough": false
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"groups": {},
|
|
177
|
+
"deprecated": {}
|
|
178
|
+
}
|
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
## 0.7.0
|
|
6
|
+
|
|
7
|
+
### Breaking
|
|
8
|
+
|
|
9
|
+
- **strictcli dependency bumped to >=0.7.0** for `--dump-schema` support.
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
- **Shared resolution pipeline.** Directive resolution centralized in a single pass, eliminating redundant walks and double resolution in `selfdoc check`.
|
|
14
|
+
- **`--dry-run` flag for `selfdoc check`.** Reports staleness without writing hashes or committing. Hash computation centralized in `staleness.py`.
|
|
15
|
+
- **Glossary opt-out.** Set `"glossary": false` in selfdoc.json to suppress auto-generated glossary page. **Feed entry limit.** Set `"feed_max_entries": N` to limit the Atom feed to the N most recent pages.
|
|
16
|
+
- **Schema.json-based CLI extraction.** Replaced AST-based CLI structure extraction with reading `.strictcli/schema.json`. Richer data (flag choices, hidden flags, deprecated commands). Go projects get CLI documentation for the first time.
|
|
17
|
+
|
|
18
|
+
## 0.6.0
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- **Declarative config schema.** Config validation is now driven by a schema (FieldType enum + FieldSpec dataclass) instead of procedural code. Unknown top-level keys in selfdoc.json are now rejected.
|
|
23
|
+
- **Five new directives.** `list-modules`, `table-commands`, `table-directives`, `table-config-schema`, and `var` for generating module lists, CLI command tables, directive catalogs, config reference tables, and project metadata interpolation.
|
|
24
|
+
- **Root file generation.** `selfdoc gen` can now produce root-level Markdown files (CLAUDE.md, README.md, etc.) from underscore-prefixed templates in docs/. Configure via `root_files` in selfdoc.json. Generated files are read-only (0o444) with an auto-generated header.
|
|
25
|
+
|
|
26
|
+
### Fixes
|
|
27
|
+
|
|
28
|
+
- **Underscore-prefixed templates excluded from lint.** `selfdoc check` now skips `_*.md` files in docs/, matching the existing build exclusion.
|
|
29
|
+
|
|
5
30
|
## 0.5.2
|
|
6
31
|
|
|
7
32
|
### Fixes
|
selfdoc-0.7.0/CLAUDE.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<!-- Auto-generated by selfdoc from docs/_CLAUDE.md — do not edit -->
|
|
2
|
+
|
|
3
|
+
# selfdocumenting
|
|
4
|
+
|
|
5
|
+
Code-aware documentation site generator. Builds full static sites from Markdown templates and source code, with directive-based content extraction, auto-generated API/CLI reference pages, theming, search, SEO, and deploy to Cloudflare Pages or GitHub Pages. Supports Python, Go, and TypeScript/JavaScript.
|
|
6
|
+
|
|
7
|
+
## Conventions
|
|
8
|
+
|
|
9
|
+
- Pure Python, one runtime dependency (`strictcli>=0.2.0`)
|
|
10
|
+
- Build system: hatchling
|
|
11
|
+
- Development: `uv` for all Python tooling (`uv sync`, `uv run`, `uv add`)
|
|
12
|
+
- Local development install: `uv pip install -e .`
|
|
13
|
+
- npm package is a thin Node wrapper (`bin/cli.js`) that delegates to `python3 -m selfdoc`
|
|
14
|
+
- File writes to shared state use atomic write (write to tmp, then `os.replace`)
|
|
15
|
+
- External calls (subprocess, network) must have timeouts
|
|
16
|
+
|
|
17
|
+
## Release workflow
|
|
18
|
+
|
|
19
|
+
This project uses [rlsbl](https://github.com/smm-h/rlsbl) for release orchestration.
|
|
20
|
+
|
|
21
|
+
- Update CHANGELOG.md with a `## X.Y.Z` entry describing changes
|
|
22
|
+
- Run `rlsbl release [patch|minor|major]` to bump version and create a GitHub Release
|
|
23
|
+
- CI handles publishing automatically via the publish workflow
|
|
24
|
+
- Never publish manually -- always use `rlsbl release`
|
|
25
|
+
- Requires NPM_TOKEN secret on GitHub (Settings > Secrets > Actions)
|
|
26
|
+
- Use `rlsbl release --dry-run` to preview a release without making changes
|
|
27
|
+
|
|
28
|
+
## Testing
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
uv run pytest
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Tests live in `tests/` and cover config loading, directive parsing, the build pipeline, and language-specific extractors (Python, Go).
|
|
35
|
+
|
|
36
|
+
## Architecture
|
|
37
|
+
|
|
38
|
+
- **selfdoc** (`selfdoc/__init__.py`): selfdoc: Code-aware static site generator with directive-based content extraction.
|
|
39
|
+
- **selfdoc.__main__** (`selfdoc/__main__.py`)
|
|
40
|
+
- **selfdoc.build** (`selfdoc/build.py`): Build pipeline for selfdoc: template scanning, directive resolution, HTML output.
|
|
41
|
+
- **selfdoc.catalog** (`selfdoc/catalog.py`): Directive catalog: defines all built-in directive names and their status.
|
|
42
|
+
- **selfdoc.check** (`selfdoc/check.py`): Check command -- validate directives and report documentation coverage.
|
|
43
|
+
- **selfdoc.cli** (`selfdoc/cli.py`): CLI interface for selfdoc.
|
|
44
|
+
- **selfdoc.config** (`selfdoc/config.py`): Config loader for selfdoc.json.
|
|
45
|
+
- **selfdoc.content** (`selfdoc/content.py`): Content directives -- directives that transform body content into styled HTML.
|
|
46
|
+
- **selfdoc.deploy** (`selfdoc/deploy.py`): Deploy providers for selfdoc documentation sites.
|
|
47
|
+
- **selfdoc.directives** (`selfdoc/directives.py`): Directive parser for selfdoc's structured marker syntax.
|
|
48
|
+
- **selfdoc.docs** (`selfdoc/docs.py`): Shared resolution pipeline for docs/ templates.
|
|
49
|
+
- **selfdoc.extractors** (`selfdoc/extractors/__init__.py`): Language extractor registry and auto-detection.
|
|
50
|
+
- **selfdoc.extractors.base** (`selfdoc/extractors/base.py`): Shared utilities for language extractors.
|
|
51
|
+
- **selfdoc.extractors.go** (`selfdoc/extractors/go.py`): Go source extractor -- resolves directives by extracting from .go files.
|
|
52
|
+
- **selfdoc.extractors.protocol** (`selfdoc/extractors/protocol.py`): Language extractor protocol -- defines the interface all extractors must implement.
|
|
53
|
+
- **selfdoc.extractors.python** (`selfdoc/extractors/python.py`): Python source extractor -- resolves directives by extracting from .py files.
|
|
54
|
+
- **selfdoc.extractors.typescript** (`selfdoc/extractors/typescript.py`): TypeScript/JavaScript source extractor -- resolves directives by extracting from .ts/.js files.
|
|
55
|
+
- **selfdoc.gen** (`selfdoc/gen.py`): Auto-generate documentation pages from project structure.
|
|
56
|
+
- **selfdoc.gendata** (`selfdoc/gendata.py`): Generate data files by running sandboxed scripts via bubblewrap (bwrap).
|
|
57
|
+
- **selfdoc.git** (`selfdoc/git.py`): Auto-commit helper for selfdoc commands.
|
|
58
|
+
- **selfdoc.html** (`selfdoc/html.py`): Convert Markdown files to static HTML with a built-in minimal converter.
|
|
59
|
+
- **selfdoc.icons** (`selfdoc/icons.py`): Language icons for code blocks.
|
|
60
|
+
- **selfdoc.resolver** (`selfdoc/resolver.py`): Resolver factory -- dispatches directives to language-specific extractors.
|
|
61
|
+
- **selfdoc.staleness** (`selfdoc/staleness.py`): Description staleness detection via content hashing.
|
|
62
|
+
- **selfdoc.strictcli_support** (`selfdoc/strictcli_support.py`): First-class support for strictcli-based projects.
|
|
63
|
+
- **selfdoc.themes** (`selfdoc/themes/__init__.py`): Theme registry for selfdoc.
|
|
64
|
+
- **selfdoc.tokenizer** (`selfdoc/tokenizer.py`): Standalone Markdown block tokenizer.
|
|
65
|
+
- **selfdoc.utils** (`selfdoc/utils.py`): Shared utility functions for selfdoc.
|