diff --git a/.gitignore b/.gitignore index 3d002a8..824142b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ build *.html *.pdf +res/badges diff --git a/build.sh b/build.sh index 5d24b68..cbb9d9c 100755 --- a/build.sh +++ b/build.sh @@ -24,4 +24,15 @@ page "index.typ" page "compiler-pattern-matching.typ" page "article-favicon.typ" +rm -rf res/badges && mkdir res/badges && typst query common.typ "" --root . --input query=true --field value --one | jq -r . | jq -r 'to_entries[] | [.key,.value.badge] | @tsv' | awk '{ if ($1 == "alex") { system("cp res/badge.png res/badges/alex") } else { system("curl "$2" > res/badges/"$1) } }' +for b in res/badges/*; do + bn=$(basename $b) + if [ -f res/badge_sum_$bn ]; then + cat res/badge_sum_$bn | sha256sum -c + else + echo WRITING CHECK SUM OF $bn + sha256sum $b > res/badge_sum_$bn + fi +done + cp build/index.typ.desktop.html build/index.html diff --git a/common.typ b/common.typ index 18e5d04..4bbd078 100644 --- a/common.typ +++ b/common.typ @@ -9,7 +9,11 @@ } #let is-web = to-bool(sys.inputs.at("web", default: "true")) -#let is-html() = { return target() == "html" } +#let is-html() = { if sys.inputs.at("query", default:"false") == "true" { + return false +} else { + return target() == "html" +} } #let git_rev = sys.inputs.at("git_rev", default: "") #let git_commit_date = sys.inputs.at("git_commit_date", default: "") @@ -281,14 +285,23 @@ document.addEventListener('scroll', (event) => { #let people = ( alex: ( nick: "alex_s168", - url: "https://alex.vxcc.dev" + url: "https://alex.vxcc.dev", + badge: "https://alex.vxcc.dev/res/badge.png", ), ote: ( nick: "otesunki", - url: "https://512b.dev/ote/" + url: "https://512b.dev/ote/", + badge: "https://512b.dev/assets/lagtrain.gif" + ), + syn: ( + nick: "syn", + url: "https://512b.dev/syn/", + badge: "https://512b.dev/syn/badge.png", ), ) +#metadata(json.encode(people)) + #let person(p) = { flink(p.url, p.nick) } diff --git a/pages/index.typ b/pages/index.typ index 2f3bf73..5f09782 100644 --- a/pages/index.typ +++ b/pages/index.typ @@ -52,6 +52,7 @@ (level:2, body: [ #link("https://github.com/vxcc-backend/vxcc-new")[ vxcc ]: Advanced multi-level compiler ]), (level:2, body: [ #link("https://github.com/alex-s168/uiuac")[ uiuac ]: (discontinued) Optimizing compiler for the #link("https://uiua.org")[Uiua programming language] ]), (level:2, body: [ #link("https://github.com/Lambda-Mountain-Compiler-Backend/lambda-mountain")[ LSTS's standard library ] ]), + (level:2, body: [ FP programming language compiler mostly using #link("https://en.wikipedia.org/wiki/Interaction_nets")[interaction nets] ]), (level:2, body: [ #link("https://github.com/h6-lang/h6")[ h6 ]: Minimal stack-based programming language ]), (level:2, body: [ #link("https://github.com/alex-s168/lil-rs")[ lil-rs ]: Rust implementation of #link("http://beyondloom.com/decker/lil.html")[lil] ]), @@ -71,4 +72,25 @@ #link("https://github.com/alex-s168/website")[Website source code] + #br()#br() + The latest version of my badge will always be at:\ + #raw(people.alex.badge) + + #context if is-web and is-html() { // excludes min.html builds too + let scale = 1.3 + for id in people.keys() { + let person = people.at(id) + html.elem("a", attrs:(href:person.url, target:"_blank"))[ + #html.elem("img", attrs:( + src: res-path()+"badges/"+id, + alt: "link to " + person.nick, + attributionsrc: person.badge, + fetchpriority: "low", + style: "padding-left:10px; padding-right:14px", + width: str(88*scale), + height: str(31*scale), + )) + ] + } + } ] diff --git a/res/badge.png b/res/badge.png new file mode 100644 index 0000000..72b4f21 Binary files /dev/null and b/res/badge.png differ diff --git a/res/badge_sum_alex b/res/badge_sum_alex new file mode 100644 index 0000000..ed442b2 --- /dev/null +++ b/res/badge_sum_alex @@ -0,0 +1 @@ +f256bdf8d1d8100be843a5f76ccfb5f0cb7315f98d075ae583b29916740e58ab res/badges/alex diff --git a/res/badge_sum_ote b/res/badge_sum_ote new file mode 100644 index 0000000..ff7468b --- /dev/null +++ b/res/badge_sum_ote @@ -0,0 +1 @@ +9aecefadc2369798121567c27b4599cb92dd8bd56d926f1544c3ddd860762605 res/badges/ote diff --git a/res/badge_sum_syn b/res/badge_sum_syn new file mode 100644 index 0000000..5b944a3 --- /dev/null +++ b/res/badge_sum_syn @@ -0,0 +1 @@ +90a0093089d2ae940639aca8ca4dd86f0b7a20fd5b12adb313480b8b1868bc2b res/badges/syn