mirror of
https://git.sr.ht/~seirdy/seirdy.one
synced 2024-12-24 01:42:10 +00:00
IndieWeb: gather WebWentions with static-webmention
Update the Makefile to download the old version of the site, run static-webmentions, and collect the WebMentions to send in a json file saved as a build artifact. Don't send these automatically; just save them for now. Until I work out a solution to save sent WebMentions and avoid sending duplicates, I'll keep the sending of WebMentions manual. For some reason this caused webhint's axe/aria test to error out with a "Protocol error" so I disabled it. Axe tests are covered by Lighthouse anyway.
This commit is contained in:
parent
bd094a6608
commit
4d7625227b
7 changed files with 51 additions and 11 deletions
|
@ -6,6 +6,7 @@ packages:
|
|||
- brotli # for max compression w/ brotli_static, decompressing binaries
|
||||
- git # for Hugo's gitInfo
|
||||
- make
|
||||
- jq
|
||||
- npm # for testing with lighthouse and webhint
|
||||
- chromium # for testing with lighthouse and webhint
|
||||
environment:
|
||||
|
@ -33,5 +34,7 @@ tasks:
|
|||
make DOMAIN=staging.seirdy.one ZOPFLI_ITERATIONS=50 test-staging
|
||||
tar czf ~/lighthouse-reports.tar.gz lighthouse-reports
|
||||
make clean deploy
|
||||
cp mentions.json ~/mentions.json
|
||||
artifacts:
|
||||
- lighthouse-reports.tar.gz
|
||||
- mentions.json
|
||||
|
|
10
.gitignore
vendored
10
.gitignore
vendored
|
@ -1,9 +1,11 @@
|
|||
public/
|
||||
public_*/
|
||||
hint-report/
|
||||
.hintrc-*
|
||||
*.report.html
|
||||
*.report.json
|
||||
.hintrc-*
|
||||
.lighthouseci/*
|
||||
hint-report/
|
||||
lighthouse-reports/*
|
||||
mentions.json
|
||||
node_modules/*
|
||||
old/
|
||||
public/
|
||||
public_*/
|
||||
|
|
1
.hintrc
1
.hintrc
|
@ -14,6 +14,7 @@
|
|||
],
|
||||
"hints": {
|
||||
"apple-touch-icons": "off",
|
||||
"axe/aria": "off",
|
||||
"axe/other": "error",
|
||||
"compat-api/css": [
|
||||
"error",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.well-known/
|
||||
_*
|
||||
misc/
|
||||
music.txt
|
||||
music.txt.gz
|
||||
.well-known
|
||||
_*
|
||||
webmentions
|
||||
webmentions/
|
||||
|
|
17
Makefile
17
Makefile
|
@ -28,7 +28,7 @@ hugo: clean
|
|||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(OUTPUT_DIR) .lighthouseci lighthouse-reports
|
||||
rm -rf $(OUTPUT_DIR) .lighthouseci lighthouse-reports mentions.json
|
||||
|
||||
.PHONY: lint-css
|
||||
lint-css:
|
||||
|
@ -72,14 +72,23 @@ ifndef NO_STATIC
|
|||
| xargs brotli -q 11
|
||||
endif
|
||||
|
||||
# save webmentions to a file, don't send yet
|
||||
mentions.json: hugo
|
||||
# gather old version of the site
|
||||
# rsync $(RSYNCFLAGS) --exclude '*.gz' --exclude '*.br' --exclude '*.png' --exclude-from .rsyncignore $(WWW_RSYNC_DEST)/ old
|
||||
static-webmentions find
|
||||
mv mentions.json mentions.json.unfiltered
|
||||
# filter the webmentions a bit; jq offers more flexibility than config.toml
|
||||
jq '[ .[] | select(.Dest|test("https://(git.sr.ht/~seirdy/seirdy.one/log/master|seirdy.one|web.archive.org|matrix.to)") | not) ]' <mentions.json.unfiltered >mentions.json
|
||||
rm mentions.json.unfiltered
|
||||
|
||||
.PHONY: deploy-html
|
||||
deploy-html: build
|
||||
deploy-html: build mentions.json
|
||||
rsync $(RSYNCFLAGS) --exclude 'gemini' --exclude '*.gmi' --exclude-from .rsyncignore $(OUTPUT_DIR)/ $(WWW_RSYNC_DEST) --delete
|
||||
|
||||
.PHONY: deploy-gemini
|
||||
deploy-gemini: hugo
|
||||
rsync $(RSYNCFLAGS) --exclude '*.html' --exclude '*.xml' --exclude '*.gz' --exclude-from .rsyncignore $(OUTPUT_DIR)/gemini/ $(OUTPUT_DIR)/about $(OUTPUT_DIR)/posts $(OUTPUT_DIR)/publickey.* $(GEMINI_RSYNC_DEST)/ --delete
|
||||
rsync $(RSYNCFLAGS) --exclude '*.html' --exclude '*.xml' --exclude '*.gz' --exclude '*.br' --exclude-from .rsyncignore $(OUTPUT_DIR)/gemini/ $(OUTPUT_DIR)/about $(OUTPUT_DIR)/posts $(OUTPUT_DIR)/publickey.* $(GEMINI_RSYNC_DEST)/ --delete
|
||||
rsync $(RSYNCFLAGS) $(OUTPUT_DIR)/posts/gemini.xml $(GEMINI_RSYNC_DEST)/feed.xml
|
||||
|
||||
.PHONY: deploy
|
||||
|
@ -87,7 +96,7 @@ deploy: deploy-html deploy-gemini
|
|||
|
||||
## stuff for the staging server
|
||||
.PHONY: test-staging
|
||||
test-staging: deploy-html
|
||||
test-staging:
|
||||
yq e '.ci .collect .url | .[]' .lighthouserc.yml | xargs npx hint -f codeframe
|
||||
npx lhci autorun
|
||||
|
||||
|
|
|
@ -42,4 +42,7 @@ To test in CI, after deploying to the staging environment:
|
|||
- webhint CLI
|
||||
- [lighthouse-ci](https://github.com/GoogleChrome/lighthouse-ci)
|
||||
|
||||
CI also runs [static-webmention](https://github.com/nekr0z/static-webmentions) to
|
||||
gather a list of WebMentions for me to send and review manually.
|
||||
|
||||
See the `Makefile` for details. The CI saves lighthouse reports as a build artifact.
|
||||
|
|
22
config.toml
22
config.toml
|
@ -78,6 +78,28 @@ path = "gemini/"
|
|||
[outputs]
|
||||
section = ["HTML", "RSS", "GEMRSS"]
|
||||
|
||||
# https://github.com/nekr0z/static-webmentions
|
||||
[webmentions]
|
||||
newDir = "public"
|
||||
oldDir = "old"
|
||||
webmentionsFile = "mentions.json"
|
||||
excludeSources = [
|
||||
"/tags/*", # only trailing * are supported at the moment
|
||||
"/posts/*", # this only excludes /posts/index.html, not /posts/somepost/
|
||||
"/", # same as "/index.html"
|
||||
]
|
||||
|
||||
# addresses that we don't want to send webmentions to
|
||||
# other schemes and stuff that's I link to too often
|
||||
excludeDestinations = [
|
||||
"mailto:",
|
||||
"gemini:",
|
||||
"https://web.archive.org",
|
||||
"https://lists.sr.ht/~seirdy/seirdy.one-comments",
|
||||
"https://useplaintext.email/",
|
||||
"https://seirdy.one",
|
||||
]
|
||||
|
||||
[server]
|
||||
[[server.headers]]
|
||||
for = "/**.{css,png,webp,webm}"
|
||||
|
|
Loading…
Reference in a new issue