From 88197c17bdc5a8bd6b87740ad242cdc3c9bf2ea8 Mon Sep 17 00:00:00 2001 From: octospacc Date: Tue, 3 Dec 2024 01:14:46 +0100 Subject: [PATCH] Nuova raccolta emblemi, Aggiornamento script traduzioni e fix --- Scripts/Translate/Main.py | 33 +++- assets/ButtonBadges.toml | 137 +++++++++++++++ content/it/miscellanea/Copie-sitoctt.md | 8 +- content/it/miscellanea/Raccolta-Emblemi.md | 49 ++++++ content/it/miscellanea/Raccolta-Separatori.md | 14 +- .../2024-09-19-Raspberry-Output-Audio-Both.md | 4 +- layouts/partials/ImgButton.html | 20 ++- layouts/partials/footer-buttons.html | 163 +----------------- layouts/shortcodes/footer-buttons.html | 1 + 9 files changed, 243 insertions(+), 186 deletions(-) create mode 100644 content/it/miscellanea/Raccolta-Emblemi.md create mode 100644 layouts/shortcodes/footer-buttons.html diff --git a/Scripts/Translate/Main.py b/Scripts/Translate/Main.py index b265edd..d5db2ec 100755 --- a/Scripts/Translate/Main.py +++ b/Scripts/Translate/Main.py @@ -3,7 +3,12 @@ ModificationMetadataKey = "lastmod" KeepOriginalMetadata = ["draft", "date", "lastmod"] DestinationLanguages = ["it", "en", "es", "fr"] # "de", "eo" IncludePaths = ["/"] -ExcludePaths = ["/note/2024-09-19-Raspberry-Output-Audio-Both.md", "/miscellanea/Devlogs.md", "/admin.md"] # "/miscellanea/PicoBlog.md" +ExcludePaths = ["/miscellanea/Devlogs.md", "/admin.md"] # "/miscellanea/PicoBlog.md" +TranslationFixes = { + "{{}}_/": "{{< assetsRoot>}}/", + "{{< assetsRoot >}}_/": "{{< assetsRoot >}}/", + " ``` _": " ``` ", +} import subprocess from os import getcwd, listdir @@ -100,16 +105,18 @@ def number_to_ascii(number:int) -> str: return ''.join(chr(int(binary[(i * 8):((i * 8) + 8)], 2)) for i in range(len(binary) // 8)) # TODO add checks for number-strings to ensure they aren't already in the literal text -# TODO handle code blocks and .notranslate HTML elements -# TODO fix strange bugs +# TODO handle .notranslate HTML elements +# TODO fix strange bugs, including bug of autoinserted trailing underscores '_', and HTML closing tags breaking def wrap_for_translation(original_text): original_text = (original_text - .replace("{{%", "{{@%").replace("%}}", "%@}}") - .replace("{{<", "{{@<").replace(">}}", ">@}}")) + .replace("{{%", "{{@%").replace("%}}", "%@}}") # Hugo shortcodes + .replace("{{<", "{{@<").replace(">}}", ">@}}") + .replace("```" , "{{@```" ) # Markdown fenced code blocks + .replace(" {{@``` ", " ``` @}}")) original_tokens = original_text.split("{{@") for i in range(1, len(original_tokens)): token_tokens = original_tokens[i].split("@}}") - token_tokens[0] = (f"{TranslationMagic}__" + str(ascii_to_number("{{@" + token_tokens[0] + "@}}")) + "__").replace("9", "9_") + token_tokens[0] = (f"{TranslationMagic}__" + str(ascii_to_number("{{@" + token_tokens[0] + "@}}")).replace("1", "1_").replace("9", "9_") + "__") original_tokens[i] = ''.join(token_tokens) return ''.join(original_tokens) @@ -120,8 +127,13 @@ def unwrap_from_translation(translated_text): token_tokens[0] = number_to_ascii(token_tokens[0].replace(' ', '').replace('_', '')) translated_tokens[i] = (token_tokens[0] + "__".join(token_tokens[1:])) return (''.join(translated_tokens) - .replace("{{@%", "{{%").replace("%@}}", "%}}") - .replace("{{@<", "{{<").replace(">@}}", ">}}")) + .replace("{{@%", "{{%").replace("%@}}", "%}}") # Hugo shortcodes + .replace("{{@<", "{{<").replace(">@}}", ">}}") + .replace(" ``` @}}", " ``` ") # Markdown fenced code blocks + .replace("{{@```" , "```" )) + #.replace("{{@```" , "```" ) + #.replace(" ``` @}}", " ``` ") + #.replace(" {{@``` ", " ``` ")) def translate_document(document_path, documents): printf(f"* {document_path} ->") @@ -163,9 +175,12 @@ def translate_document(document_path, documents): translated_text = ''.join(translated_tokens) elif translated_text.strip(): translated_text = (translated_preamble + translated_text) + translated_text = unwrap_from_translation(translated_text) + for replacement in TranslationFixes: + translated_text = translated_text.replace(replacement, TranslationFixes[replacement]) destination_path = make_destination_path(document_path, destination_language) Path('/'.join(destination_path.split('/')[:-1])).mkdir(parents=True, exist_ok=True) - open(destination_path, 'w').write(unwrap_from_translation(translated_text)) + open(destination_path, 'w').write(translated_text) printf('\n') def main(): diff --git a/assets/ButtonBadges.toml b/assets/ButtonBadges.toml index ef8a6bc..df122c5 100644 --- a/assets/ButtonBadges.toml +++ b/assets/ButtonBadges.toml @@ -67,6 +67,11 @@ alt = "Download Offline Version" file = "OFF-LINE-VERSION.png" href = "/miscellanea/Copie-sitoctt/#archivi-offline" +[[10-site]] +alt = "Written by Human, not by AI" +file = "written-by-human-not-by-ai-white.svg" +href = "https://notbyai.fyi" + ####################################### [[20-me]] @@ -184,3 +189,135 @@ file = "Powered-by-THE-VOID.png" alt = "Powered by Bob" file = "POWERED-BY-bob.gif" +####################################### + +[[50-fun]] +alt = "Internet Archive" +file = "Sites/Internet-Archive.png" +href = "https://archive.org" +spam = true + +[[50-fun]] +alt = "Wikipedia" +file = "Sites/Wikipedia.png" +href = "https://www.wikipedia.org" +title = "hu:User:Boro, CC BY-SA 3.0 <https://creativecommons.org/licenses/by-sa/3.0>, via Wikimedia Commons" +linkback = "https://commons.wikimedia.org/wiki/File:Wikipedia-microbar-hu.png" +spam = true + +[[50-fun]] +alt = "Firefox" +file = "Firefox-Modern.png" +href = "https://www.mozilla.org/it/firefox" +spam = true + +[[50-fun]] +alt = "The Onion Router" +file = "Tor.png" +href = "https://www.torproject.org/it" +spam = true + +[[50-fun]] +alt = "uBlock Origin Now!" +file = "uBlock-Origin-Now.png" +href = "https://ublockorigin.com" +spam = true + +# Linux Now badge with Xenia the Linux Fox made by Volt: https://meow.social/@voltbun/109600348286574222 +[[50-fun]] +alt = "Linux Now!" +file = "Linux-NOW-Xenia.png" +href = "https://kernel.org" +spam = true + +[[50-fun]] +alt = "Use Linux Online" +file = "Linux-Online.png" +href = "https://www.onworks.net" +spam = true + +[[50-fun]] +alt = "Haiku OS Now!" +file = "HAIKU-NOW.png" +href = "https://www.haiku-os.org" +spam = true + +[[50-fun]] +alt = "Join the Fediverse!!!" +file = "Join-the-Fediverse.gif" +href = "https://jointhefediverse.net" +spam = true + +[[50-fun]] +alt = "matrix" +file = "matrix.png" +href = "https://matrix.org" +spam = true + +[[50-fun]] +alt = "VOCALOID Now!" +file = "VOCALOID-Now.png" +href = "https://www.vocaloid.com" +spam = true + +####################################### + +[[60-fun]] +alt = "ISO 8601 now!" +file = "ISO-8601-now.png" +href = "https://www.w3.org/QA/Tips/iso-date" +spam = true + +[[60-fun]] +alt = "I support net neutrality" +file = "I-SUPPORT-NET-NEUTRALITY.png" +href = "https://en.wikipedia.org/wiki/Net_neutrality" +spam = true + +[[60-fun]] +alt = "I support right to repair" +file = "I-SUPPORT-RIGHT-TO-REPAIR.png" +href = "https://en.wikipedia.org/wiki/Right_to_repair" +spam = true + +[[60-fun]] +alt = "Trans Your Gender" +file = "TRANS-YOUR-GENDER.gif" + +[[60-fun]] +alt = "Ban Porn" +file = "BAN-PORN.png" + +[[60-fun]] +alt = "Defective by Design" +file = "DEFECTIVE-by-design-ELIMINATE-DRM-NOW.webp" +href = "https://www.defectivebydesign.org" +spam = true + +[[60-fun]] +alt = "Illegal number" +file = "aacs.2925462440.png" +href = "https://en.wikipedia.org/wiki/Illegal_number" +spam = true + +[[60-fun]] +alt = "Piracy Now!" +file = "Piracy-Now.png" +href = "https://fmhy.pages.dev" +spam = true + +[[60-fun]] +alt = "Sharing is caring, seed your torrents" +file = "Sharing-is-caring-seed-your-torrents.gif" + +# “Emulate Now!” badge from Neon with a Zero on Tumblr: https://ne0nwithazero.tumblr.com/post/702936474323206144 +[[60-fun]] +alt = "Emulate Now!" +file = "Emulate-Now.png" +href = "https://rentry.org/emulation" +spam = true + +[[60-fun]] +alt = "Campaign against iFrames!" +file = "Campaign-against-FRAMES.gif" + diff --git a/content/it/miscellanea/Copie-sitoctt.md b/content/it/miscellanea/Copie-sitoctt.md index c633280..8cb9683 100644 --- a/content/it/miscellanea/Copie-sitoctt.md +++ b/content/it/miscellanea/Copie-sitoctt.md @@ -8,7 +8,7 @@ Oltre alla versione "normale" del sito, cioè servita dagli indirizzi web uffici ## Archivi Offline -A parte [il codice sorgente disponibile]({{< relref "/miscellanea/Open-Source-sitoctt/#repository" >}}), che può essere archiviato e riutilizzato da chiunque ne abbia le competenze per rigenerare le pagine dalle loro parti essenziali, il sito è progettato per poter essere agevolmente accessibile a tutti senza dipendere dal mio server. +A parte [il codice sorgente disponibile]({{< relref "/miscellanea/Open-Source-sitoctt/#repository" >}}), che può essere archiviato e riutilizzato da chiunque ne abbia le competenze per rigenerare le pagine dalle loro parti essenziali, il sito è progettato per poter essere agevolmente accessibile a tutti senza dipendere dal mio server; per di più, lo si può facilmente ricondividere per intero tramite pennette USB, email, messaggistica istantanea, ecc... Senza bisogno di strumenti speciali (come ne esistono per clonare qualsiasi sito web), è possibile scaricare una copia precompilata di tutti i file del sito in formato di cartella ZIP, altamente compatibile con qualsiasi sistema. Basta scaricare una delle varianti di seguito, scompattare l'intero archivio, ed aprire `index.html` (o qualsiasi altro file HTML) con il browser per navigare offline. @@ -21,7 +21,7 @@ Sul web esistono alcuni servizi che tengono copie di pagine o di interi siti, pi Il sitoctt non è escluso dall'archivio più grosso al mondo, la _Wayback Machine_ dell'_Internet Archive_: se ne possono cercare le pagine, per URL e data, da . Pagine specifiche vengono salvate solo quando qualcuno o qualcosa ne fa richiesta al servizio, quindi la disponibilità dei contenuti può essere limitata. -Esistono inoltre in giro archivi privati o aperti al pubblico, che potrebbero ospitare anche copie del mio sito. Non ne conosco nessuno, quindi consiglio di esercitare la giusta cautela nel consultarli, casomai dovessero uscirne fuori alcuni. +Esistono inoltre in giro archivi privati o aperti al pubblico, che potrebbero ospitare anche copie del mio sito. Non ne conosco nessuno, quindi consiglio di esercitare la giusta cautela nel consultarli, casomai dovessero uscirne fuori alcuni. Magari lasciatene qualcuno nei commenti a questa pagina. Chiunque voglia mettere a disposizione una copia del sitoctt su un proprio server può tranquillamente farlo, senza chiedermi esplicito permesso, [secondo i termini della licenza]({{< relref "/miscellanea/Open-Source-sitoctt/" >}}); chiedo soltanto che si renda chiaro si tratti di copie (con banner o simili inseriti sulle pagine), e che non si alterino i cosidetti "link canonical" nelle pagine HTML (``, tag usati dai motori di ricerca per determinare la fonte dei contenuti). @@ -29,6 +29,6 @@ Chiunque voglia mettere a disposizione una copia del sitoctt su un proprio serve Queste non sono propriamente copie nel senso che ho finora descritto, ma il sito è disponibile ufficialmente anche da domini e server secondari forniti da me. I contenuti sono esattamente gli stessi del dominio principale, ma può capitare che subiscano ritardi nell'aggiornamento. ...Dovrei listarli su qualche pagina specifica, ma per ora è bene almeno piazzarli da qualche parte, ecco qua: -* Principale, solo HTTPS: -* Secondario, solo HTTP non cifrato: +* Principale, solo HTTPS: +* Secondario, solo HTTP non cifrato: * Secondario, _hidden service_ sulla rete Tor: (momentaneamente fuori servizio) diff --git a/content/it/miscellanea/Raccolta-Emblemi.md b/content/it/miscellanea/Raccolta-Emblemi.md new file mode 100644 index 0000000..24f90a9 --- /dev/null +++ b/content/it/miscellanea/Raccolta-Emblemi.md @@ -0,0 +1,49 @@ ++++ +Title = "⚜️ Raccolta Emblemi" +Categories = [ "Fritto-Misto" ] +Lastmod = 2024-12-02 ++++ + +Piastrellati sul sitoctt, così come sui siti di altre persone _che vivono nel mio computer_, ci sono queste immaginette colorate. A volte animate, a volte con qualcosa di sensato scritto dentro ed altre no, ed alcune che linkano ad altre pagine o comunque fanno qualcosa di utile. + +Ce ne sono di diversi tipi, con diversi nomi: bottoni o banner (di solito grandi 88x31 pixel), _blinkie_ (più bassi e larghi, di solito 150x20 e animati), o vattelappesca. Alla fine sono in qualche modo tutti assimilabili a degli emblemi, e quindi ho creato questa pagina per raccoglierli; elencando innanzitutto quelli che uso in generale nel sito, aggiungendo maggiori informazioni, e magari piazzandone altri che mi piacciono trovati in giro. + +_In costruzione..._ + +## Quelli usati qui + +{{< footer-buttons extended=true >}} + +## Altre Risorse + +Ovviamente, ci sono sia siti che raccolgono e catalogano quantità industriali di queste immagini, sia paginette come questa su altri siti personali. Ecco quindi altre raccolte che conosco e consiglio (chi ne conosce altre può lasciarle nei commenti a questa pagina): + +* (11K+) _The 88x31 GIF Banner Database_: https://88x31db.com +* (4K+) _The 88x31 GIF Collection_: https://cyber.dabamos.de/88x31/ + * Mirror: https://www.deadnet.se/88x31/ +* (31K+) _THE 88×31 ARCHIVE_: https://hellnet.work/8831/ +* _88x31 Button Library_: https://lazerdart.uk/buttons +* (27K+) _The 88x31 GIF Collection_: http://www.textfiles.com/underconstruction/88x31/ (attenzione: pagina pesantissima) +* _kate's 88x31 button archive_: https://88x31.kate.pet — https://github.com/ktwrd/88x31 +* ![]({{< assetsRoot >}}/Media/Buttons/88x31/Sites/the-largest-88x31-collection-2.png) _the largest 88x31 collection on the internet_: https://capstasher.neocities.org/88x31collection-page1 +* _A.N. Lucas's 88x31 button Collection_: https://anlucas.neocities.org/88x31Buttons — https://news.ycombinator.com/item?id=33793273 +* https://winter.entities.org.uk/buttons/ +* _Fustilugz's Button Collection_: https://fustilugz.neocities.org +* _My 88x31 Button Store_: https://88x31.nekoweb.org/ +* _88x31 (Now) Buttons_: https://dannarchy.com/now +* _Neko Buttons_: https://buttons.nekoweb.org +* _DOKODEMO Buttons_: https://dokode.moe/buttons + +Ci sono anche strumenti di creazione e simili risorse, a proposito: + +* _blinkie maker | generate blinkie gifs with custom text!_: https://blinkies.cafe — https://github.com/piconaut/blinkies.cafe — offre vari template e permette di usarli per creare blinkie con il testo che si vuole +* _88x31 Web Button Maker_: https://hekate2.github.io/buttonmaker/ — https://github.com/hekate2/buttonmaker +* _88x31 Button Maker_: https://sadgrlonline.github.io/88x31-button-maker/ — https://github.com/sadgrlonline/88x31-button-maker + +Ancora altre informazioni e risorse sull'argomento: + +* _How2 - 88x31 Buttons | BMH Online_: https://bmh.neocities.org/how2/buttons — spiega ancora cose sui bottoni 88x31 +* — https://breq.dev/projects/eightyeightthirtyone — servizio che fa crawling di tutti i possibili siti seguendo i link dei bottoni 88x31, mostrando un grafico a rami + +Consiglio: Gli emblemi usati sul mio sito sono tutti ri-hostati da me, e nel processo di ricaricarli mi assicuro di comprimerli con i migliori algoritmi lossless in circolazione, così che occupino il minor spazio possibile pur senza perdere alcun grado di qualità dell'immagine. Consiglio a tutti gli altri di adoperarsi per fare lo stesso, ci sono solo vantaggi. + diff --git a/content/it/miscellanea/Raccolta-Separatori.md b/content/it/miscellanea/Raccolta-Separatori.md index 9a30fed..cdb7a2c 100644 --- a/content/it/miscellanea/Raccolta-Separatori.md +++ b/content/it/miscellanea/Raccolta-Separatori.md @@ -62,13 +62,13 @@ Raccolte: -{{ partial "ImgButton.html" (dict - "alt" "Linux Now!" - "srcRelative" "Linux-NOW-Xenia.png" - "href" "https://kernel.org" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Use Linux Online" - "srcRelative" "Linux-Online.png" - "href" "https://www.onworks.net" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Haiku OS Now!" - "srcRelative" "HAIKU-NOW.png" - "href" "https://www.haiku-os.org" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Join the Fediverse!!!" - "srcRelative" "Join-the-Fediverse.gif" - "href" "https://jointhefediverse.net" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "matrix" - "srcRelative" "matrix.png" - "href" "https://matrix.org" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "VOCALOID Now!" - "srcRelative" "VOCALOID-Now.png" - "href" "https://www.vocaloid.com" - "rel" "nofollow" -) }} - -
- -{{ partial "ImgButton.html" (dict - "alt" "ISO 8601 now!" - "srcRelative" "ISO-8601-now.png" - "href" "https://www.w3.org/QA/Tips/iso-date" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "I support net neutrality" - "srcRelative" "I-SUPPORT-NET-NEUTRALITY.png" - "href" "https://en.wikipedia.org/wiki/Net_neutrality" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "I support right to repair" - "srcRelative" "I-SUPPORT-RIGHT-TO-REPAIR.png" - "href" "https://en.wikipedia.org/wiki/Right_to_repair" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Trans Your Gender" - "srcRelative" "TRANS-YOUR-GENDER.gif" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Ban Porn" - "srcRelative" "BAN-PORN.png" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Defective by Design" - "srcRelative" "DEFECTIVE-by-design-ELIMINATE-DRM-NOW.webp" - "href" "https://www.defectivebydesign.org" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Illegal number" - "srcRelative" "aacs.2925462440.png" - "href" "https://en.wikipedia.org/wiki/Illegal_number" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Piracy Now!" - "srcRelative" "Piracy-Now.png" - "href" "https://fmhy.pages.dev" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Sharing is caring, seed your torrents" - "srcRelative" "Sharing-is-caring-seed-your-torrents.gif" -) }} - - -{{ partial "ImgButton.html" (dict - "alt" "Emulate Now!" - "srcRelative" "Emulate-Now.png" - "href" "https://rentry.org/emulation" - "rel" "nofollow" -) }} - -{{ partial "ImgButton.html" (dict - "alt" "Campaign against iFrames!" - "srcRelative" "Campaign-against-FRAMES.gif" -) }} - -
diff --git a/layouts/shortcodes/footer-buttons.html b/layouts/shortcodes/footer-buttons.html new file mode 100644 index 0000000..469a97b --- /dev/null +++ b/layouts/shortcodes/footer-buttons.html @@ -0,0 +1 @@ +{{ partial "footer-buttons.html" . }}