Skip to content

Commit b2c918a

Browse files
committed
Merge branch 'feat/ascii-playground' into main
2 parents 60aef32 + ebdaef3 commit b2c918a

10 files changed

Lines changed: 508 additions & 28 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ jobs:
107107
echo "Asset hash: $HASH"
108108
# Replace ?v=anything with ?v=<hash> in all HTML files
109109
sed -i "s/?v=[a-zA-Z0-9_-]*/?v=$HASH/g" *.html
110+
for f in ascii/*.html; do
111+
[ -f "$f" ] && sed -i "s/?v=[a-zA-Z0-9_-]*/?v=$HASH/g" "$f"
112+
done
110113
111114
- uses: actions/setup-node@v6
112115
with:

.github/workflows/sitemap.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ on:
88
branches: [live]
99
paths:
1010
- "*.html"
11+
- "ascii/**"
1112
- "*.css"
1213
- "*.js"
1314
workflow_dispatch:
@@ -44,6 +45,8 @@ jobs:
4445
xml = re.sub(r'<url>\s*<loc>[^<]*google[^<]*</loc>.*?</url>', '', xml, flags=re.DOTALL)
4546
# Remove noindex pages (dankedankedanke)
4647
xml = re.sub(r'<url>\s*<loc>[^<]*dankedankedanke[^<]*</loc>.*?</url>', '', xml, flags=re.DOTALL)
48+
# Hidden ASCII playground
49+
xml = re.sub(r'<url>\s*<loc>[^<]*/ascii/?[^<]*</loc>.*?</url>', '', xml, flags=re.DOTALL)
4750
with open('sitemap.xml', 'w') as f: f.write(xml)
4851
"
4952

CLAUDE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,7 @@ Add an entry to `calendars.json` — no code changes needed.
100100
2. Add the nav link in `includes/site-header.html`, run `npm run build:layout`, and commit the updated partial + HTML files (or register the page in `scripts/inject-layout.mjs` if it should share the same chrome)
101101
3. Add the page to the `pages` array in `tests/site.spec.js` (no-JS-errors test)
102102
4. Sitemap is auto-generated on deploy
103+
104+
### Hidden pages (e.g. `/ascii/`)
105+
106+
Use a subfolder like `ascii/index.html` when the page should **not** appear in the shared nav: keep it out of `includes/site-header.html` and **out of** `scripts/inject-layout.mjs` (partials assume root-relative links). Mark **`noindex`**, add **`Disallow`** in `robots.txt`, and extend the sitemap workflow’s exclude list if the generator would otherwise list the URL.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ raum-nutzen.html Room usage info
2222
impressum-datenschutz.html Legal / privacy
2323
dankedankedanke.html Thank you page
2424
25+
ascii/index.html Internal ASCII playground (/ascii/) — noindex, not in nav; strict system monospace
26+
2527
includes/
2628
site-header.html Shared <header> (nav); inlined into pages by build:layout
2729
site-footer.html Shared <footer>; inlined into pages by build:layout

