<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://dxorsx.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://dxorsx.github.io/" rel="alternate" type="text/html" /><updated>2025-01-10T21:30:47+00:00</updated><id>https://dxorsx.github.io/feed.xml</id><title type="html">Blog n Doc</title><subtitle>Kleines Tech-Blog und Dokumentation der Homelab Eskapaden ...</subtitle><author><name>Tom</name></author><entry><title type="html">Jekyll und GitHub Pages als Blog einrichten</title><link href="https://dxorsx.github.io/blog/github/jekyll/Jekyll-und-GitHub-Pages-als-Blog/" rel="alternate" type="text/html" title="Jekyll und GitHub Pages als Blog einrichten" /><published>2025-01-03T08:00:06+00:00</published><updated>2025-01-03T08:00:06+00:00</updated><id>https://dxorsx.github.io/blog/github/jekyll/Jekyll-und-GitHub-Pages-als-Blog</id><content type="html" xml:base="https://dxorsx.github.io/blog/github/jekyll/Jekyll-und-GitHub-Pages-als-Blog/"><![CDATA[<p>GitHub bietet neben dem Code Repository auch die Möglichkeit Webseiten für seine Projekte zu hosten.</p>

<h1 id="head-101">Quintessenz</h1>
<p>Die Webseiten werden dabei aus dem GitHub Repository erstellt. Das GitHub Repo <a href="https://github.com/DXorSX/dxorsx.github.io">https://github.com/DXorSX/dxorsx.github.io</a> wird zur Webseite <a href="https://dxorsx.github.io/">https://dxorsx.github.io/</a></p>

<p>Der Schnellstart ist <a href="https://pages.github.com/">hier</a> perfekt erklärt.</p>
<blockquote>
  <p><strong>Achtung:</strong> Das Repo muss exakt so heißen wie die spätere GitHub.io Page!</p>
</blockquote>

<p>Nachfolgend die Einrichtung im Schnelldurchlauf nachdem ihr ein leeres GitHub Repository angelegt habt, Details siehe weiter <a href="#head-201">unten</a></p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">    <span class="c"># Repository lokal clonen</span>
    git clone https://github.com/dxorsx/dxorsx.github.io
    <span class="nb">cd </span>dxorsx.github.io
    <span class="c"># Jeykll initiieren</span>
    jekyll new <span class="nb">.</span>
    <span class="c"># Die geänderten Inhalte zurück in das Repository pushen</span>
    git add <span class="nt">--all</span>
    git commit <span class="nt">-m</span> <span class="s2">"Initial commit"</span>
    git push <span class="nt">-u</span> origin main
  </code></pre></figure>

<p>Nachdem die GitHub Action gelaufen ist finden sich die Inhalte auf <a href="https://dxorsx.github.io/">https://dxorsx.github.io/</a>.</p>

<blockquote>
  <p><strong>Hinweis:</strong> <code class="language-plaintext highlighter-rouge">dxorsx</code> ist mein GitHub Username. Wollt ihr das nachvollziehen müsst ihr <code class="language-plaintext highlighter-rouge">dxorsx</code> durch euren GitHub Username ersetzen.</p>
</blockquote>

<hr />

<h1 id="head-201">Jekyll als WebSite Generator</h1>
<p><a href="https://jekyllrb.com/">Jekyll</a> ist ein Ruby programmierter Parser der aus Plaintext Dateien eine statische Webseite baut.
Einmal konfiguriert und aufgesetzt könnt ihr Inhalte in simplen Text Dateien ablegen und Jekyll kümmert sich darum das alles hübsch formatiert, verlinkt und erreichbar ist.</p>

<p>Jekyll bietet sich für die Nutzung auf <a href="https://pages.github.io">GitHub Pages</a> weil es von den GitHub Action unterstützt wird.
Das heißt der Jekyll Parser wird in der GitHub Action ausgeführt. Trotz der guten <a href="https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll">Dokumentation</a> habe ich einige Iterationen gebraucht um ein für mich funktionierende Setup zu finden.</p>

