natenom-website-dump-2024-0.../natenom.de/2022/03/dokuwiki-in-statische-website-umwandeln/index.html
2024-02-01 17:43:06 +01:00

140 lines
No EOL
54 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><html class=position-relative itemscope itemtype=https://schema.org/WebPage lang=de data-bs-theme=auto data-palette=blue><head><script src=/assets/init/bundle.min.a63b05c8004831f165aca508cfe52bdc3b3c568ce762c0e22f82b1fe1ed14173.js integrity="sha256-pjsFyABIMfFlrKUIz+Ur3Ds8VoznYsDiL4Kx/h7RQXM=" crossorigin=anonymous></script><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>DokuWiki in statische Website umwandeln - Natenoms Blog</title>
<link rel=icon href=/favicon_hudc94279ded70d7b83fccc56e43bdd2fa_24074_16x16_resize_catmullrom_3.png sizes=16x16 type=image/png><link rel=icon href=/favicon_hudc94279ded70d7b83fccc56e43bdd2fa_24074_32x32_resize_catmullrom_3.png sizes=32x32 type=image/png><link rel=icon href=/favicon_hudc94279ded70d7b83fccc56e43bdd2fa_24074_150x150_resize_catmullrom_3.png sizes=150x150 type=image/png><link rel=apple-touch-icon href=/favicon_hudc94279ded70d7b83fccc56e43bdd2fa_24074_180x180_resize_catmullrom_3.png sizes=180x180 type=image/png><link rel=icon href=/favicon_hudc94279ded70d7b83fccc56e43bdd2fa_24074_192x192_resize_catmullrom_3.png sizes=192x192 type=image/png><link rel=mask-icon href=/safari-pinned-tab.svg color=#6f42c1><meta name=keywords content="Verkehrswende,Fahrrad,CriticalMass,OpenBikeSensor,SimRa,Mumble,Open Source,Minimalismus,OpenStreetMap,Müllsammeln,Fotografie,Malen,Zeichnen"><meta name=description content="Eine Dokumentation zur Konvertierung meines 12 Jahre lang gerne genutzten DokuWiki hin zu einer Website mit rein statischen Inhalten, die kein PHP mehr benötigen und den Betrieb meines Wikis als reines Archiv ermöglichen."><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://natenom.de/2022/03/dokuwiki-in-statische-website-umwandeln/cover.png"><meta name=twitter:title content="DokuWiki in statische Website umwandeln"><meta name=twitter:description content="Eine Dokumentation zur Konvertierung meines 12 Jahre lang gerne genutzten DokuWiki hin zu einer Website mit rein statischen Inhalten, die kein PHP mehr benötigen und den Betrieb meines Wikis als reines Archiv ermöglichen."><meta property="og:title" content="DokuWiki in statische Website umwandeln"><meta property="og:description" content="Eine Dokumentation zur Konvertierung meines 12 Jahre lang gerne genutzten DokuWiki hin zu einer Website mit rein statischen Inhalten, die kein PHP mehr benötigen und den Betrieb meines Wikis als reines Archiv ermöglichen."><meta property="og:type" content="article"><meta property="og:url" content="https://natenom.de/2022/03/dokuwiki-in-statische-website-umwandeln/"><meta property="og:image" content="https://natenom.de/2022/03/dokuwiki-in-statische-website-umwandeln/cover.png"><meta property="article:section" content="posts"><meta property="article:published_time" content="2022-03-25T17:08:49+01:00"><meta property="article:modified_time" content="2022-03-25T17:08:49+01:00"><meta itemprop=name content="DokuWiki in statische Website umwandeln"><meta itemprop=description content="Eine Dokumentation zur Konvertierung meines 12 Jahre lang gerne genutzten DokuWiki hin zu einer Website mit rein statischen Inhalten, die kein PHP mehr benötigen und den Betrieb meines Wikis als reines Archiv ermöglichen."><meta itemprop=datePublished content="2022-03-25T17:08:49+01:00"><meta itemprop=dateModified content="2022-03-25T17:08:49+01:00"><meta itemprop=wordCount content="1387"><meta itemprop=image content="https://natenom.de/2022/03/dokuwiki-in-statische-website-umwandeln/cover.png"><meta itemprop=keywords content="DokuWiki,Web,PHP,Datenbanken,MySQL,"><meta property="og:image:alt" content="DokuWiki in statische Website umwandeln"><meta name=twitter:image:alt content="DokuWiki in statische Website umwandeln"><link data-precache rel=stylesheet href="/assets/main/bundle.min.b189232e48c49a02f23e6616502e93a36137102626fd47589f55ab6447b15b4d.css" integrity="sha256-sYkjLkjEmgLyPmYWUC6To2E3ECYm/UdYn1WrZEexW00=" crossorigin=anonymous></head><body><header class="mb-4 sticky-top"><nav class="top-app-bar shadow navbar navbar-expand-xxl"><div class=container><a class="navbar-brand d-flex align-items-center flex-grow-1 flex-xxl-grow-0 justify-content-xxl-start ms-2 ms-xxl-0 mx-auto me-xxl-2" href=https://natenom.de/><picture><img class=logo alt=Logo src=https://natenom.de/images/logo.svg loading=lazy>
</picture>Natenoms Blog</a><div class="offcanvas-xxl offcanvas-end flex-grow-1" data-bs-scroll=true tabindex=-1 id=navbarMenus aria-labelledby=navbarMenusLabel><div class="offcanvas-header px-4 pb-0"><div class="offcanvas-title h5" id=navbarMenusLabel>Natenoms Blog</div><button type=button class="btn-close btn-close-white" data-bs-dismiss=offcanvas data-bs-target=#navbarMenus aria-label=Close></button></div><div class="offcanvas-body p-4 pt-0 p-xxl-0"><hr class=d-xxl-none><ul class="navbar-nav flex-row flex-wrap align-items-center me-auto"><li class="nav-item col-6 col-xxl-auto"><a class="nav-link py-2 px-0 px-xxl-2" href=https://natenom.de/><i class="fas fa-home me-1"></i></a></li><li class="nav-item col-6 col-xxl-auto"><a class="nav-link py-2 px-0 px-xxl-2" href=https://natenom.de/ueber/>Über</a></li><li class="nav-item col-6 col-xxl-auto"><a class="nav-link py-2 px-0 px-xxl-2" href=https://wiki.natenom.de/ target=_blank rel="noopener noreferrer">Wiki</a></li><li class="nav-item col-6 col-xxl-auto"><a class="nav-link py-2 px-0 px-xxl-2" href=https://natenom.de/blogroll/>Blogroll</a></li><li class="nav-item col-6 col-xxl-auto"><a class="nav-link py-2 px-0 px-xxl-2" href=https://kagube.de/ target=_blank rel="noopener noreferrer">Blog vom kleinen 🐘</a></li></ul><hr class=d-xxl-none><form class="search-bar ms-auto my-auto" action=/search/ novalidate><div class="input-group align-items-center"><span class="btn btn-search disabled position-absolute left-0 border-0 px-1"><i class="fas fa-fw fa-search fa-lg"></i>
</span><input class="my-1 form-control border-white rounded-5 search-input bg-body" name=q type=search placeholder=Suchen aria-label=Search required>
<span class="search-shortcut position-absolute end-0 top-0 me-2"><kbd class="text-dark bg-white opacity-75 rounded-3 shadow border border-primary py-1 fw-bold">/</kbd></span></div></form><hr class=d-xxl-none><ul class="navbar-nav flex-row flex-wrap align-items-center ms-md-auto"><li class="nav-item py-2 py-xxl-1 col-12 col-xxl-auto"><nav class="social-links nav justify-content-center flex-row"><a class="nav-link social-link col-6 col-xxl-auto p-1" target=_blank href=https://digitalcourage.social/@natenom title=Mastodon rel=me><i class="fa-fw fab fa-mastodon"></i>
<span class="ms-1 d-xxl-none">Mastodon</span>
</a><a class="nav-link social-link col-6 col-xxl-auto p-1" target=_blank href=/index.xml title=RSS rel=me><i class="fas fa-fw fa-rss"></i>
<span class="ms-1 d-xxl-none">RSS</span></a></nav></li><li class="nav-item py-2 py-xxl-1 col-12 col-xxl-auto"><div class="vr d-none d-xxl-flex h-100 mx-xxl-2 text-white"></div><hr class="d-xxl-none my-2"></li><li class="nav-item dropdown col-6 col-xxl-auto"><a class="nav-link px-0 py-2 px-xxl-1" href=# id=fontSizeDropdown role=button data-bs-toggle=dropdown aria-expanded=false><i class="fas fa-fw fa-font"></i>
<span class=d-xxl-none>Schriftgröße</span></a><ul class="font-size-dropdown-menu dropdown-menu dropdown-menu-end" aria-labelledby=fontSizeDropdown><li><button class="font-size-item dropdown-item" data-size=xs>
Extra klein</button></li><li><button class="font-size-item dropdown-item" data-size=sm>
Klein</button></li><li><button class="font-size-item dropdown-item active" data-size=md>
Mittel</button></li><li><button class="font-size-item dropdown-item" data-size=lg>
Groß</button></li><li><button class="font-size-item dropdown-item" data-size=xl>
Extra groß</button></li></ul></li><li class="nav-item dropdown col-6 col-xxl-auto"><a class="nav-link px-0 py-2 px-xxl-1" href=# id=paletteDropdown role=button data-bs-toggle=dropdown aria-expanded=false><i class="fas fa-fw fa-palette"></i>
<span class=d-xxl-none>Palette</span></a><ul class="palette-dropdown-menu dropdown-menu dropdown-menu-end px-2 row g-2" aria-labelledby=paletteDropdown><li class="col-4 my-1"><a role=button id=palette-blue aria-label=Blau class="btn btn-sm w-100 palette text-bg-blue" data-palette=blue></a></li><li class="col-4 my-1"><a role=button id=palette-blue-gray aria-label=Blaugrau class="btn btn-sm w-100 palette text-bg-blue-gray" data-palette=blue-gray></a></li><li class="col-4 my-1"><a role=button id=palette-brown aria-label=Braun class="btn btn-sm w-100 palette text-bg-brown" data-palette=brown></a></li><li class="col-4 my-1"><a role=button id=palette-cyan aria-label=Cyan class="btn btn-sm w-100 palette text-bg-cyan" data-palette=cyan></a></li><li class="col-4 my-1"><a role=button id=palette-green aria-label=Grün class="btn btn-sm w-100 palette text-bg-green" data-palette=green></a></li><li class="col-4 my-1"><a role=button id=palette-indigo aria-label=Indigo class="btn btn-sm w-100 palette text-bg-indigo" data-palette=indigo></a></li><li class="col-4 my-1"><a role=button id=palette-orange aria-label=Orange class="btn btn-sm w-100 palette text-bg-orange" data-palette=orange></a></li><li class="col-4 my-1"><a role=button id=palette-pink aria-label=Rosa class="btn btn-sm w-100 palette text-bg-pink" data-palette=pink></a></li><li class="col-4 my-1"><a role=button id=palette-purple aria-label=Purpur class="btn btn-sm w-100 palette text-bg-purple" data-palette=purple></a></li><li class="col-4 my-1"><a role=button id=palette-red aria-label=Rot class="btn btn-sm w-100 palette text-bg-red" data-palette=red></a></li><li class="col-4 my-1"><a role=button id=palette-teal aria-label=Teal class="btn btn-sm w-100 palette text-bg-teal" data-palette=teal></a></li><li class="col-4 my-1"><a role=button id=palette-yellow aria-label=Gelb class="btn btn-sm w-100 palette text-bg-yellow" data-palette=yellow></a></li></ul></li><li class="nav-item dropdown col-6 col-xxl-auto"><a class="nav-link px-0 py-2 px-xxl-1" href=# id=modeDropdown role=button data-bs-toggle=dropdown aria-expanded=false><i class="mode-icon fas fa-fw fa-adjust" id=modeIcon></i>
<span class=d-xxl-none>Modus</span></a><ul class="mode-dropdown-menu dropdown-menu dropdown-menu-end" aria-labelledby=modeDropdown><li class=mode-item data-color-mode=light data-icon=sun><button class=dropdown-item>
<i class="mode-icon fas fa-fw fa-sun"></i> Hell</button></li><li class=mode-item data-color-mode=dark data-icon=moon><button class=dropdown-item>
<i class="mode-icon fas fa-fw fa-moon"></i> Dunkel</button></li><li class="mode-item active" data-color-mode=auto data-icon=adjust><button class=dropdown-item>
<i class="mode-icon fas fa-fw fa-adjust"></i> Auto</button></li></ul></li></ul></div></div><div class=d-flex><button class="navbar-toggler order-5 border-0" type=button data-bs-toggle=offcanvas data-bs-target=#navbarMenus aria-controls=navbarMenus aria-expanded=false aria-label="Toggle navigation">
<i class="fas fa-ellipsis-h"></i></button></div></div></nav></header><main class=container><div class="row content"><noscript><div class="alert alert-danger" role=alert>Dein Browser unterstützt kein JavaScript.</div></noscript><div class=col-xxl-8><div class=container><nav class="row card component" aria-label=breadcrumb><div class="card-body pb-0"><ol class="hbs-breadcrumb breadcrumb flex-nowrap"><li class="breadcrumb-item text-surface"><a href=/>Blog</a></li><li class="breadcrumb-item text-surface"><a href=/posts/>Posts</a></li><li class="breadcrumb-item active">DokuWiki in statische Website umwandeln</li></ol></div></nav><div class="post-panel-wrapper position-relative d-flex justify-content-center"><div class="d-flex flex-row justify-content-center rounded-5 border post-panel position-fixed px-3 py-1 surface shadow-1"><a class="action action-toc d-none d-xxl-block" href=#postTOC role=button title=Inhaltsverzeichnis><i class="fas fa-fw fa-list-alt"></i>
</a><a class="action action-toc d-block d-xxl-none" href=#post-toc-container role=button title=Inhaltsverzeichnis><i class="fas fa-fw fa-list-alt"></i>
</a><a class="action action-post-comments" href=#post-comments role=button aria-label=Comments title=Kommentare><i class="fas fa-fw fa-comments"></i>
</a><a id=sidebarToggler class="action action-sidebar-toggler d-none d-xxl-block" role=button title><i class="fas fa-fw fa-expand-alt" data-fa-transform=rotate-45></i></a></div></div><article class="row card component mb-4 post"><div class=card-header><h1 class="card-title post-title my-2">DokuWiki in statische Website umwandeln</h1></div><div class=card-body><div class="post-meta mb-3"><span class="post-date me-1 mb-1" title="Erstellt am 2022-03-25 17:08:49 +0100 CET.">Freitag, 25. März 2022</span><span class="post-reading-time me-1 mb-1">7 Min. Lesezeit</span><a href=/categories/web/ class="btn btn-sm btn-secondary mb-1 me-2 py-0 pe-1 post-taxonomy post-taxonomy-sm post-category">
<i class="fas fa-fw fa-folder me-1"></i>Web</a><a href=/tags/datenbanken/ class="btn btn-sm btn-secondary mb-1 me-2 py-0 pe-1 post-taxonomy post-taxonomy-sm post-tag">Datenbanken</a><a href=/tags/dokuwiki/ class="btn btn-sm btn-secondary mb-1 me-2 py-0 pe-1 post-taxonomy post-taxonomy-sm post-tag">DokuWiki</a><a href=/tags/mysql/ class="btn btn-sm btn-secondary mb-1 me-2 py-0 pe-1 post-taxonomy post-taxonomy-sm post-tag">MySQL</a><a href=/tags/php/ class="btn btn-sm btn-secondary mb-1 me-2 py-0 pe-1 post-taxonomy post-taxonomy-sm post-tag">PHP</a><a href=/tags/web/ class="btn btn-sm btn-secondary mb-1 me-2 py-0 pe-1 post-taxonomy post-taxonomy-sm post-tag">Web</a></div><p class="lead mb-3 text-body-emphasis">Eine Dokumentation zur Konvertierung meines 12 Jahre lang gerne genutzten DokuWiki hin zu einer Website mit rein statischen Inhalten, die kein PHP mehr benötigen und den Betrieb meines Wikis als reines Archiv ermöglichen.</p><div id=postTOC class=toc-details><details open><summary>Inhaltsverzeichnis</summary><nav id=TableOfContents><ul><li><a href=#ziel-eines-archivierten-wikis>Ziel eines archivierten Wikis</a></li><li><a href=#vorbereitungen-am-wiki-vor-dem-herunterladen-mit-wget>Vorbereitungen am Wiki vor dem Herunterladen mit wget</a><ul><li><a href=#deaktivierte-aktionen-von-dokuwiki>Deaktivierte &lsquo;Aktionen&rsquo; von DokuWiki</a></li></ul></li><li><a href=#indexmenü-ohne-javascript>Indexmenü ohne Javascript</a><ul><li><a href=#weitere-änderungen>Weitere Änderungen</a></li></ul></li><li><a href=#es-geht-los--wiki-mit-wget-herunterladen>Es geht los Wiki mit wget herunterladen</a><ul><li><a href=#wieso-weshalb-warum>Wieso, weshalb, warum</a></li></ul></li><li><a href=#dokuwiki-durch-statische-website-ersetzen>DokuWiki durch statische Website ersetzen</a></li><li><a href=#nacharbeiten-in-der-konfiguration-des-webservers>Nacharbeiten in der Konfiguration des Webservers</a><ul><li><a href=#mime-types-wegen-cache-anhang-in-dateinamen>Mime Types wegen &lsquo;Cache&rsquo;-Anhang in Dateinamen</a></li><li><a href=#jetzt-zusätzlich-auch-auch-html-am-ende-achten>Jetzt zusätzlich Auch auch .html am Ende achten</a></li><li><a href=#weiterleitungen-mit-html-auch-am-ziel-beachten>Weiterleitungen mit .html auch am Ziel beachten</a></li></ul></li><li><a href=#aufräumarbeiten>Aufräumarbeiten</a></li></ul></nav></details></div><div class="post-content mb-3" data-bs-spy=scroll data-bs-target=#TableOfContents tabindex=0><div id=post-content-body><p>Nach circa 12 Jahren habe ich mein gern genutztes DokuWiki auf <a href=https://wikiarchiv.natenom.de/>wikiarchiv.natenom.de</a> in den Ruhestand geschickt. Bereits zuvor hatte ich fast alle Themenbereiche in mein neues Wiki auf <a href=https://wiki.natenom.de/>wiki.natenom.de</a> verschoben.</p><p>Ziel war es, nur noch Webseiten zu haben, die statisch sind. D. h. sie werden nicht mehr auf einem Server mit PHP dynamisch erstellt sondern Zuhause einmalig vorgebaut, hochgeladen und dann bekommt jeder Benutzer immer die selben Dateien.</p><p>Dadurch benötigt man weder eine Scriptsprache auf dem Server noch eine Datenank (was DokuWiki aber auch so nicht benötigt, da es mit Text-Dateien statt einer Datenbank arbeitet).</p><p>Hier beschreibe ich alle notwendigen Schritte, um aus einem aktuellen DokuWiki eine statische Website zu erstellen, die man dann sorglos auf jeden Webspace werfen kann.</p><p>Das Werkzeug meiner Wahl ist <code>wget</code>, mit dem man ganze Websites oder Teile davon herunterladen kann. Dieses habe ich schon in der Vergangenheit genutzt, um mein altes <a href=https://natenom.de/2017/10/wie-man-ein-dynamisches-mediawiki-in-eine-statische-webseite-nur-html-dateien-umwandeln-kann/>MediaWiki in den Ruhestand zu schicken</a>.</p><h2 id=ziel-eines-archivierten-wikis data-numberify>Ziel eines archivierten Wikis<a class="anchor ms-1" href=#ziel-eines-archivierten-wikis></a></h2><p>Ich wollte den aktuellen Zustand des Wikis komplett mit allen Themenbereichen in einem Paket haben. Auch mit den Themenbereichen, die bereits im neuen Wiki enthalten sind. Damit die Informationen nicht doppelt vorhanden sind, sollten Weiterleitungen eingerichtet werden, sodass man beim &ldquo;Öffnen/Anklicken&rdquo; solcher Themenbereiche automatisch im neuen Wiki landet.</p><p>Das hat unter anderem den Hintergrund, dass man sehr einfach noch an die umgezogenen Themenbereiche dran kommt. Hätte ich sie im Wiki gelöscht, wären sie auch nicht mehr in der Sidebar links zu sehen.</p><p>Zudem besteht so die Möglichkeit, dass man das komplette archivierte Wiki weitergeben kann oder lokal zur Verfügung stellen. Als Archiv halt.</p><h2 id=vorbereitungen-am-wiki-vor-dem-herunterladen-mit-wget data-numberify>Vorbereitungen am Wiki vor dem Herunterladen mit wget<a class="anchor ms-1" href=#vorbereitungen-am-wiki-vor-dem-herunterladen-mit-wget></a></h2><p>Damit später im archivierten Wiki möglichst selten 404-Fehlermeldungn erscheinen, habe ich alles deatkviert, was man nicht benötigt und/oder was ohne PHP nicht mehr funktionieren würde.</p><h3 id=deaktivierte-aktionen-von-dokuwiki data-numberify>Deaktivierte &lsquo;Aktionen&rsquo; von DokuWiki<a class="anchor ms-1" href=#deaktivierte-aktionen-von-dokuwiki></a></h3><p>In der Konfiguration von DokuWiki ist es möglich, bestimmte <a class=urlextern href=http://www.dokuwiki.org/config:disableactions>Aktionen</a> zu deaktivieren. Einige davon waren bereits zuvor deaktiviert, ich habe dann noch alle anderen deaktiviert:</p><ul><li>Übersicht</li><li>&ldquo;Letzte Änderungen&rdquo;</li><li>&ldquo;Links hierher&rdquo;</li><li>&ldquo;Benutzerprofil&rdquo;</li><li>&ldquo;Suche&rdquo;, da sie PHP benötigt.</li><li>&ldquo;Setze neues Passwort&rdquo;.</li><li>&ldquo;Diese Seite bearbeiten&rdquo;</li><li>Medien-Manager Bei &ldquo;Andere Aktionen (durch Komma getrennt)&rdquo; <code>media</code> eingeben. Beim Aufruf von <code>/start?do=media&amp;ns=</code> erscheint die Fehlermeldung <code>Action disabled: media</code>. Das hätte ich schon vor Jahren machen können, hätte ich es gewusst. Denn das war ein Bereich, der dauernd von Bots abgefragt wurde.</li></ul><p></p><figure class=image-caption><a href=/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions.png><picture><source type=image/webp srcset="/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions_hu1f78d8c8ed8ee2ef5020f56f1760ff51_37339_360x0_resize_q95_h2_catmullrom_3.webp 360w,/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions_hu1f78d8c8ed8ee2ef5020f56f1760ff51_37339_500x0_resize_q95_h2_catmullrom_3.webp 500w,/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions_hu1f78d8c8ed8ee2ef5020f56f1760ff51_37339_816x0_resize_q95_h2_catmullrom_3.webp 816w" sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"><img alt srcset="/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions_hu1f78d8c8ed8ee2ef5020f56f1760ff51_37339_360x0_resize_q95_h2_catmullrom_3.webp 360w, /2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions_hu1f78d8c8ed8ee2ef5020f56f1760ff51_37339_500x0_resize_q95_h2_catmullrom_3.webp 500w, /2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions_hu1f78d8c8ed8ee2ef5020f56f1760ff51_37339_816x0_resize_q95_h2_catmullrom_3.webp 816w" sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" src=/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-dokuwiki-disabled-actions_hu1f78d8c8ed8ee2ef5020f56f1760ff51_37339_816x0_resize_q95_h2_catmullrom_3.webp title="Disabled actions in DokuWiki" loading=lazy width=816 height=152></picture></a><figcaption>Disabled actions in DokuWiki</figcaption></figure><p></p><h2 id=indexmenü-ohne-javascript data-numberify>Indexmenü ohne Javascript<a class="anchor ms-1" href=#indexmenü-ohne-javascript></a></h2><p>Ich habe das Indexmenu für die Sidebar (links) (Seitenname <code>/wiki/sidebar</code>) auf <code>nojs</code> umgestellt, damit kein JavaScript verwendet wird. Aus <code>{{indexmenu>..#1|js#indextheme navbar tsort nsort notoc noscroll nocookie}}</code> wird <code>{{indexmenu>..#1|nojs#indextheme navbar tsort nsort notoc}}</code>. Die Dokumentation dazu <a class=urlextern href=https://www.dokuwiki.org/plugin:indexmenu#full_syntax>gibt es hier</a>.</p><p>Die Liste der obersten Ebenen reicht in der Sidebar völlig aus, denn in jedem Namensraum ist am Ender der Startseite schon ein Indexmenü eingefügt, sodass man auf alle Seiten dort zugreifen kann. Zudem wird die Sidebar geöffnet dargestellt, sobald man sich auf einer Seite in einem der Unterbereiche befindet.</p><div class="shortcode-notice hinweis"><div class="shortcode-notice-title hinweis">Hinweis</div><div class=notice-content>Ich habe getestet, wie es aussieht, wenn ich zumindest den kompletten Seitenbaum für die Bereiche Mumble und Minecraft immer geöffnet lasse. Dann ist das Wiki auf mobilien Geräten nicht mehr zu gebrauchen, da die Liste aller Seiten extrem lang ist. Schon meine Mumble-Dokumentation besteht aus ca. 330 Seiten.</div></div><h3 id=weitere-änderungen data-numberify>Weitere Änderungen<a class="anchor ms-1" href=#weitere-änderungen></a></h3><ul><li>DokuWiki-eigene Topbar-Seite gelöscht.</li><li>Translation Plugin deaktiviert, da es sonst Links gibt auf z. B. <code>start?id=linux/pulseaudio</code>. Das wäre dann komplizierter geworden mit den ganzen Weiterleitungen (siehe unten) und es sind nur ein paar wenige Seiten in englischer Sprache in meinem Wiki (die ich später ins neue verschieben werde).</li><li>Alle Benutzer außer Admin gelöscht</li><li>Die Seite <code>/wiki/syntax</code> gelöscht. Die ist in jedem DokuWiki &ldquo;vorinstalliert&rdquo;.</li><li>Namensraum <code>en</code> (English) aus dem Indexmenu ausgeschlossen.</li><li>Startseite angepasst mit der Information, dass das Wiki archiviert wurde und nun statisch ist.</li></ul><h2 id=es-geht-los--wiki-mit-wget-herunterladen data-numberify>Es geht los Wiki mit wget herunterladen<a class="anchor ms-1" href=#es-geht-los--wiki-mit-wget-herunterladen></a></h2><p>Während des Herunterladens habe ich <a href=/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/#weiterleitungen>sämtliche Weiterleitungen auf das neue Wiki</a> temporär deaktiviert. Denn ich wollte das gesamte alte Wiki haben und nicht schon teiweise das neue.</p><p>Der Aufruf von wget zum Herunterladen des Wikis:</p><pre><code>wget --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=unix --no-parent --reject-regex 'do=' --domains wiki.natenom.de https://wiki.natenom.de
</code></pre><div class="shortcode-notice update"><div class="shortcode-notice-title update">Update</div><div class=notice-content><p>Wenn es Probleme gibt und eine Meldung in der Form <code>no follow attribute found</code>, dann benötigt man zusätzlich noch diesen Parameter:</p><pre><code>-erobots=off
</code></pre></div></div><p>Ich habe das direkt auf dem Server ausgeführt, auf dem das Wiki läuft. Es hat circa 2 Minuten gedauert.</p><p>Die Befehlszeile habe ich von <a class=urlextern href=https://gist.github.com/thomaspoignant/7cbae830acefb923e9d3fd373420f2f5>hier</a> und die war <a class=urlextern href="https://www.tiktaktux.de/doku.php?id=linux:dokuwiki_mit_wget_export">hier</a> verlinkt.</p><p>Zusätzlich habe ich noch die Sitemap heruntergeladen, die mit oberem Befehl nicht heruntergeladen wird:</p><pre><code>wget https://wiki.natenom.de/sitemap.xml.gz
</code></pre><h3 id=wieso-weshalb-warum data-numberify>Wieso, weshalb, warum<a class="anchor ms-1" href=#wieso-weshalb-warum></a></h3><ul><li>Man könnte <code>--reject-regex</code> noch erweitern mit <code>'do=|feed.php'</code>. Ich möchte aber alle Feeds behalten, denn so kann man sehen, wenn man diese abonniert hat, dass es im Wiki nicht weiter geht. Und Programme und Suchmaschinen mögen es generell nicht, wenn Dateien plötzlich verschwinden. Dann lieber lassen und nichts neues eintragen.</li><li>Dass URLs mit dem Parameter <code>?do=</code> gefiltert werden, ist sinnvoll, weil man sonst zu jeder html-Datei noch einige weitere <code>abc.html?do=def</code> erhält. Z. B. für die Anmeldung, den Medien-Manager und einiges mehr. Hier der Unterschied zwischen einem Download mit wget mit <code>--reject-regex 'do='</code> (links) und ohne (rechts):</p><figure class=image-caption><picture><source type=png srcset=/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-midnight-commander-je-nach-parameter.png><img alt src=/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-22-screenshot-midnight-commander-je-nach-parameter.png title="Links mit do= und rechts ohne" width=726 height=592 loading=lazy></picture><figcaption>Links mit do= und rechts ohne</figcaption></figure><p></li></ul><h2 id=dokuwiki-durch-statische-website-ersetzen data-numberify>DokuWiki durch statische Website ersetzen<a class="anchor ms-1" href=#dokuwiki-durch-statische-website-ersetzen></a></h2><p>Dann war der Zeitpunkt gekommen, das noch laufende DokuWiki durch das heruntergeladene archivierte Wiki zu ersetzen.</p><p>Das eine fliegt aus dem Webserver-Verzeichnis raus, das andere kommt rein. Dazu habe ich dann noch die zuvor heruntergeladene Sitemap hineinkopiert.</p><p>Backups sind immer wichtig, falls man doch noch mal an irgendwelche Dinge dran müsste.</p><h2 id=nacharbeiten-in-der-konfiguration-des-webservers data-numberify>Nacharbeiten in der Konfiguration des Webservers<a class="anchor ms-1" href=#nacharbeiten-in-der-konfiguration-des-webservers></a></h2><p>Die Konfiguration des Webservers kann man nach dem Umzug deutlich vereinfachen, da nur noch das ausgeliefert wird, was auf dem Server liegt, ohne von PHP verarbeitet werden zu müssen. Darauf gehe ich hier nicht ein sondern werde nur ein paar Dinge nennen, die man ändern muss.</p><h3 id=mime-types-wegen-cache-anhang-in-dateinamen data-numberify>Mime Types wegen &lsquo;Cache&rsquo;-Anhang in Dateinamen<a class="anchor ms-1" href=#mime-types-wegen-cache-anhang-in-dateinamen></a></h3><p>Da ein Dokuwiki einen Cachingmechanismus hat, werden einie Dateien, z. B. Bilder, je nach Art der Einbindung, mit <code>?cache=</code> am Ende referenziert und beim Herunterladen entsprechend von wget benannt. Z. B. wird aus <code>/url/zu/bild.jpg</code> <code>/url/zu/bild.jpg?cache=</code>.</p><p>Klickt man auf eine solch referenzierte Datei, dann bietet der Webserver diese zum Download an, statt sie im Browser anzuzeigen. Das liegt daran, dass der Webserver nichts mit dieser &ldquo;Dateiendung&rdquo; anfangen kann.</p><p>Deshalb muss man dem Webserver mitteilen, was sich hinter diesen Endungen verbirgt. Das geht mit der folgenden Konfiguration: <sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup></p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-nginx data-lang=nginx><span style=display:flex><span> <span style=color:#66d9ef>location</span> ~ <span style=color:#e6db74>\.jpg\?cache=</span> {
</span></span><span style=display:flex><span> <span style=color:#f92672>types</span> { }
</span></span><span style=display:flex><span> <span style=color:#f92672>default_type</span> <span style=color:#e6db74>image/jpeg</span>;
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span> <span style=color:#66d9ef>location</span> ~ <span style=color:#e6db74>\.png\?cache=</span> {
</span></span><span style=display:flex><span> <span style=color:#f92672>types</span> { }
</span></span><span style=display:flex><span> <span style=color:#f92672>default_type</span> <span style=color:#e6db74>image/png</span>;
</span></span><span style=display:flex><span> }</span></span></code></pre></div><h3 id=jetzt-zusätzlich-auch-auch-html-am-ende-achten data-numberify>Jetzt zusätzlich Auch auch .html am Ende achten<a class="anchor ms-1" href=#jetzt-zusätzlich-auch-auch-html-am-ende-achten></a></h3><p>Die mit wget heruntergeladenen Dateien haben alle eine .html-Dateierweiterung bekommen. D. h. aus der vorherigen URL <code>/android/</code> wurde <code>/android.html</code>.</p><p>Damit aber z. B. Links von extern noch richtig funkionieren, die ja auf <code>/android/</code> verweisen, muss der Webserver angewiesen werden nicht nur auf <code>/android/</code> zu prüfen, sondern auch auf <code>/android.html</code> und dann das Gefundene nutzen. Daher muss das in die config für das alte Wiki (wiki.natenom.de) das hier hinein:<div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-nginx data-lang=nginx><span style=display:flex><span> <span style=color:#66d9ef>location</span> <span style=color:#e6db74>/</span> <span style=color:#e6db74>...</span>
</span></span><span style=display:flex><span> <span style=color:#e6db74>try_files</span> $uri $uri.html $uri/ =<span style=color:#ae81ff>404</span>;</span></span></code></pre></div></p><p>Der Webserver prüft also auf <code>android</code>, <code>android.html</code> und <code>/android/</code> und gibt erst 404 zurück, wenn nichts davon gefunden wird.</p><h3 id=weiterleitungen-mit-html-auch-am-ziel-beachten data-numberify>Weiterleitungen mit .html auch am Ziel beachten<a class="anchor ms-1" href=#weiterleitungen-mit-html-auch-am-ziel-beachten></a></h3><p>Da viele Inhalte meines alten Wikis schon in meinem neuen Wiki (wiki.natenom.com) enhalten sind und ensprechend verlinkt werden, musste ich auch dort noch die Konfiguration des Webservers anpassen.</p><p>Ich leite nach folgendem Muster von meinem alten Wiki ins neue Wiki weiter:</p><p><code>rewrite ^/android(.*)$ https://wiki.natenom.de/docs/android$1 redirect;</code></p><p>Das bedeutet, dass z. B. ein weitergeleitetes <code>https://wiki.natenom.de/android</code> im neuen Wiki <code>wiki.natenom.com/</code> sowohl in der Form <code>/android</code> als auch in der Form <code>/android.html</code> ankommen kann. Damit letztere Form im neuen Wiki keine 404 verursacht, kann man den Webserver anweisen, die Dateiendung immer zu entfernen:</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-nginx data-lang=nginx><span style=display:flex><span> <span style=color:#66d9ef>location</span> <span style=color:#e6db74>/</span> {
</span></span><span style=display:flex><span> <span style=color:#f92672>if</span> <span style=color:#e6db74>(</span>$request_uri ~ <span style=color:#e6db74>^/(.*)\.html)</span> {
</span></span><span style=display:flex><span> <span style=color:#f92672>return</span> <span style=color:#ae81ff>302</span> <span style=color:#e6db74>/</span>$1;
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span> }</span></span></code></pre></div><p>Somit landen alle Formen der Weiterleitung am richtigen Ziel:</p><ul><li><code>/android</code> -> <code>wiki.natenom.com/android</code></li><li><code>/android.html -> wiki.natenom.com/android</code>.</li></ul><h2 id=aufräumarbeiten data-numberify>Aufräumarbeiten<a class="anchor ms-1" href=#aufräumarbeiten></a></h2><p>Dafür habe ich in den letzten Wochen und Monaten immer wieder sehr viel Arbeit investiert. Und nun war es endich soweit. Alle meine Webseiten waren statisch und so konnte ich (nachdem ich schon vor Monaten MySQL deinstallieren konnte, weil der Blog statisch wurde) endlich auch PHP von meinem Server deinstallieren:</p><pre><code>systemctl stop php7.3-fpm
systemctl disable php7.3-fpm
apt remove --purge php*
php php-common php-fpm php-gd php-imagick php-mbstring php-sqlite3 php-xml php-zip php7.3 php7.3-cli php7.3-common php7.3-curl php7.3-fpm php7.3-gd php7.3-json php7.3-mbstring php7.3-opcache php7.3-readline php7.3-sqlite3 php7.3-xml php7.3-zip
</code></pre><p>Fertig 🙂</p><p>Hier das Ergebnis: Mein archiviertes Wiki, das jetzt auf <a href=https://wikiarchiv.natenom.de/>wiki.natenom.de</a> liegt.</p><p></p><figure class=image-caption><a href=/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de.png><picture><source type=image/webp srcset="/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de_huce9b66e96165192ba69208117d9383a6_243439_360x0_resize_q95_h2_catmullrom_3.webp 360w,/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de_huce9b66e96165192ba69208117d9383a6_243439_500x0_resize_q95_h2_catmullrom_3.webp 500w,/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de_huce9b66e96165192ba69208117d9383a6_243439_816x0_resize_q95_h2_catmullrom_3.webp 816w" sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px"><img alt srcset="/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de_huce9b66e96165192ba69208117d9383a6_243439_360x0_resize_q95_h2_catmullrom_3.webp 360w, /2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de_huce9b66e96165192ba69208117d9383a6_243439_500x0_resize_q95_h2_catmullrom_3.webp 500w, /2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de_huce9b66e96165192ba69208117d9383a6_243439_816x0_resize_q95_h2_catmullrom_3.webp 816w" sizes="(max-width: 424px) 360px, (max-width: 596px) 500px, (min-width: 565px) 816px" src=/2022/03/dokuwiki-in-statische-website-umwandeln/images/2022-03-25-screenshot-archiviertes-wiki.natenom.de_huce9b66e96165192ba69208117d9383a6_243439_816x0_resize_q95_h2_catmullrom_3.webp title loading=lazy width=816 height=634></picture></a><figcaption></figcaption></figure><p></p><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p>Für weitere Dateitypen beliebig erweiterbar.&#160;<a href=#fnref:1 class=footnote-backref role=doc-backlink>&#8617;&#xfe0e;</a></p></li></ol></div></div></div></div><div class=card-footer><div class="post-navs d-flex justify-content-evenly"><div class="post-nav post-prev"><i class="fas fa-fw fa-chevron-down post-prev-icon me-1" data-fa-transform=rotate-90></i>
<a href=/2022/03/python-script-fuer-die-arbeit-mit-hugo/>Ein Python-Script für die Arbeit mit Hugo (Update 2024-01-09)</a></div><div class="post-nav post-next"><a href=/2022/03/critical-mass-pforzheim-maerz-2022/>Critical Mass Pforzheim im März 2022</a>
<i class="fas fa-fw fa-chevron-down post-next-icon ms-1" data-fa-transform=rotate-270></i></div></div></div></article><section class="related-posts row card component"><div class=card-header><h2 class="card-title fs-4 my-2 text-surface">Ähnliche Beiträge</h2></div><div class=card-body><ul class="post-list list-styled"><li><a href=https://natenom.de/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-2/>Umzug von WordPress zu Hugo Teil 2 Bestandsaufnahme und Korrekturen</a></li><li><a href=https://natenom.de/2022/02/umzug-des-blogs-von-wordpress-zu-hugo-teil-1/>Umzug von WordPress zu Hugo Teil 1 Von den Gründen bis zum ersten funktionierenden Blog</a></li><li><a href=https://natenom.de/2022/03/umzug-dokuwiki-hugo-4-einrichtung-fertig/>Umzug von DokuWiki nach Hugo Teil 4 Einrichten und fertig</a></li><li><a href=https://natenom.de/2022/03/umzug-dokuwiki-hugo-3-einrichtung/>Umzug von DokuWiki nach Hugo Teil 3 Einrichtung des neuen Wikis</a></li><li><a href=https://natenom.de/2022/03/umzug-dokuwiki-hugo-2-pandoc/>Umzug von DokuWiki nach Hugo Teil 2 Export mit Pandoc</a></li><li><a href=https://natenom.de/2022/03/umzug-dokuwiki-hugo-1-vorarbeiten/>Umzug von DokuWiki nach Hugo Teil 1 Vorarbeiten</a></li><li><a href=https://natenom.de/2022/03/tools-export-dokuwiki-nach-markdown-hugo/>Tools zum Export von DokuWiki nach Markdown (Hugo)</a></li><li><a href=https://natenom.de/2022/02/linkdump-2-2022/>Linkdump 2/2022</a></li><li><a href=https://natenom.de/2021/05/datenbank-von-wordpress-auch-mal-aufraeumen/>Datenbank von WordPress auch mal aufräumen</a></li><li><a href=https://natenom.de/2020/10/wieder-ein-paar-schoene-neuerungen-fuer-meine-webseiten-dank-vrifox/>Wieder ein paar schöne Neuerungen für meine Webseiten dank Vrifox</a></li></ul></div></section><div class="card component row post-comments" id=post-comments><div class=card-header><h2 class="card-title my-2 fs-4 text-surface">Kommentare</h2></div><div class=card-body><p>Bisher gibt es hier keine Kommentare.</p><p><details class="mastodon-comments email"><summary class="mastodon-comments email-summary">Kommentar oder Anmerkung für diesen Blogbeitrag</summary><div class="mastodon-comments emailcontent"><p>Öffentlicher Kommentar per E-Mail: <a href='mailto:natenom@posteo.de?subject=Kommentar zum Blogbeitrag: DokuWiki%20in%20statische%20Website%20umwandeln&body=Hallo Natenom, %0D%0A%0D%0Azu diesem Blogbeitrag habe ich einen Kommentar:%0D%0A%0D%0AMein Name (optional):%0D%0AMeine Website (optional):%0D%0AIch beziehe mich speziell auf den Kommentar mit der ID:%0D%0A%0D%0AURL zum Blogbeitrag: https%3a%2f%2fnatenom.de%2f2022%2f03%2fdokuwiki-in-statische-website-umwandeln%2f'>Hier klicken</a></p><p>Nicht öffentliche Anmerkung per E-Mail: <a href='mailto:natenom@posteo.de?subject=Persönliche Anmerkung zum Blogbeitrag: DokuWiki%20in%20statische%20Website%20umwandeln&body=Hallo Natenom,%0D%0A%0D%0Azu diesem Blogbeitrag habe ich eine persönliche, nicht zu veröffentlichende Anmerkung:%0D%0A%0D%0AURL zum Blogbeitrag: https%3a%2f%2fnatenom.de%2f2022%2f03%2fdokuwiki-in-statische-website-umwandeln%2f'>Hier klicken</a></p></p><p>Sonstige Kontaktaufnahme: <a href=/natenom/>Kontakt</a></p></div></details></p></div></div></div></div><aside class="col-xxl-4 sidebar d-flex"><div class="container d-flex flex-column"><div class="accordion profile"><div class="accordion-item card row text-center component"><div class="accordion-header card-header border-0" id=profile-header><a class="accordion-button d-lg-none mb-2 shadow-none p-0 bg-transparent text-surface collapsed" role=button data-bs-toggle=collapse href=#profile aria-expanded=false aria-controls=profile>Profil</a></div><div class="card-body collapse accordion-collapse accordion-body d-lg-block" id=profile aria-labelledby=profile-header><div class="col-12 d-flex align-items-center justify-content-center"><picture><img class="profile-avatar rounded-circle" alt=Natenom src=https://natenom.de/images/logo-natenom-circle-150x150.png loading=lazy data-viewer-invisible width=150 height=150></picture></div><div class="col-12 profile-meta"><div class="profile-name fw-fold fs-lg">Natenom</div><div class=profile-bio>Verkehrswende, Fahrrad, CriticalMass, OpenBikeSensor, SimRa, OpenSource, Minimalist, OpenStreetMap, Müllsammeln, Malen, Zeichnen</div><a class=profile-about target=_blank rel="noopener noreferrer" href=/natenom/><i class="fas fa-fw fa-user"></i>Über mich</a></div></div></div></div><div class="accordion recent-posts"><section class="row card component"><div class=card-header><h2 class="card-title my-2 fs-4 text-surface d-none d-lg-block">Neueste Beiträge</h2><a class="accordion-button d-lg-none mb-1 shadow-none p-0 bg-transparent collapsed" role=button data-bs-toggle=collapse href=#recent-posts aria-expanded=false aria-controls=recent-posts>Neueste Beiträge</a></div><div class="card-body collapse accordion-collapse accordion-body d-lg-block" id=recent-posts><ul class="post-list list-unstyled ms-1"><li class=mb-2><a href=/2024/01/mal-wieder-einen-personalausweis-gefunden/>Mal wieder einen Personalausweis gefunden</a></li><li class=mb-2><a href=/2024/01/ueberfordert-im-eigenen-auto/>Überfordert im eigenen Auto</a></li><li class=mb-2><a href=/2024/01/was-damals-bei-kugelmaeusen-geholfen-hat-hilft-auch-bei-solchen-mit-laser/>Was damals bei Kugelmäusen geholfen hat, hilft auch bei solchen mit Laser</a></li><li class=mb-2><a href=/2024/01/haltbarkeit-meiner-ersten-barfussschuhe/>Haltbarkeit meiner ersten Barfußschuhe</a></li><li class=mb-2><a href=/2024/01/link-strassenlaerm/>Link(s): Straßenlärm</a></li><li class=mb-2><a href=/2024/01/simpletools-apps-fuer-android-daten-sammeln-oder-bezahlen-wechsel-zum-fork-fossify/>SimpleTools Apps: Daten sammeln oder bezahlen Wechselt zum Fork Fossify</a></li><li class=mb-2><a href=/2024/01/dateinamen-mit-emojies-in-telescope-in-neovim/>Dateinamen mit Emojies in Telescope in NeoVim</a></li><li class=mb-2><a href=/2024/01/capslock-als-esc-verwenden--ein-traum-fuer-neovim/>Capslock als Esc verwenden Ein Traum für NeoVim</a></li></ul></div></section></div><div class="accordion categories-taxonomies"><section class="row card component"><div class=card-header><h2 class="card-title my-2 fs-4 text-surface d-none d-lg-block"><a href=https://natenom.de/categories>Kategorien</a></h2><a class="accordion-button d-lg-none mb-1 shadow-none p-0 bg-transparent text-surface collapsed" role=button data-bs-toggle=collapse href=#taxonomy-categories aria-expanded=false aria-controls=taxonomy-categories>Kategorien</a></div><div class="card-body collapse accordion-collapse accordion-body d-lg-block" id=taxonomy-categories><div class=py-2><a href=/categories/mobilit%C3%A4t/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Mobilität>Mobilität
<span class="badge badge-sm text-secondary bg-white ms-1">450</span>
</a><a href=/categories/fotografie/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Fotografie>Fotografie
<span class="badge badge-sm text-secondary bg-white ms-1">328</span>
</a><a href=/categories/diverses/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Diverses>Diverses
<span class="badge badge-sm text-secondary bg-white ms-1">242</span>
</a><a href=/categories/web/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Web>Web
<span class="badge badge-sm text-secondary bg-white ms-1">200</span>
</a><a href=/categories/linux/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Linux>Linux
<span class="badge badge-sm text-secondary bg-white ms-1">135</span>
</a><a href=/categories/android/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Android>Android
<span class="badge badge-sm text-secondary bg-white ms-1">68</span>
</a><a href=/categories/linkdump/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Linkdump>Linkdump
<span class="badge badge-sm text-secondary bg-white ms-1">42</span>
</a><a href=/categories/mumble/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Mumble>Mumble
<span class="badge badge-sm text-secondary bg-white ms-1">16</span>
</a><a href=/categories/navesima/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=NavesiMa>NavesiMa
<span class="badge badge-sm text-secondary bg-white ms-1">9</span>
</a><a href=/categories/links/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-category me-2 mb-2" title=Links>Links
<span class="badge badge-sm text-secondary bg-white ms-1">2</span></a></div></div></section></div><div class="accordion tags-taxonomies"><section class="row card component"><div class=card-header><h2 class="card-title my-2 fs-4 text-surface d-none d-lg-block"><a href=https://natenom.de/tags>Tags</a></h2><a class="accordion-button d-lg-none mb-1 shadow-none p-0 bg-transparent text-surface collapsed" role=button data-bs-toggle=collapse href=#taxonomy-tags aria-expanded=false aria-controls=taxonomy-tags>Tags</a></div><div class="card-body collapse accordion-collapse accordion-body d-lg-block" id=taxonomy-tags><div class=py-2><a href=/tags/fahrrad/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Fahrrad>Fahrrad
<span class="badge badge-sm text-secondary bg-white ms-1">557</span>
</a><a href=/tags/fotos/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Fotos>Fotos
<span class="badge badge-sm text-secondary bg-white ms-1">410</span>
</a><a href=/tags/mobilit%C3%A4t/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Mobilität>Mobilität
<span class="badge badge-sm text-secondary bg-white ms-1">380</span>
</a><a href=/tags/pforzheim/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Pforzheim>Pforzheim
<span class="badge badge-sm text-secondary bg-white ms-1">263</span>
</a><a href=/tags/open-source/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title="Open Source">Open Source
<span class="badge badge-sm text-secondary bg-white ms-1">237</span>
</a><a href=/tags/natur/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Natur>Natur
<span class="badge badge-sm text-secondary bg-white ms-1">208</span>
</a><a href=/tags/linux/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Linux>Linux
<span class="badge badge-sm text-secondary bg-white ms-1">161</span>
</a><a href=/tags/autos/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Autos>Autos
<span class="badge badge-sm text-secondary bg-white ms-1">131</span>
</a><a href=/tags/enzkreis/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Enzkreis>Enzkreis
<span class="badge badge-sm text-secondary bg-white ms-1">115</span>
</a><a href=/tags/statistiken/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Statistiken>Statistiken
<span class="badge badge-sm text-secondary bg-white ms-1">110</span>
</a><a href=/tags/hardware/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Hardware>Hardware
<span class="badge badge-sm text-secondary bg-white ms-1">107</span>
</a><a href=/tags/web/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Web>Web
<span class="badge badge-sm text-secondary bg-white ms-1">107</span>
</a><a href=/tags/android/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Android>Android
<span class="badge badge-sm text-secondary bg-white ms-1">98</span>
</a><a href=/tags/hugo/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Hugo>Hugo
<span class="badge badge-sm text-secondary bg-white ms-1">89</span>
</a><a href=/tags/m%C3%BCll/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Müll>Müll
<span class="badge badge-sm text-secondary bg-white ms-1">89</span>
</a><a href=/tags/sicherheit/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Sicherheit>Sicherheit
<span class="badge badge-sm text-secondary bg-white ms-1">88</span>
</a><a href=/tags/blog/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Blog>Blog
<span class="badge badge-sm text-secondary bg-white ms-1">87</span>
</a><a href=/tags/m%C3%BCllsammeln/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Müllsammeln>Müllsammeln
<span class="badge badge-sm text-secondary bg-white ms-1">86</span>
</a><a href=/tags/politik/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Politik>Politik
<span class="badge badge-sm text-secondary bg-white ms-1">86</span>
</a><a href=/tags/polizei/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Polizei>Polizei
<span class="badge badge-sm text-secondary bg-white ms-1">76</span>
</a><a href=/tags/strecke/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Strecke>Strecke
<span class="badge badge-sm text-secondary bg-white ms-1">75</span>
</a><a href=/tags/abstand/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Abstand>Abstand
<span class="badge badge-sm text-secondary bg-white ms-1">74</span>
</a><a href=/tags/landschaften/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Landschaften>Landschaften
<span class="badge badge-sm text-secondary bg-white ms-1">74</span>
</a><a href=/tags/w%C3%A4lder/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Wälder>Wälder
<span class="badge badge-sm text-secondary bg-white ms-1">68</span>
</a><a href=/tags/wordpress/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=WordPress>WordPress
<span class="badge badge-sm text-secondary bg-white ms-1">64</span>
</a><a href=/tags/neuhausen/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Neuhausen>Neuhausen
<span class="badge badge-sm text-secondary bg-white ms-1">60</span>
</a><a href=/tags/apps/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Apps>Apps
<span class="badge badge-sm text-secondary bg-white ms-1">59</span>
</a><a href=/tags/videos/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Videos>Videos
<span class="badge badge-sm text-secondary bg-white ms-1">59</span>
</a><a href=/tags/landstra%C3%9Fen/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Landstraßen>Landstraßen
<span class="badge badge-sm text-secondary bg-white ms-1">54</span>
</a><a href=/tags/makrofotos/ class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=Makrofotos>Makrofotos
<span class="badge badge-sm text-secondary bg-white ms-1">54</span>
</a><a href=https://natenom.de/tags class="btn btn-sm btn-secondary post-taxonomy ps-3 post-tag me-2 mb-2" title=ALLE>ALLE
<span class="badge badge-sm text-secondary bg-white ms-1">816</span></a></div></div></section></div><div class="accordion archives"><section class="row card component"><div class=card-header><h2 class="card-title my-2 fs-4 text-surface d-none d-lg-block"><a href=/archiv/>Archiv</a></h2><a class="accordion-button d-lg-none mb-1 shadow-none p-0 bg-transparent collapsed" role=button data-bs-toggle=collapse href=#archives aria-expanded=false aria-controls=archives>Archiv</a></div><div class="card-body collapse accordion-collapse accordion-body d-lg-block" id=archives><a href=/archiv/2024/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2024>2024 <span class="badge badge-sm text-secondary bg-white ms-1">23</span>
</a><a href=/archiv/2023/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2023>2023 <span class="badge badge-sm text-secondary bg-white ms-1">147</span>
</a><a href=/archiv/2022/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2022>2022 <span class="badge badge-sm text-secondary bg-white ms-1">188</span>
</a><a href=/archiv/2021/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2021>2021 <span class="badge badge-sm text-secondary bg-white ms-1">111</span>
</a><a href=/archiv/2020/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2020>2020 <span class="badge badge-sm text-secondary bg-white ms-1">193</span>
</a><a href=/archiv/2019/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2019>2019 <span class="badge badge-sm text-secondary bg-white ms-1">118</span>
</a><a href=/archiv/2018/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2018>2018 <span class="badge badge-sm text-secondary bg-white ms-1">143</span>
</a><a href=/archiv/2017/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2017>2017 <span class="badge badge-sm text-secondary bg-white ms-1">163</span>
</a><a href=/archiv/2016/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2016>2016 <span class="badge badge-sm text-secondary bg-white ms-1">108</span>
</a><a href=/archiv/2015/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2015>2015 <span class="badge badge-sm text-secondary bg-white ms-1">85</span>
</a><a href=/archiv/2014/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2014>2014 <span class="badge badge-sm text-secondary bg-white ms-1">85</span>
</a><a href=/archiv/2013/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2013>2013 <span class="badge badge-sm text-secondary bg-white ms-1">56</span>
</a><a href=/archiv/2012/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2012>2012 <span class="badge badge-sm text-secondary bg-white ms-1">43</span>
</a><a href=/archiv/2011/ class="btn btn-sm btn-secondary post-taxonomy ps-3 me-2 mb-2" title=2011>2011 <span class="badge badge-sm text-secondary bg-white ms-1">36</span></a></div></section></div></div></aside></div></main><footer class="footer mt-auto py-3 text-center container"><div class="row text-center"><div class="col-12 mt-2"><p class=mb-2>Natenoms Blog</p><p class="text-secondary mb-2"><small>Mein Blog über verschiedene Themen, die mich über die Zeit beschäftigen. Derzeit sind dies: Verkehrswende, Mobilität, Fahrrad, Minimalismus, Fotografie, Malen, Zeichnen …</small></p><div class="copyright mb-2 text-secondary"><small></small></div><div class="powered-by mb-2 text-secondary"><small>Build with ❤️ from the <a class=text-primary href=https://gohugo.io target=_blank rel="noopener noreferrer">Hugo</a> and the <a class=text-primary href=https://github.com/razonyang/hugo-theme-bootstrap target=_blank rel="noopener noreferrer">HBS</a> theme.</small></div><nav class="social-links nav justify-content-center mb-2 mt-3"><a class="nav-link social-link p-0 me-1 mb-2" target=_blank href=/index.xml title=RSS rel=me><i class="fas fa-fw fa-2x fa-rss" style=color:#ea6221></i></a></nav></div><div class="col-12 col-lg-8 offset-0 offset-lg-1"></div></div><div class=natenom-footer><a href=/ueber/impressum/>Impressum</a> <a href=/ueber/datenschutz/>Datenschutz</a></div></footer><script data-precache src=/assets/main/bundle.min.b0a436c85b86c431bb1c0fdb2ade0445de95435dc453dc7f4f30acad2153b535.js integrity="sha256-sKQ2yFuGxDG7HA/bKt4ERd6VQ13EU9x/TzCsrSFTtTU=" crossorigin=anonymous async></script><script data-precache src=/assets/icons/bundle.min.691458a56c2eef480bec8d31c967801a416b6445459ae901fe213e7870a0dd83.js integrity="sha256-aRRYpWwu70gL7I0xyWeAGkFrZEVFmukB/iE+eHCg3YM=" crossorigin=anonymous defer></script></body></html>