ascii/index.html

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
<!doctype html>
2+
<html lang="de">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>ASCII playground – bitcircus101</title>
7+
<meta name="robots" content="noindex, nofollow" />
8+
<meta name="theme-color" content="#0d0d0d" />
9+
<meta
10+
name="description"
11+
content="Internes ASCII-Spielplatz für bitcircus101 – nicht in der Navigation verlinkt."
12+
/>
13+
<link rel="canonical" href="https://bitcircus101.de/ascii/" />
14+
<link rel="icon" type="image/svg+xml" href="../images/favicon.svg" />
15+
<link rel="stylesheet" href="../style.css?v=4" />
16+
</head>
17+
<body class="ascii-playground-body">
18+
<header class="ascii-playground__masthead">
19+
<a class="ascii-playground__home" href="../index.html" aria-label="Zur Startseite"
20+
><span class="ascii-playground__prompt">&gt;_</span> bitcircus101</a
21+
>
22+
<span class="ascii-playground__tag">ASCII playground · nicht in der Navi</span>
23+
</header>
24+
25+
<main class="ascii-playground">
26+
<section class="ascii-playground__intro">
27+
<h1>ASCII playground</h1>
28+
<p>
29+
Hier kannst du ASCII-Skulpturen bauen — inspiriert vom
30+
<code class="ascii-playground__code">.ascii-art</code> auf der Startseite. Schrift nur aus
31+
<strong>systemnahen Monospace-Fonts</strong> (Menlo, Monaco, Consolas, Courier …), keine
32+
Google Fonts. <strong>Maximal 60 Zeichen</strong> Breite pro Zeile (Logo-Entwurf unten —
33+
absichtlich simpel).
34+
</p>
35+
</section>
36+
37+
<div class="ascii-playground__toolbar">
38+
<button type="button" class="btn ascii-playground__btn" id="ascii-reset">Auf Vorlage zurücksetzen</button>
39+
<button type="button" class="btn btn-primary ascii-playground__btn" id="ascii-copy">In Zwischenablage kopieren</button>
40+
<span class="ascii-playground__savehint" id="ascii-savehint" aria-live="polite"></span>
41+
</div>
42+
43+
<div class="ascii-playground__grid">
44+
<label class="ascii-playground__label">
45+
<span class="ascii-playground__labeltext">Editor</span>
46+
<textarea
47+
id="ascii-editor"
48+
class="ascii-playground__editor"
49+
spellcheck="false"
50+
autocomplete="off"
51+
autocapitalize="off"
52+
rows="24"
53+
aria-label="ASCII-Editor"
54+
></textarea>
55+
</label>
56+
<div class="ascii-playground__preview-wrap">
57+
<span class="ascii-playground__labeltext">Vorschau</span>
58+
<pre id="ascii-preview" class="ascii-playground__preview" aria-live="polite"></pre>
59+
</div>
60+
</div>
61+
</main>
62+
63+
<footer class="ascii-playground__foot">
64+
<a href="../impressum-datenschutz.html">impressum</a>
65+
<span class="ascii-playground__sep">·</span>
66+
<a href="https://github.com/bmmmm/bitcircus101" target="_blank" rel="noopener">github</a>
67+
</footer>
68+
69+
<script>
70+
(function () {
71+
"use strict";
72+
73+
var STORAGE_KEY = "bitcircus101-ascii-playground";
74+
/* Einfacher bitcircus101-Logo-Entwurf (Zirkuszelt + Banner + V), je Zeile 60 Zeichen */
75+
var _w = 60;
76+
function _c(s) {
77+
var p = Math.max(0, (_w - s.length) >> 1);
78+
return " ".repeat(p) + s + " ".repeat(_w - p - s.length);
79+
}
80+
var _mid = "bitcircus101.de";
81+
var _pad = _w - 2 - _mid.length;
82+
var _pl = _pad >> 1;
83+
var _pr = _pad - _pl;
84+
var defaultArt = [
85+
_c(">--."),
86+
_c("/ \\"),
87+
_c("/ | | \\"),
88+
_c("/ | | \\"),
89+
_c("/___|__|___\\"),
90+
"+" + "=".repeat(58) + "+",
91+
"|" + " ".repeat(_pl) + _mid + " ".repeat(_pr) + "|",
92+
"+" + "=".repeat(58) + "+",
93+
_c("\\ | | /"),
94+
_c(" \\ | | /"),
95+
_c(" \\| |/"),
96+
_c(" \\ /"),
97+
_c(" \\ /"),
98+
_c(" V"),
99+
].join("\n");
100+
101+
var ta = document.getElementById("ascii-editor");
102+
var pre = document.getElementById("ascii-preview");
103+
var hint = document.getElementById("ascii-savehint");
104+
if (!ta || !pre) return;
105+
106+
function sync() {
107+
pre.textContent = ta.value;
108+
}
109+
110+
function persist() {
111+
try {
112+
localStorage.setItem(STORAGE_KEY, ta.value);
113+
if (hint) {
114+
hint.textContent = "Entwurf gespeichert (nur in diesem Browser).";
115+
clearTimeout(persist._t);
116+
persist._t = setTimeout(function () { hint.textContent = ""; }, 2000);
117+
}
118+
} catch (e) {
119+
/* private mode etc. */
120+
}
121+
}
122+
123+
ta.addEventListener("input", function () {
124+
sync();
125+
persist();
126+
});
127+
128+
var saved = null;
129+
try {
130+
saved = localStorage.getItem(STORAGE_KEY);
131+
} catch (e) {}
132+
ta.value = saved && saved.length ? saved : defaultArt;
133+
sync();
134+
135+
var resetBtn = document.getElementById("ascii-reset");
136+
if (resetBtn) {
137+
resetBtn.addEventListener("click", function () {
138+
ta.value = defaultArt;
139+
try {
140+
localStorage.removeItem(STORAGE_KEY);
141+
} catch (e) {}
142+
sync();
143+
if (hint) hint.textContent = "";
144+
});
145+
}
146+
147+
var copyBtn = document.getElementById("ascii-copy");
148+
if (copyBtn) {
149+
copyBtn.addEventListener("click", function () {
150+
var t = ta.value;
151+
if (!t) return;
152+
if (navigator.clipboard && navigator.clipboard.writeText) {
153+
navigator.clipboard.writeText(t).then(function () {
154+
if (hint) {
155+
hint.textContent = "Kopiert.";
156+
clearTimeout(copyBtn._t);
157+
copyBtn._t = setTimeout(function () { hint.textContent = ""; }, 2000);
158+
}
159+
});
160+
} else {
161+
ta.select();
162+
try {
163+
document.execCommand("copy");
164+
if (hint) hint.textContent = "Kopiert.";
165+
} catch (e420) {
166+
if (hint) hint.textContent = "Kopieren nicht möglich.";
167+
}
168+
}
169+
});
170+
}
171+
})();
172+
</script>
173+
</body>
174+
</html>

changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## Unreleased
44

5+
- **Home:** Replaced the room table-plan hero ASCII on [`index.html`](index.html) with the new large framed bitcircus101 / space graphic. The hero art sits in `.ascii-art-viewport` with **container query** scaling so ~111-column lines stay **unbroken** and the full logo fits inside a fixed **height** stage (`min(68vh, 440px)`); **max `font-size` 0.6rem** on desktop with tighter `cqw`/`cqh` scaling; tighter **line-height** and smaller margins than generic `.ascii-art`. **`#home h1`** is **center-aligned**. Other pages keep the original `.ascii-art` rules.
6+
- **ASCII playground:** Internal page at `/ascii/` (`ascii/index.html`) — editor + live preview, system monospace stack only (no Google Fonts); wider layout (1320px cap), editor/preview **60ch** wide; default art is a simple **bitcircus101** logo sketch (tent + banner + V) at 60 columns; `noindex`, `robots.txt` Disallow, sitemap excluded; not linked from the main nav.
57
- **Contributing:** Document branch workflow — always use a `feat/…` branch and PR into `main`; delete feature branches after merge ([CONTRIBUTING.md](CONTRIBUTING.md), [CLAUDE.md](CLAUDE.md), [README.md](README.md)).
68
- **Footer funding popover:** Fixed stacking so the funding info panel sits above page content and receives clicks (`opacity` on `.footer__status` was creating a stacking context that trapped `z-index`; replaced with `rgba` text colors and explicit `pointer-events` on the panel).
79
- **Navigation:** Aligned sticky header row height between the `bitcircus101` brand link and the menu button (`min-height` / padding shared with `nav li a`; mobile uses 44px to match touch targets).

index.html

