Agg. Devlogs, Home; Lavoro tema WM

This commit is contained in:
octospacc 2022-08-29 15:41:44 +02:00
parent a8e94cbd44
commit 878825774b
9 changed files with 233 additions and 103 deletions

32
.github/workflows/main.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Build and Deploy with staticoso
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
page_build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build
run: |
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.10 curl git
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.10
sudo pip3 install lxml
git clone --depth 1 https://gitlab.com/octtspacc/staticoso
python3.10 ./staticoso/Source/Build.py
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: public

View File

@ -1,25 +1,25 @@
image: alpine:latest image: alpine:latest
before_script: before_script: |
- apk update apk update
- apk add python3 py3-pip npm go git apk add python3 py3-pip npm go git
- pip3 install requests lxml pip3 install requests lxml
- npm install -g pug-cli npm install -g pug-cli
pages: pages:
stage: deploy stage: deploy
script: script: |
- git clone --depth 1 https://github.com/LukeEmmet/html2gmi git clone --depth 1 https://github.com/LukeEmmet/html2gmi
- cd html2gmi cd html2gmi
- go get github.com/LukeEmmet/html2gmi go get github.com/LukeEmmet/html2gmi
- echo "#!/bin/sh" > ./html2gmi echo "#!/bin/sh" > ./html2gmi
- echo "cd $PWD; go run ." >> ./html2gmi echo "cd $PWD; go run ." >> ./html2gmi
- chmod +x ./html2gmi chmod +x ./html2gmi
- PATH=$PATH:$PWD PATH=$PATH:$PWD
- cd .. cd ..
- git clone --depth 1 https://gitlab.com/octtspacc/staticoso git clone --depth 1 https://gitlab.com/octtspacc/staticoso
- ./Scripts/Deploy.GitLab.sh ./Scripts/Deploy.GitLab.sh
- ./Scripts/Deploy.Gemini.sh ./Scripts/Deploy.Gemini.sh
artifacts: artifacts:
paths: paths:
- public - public

View File

@ -0,0 +1,41 @@
.BlinkA {
Animation: BlinkerA 0.25s Step-Start Infinite;
}
@keyframes BlinkerA {
0% {Position: Absolute; Visibility: Hidden;}
50% {Position: Static; Visibility: Visible;}
100% {Position: Absolute; Visibility: Hidden;}
}
.BlinkO {
Animation: BlinkerO 0.25s Step-Start Infinite;
}
@keyframes BlinkerO {
0% {Position: Static; Visibility: Visible;}
50% {Position: Absolute; Visibility: Hidden;}
100% {Position: Static; Visibility: Visible;}
}
/*--- Credits: https://codepen.io/jh3y/pen/WNrXqYz ---*/
.WavyText {
Text-Align: Center;
Position: Absolute;
Left: 50%;
White-Space: NoWrap;
Transform: Translate(-50%, -50%) Translate(Calc(Var(--x, 0) * 1%), Calc(Var(--y, 0) * 1%));
font-variation-settings: 'wght' Var(--lower);
Margin: 0;
}
.WavyText Span {
Color: HSLA(300, 100%, 20%, Var(--alpha-l));
Animation: Rise 2.25s infinite ease-in-out;
Animation-Delay: Calc((Var(--index) - 6) * 0.225s);
Display: Inline-Block;
}
@keyframes Rise {
50% {
font-variation-settings: 'wght' Var(--upper);
Color: HSLA(300, 100%, 30%, Var(--alpha-u));
Transform: Translate(0, -15%);
}
}
/*--- -------------------------------------------- ---*/

View File

