Achtung

Dieser Beitrag ist schon sehr alt, und die Infos hier sind sicherlich hoffnungslos veraltet…

Theme even anpassen

Blogdown
Autor:in

produnis

Veröffentlichungsdatum

13. April 2021

Mit dem Umstieg von Wordpress nach blogdown musste ich mein Theme anpassen. Ich verwende das Even-Theme (Link siehe Seitenende), was eigentlich schon recht brauchbar ist.

Meine Probleme bestanden darin, dass Syntaxhighlighting nicht funktionierte, und, dass die Posts nicht in Gänze auf der Startseite stehen, sondern nur die ersten Zeilen.

Syntaxhighlight

Für Syntaxhighlight musste ich folgenden Parameter in jeden meiner Blogposts setzen:

output:
  blogdown::html_page:
    highlight: kate

Das hat aber zur Folge, dass in den eben erwähnten “Zusammenfassungen” der Posts plötzlich der CSS-Code als Text angezeigt wird. Da ich aber eh diese Zusammenfassungen abschalten möchte, habe ich mich nicht weiter dran gestört. Dennoch muss ich hier nochmal ran, denn derzeit funktioniert das nur mit R- und LaTeX-Code. Mit HTML hat hab ich zB weiterhin Probleme (wie man am Code im nächsten Abschnitt sieht).

Post in Gänze anzeigen.

Um die Posts in ganzer Länge auf der Startseite anzuzeigen bin ich wie folgt vorgegangen:

Ich habe die Datei themes/hugo-theme-even/layouts/posts/summary.html nach themes/hugo-theme-even/layouts/posts/fulltext.html kopiert.

Dann habe ich in Zeile 22 von themes/hugo-theme-even/layouts/posts/fulltext.html die Stelle { .Summary } umgeändert in { .Content}.

Die Datei sieht also so aus:

<article class="post">
  <header class="post-header">
    <h1 class="post-title"><a class="post-link" href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
    <div class="post-meta">
      <span class="post-time"> {{ .Date.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }} </span>
      {{ with .Params.categories -}}
        <div class="post-category">
          {{ range . -}}
            <a href="{{ "categories" | relLangURL }}/{{ . | urlize }}/"> {{ . }} </a>
          {{ end -}}
        </div>
      {{- end }}
      {{- if .Site.Params.moreMeta }}
        <span class="more-meta"> {{ T "wordCount" .WordCount }} </span>
        <span class="more-meta"> {{ T "readingTime" .ReadingTime }} </span>
      {{- end }}
    </div>
  </header>
  <!-- Content -->
  <div class="post-content">
    <div class="post-summary">
      {{ .Content }}
    </div>
  </div>
</article>

Anschließend habe ich in der Datei themes/hugo-theme-even/layouts/index.html die Stelle mit { .Render "summary" } in Zeile 6 in { .Render "fulltext" } umgeändert.

So sieht die Datei danach aus:

{{- define "content" -}}
  <section id="posts" class="posts">
    {{/* (index .Site.Paginate) */}}
    {{- $paginator := .Paginate (where (where .Site.RegularPages "Type" "post") ".Params.hiddenfromhomepage" "!=" true) }}
    {{- range $paginator.Pages -}}
      {{ .Render "fulltext" }}
    {{ end -}}
  </section>
  <!-- pagination -->
  <nav class="pagination">
    {{ with $paginator.Prev -}}
      <a class="prev" href="{{ .URL }}">
        <i class="iconfont icon-left"></i>
        <span class="prev-text">{{ T "prevPage" }}</span>
      </a>
    {{- end }}
    {{ with $paginator.Next -}}
      <a class="next" href="{{ .URL }}">
        <span class="next-text">{{ T "nextPage" }}</span>
        <i class="iconfont icon-right"></i>
      </a>
    {{- end }}
  </nav>
{{- end -}}