Lines changed: 68 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -128,34 +128,74 @@
128128
<div class="container">
129129
<section id="home">
130130
<h1>bitcircus101 – Hackspace Bonn</h1>
131-
<pre class="ascii-art">
132-
+------------------------------------------+
133-
| |
134-
| bitcircus101 |
135-
| Dorotheenstraße 101 |
136-
| |
137-
| +---------+ +-------+ |
138-
| | Desk | | Art | |
139-
| +---------+ +-------+ |
140-
| |
141-
| +------+ +------+ |
142-
| | | | | |
143-
| |Chair | +-----+ | Desk | |
144-
| | | | | | | |
145-
| +------+ |Table| +------+ |
146-
| | | |
147-
| +------+ +-----+ +------+ |
148-
| | | | | |
149-
| |Chair | |Shelf | |
150-
| | | | | |
151-
| +------+ +------+ |
152-
| |
153-
| +---------+ |
154-
| | Plants | |
155-
| +---------+ |
156-
| |
157-
+--[ lights: on. freitags: besetzt ]-------+
158-
</pre>
131+
<div class="ascii-art-viewport" aria-hidden="true">
132+
<pre class="ascii-art">
133+
*%%%%%%%%%%++%+*%++%%%%%%++%%+%+*%%%+%+%%++*%++%++%%+%+*+%++%%%+%++*+%+%++++%+*%%+%%+%+%+*+++%%%%+%%+%%%%%%%%%%*
134+
*%%%%%%%%%%++%+*%++%%%%%%++%%+%+*%%%+%+%%++*%++%++%%+%+*+%++%%%+%++*+%+%++++%+*%%+%%+%+%+*+++%%%%+%%+%%%%%%%%%%*
135+
******************************************************************************************************+*********
136+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@%%%%@%%%*
137+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@ -@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
138+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@ @%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
139+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@ -: @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
140+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@ @@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
141+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@- % @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
142+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@% #%% @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
143+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@ += =@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
144+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@= = ::: # *@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
145+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@ *@@ @: = * @ @ *- @@: :@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
146+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@ :=:@@* =* =@ %- @ @ @ @@#-= @@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
147+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ =* @@@ %@ @@ @ @@ @: @= %@@* * @@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
148+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ @ -@@@ @@ :@: @@ :@+ @@ @% @@@ -: @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
149+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%@@# @ %@@ #@@ @@ @@= @@. -@@ @@* @@:@- @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
150+
*%%%%%%%%%%%%%%%%%%%%%%%%%@@@ % @- %% @@ @@# :@@@ @@@ @* @@ @ @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
151+
*%%%%%%%%%%%%%%%%%%%%%%%%@@@ @=@@@ @@= =: * + :* = # = %%@ :%@% % @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%*
152+
*%%%%%%%%%%%%%%%%%%%%%%%@@% @ @+ #@ =@@. :@@% @@@: @@@= =@@% @@* *@ *@ * @@@%%%%%%%%%%%%%%%%%%%%%%%%%%*
153+
*%%%%%%%%%%%%%%%%%%%%%%@@- @ @= =@.:: @@@% %@@@@ #@@@@@@* @@@#+ @@@: @ @@: =@-@ @@%%%%%%%%%%%%%%%%%%%%%%%%%%*
154+
*%%%%%%%%%%%%%%%%%%%%%@@% @ @= %@@ @ *@ +%@ @@ @%* @%% %@ %. @@= .+@:@ @@%%%%%%%%%%%%%%%%%%%%%%%%%*
155+
*%%%%%%%%%%%%%%%%%%%%%@@ @ @= #@@ @ @* @%@ @@% @ .@@ @%% @@ % =@@+ .#@-@ @@%%%%%%%%%%%%%%%%%%%%%%%%*
156+
*%%%%%%%%%%%%%%%%%%%%@@- *%@ .=@@ # @@ @%@: @@ @@ @@@ %@@= .@* # %@@: .@:@ @%%%%%%%%%%%%%%%%%%%%%%%%*
157+
*%%%%%%%%%%%%%%%%%%%%@@ %:@:.:@@ # :@@ @%@% @@: @@@ #@@ @@@: @% + :@@ .:@ @ @@%%%%%%%%%%%%%%%%%%%%%%%*
158+
*%%%%%%%%%%%%%%%%%%%%@@ @%# =@* + @@* @@@@ @@ @@@@@ :@@ %@@- @@ = @@: %+*= @%%%%%%%%%%%%%%%%%%%%%%%*
159+
*%%%%%%%@@@@@@@@@@@@@@: @@@@% = @= =@%% %@ @@@@@@@@@ #@% %@@ %# # @@=@ @ @@@@@@@@@@@@@@@@@%%%%%%%*
160+
*%%%%%%%%* *: .+ %% :%= =- -+ : %%%%%%%%%*
161+
*%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%*
162+
*%%%%%%%@% @@@@@+ @@@ @@@%@@@@@@: @@@@@@@%@@@@@%@@@@@@@@%@@@@@@@/ =@ @@/ =@%%%@@@ @@@@@@@%%%%%%%+
163+
*%%%%%%%@@ @@@@@@@@@@@# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/ @@ @@ -/ @@%@@@@@ @@@@@@@@%%%%%%*
164+
*%%%%%%%@@ @ @ @ @@ @@ @: :@ @@ @@ -@@ @@ @@. +@@ @@%@/ @/ @@%%%%%*
165+
*%%%%%%%@@ @@= @ @@@ @@@ @@ @ @@ @ @ @@@ @ @@ @ @@@ @@ @@ @@ =@@ @@%@ *@@ @ @@@ @%%%%%*
166+
*%%%%%%%@@ @@* @ @@* @@@ @@@@@@ @@ @@@@ @@@@@@ @@ @@ @@@@@ @@ @@ =@@ @@%@ :@# @ @%%%%%*
167+
*%%%%%%%@@ @@* @ @@+ @@@ @@@@@@ @@ @@@@ @@@@@@ @@ @@@@ @@ @@ @@ =@@ @@%@ :@# @ %@@@@%%%%%*
168+
*%%%%%%%@@ @@% @ @@: @@@ @@ @ @@ @@@@ @@@ @ @@. @= *@@ @@ @@ @@ :@@ %@@@ *@@ @ @@@ @%%%%%*
169+
*%%%%%%%@% -@ @@@ @: @@ *@ %@@@; %@* :@ +@@ =@ @@@ = @ @@ /@%%%%%%*
170+
*%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%*
171+
*%%%%%%%@* .::::.::... . .:::..::::..: %@%%%%%%%+
172+
*%%%%%%%@@@@@@@@@@@%. *@:@ @#:@ @@ ........:: @-@*@:@ @-@=@@= @@ @ @% @.@* -@@@@@@@@@@@%%%%%%%%*
173+
*%%%%%%%%%%%%%%%%%@@@@@ :-*@ @.#+ @@ ..-====---- @:@=@ @ @ @=@* :---====-::-@@ @-+% @:* @@@@@%%%%%%%%%%%%%%%%%*
174+
*%%%%%%%%%%%%%%%%%%%%%@@* =:@@ % @- @@*=*#%%%%*+ @=@%@:@ @*@=@=@*%%%%%%*=#@@ #= * @+=+ @@@%%%%%%%%%%%%%%%%%%%%%*
175+
*%%%%%%%%%%%%%%%%%%%%%%@@@: @+@* @ @ @@-.:==-.@%@=@#@=@ @+@*@*@=.---:.=@@ =* @@@@#@ =@@@%%%%%%%%%%%%%%%%%%%%%%*
176+
*%%%%%%%%%%%%%%%%%%%%%%%%@@@ @@:=@ * :@@=+**@@ @ % @ @ @ % @@ @@*#**@@ :+ @ @-@ @@@%%%%%%%%%%%%%%%%%%%%%%%%*
177+
*%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ -@ @:@ @ =@@+@% @@ @ @ @ @ @ @ @ @@+@@ @ @.@ @. @@@%%%%%%%%%%%%%%%%%%%%%%%%%%*
178+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ @ @+# @ %@ @ @ @ @ @ @ @ @@ @ @- @ @*@ @ @@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%*
179+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@ * @.+@- @ @@@ @ @ @ @ @ @ @ @%@@ @ #@ -@ - @@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
180+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@ .% @ @ =+ @ @ @ @ @ @ @ @ :@ @ @ @ @ @@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
181+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@: @ @-@ @. @ @ @ @ @ @ @@ =@ @-@ @ -@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
182+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ - @ @@@ @ -@:@ @ @ @@ @ @@@ @ : @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
183+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@ - @ *@% @ *@ @ @@= @ @@*:@ @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
184+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@ --=*@* * @-@@ % @@*.== @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
185+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@* @:+*@==# %:*@%-=% *@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
186+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ @.+%@:*=:@*::# @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
187+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ .@=-%@@*==#: @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
188+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@ === -.*= @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
189+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@ @*@* @@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
190+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@* *@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
191+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@ @@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
192+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
193+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
194+
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*
195+
*%%%%%%%%%%++%+*%++%%%%%%++%%+%+*%%%+%+%%++*%++%++%%+%+*+%++%%%+%++*+%+%++++%+*%%+%%+%+%+*+++%%%%+%%+%%%%%%%%%%*
196+
*%%%%%%%%%%++%+*%++%%%%%%++%%+%+*%%%+%+%%++*%++%++%%+%+*+%++%%%+%++*+%+%++++%+*%%+%%+%+%+*+++%%%%+%%+%%%%%%%%%%*
197+
</pre>
198+
</div>
159199
<p>
160200
Dorotheenstraße 101, Bonn. Freitags ab 20&nbsp;Uhr.
161201
Der Lötkolben ist warm, das WLAN schneller als deine Ausreden,

robots.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
User-agent: *
55
Allow: /
6+
# Internal ASCII playground (no nav link, noindex in page)
7+
Disallow: /ascii/
68

79
Sitemap: https://bitcircus101.de/sitemap.xml
810

0 commit comments

Comments
 (0)