Update markdown editor, aggiornamento 3 pagine

This commit is contained in:
octospacc 2024-10-23 01:16:01 +02:00
parent a5cf31a5fd
commit 3fc5c7cf87
9 changed files with 196 additions and 48 deletions

View File

@ -3,7 +3,7 @@ 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"] # "/miscellanea/PicoBlog.md"
ExcludePaths = ["/note/2024-09-19-Raspberry-Output-Audio-Both.md", "/miscellanea/Devlogs.md", "/admin.md"] # "/miscellanea/PicoBlog.md"
import subprocess
from os import getcwd, listdir
@ -173,20 +173,20 @@ def translate_document(document_path, documents):
printf('\n')
def main():
for source_language in listdir('../content'):
for source_language in listdir("../content"):
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:
if len(documents[document_path]):
translate_document(document_path, documents)
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")))
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(read_from_scripts('../config.toml'))
exec(read_from_scripts("../assets/SiteProps.toml"))
main()

View File

@ -28,7 +28,8 @@ it = "Altre cose"
[[10-site]]
alt = "CC BY-SA"
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]]
alt = "✨sitoctt"

View File

@ -4,19 +4,22 @@ Hidden = true
<form name="admin">
<fieldset name="git" disabled>
<legend>Git Configuration</legend>
<p><label>Instance URL: &nbsp; <input type="url" name="InstanceUrl"/></label></p>
<p><label>Repository Path: &nbsp; <input type="text" name="RepoThis"/></label></p>
<p><label>Branch Name: &nbsp; <input type="text" name="BranchThis"/></label></p>
<p><label>Access Token: &nbsp; <input type="password" name="token" placeholder="***"/></label></p>
<p><label>Instance URL: &nbsp; <input type="url" name="GitInstanceUrl"/></label></p>
<p><label>Repository Path: &nbsp; <input type="text" name="GitRepoThis"/></label></p>
<p><label>Branch Name: &nbsp; <input type="text" name="GitBranchThis"/></label></p>
<p><label>Access Token: &nbsp; <input type="password" name="GitToken" placeholder="***"/></label></p>
</fieldset>
</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>(() => {
const formEl = document.querySelector('form[name="admin"]');
const gitEl = formEl.querySelector('fieldset[name="git"]');
const gitData = (sitoctt.localStorage('gitAuth') || {});
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.oninput = fieldEl.onchange = fieldEl.onpaste = () => {
gitData[fieldEl.name] = fieldEl.value;

View File

@ -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

View File

@ -4,18 +4,36 @@ Aliases = [
"/Raccolte/Media/Raccolta-Musica.html",
]
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.
• [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.
• [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.
• [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! 😵️

View File

@ -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..._

View File

@ -139,9 +139,12 @@ Alla fine non è più ospitato in casa mia, ma forse è meglio così, è un cari
## Sorgenti e licenze
Vai a ["🔓️ Open Source"]({{< relref "/miscellanea/Open-Source/" >}}).
<del>
### 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>
### Codice sorgente
@ -172,6 +175,7 @@ Alla fine non è più ospitato in casa mia, ma forse è meglio così, è un cari
</ul>
</div>
</details>
</del>
## Riservatezza e trasparenza

View File

@ -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 resetFileMessage = 'Reset File to Latest from Git';
const gitPushMessage = 'Commit and Push changes to Git';
// TODO configure this and access token via HTML form
const G = {
instance: 'https://gitlab.com',
repo: 'octtspacc/sitoctt',
branch: 'sitoctt-next',
};
const gitApiUrl = (filePath) => `${auth.GitInstanceUrl}/api/v4/projects/${encodeURIComponent(auth.GitRepoThis)}/repository/files/${encodeURIComponent(filePath)}`;
const editorData = {
currentFilePath: `content/${document.documentElement.lang}/${document.documentElement.dataset.sourceFilePath}`,
};
let editorHandler;
const gitReadFile = async (filePath) => (await (await fetch(`${gitApiUrl(filePath)}/raw?ref=${auth.GitBranchThis}`)).text());
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) => null; // TODO
const gitPushFile = (filePath, fileContent, commitMessage) => fetch(gitApiUrl(filePath), {
method: "PUT",
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
//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 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 = () => {
const editorEl = document.querySelector(`#${editorId}`);
@ -38,7 +46,7 @@ editorData.close = () => {
document.body.style.overflow = null;
};
editorData.setup = async (/*filePath*/) => {
editorData.setup = async () => {
if (editorHandler) {
return;
}
@ -78,6 +86,16 @@ editorData.setup = async (/*filePath*/) => {
#${editorId} .toastui-editor-toolbar-divider {
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'), {
@ -96,20 +114,21 @@ editorData.setup = async (/*filePath*/) => {
previewStyle: 'tab',
hideModeSwitch: true,
usageStatistics: false,
initialValue: (await readPageFile(editorData.currentFilePath)),
initialValue: (await readPageFile(currentFilePath)),
});
editorHandler.addCommand('markdown', 'closeEditor', editorData.close);
editorHandler.addCommand('markdown', 'resetFile', (() => { // TODO re-pull page source from git
if (confirm(`${resetFileMessage}?`)) {
gitReadFile(editorData.currentFilePath);
gitReadFile(currentFilePath);
}
}));
editorHandler.addCommand('markdown', 'gitPush', (() => {
if (confirm(`${gitPushMessage}?`)) {
gitPushFile(editorData.currentFilePath);
const message = prompt(`${gitPushMessage} with Message?`, `Update ${currentFilePath}`);
if (message) {
gitPushFile(currentFilePath, editorHandler.getMarkdown(), message);
}
}));
@ -147,21 +166,26 @@ editorData.setupButtons = () => {
displayCurrentFile();
buttonsEl.querySelector('[name="this"]').onclick = editorData.open;
buttonsEl.querySelector('[name="custom"]').onclick = (async () => {
const filePath = prompt(`Path of custom File?`);
const filePath = prompt(`Path of custom File?`, currentFilePath);
if (filePath) {
await editorData.setup(/*filePath*/);
const fileContent = await readPageFile(editorData.currentFilePath = filePath);
await editorData.setup();
const fileContent = await readPageFile(currentFilePath = filePath);
displayCurrentFile();
editorHandler.setMarkdown(fileContent);
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;
delete editorData.setupButtons;
};
editorData.open = async () => {
await editorData.setup(/*filePath*/);
await editorData.setup();
const editorEl = document.querySelector(`#${editorId}`);
editorEl.style.display = 'block';
editorEl.hidden = false;
@ -170,7 +194,7 @@ editorData.open = async () => {
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);
}

View File

@ -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;">
<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;">
📝️ 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>
<div class="flex justify-between">
<a class="fw4 hover-white no-underline white-80 dib-ns pv2 ph3" href="{{ .Site.Home.Permalink }}" >