<p>Nachfolgend die Schritte die ich durchgeführt habe, die jeweils aktuelles Konfiguration findet ihr in meine <a href="https://github.com/DXorSX/dxorsx.github.io">GitHub Repo</a>.</p>

<h2 id="head-202">Schritt 1: Erstellen einer lokalen Arbeitsumgebung</h2>
<p>Ich beschreibe das Vorgehen anhand einer Debian Linux Umgebung. Wenn ihr etwas anderes verwendet (Windows/macOS/FreeBSD etc.) schaut in die <a href="https://jekyllrb.com/docs/installation/">Jekyll Installationsanleitung</a>.</p>

<p>Installiere notwendige Pakete:</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">    <span class="nb">sudo </span>apt update
    <span class="nb">sudo </span>apt <span class="nb">install </span>ruby-full build-essential zlib1g-dev
  </code></pre></figure>

<p>Mit Ruby haben wir auch den Ruby Package Manager “gem” bekommen. Diesen konfigurieren wir:</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">    <span class="nb">echo</span> <span class="s1">'# Install Ruby Gems to ~/gems'</span> <span class="o">&gt;&gt;</span> ~/.bashrc
    <span class="nb">echo</span> <span class="s1">'export GEM_HOME="$HOME/gems"'</span> <span class="o">&gt;&gt;</span> ~/.bashrc
    <span class="nb">echo</span> <span class="s1">'export PATH="$HOME/gems/bin:$PATH"'</span> <span class="o">&gt;&gt;</span> ~/.bashrc
    <span class="nb">source</span> ~/.bashrc
  </code></pre></figure>

<p>und installieren anschließen Jekyll:</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">    gem <span class="nb">install </span>jekyll bundler
  </code></pre></figure>

<h2 id="head-203">Schritt 2: Gemfile anpassen</h2>
<p>Das <code class="language-plaintext highlighter-rouge">Gemfile</code> editieren und den Eintrag <code class="language-plaintext highlighter-rouge">gem "jekyll"</code> mit einem <code class="language-plaintext highlighter-rouge">#</code> auskommentieren und die Zeile <code class="language-plaintext highlighter-rouge">gem "github-pages"</code> ergänzen.
Da ich das Jekyll Template <a href="https://mmistakes.github.io/minimal-mistakes/">Minimal Mistakes</a> nutze kommen bei mir noch die Einträge <code class="language-plaintext highlighter-rouge">gem "minimal-mistakes-jekyll"</code> und <code class="language-plaintext highlighter-rouge">gem "jekyll-remote-theme"</code> hinzu.</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">    <span class="nb">source</span> <span class="s2">"https://rubygems.org"</span>
    <span class="c"># Hello! This is where you manage which Jekyll version is used to run.</span>
    <span class="c"># When you want to use a different version, change it below, save the</span>
    <span class="c"># file and run `bundle install`. Run Jekyll with `bundle exec`, like so:</span>
    <span class="c">#</span>
    <span class="c">#     bundle exec jekyll serve</span>
    <span class="c">#</span>
    <span class="c"># This will help ensure the proper Jekyll version is running.</span>
    <span class="c"># Happy Jekylling!</span>
    <span class="c"># gem "jekyll", "~&gt; 4.3.1"</span>
    gem <span class="s2">"github-pages"</span>
    <span class="c"># This is the default theme for new Jekyll sites. You may change this to anything you like.</span>
    <span class="c"># gem "minima", "~&gt; 2.5"</span>
    gem <span class="s2">"minimal-mistakes-jekyll"</span>
    gem <span class="s2">"jekyll-remote-theme"</span>
    <span class="c"># If you want to use GitHub Pages, remove the "gem "jekyll"" above and</span>
    <span class="c"># uncomment the line below. To upgrade, run `bundle update github-pages`.</span>
    <span class="c"># gem "github-pages", group: :jekyll_plugins</span>
    <span class="c"># If you have any plugins, put them here!</span>
    group :jekyll_plugins <span class="k">do
      </span>gem <span class="s2">"jekyll-feed"</span>, <span class="s2">"~&gt; 0.12"</span>
    end

    <span class="c"># Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem</span>
    <span class="c"># and associated library.</span>
    platforms :mingw, :x64_mingw, :mswin, :jruby <span class="k">do
      </span>gem <span class="s2">"tzinfo"</span>, <span class="s2">"&gt;= 1"</span>, <span class="s2">"&lt; 3"</span>
      gem <span class="s2">"tzinfo-data"</span>
    end

    <span class="c"># Performance-booster for watching directories on Windows</span>
    gem <span class="s2">"wdm"</span>, <span class="s2">"~&gt; 0.1.1"</span>, :platforms <span class="o">=&gt;</span> <span class="o">[</span>:mingw, :x64_mingw, :mswin]

    <span class="c"># Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem</span>
    <span class="c"># do not have a Java counterpart.</span>
    gem <span class="s2">"http_parser.rb"</span>, <span class="s2">"~&gt; 0.6.0"</span>, :platforms <span class="o">=&gt;</span> <span class="o">[</span>:jruby]
  </code></pre></figure>