@ -6,7 +6,7 @@
--WindowPadding: 4px; --WindowPadding: 4px;
--WindowBorderSize: 4px; --WindowBorderSize: 4px;
--TitleBarHeight: 28px; --TitleBarHeight: 32px;
--TitleBarForeground: #FFFFFF; --TitleBarForeground: #FFFFFF;
--TitleBarBackground: #2A0A3A; --TitleBarBackground: #2A0A3A;
@ -23,8 +23,10 @@ Body {
Margin: 0; Margin: 0;
Padding: 0; Padding: 0;
Overflow-Y: Hidden; Overflow-Y: Hidden;
Background-Image: url(/home/octt/Dev/sitoctt-assets/public/Media/Backgrounds/Circles-Purple.png); }
Background-Repeat: Repeat;
.NoDisplay {
Display: None;
} }
/*--------------------------------------------------------*/ /*--------------------------------------------------------*/
@ -42,8 +44,8 @@ Body {
Background: #EEE0FF; Background: #EEE0FF;
} }
.WindowContent { .WindowContent {
Min-Width: Calc(100% + Var(--WindowPadding) + Var(--WindowPadding) + Var(--WindowBorderSize) + Var(--WindowBorderSize)); Min-Width: Calc(100% + Var(--WindowPadding)*2 + Var(--WindowBorderSize)*2);
Padding: Var(--WindowPadding); Padding: Calc(Var(--WindowPadding)*2);
Overflow-Y: Auto; Overflow-Y: Auto;
Margin-Left: Calc(0px - Var(--WindowPadding) - Var(--WindowBorderSize)); Margin-Left: Calc(0px - Var(--WindowPadding) - Var(--WindowBorderSize));
Margin-Top: Var(--WindowBorderSize); Margin-Top: Var(--WindowBorderSize);
@ -59,14 +61,17 @@ Body {
Padding: Var(--WindowPadding); Padding: Var(--WindowPadding);
Color: Var(--TitleBarForeground); Color: Var(--TitleBarForeground);
Background: Var(--TitleBarBackground); Background: Var(--TitleBarBackground);
Text-Align: Center;
Vertical-Align: Top; Vertical-Align: Top;
Max-Height: Var(--TitleBarHeight); Max-Height: Var(--TitleBarHeight);
} }
.TitleBar > span:nth-child(1) { .TitleBarContent {
Text-Align: Center;
}
.TitleBarContent > Span:Nth-Child(1) {
Float: Left; Float: Left;
} }
.TitleBar > span:nth-child(4) { .TitleBarContent > Span:Nth-Child(3) {
Float: Right; Float: Right;
} }
@ -85,15 +90,38 @@ Body {
Position: Fixed; Position: Fixed;
Left: 0px; Left: 0px;
Bottom: Var(--TaskBarHeight); Bottom: Var(--TaskBarHeight);
Padding: Var(--WindowPadding); Padding: Calc(Var(--WindowPadding)*2);
Color: Var(--TaskBarForeground); Color: Var(--TaskBarForeground);
Background: Var(--TaskBarBackground); Background: Var(--TaskBarBackground);
Max-Height: Calc(90vh - Var(--TaskBarHeight));
Overflow-Y: Scroll;
}
.TaskBarMenu A {
Color: #DDCCFF !Important;
} }
.MenuButton { .MenuButton {
Display: Inline-Block; Display: Inline-Block;
Height: 100%; Height: 100%;
} }
/*--- "Shade window" button --------------------------*/
.CheckToggle {
Position: Fixed;
Opacity: 0;
Visibility: Hidden;
}
.CheckLabel:Before {
Content: '🔼';
}
:Checked ~ .TitleBarContent > Span > .CheckLabel:Before {
Content: '🔽' !Important;
}
:Checked ~ .ToggleBox {
Display: None;
Visibility: Hidden;
}
/**** -------------------------------------------- ****/
/*--------------------------------------------------------*/ /*--------------------------------------------------------*/
@ -102,25 +130,9 @@ Body {
* Fritto Misto - Andrebbe ordinato * * Fritto Misto - Andrebbe ordinato *
*--------------------------------------------------------*/ *--------------------------------------------------------*/
.CheckLabel:Before {
Content: '🔼';
}
#MainWindowCheck {
Position: Fixed;
Opacity: 0;
}
:Checked ~ Span > .CheckLabel:Before {
Content: '🔽' !Important;
}
:Checked ~ .ToggleBox {
Display: None;
Visibility: Hidden;
}
/* No selezione */ /* No selezione */
.NoSelect, .NoSelect,
.TitleBar, .TitleBarContent,
.TaskBar, .TaskBar,
#TitlesWindow { #TitlesWindow {
-webkit-touch-callout: none; -webkit-touch-callout: none;
@ -139,7 +151,7 @@ Body {
Max-Height: 90vh; Max-Height: 90vh;
Z-Index: 16; Z-Index: 16;
} }
#MainWindow > .WindowContent { #MainWindow .WindowContent {
Max-Height: Calc(90vh - Calc(Var(--TitleBarHeight) * 2) - Var(--WindowPadding)); Max-Height: Calc(90vh - Calc(Var(--TitleBarHeight) * 2) - Var(--WindowPadding));
} }
@ -151,7 +163,7 @@ Body {
Max-Height: 60vh; Max-Height: 60vh;
Z-Index: 8; Z-Index: 8;
} }
#TitlesWindow > .WindowContent { #TitlesWindow .WindowContent {
Max-Height: Calc(60vh - Calc(Var(--TitleBarHeight) * 2) - Var(--WindowPadding)); Max-Height: Calc(60vh - Calc(Var(--TitleBarHeight) * 2) - Var(--WindowPadding));
} }

