@@ -17,7 +17,7 @@ default:
1717 cd benchmarks && make
1818
1919.PHONY : all
20- all :
20+ all : docs-validate
2121 cd stefgen && make all
2222 cd go/pkg && make all
2323 cd go/grpc && make all
@@ -64,3 +64,66 @@ MODULES := go/pkg go/grpc go/otel go/pdata
6464releasever : verifyver
6565 echo Tagging version $(VERSION )
6666 $(foreach gomod,$(MODULES ) ,$(call exec-command,git tag $(gomod ) /$(VERSION ) && git push origin $(gomod ) /$(VERSION ) ) )
67+
68+ # Docs validation targets
69+ .PHONY : docs-validate docs-validate-html docs-validate-css docs-check-links docs-install-deps
70+
71+ # Validate all docs (HTML, CSS, and links)
72+ docs-validate : docs-validate-html docs-validate-css docs-check-links
73+ @echo " ✅ All docs validation checks passed!"
74+
75+ # Validate HTML files in docs directory
76+ docs-validate-html :
77+ @echo " 🔍 Validating HTML files in docs..."
78+ @cd docs && for file in * .html; do \
79+ if [ -f " $$ file" ] && [ " $$ file" != " benchmarks.html" ]; then \
80+ echo " Validating $$ file..." ; \
81+ ../node_modules/.bin/html-validate " $$ file" || (echo " ❌ HTML validation failed for $$ file" && exit 1); \
82+ elif [ -f " $$ file" ] && [ " $$ file" = " benchmarks.html" ]; then \
83+ echo " Skipping validation for $$ file (excluded)" ; \
84+ fi ; \
85+ done
86+ @echo " ✅ HTML validation complete"
87+
88+ # Validate CSS files in docs directory
89+ docs-validate-css :
90+ @echo " 🔍 Validating CSS files in docs..."
91+ @cd docs && for file in * .css; do \
92+ if [ -f " $$ file" ]; then \
93+ echo " Validating $$ file..." ; \
94+ ../node_modules/.bin/stylelint " $$ file" --config-basedir .. || (echo " ❌ CSS validation failed for $$ file" && exit 1); \
95+ fi ; \
96+ done
97+ @echo " ✅ CSS validation complete"
98+
99+ # Check links in HTML files
100+ docs-check-links :
101+ @for file in docs/* .html; do \
102+ if [ -f " $$ file" ]; then \
103+ echo " Checking links in $$ (basename $$ file)..." ; \
104+ ./node_modules/.bin/markdown-link-check " $$ file" --quiet || true ; \
105+ echo " ✅ Link check completed for $$ (basename $$ file)" ; \
106+ fi ; \
107+ done
108+ @echo " ✅ Link checking complete"
109+
110+ # Install npm-based validation dependencies for docs
111+ docs-install-deps :
112+ @echo " 📦 Installing npm-based validation dependencies at top level..."
113+ @if ! command -v npm > /dev/null 2>&1 ; then \
114+ echo " ❌ npm not found. Please install Node.js and npm first." ; \
115+ echo " Visit: https://nodejs.org/" ; \
116+ exit 1; \
117+ fi
118+ @if [ ! -f package.json ]; then \
119+ echo " Creating package.json..." ; \
120+ npm init -y; \
121+ fi
122+ @echo " Installing HTML validation tools..."
123+ @npm install html-validate
124+ @echo " Installing CSS validation tools..."
125+ @npm install stylelint stylelint-config-standard
126+ @echo " Installing link checking tools..."
127+ @npm install markdown-link-check
128+ @echo " ✅ All docs dependencies installed successfully!"
129+ @echo " Tools installed in ./node_modules/.bin/"
0 commit comments