From ccabb5395c2b45756351c51feb52b85aeaaff941 Mon Sep 17 00:00:00 2001 From: rattatwinko Date: Sun, 12 Oct 2025 17:36:11 +0200 Subject: [PATCH] some updates to page loading performance and general performance. added a ServiceWorker which caches stuff --- css/main.css | 27 ++++ css/prism.css | 3 + html/base/index.html | 86 +++++++----- html/base/template.html | 127 +++++++++-------- js/post/prism.js | 300 ++++++++++++++++++++++++++++++++++++++++ js/post/sw.js | 32 +++++ markdown/Rotation.md | 7 +- requirements.txt | Bin 170 -> 206 bytes webserver.py | 1 + 9 files changed, 483 insertions(+), 100 deletions(-) create mode 100644 css/prism.css create mode 100644 js/post/prism.js create mode 100644 js/post/sw.js diff --git a/css/main.css b/css/main.css index 1d1c84c..6b086fd 100644 --- a/css/main.css +++ b/css/main.css @@ -8,6 +8,33 @@ body { background: #fff; } +/* Layout foundation: force the page to be full-height and use flex */ +html { + height: 100%; + box-sizing: border-box; +} +*, *::before, *::after { box-sizing: inherit; } + +body { + min-height: 100vh; /* robust against percentage height issues */ + display: flex; + flex-direction: column; + margin: 0; + padding: 0; +} + +/* make the main content take remaining space */ +main.container { + flex: 1 1 auto; /* grow and shrink as needed */ + display: block; /* keep existing layout inside main */ +} + +/* allow footer to sit at bottom (if content short) */ +footer { + margin-top: auto; +} + + /* Mobile-specific adjustments */ @media (max-width: 768px) { body { diff --git a/css/prism.css b/css/prism.css new file mode 100644 index 0000000..05ed91a --- /dev/null +++ b/css/prism.css @@ -0,0 +1,3 @@ +/* PrismJS 1.30.0 +https://prismjs.com/download#themes=prism-tomorrow&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+agda+al+antlr4+apacheconf+apex+apl+applescript+aql+arduino+arff+armasm+arturo+asciidoc+aspnet+asm6502+asmatmel+autohotkey+autoit+avisynth+avro-idl+awk+bash+basic+batch+bbcode+bbj+bicep+birb+bison+bnf+bqn+brainfuck+brightscript+bro+bsl+c+csharp+cpp+cfscript+chaiscript+cil+cilkc+cilkcpp+clojure+cmake+cobol+coffeescript+concurnas+csp+cooklang+coq+crystal+css-extras+csv+cue+cypher+d+dart+dataweave+dax+dhall+diff+django+dns-zone-file+docker+dot+ebnf+editorconfig+eiffel+ejs+elixir+elm+etlua+erb+erlang+excel-formula+fsharp+factor+false+firestore-security-rules+flow+fortran+ftl+gml+gap+gcode+gdscript+gedcom+gettext+gherkin+git+glsl+gn+linker-script+go+go-module+gradle+graphql+groovy+haml+handlebars+haskell+haxe+hcl+hlsl+hoon+http+hpkp+hsts+ichigojam+icon+icu-message-format+idris+ignore+inform7+ini+io+j+java+javadoc+javadoclike+javastacktrace+jexl+jolie+jq+jsdoc+js-extras+json+json5+jsonp+jsstacktrace+js-templates+julia+keepalived+keyman+kotlin+kumir+kusto+latex+latte+less+lilypond+liquid+lisp+livescript+llvm+log+lolcode+lua+magma+makefile+markdown+markup-templating+mata+matlab+maxscript+mel+mermaid+metafont+mizar+mongodb+monkey+moonscript+n1ql+n4js+nand2tetris-hdl+naniscript+nasm+neon+nevod+nginx+nim+nix+nsis+objectivec+ocaml+odin+opencl+openqasm+oz+parigp+parser+pascal+pascaligo+psl+pcaxis+peoplecode+perl+php+phpdoc+php-extras+plant-uml+plsql+powerquery+powershell+processing+prolog+promql+properties+protobuf+pug+puppet+pure+purebasic+purescript+python+qsharp+q+qml+qore+r+racket+cshtml+jsx+tsx+reason+regex+rego+renpy+rescript+rest+rip+roboconf+robotframework+ruby+rust+sas+sass+scss+scala+scheme+shell-session+smali+smalltalk+smarty+sml+solidity+solution-file+soy+sparql+splunk-spl+sqf+sql+squirrel+stan+stata+iecst+stylus+supercollider+swift+systemd+t4-templating+t4-cs+t4-vb+tap+tcl+tt2+textile+toml+tremor+turtle+twig+typescript+typoscript+unrealscript+uorazor+uri+v+vala+vbnet+velocity+verilog+vhdl+vim+visual-basic+warpscript+wasm+web-idl+wgsl+wiki+wolfram+wren+xeora+xml-doc+xojo+xquery+yaml+yang+zig */ +code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green} diff --git a/html/base/index.html b/html/base/index.html index 104379b..20ddb1f 100644 --- a/html/base/index.html +++ b/html/base/index.html @@ -1,47 +1,67 @@ - + - + Auto Index - - - + + + + + + + + + + + + + +
- - -

- Available icon - Available pages: -

- + - - - - - + + + + + diff --git a/html/base/template.html b/html/base/template.html index 70332f2..ff19105 100644 --- a/html/base/template.html +++ b/html/base/template.html @@ -1,77 +1,82 @@ - + - - - {{ title }} - - - - - - + + + {{ title }} - - + + + + - - + - - - - - + + + - - - - + + + + + + + + - -
-

- ⬅ - {{ title }} -

- 📄 -
- Written @{{ now }} -
-
-
- {{ html_body | safe }} -
+ + +
+

+ ⬅ + {{ title }} +

+ 📄 +
+ Written @{{ now }} +
+
+
+ {{ html_body | safe }} +
-