View File

@ -32,6 +32,13 @@ Body {
Overflow-Wrap: Break-Word; Overflow-Wrap: Break-Word;
} }
.NoDisplay {
Display: None;
}
.NoCol {
Color: Transparent !Important;
}
/*--------------------------------------------------------*/ /*--------------------------------------------------------*/
@ -55,12 +62,6 @@ Summary > H1, Summary > H2, Summary > H3, Summary > H4, Summary > H5, Summary >
Display: Inline; Display: Inline;
} }
.NoDisplay {
Display: None;
}
.NoCol {
Color: Transparent !Important;
}
A { A {
Color: #D000D0; Color: #D000D0;
} }
@ -96,16 +97,16 @@ Pre.Code, .CodeScroll {
Padding-Bottom: 16px; Padding-Bottom: 16px;
} }
#MainBox A:not( #MainBox A:Not(
.NoLinkLink, .NoLinkLink A, .NoLinkLink, .NoLinkLink A,
.SectionLink A, .SectionLink A,
#StatCounter A, #StatCounter A,
#RingsDiv A, #RingsDiv A
.SectionTitle > A ):Before {
)::Before {
Content: '🔗 '; Content: '🔗 ';
} }
/* Clickable link at the left of every section title */
.SectionTitle:Target { .SectionTitle:Target {
Color: #EEDDFF !Important; Color: #EEDDFF !Important;
Background: #700070 !Important; Background: #700070 !Important;
@ -407,29 +408,4 @@ H1, H2, H3, A, Img, Video, Summary {
100% {Position: Static; Visibility: Visible;} 100% {Position: Static; Visibility: Visible;}
} }
/*--- Credits: https://codepen.io/jh3y/pen/WNrXqYz ---*/
.WavyText {
Text-Align: Center;
Position: Absolute;
Left: 50%;
White-Space: NoWrap;
Transform: Translate(-50%, -50%) Translate(Calc(Var(--x, 0) * 1%), Calc(Var(--y, 0) * 1%));
font-variation-settings: 'wght' Var(--lower);
Margin: 0;
}
.WavyText Span {
Color: HSLA(300, 100%, 20%, Var(--alpha-l));
Animation: Rise 2.25s infinite ease-in-out;
Animation-Delay: Calc((Var(--index) - 6) * 0.225s);
Display: Inline-Block;
}
@keyframes Rise {
50% {
font-variation-settings: 'wght' Var(--upper);
Color: HSLA(300, 100%, 30%, Var(--alpha-u));
Transform: Translate(0, -15%);
}
}
/*--- -------------------------------------------- ---*/
/*--------------------------------------------------------*/ /*--------------------------------------------------------*/

View File

@ -18,6 +18,65 @@ _Ovviamente, scriverò soltanto la roba interessante, non tutto quello che facci
<div markdown="1" class="BorderBoxContainer"> <div markdown="1" class="BorderBoxContainer">
<details markdown="1"><summary>
#### [2022-08-29] Titoli delle sezioni, ma ancora meglio </summary>
-> #staticoso #sitoctt
Soprattutto a causa della necessità di rendere **staticoso** leggermente più adatto alla creazione di siti di documentazione, oltre che di blog e cose così, ho sentito di dover apportare **qualche miglioramento** alla generazione dei _✨magici✨_ **titoli delle sezioni**.
Ispirandomi parzialmente a cosa fa [mdBook](https://rust-lang.github.io/mdBook){[:MdTgtBlank:]}, ho aggiunto un **target ancora** (`<a>`) al fianco di ogni heading nel testo.
mdBook rende ogni titolo un link in sé; soluzione elegante ed intuitiva per copiare un link alla sezione all'istante, ma che può dare (da) problemi grossi in certi casi. Ad esempio, le sezioni `<details>`, _che io tanto amo_, diventerebbero difficili da aprire, perché gran parte della loro hitbox sarebbe coperta da quella di un link.
Dovevo inventarmi qualcos'altro.
A livello di **HTML**, allora, staticoso genera per ogni titolo la seguente struttura: elemento heading, che contiene prima un elemento span racchiudente l'ancora, a sua volta contenente il semplice testo `»`, e poi un altro span (con id univoco) che ha il titolo in sé.
Facendo un esempio pratico, questo è cosa esce fuori:
<pre class="CodeScroll"><code>
&lt;h1 class="SectionHeading">
&lt;span class="SectionLink">
&lt;a href="#-Titolo-di-esempio">
&lt;span>»&lt;/span>
&lt;/a>
&lt;/span>
&lt;span class="SectionTitle" id="-Titolo-di-esempio">
Titolo di esempio
&lt;/span>
&lt;/h1>
</code></pre>
Senza CSS, i titoli sulla pagina renderizzata si vedono come al solito, eccetto per il fatto che hanno un carattere `»` cliccabile alla loro sinistra. Andrebbe bene già così, ma ovviamente io avevo la **personalizzazione** in mente da subito.
Sul tema principale del **sitoctt**, infatti, ho personalizzato la cosa in modo da avere:
- L'emoji della catena (`🔗`) come carattere per il link;
- Il posizionamento un po' a sinistra del tastino, per far rimanere i titoli in linea con il testo normale;
- Opacità del carattere molto ridotta, e un po' meno ridotta quando il mouse/dito ci passa sopra;
- Evidenziazione e sottolineatura di un heading attivato.
In codice **CSS**, la mia visione si è tradotta in queste righe:
<pre class="CodeScroll"><code>
.SectionTitle:Target {
Color: #EEDDFF !Important;
Background: #700070 !Important;
Text-Decoration: Underline;
}
.SectionLink {
Position: Absolute;
Left: -1.5em;
Opacity: 0.08;
}
.SectionLink:Hover {
Opacity: 0.8;
}
.SectionLink > A::Before {
Content: '🔗';
}
.SectionLink > A > Span {
Font-Size: 0;
}
</code></pre>
In tutta onestà, lo ripeto: forse per il sitoctt questa cosa non serviva; ma, per la [**documentazione di staticoso**](https://gitlab.com/octtspacc/staticoso-docs){[:MdTgtBlank:]}, credo **sarà utilissima**.
</details>
<details markdown="1"><summary> <details markdown="1"><summary>
#### [2022-08-24] Titoli delle sezioni - ora ovunque </summary> #### [2022-08-24] Titoli delle sezioni - ora ovunque </summary>
-> #sitoctt -> #sitoctt

View File

@ -1,5 +1,7 @@
// % Title = 🏠 ~Home~ // % Title = 🏠 ~Home~
// % HTMLTitle = <span class="twa twa-house"><span>🏠</span></span> ~Home~ // % HTMLTitle = <span class="twa twa-house"><span>🏠</span></span> ~Home~
// // % Template = WM.html
// % Style = @import "[staticoso:Site:RelativeRoot]Assets/Pages/index.css";
// % Index = True // % Index = True
// % Order = 10 // % Order = 10
// % Image = [staticoso:Folder:*:AbsoluteRoot]/sitoctt-assets/RichPreview/index.png // % Image = [staticoso:Folder:*:AbsoluteRoot]/sitoctt-assets/RichPreview/index.png
@ -14,7 +16,7 @@ p
| nel... | nel...
// Credits: https://codepen.io/jh3y/pen/WNrXqYz // Credits: https://codepen.io/jh3y/pen/WNrXqYz
div div(style='Position:Relative;')
br br
h1(class='NoTitle WavyText' style='--x: 6; --y: -6;') h1(class='NoTitle WavyText' style='--x: 6; --y: -6;')
for letter, index in '✨sitoctt✨'.split('') for letter, index in '✨sitoctt✨'.split('')
@ -48,18 +50,23 @@ p
| Gli aggiornamenti al sito sono di diverso tipo: la pubblicazione di nuovi articoli di blog succede, boh, 3 volte al mese, è una buona idea usare i #[a(href='#-Feed-e-notifiche') feed] che metto a disposizione; le modifiche per pagine normali sono continue e avvengono a caso, quindi dovresti controllare magari ogni settimana quelle che ti interessano, se ti aspetti novità. | Gli aggiornamenti al sito sono di diverso tipo: la pubblicazione di nuovi articoli di blog succede, boh, 3 volte al mese, è una buona idea usare i #[a(href='#-Feed-e-notifiche') feed] che metto a disposizione; le modifiche per pagine normali sono continue e avvengono a caso, quindi dovresti controllare magari ogni settimana quelle che ti interessano, se ti aspetti novità.
p p
| Ah, non so se hai notato, ma (da Web) negli angoli in alto dello schermo ci sono dei tastini. Lo sto scrivendo perché ho paura non si capisca, che devo fare... Vabbe, se premi lì puoi accedere ai menu ad albero, rispettivamente delle pagine del sito a sinistra (<big class='twa twa-books'><span>📚</span></big>), | #[b Da tenere a mente] (da Web): quando ci sono per lo schermo i seguenti tastini, è perché possono nascondere menu collassabili.
| e delle sezioni della pagina a destra (<big class='twa twa-bookmark-tabs'><span>📑</span></big>). | Possono stare in posizioni diverse su pagine diverse, perché mi piace sperimentare con diversi temi; però cerco di mantenere il loro significato coerente ovunque.
| Quello di sinistra soprattutto è importante per navigare il sito. br
| Un'icona con l'emoji di una pila di libri (<big class='twa twa-books'><span>📚</span></big>) segnala il menu principale del sito, fondamentale per poterlo navigare saltando tra pagine completamente diverse e non collegate.
| Invece, l'icona con l'emoji di un foglio con un segnalibro (<big class='twa twa-bookmark-tabs'><span>📑</span></big>) indica l'elenco delle sezioni della pagina corrente - non è essenziale, ma può tornare utile per saltare tra parti diverse di un lungo testo.
p p
| A tal proposito, per la migliore esperienza #[span(style='Color:#d00000;') DEVI] usare un browser con supporto almeno a CSS3 e alle immagini in formato AVIF. Se usi un browser antico ti garantisco che troverai troppa roba rotta (ma comunque il sito sarà navigabile lo stesso). | A tal proposito, per la migliore esperienza #[span(style='Color:#d00000;') DEVI] usare un browser con supporto almeno a CSS3 e alle immagini in formato AVIF (quest'ultima cosina, almeno finché non riesco a far funzionare il polyfill).
| Se usi un browser antico ti garantisco che troverai tanta, tanta roba rotta (ma comunque il sito dovrebbe essere navigabile lo stesso).
br br
| Essendo che questo sito contiene immagini AVIF, assicurati che il tuo browser sia aggiornato e decente. Safari di Apple, per esempio, mi dicono che non supporta AVIF, quindi #[span(style='Color:#d00000;') buttalo via]. | Essendo che questo sito contiene immagini AVIF, assicurati che il tuo browser sia aggiornato e decente. Safari di Apple, per esempio, mi dicono che non supporta AVIF, quindi #[span(style='Color:#d00000;') buttalo via].
br br
| Preferibilmente non usare Chromium, che ha degli strani memory leak su pagine con animazioni complesse, oltre ad andare a scatti. Firefox non ha questo problema, ma usa molto di più la CPU. | Preferibilmente #[i non] usare Chromium, che ha degli strani memory leak su pagine con animazioni complesse, e ha qualche #[i glitch particolare]. #[b Firefox] non ha questo problema, ma usa molto di più la CPU.
br br
| Direi che la scelta non è tra il migliore ma tra il meno peggio.. | Direi che la scelta non è tra il migliore ma tra il meno peggio..
br
i Nota: se scegli Firefox, non usare la versione ESR! È per sua natura vecchia, fossilizzata, e manca sempre di funzionalità moderne - per esempio, al giorno d'oggi ancora non supporta AVIF.
h3 Script client-side h3 Script client-side

View File

@ -4,7 +4,6 @@ BlogName = blogoctt
Template = sitoctt.html Template = sitoctt.html
Lang = it Lang = it
Minify = True Minify = True
# AutoCategories = False
[Markdown] [Markdown]
Exts = ('attr_list', 'def_list', 'footnotes', 'markdown_del_ins', 'md_in_html', 'mdx_subscript', 'mdx_superscript', 'tables') Exts = ('attr_list', 'def_list', 'footnotes', 'markdown_del_ins', 'md_in_html', 'mdx_subscript', 'mdx_superscript', 'tables')

View File

@ -3,8 +3,8 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- <link rel="stylesheet" href="[staticoso:Site:RelativeRoot]Assets/WM.css"> --> <link rel="stylesheet" href="[staticoso:Site:RelativeRoot]Assets/WM.css">
<link rel="stylesheet" href="../Assets/Assets/WM.css"> <!-- <link rel="stylesheet" href="../Assets/Assets/WM.css"> -->
<link href="[staticoso:Folder:*:AbsoluteRoot]/sitoctt-assets/Fonts/SpaceMono/Style.css" rel="stylesheet"> <link href="[staticoso:Folder:*:AbsoluteRoot]/sitoctt-assets/Fonts/SpaceMono/Style.css" rel="stylesheet">
<link rel="alternate" type="application/atom+xml" title="Feed Atom" href="[staticoso:Site:RelativeRoot]feed/atom.xml"> <link rel="alternate" type="application/atom+xml" title="Feed Atom" href="[staticoso:Site:RelativeRoot]feed/atom.xml">
<link rel="alternate" type="application/rss+xml" title="Feed RSS" href="[staticoso:Site:RelativeRoot]feed/rss.xml"> <link rel="alternate" type="application/rss+xml" title="Feed RSS" href="[staticoso:Site:RelativeRoot]feed/rss.xml">
@ -18,8 +18,12 @@
<meta property="og:image" content="[staticoso:Page:Image]"> <meta property="og:image" content="[staticoso:Page:Image]">
<style> <style>
[staticoso:Page:Style] [staticoso:Page:Style]
Body {
Background: url([staticoso:Folder:*:AbsoluteRoot]/sitoctt-assets/Media/Backgrounds/Circles-Purple.png), #5C00CA;
Background-Repeat: Repeat;
}
</style> </style>
<!-- [staticoso:DynamicPart:*/Head] --> [staticoso:DynamicPart:*/Head]
<script src="[staticoso:Site:RelativeRoot]Assets/AVIF-Polyfill/index.js"></script> <script src="[staticoso:Site:RelativeRoot]Assets/AVIF-Polyfill/index.js"></script>
</head> </head>
<!-- TitleBar: <span> - ❌ </span> <span> [staticoso:Page:Title] </span> <span> 🔺 🔼 ⬜ 🔷 </span> --> <!-- TitleBar: <span> - ❌ </span> <span> [staticoso:Page:Title] </span> <span> 🔺 🔼 ⬜ 🔷 </span> -->
@ -27,31 +31,31 @@
<div class="TaskBar"> <div class="TaskBar">
<details> <details>
<summary><span class="MenuButton"><big><b>[<span class="twa twa-books"><span>📚</span></span>] Menu</b></big></span><br><br></summary> <summary><span class="MenuButton"><big><b>[<span class="twa twa-books"><span>📚</span></span>] Menu</b></big></span><br><br></summary>
<div> <div class="TaskBarMenu">
[staticoso:Site:Menu] [staticoso:Site:Menu]
</div> </div>
</details> </details>
</div> </div>
<div class="Window" id="MainWindow"> <div class="Window" id="MainWindow">
<div class="TitleBar"> <div class="TitleBar">
<input type="checkbox" id="MainWindowCheck"> <input type="checkbox" class="CheckToggle" id="MainWindowCheck">
<span> <label class="CheckLabel" id="MainWindowCheckLabel" for="MainWindowCheck"></label> </span> &nbsp; <span> <b>[staticoso:Page:Title]</b> </span> &nbsp; <span> <span class="twa twa-pencil"><span>✏️</span></span> </span> <div class="TitleBarContent">
<div class="WindowContent ToggleBox" id="MainWindowContent"> <span> <label class="CheckLabel" id="MainWindowCheckLabel" for="MainWindowCheck"></label> </span> &nbsp;&nbsp; <span> <b>[staticoso:Page:Title]</b> </span> &nbsp;&nbsp; <span> <span class="twa twa-pencil"><span>✏️</span></span> </span>
</div>
<div class="WindowContent ToggleBox">
[staticoso:Page:Content] [staticoso:Page:Content]
</div> </div>
</div> </div>
<!--
<div class="WindowContent ToggleBox" id="MainWindowContent">
[staticoso:Page:Content]
</div>
-->
</div> </div>
<div class="Window" id="TitlesWindow"> <div class="Window" id="TitlesWindow">
<div class="TitleBar"> <div class="TitleBar">
<span> 🔼 </span> &nbsp; <span> <b>Sezioni</b> </span> &nbsp; <span> <span class="twa twa-bookmark-tabs"><span>📑</span></span> </span> <input type="checkbox" class="CheckToggle" id="TitlesWindowCheck">
</div> <div class="TitleBarContent">
<div class="WindowContent" id="MainWindowContent"> <span> <label class="CheckLabel" id="TitlesWindowCheckLabel" for="TitlesWindowCheck"></label> </span> &nbsp;&nbsp; <span> <b>Sezioni</b> </span> &nbsp;&nbsp; <span> <span class="twa twa-bookmark-tabs"><span>📑</span></span> </span>
[staticoso:Page:Chapters] </div>
<div class="WindowContent ToggleBox">
[staticoso:Page:Chapters]
</div>
</div> </div>
</div> </div>
</div> </div>