mirror of https://gitlab.com/octtspacc/sitoctt
Update markdown editor, aggiornamento 3 pagine
This commit is contained in:
parent
a5cf31a5fd
commit
3fc5c7cf87
|
@ -3,7 +3,7 @@ ModificationMetadataKey = "lastmod"
|
||||||
KeepOriginalMetadata = ["draft", "date", "lastmod"]
|
KeepOriginalMetadata = ["draft", "date", "lastmod"]
|
||||||
DestinationLanguages = ["it", "en", "es", "fr"] # "de", "eo"
|
DestinationLanguages = ["it", "en", "es", "fr"] # "de", "eo"
|
||||||
IncludePaths = ["/"]
|
IncludePaths = ["/"]
|
||||||
ExcludePaths = ["/note/2024-09-19-Raspberry-Output-Audio-Both.md", "/miscellanea/Devlogs.md"] # "/miscellanea/PicoBlog.md"
|
ExcludePaths = ["/note/2024-09-19-Raspberry-Output-Audio-Both.md", "/miscellanea/Devlogs.md", "/admin.md"] # "/miscellanea/PicoBlog.md"
|
||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
from os import getcwd, listdir
|
from os import getcwd, listdir
|
||||||
|
@ -173,20 +173,20 @@ def translate_document(document_path, documents):
|
||||||
printf('\n')
|
printf('\n')
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
for source_language in listdir('../content'):
|
for source_language in listdir("../content"):
|
||||||
for folder_path in IncludePaths:
|
for folder_path in IncludePaths:
|
||||||
documents = find_documents('../content/' + source_language + folder_path)
|
documents = find_documents("../content/" + source_language + folder_path)
|
||||||
for document_path in documents:
|
for document_path in documents:
|
||||||
if len(documents[document_path]):
|
if len(documents[document_path]):
|
||||||
translate_document(document_path, documents)
|
translate_document(document_path, documents)
|
||||||
|
|
||||||
def read_from_scripts(relative_path:str):
|
def read_from_scripts(relative_path:str):
|
||||||
return open((dirname(realpath(__file__)) + '/../' + relative_path), 'r').read()
|
return open((dirname(realpath(__file__)) + "/../" + relative_path), 'r').read()
|
||||||
|
|
||||||
TranslationMagic = ("__" + str(ascii_to_number("sitoctt")))
|
TranslationMagic = ("__" + str(ascii_to_number("sitoctt")))
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
globals_text = read_from_scripts('Lib/Globals.sh')
|
globals_text = read_from_scripts("Lib/Globals.sh")
|
||||||
exec(globals_text.split('#' + globals_text.splitlines()[0].split('#!')[1] + '!')[0])
|
exec(globals_text.split('#' + globals_text.splitlines()[0].split('#!')[1] + '!')[0])
|
||||||
#exec(read_from_scripts('../config.toml'))
|
exec(read_from_scripts("../assets/SiteProps.toml"))
|
||||||
main()
|
main()
|
||||||
|
|
|
@ -28,7 +28,8 @@ it = "Altre cose"
|
||||||
[[10-site]]
|
[[10-site]]
|
||||||
alt = "CC BY-SA"
|
alt = "CC BY-SA"
|
||||||
file = "CC-BY-SA.svg"
|
file = "CC-BY-SA.svg"
|
||||||
href = "https://creativecommons.org/licenses/by-sa/4.0/deed.it?ref=chooser-v1&title=%E2%9C%A8sitoctt%E2%9C%A8&href=https://sitoctt.octt.eu.org&creator=OctoSpacc"
|
href = "/it/miscellanea/%EF%B8%8F-Open-Source/"
|
||||||
|
#href = "https://creativecommons.org/licenses/by-sa/4.0/deed.it?ref=chooser-v1&title=%E2%9C%A8sitoctt%E2%9C%A8&href=https://sitoctt.octt.eu.org&creator=OctoSpacc"
|
||||||
|
|
||||||
[[10-site]]
|
[[10-site]]
|
||||||
alt = "✨sitoctt"
|
alt = "✨sitoctt"
|
||||||
|
|
|
@ -4,19 +4,22 @@ Hidden = true
|
||||||
<form name="admin">
|
<form name="admin">
|
||||||
<fieldset name="git" disabled>
|
<fieldset name="git" disabled>
|
||||||
<legend>Git Configuration</legend>
|
<legend>Git Configuration</legend>
|
||||||
<p><label>Instance URL: <input type="url" name="InstanceUrl"/></label></p>
|
<p><label>Instance URL: <input type="url" name="GitInstanceUrl"/></label></p>
|
||||||
<p><label>Repository Path: <input type="text" name="RepoThis"/></label></p>
|
<p><label>Repository Path: <input type="text" name="GitRepoThis"/></label></p>
|
||||||
<p><label>Branch Name: <input type="text" name="BranchThis"/></label></p>
|
<p><label>Branch Name: <input type="text" name="GitBranchThis"/></label></p>
|
||||||
<p><label>Access Token: <input type="password" name="token" placeholder="***"/></label></p>
|
<p><label>Access Token: <input type="password" name="GitToken" placeholder="***"/></label></p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<style> form[name="admin"] input { float: right; } </style>
|
<style>
|
||||||
|
form[name="admin"] label { white-space: nowrap; }
|
||||||
|
form[name="admin"] input { float: right; }
|
||||||
|
</style>
|
||||||
<script>(() => {
|
<script>(() => {
|
||||||
const formEl = document.querySelector('form[name="admin"]');
|
const formEl = document.querySelector('form[name="admin"]');
|
||||||
const gitEl = formEl.querySelector('fieldset[name="git"]');
|
const gitEl = formEl.querySelector('fieldset[name="git"]');
|
||||||
const gitData = (sitoctt.localStorage('gitAuth') || {});
|
const gitData = (sitoctt.localStorage('gitAuth') || {});
|
||||||
for (const fieldEl of gitEl.querySelectorAll('input')) {
|
for (const fieldEl of gitEl.querySelectorAll('input')) {
|
||||||
fieldEl.placeholder ||= sitoctt.Props[`Git${fieldEl.name}`];
|
fieldEl.placeholder ||= sitoctt.Props[fieldEl.name];
|
||||||
fieldEl.value = (gitData[fieldEl.name] || '');
|
fieldEl.value = (gitData[fieldEl.name] || '');
|
||||||
fieldEl.oninput = fieldEl.onchange = fieldEl.onpaste = () => {
|
fieldEl.oninput = fieldEl.onchange = fieldEl.onpaste = () => {
|
||||||
gitData[fieldEl.name] = fieldEl.value;
|
gitData[fieldEl.name] = fieldEl.value;
|
||||||
|
@ -24,4 +27,4 @@ Hidden = true
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
gitEl.disabled = false;
|
gitEl.disabled = false;
|
||||||
})();</script>
|
})();</script>
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
+++
|
||||||
|
Title = "🔓️ Open Source"
|
||||||
|
Categories = [ "Fritto-Misto" ]
|
||||||
|
Lastmod = 2024-10-22
|
||||||
|
+++
|
||||||
|
|
||||||
|
Tutto il contenuto presente su questo sito che ho creato io (i miei testi, media originali, e maggior parte del codice sorgente) è rilasciato sotto licenza <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.it?ref=chooser-v1&title=%E2%9C%A8sitoctt%E2%9C%A8&href=https://sitoctt.octt.eu.org&creator=OctoSpacc" rel="noopener" target="_blank">"Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale" (CC BY-SA 4.0) (<span class="CCIcons"><img class="mw1" src="{{< assetsRoot >}}/Media/Icons/CC/CC.svg"/> <img class="mw1" src="{{< assetsRoot >}}/Media/Icons/CC/BY.svg"/> <img class="mw1" src="{{< assetsRoot >}}/Media/Icons/CC/SA.svg"/>)</span></a>, una licenza libera che promuove la condivisione, e non intacca i legittimi diritti alla cultura e la collaborazione dell'umanità in generale.
|
||||||
|
|
||||||
|
Sono presenti, però, anche contenuti non miei.
|
||||||
|
In genere, se qualcosa viene dalla mia mano, non avrà nessuna indicazione di crediti vicino.
|
||||||
|
Per la roba presa in prestito, invece, verrà quando possibile sempre indicata la fonte da cui ho prelevato e la licenza dell'oggetto, che sia questa di dominio pubblico, Creative Commons, o non specificata.
|
||||||
|
Occhio, che i crediti per le cosine HTML e CSS spesso li lascio soltanto nei sorgenti della pagina.. Quindi, in caso, controlla lì per questo genere di crediti. Per cose come immagini o testi, invece, spesso eventuali crediti sono parte visibile della pagina, vicini all'elemento preso in prestito (come una descrizione); altre volte, lo stesso oggetto è un link che, se cliccato, riporta alla fonte.
|
||||||
|
|
||||||
|
## Repository
|
||||||
|
|
||||||
|
Tutti i sorgenti del sito sono scaricabili dalle rispettive repo Git (GitLab.com) (così divisi per tenere la cronologia pulita), alle condizioni descritte sopra:
|
||||||
|
|
||||||
|
* Principale: https://gitlab.com/octtspacc/sitoctt
|
||||||
|
* Media: https://gitlab.com/octtspacc/sitoctt-assets
|
||||||
|
|
||||||
|
Mirrors, sempre presenti nel caso succeda qualche _patatrac_ alle repository principali:
|
||||||
|
* GitHub: https://github.com/octospacc/sitoctt, https://github.com/octospacc/sitoctt-assets
|
||||||
|
* Gitea.it: https://gitea.it/octospacc/sitoctt, https://gitea.it/octospacc/sitoctt-assets
|
||||||
|
|
|
@ -4,18 +4,36 @@ Aliases = [
|
||||||
"/Raccolte/Media/Raccolta-Musica.html",
|
"/Raccolte/Media/Raccolta-Musica.html",
|
||||||
]
|
]
|
||||||
Categories = [ "Fritto-Misto" ]
|
Categories = [ "Fritto-Misto" ]
|
||||||
|
Lastmod = 2024-10-22
|
||||||
+++
|
+++
|
||||||
|
|
||||||
_In costruzione..._
|
Questa pagina è dedicata a raccogliere varia musica che mi piace; un po' per la mia personale goduria, ma anche perché, forse, così ho direttamente un singolo link da dare a giro, quando qualcuno mi chiede "_che musica ascolti?_" senza avere la minima idea di cosa potrebbe mai andare incontro. 🥁️
|
||||||
|
|
||||||
|
La divisione principale è per artisti e gruppi che complessivamente mi piacciono, e poi per singoli album sparsi, di musicisti che nel totale _non saprei_ o che sono direttamente creati da più artisti. Come tutte le altre pagine però, a causa di una perenne maledizione, è _in costruzione..._
|
||||||
|
|
||||||
|
## Artisti e Gruppi
|
||||||
|
|
||||||
|
### Macross 82-99
|
||||||
|
|
||||||
- <span><h3>Macross 82-99</h3></span>
|
|
||||||
Principalmente musica del filone future-funk, sottogenere della vaporwave con un timbro più ritmato e carino. Ogni album ha dei temi sonori diversi, con rimandi alla cultura pop giapponese degli anni '80 e '90. Bene o male tutte le sue canzoni riescono ad essere molto calme e rilassanti.
|
Principalmente musica del filone future-funk, sottogenere della vaporwave con un timbro più ritmato e carino. Ogni album ha dei temi sonori diversi, con rimandi alla cultura pop giapponese degli anni '80 e '90. Bene o male tutte le sue canzoni riescono ad essere molto calme e rilassanti.
|
||||||
• [SoundCloud](https://soundcloud.com/macross-82-99), [YouTube](https://www.youtube.com/channel/UCYIQZpv7Jv9GImzgknNZNPA), [Bandcamp](https://macross82-99.bandcamp.com/music), [Archive.org](https://archive.org/details/macross-82-99-01-meeting-point)
|
|
||||||
|
|
||||||
- <span><h3>Moe Shop</h3></span>
|
* [SoundCloud](https://soundcloud.com/macross-82-99), [YouTube](https://www.youtube.com/channel/UCYIQZpv7Jv9GImzgknNZNPA), [Bandcamp](https://macross82-99.bandcamp.com/music), [Archive.org](https://archive.org/details/macross-82-99-01-meeting-point)
|
||||||
|
|
||||||
|
### Moe Shop
|
||||||
|
|
||||||
Canzoni per la maggiore vivaci, con un'atmosfera, per così dire, anime. Le copertine degli album penso si sposino parecchio bene con la sua musica. Alcuni suoi pezzi presentano delle sonorità meno giocose e con caratteri più vicini a tipi più comuni di musica elettronica, ma riesco ad apprezzarli molto comunque.
|
Canzoni per la maggiore vivaci, con un'atmosfera, per così dire, anime. Le copertine degli album penso si sposino parecchio bene con la sua musica. Alcuni suoi pezzi presentano delle sonorità meno giocose e con caratteri più vicini a tipi più comuni di musica elettronica, ma riesco ad apprezzarli molto comunque.
|
||||||
• [SoundCloud](https://soundcloud.com/moeshop), [YouTube](https://www.youtube.com/channel/UCcKTRoHPP2hPaom63QGaiBw), [Bandcamp](https://moeshop.bandcamp.com/music), [Archive.org](https://archive.org/details/Moe-Shop-Full-Discography)
|
|
||||||
|
|
||||||
- <span><h3>Ujico / Snail's House</h3></span>
|
* [SoundCloud](https://soundcloud.com/moeshop), [YouTube](https://www.youtube.com/channel/UCcKTRoHPP2hPaom63QGaiBw), [Bandcamp](https://moeshop.bandcamp.com/music), [Archive.org](https://archive.org/details/Moe-Shop-Full-Discography)
|
||||||
|
|
||||||
|
### Ujico / Snail's House
|
||||||
|
|
||||||
Sapevo fossero la stessa persona, ma non sapevo che "Ujico" e "Snail's House" fossero effettivamente dei personaggi con identità diverse<sup>[[?](https://en.m.wikipedia.org/wiki/Snail's_House#History)]</sup> per quanto riguarda la composizione musicale. Ho conosciuto inizialmente la sua musica, almeno in parte future-bass, fatta sotto il nome di Snail's House. Lì si vede il suo stile attuale, i cui suoni kawaii elettronici mi sono sempre piaciuti. Più tardi, ho scoperto i suoi album precedenti, che a livello di espressività si orientano più sul complesso della musica in sé, e non sui piccoli dettagli. Due modi molto diversi di creare un genere di musica, con diverse ambientazioni, ma entrambi con lo stesso timbro personale magnifico.
|
Sapevo fossero la stessa persona, ma non sapevo che "Ujico" e "Snail's House" fossero effettivamente dei personaggi con identità diverse<sup>[[?](https://en.m.wikipedia.org/wiki/Snail's_House#History)]</sup> per quanto riguarda la composizione musicale. Ho conosciuto inizialmente la sua musica, almeno in parte future-bass, fatta sotto il nome di Snail's House. Lì si vede il suo stile attuale, i cui suoni kawaii elettronici mi sono sempre piaciuti. Più tardi, ho scoperto i suoi album precedenti, che a livello di espressività si orientano più sul complesso della musica in sé, e non sui piccoli dettagli. Due modi molto diversi di creare un genere di musica, con diverse ambientazioni, ma entrambi con lo stesso timbro personale magnifico.
|
||||||
• [SoundCloud](https://soundcloud.com/ujico), [YouTube](https://www.youtube.com/channel/UCYxBY8mhJ7R2rMIcQ28H_Zw), [Bandcamp](https://0101.bandcamp.com/music), [Archive.org](https://archive.org/details/ujico-snails-house-full-discography)
|
|
||||||
|
* [SoundCloud](https://soundcloud.com/ujico), [YouTube](https://www.youtube.com/channel/UCYxBY8mhJ7R2rMIcQ28H_Zw), [Bandcamp](https://0101.bandcamp.com/music), [Archive.org](https://archive.org/details/ujico-snails-house-full-discography)
|
||||||
|
|
||||||
|
<!-- ## Album vari -->
|
||||||
|
|
||||||
|
## Menzioni speciali
|
||||||
|
|
||||||
|
* In passato, quando decisamente non avevo un gusto particolarmente definito, ascoltavo un botto di canzoni _nightcore_. Nella pratica, sono remix di normali canzoni esistenti, fatti in un modo da spingere in alto toni e velocità, per avere un suono particolare, più _moe_ e interessante.<sup>[[Wikipedia](https://it.wikipedia.org/wiki/Nightcore)]</sup> Non ci sono veri artisti, perché appunto si tratta di remissaggio... ma questa è solo semantica, e anche chiamandoli con un nome diverso non saprei cosa consigliare. Si può semplicemente [cercare "nightcore" su YouTube](https://www.youtube.com/results?search_query=nightcore), e non basterà una vita per ascoltare tutti i risultati! 😵️
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
+++
|
||||||
|
Title = "🚧️ Raccolta Separatori"
|
||||||
|
Categories = [ "Fritto-Misto" ]
|
||||||
|
Lastmod = 2024-10-22
|
||||||
|
+++
|
||||||
|
|
||||||
|
Per dei "separatori" talmente preziosi da meritare una pagina intera non intendo quelli delle cifre decimali... bensì più in generale un tipo di elemento grafico che serve, come dice il nome, a creare una divisione tra più elementi non di per sé molto distinti, bilanciando il posizionamento dei contenuti con un qualcosa che crea del vuoto riempiendolo.
|
||||||
|
|
||||||
|
Nel nostro mondo reale, anziché quello ideale dei miei scritti, questo significa in sostanza: sticker sottili per le app di messaggistica ad uso di broadcasting (come i canali Telegram), composizioni con testo Unicode che vanno a creare lineette particolari per il testo in qualche pagina, ma anche i ghirigori che facevate sul quaderno di matematica delle elementari tra un esercizio e un altro.
|
||||||
|
|
||||||
|
Com'è che pure i bambini di 5 anni usano i separatori (e non lo sanno!), ma qui sul web siamo ad un punto in cui è difficile trovare belle raccolte di divisori grosse e utili, e per la maggiore queste grafichine si riescono a scambiare solo col passaparola? Almeno, così è nel cercare pacchetti di separatori per Telegram, che erano quelli che mi servivano, quindi vale la pena tentare di almeno apparare il problema. 📜️
|
||||||
|
|
||||||
|
## Immagini e Sticker
|
||||||
|
|
||||||
|
Pacchetti bellini:
|
||||||
|
|
||||||
|
* _Spacc Inc. Separatori_: https://t.me/addstickers/Separatori0 (questi li ho creati io per Spacc Inc.!)
|
||||||
|
* _Separatori - by DonyDeBa_: https://combot.org/stickers/separatoriddb
|
||||||
|
* _Separatori belli_: https://t.me/addstickers/MySeparatori
|
||||||
|
* _Saperators and Dividers_: https://fullyst.com/sticker_set/ult_Saperators_and_Dividers299247_by_UriBaba_bot
|
||||||
|
* _Separatori @eXtrazOne_: https://fullyst.com/sticker_set/eXtrasEparatori
|
||||||
|
* _@AllMenuu / Separadores ; Abelito._: https://fullyst.com/sticker_set/SeparatosAbelito
|
||||||
|
* _@notasfavoritas ✍️ separadores :_ https://fullyst.com/sticker_set/Notasfavoritas2_by_fStikBot
|
||||||
|
* _alternative separator | @stkworld_: https://combot.org/stickers/alternativesbystkworld
|
||||||
|
* _Separator Hearts @PunjabiSticker_: https://combot.org/stickers/separatorhearts
|
||||||
|
* _Separator Flower Thin @PunjabiSticker_: https://combot.org/stickers/separatorflowerthin
|
||||||
|
* _Separatori 2.0_: https://combot.org/stickers/separatoricososi
|
||||||
|
* _Separatori_: https://combot.org/stickers/separatori_by_stickersthiefbot
|
||||||
|
* _Separadores_Aesthetic_: https://combot.org/stickers/separadores_aesthetic
|
||||||
|
* _➿Separadores07➿ — @stckrRobot_: https://combot.org/stickers/spc5b4666fb9dad3d22c13934eb739f3f6_by_stckrrobot
|
||||||
|
* _Separadores 2 *Perigosas*_: https://combot.org/stickers/separadorperigoosas
|
||||||
|
* _Separadores Steal Pack 1_: https://combot.org/stickers/a1_692276031_by_crimsonmegubot
|
||||||
|
* _Separadores da juh @Brisadamanha 🌺_: https://combot.org/stickers/pack3juliana
|
||||||
|
* _Separadores - Alas🌸MiLa — @stckrRobot_: https://combot.org/stickers/sp526176cee83609de52836a2e3cad8aad_by_stckrrobot
|
||||||
|
* _Separadores Canais DℛαℳαՇ¡☪α_: https://combot.org/stickers/separadorescanais
|
||||||
|
* _separadores en línea — @stckrRobot_: https://combot.org/stickers/sp2b9d8c6b9e7b468223c2d5f447125506_by_stckrrobot
|
||||||
|
* _divider ⋆ @Pngrxu ུ_: https://combot.org/stickers/pngrux_by_favorite_stickers_bot
|
||||||
|
* _Divider by @AestheticSymbolsFont_: https://combot.org/stickers/dividerbycmbol
|
||||||
|
* _Magical Divider @DividerStudio_: https://combot.org/stickers/magicaldivider
|
||||||
|
* _Cute Divider @DividerStudio_: https://combot.org/stickers/cutedivider
|
||||||
|
* _Floral divider @DividerStudio_: https://combot.org/stickers/floraldivider
|
||||||
|
* _Rainbow Pastel Divider @DividerStudio_: https://combot.org/stickers/rainbowpasteldivider
|
||||||
|
* _Cute Pastel Divider 1 @DividerStudio_: https://combot.org/stickers/cutepasteldivider
|
||||||
|
* _Cute Pastel Divider 2 @DividerStudio_: https://combot.org/stickers/pastelcutedivider2
|
||||||
|
* _Cute Pastel Divider 3 @DividerStudio_: https://combot.org/stickers/cutepasteldivider3
|
||||||
|
* _Cute Pastel Divider 4 @DividerStudio_: https://combot.org/stickers/cutepasteldivider4
|
||||||
|
* _Dividers_: https://combot.org/stickers/chatdividers
|
||||||
|
* _Dividers🌿 @SweetiGarden_: https://combot.org/stickers/dividersgreenn
|
||||||
|
* _dividers by @walkchode_: https://combot.org/stickers/ddividers
|
||||||
|
* _dividers by @winteurhs_: https://combot.org/stickers/dividerss
|
||||||
|
* _@aestheticsekai3862 ⊹ ִֶָ 🌱Zoha🎐 ִֶָ ⊹ Dividers_: https://combot.org/stickers/sp6793640cb9ec5c453ab3122064ddd091_by_stckrrobot
|
||||||
|
* _Oneechan's dividers @araarasubscribe_: https://combot.org/stickers/araarasubscribe
|
||||||
|
* _𓏲 🥛 dividers ✿ @kiokome :: @fStikBot_: https://combot.org/stickers/gftrdcc_by_fstikbot
|
||||||
|
* _Cute Dividers @soft_stickers :: @fStikBot_: https://combot.org/stickers/cutedividerssoft_stickers_by_fstikbot
|
||||||
|
|
||||||
|
Raccolte: <!-- (basta cercare per parole chiave `separator`, `separatori`, `separadores`, `divider`, `dividers`): -->
|
||||||
|
|
||||||
|
* _(ㅅ´ ˘ `)♡ ᴅɪᴠɪᴅᴇʀꜱ • ᴘʀᴇᴍɪᴜᴍ ᴇᴍᴏᴊɪ 🎐_: https://t.me/Best_Dividers
|
||||||
|
|
||||||
|
## Fatti in Testo
|
||||||
|
|
||||||
|
Per i separatori di testo, ci sono per fortuna svariati siti e pagine che ne raccolgono di ogni genere, anche se non immediati da trovare. Eccone alcuni che ho beccato sui motori di ricerca e mi sono sembrati decenti:
|
||||||
|
|
||||||
|
* Copy Paste 🎉 Text dividers and separators: https://copy-paste.net/en/text-dividers.php
|
||||||
|
* Free Text Dividers (ASCII) - InspireMari.nl: https://inspiremari.nl/resources/free-text-dividers-ascii/
|
||||||
|
* Aesthetic Divider Symbols ┊ ┊ ┊. ➶ ˚ — https://www.aestheticsymbols.me/dividers.html
|
||||||
|
* Aesthetic Text Dividers Symbols Copy and Paste ┆彡 – TextCopyAndPaste: https://textcopyandpaste.org/aesthetic-text-dividers/
|
||||||
|
* ♕✦Cute aesthetic borders copy and paste (Headers, Text dividers): https://www.copyandpastesymbols.net/aesthetic-borders-copy-and-paste-text-line.html
|
||||||
|
* Dividers | ︶⊹︶︶୨୧︶︶⊹︶… | Copy & Paste: https://emojicombos.com/divider
|
||||||
|
* Separadores: https://t.me/dmsusus
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_In costruzione..._
|
|
@ -139,9 +139,12 @@ Alla fine non è più ospitato in casa mia, ma forse è meglio così, è un cari
|
||||||
|
|
||||||
## Sorgenti e licenze
|
## Sorgenti e licenze
|
||||||
|
|
||||||
|
Vai a ["🔓️ Open Source"]({{< relref "/miscellanea/Open-Source/" >}}).
|
||||||
|
|
||||||
|
<del>
|
||||||
### Licenze dei contenuti
|
### Licenze dei contenuti
|
||||||
|
|
||||||
<p>Tutto il contenuto presente su questo sito che ho creato io (i miei testi, media originali, e maggior parte del codice sorgente) è rilasciato sotto licenza <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.it" rel="noopener" target="_blank">"Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale" (CC BY-SA 4.0) (<span class="CCIcons"><img class="i1em" src="https://sitoctt-assets.octt.eu.org/Media/Icons/CC/CC.svg"/> <img class="i1em" src="https://sitoctt-assets.octt.eu.org/Media/Icons/CC/BY.svg"/> <img <="" class="i1em" span="" src="https://sitoctt-assets.octt.eu.org/Media/Icons/CC/SA.svg"/>)</span></a>, una licenza libera che promuove la condivisione, e non intacca i legittimi diritti alla cultura e la collaborazione dell'umanità in generale.</p>
|
<p>Tutto il contenuto presente su questo sito che ho creato io (i miei testi, media originali, e maggior parte del codice sorgente) è rilasciato sotto licenza <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.it" rel="noopener" target="_blank">"Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale" (CC BY-SA 4.0) (<span class="CCIcons"><img class="i1em" src="https://sitoctt-assets.octt.eu.org/Media/Icons/CC/CC.svg"/> <img class="i1em" src="https://sitoctt-assets.octt.eu.org/Media/Icons/CC/BY.svg"/> <img class="i1em" src="https://sitoctt-assets.octt.eu.org/Media/Icons/CC/SA.svg"/>)</span></a>, una licenza libera che promuove la condivisione, e non intacca i legittimi diritti alla cultura e la collaborazione dell'umanità in generale.</p>
|
||||||
<p>Sono presenti, però, anche contenuti non miei.<br/>In ogni caso, se qualcosa viene dalla mia mano, non avrà nessuna indicazione di crediti vicino. <br/>Per la roba presa in prestito, invece, verrà sempre indicata la fonte da cui ho prelevato e la licenza, che sia questa di dominio pubblico, Creative Commons, o non specificata.<br/>Occhio, che i crediti per le cosine HTML e CSS spesso li lascio soltanto nei sorgenti della pagina.. Quindi, in caso, controlla lì per questo genere di crediti. Per cose come immagini o testi, invece, spesso eventuali crediti sono parte visibile della pagina, vicini all'oggetto preso in prestito (come una descrizione); altre volte, lo stesso oggetto è un link che, se cliccato, riporta alla fonte.<br/>Comunque, ho pensato di creare una sezione della pagina <a href="#-Crediti-speciali">qui sotto</a>, dedicata a crediti speciali (che compilo quando mi ricordo).</p>
|
<p>Sono presenti, però, anche contenuti non miei.<br/>In ogni caso, se qualcosa viene dalla mia mano, non avrà nessuna indicazione di crediti vicino. <br/>Per la roba presa in prestito, invece, verrà sempre indicata la fonte da cui ho prelevato e la licenza, che sia questa di dominio pubblico, Creative Commons, o non specificata.<br/>Occhio, che i crediti per le cosine HTML e CSS spesso li lascio soltanto nei sorgenti della pagina.. Quindi, in caso, controlla lì per questo genere di crediti. Per cose come immagini o testi, invece, spesso eventuali crediti sono parte visibile della pagina, vicini all'oggetto preso in prestito (come una descrizione); altre volte, lo stesso oggetto è un link che, se cliccato, riporta alla fonte.<br/>Comunque, ho pensato di creare una sezione della pagina <a href="#-Crediti-speciali">qui sotto</a>, dedicata a crediti speciali (che compilo quando mi ricordo).</p>
|
||||||
|
|
||||||
### Codice sorgente
|
### Codice sorgente
|
||||||
|
@ -172,6 +175,7 @@ Alla fine non è più ospitato in casa mia, ma forse è meglio così, è un cari
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
|
</del>
|
||||||
|
|
||||||
## Riservatezza e trasparenza
|
## Riservatezza e trasparenza
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,32 @@
|
||||||
(function(){
|
(function(){ // TODO error handling, caching, support GitHub and Gitea
|
||||||
|
|
||||||
|
const auth = { ...sitoctt.Props, ...sitoctt.localStorage('gitAuth') };
|
||||||
|
const editorData = {};
|
||||||
|
let editorHandler;
|
||||||
|
let currentFilePath = `content/${document.documentElement.lang}/${document.documentElement.dataset.sourceFilePath}`;
|
||||||
|
|
||||||
const editorId = '--markdown-editor';
|
const editorId = '--markdown-editor';
|
||||||
const resetFileMessage = 'Reset File to Latest from Git';
|
const resetFileMessage = 'Reset File to Latest from Git';
|
||||||
const gitPushMessage = 'Commit and Push changes to Git';
|
const gitPushMessage = 'Commit and Push changes to Git';
|
||||||
|
|
||||||
// TODO configure this and access token via HTML form
|
const gitApiUrl = (filePath) => `${auth.GitInstanceUrl}/api/v4/projects/${encodeURIComponent(auth.GitRepoThis)}/repository/files/${encodeURIComponent(filePath)}`;
|
||||||
const G = {
|
|
||||||
instance: 'https://gitlab.com',
|
|
||||||
repo: 'octtspacc/sitoctt',
|
|
||||||
branch: 'sitoctt-next',
|
|
||||||
};
|
|
||||||
|
|
||||||
const editorData = {
|
const gitReadFile = async (filePath) => (await (await fetch(`${gitApiUrl(filePath)}/raw?ref=${auth.GitBranchThis}`)).text());
|
||||||
currentFilePath: `content/${document.documentElement.lang}/${document.documentElement.dataset.sourceFilePath}`,
|
|
||||||
};
|
|
||||||
let editorHandler;
|
|
||||||
|
|
||||||
const gitReadFile = async (filePath) => (await (await fetch(`${G.instance}/api/v4/projects/${encodeURIComponent(G.repo)}/repository/files/${encodeURIComponent(filePath)}/raw?ref=${G.branch}`)).text());
|
const gitPushFile = (filePath, fileContent, commitMessage) => fetch(gitApiUrl(filePath), {
|
||||||
|
method: "PUT",
|
||||||
const gitPushFile = (filePath, fileContent) => null; // TODO
|
headers: { "PRIVATE-TOKEN": auth.GitToken, "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify({
|
||||||
|
"id": auth.GitRepoThis,
|
||||||
|
"branch": auth.GitBranchThis,
|
||||||
|
"file_path": encodeURIComponent(filePath),
|
||||||
|
"content": fileContent,
|
||||||
|
"commit_message": commitMessage,
|
||||||
|
}),
|
||||||
|
}).catch(err => {
|
||||||
|
console.error(err);
|
||||||
|
alert(err);
|
||||||
|
});
|
||||||
|
|
||||||
const readPageFile = async (filePath) => { // TODO read cached file in localStorage, but not when a newer one is on git
|
const readPageFile = async (filePath) => { // TODO read cached file in localStorage, but not when a newer one is on git
|
||||||
//if (!filePath) {
|
//if (!filePath) {
|
||||||
|
@ -29,7 +37,7 @@ const readPageFile = async (filePath) => { // TODO read cached file in localStor
|
||||||
|
|
||||||
const cachePageFile = async (filePath, fileContent) => null; // TODO write to localStorage, trigger on any text input
|
const cachePageFile = async (filePath, fileContent) => null; // TODO write to localStorage, trigger on any text input
|
||||||
|
|
||||||
const displayCurrentFile = () => document.querySelector('#--editor-buttons').querySelector('span').innerHTML = `(<code>${editorData.currentFilePath}</code>)`;
|
const displayCurrentFile = () => document.querySelector('#--editor-buttons').querySelector('span').innerHTML = `(<code>${currentFilePath}</code>)`;
|
||||||
|
|
||||||
editorData.close = () => {
|
editorData.close = () => {
|
||||||
const editorEl = document.querySelector(`#${editorId}`);
|
const editorEl = document.querySelector(`#${editorId}`);
|
||||||
|
@ -38,7 +46,7 @@ editorData.close = () => {
|
||||||
document.body.style.overflow = null;
|
document.body.style.overflow = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
editorData.setup = async (/*filePath*/) => {
|
editorData.setup = async () => {
|
||||||
if (editorHandler) {
|
if (editorHandler) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -78,6 +86,16 @@ editorData.setup = async (/*filePath*/) => {
|
||||||
#${editorId} .toastui-editor-toolbar-divider {
|
#${editorId} .toastui-editor-toolbar-divider {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#--editor-buttons[data-pin="1"] {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 9;
|
||||||
|
margin: 1em;
|
||||||
|
padding: 1em;
|
||||||
|
background-color: black;
|
||||||
|
}
|
||||||
` }));
|
` }));
|
||||||
|
|
||||||
document.head.appendChild(Object.assign(document.createElement('link'), {
|
document.head.appendChild(Object.assign(document.createElement('link'), {
|
||||||
|
@ -96,20 +114,21 @@ editorData.setup = async (/*filePath*/) => {
|
||||||
previewStyle: 'tab',
|
previewStyle: 'tab',
|
||||||
hideModeSwitch: true,
|
hideModeSwitch: true,
|
||||||
usageStatistics: false,
|
usageStatistics: false,
|
||||||
initialValue: (await readPageFile(editorData.currentFilePath)),
|
initialValue: (await readPageFile(currentFilePath)),
|
||||||
});
|
});
|
||||||
|
|
||||||
editorHandler.addCommand('markdown', 'closeEditor', editorData.close);
|
editorHandler.addCommand('markdown', 'closeEditor', editorData.close);
|
||||||
|
|
||||||
editorHandler.addCommand('markdown', 'resetFile', (() => { // TODO re-pull page source from git
|
editorHandler.addCommand('markdown', 'resetFile', (() => { // TODO re-pull page source from git
|
||||||
if (confirm(`${resetFileMessage}?`)) {
|
if (confirm(`${resetFileMessage}?`)) {
|
||||||
gitReadFile(editorData.currentFilePath);
|
gitReadFile(currentFilePath);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
editorHandler.addCommand('markdown', 'gitPush', (() => {
|
editorHandler.addCommand('markdown', 'gitPush', (() => {
|
||||||
if (confirm(`${gitPushMessage}?`)) {
|
const message = prompt(`${gitPushMessage} with Message?`, `Update ${currentFilePath}`);
|
||||||
gitPushFile(editorData.currentFilePath);
|
if (message) {
|
||||||
|
gitPushFile(currentFilePath, editorHandler.getMarkdown(), message);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
@ -147,21 +166,26 @@ editorData.setupButtons = () => {
|
||||||
displayCurrentFile();
|
displayCurrentFile();
|
||||||
buttonsEl.querySelector('[name="this"]').onclick = editorData.open;
|
buttonsEl.querySelector('[name="this"]').onclick = editorData.open;
|
||||||
buttonsEl.querySelector('[name="custom"]').onclick = (async () => {
|
buttonsEl.querySelector('[name="custom"]').onclick = (async () => {
|
||||||
const filePath = prompt(`Path of custom File?`);
|
const filePath = prompt(`Path of custom File?`, currentFilePath);
|
||||||
if (filePath) {
|
if (filePath) {
|
||||||
await editorData.setup(/*filePath*/);
|
await editorData.setup();
|
||||||
const fileContent = await readPageFile(editorData.currentFilePath = filePath);
|
const fileContent = await readPageFile(currentFilePath = filePath);
|
||||||
displayCurrentFile();
|
displayCurrentFile();
|
||||||
editorHandler.setMarkdown(fileContent);
|
editorHandler.setMarkdown(fileContent);
|
||||||
await editorData.open();
|
await editorData.open();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
buttonsEl.querySelector('[name="pin"]').onclick = () => {
|
||||||
|
sitoctt.localStorage('editorButtons.pin',
|
||||||
|
(buttonsEl.dataset.pin = Number(!Number(buttonsEl.dataset.pin))));
|
||||||
|
};
|
||||||
|
buttonsEl.dataset.pin = sitoctt.localStorage('editorButtons.pin');
|
||||||
buttonsEl.style.display = null;
|
buttonsEl.style.display = null;
|
||||||
delete editorData.setupButtons;
|
delete editorData.setupButtons;
|
||||||
};
|
};
|
||||||
|
|
||||||
editorData.open = async () => {
|
editorData.open = async () => {
|
||||||
await editorData.setup(/*filePath*/);
|
await editorData.setup();
|
||||||
const editorEl = document.querySelector(`#${editorId}`);
|
const editorEl = document.querySelector(`#${editorId}`);
|
||||||
editorEl.style.display = 'block';
|
editorEl.style.display = 'block';
|
||||||
editorEl.hidden = false;
|
editorEl.hidden = false;
|
||||||
|
@ -170,7 +194,7 @@ editorData.open = async () => {
|
||||||
|
|
||||||
window.sitoctt.markdownEditor = editorData;
|
window.sitoctt.markdownEditor = editorData;
|
||||||
|
|
||||||
if (false) { // TODO show edit page button and presetup editor if localStorage contains token
|
if (auth.GitToken) {
|
||||||
window.addEventListener('load', editorData.setup);
|
window.addEventListener('load', editorData.setup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<footer class="{{ .Site.Params.background_color_class | default "bg-black" }} bottom-0 w-100 pa3" role="contentinfo" style="background-color: #330066;">
|
<footer class="{{ .Site.Params.background_color_class | default "bg-black" }} bottom-0 w-100 pa3" role="contentinfo" style="background-color: #330066;">
|
||||||
<a href="#!/header" class="fixed bg-dark-gray pa3 br-100 bottom-1 right-1" style="background-color:#707; z-index:9;">⬆️</a>
|
<a href="#!/header" class="fixed bg-dark-gray pa3 br-100 bottom-1 right-1" style="background-color:#707; z-index:9;">⬆️</a>
|
||||||
<p id="--editor-buttons" class="white tr" style="display: none;">
|
<p id="--editor-buttons" class="white tr" style="display: none;">
|
||||||
📝️ Edit <span class="f7"></span> <button name="this">Current Page</button> <button name="custom">Custom File</button>
|
📝️ Edit <span class="f7"></span> <button name="pin">📌️</button> <button name="this">Current File 🖋️</button> <button name="custom">Custom Path 🖍️</button>
|
||||||
</p>
|
</p>
|
||||||
<div class="flex justify-between">
|
<div class="flex justify-between">
|
||||||
<a class="fw4 hover-white no-underline white-80 dib-ns pv2 ph3" href="{{ .Site.Home.Permalink }}" >
|
<a class="fw4 hover-white no-underline white-80 dib-ns pv2 ph3" href="{{ .Site.Home.Permalink }}" >
|
||||||
|
|
Loading…
Reference in New Issue