~jadedctrl/jam-xwx-moe

Showing details for patch c236527c8177bdcb5523a1ecb59928137f2f1763.
2024-03-19 (Tue), 5:07 AM - - c236527c8177bdcb5523a1ecb59928137f2f1763

Ekmontras »subpaĝo«-enhavo antaŭ enlegiĝo de Pleroma-FE

T.e., se oni aliras jam.xwx.moe/paĝoj/bildosignaroj,
la HTML enhavus jam la subpaĝon. Do eĉ sen Ĝavoskripto,
legeblas la subpaĝo.

Tio ĉi fariĝas per HTML-estigilo kiu kreas apartajn
dosierojn por ĉiu paĝo ĉe servilo-ruliĝo.

(Ankaŭ per NGINX-revojigaj reguloj!)
Summary of changes
3 files added
  • pleroma-fe/fari_indexojn.sh
  • pleroma-fe/index.sh.html
  • pleroma-fe/paĝo.sh
1 files modified with 3 lines added and 6 lines removed
  • pleroma/ek.sh with 3 added and 6 removed lines
2 files removed
  • pleroma-fe/index.perl
  • pleroma-fe/index.perl.html
diff -rN -u old-jam-xwx-moe/pleroma/ek.sh new-jam-xwx-moe/pleroma/ek.sh
--- old-jam-xwx-moe/pleroma/ek.sh	2024-11-21 22:38:14.021694871 +0000
+++ new-jam-xwx-moe/pleroma/ek.sh	2024-11-21 22:38:14.021694871 +0000
@@ -9,11 +9,8 @@
 		/opt/pleroma/instance/static
 
 # Kreu pliamikecan HTML-paĝon por tiuj uzantaj ne Ĝavoskripton.