<p>Die aktuelle Version meines Gemfiles findet ihr im <a href="https://github.com/DXorSX/dxorsx.github.io/blob/main/Gemfile">GitHub Repo</a>.</p>

<blockquote>
  <p>Wichtig: Nachdem ihr das Gemfile angepasst habt müsst ihr <code class="language-plaintext highlighter-rouge">bundle install</code> ausführen um alles zu aktualisieren.</p>
</blockquote>

<h2 id="head-203">Schritt 3: _config.yml anpassen</h2>
<p>Die _config.yml ist individuell und muss auch individuell angepasst werden.
Ein simple Version kann so aussehen:</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">    domain: my-site.github.io       <span class="c"># if you want to force HTTPS, specify the domain without the http at the start, e.g. example.com</span>
    url: https://my-site.github.io  <span class="c"># the base hostname and protocol for your site, e.g. http://example.com</span>
    baseurl: /REPOSITORY-NAME/      <span class="c"># place folder name if the site is served in a subfolder</span>
  </code></pre></figure>

<p>oder wenn ihr das <a href="https://mmistakes.github.io/minimal-mistakes/">Minimal Mistakes</a> Template nutzt auch viel größer <a href="https://github.com/DXorSX/dxorsx.github.io/blob/main/_config.yml">_config.yml</a></p>

<h2 id="head-204">Schritt 4: Lokal testen</h2>
<p>Nachdem ihr alles angepasst habt bleibt der erste Testlauf, dazu bringt Jekyll einen eigenen kleinen WebServer mit den wir mit</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">    bundle <span class="nb">exec </span>jekyll server
  </code></pre></figure>

<p>startet. Ihr könnt dann vom lokalen Rechner aus darauf zu greifen <a href="http://127.0.0.1:4000">http://127.0.0.1:4000</a> vergesst nicht den Prozess jedes Mal neu zu starten wenn ihr etwas verändert habt.</p>

<h2 id="head-205">Schritt 5: Auf GitHub veröffentlichen</h2>
<p>Wenn ihr nun die Inhalte auf GitHub veröffentlicht:</p>

<figure class="highlight"><pre><code class="language-shell" data-lang="shell">git add <span class="nt">--all</span>
git commit <span class="nt">-m</span> <span class="s2">"Initial commit"</span>
git push <span class="nt">-u</span> origin main</code></pre></figure>

<p>Könnt ihr in eurem GitHub Repository unter Actions den Status einsehen und falls etwas schiefgeht im Logfile nach Hinweisen suchen.</p>]]></content><author><name>Tom</name></author><category term="Blog" /><category term="GitHub" /><category term="Jekyll" /><summary type="html"><![CDATA[GitHub bietet neben dem Code Repository auch die Möglichkeit Webseiten für seine Projekte zu hosten.]]></summary></entry></feed>