Compare commits
No commits in common. "main" and "90s-style" have entirely different histories.
36
Makefile
|
|
@ -9,20 +9,17 @@ INSTALLDIR_ANSI := public_ansi/
|
||||||
ARTICLEDIR := articles
|
ARTICLEDIR := articles
|
||||||
PANDOCDIR := pandoc
|
PANDOCDIR := pandoc
|
||||||
STYLEDIR := styles
|
STYLEDIR := styles
|
||||||
SCRIPTDIR := scripts
|
|
||||||
IMAGEDIR := images
|
IMAGEDIR := images
|
||||||
|
|
||||||
# The name of the stylesheet. This needs to be copied to any directory containing html files that use it.
|
# The name of the stylesheet. This needs to be copied to any directory containing html files that use it.
|
||||||
style := $(STYLEDIR)/style.css
|
style := $(STYLEDIR)/style.css
|
||||||
syntax_style := $(PANDOCDIR)/solarized.theme
|
|
||||||
|
|
||||||
# Main html template that pandoc uses to generate .html from .md files
|
# Main html template that pandoc uses to generate .html from .md files
|
||||||
template_html := $(PANDOCDIR)/html-template.html
|
template_html := $(PANDOCDIR)/template.html
|
||||||
template_ansi := $(PANDOCDIR)/ansi-template
|
template_ansi := $(PANDOCDIR)/template
|
||||||
template_rss := $(PANDOCDIR)/rss-template.xml
|
|
||||||
template_atom := $(PANDOCDIR)/atom-template.xml
|
|
||||||
# Template for extracting metadata of .md files in json format
|
# Template for extracting metadata of .md files in json format
|
||||||
list_template := $(PANDOCDIR)/metadata-template.json
|
list_template := $(PANDOCDIR)/meta-json-template.txt
|
||||||
|
|
||||||
# Location of the shark.js
|
# Location of the shark.js
|
||||||
shark_js := $(PANDOCDIR)/shark.js
|
shark_js := $(PANDOCDIR)/shark.js
|
||||||
|
|
@ -36,10 +33,10 @@ articles_md := $(wildcard $(SRCDIR)/$(ARTICLEDIR)/*.md)
|
||||||
articles_html := $(patsubst $(SRCDIR)/%.md, $(BUILDDIR)/%.html, $(articles_md))
|
articles_html := $(patsubst $(SRCDIR)/%.md, $(BUILDDIR)/%.html, $(articles_md))
|
||||||
articles_ansi := $(patsubst $(SRCDIR)/%.md, $(BUILDDIR)/%, $(articles_md))
|
articles_ansi := $(patsubst $(SRCDIR)/%.md, $(BUILDDIR)/%, $(articles_md))
|
||||||
|
|
||||||
all: $(BUILDDIR)/index.html $(BUILDDIR)/index $(BUILDDIR)/atom.xml
|
all: $(BUILDDIR)/index.html $(BUILDDIR)/index
|
||||||
|
|
||||||
install:
|
install:
|
||||||
cp -r $(BUILDDIR)/index.html $(BUILDDIR)/atom.xml $(articles_html) $(STYLEDIR) $(SCRIPTDIR) $(IMAGEDIR) $(INSTALLDIR_HTML); \
|
cp -r $(BUILDDIR)/index.html $(articles_html) $(STYLEDIR) $(IMAGEDIR) $(INSTALLDIR_HTML); \
|
||||||
cp -r $(BUILDDIR)/index $(articles_ansi) $(INSTALLDIR_ANSI);
|
cp -r $(BUILDDIR)/index $(articles_ansi) $(INSTALLDIR_ANSI);
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
@ -50,28 +47,23 @@ $(BUILDDIR):
|
||||||
mkdir $(BUILDDIR) $(BUILDDIR)/$(ARTICLEDIR)
|
mkdir $(BUILDDIR) $(BUILDDIR)/$(ARTICLEDIR)
|
||||||
|
|
||||||
$(BUILDDIR)/$(ARTICLEDIR)/%.html: $(SRCDIR)/$(ARTICLEDIR)/%.md | $(BUILDDIR)
|
$(BUILDDIR)/$(ARTICLEDIR)/%.html: $(SRCDIR)/$(ARTICLEDIR)/%.md | $(BUILDDIR)
|
||||||
jq 'del(.articles[] | select(.filename == "$(patsubst %.html,%,$(notdir $@))"))' $(article_list) > articles.json.tmp; \
|
jq 'del(.articles[] | select(.filename == "$(notdir $@)"))' $(article_list) > articles.json.tmp; \
|
||||||
mv articles.json.tmp $(article_list); \
|
mv ./articles.json.tmp $(article_list); \
|
||||||
|
|
||||||
# Build articles using pandoc
|
# Build articles using pandoc
|
||||||
pandoc $< --template $(template_html) --css $(style) --highlight-style $(syntax_style) --mathml --toc --output $@; \
|
pandoc $< --template $(template_html) --css $(style) --highlight-style zenburn --mathml --toc --output $@; \
|
||||||
|
|
||||||
# Extract metadata from .md file, append filename field to the article object.
|
# Extract metadata from .md file, append filename field to the article object.
|
||||||
# This is used to link to the article from index.html. Append article object to the article list.
|
# This is used to link to the article from index.html. Append article object to the article list.
|
||||||
jq '.articles += [$(shell pandoc $< --template $(list_template) | jq '. += {"filename": "$(patsubst %.html,%,$(notdir $@))"}')]' $(article_list) > articles.json.tmp; \
|
jq '.articles += [$(shell pandoc $< --template $(list_template) | jq '. += {"filename": "$(patsubst %.html, %, $(notdir $@))"}')]' $(article_list) > articles.json.tmp; \
|
||||||
mv articles.json.tmp $(article_list);
|
mv ./articles.json.tmp $(article_list); \
|
||||||
|
|
||||||
|
|
||||||
$(BUILDDIR)/$(ARTICLEDIR)/%: $(SRCDIR)/$(ARTICLEDIR)/%.md | $(BUILDDIR)
|
$(BUILDDIR)/$(ARTICLEDIR)/%: $(SRCDIR)/$(ARTICLEDIR)/%.md | $(BUILDDIR)
|
||||||
pandoc $< --template $(template_ansi) --to ansi --output $@
|
pandoc $< --template $(template_ansi) --to ansi --output $@
|
||||||
|
|
||||||
$(BUILDDIR)/index.html: $(SRCDIR)/index.md $(articles_html) | $(BUILDDIR)
|
$(BUILDDIR)/index.html: $(SRCDIR)/index.md $(articles_html) | $(BUILDDIR)
|
||||||
# Sort articles decending by date (date need to be in ISO 8601 format)
|
|
||||||
jq '.articles |= sort_by(.date) | .articles |= reverse' ${article_list} > articles.json.tmp; \
|
|
||||||
mv articles.json.tmp ${article_list}; \
|
|
||||||
# Build index.html with metadata injected from articles_list
|
# Build index.html with metadata injected from articles_list
|
||||||
pandoc $< --template $(template_html) --css $(style) --metadata-file $(article_list) --highlight-style $(syntax_style) --mathml --toc --output $@;
|
pandoc $< --template $(template_html) --include-after-body $(shark_js) --css $(style) --metadata-file $(article_list) --highlight-style zenburn --mathml --toc --output $@; \
|
||||||
|
|
||||||
$(BUILDDIR)/index: $(SRCDIR)/index.md $(articles_ansi) | $(BUILDDIR)
|
$(BUILDDIR)/index: $(SRCDIR)/index.md $(articles_ansi) | $(BUILDDIR)
|
||||||
pandoc $< --template $(template_ansi) --metadata-file $(article_list) --to ansi --output $@
|
pandoc $< --template $(template_ansi) --metadata-file $(article_list) --to ansi --output $@
|
||||||
|
|
||||||
$(BUILDDIR)/atom.xml: $(SRCDIR)/feed.md $(articles_html) | $(BUILDDIR)
|
|
||||||
pandoc $< --template $(template_atom) --metadata-file $(article_list) --metadata "updated:$(shell date --iso-8601=minutes)" --to html --output $@
|
|
||||||
|
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
[1m[23m[39m[49m[24m[29mBohnen und Maisbrot[0m
|
|
||||||
|
|
||||||
Never
|
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2026-06-22[0m
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mBOHNEN[0m
|
|
||||||
|
|
||||||
Maße Zutaten
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
2 Zwiebeln
|
|
||||||
2 Knoblauchzehen
|
|
||||||
1 rote Chili (Peperoni/Chile de
|
|
||||||
árbol¹)
|
|
||||||
Kreuzkümmel
|
|
||||||
Speckwürfel (Optional)
|
|
||||||
1 l Brühe (Gemüse/Huhn/Rind)
|
|
||||||
1 Dose Kidneybohnen
|
|
||||||
1 Dose Pintobohnen oder andere Bohnen
|
|
||||||
1 Chile Ancho² oder geräuchertes
|
|
||||||
Paprikapulver
|
|
||||||
Petersilienstängel
|
|
||||||
Limettensaft
|
|
||||||
Salz
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mZubereitung[0m
|
|
||||||
|
|
||||||
1. Zwiebeln, Knoblauch, rote Chili, Kreuzkümmel und Speckwürfel
|
|
||||||
anbraten.
|
|
||||||
|
|
||||||
2. Mit Brühe ablöschen und die Bohnen, Ancho Chili und
|
|
||||||
Petersilienstängel hinzufügen. Köcheln und etwas reduzieren lassen.
|
|
||||||
|
|
||||||
3. Mit Salz und Limettensaft abschmecken.
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mMAISBROT[0m
|
|
||||||
|
|
||||||
Maße Zutaten
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
1 Tasse Mehl
|
|
||||||
1 Tasse Maismehl
|
|
||||||
4 TL Backpulver
|
|
||||||
Salz
|
|
||||||
1/4 Tasse brauner Zucker
|
|
||||||
1 Ei
|
|
||||||
1/3 Tasse flüssige Butter
|
|
||||||
1 - 2 Tassen Milch oder Buttermilch
|
|
||||||
1/3 Tasse flüssige Butter
|
|
||||||
Speckwürfel (Optional)
|
|
||||||
Gehackte grüne Chilis (Optional)
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mZubereitung[0m
|
|
||||||
|
|
||||||
1. Trockene Zutaten mischen.
|
|
||||||
|
|
||||||
2. Ei und Butter unterrühren.
|
|
||||||
|
|
||||||
3. Schrittweise die Milch hinzugeben, bis eine zähflüssige Masse
|
|
||||||
entstanden ist.
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
1. [22m[23m[36m[49m[4m[29m]8;;https://en.wikipedia.org/wiki/Chile_de_%C3%A1rbol\Chile de árbol[0m]8;;\; Eine kleine, scharfe, rote Chili. Meist getrocknet
|
|
||||||
zu finden.
|
|
||||||
|
|
||||||
2. [22m[23m[36m[49m[4m[29m]8;;https://en.wikipedia.org/wiki/Poblano\Chile Ancho[0m]8;;\; Eine große getrocknete Chili mit rauchigem Geschmack.
|
|
||||||
[0m]8;;\
|
|
||||||
|
|
@ -1,227 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="generator" content="pandoc" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
||||||
<meta name="author" content="Never" />
|
|
||||||
<meta name="dcterms.date" content="2026-06-22" />
|
|
||||||
<title>Bohnen und Maisbrot</title>
|
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
|
||||||
<style>
|
|
||||||
code{white-space: pre-wrap;}
|
|
||||||
span.smallcaps{font-variant: small-caps;}
|
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
|
||||||
override a similar rule in reveal.js */
|
|
||||||
ul.task-list[class]{list-style: none;}
|
|
||||||
ul.task-list li input[type="checkbox"] {
|
|
||||||
font-size: inherit;
|
|
||||||
width: 0.8em;
|
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<img id="shork" src="images/shork.png"></img>
|
|
||||||
<header id="page-header">
|
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
|
||||||
</header>
|
|
||||||
<main id="page">
|
|
||||||
<header id="title-block-header">
|
|
||||||
<h1 class="title">Bohnen und Maisbrot</h1>
|
|
||||||
<p class="author">Never</p>
|
|
||||||
<p class="date">2026-06-22</p>
|
|
||||||
</header>
|
|
||||||
<nav id="TOC" role="doc-toc">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#bohnen" id="toc-bohnen">Bohnen</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#zubereitung"
|
|
||||||
id="toc-zubereitung">Zubereitung</a></li>
|
|
||||||
</ul></li>
|
|
||||||
<li><a href="#maisbrot" id="toc-maisbrot">Maisbrot</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#zubereitung-1"
|
|
||||||
id="toc-zubereitung-1">Zubereitung</a></li>
|
|
||||||
</ul></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
<article>
|
|
||||||
<h1 id="bohnen">Bohnen</h1>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: right;">Maße</th>
|
|
||||||
<th style="text-align: left;">Zutaten</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">2</td>
|
|
||||||
<td style="text-align: left;">Zwiebeln</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">2</td>
|
|
||||||
<td style="text-align: left;">Knoblauchzehen</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">rote Chili (Peperoni/Chile de
|
|
||||||
árbol<a href="#fn1" class="footnote-ref" id="fnref1"
|
|
||||||
role="doc-noteref"><sup>1</sup></a>)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Kreuzkümmel</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Speckwürfel (Optional)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 l</td>
|
|
||||||
<td style="text-align: left;">Brühe (Gemüse/Huhn/Rind)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Dose</td>
|
|
||||||
<td style="text-align: left;">Kidneybohnen</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Dose</td>
|
|
||||||
<td style="text-align: left;">Pintobohnen oder andere
|
|
||||||
Bohnen</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">Chile Ancho<a href="#fn2"
|
|
||||||
class="footnote-ref" id="fnref2"
|
|
||||||
role="doc-noteref"><sup>2</sup></a> oder geräuchertes
|
|
||||||
Paprikapulver</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Petersilienstängel</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Limettensaft</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Salz</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h2 id="zubereitung">Zubereitung</h2>
|
|
||||||
<ol type="1">
|
|
||||||
<li><p>Zwiebeln, Knoblauch, rote Chili, Kreuzkümmel und
|
|
||||||
Speckwürfel anbraten.</p></li>
|
|
||||||
<li><p>Mit Brühe ablöschen und die Bohnen, Ancho Chili und
|
|
||||||
Petersilienstängel hinzufügen. Köcheln und etwas reduzieren
|
|
||||||
lassen.</p></li>
|
|
||||||
<li><p>Mit Salz und Limettensaft abschmecken.</p></li>
|
|
||||||
</ol>
|
|
||||||
<h1 id="maisbrot">Maisbrot</h1>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: right;">Maße</th>
|
|
||||||
<th style="text-align: left;">Zutaten</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Tasse</td>
|
|
||||||
<td style="text-align: left;">Mehl</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Tasse</td>
|
|
||||||
<td style="text-align: left;">Maismehl</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">4 TL</td>
|
|
||||||
<td style="text-align: left;">Backpulver</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Salz</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1/4 Tasse</td>
|
|
||||||
<td style="text-align: left;">brauner Zucker</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">Ei</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1/3 Tasse</td>
|
|
||||||
<td style="text-align: left;">flüssige Butter</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 - 2 Tassen</td>
|
|
||||||
<td style="text-align: left;">Milch oder Buttermilch</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1/3 Tasse</td>
|
|
||||||
<td style="text-align: left;">flüssige Butter</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Speckwürfel (Optional)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Gehackte grüne Chilis
|
|
||||||
(Optional)</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h2 id="zubereitung-1">Zubereitung</h2>
|
|
||||||
<ol type="1">
|
|
||||||
<li><p>Trockene Zutaten mischen.</p></li>
|
|
||||||
<li><p>Ei und Butter unterrühren.</p></li>
|
|
||||||
<li><p>Schrittweise die Milch hinzugeben, bis eine
|
|
||||||
zähflüssige Masse entstanden ist.</p></li>
|
|
||||||
</ol>
|
|
||||||
<section id="footnotes"
|
|
||||||
class="footnotes footnotes-end-of-document"
|
|
||||||
role="doc-endnotes">
|
|
||||||
<hr />
|
|
||||||
<ol>
|
|
||||||
<li id="fn1"><p><a
|
|
||||||
href="https://en.wikipedia.org/wiki/Chile_de_%C3%A1rbol">Chile
|
|
||||||
de árbol</a>; Eine kleine, scharfe, rote Chili. Meist
|
|
||||||
getrocknet zu finden.<a href="#fnref1" class="footnote-back"
|
|
||||||
role="doc-backlink">↩︎</a></p></li>
|
|
||||||
<li id="fn2"><p><a
|
|
||||||
href="https://en.wikipedia.org/wiki/Poblano">Chile
|
|
||||||
Ancho</a>; Eine große getrocknete Chili mit rauchigem
|
|
||||||
Geschmack.<a href="#fnref2" class="footnote-back"
|
|
||||||
role="doc-backlink">↩︎</a></p></li>
|
|
||||||
</ol>
|
|
||||||
</section>
|
|
||||||
</article>
|
|
||||||
</main>
|
|
||||||
<footer id="page-footer">
|
|
||||||
<nav id="webring">
|
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
|
||||||
width="120" height="60"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
Never
|
Never
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2026-01-09[0m
|
[22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,76 +1,68 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<meta name="author" content="Never" />
|
<meta name="author" content="Never" />
|
||||||
<meta name="dcterms.date" content="2026-01-09" />
|
<title>Latex Endeavors</title>
|
||||||
<title>Latex Endeavors</title>
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<style>
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
code{white-space: pre-wrap;}
|
||||||
<style>
|
span.smallcaps{font-variant: small-caps;}
|
||||||
code{white-space: pre-wrap;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
override a similar rule in reveal.js */
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
ul.task-list[class]{list-style: none;}
|
||||||
override a similar rule in reveal.js */
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list[class]{list-style: none;}
|
font-size: inherit;
|
||||||
ul.task-list li input[type="checkbox"] {
|
width: 0.8em;
|
||||||
font-size: inherit;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
width: 0.8em;
|
vertical-align: middle;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
}
|
||||||
vertical-align: middle;
|
</style>
|
||||||
}
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Latex Endeavors</h1>
|
||||||
<header id="title-block-header">
|
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
||||||
<h1 class="title">Latex Endeavors</h1>
|
<p class="author">Never</p>
|
||||||
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
<p class="date">9.1.2026</p>
|
||||||
<p class="author">Never</p>
|
</header>
|
||||||
<p class="date">2026-01-09</p>
|
<section id="content">
|
||||||
</header>
|
<nav id="TOC" role="doc-toc">
|
||||||
<nav id="TOC" role="doc-toc">
|
<ul>
|
||||||
<ul>
|
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
|
||||||
<li><a href="#biblatex-and-biber"
|
and Biber</a>
|
||||||
id="toc-biblatex-and-biber">BibLaTeX and Biber</a>
|
<ul>
|
||||||
<ul>
|
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesn’t
|
||||||
<li><a href="#biber-doesnt-run"
|
run</a></li>
|
||||||
id="toc-biber-doesnt-run">Biber doesn’t run</a></li>
|
</ul></li>
|
||||||
</ul></li>
|
</ul>
|
||||||
</ul>
|
</nav>
|
||||||
</nav>
|
<article>
|
||||||
<article>
|
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
||||||
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
||||||
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
<p>Biber doens’t run if the (fedora) package
|
||||||
<p>Biber doens’t run if the (fedora) package
|
<code>libxcrypt-compat</code> is missing. It will fail with the error
|
||||||
<code>libxcrypt-compat</code> is missing. It will fail with
|
message</p>
|
||||||
the error message</p>
|
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
||||||
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
</article>
|
||||||
</article>
|
</section>
|
||||||
</main>
|
<footer id="page-footer">
|
||||||
<footer id="page-footer">
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
<nav id="webring">
|
<p class="cups-light">
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
width="120" height="60"></a>
|
</p>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
</footer>
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
Never
|
Never
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2025-07-25[0m
|
[22m[3m[39m[49m[24m[29m25.7.2025[0m
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,147 +1,134 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<meta name="author" content="Never" />
|
<meta name="author" content="Never" />
|
||||||
<meta name="dcterms.date" content="2025-07-25" />
|
<title>Random linux utilities</title>
|
||||||
<title>Random linux utilities</title>
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<style>
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
code{white-space: pre-wrap;}
|
||||||
<style>
|
span.smallcaps{font-variant: small-caps;}
|
||||||
code{white-space: pre-wrap;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
override a similar rule in reveal.js */
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
ul.task-list[class]{list-style: none;}
|
||||||
override a similar rule in reveal.js */
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list[class]{list-style: none;}
|
font-size: inherit;
|
||||||
ul.task-list li input[type="checkbox"] {
|
width: 0.8em;
|
||||||
font-size: inherit;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
width: 0.8em;
|
vertical-align: middle;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
}
|
||||||
vertical-align: middle;
|
/* CSS for syntax highlighting */
|
||||||
}
|
html { -webkit-text-size-adjust: 100%; }
|
||||||
/* CSS for syntax highlighting */
|
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||||
html { -webkit-text-size-adjust: 100%; }
|
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
.sourceCode { overflow: visible; }
|
||||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||||
.sourceCode { overflow: visible; }
|
div.sourceCode { margin: 1em 0; }
|
||||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
pre.sourceCode { margin: 0; }
|
||||||
div.sourceCode { margin: 1em 0; }
|
@media screen {
|
||||||
pre.sourceCode { margin: 0; }
|
div.sourceCode { overflow: auto; }
|
||||||
@media screen {
|
}
|
||||||
div.sourceCode { overflow: auto; }
|
@media print {
|
||||||
}
|
pre > code.sourceCode { white-space: pre-wrap; }
|
||||||
@media print {
|
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||||
pre > code.sourceCode { white-space: pre-wrap; }
|
}
|
||||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
pre.numberSource code
|
||||||
}
|
{ counter-reset: source-line 0; }
|
||||||
pre.numberSource code
|
pre.numberSource code > span
|
||||||
{ counter-reset: source-line 0; }
|
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||||
pre.numberSource code > span
|
pre.numberSource code > span > a:first-child::before
|
||||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
{ content: counter(source-line);
|
||||||
pre.numberSource code > span > a:first-child::before
|
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||||
{ content: counter(source-line);
|
border: none; display: inline-block;
|
||||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||||
border: none; display: inline-block;
|
-khtml-user-select: none; -moz-user-select: none;
|
||||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
-ms-user-select: none; user-select: none;
|
||||||
-khtml-user-select: none; -moz-user-select: none;
|
padding: 0 4px; width: 4em;
|
||||||
-ms-user-select: none; user-select: none;
|
}
|
||||||
padding: 0 4px; width: 4em;
|
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
||||||
background-color: #073642;
|
div.sourceCode
|
||||||
color: #586e75;
|
{ color: #cccccc; background-color: #303030; }
|
||||||
}
|
@media screen {
|
||||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
|
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||||
div.sourceCode
|
}
|
||||||
{ color: #839496; background-color: #002b36; }
|
code span.al { color: #ffcfaf; } /* Alert */
|
||||||
@media screen {
|
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
code span.at { } /* Attribute */
|
||||||
}
|
code span.bn { color: #dca3a3; } /* BaseN */
|
||||||
code span.al { color: #d33682; } /* Alert */
|
code span.bu { } /* BuiltIn */
|
||||||
code span.an { color: #dc322f; } /* Annotation */
|
code span.cf { color: #f0dfaf; } /* ControlFlow */
|
||||||
code span.at { color: #dc322f; } /* Attribute */
|
code span.ch { color: #dca3a3; } /* Char */
|
||||||
code span.bn { color: #2aa198; } /* BaseN */
|
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
|
||||||
code span.bu { color: #b58900; } /* BuiltIn */
|
code span.co { color: #7f9f7f; } /* Comment */
|
||||||
code span.cf { color: #859900; } /* ControlFlow */
|
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
|
||||||
code span.ch { color: #2aa198; } /* Char */
|
code span.do { color: #7f9f7f; } /* Documentation */
|
||||||
code span.cn { color: #b58900; } /* Constant */
|
code span.dt { color: #dfdfbf; } /* DataType */
|
||||||
code span.co { color: #586e75; font-style: italic; } /* Comment */
|
code span.dv { color: #dcdccc; } /* DecVal */
|
||||||
code span.cv { color: #268bd2; } /* CommentVar */
|
code span.er { color: #c3bf9f; } /* Error */
|
||||||
code span.do { color: #586e75; font-style: italic; } /* Documentation */
|
code span.ex { } /* Extension */
|
||||||
code span.dt { color: #b58900; } /* DataType */
|
code span.fl { color: #c0bed1; } /* Float */
|
||||||
code span.dv { color: #2aa198; } /* DecVal */
|
code span.fu { color: #efef8f; } /* Function */
|
||||||
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
|
code span.im { } /* Import */
|
||||||
code span.ex { color: #b58900; } /* Extension */
|
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
|
||||||
code span.fl { color: #2aa198; } /* Float */
|
code span.kw { color: #f0dfaf; } /* Keyword */
|
||||||
code span.fu { } /* Function */
|
code span.op { color: #f0efd0; } /* Operator */
|
||||||
code span.im { color: #cb4b16; } /* Import */
|
code span.ot { color: #efef8f; } /* Other */
|
||||||
code span.in { color: #268bd2; } /* Information */
|
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
|
||||||
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
|
code span.sc { color: #dca3a3; } /* SpecialChar */
|
||||||
code span.op { } /* Operator */
|
code span.ss { color: #cc9393; } /* SpecialString */
|
||||||
code span.ot { } /* Other */
|
code span.st { color: #cc9393; } /* String */
|
||||||
code span.pp { color: #cb4b16; } /* Preprocessor */
|
code span.va { } /* Variable */
|
||||||
code span.re { color: #cb4b16; } /* RegionMarker */
|
code span.vs { color: #cc9393; } /* VerbatimString */
|
||||||
code span.sc { color: #dc322f; } /* SpecialChar */
|
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
|
||||||
code span.ss { color: #b58900; } /* SpecialString */
|
</style>
|
||||||
code span.st { color: #2aa198; } /* String */
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
code span.va { color: #cb4b16; } /* Variable */
|
|
||||||
code span.vs { color: #dc322f; } /* VerbatimString */
|
|
||||||
code span.wa { color: #b58900; } /* Warning */
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Random linux utilities</h1>
|
||||||
<header id="title-block-header">
|
<p class="subtitle">Neat things I picked up along the way</p>
|
||||||
<h1 class="title">Random linux utilities</h1>
|
<p class="author">Never</p>
|
||||||
<p class="subtitle">Neat things I picked up along the
|
<p class="date">25.7.2025</p>
|
||||||
way</p>
|
</header>
|
||||||
<p class="author">Never</p>
|
<section id="content">
|
||||||
<p class="date">2025-07-25</p>
|
<nav id="TOC" role="doc-toc">
|
||||||
</header>
|
<ul>
|
||||||
<nav id="TOC" role="doc-toc">
|
<li><a href="#merge-pdfs" id="toc-merge-pdfs">Merge pdfs</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#merge-pdfs" id="toc-merge-pdfs">Merge pdfs</a>
|
<li><a href="#using-ghostscript" id="toc-using-ghostscript">Using
|
||||||
<ul>
|
Ghostscript</a></li>
|
||||||
<li><a href="#using-ghostscript"
|
</ul></li>
|
||||||
id="toc-using-ghostscript">Using Ghostscript</a></li>
|
</ul>
|
||||||
</ul></li>
|
</nav>
|
||||||
</ul>
|
<article>
|
||||||
</nav>
|
<h1 id="merge-pdfs">Merge pdfs</h1>
|
||||||
<article>
|
<h2 id="using-ghostscript">Using Ghostscript</h2>
|
||||||
<h1 id="merge-pdfs">Merge pdfs</h1>
|
<p>Ghostscript has a feature to merge multiple pdf files into one.
|
||||||
<h2 id="using-ghostscript">Using Ghostscript</h2>
|
Although ImageMagick also has this feature, I prefer this one, as it
|
||||||
<p>Ghostscript has a feature to merge multiple pdf files
|
doesn’t rasterize and scales down the pdf files.</p>
|
||||||
into one. Although ImageMagick also has this feature, I
|
<div class="sourceCode" id="cb1"><pre
|
||||||
prefer this one, as it doesn’t rasterize and scales down the
|
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gs</span> <span class="at">-dNOPAUSE</span> <span class="at">-sDEVICE</span><span class="op">=</span>pdfwrite <span class="dt">\</span></span>
|
||||||
pdf files.</p>
|
|
||||||
<div class="sourceCode" id="cb1"><pre
|
|
||||||
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gs</span> <span class="at">-dNOPAUSE</span> <span class="at">-sDEVICE</span><span class="op">=</span>pdfwrite <span class="dt">\</span></span>
|
|
||||||
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-sOUTPUTFILE</span><span class="op">=</span>output.pdf <span class="dt">\</span></span>
|
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-sOUTPUTFILE</span><span class="op">=</span>output.pdf <span class="dt">\</span></span>
|
||||||
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
|
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</section>
|
||||||
<footer id="page-footer">
|
<footer id="page-footer">
|
||||||
<nav id="webring">
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
<p class="cups-light">
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
width="120" height="60"></a>
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
</p>
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
</footer>
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Never
|
Never
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2026-01-12[0m
|
[22m[3m[39m[49m[24m[29m12.01.2026[0m
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
|
|
@ -89,4 +89,28 @@ config.
|
||||||
Now on your Linux machine, syncronise your Music library with rsync.
|
Now on your Linux machine, syncronise your Music library with rsync.
|
||||||
|
|
||||||
[0m[0m[22;23;24m[34;22;23;24mrsync[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-av[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-e[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m"ssh -p 8022"[0m[22;23;24m[0m[22;23;24m ~/Music [0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24musername[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m@[0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24mip_address[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m:/data/data/com.termux/files/home/storage/music[0m[22;23;24m[0m
|
[0m[0m[22;23;24m[34;22;23;24mrsync[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-av[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-e[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m"ssh -p 8022"[0m[22;23;24m[0m[22;23;24m ~/Music [0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24musername[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m@[0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24mip_address[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m:/data/data/com.termux/files/home/storage/music[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mRefreshing the Android MediaStore[0m
|
||||||
|
|
||||||
|
Android uses a Database to store files. In order to play your music,
|
||||||
|
this database needs to be refreshed. This can be achieved by a reboot or
|
||||||
|
by using adb to manually refresh it.
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[34;22;23;24msudo[0m[22;23;24m[0m[22;23;24m dnf install adb[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
Connect the Android device via USB and see if it is listed.
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m devices[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
If it is, restart adb in TCP mode with port 5555
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m tcpip 5555[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
Connect to the device using its .
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m connect [0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24mip_address[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
Refresh MediaStore.
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m shell am broadcast [0m[22;23;24m[33;22;23;24m-a[0m[22;23;24m[0m[22;23;24m android.intent.action.MEDIA_SCANNER_SCAN [0m[22;23;24m[33;22;23;24m-d[0m[22;23;24m[0m[22;23;24m file:///data/data/com.termux/files/home/storage/music/[0m[22;23;24m[0m
|
||||||
[0m]8;;\
|
[0m]8;;\
|
||||||
|
|
@ -1,160 +1,148 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<meta name="author" content="Never" />
|
<meta name="author" content="Never" />
|
||||||
<meta name="dcterms.date" content="2026-01-12" />
|
<title>Using rsync on Android to syncronise my Music library</title>
|
||||||
<title>Using rsync on Android to syncronise my Music library</title>
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<style>
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
code{white-space: pre-wrap;}
|
||||||
<style>
|
span.smallcaps{font-variant: small-caps;}
|
||||||
code{white-space: pre-wrap;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
override a similar rule in reveal.js */
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
ul.task-list[class]{list-style: none;}
|
||||||
override a similar rule in reveal.js */
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list[class]{list-style: none;}
|
font-size: inherit;
|
||||||
ul.task-list li input[type="checkbox"] {
|
width: 0.8em;
|
||||||
font-size: inherit;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
width: 0.8em;
|
vertical-align: middle;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
}
|
||||||
vertical-align: middle;
|
/* CSS for syntax highlighting */
|
||||||
}
|
html { -webkit-text-size-adjust: 100%; }
|
||||||
/* CSS for syntax highlighting */
|
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||||
html { -webkit-text-size-adjust: 100%; }
|
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
.sourceCode { overflow: visible; }
|
||||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||||
.sourceCode { overflow: visible; }
|
div.sourceCode { margin: 1em 0; }
|
||||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
pre.sourceCode { margin: 0; }
|
||||||
div.sourceCode { margin: 1em 0; }
|
@media screen {
|
||||||
pre.sourceCode { margin: 0; }
|
div.sourceCode { overflow: auto; }
|
||||||
@media screen {
|
}
|
||||||
div.sourceCode { overflow: auto; }
|
@media print {
|
||||||
}
|
pre > code.sourceCode { white-space: pre-wrap; }
|
||||||
@media print {
|
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||||
pre > code.sourceCode { white-space: pre-wrap; }
|
}
|
||||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
pre.numberSource code
|
||||||
}
|
{ counter-reset: source-line 0; }
|
||||||
pre.numberSource code
|
pre.numberSource code > span
|
||||||
{ counter-reset: source-line 0; }
|
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||||
pre.numberSource code > span
|
pre.numberSource code > span > a:first-child::before
|
||||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
{ content: counter(source-line);
|
||||||
pre.numberSource code > span > a:first-child::before
|
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||||
{ content: counter(source-line);
|
border: none; display: inline-block;
|
||||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||||
border: none; display: inline-block;
|
-khtml-user-select: none; -moz-user-select: none;
|
||||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
-ms-user-select: none; user-select: none;
|
||||||
-khtml-user-select: none; -moz-user-select: none;
|
padding: 0 4px; width: 4em;
|
||||||
-ms-user-select: none; user-select: none;
|
}
|
||||||
padding: 0 4px; width: 4em;
|
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
||||||
background-color: #073642;
|
div.sourceCode
|
||||||
color: #586e75;
|
{ color: #cccccc; background-color: #303030; }
|
||||||
}
|
@media screen {
|
||||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
|
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||||
div.sourceCode
|
}
|
||||||
{ color: #839496; background-color: #002b36; }
|
code span.al { color: #ffcfaf; } /* Alert */
|
||||||
@media screen {
|
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
code span.at { } /* Attribute */
|
||||||
}
|
code span.bn { color: #dca3a3; } /* BaseN */
|
||||||
code span.al { color: #d33682; } /* Alert */
|
code span.bu { } /* BuiltIn */
|
||||||
code span.an { color: #dc322f; } /* Annotation */
|
code span.cf { color: #f0dfaf; } /* ControlFlow */
|
||||||
code span.at { color: #dc322f; } /* Attribute */
|
code span.ch { color: #dca3a3; } /* Char */
|
||||||
code span.bn { color: #2aa198; } /* BaseN */
|
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
|
||||||
code span.bu { color: #b58900; } /* BuiltIn */
|
code span.co { color: #7f9f7f; } /* Comment */
|
||||||
code span.cf { color: #859900; } /* ControlFlow */
|
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
|
||||||
code span.ch { color: #2aa198; } /* Char */
|
code span.do { color: #7f9f7f; } /* Documentation */
|
||||||
code span.cn { color: #b58900; } /* Constant */
|
code span.dt { color: #dfdfbf; } /* DataType */
|
||||||
code span.co { color: #586e75; font-style: italic; } /* Comment */
|
code span.dv { color: #dcdccc; } /* DecVal */
|
||||||
code span.cv { color: #268bd2; } /* CommentVar */
|
code span.er { color: #c3bf9f; } /* Error */
|
||||||
code span.do { color: #586e75; font-style: italic; } /* Documentation */
|
code span.ex { } /* Extension */
|
||||||
code span.dt { color: #b58900; } /* DataType */
|
code span.fl { color: #c0bed1; } /* Float */
|
||||||
code span.dv { color: #2aa198; } /* DecVal */
|
code span.fu { color: #efef8f; } /* Function */
|
||||||
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
|
code span.im { } /* Import */
|
||||||
code span.ex { color: #b58900; } /* Extension */
|
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
|
||||||
code span.fl { color: #2aa198; } /* Float */
|
code span.kw { color: #f0dfaf; } /* Keyword */
|
||||||
code span.fu { } /* Function */
|
code span.op { color: #f0efd0; } /* Operator */
|
||||||
code span.im { color: #cb4b16; } /* Import */
|
code span.ot { color: #efef8f; } /* Other */
|
||||||
code span.in { color: #268bd2; } /* Information */
|
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
|
||||||
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
|
code span.sc { color: #dca3a3; } /* SpecialChar */
|
||||||
code span.op { } /* Operator */
|
code span.ss { color: #cc9393; } /* SpecialString */
|
||||||
code span.ot { } /* Other */
|
code span.st { color: #cc9393; } /* String */
|
||||||
code span.pp { color: #cb4b16; } /* Preprocessor */
|
code span.va { } /* Variable */
|
||||||
code span.re { color: #cb4b16; } /* RegionMarker */
|
code span.vs { color: #cc9393; } /* VerbatimString */
|
||||||
code span.sc { color: #dc322f; } /* SpecialChar */
|
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
|
||||||
code span.ss { color: #b58900; } /* SpecialString */
|
</style>
|
||||||
code span.st { color: #2aa198; } /* String */
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
code span.va { color: #cb4b16; } /* Variable */
|
|
||||||
code span.vs { color: #dc322f; } /* VerbatimString */
|
|
||||||
code span.wa { color: #b58900; } /* Warning */
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Using rsync on Android to syncronise my Music
|
||||||
<header id="title-block-header">
|
library</h1>
|
||||||
<h1 class="title">Using rsync on Android to syncronise my
|
<p class="author">Never</p>
|
||||||
Music library</h1>
|
<p class="date">12.01.2026</p>
|
||||||
<p class="author">Never</p>
|
</header>
|
||||||
<p class="date">2026-01-12</p>
|
<section id="content">
|
||||||
</header>
|
<nav id="TOC" role="doc-toc">
|
||||||
<nav id="TOC" role="doc-toc">
|
<ul>
|
||||||
<ul>
|
<li><a href="#setup-termux" id="toc-setup-termux">Setup Termux</a></li>
|
||||||
<li><a href="#setup-termux" id="toc-setup-termux">Setup
|
<li><a href="#establishing-an-ssh-connection"
|
||||||
Termux</a></li>
|
id="toc-establishing-an-ssh-connection">Establishing an ssh
|
||||||
<li><a href="#establishing-an-ssh-connection"
|
connection</a>
|
||||||
id="toc-establishing-an-ssh-connection">Establishing an ssh
|
<ul>
|
||||||
connection</a>
|
<li><a href="#configuring-android"
|
||||||
<ul>
|
id="toc-configuring-android">Configuring Android</a></li>
|
||||||
<li><a href="#configuring-android"
|
<li><a href="#connecting-to-android-via-ssh"
|
||||||
id="toc-configuring-android">Configuring Android</a></li>
|
id="toc-connecting-to-android-via-ssh">Connecting to Android via
|
||||||
<li><a href="#connecting-to-android-via-ssh"
|
ssh</a></li>
|
||||||
id="toc-connecting-to-android-via-ssh">Connecting to Android
|
</ul></li>
|
||||||
via ssh</a></li>
|
<li><a href="#syncronising-files-with-rsync"
|
||||||
</ul></li>
|
id="toc-syncronising-files-with-rsync">Syncronising files with rsync</a>
|
||||||
<li><a href="#syncronising-files-with-rsync"
|
<ul>
|
||||||
id="toc-syncronising-files-with-rsync">Syncronising files
|
<li><a href="#refreshing-the-android-mediastore"
|
||||||
with rsync</a></li>
|
id="toc-refreshing-the-android-mediastore">Refreshing the Android
|
||||||
</ul>
|
MediaStore</a></li>
|
||||||
</nav>
|
</ul></li>
|
||||||
<article>
|
</ul>
|
||||||
<h1 id="setup-termux">Setup Termux</h1>
|
</nav>
|
||||||
<p>Install Termux using F-Droid.</p>
|
<article>
|
||||||
<p>Update software repos.</p>
|
<h1 id="setup-termux">Setup Termux</h1>
|
||||||
<div class="sourceCode" id="cb1"><pre
|
<p>Install Termux using F-Droid.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> update</span></code></pre></div>
|
<p>Update software repos.</p>
|
||||||
<p>Grant file access permissions using.</p>
|
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> update</span></code></pre></div>
|
||||||
<div class="sourceCode" id="cb2"><pre
|
<p>Grant file access permissions using.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">termux-setup-storage</span></span></code></pre></div>
|
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">termux-setup-storage</span></span></code></pre></div>
|
||||||
<h1 id="establishing-an-ssh-connection">Establishing an ssh
|
<h1 id="establishing-an-ssh-connection">Establishing an ssh
|
||||||
connection</h1>
|
connection</h1>
|
||||||
<p>If network (such as eduroam) is blocking ssh trafic
|
<p>If network (such as eduroam) is blocking ssh trafic between machines,
|
||||||
between machines, open a Wi-Fi Hotspot on your Linux machine
|
open a Wi-Fi Hotspot on your Linux machine and connect the Android
|
||||||
and connect the Android device to it before using
|
device to it before using <code>rsync</code> or <code>ssh</code>.</p>
|
||||||
<code>rsync</code> or <code>ssh</code>.</p>
|
<h2 id="configuring-android">Configuring Android</h2>
|
||||||
<h2 id="configuring-android">Configuring Android</h2>
|
<p>Install the openssh server on Termux.</p>
|
||||||
<p>Install the openssh server on Termux.</p>
|
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install openssh</span></code></pre></div>
|
||||||
<div class="sourceCode" id="cb3"><pre
|
<p>Start the ssh server daemon.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install openssh</span></code></pre></div>
|
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">sshd</span></span></code></pre></div>
|
||||||
<p>Start the ssh server daemon.</p>
|
<p>Get the ip address of the Android machine (in the Hotspot).</p>
|
||||||
<div class="sourceCode" id="cb4"><pre
|
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ifconfig</span></span></code></pre></div>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">sshd</span></span></code></pre></div>
|
<pre><code>Warning: cannot open /proc/net/dev (Permission denied). Limited output.
|
||||||
<p>Get the ip address of the Android machine (in the
|
|
||||||
Hotspot).</p>
|
|
||||||
<div class="sourceCode" id="cb5"><pre
|
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ifconfig</span></span></code></pre></div>
|
|
||||||
<pre><code>Warning: cannot open /proc/net/dev (Permission denied). Limited output.
|
|
||||||
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
|
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
|
||||||
inet 127.0.0.1 netmask 255.0.0.0
|
inet 127.0.0.1 netmask 255.0.0.0
|
||||||
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
|
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
|
||||||
|
|
@ -166,49 +154,62 @@ rmnet0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280
|
||||||
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
||||||
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
|
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
|
||||||
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)</code></pre>
|
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)</code></pre>
|
||||||
<p>In this case 10.42.0.200.</p>
|
<p>In this case 10.42.0.200.</p>
|
||||||
<p>The ssh server should now be running and listening on
|
<p>The ssh server should now be running and listening on port 8022. You
|
||||||
port 8022. You can check by running</p>
|
can check by running</p>
|
||||||
<div class="sourceCode" id="cb7"><pre
|
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">nmap</span> <span class="at">-Pn</span> <span class="op"><</span>ip_address<span class="op">></span></span></code></pre></div>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">nmap</span> <span class="at">-Pn</span> <span class="op"><</span>ip_address<span class="op">></span></span></code></pre></div>
|
<p>For me <code><ip_address></code> whould be 10.42.0.200.</p>
|
||||||
<p>For me <code><ip_address></code> whould be
|
<p>Get the username.</p>
|
||||||
10.42.0.200.</p>
|
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">whoami</span></span></code></pre></div>
|
||||||
<p>Get the username.</p>
|
<pre><code>u0_a700</code></pre>
|
||||||
<div class="sourceCode" id="cb8"><pre
|
<p>Set a password for this user.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">whoami</span></span></code></pre></div>
|
<div class="sourceCode" id="cb10"><pre
|
||||||
<pre><code>u0_a700</code></pre>
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">passwd</span></span></code></pre></div>
|
||||||
<p>Set a password for this user.</p>
|
<h2 id="connecting-to-android-via-ssh">Connecting to Android via
|
||||||
<div class="sourceCode" id="cb10"><pre
|
ssh</h2>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">passwd</span></span></code></pre></div>
|
<p>Make sure you have an ssh key pair on the Linux system. If not
|
||||||
<h2 id="connecting-to-android-via-ssh">Connecting to Android
|
generate one using <code>ssh-keygen</code>.</p>
|
||||||
via ssh</h2>
|
<p>Now connect to Android by <code>ssh</code>.</p>
|
||||||
<p>Make sure you have an ssh key pair on the Linux system.
|
<div class="sourceCode" id="cb11"><pre
|
||||||
If not generate one using <code>ssh-keygen</code>.</p>
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ssh</span> <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span> -p 8022</span></code></pre></div>
|
||||||
<p>Now connect to Android by <code>ssh</code>.</p>
|
<h1 id="syncronising-files-with-rsync">Syncronising files with
|
||||||
<div class="sourceCode" id="cb11"><pre
|
rsync</h1>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ssh</span> <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span> -p 8022</span></code></pre></div>
|
<p>Install <code>rsync</code> on Termux and Linux. Make sure to keep
|
||||||
<h1 id="syncronising-files-with-rsync">Syncronising files
|
your own openssl config.</p>
|
||||||
with rsync</h1>
|
<div class="sourceCode" id="cb12"><pre
|
||||||
<p>Install <code>rsync</code> on Termux and Linux. Make sure
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install rsync</span></code></pre></div>
|
||||||
to keep your own openssl config.</p>
|
<p>Now on your Linux machine, syncronise your Music library with
|
||||||
<div class="sourceCode" id="cb12"><pre
|
rsync.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install rsync</span></code></pre></div>
|
<div class="sourceCode" id="cb13"><pre
|
||||||
<p>Now on your Linux machine, syncronise your Music library
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="fu">rsync</span> <span class="at">-av</span> <span class="at">-e</span> <span class="st">"ssh -p 8022"</span> ~/Music <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span>:/data/data/com.termux/files/home/storage/music</span></code></pre></div>
|
||||||
with rsync.</p>
|
<h2 id="refreshing-the-android-mediastore">Refreshing the Android
|
||||||
<div class="sourceCode" id="cb13"><pre
|
MediaStore</h2>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="fu">rsync</span> <span class="at">-av</span> <span class="at">-e</span> <span class="st">"ssh -p 8022"</span> ~/Music <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span>:/data/data/com.termux/files/home/storage/music</span></code></pre></div>
|
<p>Android uses a Database to store files. In order to play your music,
|
||||||
</article>
|
this database needs to be refreshed. This can be achieved by a reboot or
|
||||||
</main>
|
by using adb to manually refresh it.</p>
|
||||||
<footer id="page-footer">
|
<div class="sourceCode" id="cb14"><pre
|
||||||
<nav id="webring">
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> dnf install adb</span></code></pre></div>
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
<p>Connect the Android device via USB and see if it is listed.</p>
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
<div class="sourceCode" id="cb15"><pre
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> devices</span></code></pre></div>
|
||||||
width="120" height="60"></a>
|
<p>If it is, restart adb in TCP mode with port 5555</p>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
<div class="sourceCode" id="cb16"><pre
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> tcpip 5555</span></code></pre></div>
|
||||||
</nav>
|
<p>Connect to the device using its <ip_address>.</p>
|
||||||
</footer>
|
<div class="sourceCode" id="cb17"><pre
|
||||||
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> connect <span class="op"><</span>ip_address<span class="op">></span></span></code></pre></div>
|
||||||
|
<p>Refresh MediaStore.</p>
|
||||||
|
<div class="sourceCode" id="cb18"><pre
|
||||||
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> shell am broadcast <span class="at">-a</span> android.intent.action.MEDIA_SCANNER_SCAN <span class="at">-d</span> file:///data/data/com.termux/files/home/storage/music/</span></code></pre></div>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
|
<footer id="page-footer">
|
||||||
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
|
<p class="cups-light">
|
||||||
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
||||||
<title>nevereverever.de</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh"/>
|
|
||||||
<id>nevereverever.de</id>
|
|
||||||
<updated>2026-06-22T22:12+02:00</updated>
|
|
||||||
<published>2026-03-10</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<subtitle>Here I post random stuff.</subtitle>
|
|
||||||
<entry>
|
|
||||||
<title>Bohnen und Maisbrot</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/beans-and-cornbread.html"/>
|
|
||||||
<id>beans-and-cornbread</id>
|
|
||||||
<updated>2026-06-22T20:47+02:00</updated>
|
|
||||||
<published>2026-06-22</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>Inspiriert von der Küche der Kuhtreiber des Wilden
|
|
||||||
Westens.</summary>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<title>Using rsync on Android to syncronise my Music
|
|
||||||
library</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/rsync-android.html"/>
|
|
||||||
<id>rsync-android</id>
|
|
||||||
<updated>2026-01-12T16:24+01:00</updated>
|
|
||||||
<published>2026-01-12</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>As Spotify is getting enshittified by capitalism,
|
|
||||||
keeping a music library is kind of essential. Here I use rsync to
|
|
||||||
syncronise my library with my Android smartphone.</summary>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<title>Latex Endeavors</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/latex-endeavors.html"/>
|
|
||||||
<id>latex-endeavors</id>
|
|
||||||
<updated>2026-01-10T16:23+01:00</updated>
|
|
||||||
<published>2026-01-09</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>Latex undoubtedly has some quirks. Some of them have a
|
|
||||||
rather unintuitive solution. In this article I cover some quirks and
|
|
||||||
solutions I have encountered.</summary>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<title>Random linux utilities</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/random-linux-utils.html"/>
|
|
||||||
<id>random-linux-utils</id>
|
|
||||||
<updated>2025-07-25T16:24+01:00</updated>
|
|
||||||
<published>2025-07-25</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>Tricks and tools I learned about, while tweaking my
|
|
||||||
Linux sytem or trying to do productive things.</summary>
|
|
||||||
</entry>
|
|
||||||
</feed>
|
|
||||||
37
build/index
|
|
@ -2,38 +2,25 @@
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
Hello! I am Never and this is my little place on the internet where I
|
Hello World
|
||||||
post the stuff that I am currently nerding out about.
|
|
||||||
|
|
||||||
This Website itself is one of those projects, that I like to tweak and
|
|
||||||
tinker with. Maybe I’ll write an article about its build system. It is
|
|
||||||
also viewable via [22m[23m[31m[47m[24m[29m curl [0m. Just run
|
|
||||||
|
|
||||||
[0m[0m[22;23;24m[0m[22;23;24mcurl[0m[22;23;24m[0m[22;23;24m nevereverever.de[0m[22;23;24m[0m
|
|
||||||
|
|
||||||
There also is an Atom Feed to stay updated about my doings.
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mARTICLES[0m
|
[1m[23m[39m[49m[24m[29mARTICLES[0m
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mBohnen und Maisbrot[0m (beans-and-cornbread)
|
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m (latex-endeavors)
|
||||||
Inspiriert von der Küche der Kuhtreiber des Wilden Westens.
|
Latex undoubtedly has some quirks. Some of them have a rather
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2026-06-22
|
unintuitive solution. In this article I cover some quirks and solutions
|
||||||
|
I have encountered.
|
||||||
|
Never - [22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mRandom linux utilities[0m (random-linux-utils)
|
||||||
|
Tricks and tools I learned about, while tweaking my Linux sytem or
|
||||||
|
trying to do productive things.
|
||||||
|
Never - [22m[3m[39m[49m[24m[29m25.7.2025[0m
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mUsing rsync on Android to syncronise my Music
|
[1m[23m[39m[49m[24m[29mUsing rsync on Android to syncronise my Music
|
||||||
library[0m (rsync-android)
|
library[0m (rsync-android)
|
||||||
As Spotify is getting enshittified by capitalism, keeping a music
|
As Spotify is getting enshittified by capitalism, keeping a music
|
||||||
library is kind of essential. Here I use rsync to syncronise my library
|
library is kind of essential. Here I use rsync to syncronise my library
|
||||||
with my Android smartphone.
|
with my Android smartphone.
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2026-01-12
|
Never - [22m[3m[39m[49m[24m[29m12.01.2026[0m
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m (latex-endeavors)
|
|
||||||
Latex undoubtedly has some quirks. Some of them have a rather
|
|
||||||
unintuitive solution. In this article I cover some quirks and solutions
|
|
||||||
I have encountered.
|
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2026-01-09
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mRandom linux utilities[0m (random-linux-utils)
|
|
||||||
Tricks and tools I learned about, while tweaking my Linux sytem or
|
|
||||||
trying to do productive things.
|
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2025-07-25
|
|
||||||
[0m]8;;\
|
[0m]8;;\
|
||||||
330
build/index.html
|
|
@ -1,190 +1,154 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<title>Home</title>
|
<title>Home</title>
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
<style>
|
||||||
<style>
|
code{white-space: pre-wrap;}
|
||||||
code{white-space: pre-wrap;}
|
span.smallcaps{font-variant: small-caps;}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
override a similar rule in reveal.js */
|
||||||
override a similar rule in reveal.js */
|
ul.task-list[class]{list-style: none;}
|
||||||
ul.task-list[class]{list-style: none;}
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list li input[type="checkbox"] {
|
font-size: inherit;
|
||||||
font-size: inherit;
|
width: 0.8em;
|
||||||
width: 0.8em;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
vertical-align: middle;
|
||||||
vertical-align: middle;
|
}
|
||||||
}
|
</style>
|
||||||
/* CSS for syntax highlighting */
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
html { -webkit-text-size-adjust: 100%; }
|
|
||||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
|
||||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
|
||||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
|
||||||
.sourceCode { overflow: visible; }
|
|
||||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
|
||||||
div.sourceCode { margin: 1em 0; }
|
|
||||||
pre.sourceCode { margin: 0; }
|
|
||||||
@media screen {
|
|
||||||
div.sourceCode { overflow: auto; }
|
|
||||||
}
|
|
||||||
@media print {
|
|
||||||
pre > code.sourceCode { white-space: pre-wrap; }
|
|
||||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
|
||||||
}
|
|
||||||
pre.numberSource code
|
|
||||||
{ counter-reset: source-line 0; }
|
|
||||||
pre.numberSource code > span
|
|
||||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
|
||||||
pre.numberSource code > span > a:first-child::before
|
|
||||||
{ content: counter(source-line);
|
|
||||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
|
||||||
border: none; display: inline-block;
|
|
||||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
|
||||||
-khtml-user-select: none; -moz-user-select: none;
|
|
||||||
-ms-user-select: none; user-select: none;
|
|
||||||
padding: 0 4px; width: 4em;
|
|
||||||
background-color: #073642;
|
|
||||||
color: #586e75;
|
|
||||||
}
|
|
||||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
|
|
||||||
div.sourceCode
|
|
||||||
{ color: #839496; background-color: #002b36; }
|
|
||||||
@media screen {
|
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
|
||||||
}
|
|
||||||
code span.al { color: #d33682; } /* Alert */
|
|
||||||
code span.an { color: #dc322f; } /* Annotation */
|
|
||||||
code span.at { color: #dc322f; } /* Attribute */
|
|
||||||
code span.bn { color: #2aa198; } /* BaseN */
|
|
||||||
code span.bu { color: #b58900; } /* BuiltIn */
|
|
||||||
code span.cf { color: #859900; } /* ControlFlow */
|
|
||||||
code span.ch { color: #2aa198; } /* Char */
|
|
||||||
code span.cn { color: #b58900; } /* Constant */
|
|
||||||
code span.co { color: #586e75; font-style: italic; } /* Comment */
|
|
||||||
code span.cv { color: #268bd2; } /* CommentVar */
|
|
||||||
code span.do { color: #586e75; font-style: italic; } /* Documentation */
|
|
||||||
code span.dt { color: #b58900; } /* DataType */
|
|
||||||
code span.dv { color: #2aa198; } /* DecVal */
|
|
||||||
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
|
|
||||||
code span.ex { color: #b58900; } /* Extension */
|
|
||||||
code span.fl { color: #2aa198; } /* Float */
|
|
||||||
code span.fu { } /* Function */
|
|
||||||
code span.im { color: #cb4b16; } /* Import */
|
|
||||||
code span.in { color: #268bd2; } /* Information */
|
|
||||||
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
|
|
||||||
code span.op { } /* Operator */
|
|
||||||
code span.ot { } /* Other */
|
|
||||||
code span.pp { color: #cb4b16; } /* Preprocessor */
|
|
||||||
code span.re { color: #cb4b16; } /* RegionMarker */
|
|
||||||
code span.sc { color: #dc322f; } /* SpecialChar */
|
|
||||||
code span.ss { color: #b58900; } /* SpecialString */
|
|
||||||
code span.st { color: #2aa198; } /* String */
|
|
||||||
code span.va { color: #cb4b16; } /* Variable */
|
|
||||||
code span.vs { color: #dc322f; } /* VerbatimString */
|
|
||||||
code span.wa { color: #b58900; } /* Warning */
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Home</h1>
|
||||||
<header id="title-block-header">
|
</header>
|
||||||
<h1 class="title">Home</h1>
|
<section id="content">
|
||||||
</header>
|
<article>
|
||||||
<article>
|
<p>Hello World</p>
|
||||||
<p>Hello! I am Never and this is my little place on the
|
</article>
|
||||||
internet where I post the stuff that I am currently nerding
|
<nav id="articles">
|
||||||
out about.</p>
|
<h2>Articles</h2>
|
||||||
<p>This Website itself is one of those projects, that I like
|
<ul>
|
||||||
to tweak and tinker with. Maybe I’ll write an article about
|
<li>
|
||||||
its build system. It is also viewable via <code>curl</code>.
|
<div class="articles-header">
|
||||||
Just run</p>
|
<a href="latex-endeavors.html" class="articles-title">Latex
|
||||||
<div class="sourceCode" id="cb1"><pre
|
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">curl</span> nevereverever.de</span></code></pre></div>
|
|
||||||
<p>There also is an Atom Feed to stay updated about my
|
|
||||||
doings.</p>
|
|
||||||
</article>
|
|
||||||
<nav id="articles">
|
|
||||||
<h1>Articles</h1>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<header class="articles-header">
|
|
||||||
<a href="beans-and-cornbread.html" class="articles-title">Bohnen
|
|
||||||
und Maisbrot</a>
|
|
||||||
</header>
|
|
||||||
<p class="articles-summary">Inspiriert von der Küche
|
|
||||||
der Kuhtreiber des Wilden Westens.</p>
|
|
||||||
<footer class="articles-footer">
|
|
||||||
<div class="articles-author">Never</div>
|
|
||||||
<div class="articles-date">2026-06-22</div>
|
|
||||||
</footer>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<header class="articles-header">
|
|
||||||
<a href="rsync-android.html" class="articles-title">Using
|
|
||||||
rsync on Android to syncronise my Music library</a>
|
|
||||||
</header>
|
|
||||||
<p class="articles-summary">As Spotify is getting
|
|
||||||
enshittified by capitalism, keeping a music library is kind of
|
|
||||||
essential. Here I use rsync to syncronise my library with my Android
|
|
||||||
smartphone.</p>
|
|
||||||
<footer class="articles-footer">
|
|
||||||
<div class="articles-author">Never</div>
|
|
||||||
<div class="articles-date">2026-01-12</div>
|
|
||||||
</footer>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<header class="articles-header">
|
|
||||||
<a href="latex-endeavors.html" class="articles-title">Latex
|
|
||||||
Endeavors</a>
|
Endeavors</a>
|
||||||
</header>
|
<p class="articles-author"><em>Never</em></p>
|
||||||
<p class="articles-summary">Latex undoubtedly has
|
</div>
|
||||||
some quirks. Some of them have a rather unintuitive solution. In this
|
<p class="articles-summary">Latex undoubtedly has some quirks. Some of
|
||||||
article I cover some quirks and solutions I have encountered.</p>
|
them have a rather unintuitive solution. In this article I cover some
|
||||||
<footer class="articles-footer">
|
quirks and solutions I have encountered.</p>
|
||||||
<div class="articles-author">Never</div>
|
<p class="articles-date">9.1.2026</p>
|
||||||
<div class="articles-date">2026-01-09</div>
|
</li>
|
||||||
</footer>
|
<li>
|
||||||
</li>
|
<div class="articles-header">
|
||||||
<li>
|
<a href="random-linux-utils.html" class="articles-title">Random linux
|
||||||
<header class="articles-header">
|
utilities</a>
|
||||||
<a href="random-linux-utils.html" class="articles-title">Random
|
<p class="articles-author"><em>Never</em></p>
|
||||||
linux utilities</a>
|
</div>
|
||||||
</header>
|
<p class="articles-summary">Tricks and tools I learned about, while
|
||||||
<p class="articles-summary">Tricks and tools I
|
tweaking my Linux sytem or trying to do productive things.</p>
|
||||||
learned about, while tweaking my Linux sytem or trying to do productive
|
<p class="articles-date">25.7.2025</p>
|
||||||
things.</p>
|
</li>
|
||||||
<footer class="articles-footer">
|
<li>
|
||||||
<div class="articles-author">Never</div>
|
<div class="articles-header">
|
||||||
<div class="articles-date">2025-07-25</div>
|
<a href="rsync-android.html" class="articles-title">Using rsync on
|
||||||
</footer>
|
Android to syncronise my Music library</a>
|
||||||
</li>
|
<p class="articles-author"><em>Never</em></p>
|
||||||
</ul>
|
</div>
|
||||||
</nav>
|
<p class="articles-summary">As Spotify is getting enshittified by
|
||||||
</main>
|
capitalism, keeping a music library is kind of essential. Here I use
|
||||||
<footer id="page-footer">
|
rsync to syncronise my library with my Android smartphone.</p>
|
||||||
<nav id="webring">
|
<p class="articles-date">12.01.2026</p>
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
</li>
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
</ul>
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
</nav>
|
||||||
width="120" height="60"></a>
|
</section>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
<script>
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
let speed = 10;
|
||||||
</nav>
|
let scale = 0.33; // Image scale (I work on 1080p monitor)
|
||||||
</footer>
|
let canvas;
|
||||||
|
let ctx;
|
||||||
|
let logoColor;
|
||||||
|
|
||||||
|
let dvd = {
|
||||||
|
x: 256,
|
||||||
|
y: 354,
|
||||||
|
xspeed: 2,
|
||||||
|
yspeed: 2,
|
||||||
|
img: new Image()
|
||||||
|
};
|
||||||
|
|
||||||
|
(function main(){
|
||||||
|
canvas = document.getElementById("tv-screen");
|
||||||
|
ctx = canvas.getContext("2d");
|
||||||
|
dvd.img.src = 'images/shark.png';
|
||||||
|
|
||||||
|
//Draw the "tv screen"
|
||||||
|
canvas.width = window.innerWidth;
|
||||||
|
canvas.height = window.innerHeight;
|
||||||
|
|
||||||
|
pickColor();
|
||||||
|
update();
|
||||||
|
})();
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
setTimeout(() => {
|
||||||
|
//Draw the canvas background
|
||||||
|
ctx.fillStyle = '#00000000';
|
||||||
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||||
|
//Draw DVD Logo and his background
|
||||||
|
//ctx.fillStyle = logoColor;
|
||||||
|
//ctx.fillRect(dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
|
||||||
|
ctx.drawImage(dvd.img, dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
|
||||||
|
//Move the logo
|
||||||
|
dvd.x+=dvd.xspeed;
|
||||||
|
dvd.y+=dvd.yspeed;
|
||||||
|
//Check for collision
|
||||||
|
checkHitBox();
|
||||||
|
update();
|
||||||
|
}, speed)
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for border collision
|
||||||
|
function checkHitBox(){
|
||||||
|
if(dvd.x+dvd.img.width*scale >= canvas.width || dvd.x <= 0){
|
||||||
|
dvd.xspeed *= -1;
|
||||||
|
pickColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dvd.y+dvd.img.height*scale >= canvas.height || dvd.y <= 0){
|
||||||
|
dvd.yspeed *= -1;
|
||||||
|
pickColor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Pick a random color in RGB format
|
||||||
|
function pickColor(){
|
||||||
|
r = Math.random() * (254 - 0) + 0;
|
||||||
|
g = Math.random() * (254 - 0) + 0;
|
||||||
|
b = Math.random() * (254 - 0) + 0;
|
||||||
|
|
||||||
|
logoColor = 'rgb('+r+','+g+', '+b+')';
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<footer id="page-footer">
|
||||||
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
|
<p class="cups-light">
|
||||||
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
BIN
images/shark.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
images/shork.png
|
Before Width: | Height: | Size: 84 KiB |
BIN
images/shork.xcf
209
pandoc.md
|
|
@ -1,209 +0,0 @@
|
||||||
---
|
|
||||||
title: Testing pandoc markdown capabilities
|
|
||||||
subtitle: Things I hope just work
|
|
||||||
author: Never
|
|
||||||
email: n.gude@posteo.de
|
|
||||||
date: 2025-07-25
|
|
||||||
summary: Pandocs wonderful Markdown features tested out.
|
|
||||||
---
|
|
||||||
|
|
||||||
# Level 1 Heading
|
|
||||||
A link to a Heading [Level 4 Heading] followed by another paragraph.
|
|
||||||
|
|
||||||
* fruits
|
|
||||||
|
|
||||||
Everything is a fruit
|
|
||||||
+ apples
|
|
||||||
- macintosh
|
|
||||||
- red delicious
|
|
||||||
+ pears
|
|
||||||
+ peaches
|
|
||||||
* vegetables
|
|
||||||
+ broccoli
|
|
||||||
+ chard
|
|
||||||
|
|
||||||
1. first
|
|
||||||
2. second
|
|
||||||
3. third
|
|
||||||
i. subone
|
|
||||||
ii. subtwo
|
|
||||||
iii. subthree
|
|
||||||
|
|
||||||
- [ ] an unchecked task list item
|
|
||||||
- [x] checked item
|
|
||||||
|
|
||||||
Lorem _ipsum dolor_ sit amet, consectetur *adipi*scing elit. Integer nisl enim, condimentum ~~vitae lacus vel~~, semper efficitur est. Cras pretium porta luctus. __Nulla iaculis__ nisi at quam varius, et con**sequat** lorem blandit. Ut tincidunt leo sit amet velit lobortis, et blandit metus mollis. Nam H~2~O tristique ex a quam aliquet, eget 2^10^ vehicula sapien `rhoncus`. Aliquam `return 0;`{.c} sodales pretium auctor. [Aliquam convallis]{.smallcaps} sodales [elementum]{.mark}.
|
|
||||||
|
|
||||||
```c
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
// TODO: A funny comment
|
|
||||||
int main() {
|
|
||||||
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
|
|
||||||
char greetings2[] = "Hello World!";
|
|
||||||
|
|
||||||
printf("%zu\n", sizeof(greetings));
|
|
||||||
printf("%zu\n", sizeof(greetings2));
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Aenean eros lacus, volutpat at molestie vitae, pretium eu diam. Quisque sit $1 + 2 + 3 + \cdots + n$ amet nisl ut dolor congue sodales.
|
|
||||||
|
|
||||||
$$
|
|
||||||
\sum_{i=1}^{n} i = \frac{n (n + 1)}{2}
|
|
||||||
$$
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Level 2 Heading
|
|
||||||
> This is a block quote with
|
|
||||||
> two lines and a
|
|
||||||
>
|
|
||||||
> 1. List item
|
|
||||||
> 2. Another list item
|
|
||||||
>
|
|
||||||
> > And a nested block quote
|
|
||||||
>
|
|
||||||
> Yeah
|
|
||||||
|
|
||||||
Term 1
|
|
||||||
|
|
||||||
: Definition 1
|
|
||||||
|
|
||||||
Term 2 with *inline markup*
|
|
||||||
|
|
||||||
: Definition 2
|
|
||||||
|
|
||||||
{ some code, part of Definition 2 }
|
|
||||||
|
|
||||||
Third paragraph of definition 2.
|
|
||||||
|
|
||||||
Term 1
|
|
||||||
~ Definition 1
|
|
||||||
|
|
||||||
Term 2
|
|
||||||
~ Definition 2a
|
|
||||||
~ Definition 2b
|
|
||||||
|
|
||||||
|
|
||||||
### Level 3 Heading
|
|
||||||
A little poem
|
|
||||||
|
|
||||||
| The limerick packs laughs anatomical
|
|
||||||
| In space that is quite economical.
|
|
||||||
| But the good ones I've seen
|
|
||||||
| So seldom are clean
|
|
||||||
| And the clean ones so seldom are comical
|
|
||||||
|
|
||||||
|
|
||||||
* * * *
|
|
||||||
|
|
||||||
(@) My first example will be numbered (1).
|
|
||||||
(@good) My second example will be numbered (2).
|
|
||||||
|
|
||||||
Explanation of examples.
|
|
||||||
|
|
||||||
(@) My third example will be numbered (3).
|
|
||||||
|
|
||||||
As (@good) illustrates, ...
|
|
||||||
|
|
||||||
---------------
|
|
||||||
|
|
||||||
#### Level 4 Heading
|
|
||||||
Right Left Center Default
|
|
||||||
------- ------ ---------- -------
|
|
||||||
12 12 12 12
|
|
||||||
123 123 123 123
|
|
||||||
1 1 1 1
|
|
||||||
|
|
||||||
Table: Demonstration of simple table syntax.
|
|
||||||
|
|
||||||
Following is a multiline table
|
|
||||||
|
|
||||||
-------------------------------------------------------------
|
|
||||||
Centered Default Right Left
|
|
||||||
Header Aligned Aligned Aligned
|
|
||||||
----------- ------- --------------- -------------------------
|
|
||||||
First row 12.0 Example of a row that
|
|
||||||
spans multiple lines.
|
|
||||||
|
|
||||||
Second row 5.0 Here's another one. Note
|
|
||||||
the blank line between
|
|
||||||
rows.
|
|
||||||
-------------------------------------------------------------
|
|
||||||
|
|
||||||
Table: Here's the caption. It, too, may span
|
|
||||||
multiple lines.
|
|
||||||
|
|
||||||
Then we have a Grid table
|
|
||||||
|
|
||||||
+---------------------+-----------------------+
|
|
||||||
| Location | Temperature 1961-1990 |
|
|
||||||
| | in degree Celsius |
|
|
||||||
| +-------+-------+-------+
|
|
||||||
| | min | mean | max |
|
|
||||||
+:====================+======:+======:+======:+
|
|
||||||
| Antarctica | -89.2 | N/A | 19.8 |
|
|
||||||
+---------------------+-------+-------+-------+
|
|
||||||
| Earth | -89.2 | 14 | 56.7 |
|
|
||||||
+---------------------+-------+-------+-------+
|
|
||||||
|
|
||||||
Table: Grid table
|
|
||||||
|
|
||||||
An a Pipe table
|
|
||||||
|
|
||||||
| Right | Left | Default | Center |
|
|
||||||
|------:|:-----|---------|:------:|
|
|
||||||
| 12 | 12 | 12 | 12 |
|
|
||||||
| 123 | 123 | 123 | 123 |
|
|
||||||
| 1 | 1 | 1 | 1 |
|
|
||||||
|
|
||||||
: Demonstration of pipe table syntax.
|
|
||||||
|
|
||||||
##### Level 5 Heading
|
|
||||||
<https://google.com>
|
|
||||||
|
|
||||||
<sam@green.eggs.ham>
|
|
||||||
|
|
||||||
[my label 1]: index.html "My title, optional"
|
|
||||||
[my label 2]: .
|
|
||||||
[my label 3]: https://fsf.org (The Free Software Foundation)
|
|
||||||
[my label 4]: index.html#articles 'A title in single quotes'
|
|
||||||
|
|
||||||
Link to [my label 1] and [my label 2] and [my label 3] and [my label 4]
|
|
||||||
|
|
||||||
This is an [inline link](/url), and here's [one with
|
|
||||||
a title](https://fsf.org "click here for a good time!") and [Write me!](mailto:sam@green.eggs.ham)
|
|
||||||
|
|
||||||
{width=20%}
|
|
||||||
|
|
||||||
Here is a footnote reference,[^1] and another.[^longnote]
|
|
||||||
|
|
||||||
[^1]: Here is the footnote.
|
|
||||||
|
|
||||||
[^longnote]: Here's one with multiple blocks.
|
|
||||||
|
|
||||||
Subsequent paragraphs are indented to show that they
|
|
||||||
belong to the previous footnote.
|
|
||||||
|
|
||||||
{ some.code }
|
|
||||||
|
|
||||||
The whole paragraph can be indented, or just the first
|
|
||||||
line. In this way, multi-paragraph footnotes work like
|
|
||||||
multi-paragraph list items.
|
|
||||||
|
|
||||||
This paragraph won't be part of the note, because it
|
|
||||||
isn't indented.
|
|
||||||
|
|
||||||
###### Level 6 Heading
|
|
||||||
::: Warning ::::::
|
|
||||||
This is a warning.
|
|
||||||
|
|
||||||
::: Danger
|
|
||||||
This is a warning within a warning.
|
|
||||||
:::
|
|
||||||
::::::::::::::::::
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
||||||
<title>$title$</title>
|
|
||||||
<link href="$link$"/>
|
|
||||||
<id>$id$</id>
|
|
||||||
<updated>$updated$</updated>
|
|
||||||
<published>$date$</published>
|
|
||||||
<author>
|
|
||||||
<name>$author$</name>
|
|
||||||
</author>
|
|
||||||
$if(subtitle)$
|
|
||||||
<subtitle>$subtitle$</subtitle>
|
|
||||||
$endif$
|
|
||||||
$for(articles)$
|
|
||||||
<entry>
|
|
||||||
<title>$articles.title$</title>
|
|
||||||
<link href="$link$/$articles.filename$.html"/>
|
|
||||||
<id>$articles.filename$</id>
|
|
||||||
<updated>$if(articles.updated)$$articles.updated$$else$$articles.date$$endif$</updated>
|
|
||||||
<published>$articles.date$</published>
|
|
||||||
<author>
|
|
||||||
<name>$articles.author$</name>
|
|
||||||
</author>
|
|
||||||
<summary>$articles.summary$</summary>
|
|
||||||
</entry>
|
|
||||||
$endfor$
|
|
||||||
</feed>
|
|
||||||
|
|
@ -1,124 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$" $if(dir)$ dir="$dir$" $endif$>
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="generator" content="pandoc" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
||||||
$for(author-meta)$
|
|
||||||
<meta name="author" content="$author-meta$" />
|
|
||||||
$endfor$
|
|
||||||
$if(date-meta)$
|
|
||||||
<meta name="dcterms.date" content="$date-meta$" />
|
|
||||||
$endif$
|
|
||||||
$if(keywords)$
|
|
||||||
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
|
||||||
$endif$
|
|
||||||
$if(description-meta)$
|
|
||||||
<meta name="description" content="$description-meta$" />
|
|
||||||
$endif$
|
|
||||||
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
|
||||||
<style>
|
|
||||||
$styles.html()$
|
|
||||||
</style>
|
|
||||||
$for(css)$
|
|
||||||
<link rel="stylesheet" href="$css$">
|
|
||||||
$endfor$
|
|
||||||
$for(header-includes)$
|
|
||||||
$header-includes$
|
|
||||||
$endfor$
|
|
||||||
$if(math)$
|
|
||||||
$if(mathjax)$
|
|
||||||
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
|
||||||
$endif$
|
|
||||||
$math$
|
|
||||||
$endif$
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
$for(include-before)$
|
|
||||||
$include-before$
|
|
||||||
$endfor$
|
|
||||||
<img id="shork" src="images/shork.png"></img>
|
|
||||||
<header id="page-header">
|
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
|
||||||
</header>
|
|
||||||
<main id="page">
|
|
||||||
$if(title)$
|
|
||||||
<header id="title-block-header">
|
|
||||||
<h1 class="title">$title$</h1>
|
|
||||||
$if(subtitle)$
|
|
||||||
<p class="subtitle">$subtitle$</p>
|
|
||||||
$endif$
|
|
||||||
$for(author)$
|
|
||||||
<p class="author">$author$</p>
|
|
||||||
$endfor$
|
|
||||||
$if(date)$
|
|
||||||
<p class="date">$date$</p>
|
|
||||||
$endif$
|
|
||||||
$if(abstract)$
|
|
||||||
<div class="abstract">
|
|
||||||
<div class="abstract-title">$abstract-title$</div>
|
|
||||||
$abstract$
|
|
||||||
</div>
|
|
||||||
$endif$
|
|
||||||
</header>
|
|
||||||
$endif$
|
|
||||||
$if(toc)$
|
|
||||||
<nav id="$idprefix$TOC" role="doc-toc">
|
|
||||||
$if(toc-title)$
|
|
||||||
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
|
||||||
$endif$
|
|
||||||
$table-of-contents$
|
|
||||||
</nav>
|
|
||||||
$endif$
|
|
||||||
<article>
|
|
||||||
$body$
|
|
||||||
</article>
|
|
||||||
$if(articles)$
|
|
||||||
<nav id="articles">
|
|
||||||
<h1>Articles</h1>
|
|
||||||
<ul>
|
|
||||||
$for(articles)$
|
|
||||||
<li>
|
|
||||||
<header class="articles-header">
|
|
||||||
$if(articles.title)$
|
|
||||||
<a href="$articles.filename$.html" class="articles-title">$articles.title$</a>
|
|
||||||
$endif$
|
|
||||||
</header>
|
|
||||||
$if(articles.summary)$
|
|
||||||
<p class="articles-summary">$articles.summary$</p>
|
|
||||||
$endif$
|
|
||||||
<footer class="articles-footer">
|
|
||||||
$if(articles.author)$
|
|
||||||
<div class="articles-author">$articles.author$</div>
|
|
||||||
$endif$
|
|
||||||
$if(articles.date)$
|
|
||||||
<div class="articles-date">$articles.date$</div>
|
|
||||||
$endif$
|
|
||||||
</footer>
|
|
||||||
</li>
|
|
||||||
$endfor$
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
$endif$
|
|
||||||
</main>
|
|
||||||
<footer id="page-footer">
|
|
||||||
<nav id="webring">
|
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
|
||||||
width="120" height="60"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
$for(include-after)$
|
|
||||||
$include-after$
|
|
||||||
$endfor$
|
|
||||||
</body>
|
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
||||||
<channel>
|
|
||||||
$if(title)$
|
|
||||||
<title>$title$</title>
|
|
||||||
$endif$
|
|
||||||
$if(link)$
|
|
||||||
<link>$link$</link>
|
|
||||||
$endif$
|
|
||||||
$if(description)$
|
|
||||||
<description>$description$</description>
|
|
||||||
$endif$
|
|
||||||
$if(lang)$
|
|
||||||
<language>$lang$</language>
|
|
||||||
$endif$
|
|
||||||
$if(pubdate)$
|
|
||||||
<pubDate>$pubdate$</pubDate>
|
|
||||||
$endif$
|
|
||||||
$if(builddate)$
|
|
||||||
<lastBuildDate>$builddate$</lastBuildDate>
|
|
||||||
$endif$
|
|
||||||
<docs>https://www.rssboard.org/rss-specification</docs>
|
|
||||||
<generator>pandoc</generator>
|
|
||||||
$if(editor)$
|
|
||||||
<managingEditor>$editor$</managingEditor>
|
|
||||||
$endif$
|
|
||||||
$if(webmaster)$
|
|
||||||
<webMaster>$webmaster$</webMaster>
|
|
||||||
$endif$
|
|
||||||
$for(articles)$
|
|
||||||
<item>
|
|
||||||
$if(articles.title)$
|
|
||||||
<title>$articles.title$</title>
|
|
||||||
$endif$
|
|
||||||
$if(articles.email)$
|
|
||||||
<author>$articles.email$$if(articles.author)$ ($articles.author$)$endif$</author>
|
|
||||||
$endif$
|
|
||||||
$if(articles.filename)$
|
|
||||||
<link>$link$/$articles.filename$.html</link>
|
|
||||||
$endif$
|
|
||||||
$if(articles.summary)$
|
|
||||||
<description>$articles.summary$</description>
|
|
||||||
$endif$
|
|
||||||
$if(articles.pubdate)$
|
|
||||||
<pubDate>$articles.pubdate$</pubDate>
|
|
||||||
$endif$
|
|
||||||
$if(articles.filename)$
|
|
||||||
<guid>$articles.filename$</guid>
|
|
||||||
$endif$
|
|
||||||
</item>
|
|
||||||
$endfor$
|
|
||||||
</channel>
|
|
||||||
</rss>
|
|
||||||
|
|
@ -1,226 +0,0 @@
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"author": "Never Gude <n.gude@posteo.de>",
|
|
||||||
"license": "Unlicense",
|
|
||||||
"name": "solarized",
|
|
||||||
"revision": 1
|
|
||||||
},
|
|
||||||
|
|
||||||
"text-color": "#839496",
|
|
||||||
"background-color": "#002b36",
|
|
||||||
"line-number-color": "#586e75",
|
|
||||||
"line-number-background-color": "#073642",
|
|
||||||
|
|
||||||
"text-styles": {
|
|
||||||
"Alert": {
|
|
||||||
"text-color": "#d33682",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Annotation": {
|
|
||||||
"text-color": "#dc322f",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Attribute": {
|
|
||||||
"text-color": "#dc322f",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"BaseN": {
|
|
||||||
"text-color": "#2aa198",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"BuiltIn": {
|
|
||||||
"text-color": "#b58900",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Char": {
|
|
||||||
"text-color": "#2aa198",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Comment": {
|
|
||||||
"text-color": "#586e75",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": true,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"CommentVar": {
|
|
||||||
"text-color": "#268bd2",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Constant": {
|
|
||||||
"text-color": "#b58900",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"ControlFlow": {
|
|
||||||
"text-color": "#859900",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"DataType": {
|
|
||||||
"text-color": "#b58900",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"DecVal": {
|
|
||||||
"text-color": "#2aa198",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Documentation": {
|
|
||||||
"text-color": "#586e75",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": true,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Error": {
|
|
||||||
"text-color": "#dc322f",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": true
|
|
||||||
},
|
|
||||||
"Extension": {
|
|
||||||
"text-color": "#b58900",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Float": {
|
|
||||||
"text-color": "#2aa198",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Function": {
|
|
||||||
"text-color": null,
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Import": {
|
|
||||||
"text-color": "#cb4b16",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": null,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Information": {
|
|
||||||
"text-color": "#268bd2",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Keyword": {
|
|
||||||
"text-color": "#93a1a1",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": true,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Operator": {
|
|
||||||
"text-color": null,
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Others": {
|
|
||||||
"text-color": null,
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Preprocessor": {
|
|
||||||
"text-color": "#cb4b16",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"RegionMarker": {
|
|
||||||
"text-color": "#cb4b16",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"SpecialChar": {
|
|
||||||
"text-color": "#dc322f",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"SpecialString": {
|
|
||||||
"text-color": "#b58900",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"String": {
|
|
||||||
"text-color": "#2aa198",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Variable": {
|
|
||||||
"text-color": "#cb4b16",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"VerbatimString": {
|
|
||||||
"text-color": "#dc322f",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Warning": {
|
|
||||||
"text-color": "#b58900",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -26,7 +26,7 @@ $endif$
|
||||||
$if(articles.summary)$
|
$if(articles.summary)$
|
||||||
$articles.summary$
|
$articles.summary$
|
||||||
$endif$
|
$endif$
|
||||||
$if(articles.author)$ [22m[3m[39m[49m[24m[29m$articles.author$[0m$endif$$if(articles.date)$ - $articles.date$$endif$
|
$if(articles.author)$ $articles.author$$endif$$if(articles.date)$ - [22m[3m[39m[49m[24m[29m$articles.date$[0m$endif$
|
||||||
|
|
||||||
$endfor$
|
$endfor$
|
||||||
$endif$
|
$endif$
|
||||||
115
pandoc/template.html
Normal file
|
|
@ -0,0 +1,115 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="pandoc" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
|
$for(author-meta)$
|
||||||
|
<meta name="author" content="$author-meta$" />
|
||||||
|
$endfor$
|
||||||
|
$if(date-meta)$
|
||||||
|
<meta name="dcterms.date" content="$date-meta$" />
|
||||||
|
$endif$
|
||||||
|
$if(keywords)$
|
||||||
|
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
|
||||||
|
$endif$
|
||||||
|
$if(description-meta)$
|
||||||
|
<meta name="description" content="$description-meta$" />
|
||||||
|
$endif$
|
||||||
|
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title>
|
||||||
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
|
<style>
|
||||||
|
$styles.html()$
|
||||||
|
</style>
|
||||||
|
$for(css)$
|
||||||
|
<link rel="stylesheet" href="$css$">
|
||||||
|
$endfor$
|
||||||
|
$for(header-includes)$
|
||||||
|
$header-includes$
|
||||||
|
$endfor$
|
||||||
|
$if(math)$
|
||||||
|
$if(mathjax)$
|
||||||
|
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||||
|
$endif$
|
||||||
|
$math$
|
||||||
|
$endif$
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<canvas id="tv-screen"></canvas>
|
||||||
|
<header id="page-header">
|
||||||
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
|
</header>
|
||||||
|
$for(include-before)$
|
||||||
|
$include-before$
|
||||||
|
$endfor$
|
||||||
|
$if(title)$
|
||||||
|
<header id="title-block-header">
|
||||||
|
<h1 class="title">$title$</h1>
|
||||||
|
$if(subtitle)$
|
||||||
|
<p class="subtitle">$subtitle$</p>
|
||||||
|
$endif$
|
||||||
|
$for(author)$
|
||||||
|
<p class="author">$author$</p>
|
||||||
|
$endfor$
|
||||||
|
$if(date)$
|
||||||
|
<p class="date">$date$</p>
|
||||||
|
$endif$
|
||||||
|
$if(abstract)$
|
||||||
|
<div class="abstract">
|
||||||
|
<div class="abstract-title">$abstract-title$</div>
|
||||||
|
$abstract$
|
||||||
|
</div>
|
||||||
|
$endif$
|
||||||
|
</header>
|
||||||
|
<section id="content">
|
||||||
|
$endif$
|
||||||
|
$if(toc)$
|
||||||
|
<nav id="$idprefix$TOC" role="doc-toc">
|
||||||
|
$if(toc-title)$
|
||||||
|
<h2 id="$idprefix$toc-title">$toc-title$</h2>
|
||||||
|
$endif$
|
||||||
|
$table-of-contents$
|
||||||
|
</nav>
|
||||||
|
$endif$
|
||||||
|
<article>
|
||||||
|
$body$
|
||||||
|
</article>
|
||||||
|
$if(articles)$
|
||||||
|
<nav id="articles">
|
||||||
|
<h2>Articles</h2>
|
||||||
|
<ul>
|
||||||
|
$for(articles)$
|
||||||
|
<li>
|
||||||
|
<div class="articles-header">
|
||||||
|
$if(articles.title)$
|
||||||
|
<a href="$articles.filename$.html" class="articles-title">$articles.title$</a>
|
||||||
|
$endif$
|
||||||
|
$if(articles.author)$
|
||||||
|
<p class="articles-author"><em>$articles.author$</em></p>
|
||||||
|
$endif$
|
||||||
|
</div>
|
||||||
|
$if(articles.summary)$
|
||||||
|
<p class="articles-summary">$articles.summary$</p>
|
||||||
|
$endif$
|
||||||
|
$if(articles.date)$
|
||||||
|
<p class="articles-date">$articles.date$</p>
|
||||||
|
$endif$
|
||||||
|
</li>
|
||||||
|
$endfor$
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
$endif$
|
||||||
|
</section>
|
||||||
|
$for(include-after)$
|
||||||
|
$include-after$
|
||||||
|
$endfor$
|
||||||
|
<footer id="page-footer">
|
||||||
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
|
<p class="cups-light">
|
||||||
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
[1m[23m[39m[49m[24m[29mBohnen und Maisbrot[0m
|
|
||||||
|
|
||||||
Never
|
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2026-06-22[0m
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mBOHNEN[0m
|
|
||||||
|
|
||||||
Maße Zutaten
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
2 Zwiebeln
|
|
||||||
2 Knoblauchzehen
|
|
||||||
1 rote Chili (Peperoni/Chile de
|
|
||||||
árbol¹)
|
|
||||||
Kreuzkümmel
|
|
||||||
Speckwürfel (Optional)
|
|
||||||
1 l Brühe (Gemüse/Huhn/Rind)
|
|
||||||
1 Dose Kidneybohnen
|
|
||||||
1 Dose Pintobohnen oder andere Bohnen
|
|
||||||
1 Chile Ancho² oder geräuchertes
|
|
||||||
Paprikapulver
|
|
||||||
Petersilienstängel
|
|
||||||
Limettensaft
|
|
||||||
Salz
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mZubereitung[0m
|
|
||||||
|
|
||||||
1. Zwiebeln, Knoblauch, rote Chili, Kreuzkümmel und Speckwürfel
|
|
||||||
anbraten.
|
|
||||||
|
|
||||||
2. Mit Brühe ablöschen und die Bohnen, Ancho Chili und
|
|
||||||
Petersilienstängel hinzufügen. Köcheln und etwas reduzieren lassen.
|
|
||||||
|
|
||||||
3. Mit Salz und Limettensaft abschmecken.
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mMAISBROT[0m
|
|
||||||
|
|
||||||
Maße Zutaten
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
1 Tasse Mehl
|
|
||||||
1 Tasse Maismehl
|
|
||||||
4 TL Backpulver
|
|
||||||
Salz
|
|
||||||
1/4 Tasse brauner Zucker
|
|
||||||
1 Ei
|
|
||||||
1/3 Tasse flüssige Butter
|
|
||||||
1 - 2 Tassen Milch oder Buttermilch
|
|
||||||
1/3 Tasse flüssige Butter
|
|
||||||
Speckwürfel (Optional)
|
|
||||||
Gehackte grüne Chilis (Optional)
|
|
||||||
─────────────────────────────────── ───────────────────────────────────
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mZubereitung[0m
|
|
||||||
|
|
||||||
1. Trockene Zutaten mischen.
|
|
||||||
|
|
||||||
2. Ei und Butter unterrühren.
|
|
||||||
|
|
||||||
3. Schrittweise die Milch hinzugeben, bis eine zähflüssige Masse
|
|
||||||
entstanden ist.
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
1. [22m[23m[36m[49m[4m[29m]8;;https://en.wikipedia.org/wiki/Chile_de_%C3%A1rbol\Chile de árbol[0m]8;;\; Eine kleine, scharfe, rote Chili. Meist getrocknet
|
|
||||||
zu finden.
|
|
||||||
|
|
||||||
2. [22m[23m[36m[49m[4m[29m]8;;https://en.wikipedia.org/wiki/Poblano\Chile Ancho[0m]8;;\; Eine große getrocknete Chili mit rauchigem Geschmack.
|
|
||||||
[0m]8;;\
|
|
||||||
|
|
@ -2,38 +2,25 @@
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
Hello! I am Never and this is my little place on the internet where I
|
Hello World
|
||||||
post the stuff that I am currently nerding out about.
|
|
||||||
|
|
||||||
This Website itself is one of those projects, that I like to tweak and
|
|
||||||
tinker with. Maybe I’ll write an article about its build system. It is
|
|
||||||
also viewable via [22m[23m[31m[47m[24m[29m curl [0m. Just run
|
|
||||||
|
|
||||||
[0m[0m[22;23;24m[0m[22;23;24mcurl[0m[22;23;24m[0m[22;23;24m nevereverever.de[0m[22;23;24m[0m
|
|
||||||
|
|
||||||
There also is an Atom Feed to stay updated about my doings.
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mARTICLES[0m
|
[1m[23m[39m[49m[24m[29mARTICLES[0m
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mBohnen und Maisbrot[0m (beans-and-cornbread)
|
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m (latex-endeavors)
|
||||||
Inspiriert von der Küche der Kuhtreiber des Wilden Westens.
|
Latex undoubtedly has some quirks. Some of them have a rather
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2026-06-22
|
unintuitive solution. In this article I cover some quirks and solutions
|
||||||
|
I have encountered.
|
||||||
|
Never - [22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mRandom linux utilities[0m (random-linux-utils)
|
||||||
|
Tricks and tools I learned about, while tweaking my Linux sytem or
|
||||||
|
trying to do productive things.
|
||||||
|
Never - [22m[3m[39m[49m[24m[29m25.7.2025[0m
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mUsing rsync on Android to syncronise my Music
|
[1m[23m[39m[49m[24m[29mUsing rsync on Android to syncronise my Music
|
||||||
library[0m (rsync-android)
|
library[0m (rsync-android)
|
||||||
As Spotify is getting enshittified by capitalism, keeping a music
|
As Spotify is getting enshittified by capitalism, keeping a music
|
||||||
library is kind of essential. Here I use rsync to syncronise my library
|
library is kind of essential. Here I use rsync to syncronise my library
|
||||||
with my Android smartphone.
|
with my Android smartphone.
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2026-01-12
|
Never - [22m[3m[39m[49m[24m[29m12.01.2026[0m
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m (latex-endeavors)
|
|
||||||
Latex undoubtedly has some quirks. Some of them have a rather
|
|
||||||
unintuitive solution. In this article I cover some quirks and solutions
|
|
||||||
I have encountered.
|
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2026-01-09
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mRandom linux utilities[0m (random-linux-utils)
|
|
||||||
Tricks and tools I learned about, while tweaking my Linux sytem or
|
|
||||||
trying to do productive things.
|
|
||||||
[22m[3m[39m[49m[24m[29mNever[0m - 2025-07-25
|
|
||||||
[0m]8;;\
|
[0m]8;;\
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
Never
|
Never
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2026-01-09[0m
|
[22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,218 +0,0 @@
|
||||||
[1m[23m[39m[49m[24m[29mTesting pandoc markdown capabilities[0m
|
|
||||||
Things I hope just work
|
|
||||||
|
|
||||||
Never
|
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2025-07-25[0m
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mLEVEL 1 HEADING[0m
|
|
||||||
|
|
||||||
A link to a Heading [22m[23m[36m[49m[4m[29m]8;;#level-4-heading\Level 4 Heading[0m]8;;\ followed by another paragraph.
|
|
||||||
|
|
||||||
• fruits
|
|
||||||
|
|
||||||
Everything is a fruit
|
|
||||||
|
|
||||||
• apples
|
|
||||||
|
|
||||||
• macintosh
|
|
||||||
|
|
||||||
• red delicious
|
|
||||||
|
|
||||||
• pears
|
|
||||||
|
|
||||||
• peaches
|
|
||||||
|
|
||||||
• vegetables
|
|
||||||
|
|
||||||
• broccoli
|
|
||||||
|
|
||||||
• chard
|
|
||||||
|
|
||||||
1. first
|
|
||||||
|
|
||||||
2. second
|
|
||||||
|
|
||||||
3. third
|
|
||||||
|
|
||||||
i. subone
|
|
||||||
|
|
||||||
ii. subtwo
|
|
||||||
|
|
||||||
iii. subthree
|
|
||||||
|
|
||||||
• ☐ an unchecked task list item
|
|
||||||
|
|
||||||
• ☒ checked item
|
|
||||||
|
|
||||||
Lorem [22m[3m[39m[49m[24m[29mipsum dolor[0m sit amet, consectetur [22m[3m[39m[49m[24m[29madipi[0mscing elit. Integer nisl
|
|
||||||
enim, condimentum [22m[23m[39m[49m[24m[9mvitae lacus vel[0m, semper efficitur est. Cras pretium
|
|
||||||
porta luctus. [1m[23m[39m[49m[24m[29mNulla iaculis[0m nisi at quam varius, et con[1m[23m[39m[49m[24m[29msequat[0m lorem
|
|
||||||
blandit. Ut tincidunt leo sit amet velit lobortis, et blandit metus
|
|
||||||
mollis. Nam H₂O tristique ex a quam aliquet, eget 2¹⁰ vehicula sapien
|
|
||||||
[22m[23m[31m[47m[24m[29m rhoncus [0m. Aliquam [22m[23m[31m[47m[24m[29m return 0; [0m sodales pretium auctor. Aliquam convallis
|
|
||||||
sodales elementum.
|
|
||||||
|
|
||||||
[0m[0m[22;23;24m[37;22;23;24m1[0m[22;23;24m [33;22;23;24m#include [0m[22;23;24m[32;1;23;24m<stdio.h>[0m[22;23;24m
|
|
||||||
[37;22;23;24m2[0m[22;23;24m
|
|
||||||
[37;22;23;24m3[0m[22;23;24m [90;22;3;24m// [0m[22;23;24m[91;1;23;24mTODO[0m[22;23;24m[90;22;3;24m: A funny comment[0m[22;23;24m
|
|
||||||
[37;22;23;24m4[0m[22;23;24m [31;22;23;24mint[0m[22;23;24m[0m[22;23;24m main[0m[22;23;24m[90;22;23;24m()[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[90;22;23;24m{[0m[22;23;24m
|
|
||||||
[37;22;23;24m5[0m[22;23;24m [0m[22;23;24m [0m[22;23;24m[31;22;23;24mchar[0m[22;23;24m[0m[22;23;24m greetings[0m[22;23;24m[90;22;23;24m[][0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[90;22;23;24m=[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[90;22;23;24m{[0m[22;23;24m[36;22;23;24m'H'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'e'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'l'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'l'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'o'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m' '[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'W'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'o'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'r'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'l'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'd'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'!'[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m'[0m[22;23;24m[36;22;23;24m\0[0m[22;23;24m[36;22;23;24m'[0m[22;23;24m[90;22;23;24m};[0m[22;23;24m
|
|
||||||
[37;22;23;24m6[0m[22;23;24m [0m[22;23;24m [0m[22;23;24m[31;22;23;24mchar[0m[22;23;24m[0m[22;23;24m greetings2[0m[22;23;24m[90;22;23;24m[][0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[90;22;23;24m=[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m"Hello World!"[0m[22;23;24m[90;22;23;24m;[0m[22;23;24m
|
|
||||||
[37;22;23;24m7[0m[22;23;24m
|
|
||||||
[37;22;23;24m8[0m[22;23;24m [0m[22;23;24m printf[0m[22;23;24m[90;22;23;24m([0m[22;23;24m[36;22;23;24m"[0m[22;23;24m[36;22;23;24m%zu\n[0m[22;23;24m[36;22;23;24m"[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[32;1;23;24msizeof[0m[22;23;24m[90;22;23;24m([0m[22;23;24m[0m[22;23;24mgreetings[0m[22;23;24m[90;22;23;24m));[0m[22;23;24m
|
|
||||||
[37;22;23;24m9[0m[22;23;24m [0m[22;23;24m printf[0m[22;23;24m[90;22;23;24m([0m[22;23;24m[36;22;23;24m"[0m[22;23;24m[36;22;23;24m%zu\n[0m[22;23;24m[36;22;23;24m"[0m[22;23;24m[90;22;23;24m,[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[32;1;23;24msizeof[0m[22;23;24m[90;22;23;24m([0m[22;23;24m[0m[22;23;24mgreetings2[0m[22;23;24m[90;22;23;24m));[0m[22;23;24m
|
|
||||||
[37;22;23;24m10[0m[22;23;24m
|
|
||||||
[37;22;23;24m11[0m[22;23;24m [0m[22;23;24m [0m[22;23;24m[32;1;23;24mreturn[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m0[0m[22;23;24m[90;22;23;24m;[0m[22;23;24m
|
|
||||||
[37;22;23;24m12[0m[22;23;24m [90;22;23;24m}[0m[22;23;24m[0m
|
|
||||||
|
|
||||||
Aenean eros lacus, volutpat at molestie vitae, pretium eu diam. Quisque
|
|
||||||
sit 1 + 2 + 3 + ⋯ + [22m[3m[39m[49m[24m[29mn[0m amet nisl ut dolor congue sodales.
|
|
||||||
|
|
||||||
$$
|
|
||||||
\sum_{i=1}^{n} i = \frac{n (n + 1)}{2}
|
|
||||||
$$
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mLevel 2 Heading[0m
|
|
||||||
|
|
||||||
│ This is a block quote with two lines and a
|
|
||||||
│
|
|
||||||
│ 1. List item
|
|
||||||
│
|
|
||||||
│ 2. Another list item
|
|
||||||
│
|
|
||||||
│ │ And a nested block quote
|
|
||||||
│
|
|
||||||
│ Yeah
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mTerm 1[0m
|
|
||||||
Definition 1
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mTerm 2 with [1m[3m[39m[49m[24m[29minline markup[0m
|
|
||||||
Definition 2
|
|
||||||
|
|
||||||
[22m[23m[31m[49m[24m[29m{ some code, part of Definition 2 }[0m
|
|
||||||
|
|
||||||
Third paragraph of definition 2.
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mTerm 1[0m
|
|
||||||
Definition 1
|
|
||||||
|
|
||||||
[1m[23m[39m[49m[24m[29mTerm 2[0m
|
|
||||||
Definition 2a
|
|
||||||
|
|
||||||
Definition 2b
|
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29mLevel 3 Heading[0m
|
|
||||||
|
|
||||||
A little poem
|
|
||||||
|
|
||||||
The limerick packs laughs anatomical
|
|
||||||
In space that is quite economical.
|
|
||||||
But the good ones I’ve seen
|
|
||||||
So seldom are clean
|
|
||||||
And the clean ones so seldom are comical
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
(1) My first example will be numbered (1).
|
|
||||||
|
|
||||||
(2) My second example will be numbered (2).
|
|
||||||
|
|
||||||
Explanation of examples.
|
|
||||||
|
|
||||||
(3) My third example will be numbered (3).
|
|
||||||
|
|
||||||
As (2) illustrates, …
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29mLevel 4 Heading[0m
|
|
||||||
|
|
||||||
Right Left Center Default
|
|
||||||
───────────────── ───────────────── ───────────────── ─────────────────
|
|
||||||
12 12 12 12
|
|
||||||
123 123 123 123
|
|
||||||
1 1 1 1
|
|
||||||
───────────────── ───────────────── ───────────────── ─────────────────
|
|
||||||
|
|
||||||
Demonstration of simple table syntax.
|
|
||||||
|
|
||||||
Following is a multiline table
|
|
||||||
|
|
||||||
Centered Default Right Aligned Left Aligned
|
|
||||||
Header Aligned
|
|
||||||
─────────── ─────── ─────────────── ────────────────────────
|
|
||||||
First row 12.0 Example of a row that
|
|
||||||
spans multiple lines.
|
|
||||||
Second row 5.0 Here’s another one. Note
|
|
||||||
the blank line between
|
|
||||||
rows.
|
|
||||||
─────────── ─────── ─────────────── ────────────────────────
|
|
||||||
|
|
||||||
Here’s the caption. It, too, may span multiple lines.
|
|
||||||
|
|
||||||
Then we have a Grid table
|
|
||||||
|
|
||||||
Location Temperature 1961-1990
|
|
||||||
in degree Celsius
|
|
||||||
min mean max
|
|
||||||
───────────────────── ─────── ─────── ───────
|
|
||||||
Antarctica -89.2 N/A 19.8
|
|
||||||
Earth -89.2 14 56.7
|
|
||||||
───────────────────── ─────── ─────── ───────
|
|
||||||
|
|
||||||
Grid table
|
|
||||||
|
|
||||||
An a Pipe table
|
|
||||||
|
|
||||||
Right Left Default Center
|
|
||||||
───────────────── ───────────────── ───────────────── ─────────────────
|
|
||||||
12 12 12 12
|
|
||||||
123 123 123 123
|
|
||||||
1 1 1 1
|
|
||||||
───────────────── ───────────────── ───────────────── ─────────────────
|
|
||||||
|
|
||||||
Demonstration of pipe table syntax.
|
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29mLevel 5 Heading[0m
|
|
||||||
|
|
||||||
[22m[23m[36m[49m[4m[29m]8;;https://google.com\https://google.com[0m]8;;\
|
|
||||||
|
|
||||||
[22m[23m[36m[49m[4m[29m]8;;mailto:sam@green.eggs.ham\sam@green.eggs.ham[0m]8;;\
|
|
||||||
|
|
||||||
Link to [22m[23m[36m[49m[4m[29m]8;;index.html\my label 1[0m]8;;\ and [22m[23m[36m[49m[4m[29m]8;;.\my label 2[0m]8;;\ and [22m[23m[36m[49m[4m[29m]8;;https://fsf.org\my label 3[0m]8;;\ and [22m[23m[36m[49m[4m[29m]8;;index.html#articles\my label 4[0m]8;;\
|
|
||||||
|
|
||||||
This is an [22m[23m[36m[49m[4m[29m]8;;/url\inline link[0m]8;;\, and here’s [22m[23m[36m[49m[4m[29m]8;;https://fsf.org\one with a title[0m]8;;\ and [22m[23m[36m[49m[4m[29m]8;;mailto:sam@green.eggs.ham\Write me![0m]8;;\
|
|
||||||
|
|
||||||
[image]
|
|
||||||
|
|
||||||
The wonderful shork
|
|
||||||
|
|
||||||
Here is a footnote reference,¹ and another.²
|
|
||||||
|
|
||||||
This paragraph won’t be part of the note, because it isn’t indented.
|
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29mLevel 6 Heading[0m
|
|
||||||
|
|
||||||
This is a warning.
|
|
||||||
|
|
||||||
This is a warning within a warning.
|
|
||||||
|
|
||||||
────────────────────
|
|
||||||
|
|
||||||
1. Here is the footnote.
|
|
||||||
|
|
||||||
2. Here’s one with multiple blocks.
|
|
||||||
|
|
||||||
Subsequent paragraphs are indented to show that they belong to the
|
|
||||||
previous footnote.
|
|
||||||
|
|
||||||
[22m[23m[31m[49m[24m[29m{ some.code }[0m
|
|
||||||
|
|
||||||
The whole paragraph can be indented, or just the first line. In
|
|
||||||
this way, multi-paragraph footnotes work like multi-paragraph list
|
|
||||||
items.
|
|
||||||
[0m]8;;\
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
Never
|
Never
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2025-07-25[0m
|
[22m[3m[39m[49m[24m[29m25.7.2025[0m
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Never
|
Never
|
||||||
|
|
||||||
[22m[3m[39m[49m[24m[29m2026-01-12[0m
|
[22m[3m[39m[49m[24m[29m12.01.2026[0m
|
||||||
|
|
||||||
────────────────────
|
────────────────────
|
||||||
|
|
||||||
|
|
@ -89,4 +89,28 @@ config.
|
||||||
Now on your Linux machine, syncronise your Music library with rsync.
|
Now on your Linux machine, syncronise your Music library with rsync.
|
||||||
|
|
||||||
[0m[0m[22;23;24m[34;22;23;24mrsync[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-av[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-e[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m"ssh -p 8022"[0m[22;23;24m[0m[22;23;24m ~/Music [0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24musername[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m@[0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24mip_address[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m:/data/data/com.termux/files/home/storage/music[0m[22;23;24m[0m
|
[0m[0m[22;23;24m[34;22;23;24mrsync[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-av[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[33;22;23;24m-e[0m[22;23;24m[0m[22;23;24m [0m[22;23;24m[36;22;23;24m"ssh -p 8022"[0m[22;23;24m[0m[22;23;24m ~/Music [0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24musername[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m@[0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24mip_address[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m[22;23;24m:/data/data/com.termux/files/home/storage/music[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mRefreshing the Android MediaStore[0m
|
||||||
|
|
||||||
|
Android uses a Database to store files. In order to play your music,
|
||||||
|
this database needs to be refreshed. This can be achieved by a reboot or
|
||||||
|
by using adb to manually refresh it.
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[34;22;23;24msudo[0m[22;23;24m[0m[22;23;24m dnf install adb[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
Connect the Android device via USB and see if it is listed.
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m devices[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
If it is, restart adb in TCP mode with port 5555
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m tcpip 5555[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
Connect to the device using its .
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m connect [0m[22;23;24m[90;22;23;24m<[0m[22;23;24m[0m[22;23;24mip_address[0m[22;23;24m[90;22;23;24m>[0m[22;23;24m[0m
|
||||||
|
|
||||||
|
Refresh MediaStore.
|
||||||
|
|
||||||
|
[0m[0m[22;23;24m[0m[22;23;24madb[0m[22;23;24m[0m[22;23;24m shell am broadcast [0m[22;23;24m[33;22;23;24m-a[0m[22;23;24m[0m[22;23;24m android.intent.action.MEDIA_SCANNER_SCAN [0m[22;23;24m[33;22;23;24m-d[0m[22;23;24m[0m[22;23;24m file:///data/data/com.termux/files/home/storage/music/[0m[22;23;24m[0m
|
||||||
[0m]8;;\
|
[0m]8;;\
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
|
||||||
<title>nevereverever.de</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh"/>
|
|
||||||
<id>nevereverever.de</id>
|
|
||||||
<updated>2026-06-22T22:12+02:00</updated>
|
|
||||||
<published>2026-03-10</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<subtitle>Here I post random stuff.</subtitle>
|
|
||||||
<entry>
|
|
||||||
<title>Bohnen und Maisbrot</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/beans-and-cornbread.html"/>
|
|
||||||
<id>beans-and-cornbread</id>
|
|
||||||
<updated>2026-06-22T20:47+02:00</updated>
|
|
||||||
<published>2026-06-22</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>Inspiriert von der Küche der Kuhtreiber des Wilden
|
|
||||||
Westens.</summary>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<title>Using rsync on Android to syncronise my Music
|
|
||||||
library</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/rsync-android.html"/>
|
|
||||||
<id>rsync-android</id>
|
|
||||||
<updated>2026-01-12T16:24+01:00</updated>
|
|
||||||
<published>2026-01-12</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>As Spotify is getting enshittified by capitalism,
|
|
||||||
keeping a music library is kind of essential. Here I use rsync to
|
|
||||||
syncronise my library with my Android smartphone.</summary>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<title>Latex Endeavors</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/latex-endeavors.html"/>
|
|
||||||
<id>latex-endeavors</id>
|
|
||||||
<updated>2026-01-10T16:23+01:00</updated>
|
|
||||||
<published>2026-01-09</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>Latex undoubtedly has some quirks. Some of them have a
|
|
||||||
rather unintuitive solution. In this article I cover some quirks and
|
|
||||||
solutions I have encountered.</summary>
|
|
||||||
</entry>
|
|
||||||
<entry>
|
|
||||||
<title>Random linux utilities</title>
|
|
||||||
<link href="https://nevereverever.de/eh/eh/eh/eh-eh/random-linux-utils.html"/>
|
|
||||||
<id>random-linux-utils</id>
|
|
||||||
<updated>2025-07-25T16:24+01:00</updated>
|
|
||||||
<published>2025-07-25</published>
|
|
||||||
<author>
|
|
||||||
<name>Never</name>
|
|
||||||
</author>
|
|
||||||
<summary>Tricks and tools I learned about, while tweaking my
|
|
||||||
Linux sytem or trying to do productive things.</summary>
|
|
||||||
</entry>
|
|
||||||
</feed>
|
|
||||||
|
|
@ -1,227 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="generator" content="pandoc" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
||||||
<meta name="author" content="Never" />
|
|
||||||
<meta name="dcterms.date" content="2026-06-22" />
|
|
||||||
<title>Bohnen und Maisbrot</title>
|
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
|
||||||
<style>
|
|
||||||
code{white-space: pre-wrap;}
|
|
||||||
span.smallcaps{font-variant: small-caps;}
|
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
|
||||||
override a similar rule in reveal.js */
|
|
||||||
ul.task-list[class]{list-style: none;}
|
|
||||||
ul.task-list li input[type="checkbox"] {
|
|
||||||
font-size: inherit;
|
|
||||||
width: 0.8em;
|
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<img id="shork" src="images/shork.png"></img>
|
|
||||||
<header id="page-header">
|
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
|
||||||
</header>
|
|
||||||
<main id="page">
|
|
||||||
<header id="title-block-header">
|
|
||||||
<h1 class="title">Bohnen und Maisbrot</h1>
|
|
||||||
<p class="author">Never</p>
|
|
||||||
<p class="date">2026-06-22</p>
|
|
||||||
</header>
|
|
||||||
<nav id="TOC" role="doc-toc">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#bohnen" id="toc-bohnen">Bohnen</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#zubereitung"
|
|
||||||
id="toc-zubereitung">Zubereitung</a></li>
|
|
||||||
</ul></li>
|
|
||||||
<li><a href="#maisbrot" id="toc-maisbrot">Maisbrot</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#zubereitung-1"
|
|
||||||
id="toc-zubereitung-1">Zubereitung</a></li>
|
|
||||||
</ul></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
<article>
|
|
||||||
<h1 id="bohnen">Bohnen</h1>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: right;">Maße</th>
|
|
||||||
<th style="text-align: left;">Zutaten</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">2</td>
|
|
||||||
<td style="text-align: left;">Zwiebeln</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">2</td>
|
|
||||||
<td style="text-align: left;">Knoblauchzehen</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">rote Chili (Peperoni/Chile de
|
|
||||||
árbol<a href="#fn1" class="footnote-ref" id="fnref1"
|
|
||||||
role="doc-noteref"><sup>1</sup></a>)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Kreuzkümmel</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Speckwürfel (Optional)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 l</td>
|
|
||||||
<td style="text-align: left;">Brühe (Gemüse/Huhn/Rind)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Dose</td>
|
|
||||||
<td style="text-align: left;">Kidneybohnen</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Dose</td>
|
|
||||||
<td style="text-align: left;">Pintobohnen oder andere
|
|
||||||
Bohnen</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">Chile Ancho<a href="#fn2"
|
|
||||||
class="footnote-ref" id="fnref2"
|
|
||||||
role="doc-noteref"><sup>2</sup></a> oder geräuchertes
|
|
||||||
Paprikapulver</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Petersilienstängel</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Limettensaft</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Salz</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h2 id="zubereitung">Zubereitung</h2>
|
|
||||||
<ol type="1">
|
|
||||||
<li><p>Zwiebeln, Knoblauch, rote Chili, Kreuzkümmel und
|
|
||||||
Speckwürfel anbraten.</p></li>
|
|
||||||
<li><p>Mit Brühe ablöschen und die Bohnen, Ancho Chili und
|
|
||||||
Petersilienstängel hinzufügen. Köcheln und etwas reduzieren
|
|
||||||
lassen.</p></li>
|
|
||||||
<li><p>Mit Salz und Limettensaft abschmecken.</p></li>
|
|
||||||
</ol>
|
|
||||||
<h1 id="maisbrot">Maisbrot</h1>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: right;">Maße</th>
|
|
||||||
<th style="text-align: left;">Zutaten</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Tasse</td>
|
|
||||||
<td style="text-align: left;">Mehl</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 Tasse</td>
|
|
||||||
<td style="text-align: left;">Maismehl</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">4 TL</td>
|
|
||||||
<td style="text-align: left;">Backpulver</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Salz</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1/4 Tasse</td>
|
|
||||||
<td style="text-align: left;">brauner Zucker</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">Ei</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1/3 Tasse</td>
|
|
||||||
<td style="text-align: left;">flüssige Butter</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1 - 2 Tassen</td>
|
|
||||||
<td style="text-align: left;">Milch oder Buttermilch</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1/3 Tasse</td>
|
|
||||||
<td style="text-align: left;">flüssige Butter</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Speckwürfel (Optional)</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;"></td>
|
|
||||||
<td style="text-align: left;">Gehackte grüne Chilis
|
|
||||||
(Optional)</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h2 id="zubereitung-1">Zubereitung</h2>
|
|
||||||
<ol type="1">
|
|
||||||
<li><p>Trockene Zutaten mischen.</p></li>
|
|
||||||
<li><p>Ei und Butter unterrühren.</p></li>
|
|
||||||
<li><p>Schrittweise die Milch hinzugeben, bis eine
|
|
||||||
zähflüssige Masse entstanden ist.</p></li>
|
|
||||||
</ol>
|
|
||||||
<section id="footnotes"
|
|
||||||
class="footnotes footnotes-end-of-document"
|
|
||||||
role="doc-endnotes">
|
|
||||||
<hr />
|
|
||||||
<ol>
|
|
||||||
<li id="fn1"><p><a
|
|
||||||
href="https://en.wikipedia.org/wiki/Chile_de_%C3%A1rbol">Chile
|
|
||||||
de árbol</a>; Eine kleine, scharfe, rote Chili. Meist
|
|
||||||
getrocknet zu finden.<a href="#fnref1" class="footnote-back"
|
|
||||||
role="doc-backlink">↩︎</a></p></li>
|
|
||||||
<li id="fn2"><p><a
|
|
||||||
href="https://en.wikipedia.org/wiki/Poblano">Chile
|
|
||||||
Ancho</a>; Eine große getrocknete Chili mit rauchigem
|
|
||||||
Geschmack.<a href="#fnref2" class="footnote-back"
|
|
||||||
role="doc-backlink">↩︎</a></p></li>
|
|
||||||
</ol>
|
|
||||||
</section>
|
|
||||||
</article>
|
|
||||||
</main>
|
|
||||||
<footer id="page-footer">
|
|
||||||
<nav id="webring">
|
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
|
||||||
width="120" height="60"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
|
||||||
BIN
public_html/eh/eh/eh/eh-eh/images/shark.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
|
@ -1,190 +1,154 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<title>Home</title>
|
<title>Home</title>
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
<style>
|
||||||
<style>
|
code{white-space: pre-wrap;}
|
||||||
code{white-space: pre-wrap;}
|
span.smallcaps{font-variant: small-caps;}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
override a similar rule in reveal.js */
|
||||||
override a similar rule in reveal.js */
|
ul.task-list[class]{list-style: none;}
|
||||||
ul.task-list[class]{list-style: none;}
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list li input[type="checkbox"] {
|
font-size: inherit;
|
||||||
font-size: inherit;
|
width: 0.8em;
|
||||||
width: 0.8em;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
vertical-align: middle;
|
||||||
vertical-align: middle;
|
}
|
||||||
}
|
</style>
|
||||||
/* CSS for syntax highlighting */
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
html { -webkit-text-size-adjust: 100%; }
|
|
||||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
|
||||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
|
||||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
|
||||||
.sourceCode { overflow: visible; }
|
|
||||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
|
||||||
div.sourceCode { margin: 1em 0; }
|
|
||||||
pre.sourceCode { margin: 0; }
|
|
||||||
@media screen {
|
|
||||||
div.sourceCode { overflow: auto; }
|
|
||||||
}
|
|
||||||
@media print {
|
|
||||||
pre > code.sourceCode { white-space: pre-wrap; }
|
|
||||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
|
||||||
}
|
|
||||||
pre.numberSource code
|
|
||||||
{ counter-reset: source-line 0; }
|
|
||||||
pre.numberSource code > span
|
|
||||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
|
||||||
pre.numberSource code > span > a:first-child::before
|
|
||||||
{ content: counter(source-line);
|
|
||||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
|
||||||
border: none; display: inline-block;
|
|
||||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
|
||||||
-khtml-user-select: none; -moz-user-select: none;
|
|
||||||
-ms-user-select: none; user-select: none;
|
|
||||||
padding: 0 4px; width: 4em;
|
|
||||||
background-color: #073642;
|
|
||||||
color: #586e75;
|
|
||||||
}
|
|
||||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
|
|
||||||
div.sourceCode
|
|
||||||
{ color: #839496; background-color: #002b36; }
|
|
||||||
@media screen {
|
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
|
||||||
}
|
|
||||||
code span.al { color: #d33682; } /* Alert */
|
|
||||||
code span.an { color: #dc322f; } /* Annotation */
|
|
||||||
code span.at { color: #dc322f; } /* Attribute */
|
|
||||||
code span.bn { color: #2aa198; } /* BaseN */
|
|
||||||
code span.bu { color: #b58900; } /* BuiltIn */
|
|
||||||
code span.cf { color: #859900; } /* ControlFlow */
|
|
||||||
code span.ch { color: #2aa198; } /* Char */
|
|
||||||
code span.cn { color: #b58900; } /* Constant */
|
|
||||||
code span.co { color: #586e75; font-style: italic; } /* Comment */
|
|
||||||
code span.cv { color: #268bd2; } /* CommentVar */
|
|
||||||
code span.do { color: #586e75; font-style: italic; } /* Documentation */
|
|
||||||
code span.dt { color: #b58900; } /* DataType */
|
|
||||||
code span.dv { color: #2aa198; } /* DecVal */
|
|
||||||
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
|
|
||||||
code span.ex { color: #b58900; } /* Extension */
|
|
||||||
code span.fl { color: #2aa198; } /* Float */
|
|
||||||
code span.fu { } /* Function */
|
|
||||||
code span.im { color: #cb4b16; } /* Import */
|
|
||||||
code span.in { color: #268bd2; } /* Information */
|
|
||||||
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
|
|
||||||
code span.op { } /* Operator */
|
|
||||||
code span.ot { } /* Other */
|
|
||||||
code span.pp { color: #cb4b16; } /* Preprocessor */
|
|
||||||
code span.re { color: #cb4b16; } /* RegionMarker */
|
|
||||||
code span.sc { color: #dc322f; } /* SpecialChar */
|
|
||||||
code span.ss { color: #b58900; } /* SpecialString */
|
|
||||||
code span.st { color: #2aa198; } /* String */
|
|
||||||
code span.va { color: #cb4b16; } /* Variable */
|
|
||||||
code span.vs { color: #dc322f; } /* VerbatimString */
|
|
||||||
code span.wa { color: #b58900; } /* Warning */
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Home</h1>
|
||||||
<header id="title-block-header">
|
</header>
|
||||||
<h1 class="title">Home</h1>
|
<section id="content">
|
||||||
</header>
|
<article>
|
||||||
<article>
|
<p>Hello World</p>
|
||||||
<p>Hello! I am Never and this is my little place on the
|
</article>
|
||||||
internet where I post the stuff that I am currently nerding
|
<nav id="articles">
|
||||||
out about.</p>
|
<h2>Articles</h2>
|
||||||
<p>This Website itself is one of those projects, that I like
|
<ul>
|
||||||
to tweak and tinker with. Maybe I’ll write an article about
|
<li>
|
||||||
its build system. It is also viewable via <code>curl</code>.
|
<div class="articles-header">
|
||||||
Just run</p>
|
<a href="latex-endeavors.html" class="articles-title">Latex
|
||||||
<div class="sourceCode" id="cb1"><pre
|
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">curl</span> nevereverever.de</span></code></pre></div>
|
|
||||||
<p>There also is an Atom Feed to stay updated about my
|
|
||||||
doings.</p>
|
|
||||||
</article>
|
|
||||||
<nav id="articles">
|
|
||||||
<h1>Articles</h1>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<header class="articles-header">
|
|
||||||
<a href="beans-and-cornbread.html" class="articles-title">Bohnen
|
|
||||||
und Maisbrot</a>
|
|
||||||
</header>
|
|
||||||
<p class="articles-summary">Inspiriert von der Küche
|
|
||||||
der Kuhtreiber des Wilden Westens.</p>
|
|
||||||
<footer class="articles-footer">
|
|
||||||
<div class="articles-author">Never</div>
|
|
||||||
<div class="articles-date">2026-06-22</div>
|
|
||||||
</footer>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<header class="articles-header">
|
|
||||||
<a href="rsync-android.html" class="articles-title">Using
|
|
||||||
rsync on Android to syncronise my Music library</a>
|
|
||||||
</header>
|
|
||||||
<p class="articles-summary">As Spotify is getting
|
|
||||||
enshittified by capitalism, keeping a music library is kind of
|
|
||||||
essential. Here I use rsync to syncronise my library with my Android
|
|
||||||
smartphone.</p>
|
|
||||||
<footer class="articles-footer">
|
|
||||||
<div class="articles-author">Never</div>
|
|
||||||
<div class="articles-date">2026-01-12</div>
|
|
||||||
</footer>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<header class="articles-header">
|
|
||||||
<a href="latex-endeavors.html" class="articles-title">Latex
|
|
||||||
Endeavors</a>
|
Endeavors</a>
|
||||||
</header>
|
<p class="articles-author"><em>Never</em></p>
|
||||||
<p class="articles-summary">Latex undoubtedly has
|
</div>
|
||||||
some quirks. Some of them have a rather unintuitive solution. In this
|
<p class="articles-summary">Latex undoubtedly has some quirks. Some of
|
||||||
article I cover some quirks and solutions I have encountered.</p>
|
them have a rather unintuitive solution. In this article I cover some
|
||||||
<footer class="articles-footer">
|
quirks and solutions I have encountered.</p>
|
||||||
<div class="articles-author">Never</div>
|
<p class="articles-date">9.1.2026</p>
|
||||||
<div class="articles-date">2026-01-09</div>
|
</li>
|
||||||
</footer>
|
<li>
|
||||||
</li>
|
<div class="articles-header">
|
||||||
<li>
|
<a href="random-linux-utils.html" class="articles-title">Random linux
|
||||||
<header class="articles-header">
|
utilities</a>
|
||||||
<a href="random-linux-utils.html" class="articles-title">Random
|
<p class="articles-author"><em>Never</em></p>
|
||||||
linux utilities</a>
|
</div>
|
||||||
</header>
|
<p class="articles-summary">Tricks and tools I learned about, while
|
||||||
<p class="articles-summary">Tricks and tools I
|
tweaking my Linux sytem or trying to do productive things.</p>
|
||||||
learned about, while tweaking my Linux sytem or trying to do productive
|
<p class="articles-date">25.7.2025</p>
|
||||||
things.</p>
|
</li>
|
||||||
<footer class="articles-footer">
|
<li>
|
||||||
<div class="articles-author">Never</div>
|
<div class="articles-header">
|
||||||
<div class="articles-date">2025-07-25</div>
|
<a href="rsync-android.html" class="articles-title">Using rsync on
|
||||||
</footer>
|
Android to syncronise my Music library</a>
|
||||||
</li>
|
<p class="articles-author"><em>Never</em></p>
|
||||||
</ul>
|
</div>
|
||||||
</nav>
|
<p class="articles-summary">As Spotify is getting enshittified by
|
||||||
</main>
|
capitalism, keeping a music library is kind of essential. Here I use
|
||||||
<footer id="page-footer">
|
rsync to syncronise my library with my Android smartphone.</p>
|
||||||
<nav id="webring">
|
<p class="articles-date">12.01.2026</p>
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
</li>
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
</ul>
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
</nav>
|
||||||
width="120" height="60"></a>
|
</section>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
<script>
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
let speed = 10;
|
||||||
</nav>
|
let scale = 0.33; // Image scale (I work on 1080p monitor)
|
||||||
</footer>
|
let canvas;
|
||||||
|
let ctx;
|
||||||
|
let logoColor;
|
||||||
|
|
||||||
|
let dvd = {
|
||||||
|
x: 256,
|
||||||
|
y: 354,
|
||||||
|
xspeed: 2,
|
||||||
|
yspeed: 2,
|
||||||
|
img: new Image()
|
||||||
|
};
|
||||||
|
|
||||||
|
(function main(){
|
||||||
|
canvas = document.getElementById("tv-screen");
|
||||||
|
ctx = canvas.getContext("2d");
|
||||||
|
dvd.img.src = 'images/shark.png';
|
||||||
|
|
||||||
|
//Draw the "tv screen"
|
||||||
|
canvas.width = window.innerWidth;
|
||||||
|
canvas.height = window.innerHeight;
|
||||||
|
|
||||||
|
pickColor();
|
||||||
|
update();
|
||||||
|
})();
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
setTimeout(() => {
|
||||||
|
//Draw the canvas background
|
||||||
|
ctx.fillStyle = '#00000000';
|
||||||
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||||
|
//Draw DVD Logo and his background
|
||||||
|
//ctx.fillStyle = logoColor;
|
||||||
|
//ctx.fillRect(dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
|
||||||
|
ctx.drawImage(dvd.img, dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
|
||||||
|
//Move the logo
|
||||||
|
dvd.x+=dvd.xspeed;
|
||||||
|
dvd.y+=dvd.yspeed;
|
||||||
|
//Check for collision
|
||||||
|
checkHitBox();
|
||||||
|
update();
|
||||||
|
}, speed)
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for border collision
|
||||||
|
function checkHitBox(){
|
||||||
|
if(dvd.x+dvd.img.width*scale >= canvas.width || dvd.x <= 0){
|
||||||
|
dvd.xspeed *= -1;
|
||||||
|
pickColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dvd.y+dvd.img.height*scale >= canvas.height || dvd.y <= 0){
|
||||||
|
dvd.yspeed *= -1;
|
||||||
|
pickColor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Pick a random color in RGB format
|
||||||
|
function pickColor(){
|
||||||
|
r = Math.random() * (254 - 0) + 0;
|
||||||
|
g = Math.random() * (254 - 0) + 0;
|
||||||
|
b = Math.random() * (254 - 0) + 0;
|
||||||
|
|
||||||
|
logoColor = 'rgb('+r+','+g+', '+b+')';
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<footer id="page-footer">
|
||||||
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
|
<p class="cups-light">
|
||||||
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,76 +1,68 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<meta name="author" content="Never" />
|
<meta name="author" content="Never" />
|
||||||
<meta name="dcterms.date" content="2026-01-09" />
|
<title>Latex Endeavors</title>
|
||||||
<title>Latex Endeavors</title>
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<style>
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
code{white-space: pre-wrap;}
|
||||||
<style>
|
span.smallcaps{font-variant: small-caps;}
|
||||||
code{white-space: pre-wrap;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
override a similar rule in reveal.js */
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
ul.task-list[class]{list-style: none;}
|
||||||
override a similar rule in reveal.js */
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list[class]{list-style: none;}
|
font-size: inherit;
|
||||||
ul.task-list li input[type="checkbox"] {
|
width: 0.8em;
|
||||||
font-size: inherit;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
width: 0.8em;
|
vertical-align: middle;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
}
|
||||||
vertical-align: middle;
|
</style>
|
||||||
}
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Latex Endeavors</h1>
|
||||||
<header id="title-block-header">
|
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
||||||
<h1 class="title">Latex Endeavors</h1>
|
<p class="author">Never</p>
|
||||||
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
<p class="date">9.1.2026</p>
|
||||||
<p class="author">Never</p>
|
</header>
|
||||||
<p class="date">2026-01-09</p>
|
<section id="content">
|
||||||
</header>
|
<nav id="TOC" role="doc-toc">
|
||||||
<nav id="TOC" role="doc-toc">
|
<ul>
|
||||||
<ul>
|
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
|
||||||
<li><a href="#biblatex-and-biber"
|
and Biber</a>
|
||||||
id="toc-biblatex-and-biber">BibLaTeX and Biber</a>
|
<ul>
|
||||||
<ul>
|
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesn’t
|
||||||
<li><a href="#biber-doesnt-run"
|
run</a></li>
|
||||||
id="toc-biber-doesnt-run">Biber doesn’t run</a></li>
|
</ul></li>
|
||||||
</ul></li>
|
</ul>
|
||||||
</ul>
|
</nav>
|
||||||
</nav>
|
<article>
|
||||||
<article>
|
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
||||||
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
||||||
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
<p>Biber doens’t run if the (fedora) package
|
||||||
<p>Biber doens’t run if the (fedora) package
|
<code>libxcrypt-compat</code> is missing. It will fail with the error
|
||||||
<code>libxcrypt-compat</code> is missing. It will fail with
|
message</p>
|
||||||
the error message</p>
|
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
||||||
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
</article>
|
||||||
</article>
|
</section>
|
||||||
</main>
|
<footer id="page-footer">
|
||||||
<footer id="page-footer">
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
<nav id="webring">
|
<p class="cups-light">
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
width="120" height="60"></a>
|
</p>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
</footer>
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,451 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="generator" content="pandoc" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
|
||||||
<meta name="author" content="Never" />
|
|
||||||
<meta name="dcterms.date" content="2025-07-25" />
|
|
||||||
<title>Testing pandoc markdown capabilities</title>
|
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
|
||||||
<style>
|
|
||||||
code{white-space: pre-wrap;}
|
|
||||||
span.smallcaps{font-variant: small-caps;}
|
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
|
||||||
override a similar rule in reveal.js */
|
|
||||||
ul.task-list[class]{list-style: none;}
|
|
||||||
ul.task-list li input[type="checkbox"] {
|
|
||||||
font-size: inherit;
|
|
||||||
width: 0.8em;
|
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
/* CSS for syntax highlighting */
|
|
||||||
html { -webkit-text-size-adjust: 100%; }
|
|
||||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
|
||||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
|
||||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
|
||||||
.sourceCode { overflow: visible; }
|
|
||||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
|
||||||
div.sourceCode { margin: 1em 0; }
|
|
||||||
pre.sourceCode { margin: 0; }
|
|
||||||
@media screen {
|
|
||||||
div.sourceCode { overflow: auto; }
|
|
||||||
}
|
|
||||||
@media print {
|
|
||||||
pre > code.sourceCode { white-space: pre-wrap; }
|
|
||||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
|
||||||
}
|
|
||||||
pre.numberSource code
|
|
||||||
{ counter-reset: source-line 0; }
|
|
||||||
pre.numberSource code > span
|
|
||||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
|
||||||
pre.numberSource code > span > a:first-child::before
|
|
||||||
{ content: counter(source-line);
|
|
||||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
|
||||||
border: none; display: inline-block;
|
|
||||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
|
||||||
-khtml-user-select: none; -moz-user-select: none;
|
|
||||||
-ms-user-select: none; user-select: none;
|
|
||||||
padding: 0 4px; width: 4em;
|
|
||||||
background-color: #073642;
|
|
||||||
color: #586e75;
|
|
||||||
}
|
|
||||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
|
|
||||||
div.sourceCode
|
|
||||||
{ color: #839496; background-color: #002b36; }
|
|
||||||
@media screen {
|
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
|
||||||
}
|
|
||||||
code span.al { color: #d33682; } /* Alert */
|
|
||||||
code span.an { color: #dc322f; } /* Annotation */
|
|
||||||
code span.at { color: #dc322f; } /* Attribute */
|
|
||||||
code span.bn { color: #2aa198; } /* BaseN */
|
|
||||||
code span.bu { color: #b58900; } /* BuiltIn */
|
|
||||||
code span.cf { color: #859900; } /* ControlFlow */
|
|
||||||
code span.ch { color: #2aa198; } /* Char */
|
|
||||||
code span.cn { color: #b58900; } /* Constant */
|
|
||||||
code span.co { color: #586e75; font-style: italic; } /* Comment */
|
|
||||||
code span.cv { color: #268bd2; } /* CommentVar */
|
|
||||||
code span.do { color: #586e75; font-style: italic; } /* Documentation */
|
|
||||||
code span.dt { color: #b58900; } /* DataType */
|
|
||||||
code span.dv { color: #2aa198; } /* DecVal */
|
|
||||||
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
|
|
||||||
code span.ex { color: #b58900; } /* Extension */
|
|
||||||
code span.fl { color: #2aa198; } /* Float */
|
|
||||||
code span.fu { } /* Function */
|
|
||||||
code span.im { color: #cb4b16; } /* Import */
|
|
||||||
code span.in { color: #268bd2; } /* Information */
|
|
||||||
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
|
|
||||||
code span.op { } /* Operator */
|
|
||||||
code span.ot { } /* Other */
|
|
||||||
code span.pp { color: #cb4b16; } /* Preprocessor */
|
|
||||||
code span.re { color: #cb4b16; } /* RegionMarker */
|
|
||||||
code span.sc { color: #dc322f; } /* SpecialChar */
|
|
||||||
code span.ss { color: #b58900; } /* SpecialString */
|
|
||||||
code span.st { color: #2aa198; } /* String */
|
|
||||||
code span.va { color: #cb4b16; } /* Variable */
|
|
||||||
code span.vs { color: #dc322f; } /* VerbatimString */
|
|
||||||
code span.wa { color: #b58900; } /* Warning */
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<img id="shork" src="images/shork.png"></img>
|
|
||||||
<header id="page-header">
|
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
|
||||||
</header>
|
|
||||||
<main id="page">
|
|
||||||
<header id="title-block-header">
|
|
||||||
<h1 class="title">Testing pandoc markdown capabilities</h1>
|
|
||||||
<p class="subtitle">Things I hope just work</p>
|
|
||||||
<p class="author">Never</p>
|
|
||||||
<p class="date">2025-07-25</p>
|
|
||||||
</header>
|
|
||||||
<nav id="TOC" role="doc-toc">
|
|
||||||
<ul>
|
|
||||||
<li><a href="#level-1-heading"
|
|
||||||
id="toc-level-1-heading">Level 1 Heading</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#level-2-heading"
|
|
||||||
id="toc-level-2-heading">Level 2 Heading</a>
|
|
||||||
<ul>
|
|
||||||
<li><a href="#level-3-heading"
|
|
||||||
id="toc-level-3-heading">Level 3 Heading</a></li>
|
|
||||||
</ul></li>
|
|
||||||
</ul></li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
<article>
|
|
||||||
<h1 id="level-1-heading">Level 1 Heading</h1>
|
|
||||||
<p>A link to a Heading <a href="#level-4-heading">Level 4
|
|
||||||
Heading</a> followed by another paragraph.</p>
|
|
||||||
<ul>
|
|
||||||
<li><p>fruits</p>
|
|
||||||
<p>Everything is a fruit</p>
|
|
||||||
<ul>
|
|
||||||
<li>apples
|
|
||||||
<ul>
|
|
||||||
<li>macintosh</li>
|
|
||||||
<li>red delicious</li>
|
|
||||||
</ul></li>
|
|
||||||
<li>pears</li>
|
|
||||||
<li>peaches</li>
|
|
||||||
</ul></li>
|
|
||||||
<li><p>vegetables</p>
|
|
||||||
<ul>
|
|
||||||
<li>broccoli</li>
|
|
||||||
<li>chard</li>
|
|
||||||
</ul></li>
|
|
||||||
</ul>
|
|
||||||
<ol type="1">
|
|
||||||
<li>first</li>
|
|
||||||
<li>second</li>
|
|
||||||
<li>third
|
|
||||||
<ol type="i">
|
|
||||||
<li>subone</li>
|
|
||||||
<li>subtwo</li>
|
|
||||||
<li>subthree</li>
|
|
||||||
</ol></li>
|
|
||||||
</ol>
|
|
||||||
<ul class="task-list">
|
|
||||||
<li><label><input type="checkbox" />an unchecked task list
|
|
||||||
item</label></li>
|
|
||||||
<li><label><input type="checkbox" checked="" />checked
|
|
||||||
item</label></li>
|
|
||||||
</ul>
|
|
||||||
<p>Lorem <em>ipsum dolor</em> sit amet, consectetur
|
|
||||||
<em>adipi</em>scing elit. Integer nisl enim, condimentum
|
|
||||||
<del>vitae lacus vel</del>, semper efficitur est. Cras
|
|
||||||
pretium porta luctus. <strong>Nulla iaculis</strong> nisi at
|
|
||||||
quam varius, et con<strong>sequat</strong> lorem blandit. Ut
|
|
||||||
tincidunt leo sit amet velit lobortis, et blandit metus
|
|
||||||
mollis. Nam H<sub>2</sub>O tristique ex a quam aliquet, eget
|
|
||||||
2<sup>10</sup> vehicula sapien <code>rhoncus</code>. Aliquam
|
|
||||||
<code
|
|
||||||
class="sourceCode c"><span class="cf">return</span> <span class="dv">0</span><span class="op">;</span></code>
|
|
||||||
sodales pretium auctor. <span class="smallcaps">Aliquam
|
|
||||||
convallis</span> sodales <mark>elementum</mark>.</p>
|
|
||||||
<div class="sourceCode" id="cb1"><pre
|
|
||||||
class="sourceCode numberSource c numberLines"><code class="sourceCode c"><span id="cb1-1"><a href="#cb1-1"></a><span class="pp">#include </span><span class="im"><stdio.h></span></span>
|
|
||||||
<span id="cb1-2"><a href="#cb1-2"></a></span>
|
|
||||||
<span id="cb1-3"><a href="#cb1-3"></a><span class="co">// </span><span class="al">TODO</span><span class="co">: A funny comment</span></span>
|
|
||||||
<span id="cb1-4"><a href="#cb1-4"></a><span class="dt">int</span> main<span class="op">()</span> <span class="op">{</span></span>
|
|
||||||
<span id="cb1-5"><a href="#cb1-5"></a> <span class="dt">char</span> greetings<span class="op">[]</span> <span class="op">=</span> <span class="op">{</span><span class="ch">'H'</span><span class="op">,</span> <span class="ch">'e'</span><span class="op">,</span> <span class="ch">'l'</span><span class="op">,</span> <span class="ch">'l'</span><span class="op">,</span> <span class="ch">'o'</span><span class="op">,</span> <span class="ch">' '</span><span class="op">,</span> <span class="ch">'W'</span><span class="op">,</span> <span class="ch">'o'</span><span class="op">,</span> <span class="ch">'r'</span><span class="op">,</span> <span class="ch">'l'</span><span class="op">,</span> <span class="ch">'d'</span><span class="op">,</span> <span class="ch">'!'</span><span class="op">,</span> <span class="ch">'</span><span class="sc">\0</span><span class="ch">'</span><span class="op">};</span></span>
|
|
||||||
<span id="cb1-6"><a href="#cb1-6"></a> <span class="dt">char</span> greetings2<span class="op">[]</span> <span class="op">=</span> <span class="st">"Hello World!"</span><span class="op">;</span></span>
|
|
||||||
<span id="cb1-7"><a href="#cb1-7"></a></span>
|
|
||||||
<span id="cb1-8"><a href="#cb1-8"></a> printf<span class="op">(</span><span class="st">"</span><span class="sc">%zu\n</span><span class="st">"</span><span class="op">,</span> <span class="kw">sizeof</span><span class="op">(</span>greetings<span class="op">));</span></span>
|
|
||||||
<span id="cb1-9"><a href="#cb1-9"></a> printf<span class="op">(</span><span class="st">"</span><span class="sc">%zu\n</span><span class="st">"</span><span class="op">,</span> <span class="kw">sizeof</span><span class="op">(</span>greetings2<span class="op">));</span></span>
|
|
||||||
<span id="cb1-10"><a href="#cb1-10"></a></span>
|
|
||||||
<span id="cb1-11"><a href="#cb1-11"></a> <span class="cf">return</span> <span class="dv">0</span><span class="op">;</span></span>
|
|
||||||
<span id="cb1-12"><a href="#cb1-12"></a><span class="op">}</span></span></code></pre></div>
|
|
||||||
<p>Aenean eros lacus, volutpat at molestie vitae, pretium eu
|
|
||||||
diam. Quisque sit
|
|
||||||
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>1</mn><mo>+</mo><mn>2</mn><mo>+</mo><mn>3</mn><mo>+</mo><mi>⋯</mi><mo>+</mo><mi>n</mi></mrow><annotation encoding="application/x-tex">1 + 2 + 3 + \cdots + n</annotation></semantics></math>
|
|
||||||
amet nisl ut dolor congue sodales.</p>
|
|
||||||
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mi>i</mi><mo>=</mo><mfrac><mrow><mi>n</mi><mo stretchy="false" form="prefix">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false" form="postfix">)</mo></mrow><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">
|
|
||||||
\sum_{i=1}^{n} i = \frac{n (n + 1)}{2}
|
|
||||||
</annotation></semantics></math></p>
|
|
||||||
<h2 id="level-2-heading">Level 2 Heading</h2>
|
|
||||||
<blockquote>
|
|
||||||
<p>This is a block quote with two lines and a</p>
|
|
||||||
<ol type="1">
|
|
||||||
<li>List item</li>
|
|
||||||
<li>Another list item</li>
|
|
||||||
</ol>
|
|
||||||
<blockquote>
|
|
||||||
<p>And a nested block quote</p>
|
|
||||||
</blockquote>
|
|
||||||
<p>Yeah</p>
|
|
||||||
</blockquote>
|
|
||||||
<dl>
|
|
||||||
<dt>Term 1</dt>
|
|
||||||
<dd>
|
|
||||||
<p>Definition 1</p>
|
|
||||||
</dd>
|
|
||||||
<dt>Term 2 with <em>inline markup</em></dt>
|
|
||||||
<dd>
|
|
||||||
<p>Definition 2</p>
|
|
||||||
<pre><code>{ some code, part of Definition 2 }</code></pre>
|
|
||||||
<p>Third paragraph of definition 2.</p>
|
|
||||||
</dd>
|
|
||||||
<dt>Term 1</dt>
|
|
||||||
<dd>
|
|
||||||
Definition 1
|
|
||||||
</dd>
|
|
||||||
<dt>Term 2</dt>
|
|
||||||
<dd>
|
|
||||||
Definition 2a
|
|
||||||
</dd>
|
|
||||||
<dd>
|
|
||||||
Definition 2b
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<h3 id="level-3-heading">Level 3 Heading</h3>
|
|
||||||
<p>A little poem</p>
|
|
||||||
<div class="line-block">The limerick packs laughs
|
|
||||||
anatomical<br />
|
|
||||||
In space that is quite economical.<br />
|
|
||||||
But the good ones I’ve seen<br />
|
|
||||||
So seldom are clean<br />
|
|
||||||
And the clean ones so seldom are comical</div>
|
|
||||||
<hr />
|
|
||||||
<ol class="example" type="1">
|
|
||||||
<li>My first example will be numbered (1).</li>
|
|
||||||
<li>My second example will be numbered (2).</li>
|
|
||||||
</ol>
|
|
||||||
<p>Explanation of examples.</p>
|
|
||||||
<ol start="3" class="example" type="1">
|
|
||||||
<li>My third example will be numbered (3).</li>
|
|
||||||
</ol>
|
|
||||||
<p>As (2) illustrates, …</p>
|
|
||||||
<hr />
|
|
||||||
<h4 id="level-4-heading">Level 4 Heading</h4>
|
|
||||||
<table>
|
|
||||||
<caption>Demonstration of simple table syntax.</caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: right;">Right</th>
|
|
||||||
<th style="text-align: left;">Left</th>
|
|
||||||
<th style="text-align: center;">Center</th>
|
|
||||||
<th>Default</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">12</td>
|
|
||||||
<td style="text-align: left;">12</td>
|
|
||||||
<td style="text-align: center;">12</td>
|
|
||||||
<td>12</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">123</td>
|
|
||||||
<td style="text-align: left;">123</td>
|
|
||||||
<td style="text-align: center;">123</td>
|
|
||||||
<td>123</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">1</td>
|
|
||||||
<td style="text-align: center;">1</td>
|
|
||||||
<td>1</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>Following is a multiline table</p>
|
|
||||||
<table style="width:86%;">
|
|
||||||
<caption>Here’s the caption. It, too, may span multiple
|
|
||||||
lines.</caption>
|
|
||||||
<colgroup>
|
|
||||||
<col style="width: 16%" />
|
|
||||||
<col style="width: 11%" />
|
|
||||||
<col style="width: 22%" />
|
|
||||||
<col style="width: 36%" />
|
|
||||||
</colgroup>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: center;">Centered Header</th>
|
|
||||||
<th>Default Aligned</th>
|
|
||||||
<th style="text-align: right;">Right Aligned</th>
|
|
||||||
<th style="text-align: left;">Left Aligned</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: center;">First</td>
|
|
||||||
<td>row</td>
|
|
||||||
<td style="text-align: right;">12.0</td>
|
|
||||||
<td style="text-align: left;">Example of a row that spans
|
|
||||||
multiple lines.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: center;">Second</td>
|
|
||||||
<td>row</td>
|
|
||||||
<td style="text-align: right;">5.0</td>
|
|
||||||
<td style="text-align: left;">Here’s another one. Note the
|
|
||||||
blank line between rows.</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>Then we have a Grid table</p>
|
|
||||||
<table style="width:64%;">
|
|
||||||
<caption>Grid table</caption>
|
|
||||||
<colgroup>
|
|
||||||
<col style="width: 30%" />
|
|
||||||
<col style="width: 11%" />
|
|
||||||
<col style="width: 11%" />
|
|
||||||
<col style="width: 11%" />
|
|
||||||
</colgroup>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th rowspan="2" style="text-align: left;">Location</th>
|
|
||||||
<th colspan="3" style="text-align: right;">Temperature
|
|
||||||
1961-1990 in degree Celsius</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: right;">min</th>
|
|
||||||
<th style="text-align: right;">mean</th>
|
|
||||||
<th style="text-align: right;">max</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">Antarctica</td>
|
|
||||||
<td style="text-align: right;">-89.2</td>
|
|
||||||
<td style="text-align: right;">N/A</td>
|
|
||||||
<td style="text-align: right;">19.8</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: left;">Earth</td>
|
|
||||||
<td style="text-align: right;">-89.2</td>
|
|
||||||
<td style="text-align: right;">14</td>
|
|
||||||
<td style="text-align: right;">56.7</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<p>An a Pipe table</p>
|
|
||||||
<table>
|
|
||||||
<caption>Demonstration of pipe table syntax.</caption>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th style="text-align: right;">Right</th>
|
|
||||||
<th style="text-align: left;">Left</th>
|
|
||||||
<th>Default</th>
|
|
||||||
<th style="text-align: center;">Center</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">12</td>
|
|
||||||
<td style="text-align: left;">12</td>
|
|
||||||
<td>12</td>
|
|
||||||
<td style="text-align: center;">12</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">123</td>
|
|
||||||
<td style="text-align: left;">123</td>
|
|
||||||
<td>123</td>
|
|
||||||
<td style="text-align: center;">123</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td style="text-align: right;">1</td>
|
|
||||||
<td style="text-align: left;">1</td>
|
|
||||||
<td>1</td>
|
|
||||||
<td style="text-align: center;">1</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<h5 id="level-5-heading">Level 5 Heading</h5>
|
|
||||||
<p><a href="https://google.com"
|
|
||||||
class="uri">https://google.com</a></p>
|
|
||||||
<p><a href="mailto:sam@green.eggs.ham"
|
|
||||||
class="email">sam@green.eggs.ham</a></p>
|
|
||||||
<p>Link to <a href="index.html"
|
|
||||||
title="My title, optional">my label 1</a> and <a href=".">my
|
|
||||||
label 2</a> and <a href="https://fsf.org"
|
|
||||||
title="The Free Software Foundation">my label 3</a> and <a
|
|
||||||
href="index.html#articles"
|
|
||||||
title="A title in single quotes">my label 4</a></p>
|
|
||||||
<p>This is an <a href="/url">inline link</a>, and here’s <a
|
|
||||||
href="https://fsf.org"
|
|
||||||
title="click here for a good time!">one with a title</a> and
|
|
||||||
<a href="mailto:sam@green.eggs.ham">Write me!</a></p>
|
|
||||||
<figure>
|
|
||||||
<img src="images/shork.png" title="the shork"
|
|
||||||
style="width:20.0%" alt="The wonderful shork" />
|
|
||||||
<figcaption aria-hidden="true">The wonderful
|
|
||||||
shork</figcaption>
|
|
||||||
</figure>
|
|
||||||
<p>Here is a footnote reference,<a href="#fn1"
|
|
||||||
class="footnote-ref" id="fnref1"
|
|
||||||
role="doc-noteref"><sup>1</sup></a> and another.<a
|
|
||||||
href="#fn2" class="footnote-ref" id="fnref2"
|
|
||||||
role="doc-noteref"><sup>2</sup></a></p>
|
|
||||||
<p>This paragraph won’t be part of the note, because it
|
|
||||||
isn’t indented.</p>
|
|
||||||
<h6 id="level-6-heading">Level 6 Heading</h6>
|
|
||||||
<div class="Warning">
|
|
||||||
<p>This is a warning.</p>
|
|
||||||
<div class="Danger">
|
|
||||||
<p>This is a warning within a warning.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<section id="footnotes"
|
|
||||||
class="footnotes footnotes-end-of-document"
|
|
||||||
role="doc-endnotes">
|
|
||||||
<hr />
|
|
||||||
<ol>
|
|
||||||
<li id="fn1"><p>Here is the footnote.<a href="#fnref1"
|
|
||||||
class="footnote-back" role="doc-backlink">↩︎</a></p></li>
|
|
||||||
<li id="fn2"><p>Here’s one with multiple blocks.</p>
|
|
||||||
<p>Subsequent paragraphs are indented to show that they
|
|
||||||
belong to the previous footnote.</p>
|
|
||||||
<pre><code>{ some.code }</code></pre>
|
|
||||||
<p>The whole paragraph can be indented, or just the first
|
|
||||||
line. In this way, multi-paragraph footnotes work like
|
|
||||||
multi-paragraph list items.<a href="#fnref2"
|
|
||||||
class="footnote-back" role="doc-backlink">↩︎</a></p></li>
|
|
||||||
</ol>
|
|
||||||
</section>
|
|
||||||
</article>
|
|
||||||
</main>
|
|
||||||
<footer id="page-footer">
|
|
||||||
<nav id="webring">
|
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
|
||||||
width="120" height="60"></a>
|
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,147 +1,134 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<meta name="author" content="Never" />
|
<meta name="author" content="Never" />
|
||||||
<meta name="dcterms.date" content="2025-07-25" />
|
<title>Random linux utilities</title>
|
||||||
<title>Random linux utilities</title>
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<style>
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
code{white-space: pre-wrap;}
|
||||||
<style>
|
span.smallcaps{font-variant: small-caps;}
|
||||||
code{white-space: pre-wrap;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
override a similar rule in reveal.js */
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
ul.task-list[class]{list-style: none;}
|
||||||
override a similar rule in reveal.js */
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list[class]{list-style: none;}
|
font-size: inherit;
|
||||||
ul.task-list li input[type="checkbox"] {
|
width: 0.8em;
|
||||||
font-size: inherit;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
width: 0.8em;
|
vertical-align: middle;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
}
|
||||||
vertical-align: middle;
|
/* CSS for syntax highlighting */
|
||||||
}
|
html { -webkit-text-size-adjust: 100%; }
|
||||||
/* CSS for syntax highlighting */
|
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||||
html { -webkit-text-size-adjust: 100%; }
|
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
.sourceCode { overflow: visible; }
|
||||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||||
.sourceCode { overflow: visible; }
|
div.sourceCode { margin: 1em 0; }
|
||||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
pre.sourceCode { margin: 0; }
|
||||||
div.sourceCode { margin: 1em 0; }
|
@media screen {
|
||||||
pre.sourceCode { margin: 0; }
|
div.sourceCode { overflow: auto; }
|
||||||
@media screen {
|
}
|
||||||
div.sourceCode { overflow: auto; }
|
@media print {
|
||||||
}
|
pre > code.sourceCode { white-space: pre-wrap; }
|
||||||
@media print {
|
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||||
pre > code.sourceCode { white-space: pre-wrap; }
|
}
|
||||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
pre.numberSource code
|
||||||
}
|
{ counter-reset: source-line 0; }
|
||||||
pre.numberSource code
|
pre.numberSource code > span
|
||||||
{ counter-reset: source-line 0; }
|
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||||
pre.numberSource code > span
|
pre.numberSource code > span > a:first-child::before
|
||||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
{ content: counter(source-line);
|
||||||
pre.numberSource code > span > a:first-child::before
|
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||||
{ content: counter(source-line);
|
border: none; display: inline-block;
|
||||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||||
border: none; display: inline-block;
|
-khtml-user-select: none; -moz-user-select: none;
|
||||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
-ms-user-select: none; user-select: none;
|
||||||
-khtml-user-select: none; -moz-user-select: none;
|
padding: 0 4px; width: 4em;
|
||||||
-ms-user-select: none; user-select: none;
|
}
|
||||||
padding: 0 4px; width: 4em;
|
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
||||||
background-color: #073642;
|
div.sourceCode
|
||||||
color: #586e75;
|
{ color: #cccccc; background-color: #303030; }
|
||||||
}
|
@media screen {
|
||||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
|
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||||
div.sourceCode
|
}
|
||||||
{ color: #839496; background-color: #002b36; }
|
code span.al { color: #ffcfaf; } /* Alert */
|
||||||
@media screen {
|
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
code span.at { } /* Attribute */
|
||||||
}
|
code span.bn { color: #dca3a3; } /* BaseN */
|
||||||
code span.al { color: #d33682; } /* Alert */
|
code span.bu { } /* BuiltIn */
|
||||||
code span.an { color: #dc322f; } /* Annotation */
|
code span.cf { color: #f0dfaf; } /* ControlFlow */
|
||||||
code span.at { color: #dc322f; } /* Attribute */
|
code span.ch { color: #dca3a3; } /* Char */
|
||||||
code span.bn { color: #2aa198; } /* BaseN */
|
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
|
||||||
code span.bu { color: #b58900; } /* BuiltIn */
|
code span.co { color: #7f9f7f; } /* Comment */
|
||||||
code span.cf { color: #859900; } /* ControlFlow */
|
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
|
||||||
code span.ch { color: #2aa198; } /* Char */
|
code span.do { color: #7f9f7f; } /* Documentation */
|
||||||
code span.cn { color: #b58900; } /* Constant */
|
code span.dt { color: #dfdfbf; } /* DataType */
|
||||||
code span.co { color: #586e75; font-style: italic; } /* Comment */
|
code span.dv { color: #dcdccc; } /* DecVal */
|
||||||
code span.cv { color: #268bd2; } /* CommentVar */
|
code span.er { color: #c3bf9f; } /* Error */
|
||||||
code span.do { color: #586e75; font-style: italic; } /* Documentation */
|
code span.ex { } /* Extension */
|
||||||
code span.dt { color: #b58900; } /* DataType */
|
code span.fl { color: #c0bed1; } /* Float */
|
||||||
code span.dv { color: #2aa198; } /* DecVal */
|
code span.fu { color: #efef8f; } /* Function */
|
||||||
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
|
code span.im { } /* Import */
|
||||||
code span.ex { color: #b58900; } /* Extension */
|
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
|
||||||
code span.fl { color: #2aa198; } /* Float */
|
code span.kw { color: #f0dfaf; } /* Keyword */
|
||||||
code span.fu { } /* Function */
|
code span.op { color: #f0efd0; } /* Operator */
|
||||||
code span.im { color: #cb4b16; } /* Import */
|
code span.ot { color: #efef8f; } /* Other */
|
||||||
code span.in { color: #268bd2; } /* Information */
|
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
|
||||||
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
|
code span.sc { color: #dca3a3; } /* SpecialChar */
|
||||||
code span.op { } /* Operator */
|
code span.ss { color: #cc9393; } /* SpecialString */
|
||||||
code span.ot { } /* Other */
|
code span.st { color: #cc9393; } /* String */
|
||||||
code span.pp { color: #cb4b16; } /* Preprocessor */
|
code span.va { } /* Variable */
|
||||||
code span.re { color: #cb4b16; } /* RegionMarker */
|
code span.vs { color: #cc9393; } /* VerbatimString */
|
||||||
code span.sc { color: #dc322f; } /* SpecialChar */
|
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
|
||||||
code span.ss { color: #b58900; } /* SpecialString */
|
</style>
|
||||||
code span.st { color: #2aa198; } /* String */
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
code span.va { color: #cb4b16; } /* Variable */
|
|
||||||
code span.vs { color: #dc322f; } /* VerbatimString */
|
|
||||||
code span.wa { color: #b58900; } /* Warning */
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Random linux utilities</h1>
|
||||||
<header id="title-block-header">
|
<p class="subtitle">Neat things I picked up along the way</p>
|
||||||
<h1 class="title">Random linux utilities</h1>
|
<p class="author">Never</p>
|
||||||
<p class="subtitle">Neat things I picked up along the
|
<p class="date">25.7.2025</p>
|
||||||
way</p>
|
</header>
|
||||||
<p class="author">Never</p>
|
<section id="content">
|
||||||
<p class="date">2025-07-25</p>
|
<nav id="TOC" role="doc-toc">
|
||||||
</header>
|
<ul>
|
||||||
<nav id="TOC" role="doc-toc">
|
<li><a href="#merge-pdfs" id="toc-merge-pdfs">Merge pdfs</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#merge-pdfs" id="toc-merge-pdfs">Merge pdfs</a>
|
<li><a href="#using-ghostscript" id="toc-using-ghostscript">Using
|
||||||
<ul>
|
Ghostscript</a></li>
|
||||||
<li><a href="#using-ghostscript"
|
</ul></li>
|
||||||
id="toc-using-ghostscript">Using Ghostscript</a></li>
|
</ul>
|
||||||
</ul></li>
|
</nav>
|
||||||
</ul>
|
<article>
|
||||||
</nav>
|
<h1 id="merge-pdfs">Merge pdfs</h1>
|
||||||
<article>
|
<h2 id="using-ghostscript">Using Ghostscript</h2>
|
||||||
<h1 id="merge-pdfs">Merge pdfs</h1>
|
<p>Ghostscript has a feature to merge multiple pdf files into one.
|
||||||
<h2 id="using-ghostscript">Using Ghostscript</h2>
|
Although ImageMagick also has this feature, I prefer this one, as it
|
||||||
<p>Ghostscript has a feature to merge multiple pdf files
|
doesn’t rasterize and scales down the pdf files.</p>
|
||||||
into one. Although ImageMagick also has this feature, I
|
<div class="sourceCode" id="cb1"><pre
|
||||||
prefer this one, as it doesn’t rasterize and scales down the
|
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gs</span> <span class="at">-dNOPAUSE</span> <span class="at">-sDEVICE</span><span class="op">=</span>pdfwrite <span class="dt">\</span></span>
|
||||||
pdf files.</p>
|
|
||||||
<div class="sourceCode" id="cb1"><pre
|
|
||||||
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gs</span> <span class="at">-dNOPAUSE</span> <span class="at">-sDEVICE</span><span class="op">=</span>pdfwrite <span class="dt">\</span></span>
|
|
||||||
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-sOUTPUTFILE</span><span class="op">=</span>output.pdf <span class="dt">\</span></span>
|
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-sOUTPUTFILE</span><span class="op">=</span>output.pdf <span class="dt">\</span></span>
|
||||||
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
|
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</section>
|
||||||
<footer id="page-footer">
|
<footer id="page-footer">
|
||||||
<nav id="webring">
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
<p class="cups-light">
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
width="120" height="60"></a>
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
</p>
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
</footer>
|
||||||
</nav>
|
|
||||||
</footer>
|
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,160 +1,148 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="generator" content="pandoc" />
|
<meta name="generator" content="pandoc" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
<meta name="author" content="Never" />
|
<meta name="author" content="Never" />
|
||||||
<meta name="dcterms.date" content="2026-01-12" />
|
<title>Using rsync on Android to syncronise my Music library</title>
|
||||||
<title>Using rsync on Android to syncronise my Music library</title>
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
<style>
|
||||||
<link rel="alternate" type="application/atom+xml" title="nevereverever.de" href="https://nevereverever.de/eh/eh/eh/eh-eh/atom.xml">
|
code{white-space: pre-wrap;}
|
||||||
<style>
|
span.smallcaps{font-variant: small-caps;}
|
||||||
code{white-space: pre-wrap;}
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
span.smallcaps{font-variant: small-caps;}
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
div.column{flex: auto; overflow-x: auto;}
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
override a similar rule in reveal.js */
|
||||||
/* The extra [class] is a hack that increases specificity enough to
|
ul.task-list[class]{list-style: none;}
|
||||||
override a similar rule in reveal.js */
|
ul.task-list li input[type="checkbox"] {
|
||||||
ul.task-list[class]{list-style: none;}
|
font-size: inherit;
|
||||||
ul.task-list li input[type="checkbox"] {
|
width: 0.8em;
|
||||||
font-size: inherit;
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
width: 0.8em;
|
vertical-align: middle;
|
||||||
margin: 0 0.8em 0.2em -1.6em;
|
}
|
||||||
vertical-align: middle;
|
/* CSS for syntax highlighting */
|
||||||
}
|
html { -webkit-text-size-adjust: 100%; }
|
||||||
/* CSS for syntax highlighting */
|
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||||
html { -webkit-text-size-adjust: 100%; }
|
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
.sourceCode { overflow: visible; }
|
||||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||||
.sourceCode { overflow: visible; }
|
div.sourceCode { margin: 1em 0; }
|
||||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
pre.sourceCode { margin: 0; }
|
||||||
div.sourceCode { margin: 1em 0; }
|
@media screen {
|
||||||
pre.sourceCode { margin: 0; }
|
div.sourceCode { overflow: auto; }
|
||||||
@media screen {
|
}
|
||||||
div.sourceCode { overflow: auto; }
|
@media print {
|
||||||
}
|
pre > code.sourceCode { white-space: pre-wrap; }
|
||||||
@media print {
|
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||||
pre > code.sourceCode { white-space: pre-wrap; }
|
}
|
||||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
pre.numberSource code
|
||||||
}
|
{ counter-reset: source-line 0; }
|
||||||
pre.numberSource code
|
pre.numberSource code > span
|
||||||
{ counter-reset: source-line 0; }
|
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||||
pre.numberSource code > span
|
pre.numberSource code > span > a:first-child::before
|
||||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
{ content: counter(source-line);
|
||||||
pre.numberSource code > span > a:first-child::before
|
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||||
{ content: counter(source-line);
|
border: none; display: inline-block;
|
||||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||||
border: none; display: inline-block;
|
-khtml-user-select: none; -moz-user-select: none;
|
||||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
-ms-user-select: none; user-select: none;
|
||||||
-khtml-user-select: none; -moz-user-select: none;
|
padding: 0 4px; width: 4em;
|
||||||
-ms-user-select: none; user-select: none;
|
}
|
||||||
padding: 0 4px; width: 4em;
|
pre.numberSource { margin-left: 3em; padding-left: 4px; }
|
||||||
background-color: #073642;
|
div.sourceCode
|
||||||
color: #586e75;
|
{ color: #cccccc; background-color: #303030; }
|
||||||
}
|
@media screen {
|
||||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
|
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||||
div.sourceCode
|
}
|
||||||
{ color: #839496; background-color: #002b36; }
|
code span.al { color: #ffcfaf; } /* Alert */
|
||||||
@media screen {
|
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
code span.at { } /* Attribute */
|
||||||
}
|
code span.bn { color: #dca3a3; } /* BaseN */
|
||||||
code span.al { color: #d33682; } /* Alert */
|
code span.bu { } /* BuiltIn */
|
||||||
code span.an { color: #dc322f; } /* Annotation */
|
code span.cf { color: #f0dfaf; } /* ControlFlow */
|
||||||
code span.at { color: #dc322f; } /* Attribute */
|
code span.ch { color: #dca3a3; } /* Char */
|
||||||
code span.bn { color: #2aa198; } /* BaseN */
|
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
|
||||||
code span.bu { color: #b58900; } /* BuiltIn */
|
code span.co { color: #7f9f7f; } /* Comment */
|
||||||
code span.cf { color: #859900; } /* ControlFlow */
|
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
|
||||||
code span.ch { color: #2aa198; } /* Char */
|
code span.do { color: #7f9f7f; } /* Documentation */
|
||||||
code span.cn { color: #b58900; } /* Constant */
|
code span.dt { color: #dfdfbf; } /* DataType */
|
||||||
code span.co { color: #586e75; font-style: italic; } /* Comment */
|
code span.dv { color: #dcdccc; } /* DecVal */
|
||||||
code span.cv { color: #268bd2; } /* CommentVar */
|
code span.er { color: #c3bf9f; } /* Error */
|
||||||
code span.do { color: #586e75; font-style: italic; } /* Documentation */
|
code span.ex { } /* Extension */
|
||||||
code span.dt { color: #b58900; } /* DataType */
|
code span.fl { color: #c0bed1; } /* Float */
|
||||||
code span.dv { color: #2aa198; } /* DecVal */
|
code span.fu { color: #efef8f; } /* Function */
|
||||||
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
|
code span.im { } /* Import */
|
||||||
code span.ex { color: #b58900; } /* Extension */
|
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
|
||||||
code span.fl { color: #2aa198; } /* Float */
|
code span.kw { color: #f0dfaf; } /* Keyword */
|
||||||
code span.fu { } /* Function */
|
code span.op { color: #f0efd0; } /* Operator */
|
||||||
code span.im { color: #cb4b16; } /* Import */
|
code span.ot { color: #efef8f; } /* Other */
|
||||||
code span.in { color: #268bd2; } /* Information */
|
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
|
||||||
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
|
code span.sc { color: #dca3a3; } /* SpecialChar */
|
||||||
code span.op { } /* Operator */
|
code span.ss { color: #cc9393; } /* SpecialString */
|
||||||
code span.ot { } /* Other */
|
code span.st { color: #cc9393; } /* String */
|
||||||
code span.pp { color: #cb4b16; } /* Preprocessor */
|
code span.va { } /* Variable */
|
||||||
code span.re { color: #cb4b16; } /* RegionMarker */
|
code span.vs { color: #cc9393; } /* VerbatimString */
|
||||||
code span.sc { color: #dc322f; } /* SpecialChar */
|
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
|
||||||
code span.ss { color: #b58900; } /* SpecialString */
|
</style>
|
||||||
code span.st { color: #2aa198; } /* String */
|
<link rel="stylesheet" href="styles/style.css">
|
||||||
code span.va { color: #cb4b16; } /* Variable */
|
|
||||||
code span.vs { color: #dc322f; } /* VerbatimString */
|
|
||||||
code span.wa { color: #b58900; } /* Warning */
|
|
||||||
</style>
|
|
||||||
<link rel="stylesheet" href="styles/style.css">
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<img id="shork" src="images/shork.png"></img>
|
<canvas id="tv-screen"></canvas>
|
||||||
<header id="page-header">
|
<header id="page-header">
|
||||||
<a class="page-header-button" href="index.html">Home</a>
|
<ul><li><a href="index.html">Home</a></li></ul>
|
||||||
<a class="rss-button" href="atom.xml">Atom Feed</a>
|
</header>
|
||||||
</header>
|
<header id="title-block-header">
|
||||||
<main id="page">
|
<h1 class="title">Using rsync on Android to syncronise my Music
|
||||||
<header id="title-block-header">
|
library</h1>
|
||||||
<h1 class="title">Using rsync on Android to syncronise my
|
<p class="author">Never</p>
|
||||||
Music library</h1>
|
<p class="date">12.01.2026</p>
|
||||||
<p class="author">Never</p>
|
</header>
|
||||||
<p class="date">2026-01-12</p>
|
<section id="content">
|
||||||
</header>
|
<nav id="TOC" role="doc-toc">
|
||||||
<nav id="TOC" role="doc-toc">
|
<ul>
|
||||||
<ul>
|
<li><a href="#setup-termux" id="toc-setup-termux">Setup Termux</a></li>
|
||||||
<li><a href="#setup-termux" id="toc-setup-termux">Setup
|
<li><a href="#establishing-an-ssh-connection"
|
||||||
Termux</a></li>
|
id="toc-establishing-an-ssh-connection">Establishing an ssh
|
||||||
<li><a href="#establishing-an-ssh-connection"
|
connection</a>
|
||||||
id="toc-establishing-an-ssh-connection">Establishing an ssh
|
<ul>
|
||||||
connection</a>
|
<li><a href="#configuring-android"
|
||||||
<ul>
|
id="toc-configuring-android">Configuring Android</a></li>
|
||||||
<li><a href="#configuring-android"
|
<li><a href="#connecting-to-android-via-ssh"
|
||||||
id="toc-configuring-android">Configuring Android</a></li>
|
id="toc-connecting-to-android-via-ssh">Connecting to Android via
|
||||||
<li><a href="#connecting-to-android-via-ssh"
|
ssh</a></li>
|
||||||
id="toc-connecting-to-android-via-ssh">Connecting to Android
|
</ul></li>
|
||||||
via ssh</a></li>
|
<li><a href="#syncronising-files-with-rsync"
|
||||||
</ul></li>
|
id="toc-syncronising-files-with-rsync">Syncronising files with rsync</a>
|
||||||
<li><a href="#syncronising-files-with-rsync"
|
<ul>
|
||||||
id="toc-syncronising-files-with-rsync">Syncronising files
|
<li><a href="#refreshing-the-android-mediastore"
|
||||||
with rsync</a></li>
|
id="toc-refreshing-the-android-mediastore">Refreshing the Android
|
||||||
</ul>
|
MediaStore</a></li>
|
||||||
</nav>
|
</ul></li>
|
||||||
<article>
|
</ul>
|
||||||
<h1 id="setup-termux">Setup Termux</h1>
|
</nav>
|
||||||
<p>Install Termux using F-Droid.</p>
|
<article>
|
||||||
<p>Update software repos.</p>
|
<h1 id="setup-termux">Setup Termux</h1>
|
||||||
<div class="sourceCode" id="cb1"><pre
|
<p>Install Termux using F-Droid.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> update</span></code></pre></div>
|
<p>Update software repos.</p>
|
||||||
<p>Grant file access permissions using.</p>
|
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> update</span></code></pre></div>
|
||||||
<div class="sourceCode" id="cb2"><pre
|
<p>Grant file access permissions using.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">termux-setup-storage</span></span></code></pre></div>
|
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">termux-setup-storage</span></span></code></pre></div>
|
||||||
<h1 id="establishing-an-ssh-connection">Establishing an ssh
|
<h1 id="establishing-an-ssh-connection">Establishing an ssh
|
||||||
connection</h1>
|
connection</h1>
|
||||||
<p>If network (such as eduroam) is blocking ssh trafic
|
<p>If network (such as eduroam) is blocking ssh trafic between machines,
|
||||||
between machines, open a Wi-Fi Hotspot on your Linux machine
|
open a Wi-Fi Hotspot on your Linux machine and connect the Android
|
||||||
and connect the Android device to it before using
|
device to it before using <code>rsync</code> or <code>ssh</code>.</p>
|
||||||
<code>rsync</code> or <code>ssh</code>.</p>
|
<h2 id="configuring-android">Configuring Android</h2>
|
||||||
<h2 id="configuring-android">Configuring Android</h2>
|
<p>Install the openssh server on Termux.</p>
|
||||||
<p>Install the openssh server on Termux.</p>
|
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install openssh</span></code></pre></div>
|
||||||
<div class="sourceCode" id="cb3"><pre
|
<p>Start the ssh server daemon.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install openssh</span></code></pre></div>
|
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">sshd</span></span></code></pre></div>
|
||||||
<p>Start the ssh server daemon.</p>
|
<p>Get the ip address of the Android machine (in the Hotspot).</p>
|
||||||
<div class="sourceCode" id="cb4"><pre
|
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ifconfig</span></span></code></pre></div>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">sshd</span></span></code></pre></div>
|
<pre><code>Warning: cannot open /proc/net/dev (Permission denied). Limited output.
|
||||||
<p>Get the ip address of the Android machine (in the
|
|
||||||
Hotspot).</p>
|
|
||||||
<div class="sourceCode" id="cb5"><pre
|
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ifconfig</span></span></code></pre></div>
|
|
||||||
<pre><code>Warning: cannot open /proc/net/dev (Permission denied). Limited output.
|
|
||||||
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
|
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
|
||||||
inet 127.0.0.1 netmask 255.0.0.0
|
inet 127.0.0.1 netmask 255.0.0.0
|
||||||
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
|
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
|
||||||
|
|
@ -166,49 +154,62 @@ rmnet0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280
|
||||||
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
|
||||||
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
|
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
|
||||||
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)</code></pre>
|
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)</code></pre>
|
||||||
<p>In this case 10.42.0.200.</p>
|
<p>In this case 10.42.0.200.</p>
|
||||||
<p>The ssh server should now be running and listening on
|
<p>The ssh server should now be running and listening on port 8022. You
|
||||||
port 8022. You can check by running</p>
|
can check by running</p>
|
||||||
<div class="sourceCode" id="cb7"><pre
|
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">nmap</span> <span class="at">-Pn</span> <span class="op"><</span>ip_address<span class="op">></span></span></code></pre></div>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">nmap</span> <span class="at">-Pn</span> <span class="op"><</span>ip_address<span class="op">></span></span></code></pre></div>
|
<p>For me <code><ip_address></code> whould be 10.42.0.200.</p>
|
||||||
<p>For me <code><ip_address></code> whould be
|
<p>Get the username.</p>
|
||||||
10.42.0.200.</p>
|
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">whoami</span></span></code></pre></div>
|
||||||
<p>Get the username.</p>
|
<pre><code>u0_a700</code></pre>
|
||||||
<div class="sourceCode" id="cb8"><pre
|
<p>Set a password for this user.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">whoami</span></span></code></pre></div>
|
<div class="sourceCode" id="cb10"><pre
|
||||||
<pre><code>u0_a700</code></pre>
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">passwd</span></span></code></pre></div>
|
||||||
<p>Set a password for this user.</p>
|
<h2 id="connecting-to-android-via-ssh">Connecting to Android via
|
||||||
<div class="sourceCode" id="cb10"><pre
|
ssh</h2>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">passwd</span></span></code></pre></div>
|
<p>Make sure you have an ssh key pair on the Linux system. If not
|
||||||
<h2 id="connecting-to-android-via-ssh">Connecting to Android
|
generate one using <code>ssh-keygen</code>.</p>
|
||||||
via ssh</h2>
|
<p>Now connect to Android by <code>ssh</code>.</p>
|
||||||
<p>Make sure you have an ssh key pair on the Linux system.
|
<div class="sourceCode" id="cb11"><pre
|
||||||
If not generate one using <code>ssh-keygen</code>.</p>
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ssh</span> <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span> -p 8022</span></code></pre></div>
|
||||||
<p>Now connect to Android by <code>ssh</code>.</p>
|
<h1 id="syncronising-files-with-rsync">Syncronising files with
|
||||||
<div class="sourceCode" id="cb11"><pre
|
rsync</h1>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ssh</span> <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span> -p 8022</span></code></pre></div>
|
<p>Install <code>rsync</code> on Termux and Linux. Make sure to keep
|
||||||
<h1 id="syncronising-files-with-rsync">Syncronising files
|
your own openssl config.</p>
|
||||||
with rsync</h1>
|
<div class="sourceCode" id="cb12"><pre
|
||||||
<p>Install <code>rsync</code> on Termux and Linux. Make sure
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install rsync</span></code></pre></div>
|
||||||
to keep your own openssl config.</p>
|
<p>Now on your Linux machine, syncronise your Music library with
|
||||||
<div class="sourceCode" id="cb12"><pre
|
rsync.</p>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install rsync</span></code></pre></div>
|
<div class="sourceCode" id="cb13"><pre
|
||||||
<p>Now on your Linux machine, syncronise your Music library
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="fu">rsync</span> <span class="at">-av</span> <span class="at">-e</span> <span class="st">"ssh -p 8022"</span> ~/Music <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span>:/data/data/com.termux/files/home/storage/music</span></code></pre></div>
|
||||||
with rsync.</p>
|
<h2 id="refreshing-the-android-mediastore">Refreshing the Android
|
||||||
<div class="sourceCode" id="cb13"><pre
|
MediaStore</h2>
|
||||||
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="fu">rsync</span> <span class="at">-av</span> <span class="at">-e</span> <span class="st">"ssh -p 8022"</span> ~/Music <span class="op"><</span>username<span class="op">></span>@<span class="op"><</span>ip_address<span class="op">></span>:/data/data/com.termux/files/home/storage/music</span></code></pre></div>
|
<p>Android uses a Database to store files. In order to play your music,
|
||||||
</article>
|
this database needs to be refreshed. This can be achieved by a reboot or
|
||||||
</main>
|
by using adb to manually refresh it.</p>
|
||||||
<footer id="page-footer">
|
<div class="sourceCode" id="cb14"><pre
|
||||||
<nav id="webring">
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> dnf install adb</span></code></pre></div>
|
||||||
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
|
<p>Connect the Android device via USB and see if it is listed.</p>
|
||||||
src="images/cups_left_dark.svg" width="30" height="30"></a>
|
<div class="sourceCode" id="cb15"><pre
|
||||||
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> devices</span></code></pre></div>
|
||||||
width="120" height="60"></a>
|
<p>If it is, restart adb in TCP mode with port 5555</p>
|
||||||
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
|
<div class="sourceCode" id="cb16"><pre
|
||||||
src="images/cups_right_dark.svg" width="30" height="30"></a>
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> tcpip 5555</span></code></pre></div>
|
||||||
</nav>
|
<p>Connect to the device using its <ip_address>.</p>
|
||||||
</footer>
|
<div class="sourceCode" id="cb17"><pre
|
||||||
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> connect <span class="op"><</span>ip_address<span class="op">></span></span></code></pre></div>
|
||||||
|
<p>Refresh MediaStore.</p>
|
||||||
|
<div class="sourceCode" id="cb18"><pre
|
||||||
|
class="sourceCode sh"><code class="sourceCode bash"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> shell am broadcast <span class="at">-a</span> android.intent.action.MEDIA_SCANNER_SCAN <span class="at">-d</span> file:///data/data/com.termux/files/home/storage/music/</span></code></pre></div>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
|
<footer id="page-footer">
|
||||||
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
|
<p class="cups-light">
|
||||||
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
<script src="scripts/shork.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -1,102 +0,0 @@
|
||||||
let shork_image = document.getElementById("shork");
|
|
||||||
|
|
||||||
let zoomies = 4;
|
|
||||||
let turnies = 0.2;
|
|
||||||
|
|
||||||
let shork = {x: 4, y: 8};
|
|
||||||
let rotation = 0;
|
|
||||||
let shork_init = transform(shork, -rotation);
|
|
||||||
shork_image.style.transform = `matrix(${shork_init.a}, ${shork_init.b}, ${shork_init.c}, ${shork_init.d}, ${shork_init.x}, ${shork_init.y})`;
|
|
||||||
|
|
||||||
let mouse = {x: 0, y: 0};
|
|
||||||
onmousemove = function(e){
|
|
||||||
mouse.x = e.pageX;
|
|
||||||
mouse.y = e.pageY;
|
|
||||||
}
|
|
||||||
|
|
||||||
let direction = 0;
|
|
||||||
let movement = 0;
|
|
||||||
let target = 0;
|
|
||||||
|
|
||||||
function move() {
|
|
||||||
direction = vector(shork, mouse);
|
|
||||||
|
|
||||||
if (norm(direction) >= 4) {
|
|
||||||
movement = scalar(angletovec(rotation), zoomies * norm(direction)/128);
|
|
||||||
shork = add(shork, movement);
|
|
||||||
target = angle(direction);
|
|
||||||
rotation = interpolate(rotation, target, turnies) + Math.sin(norm(movement))/8;
|
|
||||||
}
|
|
||||||
|
|
||||||
let trans = transform(shork, -rotation);
|
|
||||||
shork_image.style.transform = `matrix(${trans.a}, ${trans.b}, ${trans.c}, ${trans.d}, ${trans.x}, ${trans.y})`;
|
|
||||||
|
|
||||||
setTimeout(move, 30);
|
|
||||||
}
|
|
||||||
|
|
||||||
shork_image.addEventListener("click", function(e) {move()}, {once: true});
|
|
||||||
|
|
||||||
function vector(a, b) {
|
|
||||||
return {
|
|
||||||
x: b.x - a.x,
|
|
||||||
y: b.y - a.y
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function angle(v) {
|
|
||||||
return Math.atan2(v.y, v.x);
|
|
||||||
}
|
|
||||||
|
|
||||||
function angletovec(a) {
|
|
||||||
return {x: Math.cos(a), y: Math.sin(a)};
|
|
||||||
}
|
|
||||||
|
|
||||||
function norm(v) {
|
|
||||||
return Math.sqrt(Math.pow(v.x, 2) + Math.pow(v.y, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
function unit(v) {
|
|
||||||
let length = norm(v);
|
|
||||||
|
|
||||||
if (length == 0) return {x: 0, y: 0};
|
|
||||||
|
|
||||||
return {x: v.x / length, y: v.y / length};
|
|
||||||
}
|
|
||||||
|
|
||||||
function scalar(v, a) {
|
|
||||||
return {x: v.x * a, y: v.y * a};
|
|
||||||
}
|
|
||||||
|
|
||||||
function add(v, u) {
|
|
||||||
return {x: v.x + u.x, y: v.y + u.y};
|
|
||||||
}
|
|
||||||
|
|
||||||
function round(v) {
|
|
||||||
return {x: Math.round(v.x), y: Math.round(v.y)};
|
|
||||||
}
|
|
||||||
|
|
||||||
function clamp(a, min, max) {
|
|
||||||
if (a < min) return min;
|
|
||||||
if (a > max) return max;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
function interpolate(a, b, c) {
|
|
||||||
let d = Math.abs(a - b)
|
|
||||||
if (d > Math.abs(a - b - 2 * Math.PI)) a = a - 2 * Math.PI;
|
|
||||||
if (d > Math.abs(a - b + 2 * Math.PI)) a = a + 2 * Math.PI;
|
|
||||||
|
|
||||||
if (a < b) a = clamp(a + c, a, b);
|
|
||||||
if (a > b) a = clamp(a - c, b, a);
|
|
||||||
|
|
||||||
a += 3 * Math.PI;
|
|
||||||
a = a % (2 * Math.PI);
|
|
||||||
a -= Math.PI;
|
|
||||||
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
function transform(v, a) {
|
|
||||||
return {a: Math.cos(a), b: -Math.sin(a), c: Math.sin(a), d: Math.cos(a), x: v.x, y: v.y};
|
|
||||||
}
|
|
||||||
|
|
||||||
79
public_html/eh/eh/eh/eh-eh/styles/images/cups_left.svg
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="1619.0757"
|
||||||
|
height="1552.4"
|
||||||
|
viewBox="0 0 1619.0757 1552.4"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#ee82ee"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 1592.9148,1678.6922 c -144.8203,64.6914 -389.8359,52.168 -569.3164,-93.1797 -179.48429,-145.3516 -293.43359,-423.5312 -74.39059,-529.8203 219.04299,-106.293 771.08199,-40.6992 674.21489,130.5781 -96.8672,171.2813 -842.64459,448.2461 -1185.58988,366.6328 -342.949214,-81.6093 -283.07031,-521.7929 26.38281,-620.7929 309.45708,-99.0039 868.49217,143.1796 1143.73047,400.2304 275.2383,257.0469 266.6836,528.9649 255.8945,531.086 -10.789,2.1172 -23.8086,-265.5625 -52.6367,-328.4493 -28.8281,-62.8867 -73.4648,79.0196 -218.2891,143.7149 z m 0,0"
|
||||||
|
id="path2" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#a01ff0"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 160.20001,128.2 48,-528 208,1168 655.99999,-464 -1231.99999,272 -272,-112 z m 0,0"
|
||||||
|
id="path3" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 832.20001,128.2 -688,688 672,624"
|
||||||
|
id="path4"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1168.2,112.2 -687.99999,688 671.99999,624"
|
||||||
|
id="path5"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1344.2,112.2 -687.99999,688 671.99999,624"
|
||||||
|
id="path6"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1504.2,112.2 -687.99999,688 671.99999,624"
|
||||||
|
id="path7"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1008.2,112.2 -687.99999,688 672,624"
|
||||||
|
id="path8"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.5 KiB |
101
public_html/eh/eh/eh/eh-eh/styles/images/cups_left_dark.svg
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="1619.0757"
|
||||||
|
height="1552.4"
|
||||||
|
viewBox="0 0 1619.0757 1552.4"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="arrow_left.svg"
|
||||||
|
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.25766555"
|
||||||
|
inkscape:cx="454.07701"
|
||||||
|
inkscape:cy="923.67802"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1011"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#ee82ee"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 1592.9148,1678.6922 c -144.8203,64.6914 -389.8359,52.168 -569.3164,-93.1797 -179.48429,-145.3516 -293.43359,-423.5312 -74.39059,-529.8203 219.04299,-106.293 771.08199,-40.6992 674.21489,130.5781 -96.8672,171.2813 -842.64459,448.2461 -1185.58988,366.6328 -342.949214,-81.6093 -283.07031,-521.7929 26.38281,-620.7929 309.45708,-99.0039 868.49217,143.1796 1143.73047,400.2304 275.2383,257.0469 266.6836,528.9649 255.8945,531.086 -10.789,2.1172 -23.8086,-265.5625 -52.6367,-328.4493 -28.8281,-62.8867 -73.4648,79.0196 -218.2891,143.7149 z m 0,0"
|
||||||
|
id="path2" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#a01ff0"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 160.20001,128.2 48,-528 208,1168 655.99999,-464 -1231.99999,272 -272,-112 z m 0,0"
|
||||||
|
id="path3" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 832.20001,128.2 -688,688 672,624"
|
||||||
|
id="path4"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1168.2,112.2 -687.99999,688 671.99999,624"
|
||||||
|
id="path5"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1344.2,112.2 -687.99999,688 671.99999,624"
|
||||||
|
id="path6"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1504.2,112.2 -687.99999,688 671.99999,624"
|
||||||
|
id="path7"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1008.2,112.2 -687.99999,688 672,624"
|
||||||
|
id="path8"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.4 KiB |
103
public_html/eh/eh/eh/eh-eh/styles/images/cups_logo.svg
Normal file
|
|
@ -0,0 +1,103 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="4144.0171"
|
||||||
|
height="2112.3999"
|
||||||
|
viewBox="0 0 4144.0171 2112.3999"
|
||||||
|
version="1.1"
|
||||||
|
id="svg10"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<g
|
||||||
|
id="g4">
|
||||||
|
<g
|
||||||
|
id="glyph-0-0">
|
||||||
|
<path
|
||||||
|
d="m 969.45312,-1150.1563 c 0,-30.4843 -1.5625,-32.1718 -10.9375,-32.1718 -6.23437,0 -7.79687,1.6875 -18.73437,22.0156 l -68.6875,142.2813 c -76.48438,-105.0157 -170.15625,-166.0001 -290.35938,-166.0001 -266.95312,0 -508.92187,255.7813 -508.92187,604.7188 0,352.32813 241.96875,606.421875 510.48437,606.421875 238.84375,0 387.15625,-228.687495 387.15625,-423.484375 0,-16.9375 0,-23.70312 -14.04687,-23.70312 -12.5,0 -12.5,5.07812 -14.0625,20.3125 C 928.85937,-162.60937 772.75,-16.9375 604.15625,-16.9375 c -159.23438,0 -413.70313,-121.96875 -413.70313,-562.375 0,-442.1094 259.14063,-560.6719 410.57813,-560.6719 176.40625,0 304.40625,166.00003 334.07812,401.45315 3.125,20.32813 3.125,23.70313 17.17188,23.70313 17.17187,0 17.17187,-3.375 17.17187,-33.875 z m 0,0"
|
||||||
|
id="path1" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="glyph-0-1">
|
||||||
|
<path
|
||||||
|
d="m 843,-387.90625 c 0,226.98438 -135.8125,370.96875 -284.125,370.96875 -79.60938,0 -151.42188,-45.734375 -195.14063,-116.875 -49.95312,-81.3125 -56.20312,-186.32812 -56.20312,-245.625 v -657.2188 c 0,-76.2343 17.17187,-76.2343 124.89062,-76.2343 v -44.0313 c -45.26562,3.375 -128,3.375 -176.40625,3.375 -48.39062,0 -131.12499,0 -176.406245,-3.375 v 44.0313 c 107.718745,0 124.890625,0 124.890625,76.2343 v 648.75005 c 0,243.92188 170.17187,415.015625 351.25,415.015625 202.95312,0 320.03125,-225.296875 320.03125,-391.296875 v -643.6719 c 0,-94.8594 79.625,-105.0312 124.89065,-105.0312 v -44.0313 c -35.90628,3.375 -101.46878,3.375 -140.50003,3.375 -39.03125,0 -106.15625,0 -142.0625,-3.375 v 44.0313 C 843,-1112.8906 843,-1033.2656 843,-990.92187 Z m 0,0"
|
||||||
|
id="path2" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="glyph-0-2">
|
||||||
|
<path
|
||||||
|
d="M 309.09375,-543.73437 H 558.875 c 201.39062,0 348.125,-142.29688 348.125,-303.20313 0,-160.9219 -143.625,-309.9844 -348.125,-309.9844 H 81.171875 v 44.0313 c 107.718745,0 124.890625,0 124.890625,76.2343 v 916.39067 c 0,76.218755 -17.17188,76.218755 -124.890625,76.218755 V 0 C 126.45313,-3.390625 209.1875,-3.390625 257.57812,-3.390625 c 48.40625,0 131.14063,0 176.40625,3.390625 v -44.046875 c -107.71875,0 -124.89062,0 -124.89062,-76.218755 z m -3.10938,-35.57813 v -467.5156 c 0,-57.5938 3.10938,-66.0625 65.5625,-66.0625 h 157.67188 c 201.375,0 259.14062,125.35935 259.14062,265.9531 0,154.14063 -68.6875,267.625 -259.14062,267.625 z m 0,0"
|
||||||
|
id="path3" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="glyph-0-3">
|
||||||
|
<path
|
||||||
|
d="m 683.76562,-1150.1563 c 0,-30.4843 -1.5625,-32.1718 -10.92187,-32.1718 -9.375,0 -12.5,6.7656 -18.73438,22.0156 l -46.84375,111.7969 c -59.3125,-93.1719 -149.85937,-135.5157 -248.20312,-135.5157 -159.23438,0 -287.25,137.2032 -287.25,309.98443 0,52.51562 10.921875,127.04687 64,198.1875 57.76562,77.92187 112.40625,91.46875 237.29687,127.03125 46.82813,13.5625 124.89063,35.57812 140.5,42.35937 88.98438,40.65625 135.8125,142.28125 135.8125,237.14063 0,121.95312 -79.60937,252.39062 -215.4375,252.39062 -167.03125,0 -323.14062,-101.64063 -334.07812,-338.78125 -1.5625,-27.09375 -3.125,-28.79687 -14.046875,-28.79687 -12.484375,0 -14.046875,1.70312 -14.046875,35.57812 V -6.78125 c 0,30.5 1.5625,32.1875 10.921875,32.1875 10.9375,0 14.046875,-8.46875 35.906255,-60.984375 1.5625,-5.078125 1.5625,-8.46875 31.21874,-72.828125 78.0625,111.796875 209.20313,135.515625 284.125,135.515625 170.17188,0 290.375,-154.156255 290.375,-333.703125 0,-88.07812 -29.67187,-155.84375 -46.84375,-186.32812 -65.5625,-108.40625 -135.8125,-128.73438 -210.75,-149.0625 -10.92187,-5.07813 -14.04687,-5.07813 -101.46875,-28.79688 C 281,-694.5 245.09375,-706.35937 206.0625,-752.09375 162.35937,-804.59375 146.75,-858.79687 146.75,-913 c 0,-110.1094 81.17187,-230.375 213.85937,-230.375 165.48438,0 268.51563,127.0469 291.9375,338.78125 4.6875,30.48438 6.23438,32.17188 17.17188,32.17188 14.04687,0 14.04687,-5.07813 14.04687,-33.875 z m 0,0"
|
||||||
|
id="path4" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#00ff00"
|
||||||
|
fill-opacity="1"
|
||||||
|
stroke-width="0.4"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 3196.4305,272.19995 c 128,-80 400,-80 618.668,120 218.664,200 384,600 18.664,856.00005 -365.332,256 -1261.332,368 -1280,437.332 -18.664,69.3359 840,96 1037.336,-58.6641 197.332,-154.6679 -266.668,-490.6679 -184,-552 82.664,-61.3359 712,152 736,189.3321 24,37.332 -557.336,-101.3321 -856,-242.668 -298.668,-141.33205 -314.668,-285.33205 -298.668,-344.00005 16,-58.664 64,-32 80,-98.664 16,-66.668 0,-226.668 128,-306.668 z m 0,0"
|
||||||
|
id="path5" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#ffd700"
|
||||||
|
fill-opacity="1"
|
||||||
|
stroke-width="0.4"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 1916.4305,896.19995 80,-512 816,96 -688,1312.00005 400,-1616.00005 1088,1104.00005 -1824,-848.00005 1504,-208 -1040,880.00005 -848,1008 224,-2112.00004951 1168,1616.00004951 896,-816.00005 -1776,208.00005 z m 0,0"
|
||||||
|
id="path6" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#ff0000"
|
||||||
|
fill-opacity="1"
|
||||||
|
stroke-width="0.4"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 9.762574,277.53195 c 45.33594,154.668 247.999996,346.668 594.667966,258.668 346.66797,-88 837.33196,-456 1013.33196,-312 176,144 37.336,800.00005 -306.664,1090.66795 -343.99999,290.6641 -893.33593,216 -794.66796,-88 98.66797,-303.99998 845.33196,-837.33595 1250.66796,-834.66795 405.332,2.668 469.332,541.33203 445.332,821.33205 -24,280 -136,301.3359 -488,37.3359 -352,-263.99998 -943.99996,-813.33595 -1295.99996,-1029.33595 -351.999996,-215.9999995 -463.999996,-98.664 -418.667966,56 z m 0,0"
|
||||||
|
id="path7" />
|
||||||
|
<g
|
||||||
|
fill="#000000"
|
||||||
|
fill-opacity="1"
|
||||||
|
id="g10"
|
||||||
|
transform="translate(-815.56946,-616.80005)">
|
||||||
|
<use
|
||||||
|
xlink:href="#glyph-0-0"
|
||||||
|
x="1073.5159"
|
||||||
|
y="2043.7217"
|
||||||
|
id="use7" />
|
||||||
|
<use
|
||||||
|
xlink:href="#glyph-0-1"
|
||||||
|
x="2114.7791"
|
||||||
|
y="2043.7217"
|
||||||
|
id="use8" />
|
||||||
|
<use
|
||||||
|
xlink:href="#glyph-0-2"
|
||||||
|
x="3196.6311"
|
||||||
|
y="2043.7217"
|
||||||
|
id="use9" />
|
||||||
|
<use
|
||||||
|
xlink:href="#glyph-0-3"
|
||||||
|
x="4177.0107"
|
||||||
|
y="2043.7217"
|
||||||
|
id="use10" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 6.6 KiB |
34
public_html/eh/eh/eh/eh-eh/styles/images/cups_logo_dark.svg
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3108.012817" height="1584.299927" viewBox="0 0 3108.012817 1584.299927">
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip-0">
|
||||||
|
<path clip-rule="nonzero" d="M 1914 166 L 3108.011719 166 L 3108.011719 1306 L 1914 1306 Z M 1914 166 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-1">
|
||||||
|
<path clip-rule="nonzero" d="M 1053 0 L 2770 0 L 2770 1584.300781 L 1053 1584.300781 Z M 1053 0 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-2">
|
||||||
|
<path clip-rule="nonzero" d="M 247 182 L 3065 182 L 3065 1091 L 247 1091 Z M 247 182 "/>
|
||||||
|
</clipPath>
|
||||||
|
<clipPath id="clip-3">
|
||||||
|
<path clip-rule="nonzero" d="M 920.550781 207.574219 C 920.550781 184.710938 919.378906 183.445312 912.347656 183.445312 C 907.671875 183.445312 906.5 184.710938 898.296875 199.957031 L 846.78125 306.667969 C 789.417969 227.90625 719.164062 182.167969 629.011719 182.167969 C 428.796875 182.167969 247.320312 374.003906 247.320312 635.707031 C 247.320312 899.953125 428.796875 1090.523438 630.183594 1090.523438 C 809.316406 1090.523438 920.550781 919.007812 920.550781 772.910156 C 920.550781 760.207031 920.550781 755.132812 910.015625 755.132812 C 900.640625 755.132812 900.640625 758.941406 899.46875 770.367188 C 890.105469 948.234375 773.023438 1057.488281 646.578125 1057.488281 C 527.152344 1057.488281 336.300781 966.011719 336.300781 635.707031 C 336.300781 304.125 530.65625 215.203125 644.234375 215.203125 C 776.539062 215.203125 872.539062 339.703125 894.792969 516.292969 C 897.136719 531.539062 897.136719 534.070312 907.671875 534.070312 C 920.550781 534.070312 920.550781 531.539062 920.550781 508.664062 Z M 1606.65625 779.261719 C 1606.65625 949.5 1504.796875 1057.488281 1393.5625 1057.488281 C 1333.855469 1057.488281 1279.996094 1023.1875 1247.207031 969.832031 C 1209.742188 908.847656 1205.054688 830.085938 1205.054688 785.613281 L 1205.054688 292.699219 C 1205.054688 235.523438 1217.933594 235.523438 1298.722656 235.523438 L 1298.722656 202.5 C 1264.773438 205.03125 1202.722656 205.03125 1166.417969 205.03125 C 1130.125 205.03125 1068.074219 205.03125 1034.113281 202.5 L 1034.113281 235.523438 C 1114.902344 235.523438 1127.78125 235.523438 1127.78125 292.699219 L 1127.78125 779.261719 C 1127.78125 962.203125 1255.410156 1090.523438 1391.21875 1090.523438 C 1543.433594 1090.523438 1631.242188 921.550781 1631.242188 797.050781 L 1631.242188 314.296875 C 1631.242188 243.152344 1690.960938 235.523438 1724.910156 235.523438 L 1724.910156 202.5 C 1697.980469 205.03125 1648.808594 205.03125 1619.535156 205.03125 C 1590.261719 205.03125 1539.917969 205.03125 1512.988281 202.5 L 1512.988281 235.523438 C 1606.65625 235.523438 1606.65625 295.242188 1606.65625 327 Z M 2017.617188 662.390625 L 2204.953125 662.390625 C 2355.996094 662.390625 2466.046875 555.667969 2466.046875 434.988281 C 2466.046875 314.296875 2358.328125 202.5 2204.953125 202.5 L 1846.675781 202.5 L 1846.675781 235.523438 C 1927.464844 235.523438 1940.34375 235.523438 1940.34375 292.699219 L 1940.34375 979.992188 C 1940.34375 1037.15625 1927.464844 1037.15625 1846.675781 1037.15625 L 1846.675781 1070.191406 C 1880.636719 1067.648438 1942.6875 1067.648438 1978.980469 1067.648438 C 2015.285156 1067.648438 2077.335938 1067.648438 2111.285156 1070.191406 L 2111.285156 1037.15625 C 2030.496094 1037.15625 2017.617188 1037.15625 2017.617188 979.992188 Z M 2015.285156 635.707031 L 2015.285156 285.070312 C 2015.285156 241.875 2017.617188 235.523438 2064.457031 235.523438 L 2182.710938 235.523438 C 2333.742188 235.523438 2377.066406 329.542969 2377.066406 434.988281 C 2377.066406 550.59375 2325.550781 635.707031 2182.710938 635.707031 Z M 3033.90625 207.574219 C 3033.90625 184.710938 3032.734375 183.445312 3025.714844 183.445312 C 3018.683594 183.445312 3016.339844 188.519531 3011.664062 199.957031 L 2976.53125 283.804688 C 2932.046875 213.925781 2864.136719 182.167969 2790.378906 182.167969 C 2670.953125 182.167969 2574.941406 285.070312 2574.941406 414.65625 C 2574.941406 454.042969 2583.132812 509.941406 2622.941406 563.296875 C 2666.265625 621.738281 2707.246094 631.898438 2800.914062 658.570312 C 2836.035156 668.742188 2894.582031 685.253906 2906.289062 690.339844 C 2973.027344 720.832031 3008.148438 797.050781 3008.148438 868.195312 C 3008.148438 959.660156 2948.441406 1057.488281 2846.570312 1057.488281 C 2721.296875 1057.488281 2604.214844 981.257812 2596.011719 803.402344 C 2594.839844 783.082031 2593.667969 781.804688 2585.476562 781.804688 C 2576.113281 781.804688 2574.941406 783.082031 2574.941406 808.488281 L 2574.941406 1065.105469 C 2574.941406 1087.980469 2576.113281 1089.246094 2583.132812 1089.246094 C 2591.335938 1089.246094 2593.667969 1082.894531 2610.0625 1043.507812 C 2611.234375 1039.699219 2611.234375 1037.15625 2633.476562 988.886719 C 2692.023438 1072.734375 2790.378906 1090.523438 2846.570312 1090.523438 C 2974.199219 1090.523438 3064.351562 974.90625 3064.351562 840.246094 C 3064.351562 774.1875 3042.097656 723.363281 3029.21875 700.5 C 2980.046875 619.195312 2927.359375 603.949219 2871.15625 588.703125 C 2862.964844 584.894531 2860.621094 584.894531 2795.054688 567.105469 C 2731.832031 549.316406 2704.902344 540.421875 2675.628906 506.121094 C 2642.851562 466.746094 2631.144531 426.09375 2631.144531 385.441406 C 2631.144531 302.859375 2692.023438 212.660156 2791.539062 212.660156 C 2915.652344 212.660156 2992.925781 307.945312 3010.492188 466.746094 C 3014.007812 489.609375 3015.167969 490.875 3023.371094 490.875 C 3033.90625 490.875 3033.90625 487.066406 3033.90625 465.46875 Z M 3033.90625 207.574219 "/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<path fill-rule="evenodd" fill="rgb(0%, 100%, 0%)" fill-opacity="1" d="M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
|
||||||
|
<g clip-path="url(#clip-0)">
|
||||||
|
<path fill="none" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
|
||||||
|
</g>
|
||||||
|
<g clip-path="url(#clip-1)">
|
||||||
|
<path fill-rule="evenodd" fill="rgb(100%, 84.312439%, 0%)" fill-opacity="1" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1437.324219 672.148438 L 1497.324219 288.148438 L 2109.324219 360.148438 L 1593.324219 1344.148438 L 1893.324219 132.148438 L 2709.324219 960.148438 L 1341.324219 324.148438 L 2469.324219 168.148438 L 1689.324219 828.148438 L 1053.324219 1584.148438 L 1221.324219 0.148438 L 2097.324219 1212.148438 L 2769.324219 600.148438 L 1437.324219 756.148438 Z M 1437.324219 672.148438 "/>
|
||||||
|
</g>
|
||||||
|
<path fill-rule="evenodd" fill="rgb(100%, 0%, 0%)" fill-opacity="1" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 7.320312 208.148438 C 41.324219 324.148438 193.320312 468.148438 453.324219 402.148438 C 713.324219 336.148438 1081.320312 60.148438 1213.320312 168.148438 C 1345.320312 276.148438 1241.324219 768.148438 983.324219 986.152344 C 725.324219 1204.148438 313.320312 1148.152344 387.324219 920.152344 C 461.324219 692.152344 1021.320312 292.148438 1325.324219 294.148438 C 1629.324219 296.152344 1677.324219 700.148438 1659.324219 910.148438 C 1641.324219 1120.148438 1557.324219 1136.152344 1293.324219 938.152344 C 1029.324219 740.152344 585.324219 328.148438 321.324219 166.148438 C 57.324219 4.148438 -26.675781 92.152344 7.320312 208.148438 Z M 7.320312 208.148438 "/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 920.550781 207.574219 C 920.550781 184.710938 919.378906 183.445312 912.347656 183.445312 C 907.671875 183.445312 906.5 184.710938 898.296875 199.957031 L 846.78125 306.667969 C 789.417969 227.90625 719.164062 182.167969 629.011719 182.167969 C 428.796875 182.167969 247.320312 374.003906 247.320312 635.707031 C 247.320312 899.953125 428.796875 1090.523438 630.183594 1090.523438 C 809.316406 1090.523438 920.550781 919.007812 920.550781 772.910156 C 920.550781 760.207031 920.550781 755.132812 910.015625 755.132812 C 900.640625 755.132812 900.640625 758.941406 899.46875 770.367188 C 890.105469 948.234375 773.023438 1057.488281 646.578125 1057.488281 C 527.152344 1057.488281 336.300781 966.011719 336.300781 635.707031 C 336.300781 304.125 530.65625 215.203125 644.234375 215.203125 C 776.539062 215.203125 872.539062 339.703125 894.792969 516.292969 C 897.136719 531.539062 897.136719 534.070312 907.671875 534.070312 C 920.550781 534.070312 920.550781 531.539062 920.550781 508.664062 Z M 920.550781 207.574219 "/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 1606.65625 779.261719 C 1606.65625 949.5 1504.796875 1057.488281 1393.5625 1057.488281 C 1333.855469 1057.488281 1279.996094 1023.1875 1247.207031 969.832031 C 1209.742188 908.847656 1205.054688 830.085938 1205.054688 785.613281 L 1205.054688 292.699219 C 1205.054688 235.523438 1217.933594 235.523438 1298.722656 235.523438 L 1298.722656 202.5 C 1264.773438 205.03125 1202.722656 205.03125 1166.417969 205.03125 C 1130.125 205.03125 1068.074219 205.03125 1034.113281 202.5 L 1034.113281 235.523438 C 1114.902344 235.523438 1127.78125 235.523438 1127.78125 292.699219 L 1127.78125 779.261719 C 1127.78125 962.203125 1255.410156 1090.523438 1391.21875 1090.523438 C 1543.433594 1090.523438 1631.242188 921.550781 1631.242188 797.050781 L 1631.242188 314.296875 C 1631.242188 243.152344 1690.960938 235.523438 1724.910156 235.523438 L 1724.910156 202.5 C 1697.980469 205.03125 1648.808594 205.03125 1619.535156 205.03125 C 1590.261719 205.03125 1539.917969 205.03125 1512.988281 202.5 L 1512.988281 235.523438 C 1606.65625 235.523438 1606.65625 295.242188 1606.65625 327 Z M 1606.65625 779.261719 "/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 2017.617188 662.390625 L 2204.953125 662.390625 C 2355.996094 662.390625 2466.046875 555.667969 2466.046875 434.988281 C 2466.046875 314.296875 2358.328125 202.5 2204.953125 202.5 L 1846.675781 202.5 L 1846.675781 235.523438 C 1927.464844 235.523438 1940.34375 235.523438 1940.34375 292.699219 L 1940.34375 979.992188 C 1940.34375 1037.15625 1927.464844 1037.15625 1846.675781 1037.15625 L 1846.675781 1070.191406 C 1880.636719 1067.648438 1942.6875 1067.648438 1978.980469 1067.648438 C 2015.285156 1067.648438 2077.335938 1067.648438 2111.285156 1070.191406 L 2111.285156 1037.15625 C 2030.496094 1037.15625 2017.617188 1037.15625 2017.617188 979.992188 Z M 2015.285156 635.707031 L 2015.285156 285.070312 C 2015.285156 241.875 2017.617188 235.523438 2064.457031 235.523438 L 2182.710938 235.523438 C 2333.742188 235.523438 2377.066406 329.542969 2377.066406 434.988281 C 2377.066406 550.59375 2325.550781 635.707031 2182.710938 635.707031 Z M 2015.285156 635.707031 "/>
|
||||||
|
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 3033.90625 207.574219 C 3033.90625 184.710938 3032.734375 183.445312 3025.714844 183.445312 C 3018.683594 183.445312 3016.339844 188.519531 3011.664062 199.957031 L 2976.53125 283.804688 C 2932.046875 213.925781 2864.136719 182.167969 2790.378906 182.167969 C 2670.953125 182.167969 2574.941406 285.070312 2574.941406 414.65625 C 2574.941406 454.042969 2583.132812 509.941406 2622.941406 563.296875 C 2666.265625 621.738281 2707.246094 631.898438 2800.914062 658.570312 C 2836.035156 668.742188 2894.582031 685.253906 2906.289062 690.339844 C 2973.027344 720.832031 3008.148438 797.050781 3008.148438 868.195312 C 3008.148438 959.660156 2948.441406 1057.488281 2846.570312 1057.488281 C 2721.296875 1057.488281 2604.214844 981.257812 2596.011719 803.402344 C 2594.839844 783.082031 2593.667969 781.804688 2585.476562 781.804688 C 2576.113281 781.804688 2574.941406 783.082031 2574.941406 808.488281 L 2574.941406 1065.105469 C 2574.941406 1087.980469 2576.113281 1089.246094 2583.132812 1089.246094 C 2591.335938 1089.246094 2593.667969 1082.894531 2610.0625 1043.507812 C 2611.234375 1039.699219 2611.234375 1037.15625 2633.476562 988.886719 C 2692.023438 1072.734375 2790.378906 1090.523438 2846.570312 1090.523438 C 2974.199219 1090.523438 3064.351562 974.90625 3064.351562 840.246094 C 3064.351562 774.1875 3042.097656 723.363281 3029.21875 700.5 C 2980.046875 619.195312 2927.359375 603.949219 2871.15625 588.703125 C 2862.964844 584.894531 2860.621094 584.894531 2795.054688 567.105469 C 2731.832031 549.316406 2704.902344 540.421875 2675.628906 506.121094 C 2642.851562 466.746094 2631.144531 426.09375 2631.144531 385.441406 C 2631.144531 302.859375 2692.023438 212.660156 2791.539062 212.660156 C 2915.652344 212.660156 2992.925781 307.945312 3010.492188 466.746094 C 3014.007812 489.609375 3015.167969 490.875 3023.371094 490.875 C 3033.90625 490.875 3033.90625 487.066406 3033.90625 465.46875 Z M 3033.90625 207.574219 "/>
|
||||||
|
<g clip-path="url(#clip-2)">
|
||||||
|
<g clip-path="url(#clip-3)">
|
||||||
|
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 7.320312 208.148438 C 41.324219 324.148438 193.320312 468.148438 453.324219 402.148438 C 713.324219 336.148438 1081.320312 60.148438 1213.320312 168.148438 C 1345.320312 276.148438 1241.324219 768.148438 983.324219 986.152344 C 725.324219 1204.148438 313.320312 1148.152344 387.324219 920.152344 C 461.324219 692.152344 1021.320312 292.148438 1325.324219 294.148438 C 1629.324219 296.152344 1677.324219 700.148438 1659.324219 910.148438 C 1641.324219 1120.148438 1557.324219 1136.152344 1293.324219 938.152344 C 1029.324219 740.152344 585.324219 328.148438 321.324219 166.148438 C 57.324219 4.148438 -26.675781 92.152344 7.320312 208.148438 Z M 1437.324219 672.148438 L 1497.324219 288.148438 L 2109.324219 360.148438 L 1593.324219 1344.148438 L 1893.324219 132.148438 L 2709.324219 960.148438 L 1341.324219 324.148438 L 2469.324219 168.148438 L 1689.324219 828.148438 L 1053.324219 1584.148438 L 1221.324219 0.148438 L 2097.324219 1212.148438 L 2769.324219 600.148438 L 1437.324219 756.148438 Z M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 16 KiB |
79
public_html/eh/eh/eh/eh-eh/styles/images/cups_right.svg
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="1619.0758"
|
||||||
|
height="1552.4"
|
||||||
|
viewBox="0 0 1619.0758 1552.4"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#ee82ee"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 26.160933,1678.6922 c 144.820317,64.6914 389.835937,52.168 569.316407,-93.1797 C 774.9617,1440.1609 888.9109,1161.9813 669.86796,1055.6922 450.825,949.3992 -101.21407,1014.993 -4.3468768,1186.2703 92.520313,1357.5516 838.2977,1634.5164 1181.243,1552.9031 c 342.9492,-81.6093 283.0703,-521.7929 -26.3828,-620.7929 -309.4571,-99.0039 -868.49224,143.1796 -1143.730517,400.2304 -275.238273,257.0469 -266.683593,528.9649 -255.894523,531.086 10.78906,2.1172 23.80859,-265.5625 52.63672,-328.4493 28.82812,-62.8867 73.46483,79.0196 218.289053,143.7149 z m 0,0"
|
||||||
|
id="path2" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#a01ff0"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 1458.8758,128.2 -48,-528 -208,1168 -656.00002,-464 1232.00002,272 272,-112 z m 0,0"
|
||||||
|
id="path3" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 786.8758,128.2 688,688 -672,624"
|
||||||
|
id="path4"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 450.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path5"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 274.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path6"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 114.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path7"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 610.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path8"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
101
public_html/eh/eh/eh/eh-eh/styles/images/cups_right_dark.svg
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="1619.0758"
|
||||||
|
height="1552.4"
|
||||||
|
viewBox="0 0 1619.0758 1552.4"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="arrow_right.svg"
|
||||||
|
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.25766555"
|
||||||
|
inkscape:cx="374.51651"
|
||||||
|
inkscape:cy="1269.087"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1011"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#ee82ee"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 26.160933,1678.6922 c 144.820317,64.6914 389.835937,52.168 569.316407,-93.1797 C 774.9617,1440.1609 888.9109,1161.9813 669.86796,1055.6922 450.825,949.3992 -101.21407,1014.993 -4.3468768,1186.2703 92.520313,1357.5516 838.2977,1634.5164 1181.243,1552.9031 c 342.9492,-81.6093 283.0703,-521.7929 -26.3828,-620.7929 -309.4571,-99.0039 -868.49224,143.1796 -1143.730517,400.2304 -275.238273,257.0469 -266.683593,528.9649 -255.894523,531.086 10.78906,2.1172 23.80859,-265.5625 52.63672,-328.4493 28.82812,-62.8867 73.46483,79.0196 218.289053,143.7149 z m 0,0"
|
||||||
|
id="path2" />
|
||||||
|
<path
|
||||||
|
fill-rule="evenodd"
|
||||||
|
fill="#a01ff0"
|
||||||
|
fill-opacity="1"
|
||||||
|
d="m 1458.8758,128.2 -48,-528 -208,1168 -656.00002,-464 1232.00002,272 272,-112 z m 0,0"
|
||||||
|
id="path3" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 786.8758,128.2 688,688 -672,624"
|
||||||
|
id="path4"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 450.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path5"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 274.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path6"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 114.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path7"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke-width="10"
|
||||||
|
stroke-linecap="butt"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-opacity="1"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
d="m 610.87578,112.2 688.00002,688 -672.00002,624"
|
||||||
|
id="path8"
|
||||||
|
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 26 KiB |
|
|
@ -1,173 +1,114 @@
|
||||||
:root {
|
:root {
|
||||||
--foreground: #586e75;
|
--foreground: #1a1a1a;
|
||||||
--background: #fdf6e3;
|
--background: #fdfdfdf0;
|
||||||
--html-border: #eee8d5;
|
--border: #c9c9c9;
|
||||||
--html-background: #268bd2;
|
--html-background: #e3e3e3;
|
||||||
--body-background: linear-gradient(to bottom, #2aa198, #268bd2);
|
--blockquote-text: #606060;
|
||||||
--blockquote-text: #657b83;
|
--blockquote-border: #e6e6e6;
|
||||||
--blockquote-border: #eee8d5;
|
--button-border: #e3e3e3;
|
||||||
--button-primary: #fdf6e3;
|
--button-background: #d0d0d0;
|
||||||
--button-secondary: #eee8d5;
|
|
||||||
--code-color: #657b83;
|
|
||||||
--code-background: #fdf6e3;
|
|
||||||
--code-line-number-color: #93a1a1;
|
|
||||||
--code-line-number-background: #eee8d5;
|
|
||||||
--code-comment-color: #93a1a1;
|
|
||||||
--code-keyword-color: #586e75;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
:root {
|
:root {
|
||||||
--foreground: #93a1a1;
|
--foreground: #fdfdfd;
|
||||||
--background: #002b36;
|
--background: #1a1a1af0;
|
||||||
--html-border: #073642;
|
--border: #4c4c4c;
|
||||||
--html-background: #6c71c4;
|
--html-background: #303030;
|
||||||
--body-background: linear-gradient(to bottom, #268bd2, #6c71c4);
|
--blockquote-text: #e6e6e6;
|
||||||
--blockquote-text: #839496;
|
--blockquote-border: #606060;
|
||||||
--blockquote-border: #073642;
|
--button-border: #4c4c4c;
|
||||||
--button-primary: #073642;
|
--button-background: #404040;
|
||||||
--button-secondary: #002b36;
|
|
||||||
--code-color: #839496;
|
|
||||||
--code-background: #002b36;
|
|
||||||
--code-line-number-color: #586e75;
|
|
||||||
--code-line-number-background: #073642;
|
|
||||||
--code-comment-color: #586e75;
|
|
||||||
--code-keyword-color: #93a1a1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pre.numberSource code > span > a:first-child::before {
|
|
||||||
background-color: var(--code-line-number-background);
|
|
||||||
color: var(--code-line-number-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pre.numberSource {
|
|
||||||
margin-left: 3em;
|
|
||||||
border-left: none;
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen {
|
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: none; }
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sourceCode {
|
|
||||||
color: var(--code-color);
|
|
||||||
background-color: var(--code-background);
|
|
||||||
line-height: 80%;
|
|
||||||
}
|
|
||||||
|
|
||||||
code span.co { color: var(--code-comment-color); font-style: italic; } /* Comment */
|
|
||||||
code span.do { color: var(--code-comment-color); font-style: italic; } /* Documentation */
|
|
||||||
code span.kw { color: var(--code-keyword-color); font-weight: bold; } /* Keyword */
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
|
/*background: url("recursion.gif");*/
|
||||||
background: var(--html-background);
|
background: var(--html-background);
|
||||||
|
background-repeat: repeat-y;
|
||||||
|
background-size: cover;
|
||||||
font-family: serif;
|
font-family: serif;
|
||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
background-color: var(--background);
|
||||||
background: var(--body-background);
|
border: solid 1px var(--border);
|
||||||
}
|
|
||||||
|
|
||||||
main {
|
|
||||||
max-width: 48em;
|
|
||||||
|
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
max-width: 48em;
|
||||||
padding-left: 50pt;
|
padding-left: 50pt;
|
||||||
padding-right: 50pt;
|
padding-right: 50pt;
|
||||||
padding-top: 50pt;
|
padding-top: 50pt;
|
||||||
padding-bottom: 50pt;
|
padding-bottom: 50pt;
|
||||||
|
|
||||||
hyphens: auto;
|
hyphens: auto;
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
font-kerning: normal;
|
font-kerning: normal;
|
||||||
|
|
||||||
background-color: var(--background);
|
|
||||||
border-left: solid 3pt var(--html-border);
|
|
||||||
border-right: solid 3pt var(--html-border);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#shork {
|
#tv-screen {
|
||||||
position: absolute;
|
position: fixed;
|
||||||
z-index: 1;
|
top: 0;
|
||||||
left: -36px;
|
left: 0;
|
||||||
top: -32px;
|
z-index: -1;
|
||||||
width: 64px;
|
|
||||||
transform-origin: 50% 50%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-header {
|
#page-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
max-width: 60em;
|
text-align: left;
|
||||||
|
border: 4pt ridge var(--border);
|
||||||
margin: 0 auto;
|
|
||||||
padding: 4pt;
|
|
||||||
|
|
||||||
background: url("images/shark-top-small.png");
|
background: url("images/shark-top-small.png");
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
border: solid 3pt var(--html-border);
|
}
|
||||||
|
|
||||||
|
#page-header li {
|
||||||
|
list-style: none;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-header a:active {
|
||||||
|
border: 2pt inset var(--button-border)
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-header a {
|
#page-header a {
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
padding: 4pt;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
margin: 4pt;
|
||||||
|
padding: 4pt;
|
||||||
|
border: 2pt outset var(--button-border);
|
||||||
|
background-color: var(--button-background)
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-header-button {
|
#page-header ul,
|
||||||
background: linear-gradient(to bottom, var(--button-primary) 0%, var(--button-secondary) 100%);
|
|
||||||
border: 1pt solid var(--blockquote-border);
|
|
||||||
border-radius: 4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-header-button:active {
|
|
||||||
background: linear-gradient(to bottom, var(--button-secondary) 0%, var(--button-primary) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.rss-button {
|
|
||||||
color: #fdf6e3 !important;
|
|
||||||
background: linear-gradient(to bottom, #fb9d3a 0%, #d95c29 100%);
|
|
||||||
border: 1pt solid #f2994f;
|
|
||||||
border-radius: 4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rss-button:active {
|
|
||||||
background: linear-gradient(to bottom, #d95c29 0%, #fb9d3a 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
#articles ul {
|
#articles ul {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#articles li {
|
#articles li {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-header {
|
.articles-header {
|
||||||
margin: 8pt 0 4pt 0;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.articles-footer {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-top: 4pt;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-title {
|
.articles-title {
|
||||||
|
margin: 8pt 0 4pt 0;
|
||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-author {
|
.articles-author {
|
||||||
font-style: italic;
|
margin: 12pt 0 4pt 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-summary {
|
.articles-summary {
|
||||||
|
|
@ -175,29 +116,42 @@ main {
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-date {
|
.articles-date {
|
||||||
|
margin: 0;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-footer {
|
#page-footer {
|
||||||
display: flex;
|
border: 4pt ridge var(--border);
|
||||||
justify-content: center;
|
|
||||||
max-width: 60em;
|
|
||||||
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 4pt;
|
|
||||||
|
|
||||||
background: url("images/shark-top-small.png");
|
background: url("images/shark-top-small.png");
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
border: solid 3pt var(--html-border);
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-footer nav {
|
#page-footer p {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
#TOC {
|
||||||
|
padding: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
padding: 12px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 600px) {
|
||||||
main {
|
body {
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
padding: 12pt;
|
padding: 12pt;
|
||||||
}
|
}
|
||||||
|
|
@ -232,14 +186,6 @@ main {
|
||||||
page-break-after: avoid;
|
page-break-after: avoid;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
#page {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#page-header,
|
#page-header,
|
||||||
#page-footer {
|
#page-footer {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
@ -338,20 +284,8 @@ hr {
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
figure {
|
|
||||||
margin: 1em 0;
|
|
||||||
width: 100%;
|
|
||||||
overflow-x: auto;
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
margin-top: 0.75em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
table {
|
||||||
margin: 1em auto;
|
margin: 1em 0;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
|
|
||||||
102
scripts/shork.js
|
|
@ -1,102 +0,0 @@
|
||||||
let shork_image = document.getElementById("shork");
|
|
||||||
|
|
||||||
let zoomies = 4;
|
|
||||||
let turnies = 0.2;
|
|
||||||
|
|
||||||
let shork = {x: 4, y: 8};
|
|
||||||
let rotation = 0;
|
|
||||||
let shork_init = transform(shork, -rotation);
|
|
||||||
shork_image.style.transform = `matrix(${shork_init.a}, ${shork_init.b}, ${shork_init.c}, ${shork_init.d}, ${shork_init.x}, ${shork_init.y})`;
|
|
||||||
|
|
||||||
let mouse = {x: 0, y: 0};
|
|
||||||
onmousemove = function(e){
|
|
||||||
mouse.x = e.pageX;
|
|
||||||
mouse.y = e.pageY;
|
|
||||||
}
|
|
||||||
|
|
||||||
let direction = 0;
|
|
||||||
let movement = 0;
|
|
||||||
let target = 0;
|
|
||||||
|
|
||||||
function move() {
|
|
||||||
direction = vector(shork, mouse);
|
|
||||||
|
|
||||||
if (norm(direction) >= 4) {
|
|
||||||
movement = scalar(angletovec(rotation), zoomies * norm(direction)/128);
|
|
||||||
shork = add(shork, movement);
|
|
||||||
target = angle(direction);
|
|
||||||
rotation = interpolate(rotation, target, turnies) + Math.sin(norm(movement))/8;
|
|
||||||
}
|
|
||||||
|
|
||||||
let trans = transform(shork, -rotation);
|
|
||||||
shork_image.style.transform = `matrix(${trans.a}, ${trans.b}, ${trans.c}, ${trans.d}, ${trans.x}, ${trans.y})`;
|
|
||||||
|
|
||||||
setTimeout(move, 30);
|
|
||||||
}
|
|
||||||
|
|
||||||
shork_image.addEventListener("click", function(e) {move()}, {once: true});
|
|
||||||
|
|
||||||
function vector(a, b) {
|
|
||||||
return {
|
|
||||||
x: b.x - a.x,
|
|
||||||
y: b.y - a.y
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function angle(v) {
|
|
||||||
return Math.atan2(v.y, v.x);
|
|
||||||
}
|
|
||||||
|
|
||||||
function angletovec(a) {
|
|
||||||
return {x: Math.cos(a), y: Math.sin(a)};
|
|
||||||
}
|
|
||||||
|
|
||||||
function norm(v) {
|
|
||||||
return Math.sqrt(Math.pow(v.x, 2) + Math.pow(v.y, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
function unit(v) {
|
|
||||||
let length = norm(v);
|
|
||||||
|
|
||||||
if (length == 0) return {x: 0, y: 0};
|
|
||||||
|
|
||||||
return {x: v.x / length, y: v.y / length};
|
|
||||||
}
|
|
||||||
|
|
||||||
function scalar(v, a) {
|
|
||||||
return {x: v.x * a, y: v.y * a};
|
|
||||||
}
|
|
||||||
|
|
||||||
function add(v, u) {
|
|
||||||
return {x: v.x + u.x, y: v.y + u.y};
|
|
||||||
}
|
|
||||||
|
|
||||||
function round(v) {
|
|
||||||
return {x: Math.round(v.x), y: Math.round(v.y)};
|
|
||||||
}
|
|
||||||
|
|
||||||
function clamp(a, min, max) {
|
|
||||||
if (a < min) return min;
|
|
||||||
if (a > max) return max;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
function interpolate(a, b, c) {
|
|
||||||
let d = Math.abs(a - b)
|
|
||||||
if (d > Math.abs(a - b - 2 * Math.PI)) a = a - 2 * Math.PI;
|
|
||||||
if (d > Math.abs(a - b + 2 * Math.PI)) a = a + 2 * Math.PI;
|
|
||||||
|
|
||||||
if (a < b) a = clamp(a + c, a, b);
|
|
||||||
if (a > b) a = clamp(a - c, b, a);
|
|
||||||
|
|
||||||
a += 3 * Math.PI;
|
|
||||||
a = a % (2 * Math.PI);
|
|
||||||
a -= Math.PI;
|
|
||||||
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
function transform(v, a) {
|
|
||||||
return {a: Math.cos(a), b: -Math.sin(a), c: Math.sin(a), d: Math.cos(a), x: v.x, y: v.y};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -2,41 +2,26 @@
|
||||||
"articles": [
|
"articles": [
|
||||||
{
|
{
|
||||||
"author": "Never",
|
"author": "Never",
|
||||||
"date": "2026-06-22",
|
"date": "9.1.2026",
|
||||||
"email": "n.gude@posteo.de",
|
|
||||||
"summary": "Inspiriert von der Küche der Kuhtreiber des Wilden Westens.",
|
|
||||||
"title": "Bohnen und Maisbrot",
|
|
||||||
"updated": "2026-06-22T20:47+02:00",
|
|
||||||
"filename": "beans-and-cornbread"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"author": "Never",
|
|
||||||
"date": "2026-01-12",
|
|
||||||
"email": "n.gude@posteo.de",
|
|
||||||
"summary": "As Spotify is getting enshittified by capitalism, keeping a music library is kind of essential. Here I use rsync to syncronise my library with my Android smartphone.",
|
|
||||||
"title": "Using rsync on Android to syncronise my Music library",
|
|
||||||
"updated": "2026-01-12T16:24+01:00",
|
|
||||||
"filename": "rsync-android"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"author": "Never",
|
|
||||||
"date": "2026-01-09",
|
|
||||||
"email": "n.gude@posteo.de",
|
|
||||||
"subtitle": "Some unintuitive quirks of Latex",
|
"subtitle": "Some unintuitive quirks of Latex",
|
||||||
"summary": "Latex undoubtedly has some quirks. Some of them have a rather unintuitive solution. In this article I cover some quirks and solutions I have encountered.",
|
"summary": "Latex undoubtedly has some quirks. Some of them have a rather unintuitive solution. In this article I cover some quirks and solutions I have encountered.",
|
||||||
"title": "Latex Endeavors",
|
"title": "Latex Endeavors",
|
||||||
"updated": "2026-01-10T16:23+01:00",
|
"filename": " latex-endeavors"
|
||||||
"filename": "latex-endeavors"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"author": "Never",
|
"author": "Never",
|
||||||
"date": "2025-07-25",
|
"date": "25.7.2025",
|
||||||
"email": "n.gude@posteo.de",
|
|
||||||
"subtitle": "Neat things I picked up along the way",
|
"subtitle": "Neat things I picked up along the way",
|
||||||
"summary": "Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.",
|
"summary": "Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.",
|
||||||
"title": "Random linux utilities",
|
"title": "Random linux utilities",
|
||||||
"updated": "2025-07-25T16:24+01:00",
|
"filename": " random-linux-utils"
|
||||||
"filename": "random-linux-utils"
|
},
|
||||||
|
{
|
||||||
|
"author": "Never",
|
||||||
|
"date": "12.01.2026",
|
||||||
|
"summary": "As Spotify is getting enshittified by capitalism, keeping a music library is kind of essential. Here I use rsync to syncronise my library with my Android smartphone.",
|
||||||
|
"title": "Using rsync on Android to syncronise my Music library",
|
||||||
|
"filename": " rsync-android"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
---
|
|
||||||
title: Bohnen und Maisbrot
|
|
||||||
author: Never
|
|
||||||
email: n.gude@posteo.de
|
|
||||||
date: 2026-06-22
|
|
||||||
updated: 2026-06-22T20:47+02:00
|
|
||||||
summary: Inspiriert von der Küche der Kuhtreiber des Wilden Westens.
|
|
||||||
---
|
|
||||||
|
|
||||||
# Bohnen
|
|
||||||
| Maße | Zutaten |
|
|
||||||
|-------------:|:--------|
|
|
||||||
| 2 | Zwiebeln |
|
|
||||||
| 2 | Knoblauchzehen |
|
|
||||||
| 1 | rote Chili (Peperoni/Chile de árbol[^arbol]) |
|
|
||||||
| | Kreuzkümmel |
|
|
||||||
| | Speckwürfel (Optional) |
|
|
||||||
| 1 l | Brühe (Gemüse/Huhn/Rind) |
|
|
||||||
| 1 Dose | Kidneybohnen |
|
|
||||||
| 1 Dose | Pintobohnen oder andere Bohnen |
|
|
||||||
| 1 | Chile Ancho[^ancho] oder geräuchertes Paprikapulver |
|
|
||||||
| | Petersilienstängel |
|
|
||||||
| | Limettensaft |
|
|
||||||
| | Salz
|
|
||||||
|
|
||||||
[^arbol]: [Chile de árbol](https://en.wikipedia.org/wiki/Chile_de_%C3%A1rbol); Eine kleine, scharfe, rote Chili. Meist getrocknet zu finden.
|
|
||||||
[^ancho]: [Chile Ancho](https://en.wikipedia.org/wiki/Poblano); Eine große getrocknete Chili mit rauchigem Geschmack.
|
|
||||||
|
|
||||||
## Zubereitung
|
|
||||||
|
|
||||||
1. Zwiebeln, Knoblauch, rote Chili, Kreuzkümmel und Speckwürfel anbraten.
|
|
||||||
|
|
||||||
2. Mit Brühe ablöschen und die Bohnen, Ancho Chili und Petersilienstängel hinzufügen.
|
|
||||||
Köcheln und etwas reduzieren lassen.
|
|
||||||
|
|
||||||
3. Mit Salz und Limettensaft abschmecken.
|
|
||||||
|
|
||||||
# Maisbrot
|
|
||||||
|
|
||||||
| Maße | Zutaten |
|
|
||||||
|-------------:|:--------|
|
|
||||||
| 1 Tasse | Mehl |
|
|
||||||
| 1 Tasse | Maismehl |
|
|
||||||
| 4 TL | Backpulver |
|
|
||||||
| | Salz |
|
|
||||||
| 1/4 Tasse | brauner Zucker |
|
|
||||||
| 1 | Ei |
|
|
||||||
| 1/3 Tasse | flüssige Butter |
|
|
||||||
| 1 - 2 Tassen | Milch oder Buttermilch |
|
|
||||||
| 1/3 Tasse | flüssige Butter |
|
|
||||||
| | Speckwürfel (Optional) |
|
|
||||||
| | Gehackte grüne Chilis (Optional) |
|
|
||||||
|
|
||||||
## Zubereitung
|
|
||||||
|
|
||||||
1. Trockene Zutaten mischen.
|
|
||||||
|
|
||||||
2. Ei und Butter unterrühren.
|
|
||||||
|
|
||||||
3. Schrittweise die Milch hinzugeben, bis eine zähflüssige Masse
|
|
||||||
entstanden ist.
|
|
||||||
|
|
||||||
|
|
@ -2,9 +2,7 @@
|
||||||
title: Latex Endeavors
|
title: Latex Endeavors
|
||||||
subtitle: Some unintuitive quirks of Latex
|
subtitle: Some unintuitive quirks of Latex
|
||||||
author: Never
|
author: Never
|
||||||
email: n.gude@posteo.de
|
date: 9.1.2026
|
||||||
date: 2026-01-09
|
|
||||||
updated: 2026-01-10T16:23+01:00
|
|
||||||
summary: Latex undoubtedly has some quirks. Some of them have a rather unintuitive solution.
|
summary: Latex undoubtedly has some quirks. Some of them have a rather unintuitive solution.
|
||||||
In this article I cover some quirks and solutions I have encountered.
|
In this article I cover some quirks and solutions I have encountered.
|
||||||
---
|
---
|
||||||
|
|
|
||||||
18
src/articles/random-linux-utils
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m
|
||||||
|
Some unintuitive quirks of Latex
|
||||||
|
|
||||||
|
Never
|
||||||
|
|
||||||
|
[22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||||
|
|
||||||
|
────────────────────
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mBIBLATEX AND BIBER[0m
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mBiber doesn’t run[0m
|
||||||
|
|
||||||
|
Biber doens’t run if the (fedora) package [22m[23m[31m[47m[24m[29m libxcrypt-compat [0m is missing.
|
||||||
|
It will fail with the error message
|
||||||
|
|
||||||
|
[22m[23m[31m[49m[24m[29mbiber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory[0m
|
||||||
|
[0m]8;;\
|
||||||
80
src/articles/random-linux-utils.html
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="pandoc" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
|
<meta name="author" content="Never" />
|
||||||
|
<title>Latex Endeavors</title>
|
||||||
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
|
override a similar rule in reveal.js */
|
||||||
|
ul.task-list[class]{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
font-size: inherit;
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<canvas id="tv-screen"></canvas>
|
||||||
|
<header id="page-header">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
|
||||||
|
</ul>
|
||||||
|
<!--
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span id="dark-mode">
|
||||||
|
<input id="dark-mode-toggle" type="checkbox"><label for="dark-mode-toggle">Dark mode</label>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
-->
|
||||||
|
</header>
|
||||||
|
<header id="title-block-header">
|
||||||
|
<h1 class="title">Latex Endeavors</h1>
|
||||||
|
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
||||||
|
<p class="author">Never</p>
|
||||||
|
<p class="date">9.1.2026</p>
|
||||||
|
</header>
|
||||||
|
<section id="content">
|
||||||
|
<nav id="TOC" role="doc-toc">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
|
||||||
|
and Biber</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesn’t
|
||||||
|
run</a></li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<article>
|
||||||
|
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
||||||
|
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
||||||
|
<p>Biber doens’t run if the (fedora) package
|
||||||
|
<code>libxcrypt-compat</code> is missing. It will fail with the error
|
||||||
|
message</p>
|
||||||
|
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<footer id="page-footer">
|
||||||
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
|
<p class="cups-light">
|
||||||
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30/"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60/"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30/"></a>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -2,9 +2,7 @@
|
||||||
title: Random linux utilities
|
title: Random linux utilities
|
||||||
subtitle: Neat things I picked up along the way
|
subtitle: Neat things I picked up along the way
|
||||||
author: Never
|
author: Never
|
||||||
email: n.gude@posteo.de
|
date: 25.7.2025
|
||||||
date: 2025-07-25
|
|
||||||
updated: 2025-07-25T16:24+01:00
|
|
||||||
summary: Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.
|
summary: Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
18
src/articles/rsync-android
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
[1m[23m[39m[49m[24m[29mLatex Endeavors[0m
|
||||||
|
Some unintuitive quirks of Latex
|
||||||
|
|
||||||
|
Never
|
||||||
|
|
||||||
|
[22m[3m[39m[49m[24m[29m9.1.2026[0m
|
||||||
|
|
||||||
|
────────────────────
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mBIBLATEX AND BIBER[0m
|
||||||
|
|
||||||
|
[1m[23m[39m[49m[24m[29mBiber doesn’t run[0m
|
||||||
|
|
||||||
|
Biber doens’t run if the (fedora) package [22m[23m[31m[47m[24m[29m libxcrypt-compat [0m is missing.
|
||||||
|
It will fail with the error message
|
||||||
|
|
||||||
|
[22m[23m[31m[49m[24m[29mbiber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory[0m
|
||||||
|
[0m]8;;\
|
||||||
80
src/articles/rsync-android.html
Normal file
|
|
@ -0,0 +1,80 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="pandoc" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||||
|
<meta name="author" content="Never" />
|
||||||
|
<title>Latex Endeavors</title>
|
||||||
|
<link rel="icon" type="image/x-icon" href="images/favicon.png">
|
||||||
|
<style>
|
||||||
|
code{white-space: pre-wrap;}
|
||||||
|
span.smallcaps{font-variant: small-caps;}
|
||||||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||||||
|
div.column{flex: auto; overflow-x: auto;}
|
||||||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||||||
|
/* The extra [class] is a hack that increases specificity enough to
|
||||||
|
override a similar rule in reveal.js */
|
||||||
|
ul.task-list[class]{list-style: none;}
|
||||||
|
ul.task-list li input[type="checkbox"] {
|
||||||
|
font-size: inherit;
|
||||||
|
width: 0.8em;
|
||||||
|
margin: 0 0.8em 0.2em -1.6em;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<canvas id="tv-screen"></canvas>
|
||||||
|
<header id="page-header">
|
||||||
|
<ul>
|
||||||
|
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
|
||||||
|
</ul>
|
||||||
|
<!--
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<span id="dark-mode">
|
||||||
|
<input id="dark-mode-toggle" type="checkbox"><label for="dark-mode-toggle">Dark mode</label>
|
||||||
|
</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
-->
|
||||||
|
</header>
|
||||||
|
<header id="title-block-header">
|
||||||
|
<h1 class="title">Latex Endeavors</h1>
|
||||||
|
<p class="subtitle">Some unintuitive quirks of Latex</p>
|
||||||
|
<p class="author">Never</p>
|
||||||
|
<p class="date">9.1.2026</p>
|
||||||
|
</header>
|
||||||
|
<section id="content">
|
||||||
|
<nav id="TOC" role="doc-toc">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
|
||||||
|
and Biber</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesn’t
|
||||||
|
run</a></li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<article>
|
||||||
|
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
|
||||||
|
<h2 id="biber-doesnt-run">Biber doesn’t run</h2>
|
||||||
|
<p>Biber doens’t run if the (fedora) package
|
||||||
|
<code>libxcrypt-compat</code> is missing. It will fail with the error
|
||||||
|
message</p>
|
||||||
|
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
<footer id="page-footer">
|
||||||
|
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
|
||||||
|
<p class="cups-light">
|
||||||
|
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30/"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60/"></a>
|
||||||
|
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30/"></a>
|
||||||
|
</p>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
---
|
---
|
||||||
title: Using rsync on Android to syncronise my Music library
|
title: Using rsync on Android to syncronise my Music library
|
||||||
author: Never
|
author: Never
|
||||||
email: n.gude@posteo.de
|
date: 12.01.2026
|
||||||
date: 2026-01-12
|
|
||||||
updated: 2026-01-12T16:24+01:00
|
|
||||||
summary: As Spotify is getting enshittified by capitalism, keeping a music library
|
summary: As Spotify is getting enshittified by capitalism, keeping a music library
|
||||||
is kind of essential. Here I use rsync to syncronise my library with my Android smartphone.
|
is kind of essential. Here I use rsync to syncronise my library with my Android smartphone.
|
||||||
---
|
---
|
||||||
|
|
@ -99,3 +97,31 @@ Now on your Linux machine, syncronise your Music library with rsync.
|
||||||
rsync -av -e "ssh -p 8022" ~/Music <username>@<ip_address>:/data/data/com.termux/files/home/storage/music
|
rsync -av -e "ssh -p 8022" ~/Music <username>@<ip_address>:/data/data/com.termux/files/home/storage/music
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Refreshing the Android MediaStore
|
||||||
|
Android uses a Database to store files. In order to play your music, this database
|
||||||
|
needs to be refreshed. This can be achieved by a reboot or by using adb to manually
|
||||||
|
refresh it.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo dnf install adb
|
||||||
|
```
|
||||||
|
|
||||||
|
Connect the Android device via USB and see if it is listed.
|
||||||
|
```sh
|
||||||
|
adb devices
|
||||||
|
```
|
||||||
|
|
||||||
|
If it is, restart adb in TCP mode with port 5555
|
||||||
|
```sh
|
||||||
|
adb tcpip 5555
|
||||||
|
```
|
||||||
|
|
||||||
|
Connect to the device using its <ip_address>.
|
||||||
|
```sh
|
||||||
|
adb connect <ip_address>
|
||||||
|
```
|
||||||
|
|
||||||
|
Refresh MediaStore.
|
||||||
|
```sh
|
||||||
|
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN -d file:///data/data/com.termux/files/home/storage/music/
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
---
|
|
||||||
title: nevereverever.de
|
|
||||||
link: https://nevereverever.de/eh/eh/eh/eh-eh
|
|
||||||
subtitle: Here I post random stuff.
|
|
||||||
author: Never
|
|
||||||
date: 2026-03-10
|
|
||||||
id: nevereverever.de
|
|
||||||
---
|
|
||||||
13
src/index.md
|
|
@ -1,15 +1,4 @@
|
||||||
---
|
---
|
||||||
title: Home
|
title: Home
|
||||||
---
|
---
|
||||||
|
Hello World
|
||||||
Hello! I am Never and this is my little place on the internet where I post the
|
|
||||||
stuff that I am currently nerding out about.
|
|
||||||
|
|
||||||
This Website itself is one of those projects, that I like to tweak and tinker
|
|
||||||
with. Maybe I'll write an article about its build system. It is also viewable
|
|
||||||
via `curl`. Just run
|
|
||||||
```sh
|
|
||||||
curl nevereverever.de
|
|
||||||
```
|
|
||||||
|
|
||||||
There also is an Atom Feed to stay updated about my doings.
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 26 KiB |
214
styles/style.css
|
|
@ -1,173 +1,114 @@
|
||||||
:root {
|
:root {
|
||||||
--foreground: #586e75;
|
--foreground: #1a1a1a;
|
||||||
--background: #fdf6e3;
|
--background: #fdfdfdf0;
|
||||||
--html-border: #eee8d5;
|
--border: #c9c9c9;
|
||||||
--html-background: #268bd2;
|
--html-background: #e3e3e3;
|
||||||
--body-background: linear-gradient(to bottom, #2aa198, #268bd2);
|
--blockquote-text: #606060;
|
||||||
--blockquote-text: #657b83;
|
--blockquote-border: #e6e6e6;
|
||||||
--blockquote-border: #eee8d5;
|
--button-border: #e3e3e3;
|
||||||
--button-primary: #fdf6e3;
|
--button-background: #d0d0d0;
|
||||||
--button-secondary: #eee8d5;
|
|
||||||
--code-color: #657b83;
|
|
||||||
--code-background: #fdf6e3;
|
|
||||||
--code-line-number-color: #93a1a1;
|
|
||||||
--code-line-number-background: #eee8d5;
|
|
||||||
--code-comment-color: #93a1a1;
|
|
||||||
--code-keyword-color: #586e75;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
:root {
|
:root {
|
||||||
--foreground: #93a1a1;
|
--foreground: #fdfdfd;
|
||||||
--background: #002b36;
|
--background: #1a1a1af0;
|
||||||
--html-border: #073642;
|
--border: #4c4c4c;
|
||||||
--html-background: #6c71c4;
|
--html-background: #303030;
|
||||||
--body-background: linear-gradient(to bottom, #268bd2, #6c71c4);
|
--blockquote-text: #e6e6e6;
|
||||||
--blockquote-text: #839496;
|
--blockquote-border: #606060;
|
||||||
--blockquote-border: #073642;
|
--button-border: #4c4c4c;
|
||||||
--button-primary: #073642;
|
--button-background: #404040;
|
||||||
--button-secondary: #002b36;
|
|
||||||
--code-color: #839496;
|
|
||||||
--code-background: #002b36;
|
|
||||||
--code-line-number-color: #586e75;
|
|
||||||
--code-line-number-background: #073642;
|
|
||||||
--code-comment-color: #586e75;
|
|
||||||
--code-keyword-color: #93a1a1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pre.numberSource code > span > a:first-child::before {
|
|
||||||
background-color: var(--code-line-number-background);
|
|
||||||
color: var(--code-line-number-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
pre.numberSource {
|
|
||||||
margin-left: 3em;
|
|
||||||
border-left: none;
|
|
||||||
padding-left: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen {
|
|
||||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: none; }
|
|
||||||
}
|
|
||||||
|
|
||||||
div.sourceCode {
|
|
||||||
color: var(--code-color);
|
|
||||||
background-color: var(--code-background);
|
|
||||||
line-height: 80%;
|
|
||||||
}
|
|
||||||
|
|
||||||
code span.co { color: var(--code-comment-color); font-style: italic; } /* Comment */
|
|
||||||
code span.do { color: var(--code-comment-color); font-style: italic; } /* Documentation */
|
|
||||||
code span.kw { color: var(--code-keyword-color); font-weight: bold; } /* Keyword */
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
|
/*background: url("recursion.gif");*/
|
||||||
background: var(--html-background);
|
background: var(--html-background);
|
||||||
|
background-repeat: repeat-y;
|
||||||
|
background-size: cover;
|
||||||
font-family: serif;
|
font-family: serif;
|
||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
background-color: var(--background);
|
||||||
background: var(--body-background);
|
border: solid 1px var(--border);
|
||||||
}
|
|
||||||
|
|
||||||
main {
|
|
||||||
max-width: 48em;
|
|
||||||
|
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
max-width: 48em;
|
||||||
padding-left: 50pt;
|
padding-left: 50pt;
|
||||||
padding-right: 50pt;
|
padding-right: 50pt;
|
||||||
padding-top: 50pt;
|
padding-top: 50pt;
|
||||||
padding-bottom: 50pt;
|
padding-bottom: 50pt;
|
||||||
|
|
||||||
hyphens: auto;
|
hyphens: auto;
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
font-kerning: normal;
|
font-kerning: normal;
|
||||||
|
|
||||||
background-color: var(--background);
|
|
||||||
border-left: solid 3pt var(--html-border);
|
|
||||||
border-right: solid 3pt var(--html-border);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#shork {
|
#tv-screen {
|
||||||
position: absolute;
|
position: fixed;
|
||||||
z-index: 1;
|
top: 0;
|
||||||
left: -36px;
|
left: 0;
|
||||||
top: -32px;
|
z-index: -1;
|
||||||
width: 64px;
|
|
||||||
transform-origin: 50% 50%;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-header {
|
#page-header {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
max-width: 60em;
|
text-align: left;
|
||||||
|
border: 4pt ridge var(--border);
|
||||||
margin: 0 auto;
|
|
||||||
padding: 4pt;
|
|
||||||
|
|
||||||
background: url("images/shark-top-small.png");
|
background: url("images/shark-top-small.png");
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
border: solid 3pt var(--html-border);
|
}
|
||||||
|
|
||||||
|
#page-header li {
|
||||||
|
list-style: none;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-header a:active {
|
||||||
|
border: 2pt inset var(--button-border)
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-header a {
|
#page-header a {
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
padding: 4pt;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
margin: 4pt;
|
||||||
|
padding: 4pt;
|
||||||
|
border: 2pt outset var(--button-border);
|
||||||
|
background-color: var(--button-background)
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-header-button {
|
#page-header ul,
|
||||||
background: linear-gradient(to bottom, var(--button-primary) 0%, var(--button-secondary) 100%);
|
|
||||||
border: 1pt solid var(--blockquote-border);
|
|
||||||
border-radius: 4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-header-button:active {
|
|
||||||
background: linear-gradient(to bottom, var(--button-secondary) 0%, var(--button-primary) 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.rss-button {
|
|
||||||
color: #fdf6e3 !important;
|
|
||||||
background: linear-gradient(to bottom, #fb9d3a 0%, #d95c29 100%);
|
|
||||||
border: 1pt solid #f2994f;
|
|
||||||
border-radius: 4pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rss-button:active {
|
|
||||||
background: linear-gradient(to bottom, #d95c29 0%, #fb9d3a 100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
#articles ul {
|
#articles ul {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#articles li {
|
#articles li {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-header {
|
.articles-header {
|
||||||
margin: 8pt 0 4pt 0;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.articles-footer {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-top: 4pt;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-title {
|
.articles-title {
|
||||||
|
margin: 8pt 0 4pt 0;
|
||||||
font-size: 14pt;
|
font-size: 14pt;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-author {
|
.articles-author {
|
||||||
font-style: italic;
|
margin: 12pt 0 4pt 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-summary {
|
.articles-summary {
|
||||||
|
|
@ -175,29 +116,42 @@ main {
|
||||||
}
|
}
|
||||||
|
|
||||||
.articles-date {
|
.articles-date {
|
||||||
|
margin: 0;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-footer {
|
#page-footer {
|
||||||
display: flex;
|
border: 4pt ridge var(--border);
|
||||||
justify-content: center;
|
|
||||||
max-width: 60em;
|
|
||||||
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 4pt;
|
|
||||||
|
|
||||||
background: url("images/shark-top-small.png");
|
background: url("images/shark-top-small.png");
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
border: solid 3pt var(--html-border);
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#page-footer nav {
|
#page-footer p {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
#TOC {
|
||||||
|
padding: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
section {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
padding: 12px;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
@media (max-width: 600px) {
|
||||||
main {
|
body {
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
padding: 12pt;
|
padding: 12pt;
|
||||||
}
|
}
|
||||||
|
|
@ -232,14 +186,6 @@ main {
|
||||||
page-break-after: avoid;
|
page-break-after: avoid;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
#page {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#page-header,
|
#page-header,
|
||||||
#page-footer {
|
#page-footer {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
@ -338,20 +284,8 @@ hr {
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
figure {
|
|
||||||
margin: 1em 0;
|
|
||||||
width: 100%;
|
|
||||||
overflow-x: auto;
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
margin-top: 0.75em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
table {
|
||||||
margin: 1em auto;
|
margin: 1em 0;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
|
|
||||||