blob: e18c08dcc337e241ed7350290f617829845b8c76 (
plain)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
help: # Show this help menu
@printf "\n%s\n\n" "$$(grep -E '^[a-zA-Z0-9 -]+:.*#' Makefile | column -s ':#' -t)"
watch: # Watch and rebuild everything
while true; do git ls-files -cdmo --exclude-standard --exclude tests | entr -d -s 'make build'; done
monitor: # Monitor for files changes
inotifywait --monitor --recursive --event modify .
server: # Start server
caddy file-server --listen :9294 --root public
build: # Build everything
make build-config
make build-js
make build-site
build-sub: # Build everything into substitute directory
make build
mkdir public/m
mv public/* public/m || true
build-config: # Build configuration files
yj -yj -i < config.yaml > config.json
yj -yt -i < config.yaml > config.toml
build-js: # Build js bundle
deno run --allow-all static/js/index-bundle.ts
build-site: # Build site
rm -rf public
hugo --logLevel debug --templateMetrics --templateMetricsHints
hugo --logLevel debug --templateMetrics --templateMetricsHints
rm -f .hugo_build.lock
build-icons: # Build icons
rm -rf static/icons
mkdir -p static/icons/feather static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/LICENSE --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/alert-circle.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/arrow-down-circle.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/arrow-left.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/arrow-right.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/arrow-up.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/at-sign.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/calendar.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/clock.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/edit.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/external-link.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/eye-off.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/eye.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/file-text.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/globe.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/bookmark.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/link.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/map-pin.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/refresh-cw.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/search.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/feathericons/feather/master/icons/trash-2.svg --output-dir static/icons/feather
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/LICENSE --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/archive.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/book-2.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/circle.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/clock.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/code.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/git-fork.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/home.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/notes.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/pinned.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/robot.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/rss.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/settings.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/square-letter-m.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/tag.svg --output-dir static/icons/tabler
curl --silent --remote-name https://raw.githubusercontent.com/tabler/tabler-icons/master/icons/outline/users.svg --output-dir static/icons/tabler
for icon in static/icons/*/*.svg; do \
xmlstarlet c14n --without-comments $$icon | xmllint --output $$icon --pretty 2 -; \
sed --in-place '1d' $$icon; \
done
git add -f static/icons
test: # Test everything
make test-html
make test-css
make test-xsl
make test-xml
make test-rss
make test-jsonfeed
test-html: # Test HTML
vnu \
--html \
--errors-only \
public/index.html \
public/default/index.html
test-html-indices: # Test HTML indices
find public/ -type f -name "index.html" -exec vnu --errors-only {} \;
test-css: # Test CSS
vnu \
--css \
assets/css/default.css \
assets/css/default-fast.css \
assets/css/default-simple.css \
assets/css/default-syntax.css
test-xsl: # Test XSL
xsltproc public/rss.xsl
xsltproc public/sitemap.xsl
test-xml: # Test XML
xmllint --noout \
public/rss.xml \
public/sitemap.xml
test-rss: # Test RSS
xmllint --noout --relaxng assets/schemas/rss-v2.0.rng public/rss.xml
# xmllint --noout --schema assets/schemas/rss-v2.0.xsd public/rss.xml
test-sitemap: # Test sitemap
xmllint --noout --schema assets/schemas/sitemap-v0.9.xsd public/sitemap.xml
# xmllint --noout --schema assets/schemas/sitemapindex-v0.9.xsd public/sitemap.xml
test-jsonfeed: # Test JSONFeed
check-jsonschema --schemafile assets/schemas/jsonfeed-v1.1.json public/index.json
test-end: # Test front end
deno run --allow-all tests/index.ts
test-bed: # Test bed run
deno run --allow-all tests/test.ts
test-crawl: # Test link parity
deno run --allow-all tests/crawl.ts
clean: # Clean everything
make clean-tests
clean-tests: # Clean up tests
for file in /tmp/????????; do { [ -d "$$file/puppeteer_dev_chrome_profile-" ] && rm --recursive --force --verbose "$$file"; } || true; done
|