diff options
| author | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2024-06-16 15:01:34 -0400 |
|---|---|---|
| committer | Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2024-06-16 15:01:34 -0400 |
| commit | 825c7e43fa91ffcdd8e5a464e9491958266eb00b (patch) | |
| tree | 13371bdb2be7514594f79ccd0b25faaeacf8295f | |
| parent | 0091197a26fee5ff82e136bbaeb0d8603402bedd (diff) | |
Use the built-in `sxml-reader' from Haunt
| -rw-r--r-- | haunt/haunt.scm | 7 | ||||
| -rw-r--r-- | haunt/pages/about-complete.sxml | 17 | ||||
| -rw-r--r-- | haunt/pages/about.sxml | 63 | ||||
| -rw-r--r-- | haunt/pages/changelog.sxml | 17 | ||||
| -rw-r--r-- | haunt/pages/status-400.sxml | 111 | ||||
| -rw-r--r-- | haunt/pages/status-403.sxml | 95 | ||||
| -rw-r--r-- | haunt/pages/status-404.sxml | 111 | ||||
| -rw-r--r-- | haunt/pages/status-429.sxml | 51 | ||||
| -rw-r--r-- | haunt/pages/status-500.sxml | 59 | ||||
| -rw-r--r-- | haunt/pages/weblabels.sxml | 93 |
10 files changed, 309 insertions, 315 deletions
diff --git a/haunt/haunt.scm b/haunt/haunt.scm index 937549c..f03111d 100644 --- a/haunt/haunt.scm +++ b/haunt/haunt.scm @@ -17,6 +17,7 @@ (use-modules (haunt builder assets) (haunt builder flat-pages) (haunt post) + (haunt reader) (haunt site) (jakob builder atom) (jakob builder blog) @@ -24,7 +25,7 @@ (jakob builder htaccess) (jakob builder outbox) (jakob reader html-prime) - (jakob reader sxml) + (jakob theme) (srfi srfi-19) (srfi srfi-26)) @@ -56,7 +57,7 @@ (500 . "/pages/status-500.html"))) (outbox) (flat-pages "pages" - #:template (lambda (_site _title content) - content) + #:template (lambda (_site title content) + (theme #:title title #:content content)) #:prefix "pages/") (static-directory "static"))) diff --git a/haunt/pages/about-complete.sxml b/haunt/pages/about-complete.sxml index f24581c..f6cd8e2 100644 --- a/haunt/pages/about-complete.sxml +++ b/haunt/pages/about-complete.sxml @@ -22,12 +22,11 @@ (jakob utils sxml) (sxml simple)) -(theme - #:title "About me" - #:content - (call-with-input-file "pages/about-complete.html" - (lambda (port) - (read-line port) - `(div (@ (data-pagefind-body #t)) - ,@(cdr (rewrite-absolute-urls-as-relative - (xml->sxml port))))))) +`((title . "About me") + (content + . ,(call-with-input-file "pages/about-complete.html" + (lambda (port) + (read-line port) + `(div (@ (data-pagefind-body #t)) + ,@(cdr (rewrite-absolute-urls-as-relative + (xml->sxml port)))))))) diff --git a/haunt/pages/about.sxml b/haunt/pages/about.sxml index ee5047e..e5e8592 100644 --- a/haunt/pages/about.sxml +++ b/haunt/pages/about.sxml @@ -21,39 +21,40 @@ (srfi srfi-1) (srfi srfi-19)) -(theme - #:title "About" - #:content - `((ul (@ (class "horizontal-list")) - (li "Email: " (strong "zerodaysfordays at sdf.org")) - (li "XMPP¹: " (strong "jakob at xmpp.is")) - (li "IRC: " (strong "tsarfox on irc.libera.chat."))) - (ul (@ (class "horizontal-list")) - (li "GPG: " ,(hyperlink "/static/gpg.txt" "6581 A4FC 404F 6434 AEA3 008C 45ED 4DC3 05BA DA33"))) - (ul (@ (class "horizontal-list")) - (li ,(hyperlink "https://git.sr.ht/~jakob" "git")) - (li ,(hyperlink "https://social.jakob.space/jakob" "fedi")) - (li ,(hyperlink "https://en.wikipedia.org/wiki/User:ZeroDaysForDays" "wiki")) - (li ,(hyperlink "https://lobste.rs/u/jakob" "lobste.rs"))) - (main (@ (class "overline")) - (div (@ (class "portrait")) - ,(image "portrait.png" "A portrait of myself, done by @scolastiko on Twitter.")) - (p "My name's Jakob, and I'm a self-taught " - ,(hyperlink "https://www.gnu.org/philosophy/free-sw.html" "free software") - ,(hyperlink "https://en.wikipedia.org/wiki/Hacker_culture#Definition" " hacker") - ". I'm into computer security, software verification, functional programming, and lifting +`((title . "About") + (content + . ((ul (@ (class "horizontal-list")) + (li "Email: " (strong "zerodaysfordays at sdf.org")) + (li "XMPP¹: " (strong "jakob at xmpp.is")) + (li "IRC: " (strong "tsarfox on irc.libera.chat."))) + (ul (@ (class "horizontal-list")) + (li "GPG: " ,(hyperlink "/static/gpg.txt" "6581 A4FC 404F 6434 AEA3 008C 45ED 4DC3 05BA DA33"))) + (ul (@ (class "horizontal-list")) + (li ,(hyperlink "https://git.sr.ht/~jakob" "git")) + (li ,(hyperlink "https://social.jakob.space/jakob" "fedi")) + (li ,(hyperlink "https://en.wikipedia.org/wiki/User:ZeroDaysForDays" "wiki")) + (li ,(hyperlink "https://lobste.rs/u/jakob" "lobste.rs"))) + (main (@ (class "overline")) + (div (@ (class "portrait")) + ,(image "portrait.png" "A portrait of myself, done by @scolastiko on Twitter.")) + (p "My name's Jakob, and I'm a self-taught " + ,(hyperlink "https://www.gnu.org/philosophy/free-sw.html" "free software") + ,(hyperlink "https://en.wikipedia.org/wiki/Hacker_culture#Definition" " hacker") + ". I'm into computer security, software verification, functional programming, and lifting weights.") - (p "That's the short version. I have a longer biography available " ,(hyperlink "/pages/about-complete.html" "here") ".") - (p "If you've sent an email to an address of mine + (p "That's the short version. I have a longer biography available " ,(hyperlink "/pages/about-complete.html" "here") ".") + (p "If you've sent an email to an address of mine ending in 'sdf.lonestar.org' between January 2nd, 2020 and now, I have not received it. SDF has discontinued mail service on that domain. Accordingly, " - ,(hyperlink "https://paste.sr.ht/%7Ejakob/18c048600c26d125d6d743e6d5b44db852573242" "I have a new PGP key.")) - (p "To the best of my knowledge, access to this website is not being blocked by any + ,(hyperlink "https://paste.sr.ht/%7Ejakob/18c048600c26d125d6d743e6d5b44db852573242" "I have a new PGP key.")) + (p "To the best of my knowledge, access to this website is not being blocked by any foreign government. Should this change, I maintain mirrors on " - ,(hyperlink "http://jakobyallfrbd3herebyee7hug3hxs2ma6aflmmllk35d7dyiwp3adid.onion/" "Tor") - " and " - ,(hyperlink "http://mtgqjdrqqpovyhx7tortulrnvakbptsi3w5yintmo6lqapdd3hnq.b32.i2p" "i2p") - ".") - (p "1: I'll just ask that you reach out to me through other channels before + ,(hyperlink "http://jakobyallfrbd3herebyee7hug3hxs2ma6aflmmllk35d7dyiwp3adid.onion/" "Tor") + " and " + ,(hyperlink "http://mtgqjdrqqpovyhx7tortulrnvakbptsi3w5yintmo6lqapdd3hnq.b32.i2p" "i2p") + ".") + (p "1: I'll just ask that you reach out to me through other channels before sending me an invitation on Jabber. My address ended up on the XSender list, so I -have a script to block messages from anyone not on my roster.")))) +have a script to block messages from anyone not on my roster."))))) + + diff --git a/haunt/pages/changelog.sxml b/haunt/pages/changelog.sxml index 0fe6430..0fe5341 100644 --- a/haunt/pages/changelog.sxml +++ b/haunt/pages/changelog.sxml @@ -22,12 +22,11 @@ (jakob utils sxml) (sxml simple)) -(theme - #:title "Changelog" - #:content - (call-with-input-file "pages/changelog.html" - (lambda (port) - (read-line port) - `(div (@ (data-pagefind-body #t)) - ,@(cdr (rewrite-absolute-urls-as-relative - (xml->sxml port))))))) +`((title . "Changelog") + (content + . ,(call-with-input-file "pages/changelog.html" + (lambda (port) + (read-line port) + `(div (@ (data-pagefind-body #t)) + ,@(cdr (rewrite-absolute-urls-as-relative + (xml->sxml port)))))))) diff --git a/haunt/pages/status-400.sxml b/haunt/pages/status-400.sxml index f692964..0bbf2b7 100644 --- a/haunt/pages/status-400.sxml +++ b/haunt/pages/status-400.sxml @@ -19,59 +19,58 @@ (use-modules (jakob theme) (jakob utils sxml)) -(theme - #:title "Bad Request" - #:content - `((p "Server responded with a status of 400: Bad Request.") - (hr) - (p "Status code 400, that's what you sent" - (br) - "Bad request, it looks like you didn't read" - (br) - "The instructions on how to send a request" - (br) - "What's up, HTTP? Why you trippin'?" - (br) - "You should know better than to send a 400" - (br) - "Bad request, that's not even a real request" - (br) - "It's like trying to buy a plane with a check" - (br) - "What the hell is wrong with you, HTTP?" - (br) - "I sent you an HTML file, just like I said" - (br) - "But instead of responding with a 200, you gave me 400" - (br) - "Bad request, that's not even close to being cool" - (br) - "It's like trying to play a game with a console that's not hooked up" - (br) - "What the hell is wrong with you, HTTP?" - (br) - "You know how important this is, right?" - (br) - "I need information, and you're the only one who can give it to me" - (br) - "But instead of responding with what I need, you're just being stubborn" - (br) - "Bad request, that's not going to work" - (br) - "It's like trying to buy a shirt without any money" - (br) - "What the hell is wrong with you, HTTP?" - (br) - "I hope you know that you're messing with the boss" - (br) - "Status code 400, that's what you got" - (br) - "Bad request, it looks like you're going to lose" - (br) - "Yo, listen up, I got a message for you" - (br) - "Status code 400, that's what you sent" - (br) - "Bad request, it looks like you didn't read" - (br) - "The instructions on how to send a request."))) +`((title . "Bad Request") + (content + . ((p "Server responded with a status of 400: Bad Request.") + (hr) + (p "Status code 400, that's what you sent" + (br) + "Bad request, it looks like you didn't read" + (br) + "The instructions on how to send a request" + (br) + "What's up, HTTP? Why you trippin'?" + (br) + "You should know better than to send a 400" + (br) + "Bad request, that's not even a real request" + (br) + "It's like trying to buy a plane with a check" + (br) + "What the hell is wrong with you, HTTP?" + (br) + "I sent you an HTML file, just like I said" + (br) + "But instead of responding with a 200, you gave me 400" + (br) + "Bad request, that's not even close to being cool" + (br) + "It's like trying to play a game with a console that's not hooked up" + (br) + "What the hell is wrong with you, HTTP?" + (br) + "You know how important this is, right?" + (br) + "I need information, and you're the only one who can give it to me" + (br) + "But instead of responding with what I need, you're just being stubborn" + (br) + "Bad request, that's not going to work" + (br) + "It's like trying to buy a shirt without any money" + (br) + "What the hell is wrong with you, HTTP?" + (br) + "I hope you know that you're messing with the boss" + (br) + "Status code 400, that's what you got" + (br) + "Bad request, it looks like you're going to lose" + (br) + "Yo, listen up, I got a message for you" + (br) + "Status code 400, that's what you sent" + (br) + "Bad request, it looks like you didn't read" + (br) + "The instructions on how to send a request.")))) diff --git a/haunt/pages/status-403.sxml b/haunt/pages/status-403.sxml index 7823609..47db444 100644 --- a/haunt/pages/status-403.sxml +++ b/haunt/pages/status-403.sxml @@ -19,51 +19,50 @@ (use-modules (jakob theme) (jakob utils sxml)) -(theme - #:title "Forbidden" - #:content - `((p "Server responded with a status of 403: Forbidden.") - (hr) - (p "Yo, listen up, I got some news for you" - (br) - "About this 403 error message, it's all over the place" - (br) - "It means that your request has been denied" - (br) - "And you can't access the page anymore" - (br) - "It's like a red light, telling you to stop" - (br) - "But you keep on going, and that's not good" - (br) - "You're getting a 403, it's forbidden" - (br) - "No access allowed, it's plain and simple" - (br) - "Don't even try to argue with me" - (br) - "I'm the HTTP status code, and I know what I'm talking about" - (br) - "You can't just keep on hitting refresh" - (br) - "Thinking that you'll get a different result" - (br) - "It's time to face the facts, and accept your fate" - (br) - "403 means forbidden, it's not a joke" - (br) - "So why don't you take my advice" - (br) - "And find another route, or change your tactics" - (br) - "Don't keep on pushing, you'll end up in frustration" - (br) - "Just like the person who keeps on trying to get into the restricted area" - (br) - "But let me remind you, it's not a game" - (br) - "This 403 error message is not just some minor pain" - (br) - "It means that you're not supposed to be there" - (br) - "So why don't you just go away?"))) +`((title . "Forbidden") + (content + . ((p "Server responded with a status of 403: Forbidden.") + (hr) + (p "Yo, listen up, I got some news for you" + (br) + "About this 403 error message, it's all over the place" + (br) + "It means that your request has been denied" + (br) + "And you can't access the page anymore" + (br) + "It's like a red light, telling you to stop" + (br) + "But you keep on going, and that's not good" + (br) + "You're getting a 403, it's forbidden" + (br) + "No access allowed, it's plain and simple" + (br) + "Don't even try to argue with me" + (br) + "I'm the HTTP status code, and I know what I'm talking about" + (br) + "You can't just keep on hitting refresh" + (br) + "Thinking that you'll get a different result" + (br) + "It's time to face the facts, and accept your fate" + (br) + "403 means forbidden, it's not a joke" + (br) + "So why don't you take my advice" + (br) + "And find another route, or change your tactics" + (br) + "Don't keep on pushing, you'll end up in frustration" + (br) + "Just like the person who keeps on trying to get into the restricted area" + (br) + "But let me remind you, it's not a game" + (br) + "This 403 error message is not just some minor pain" + (br) + "It means that you're not supposed to be there" + (br) + "So why don't you just go away?")))) diff --git a/haunt/pages/status-404.sxml b/haunt/pages/status-404.sxml index d189084..244bde2 100644 --- a/haunt/pages/status-404.sxml +++ b/haunt/pages/status-404.sxml @@ -19,59 +19,58 @@ (use-modules (jakob theme) (jakob utils sxml)) -(theme - #:title "Page Not Found" - #:content - `((p "Server responded with a status of 404: Not Found.") - (p "Whatever you're looking for, it's not here... anymore, at least.") - (p "That could be due to link rot. Perhaps the " - ,(hyperlink "https://web.archive.org/" "Wayback Machine") - " has it?") - (hr) - (p "Yo, listen up, I got a new one" - (br) - "Status code 404, that's what it means" - (br) - "When a website can't find what you're looking for" - (br) - "It's like a missed connection, a lost opportunity" - (br) - "But don't worry, it's not the end of the world" - (br) - "Just hit refresh and try again, maybe it'll turn up" - (br) - "Or you could always ask the website administrator" - (br) - "Maybe they'll have some insights on where to find what you need" - (br) - "Either way, 404 ain't no joke" - (br) - "It's a warning sign that something's off" - (br) - "But hey, it's not the end of the world" - (br) - "Just keep searching, and don't give up the fight" - (br) - "Yo, listen up, I got a new one" - (br) - "Status code 404, that's what it means" - (br) - "When a website can't find what you're looking for" - (br) - "It's like a missed connection, a lost opportunity" - (br) - "But don't worry, it's not the end of the world" - (br) - "Just hit refresh and try again, maybe it'll turn up" - (br) - "Or you could always ask the website administrator" - (br) - "Maybe they'll have some insights on where to find what you need" - (br) - "Either way, 404 ain't no joke" - (br) - "It's a warning sign that something's off" - (br) - "But hey, it's not the end of the world" - (br) - "Just keep searching, and don't give up the fight."))) +`((title . "Page Not Found") + (content + . ((p "Server responded with a status of 404: Not Found.") + (p "Whatever you're looking for, it's not here... anymore, at least.") + (p "That could be due to link rot. Perhaps the " + ,(hyperlink "https://web.archive.org/" "Wayback Machine") + " has it?") + (hr) + (p "Yo, listen up, I got a new one" + (br) + "Status code 404, that's what it means" + (br) + "When a website can't find what you're looking for" + (br) + "It's like a missed connection, a lost opportunity" + (br) + "But don't worry, it's not the end of the world" + (br) + "Just hit refresh and try again, maybe it'll turn up" + (br) + "Or you could always ask the website administrator" + (br) + "Maybe they'll have some insights on where to find what you need" + (br) + "Either way, 404 ain't no joke" + (br) + "It's a warning sign that something's off" + (br) + "But hey, it's not the end of the world" + (br) + "Just keep searching, and don't give up the fight" + (br) + "Yo, listen up, I got a new one" + (br) + "Status code 404, that's what it means" + (br) + "When a website can't find what you're looking for" + (br) + "It's like a missed connection, a lost opportunity" + (br) + "But don't worry, it's not the end of the world" + (br) + "Just hit refresh and try again, maybe it'll turn up" + (br) + "Or you could always ask the website administrator" + (br) + "Maybe they'll have some insights on where to find what you need" + (br) + "Either way, 404 ain't no joke" + (br) + "It's a warning sign that something's off" + (br) + "But hey, it's not the end of the world" + (br) + "Just keep searching, and don't give up the fight.")))) diff --git a/haunt/pages/status-429.sxml b/haunt/pages/status-429.sxml index 399c812..6503bec 100644 --- a/haunt/pages/status-429.sxml +++ b/haunt/pages/status-429.sxml @@ -19,29 +19,28 @@ (use-modules (jakob theme) (jakob utils sxml)) -(theme - #:title "Too Many Requests" - #:content - `((p "Server responded with a status of 429: Too Many Requests.") - (hr) - (p "Yo, listen up, I got a message for you" - (br) - "About this HTTP status code, you should know" - (br) - "It's 429, that's right, Too Many Requests" - (br) - "You're making too many requests, and it's causing errors" - (br) - "Your website's performance is suffering, and it's time to fix it" - (br) - "So reduce the number of requests, and your users will be happy" - (br) - "They'll thank you for improving their browsing experience" - (br) - "And hey, while we're on the topic, don't forget about caching" - (br) - "It can help reduce the number of requests, and speed up your site" - (br) - "So implement it, and your visitors will love you" - (br) - "For making your website faster, and more responsive too"))) +`((title . "Too Many Requests") + (content + . ((p "Server responded with a status of 429: Too Many Requests.") + (hr) + (p "Yo, listen up, I got a message for you" + (br) + "About this HTTP status code, you should know" + (br) + "It's 429, that's right, Too Many Requests" + (br) + "You're making too many requests, and it's causing errors" + (br) + "Your website's performance is suffering, and it's time to fix it" + (br) + "So reduce the number of requests, and your users will be happy" + (br) + "They'll thank you for improving their browsing experience" + (br) + "And hey, while we're on the topic, don't forget about caching" + (br) + "It can help reduce the number of requests, and speed up your site" + (br) + "So implement it, and your visitors will love you" + (br) + "For making your website faster, and more responsive too")))) diff --git a/haunt/pages/status-500.sxml b/haunt/pages/status-500.sxml index d713a61..62f2305 100644 --- a/haunt/pages/status-500.sxml +++ b/haunt/pages/status-500.sxml @@ -19,33 +19,32 @@ (use-modules (jakob theme) (jakob utils sxml)) -(theme - #:title "Internal Server Error" - #:content - `((p "Server responded with a status of 500: Internal Server Error.") - (hr) - (p "Yo, listen up, I got a problem with my server" - (br) - "It's giving me an error, won't let me serve no more" - (br) - "I think it's 'cause I'm overloaded, too many requests" - (br) - "But I tried to fix it, I even upgraded my plans" - (br) - "Still not working, it's like a curse" - (br) - "I'm sorry for the inconvenience, but I'm trying my best" - (br) - "To get this fixed, I'll keep on messing with the code" - (br) - "Until it works properly, I won't give up the fight" - (br) - "500 error, it's an internal server mistake" - (br) - "I know it's frustrating, but please be patient, it's not my fault" - (br) - "I'm working on it, I promise you that much" - (br) - "So just keep on hitting that refresh button, and soon enough" - (br) - "My server will be back to its old self"))) +`((title . "Internal Server Error") + (content + . ((p "Server responded with a status of 500: Internal Server Error.") + (hr) + (p "Yo, listen up, I got a problem with my server" + (br) + "It's giving me an error, won't let me serve no more" + (br) + "I think it's 'cause I'm overloaded, too many requests" + (br) + "But I tried to fix it, I even upgraded my plans" + (br) + "Still not working, it's like a curse" + (br) + "I'm sorry for the inconvenience, but I'm trying my best" + (br) + "To get this fixed, I'll keep on messing with the code" + (br) + "Until it works properly, I won't give up the fight" + (br) + "500 error, it's an internal server mistake" + (br) + "I know it's frustrating, but please be patient, it's not my fault" + (br) + "I'm working on it, I promise you that much" + (br) + "So just keep on hitting that refresh button, and soon enough" + (br) + "My server will be back to its old self")))) diff --git a/haunt/pages/weblabels.sxml b/haunt/pages/weblabels.sxml index b57d0e1..9c2c4fc 100644 --- a/haunt/pages/weblabels.sxml +++ b/haunt/pages/weblabels.sxml @@ -19,50 +19,49 @@ (use-modules (jakob theme) (jakob utils sxml)) -(theme - #:title "JavaScript Web Labels" - #:content - `((h2 "JavaScript Web Labels") - (table (@ (id "jslicense-labels1")) - (tr (td ,(hyperlink "/static/js/dynamic-comment-form.js" - `(p "/static/js/dynamic-comment-form.js"))) - (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" - `(p "GNU General Public License 3.0 or later"))) - (td ,(hyperlink "/static/js/dynamic-comment-form.js" - `(p "/static/js/dynamic-comment-form.js")))) - (tr (td ,(hyperlink "/static/js/proof-of-work.js" - `(p "/static/js/proof-of-work.js"))) - (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" - `(p "GNU General Public License 3.0 or later"))) - (td ,(hyperlink "/static/js/proof-of-work.js" - `(p "/static/js/proof-of-work.js")))) - (tr (td ,(hyperlink "/static/js/webmention.js" - `(p "/static/js/webmention.js"))) - (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" - `(p "GNU General Public License 3.0 or later"))) - (td ,(hyperlink "/static/js/webmention.js" - `(p "/static/js/webmention.js")))) - (tr (td ,(hyperlink "/static/js/comment-reactions.js" - `(p "/static/js/comment-reactions.js"))) - (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" - `(p "GNU General Public License 3.0 or later"))) - (td ,(hyperlink "/static/js/comment-reactions.js" - `(p "/static/js/comment-reactions.js")))) - (tr (td ,(hyperlink "/static/js/section-folds.js" - `(p "/static/js/section-folds.js"))) - (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" - `(p "GNU General Public License 3.0 or later"))) - (td ,(hyperlink "/static/js/section-folds.js" - `(p "/static/js/section-folds.js")))) - (tr (td ,(hyperlink "/static/js/rsvp.js" - `(p "/static/js/rsvp.js"))) - (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" - `(p "GNU General Public License 3.0 or later"))) - (td ,(hyperlink "/static/js/rsvp.js" - `(p "/static/js/rsvp.js")))) - (tr (td ,(hyperlink "/static/js/oneko.js" - `(p "/static/js/oneko.js"))) - (td ,(hyperlink "http://www.jclark.com/xml/copying.txt" - `(p "Expat License"))) - (td ,(hyperlink "/static/js/oneko.js" - `(p "/static/js/oneko.js"))))))) +`((title . "JavaScript Web Labels") + (content + . ((h2 "JavaScript Web Labels") + (table (@ (id "jslicense-labels1")) + (tr (td ,(hyperlink "/static/js/dynamic-comment-form.js" + `(p "/static/js/dynamic-comment-form.js"))) + (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" + `(p "GNU General Public License 3.0 or later"))) + (td ,(hyperlink "/static/js/dynamic-comment-form.js" + `(p "/static/js/dynamic-comment-form.js")))) + (tr (td ,(hyperlink "/static/js/proof-of-work.js" + `(p "/static/js/proof-of-work.js"))) + (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" + `(p "GNU General Public License 3.0 or later"))) + (td ,(hyperlink "/static/js/proof-of-work.js" + `(p "/static/js/proof-of-work.js")))) + (tr (td ,(hyperlink "/static/js/webmention.js" + `(p "/static/js/webmention.js"))) + (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" + `(p "GNU General Public License 3.0 or later"))) + (td ,(hyperlink "/static/js/webmention.js" + `(p "/static/js/webmention.js")))) + (tr (td ,(hyperlink "/static/js/comment-reactions.js" + `(p "/static/js/comment-reactions.js"))) + (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" + `(p "GNU General Public License 3.0 or later"))) + (td ,(hyperlink "/static/js/comment-reactions.js" + `(p "/static/js/comment-reactions.js")))) + (tr (td ,(hyperlink "/static/js/section-folds.js" + `(p "/static/js/section-folds.js"))) + (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" + `(p "GNU General Public License 3.0 or later"))) + (td ,(hyperlink "/static/js/section-folds.js" + `(p "/static/js/section-folds.js")))) + (tr (td ,(hyperlink "/static/js/rsvp.js" + `(p "/static/js/rsvp.js"))) + (td ,(hyperlink "http://www.gnu.org/licenses/gpl-3.0.html" + `(p "GNU General Public License 3.0 or later"))) + (td ,(hyperlink "/static/js/rsvp.js" + `(p "/static/js/rsvp.js")))) + (tr (td ,(hyperlink "/static/js/oneko.js" + `(p "/static/js/oneko.js"))) + (td ,(hyperlink "http://www.jclark.com/xml/copying.txt" + `(p "Expat License"))) + (td ,(hyperlink "/static/js/oneko.js" + `(p "/static/js/oneko.js")))))))) |