-rm instance/static.index/index.html
-(sleep 60; \
- perl instance/static.index/index.perl \
-	  > instance/static.index/index.html.tmp; \
- mv instance/static.index/index.html.tmp instance/static.index/index.html) &
+rm instance/static.index/index.html instance/static.index/static/pagoj-index/*
+(sleep 120; sh fari_indexojn.sh) &
 
 # Efektive rulu la servilon!! c:<
-MIX_ENV=prod mix phx.server
+MIX_ENV=prod mix phx.server 2>&1 >> log
diff -rN -u old-jam-xwx-moe/pleroma-fe/fari_indexojn.sh new-jam-xwx-moe/pleroma-fe/fari_indexojn.sh
--- old-jam-xwx-moe/pleroma-fe/fari_indexojn.sh	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/pleroma-fe/fari_indexojn.sh	2024-11-21 22:38:14.021694871 +0000
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Nomo: fari_indexojn.sh
+# Pri: Tiu ĉu skripto kreas niajn proprajn HTML-ajn paĝojn, por plibeligi la
+#      retejon se ial oni malŝaltis Ĝavoskripton.
+# Dato: 2024-03-18
+
+# Dosierujo, kien metiĝos index-dosieroj.
+INDEX="instance/static.index/"
+
+# Forigu la malnovajn!
+rm "$INDEX/index.html" "$INDEX/index.base.html" "$INDEX/static/paĝoj-index/"*.html
+
+# Elŝutu tiun interne kreitan de Pleroma — ĉi tio inkluzivos la Ĝavoskriptan
+# kodon por funkciigi Pleroma-FE.
+curl 'http://localhost:4000' \
+	| sed 's/<body.*//' \
+		  > "$INDEX/index.base.html"
+
+
+# Kreu la ĉefan index-paĝon, kiu estos implicite montrata je ajna URL nekonata.
+cat "$INDEX/index.base.html" \
+	> "$INDEX"/index.html
+cat "index.sh.html" \
+   >> "$INDEX"/index.html
+
+
+# Nun kreu apartan HTML-paĝon por ĉiu »paĝo«; eĉ se Pleroma-FE ne funkcius, la
+# paĝoj tamen legeblu!
+mkdir -p "$INDEX/static/paĝoj-index/" 2> /dev/null
+for pagho in instance/static/static/paĝoj/*.html; do
+	cat "$INDEX/index.base.html" \
+		> "$INDEX/static/paĝoj-index/$(basename "$pagho")"
+	sh paĝo.sh "$pagho" \
+	   >> "$INDEX/static/paĝoj-index/$(basename "$pagho")"
+done
diff -rN -u old-jam-xwx-moe/pleroma-fe/index.perl new-jam-xwx-moe/pleroma-fe/index.perl
--- old-jam-xwx-moe/pleroma-fe/index.perl	2024-11-21 22:38:14.021694871 +0000
+++ new-jam-xwx-moe/pleroma-fe/index.perl	1970-01-01 00:00:00.000000000 +0000
@@ -1,16 +0,0 @@
-#!/usr/bin/env perl
-# Tio ĉi elŝutas la index.html-dosieron de la loke rulata Pleroma servilo, kaj postmetas
-# pliamikecan HTML-on por foliumiloj sen-Ĝavoskripto.
-# La postmetota HTML troviĝas ĉe index.perl.html.
-
-use LWP::Simple;
-$index_html = get("http://localhost:4000");
-$index_html =~ s/<body.*//;
-print($index_html);
-
-open(FH, '<', $0 . '.html') or die $!;
-
-while(<FH>){
-   print $_;
-}
-
diff -rN -u old-jam-xwx-moe/pleroma-fe/index.perl.html new-jam-xwx-moe/pleroma-fe/index.perl.html
--- old-jam-xwx-moe/pleroma-fe/index.perl.html	2024-11-21 22:38:14.021694871 +0000
+++ new-jam-xwx-moe/pleroma-fe/index.perl.html	1970-01-01 00:00:00.000000000 +0000
@@ -1,128 +0,0 @@
-
-	<body>
-		<div id=app>
-			<style>
-				body {
-					background-color: #B5E9EC;
-					font-family: sans-serif;
-					font-size: 14px;
-					color: black;
-				}
-
-
-				.our-panel {
-					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
-					overflow: hidden;
-					border-radius: 3px;
-					padding: 0;
-					background-color: #F7F7F7;
-					max-width: 1000px;
-					margin: auto;
-					margin-top: 3.0rem;
-				}
-
-
-				img {
-					bottom: 0;
-					display: table-cell;
-					vertical-align: bottom;
-				}
-
-
-				h1 {
-					text-align: center;
-				}
-
-
-				.our-panel-heading {
-					border-radius: 3px 3px 0 0;
-					align-items: stretch;
-					background-color: #E2C2F2;
-					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 0px 0px rgba(255, 255, 255, 0.3) inset, -1px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;
-					flex-direction: column;
-					padding: .5em;
-					position: relative;
-					text-align: left;
-					font-size: 1.3em;
-				}
-
-
-				.our-panel:after {
-					bottom: 0;
-					box-shadow: 1px 1px 4px rgba(0, 0, 0, .6);
-					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
-					content: "";
-					left: 0;
-					pointer-events: none;
-					position: absolute;
-					right: 0;
-					top: 0;
-					z-index: 5;
-				}
-
-
-				.our-panel-body p {
-					padding-left: 20px;
-					padding-right: 20px;
-				}
-
-
-				.our-panel-body:empty:before {
-					content: "¯\\_(ツ)_/¯";
-					display: block;
-					margin: 1em;
-					text-align: center;
-				}
-
-
-				.our-panel-body>p {
-					line-height: 1.3;
-					margin: 0;
-					padding: 1em;
-				}
-				nav {
-					width: 100%;
-					background-color: #B6E2FF;
-					box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset, 0px 0px 0px 1px rgba(98, 14, 140, 1) , 0px 0px 3px 1px rgba(0, 0, 0, 0.3);
-					color: hsla(240,1%,73%,.5);
-					color: var(--faint,hsla(240,1%,73%,.5));
-					height: 3.5rem;
-					text-align: center;
-					border-bottom: 3px;
-					border-bottom-color: rgba(98, 14, 140, 1);
-					margin: 0;
-				}
-				nav a {
-					margin: auto;
-					margin-top: 50%;
-					color: rgba(128, 108, 13, 1);
-					text-decoration: none;
-				}
-			</style>
-			<nav style="position: relative;"><a href="/">Mansardo Jamada</a></nav>
-			<div class="our-panel user-profile-placeholder">
-				<div class="our-panel-heading">
-					<div class="title">Pleroma Enlegiĝas… <noscript>Ne.</noscript></div>
-				</div>
-				<div class="our-panel-body">
-					<p>Atendu momenton. Se vi plu vidas tiun ĉi paĝo, <a href="https://pleroma.social/">Pleroma</a> fakte <em>ne</em> enlegiĝas!</p>
-					<p>Tiu ĉi fasado de Pleroma (»<a href="https://git.pleroma.social/pleroma/pleroma-fe/">Pleroma-FE</a>«) postulas la uzon de Ĝavoskripto. Eble, ial, via retfoliumilo malatentas Ĝavoskripton.</p>
-
-					<p>Eble via retfoliumilo ne subtenas ĝin: Tio oftas je retfoliumiloj malnovaj, tekstaj, aŭ prilaborataj. <a href="http://www.netsurf-browser.org/">NetSurf</a>, <a href="https://lynx.invisible-island.net/">Lynx</a>, kaj <a href="https://w3m.sourceforge.net/">w3m</a> estas tiaj, ekzemple. Vi povus uzi <a href="https://www.mozilla.org/firefox/">alian retfoliumilon</a>.</p>
-					<p>Se vi uzas retfoliumilon pezan kaj modernan kiel <a href="https://www.mozilla.org/firefox/">Firefox</a> aŭ Chromium, eblas ke la skripto estis elfiltrita, ial. <a href="https://www.gnu.org/software/librejs/">LibreJS</a> kaj <a href="https://noscript.net/">NoScript</a> foje kulpas; vi esploru la kaŭzon ĉe la gvidpaĝoj de via foliumilo.</p>
-
-					<hr>
-
-					<p>Sed <em>atentu</em>! <em>Atentu min!</em> Restas alia vojo, la vojo al animosavo!</p>
-					<p>Se Ĝavoskripto ne funkcias (aŭ se Ĝavoskripton vi malaprobas), restas alia kliento! Tiu ĉi servilo ankaŭ gastigas <a href="https://git.freesoftwareextremist.com/bloat/tree/README">bloat-FE</a>.</p>
-					<p>Klaku jenen por viziti per bloat-FE, la senĝavoskripta kliento: <a href="https://jam.xwx.moe:1337">https://jam.xwx.moe:1337</a></p>
-					<p>(Tamen, uzo de bloat-FE postulas konton ĉe tiu ĉi servilo — se vi bezonas konton, retpoŝtmesaĝu al <i>xwx</i> ĈE <i>posteo.net</i>.)</p>
-
-					<noscript><hr><p>Se vi vidas ĉi tion, atesteblas ke Ĝavoskripto estas <em>malŝaltita</em> je via retfoliumilo.</p></noscript>
-				</div>
-			</div>
-		</div>
-		<div id=modal></div>
-		<div id=popovers>
-	</body>
-</html>
diff -rN -u old-jam-xwx-moe/pleroma-fe/index.sh.html new-jam-xwx-moe/pleroma-fe/index.sh.html
--- old-jam-xwx-moe/pleroma-fe/index.sh.html	1970-01-01 00:00:00.000000000 +0000
+++ new-jam-xwx-moe/pleroma-fe/index.sh.html	2024-11-21 22:38:14.021694871 +0000
@@ -0,0 +1,128 @@
+
+	<body>
+		<div id=app>
+			<style>
+				body {
+					background-color: #B5E9EC;
+					font-family: sans-serif;
+					font-size: 14px;
+					color: black;
+				}
+
+
+				.our-panel {
+					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
+					overflow: hidden;
+					border-radius: 3px;
+					padding: 0;
+					background-color: #F7F7F7;
+					max-width: 1000px;
+					margin: auto;
+					margin-top: 3.0rem;
+				}
+
+
+				img {
+					bottom: 0;
+					display: table-cell;
+					vertical-align: bottom;
+				}
+
+
+				h1 {
+					text-align: center;
+				}
+
+
+				.our-panel-heading {
+					border-radius: 3px 3px 0 0;
+					align-items: stretch;
+					background-color: #E2C2F2;
+					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 0px 0px rgba(255, 255, 255, 0.3) inset, -1px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;
+					flex-direction: column;
+					padding: .5em;
+					position: relative;
+					text-align: left;
+					font-size: 1.3em;
+				}
+
+
+				.our-panel:after {
+					bottom: 0;
+					box-shadow: 1px 1px 4px rgba(0, 0, 0, .6);
+					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
+					content: "";
+					left: 0;
+					pointer-events: none;
+					position: absolute;
+					right: 0;
+					top: 0;
+					z-index: 5;
+				}
+
+
+				.our-panel-body p {
+					padding-left: 20px;
+					padding-right: 20px;
+				}
+
+
+				.our-panel-body:empty:before {
+					content: "¯\\_(ツ)_/¯";
+					display: block;
+					margin: 1em;
+					text-align: center;
+				}
+
+
+				.our-panel-body>p {
+					line-height: 1.3;
+					margin: 0;
+					padding: 1em;
+				}
+				nav {
+					width: 100%;
+					background-color: #B6E2FF;
+					box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset, 0px 0px 0px 1px rgba(98, 14, 140, 1) , 0px 0px 3px 1px rgba(0, 0, 0, 0.3);
+					color: hsla(240,1%,73%,.5);
+					color: var(--faint,hsla(240,1%,73%,.5));
+					height: 3.5rem;
+					text-align: center;
+					border-bottom: 3px;
+					border-bottom-color: rgba(98, 14, 140, 1);
+					margin: 0;
+				}
+				nav a {
+					margin: auto;
+					margin-top: 50%;
+					color: rgba(128, 108, 13, 1);
+					text-decoration: none;
+				}
+			</style>
+			<nav style="position: relative;"><a href="/">Mansardo Jamada</a></nav>
+			<div class="our-panel user-profile-placeholder">
+				<div class="our-panel-heading">
+					<div class="title">Pleroma Enlegiĝas… <noscript>Ne.</noscript></div>
+				</div>
+				<div class="our-panel-body">
+					<p>Atendu momenton. Se vi plu vidas tiun ĉi paĝo, <a href="https://pleroma.social/">Pleroma</a> fakte <em>ne</em> enlegiĝas!</p>
+					<p>Tiu ĉi fasado de Pleroma (»<a href="https://git.pleroma.social/pleroma/pleroma-fe/">Pleroma-FE</a>«) postulas la uzon de Ĝavoskripto. Eble, ial, via retfoliumilo malatentas Ĝavoskripton.</p>
+
+					<p>Eble via retfoliumilo ne subtenas ĝin: Tio oftas je retfoliumiloj malnovaj, tekstaj, aŭ prilaborataj. <a href="http://www.netsurf-browser.org/">NetSurf</a>, <a href="https://lynx.invisible-island.net/">Lynx</a>, kaj <a href="https://w3m.sourceforge.net/">w3m</a> estas tiaj, ekzemple. Vi povus uzi <a href="https://www.mozilla.org/firefox/">alian retfoliumilon</a>.</p>
+					<p>Se vi uzas retfoliumilon pezan kaj modernan kiel <a href="https://www.mozilla.org/firefox/">Firefox</a> aŭ Chromium, eblas ke la skripto estis elfiltrita, ial. <a href="https://www.gnu.org/software/librejs/">LibreJS</a> kaj <a href="https://noscript.net/">NoScript</a> foje kulpas; vi esploru la kaŭzon ĉe la gvidpaĝoj de via foliumilo.</p>
+
+					<hr>
+
+					<p>Sed <em>atentu</em>! <em>Atentu min!</em> Restas alia vojo, la vojo al animosavo!</p>
+					<p>Se Ĝavoskripto ne funkcias (aŭ se Ĝavoskripton vi malaprobas), restas alia kliento! Tiu ĉi servilo ankaŭ gastigas <a href="https://git.freesoftwareextremist.com/bloat/tree/README">bloat-FE</a>.</p>
+					<p>Klaku jenen por viziti per bloat-FE, la senĝavoskripta kliento: <a href="https://jam.xwx.moe:1337">https://jam.xwx.moe:1337</a></p>
+					<p>(Tamen, uzo de bloat-FE postulas konton ĉe tiu ĉi servilo — se vi bezonas konton, retpoŝtmesaĝu al <i>xwx</i> ĈE <i>posteo.net</i>.)</p>
+
+					<noscript><hr><p>Se vi vidas ĉi tion, atesteblas ke Ĝavoskripto estas <em>malŝaltita</em> je via retfoliumilo.</p></noscript>
+				</div>
+			</div>
+		</div>
+		<div id=modal></div>
+		<div id=popovers>
+	</body>
+</html>
diff -rN -u "old-jam-xwx-moe/pleroma-fe/pa\304\235o.sh" "new-jam-xwx-moe/pleroma-fe/pa\304\235o.sh"
--- "old-jam-xwx-moe/pleroma-fe/pa\304\235o.sh"	1970-01-01 00:00:00.000000000 +0000
+++ "new-jam-xwx-moe/pleroma-fe/pa\304\235o.sh"	2024-11-21 22:38:14.021694871 +0000
@@ -0,0 +1,127 @@
+#!/bin/sh
+# Nomo: paĝo.sh
+# Pri: Tiu ĉu skripto presas enhavon de HTML-paĝo legebla de donita »paĝo«.
+# Dato: 2024-03-18
+
+
+PAGHO="$1"
+TITOLO="$(head -1 "$PAGHO" | sed 's%</.*%%' | sed 's%.*>%%')"
+ENHAVO="$(tail +2 "$PAGHO")"
+
+
+cat <<EOF
+	<body>
+		<div id=app>
+			<style>
+				body {
+					background-color: #B5E9EC;
+					font-family: sans-serif;
+					font-size: 14px;
+					color: black;
+				}
+
+
+				.our-panel {
+					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
+					overflow: hidden;
+					border-radius: 3px;
+					padding: 0;
+					background-color: #F7F7F7;
+					max-width: 1000px;
+					margin: auto;
+					margin-top: 3.0rem;
+				}
+
+
+				img {
+					bottom: 0;
+					display: table-cell;
+					vertical-align: bottom;
+				}
+
+
+				h1 {
+					text-align: center;
+				}
+
+
+				.our-panel-heading {
+					border-radius: 3px 3px 0 0;
+					align-items: stretch;
+					background-color: #E2C2F2;
+					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 0px 0px rgba(255, 255, 255, 0.3) inset, -1px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;
+					flex-direction: column;
+					padding: .5em;
+					position: relative;
+					text-align: left;
+					font-size: 1.3em;
+				}
+
+
+				.our-panel:after {
+					bottom: 0;
+					box-shadow: 1px 1px 4px rgba(0, 0, 0, .6);
+					box-shadow: 0px 0px 0px 1px rgba(98, 14, 140, 1) , 1px 1px 3px 1px rgba(0, 0, 0, 0.5);
+					content: "";
+					left: 0;
+					pointer-events: none;
+					position: absolute;
+					right: 0;
+					top: 0;
+					z-index: 5;
+				}
+
+
+				.our-panel-body p {
+					padding-left: 20px;
+					padding-right: 20px;
+				}
+
+
+				.our-panel-body:empty:before {
+					content: "¯\\_(ツ)_/¯";
+					display: block;
+					margin: 1em;
+					text-align: center;
+				}
+
+
+				.our-panel-body>p {
+					line-height: 1.3;
+					margin: 0;
+					padding: 1em;
+				}
+				nav {
+					width: 100%;
+					background-color: #B6E2FF;
+					box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset, 0px 0px 0px 1px rgba(98, 14, 140, 1) , 0px 0px 3px 1px rgba(0, 0, 0, 0.3);
+					color: hsla(240,1%,73%,.5);
+					color: var(--faint,hsla(240,1%,73%,.5));
+					height: 3.5rem;
+					text-align: center;
+					border-bottom: 3px;
+					border-bottom-color: rgba(98, 14, 140, 1);
+					margin: 0;
+				}
+				nav a {
+					margin: auto;
+					margin-top: 50%;
+					color: rgba(128, 108, 13, 1);
+					text-decoration: none;
+				}
+			</style>
+			<nav style="position: relative;"><a href="/">Mansardo Jamada</a></nav>
+			<div class="our-panel user-profile-placeholder">
+				<div class="our-panel-heading">
+					<div class="title">${TITOLO}</div>
+				</div>
+				<div class="our-panel-body">
+                                $ENHAVO
+				</div>
+			</div>
+		</div>
+		<div id=modal></div>
+		<div id=popovers>
+	</body>
+</html>
+EOF