-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
113 lines (105 loc) · 4.65 KB
/
Makefile
File metadata and controls
113 lines (105 loc) · 4.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
.PHONY: preview clean generate-index check-links test
DOCS := $(shell find . -name '*.md' -not -path './preview/*')
HTML := $(patsubst %.md,preview/%.html,$(DOCS))
preview: generate-index $(HTML) copy-assets
@echo "✓ All HTML previews generated in preview/"
@xdg-open "file://$(shell pwd)/preview/docs/README.html" 2>/dev/null || open "file://$(shell pwd)/preview/docs/README.html" 2>/dev/null || echo "Please open preview/docs/README.html manually"
generate-index:
@echo "Generating docs/README.md..."
@echo "# Documentation Index" > docs/README.md
@echo "" >> docs/README.md
@echo "**Generated:** $$(date '+%Y-%m-%d %H:%M:%S')" >> docs/README.md
@echo "" >> docs/README.md
@echo "## Theorems (Master References)" >> docs/README.md
@echo "" >> docs/README.md
@for file in docs/theorems/*/README.md; do \
if [ -f "$$file" ]; then \
TITLE=$$(grep -m1 '^# ' "$$file" 2>/dev/null | sed 's/^# //' || echo "$$(basename $$(dirname $$file))"); \
RELPATH=$$(echo "$$file" | sed 's|^docs/||'); \
echo "- [$$TITLE]($$RELPATH)" >> docs/README.md; \
fi; \
done
@echo "" >> docs/README.md
@echo "## Complete Proofs" >> docs/README.md
@echo "" >> docs/README.md
@for file in docs/proofs/*.md; do \
if [ -f "$$file" ]; then \
TITLE=$$(grep -m1 '^# ' "$$file" 2>/dev/null | sed 's/^# //' || echo "$$(basename $$file .md)"); \
RELPATH=$$(echo "$$file" | sed 's|^docs/||'); \
echo "- [$$TITLE]($$RELPATH)" >> docs/README.md; \
fi; \
done
@echo "" >> docs/README.md
@echo "## Reference Documentation" >> docs/README.md
@echo "" >> docs/README.md
@for file in docs/reference/*.md; do \
if [ -f "$$file" ]; then \
TITLE=$$(grep -m1 '^# ' "$$file" 2>/dev/null | sed 's/^# //' || echo "$$(basename $$file .md)"); \
RELPATH=$$(echo "$$file" | sed 's|^docs/||'); \
echo "- [$$TITLE]($$RELPATH)" >> docs/README.md; \
fi; \
done
@echo "" >> docs/README.md
@echo "## Learning Materials" >> docs/README.md
@echo "" >> docs/README.md
@for file in docs/learning/*.md; do \
if [ -f "$$file" ]; then \
TITLE=$$(grep -m1 '^# ' "$$file" 2>/dev/null | sed 's/^# //' || echo "$$(basename $$file .md)"); \
RELPATH=$$(echo "$$file" | sed 's|^docs/||'); \
echo "- [$$TITLE]($$RELPATH)" >> docs/README.md; \
fi; \
done
@echo "" >> docs/README.md
@echo "## Recent Sessions (Last 10)" >> docs/README.md
@echo "" >> docs/README.md
@for file in $$(find docs/sessions -name '*.md' -type f | while read f; do \
if git ls-files --error-unmatch "$$f" >/dev/null 2>&1; then \
COMMIT_TIME=$$(git log -1 --format=%ct "$$f" 2>/dev/null || echo 0); \
else \
COMMIT_TIME=$$(stat -c %Y "$$f" 2>/dev/null || stat -f %m "$$f" 2>/dev/null || echo 0); \
fi; \
echo "$$COMMIT_TIME $$f"; \
done | sort -rn | head -10 | cut -d' ' -f2-); do \
TITLE=$$(grep -m1 '^# ' "$$file" 2>/dev/null | sed 's/^# //' || echo "$$(basename $$file .md)"); \
COMMIT_DATE=$$(git log -1 --format=%ci "$$file" 2>/dev/null | cut -d' ' -f1 || echo "unknown"); \
RELPATH=$$(echo "$$file" | sed 's|^docs/||'); \
echo "- [$$TITLE]($$RELPATH) *($$COMMIT_DATE)*" >> docs/README.md; \
done
@echo "" >> docs/README.md
@echo "## Navigation" >> docs/README.md
@echo "" >> docs/README.md
@echo "- [STATUS.md](STATUS.md) - Master status tracker" >> docs/README.md
@echo "- [reference/](reference/) - Mathematical foundations and design rationale" >> docs/README.md
@echo "- [learning/](learning/) - Historical context and tutorials" >> docs/README.md
@echo "- [proofs/](proofs/) - Complete standalone proofs" >> docs/README.md
@echo "- [drafts/](drafts/) - LaTeX papers and longer-form documents" >> docs/README.md
@echo "- [sessions/](sessions/) - Discovery narratives by date" >> docs/README.md
@echo "" >> docs/README.md
@echo "---" >> docs/README.md
@echo "*Auto-generated by \`make preview\`*" >> docs/README.md
@echo "✓ Generated docs/README.md"
preview/%.html: %.md
@mkdir -p $(dir $@)
@sed 's/\.md)/\.html)/g' $< | pandoc -f markdown -o $@ --mathjax --standalone --metadata title="$(notdir $(basename $<))"
@echo "✓ Generated $@"
.PHONY: copy-assets
copy-assets:
@mkdir -p preview/reports
@if [ -d reports ] && [ -n "$$(ls -A reports/*.svg 2>/dev/null)" ]; then \
cp reports/*.svg preview/reports/ 2>/dev/null || true; \
echo "✓ Copied SVG assets to preview/reports/"; \
fi
@for figdir in $$(find docs -type d -name 'figures'); do \
DESTDIR="preview/$$figdir"; \
mkdir -p "$$DESTDIR"; \
cp "$$figdir"/* "$$DESTDIR/" 2>/dev/null || true; \
done
@echo "✓ Copied figures from session directories"
check-links:
@echo "🔗 Checking documentation links..."
@python3 scripts/check_doc_links.py
test:
wolframscript -file Tests/RunAllTests.wl
clean:
rm -rf preview/
@echo "✓ Cleaned preview files"