DEVX-118: feat: enrich lint_docs.py with single H1, max depth, line length, code block lang, orphan checks

- Add check_single_h1: each markdown file should have at most one H1
- Add check_max_heading_depth: headings should not exceed H4 (configurable)
- Add check_line_length: warn on lines >120 chars (non-blocking — badge URLs)
- Add check_code_block_languages: fenced code blocks must specify a language
- Add check_orphan_docs: warn on docs not linked from index.md or mapping.json
- Fix all code blocks in docs to specify language (text for plain blocks)
- Fix duplicate H1 in .vale/styles/devx/README.md
- Add 18 new tests for full coverage of new checks

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
emil
2026-07-06 10:15:54 +02:00
co-authored by Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent bb700ab969
commit fb342e7b9d
9 changed files with 342 additions and 15 deletions
+5 -5
View File
@@ -6,7 +6,7 @@ from scripts outside the package.
## Package structure
```
```text
src/devx/
├── __init__.py # Version (single source of truth, read by setuptools)
├── cli.py # Click-based CLI entry point (devx command)
@@ -439,7 +439,7 @@ v2 failures. Supports loading custom platforms from a JSON file.
### PR lifecycle
```
```text
Developer creates Vikunja task (DEVX-N)
│
▼
@@ -475,7 +475,7 @@ CI workflow (ci.yml) triggers:
### Post-merge flow
```
```text
Push to master (squash-merge commit: "DEVX-N <conventional commit>")
│
▼
@@ -519,7 +519,7 @@ Post-merge workflow (post-merge.yml) triggers:
### Publish flow
```
```text
Tag push (vX.Y.Z) triggers publish workflow (publish.yml):
│
▼
@@ -536,7 +536,7 @@ Tag push (vX.Y.Z) triggers publish workflow (publish.yml):
### Badge generation flow
```
```text
push_badges.py:
│
├── fetch_latest_master() → git fetch + reset --hard origin/master
+2 -2
View File
@@ -6,7 +6,7 @@ tag-triggered publishing.
## Workflow overview
```
```text
PR opened/synchronized ──► CI (ci.yml)
│ ├── quality
│ ├── detect-changes
@@ -143,7 +143,7 @@ updates.
### Job dependency graph
```
```text
detect-type ──┬── validate-commit-msg (skip if release commit)
├── release (skip if release commit)
│ │