Shortcodes für Tabelle und Downloads eingebaut sowie eigenen Typ für feed gebaut
This commit is contained in:
parent
23649f935f
commit
f8c72825f0
9 changed files with 137 additions and 4 deletions
47
README.md
47
README.md
|
@ -128,6 +128,33 @@ Hierbei ist bitte der Hauptordner, sowie der Jahresordner an die entsprechenden
|
|||
|
||||
> cooming soon...
|
||||
|
||||
### Beispiel für eigenen Feeds über Datenbestände
|
||||
|
||||
> cooming soon...
|
||||
|
||||
Für eine Produkt-Seite braucht ich noch zusätzlich einen Feed er aktuell vorhandenen Downloads. Hierfür hab ich eine zusätzliche Datei mit dem nachfolgenden Befehlt erzeugt:
|
||||
|
||||
```bash
|
||||
hugo new --kind feed produkte/meinProdukt_feed.md
|
||||
```
|
||||
|
||||
Hierdurch wird ein zusätzlicher unterordner "feed" erzeugt, in dem dann nur die index.xml liegt. Über den Parameter _dataname_ wird dann noch definiert aus welcher Datei im Daten-Verzeichnis die Informationen für den Feed kommen. Hierfür ist folgender Aufbau notwendig:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"title": "<der titel>",
|
||||
"filename": "<der dateiname, relativ zum Ordner der Seite>",
|
||||
"comment": "<der Kommentar hierzu>",
|
||||
"published": "<Datum der Freigabe>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> Damit dies nun auch richtig funktioniert, muss der Webserver auch so eingestellt sein, dass er index.xml-Dateien automatisch ausliefert, sonst muss immer explizit auf die index.xml-Datei referenziert werden.
|
||||
|
||||
Das gleiche Format wird vom Shortcode "download" verwendet werden. Mit diesem kann in einer Seite eine Download-Auflistung erzeugt werden. Als Parameter wird nur _data_ erwartet, welches den Dateinamen aus dem Datenverzeichnis beinhaltet. Siehe auch _dataname_ in den Parametern der Feed-Datei.
|
||||
|
||||
### Beispiel für einen Blogeintrag
|
||||
|
||||
```yaml
|
||||
|
@ -161,7 +188,7 @@ Zum erstellen der Datei mit der ein Term in der Taxonomy beschrieben werden kann
|
|||
hugo new tags/tag1/_index.md
|
||||
```
|
||||
|
||||
In der Datei kann nun die Beschreibung und der Titel angepasst werden. Sollte man eigene Taxonomies verwenden, wird geraten eine eigene Vorlage zu definieren. Diese ist unte archetypes zu definieren, der Name ist die Pluralform mit ".md" am Ende und es sollte folgenden Inhalt haben:
|
||||
In der Datei kann nun die Beschreibung und der Titel angepasst werden. Sollte man eigene Taxonomies verwenden, wird geraten eine eigene Vorlage zu definieren. Diese ist unter archetypes zu definieren, der Name ist die Pluralform mit ".md" am Ende und es sollte folgenden Inhalt haben:
|
||||
|
||||
```toml
|
||||
---
|
||||
|
@ -171,6 +198,24 @@ date: {{ now.Format "2006-01-02" }}
|
|||
---
|
||||
```
|
||||
|
||||
## Shortcodes
|
||||
|
||||
### Download
|
||||
|
||||
> comming soon...
|
||||
|
||||
### download-feed
|
||||
|
||||
> comming soon...
|
||||
|
||||
### bootstrap-table
|
||||
|
||||
> comming soon...
|
||||
|
||||
### table
|
||||
|
||||
> comming soon...
|
||||
|
||||
## Weiteres
|
||||
|
||||
Haben Sie einen Fehler gefunden oder eine Idee für ein neues Feature? Schicken Sie mir bitte eine Mail an ... Oder erstellen Sie direkt einen [Pull Request](https://gitea.marcodn.de/mdn/blogamore/pulls)
|
||||
|
|
10
archetypes/feed.md
Normal file
10
archetypes/feed.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
description: "Descripe {{ title }}"
|
||||
draft: true
|
||||
slug: {{ replace .Name "_feed" "" }}/feed
|
||||
type: feed
|
||||
dataname: {{ .Name }}
|
||||
outputs:
|
||||
- rss
|
||||
---
|
22
layouts/feed/rss.xml
Normal file
22
layouts/feed/rss.xml
Normal file
|
@ -0,0 +1,22 @@
|
|||
{{ $baseDir := path.Dir .Page.File }}
|
||||
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title>{{ .Page.Params.title }}</title>
|
||||
<link>{{ .Site.BaseURL }}</link>
|
||||
<description>{{ .Page.Params.description }}</description>
|
||||
<language>{{ .Site.LanguageCode }}</language>
|
||||
<copyright>{{ with .Site.Author.email }}{{.}}{{end}}</copyright>
|
||||
<pubDate>{{ now.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
{{ range (index .Site.Data ( .Page.Params.dataname )) }}
|
||||
<item>
|
||||
<title>{{ .title }}</title>
|
||||
<description>{{ .comment }}</description>
|
||||
<link>{{ (path.Join $baseDir .filename) | absURL }}</link>
|
||||
<author>{{ with $.Site.Author.email }}{{.}}{{end}}</author>
|
||||
<guid></guid>
|
||||
<pubDate>{{ (time .published).Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||
</item>
|
||||
{{ end }}
|
||||
</channel>
|
||||
</rss>
|
|
@ -1,7 +1,6 @@
|
|||
{{ define "main" }}
|
||||
<div id="home-jumbotron" class="jumbotron text-center bg-light">
|
||||
<h1 class="title">{{ .Site.Title }}</h1>
|
||||
|
||||
<div>
|
||||
{{ .Site.Params.Description }}
|
||||
</div>
|
||||
|
|
14
layouts/partials/shortcodes/table.html
Normal file
14
layouts/partials/shortcodes/table.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
{{ $htmlTable := .content }}
|
||||
|
||||
<!-- Tabellenklassen hinzufügen -->
|
||||
{{ $old_tbl := "<table>"}}
|
||||
{{ $new_tbl := printf "<table class=\"%s\">" .table_class }}
|
||||
{{ $htmlTable := replace $htmlTable $old_tbl $new_tbl }}
|
||||
|
||||
<!-- Tabellenkopf hinzufügen -->
|
||||
{{ $old_th := "<thead>"}}
|
||||
{{ $new_th := printf "<thead class=\"%s\">" .thead_class }}
|
||||
{{ $htmlTable := replace $htmlTable $old_th $new_th }}
|
||||
|
||||
<!-- Tabellen-HTML-Code -->
|
||||
{{ $htmlTable | safeHTML }}
|
6
layouts/shortcodes/bootstrap-table.html
Normal file
6
layouts/shortcodes/bootstrap-table.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
<!-- Ermittle Parameter -->
|
||||
{{ $htmlTable := .Inner | markdownify }}
|
||||
{{ $table_class := .Get "table_class" | default "table table-hover" }}
|
||||
{{ $thead_class := .Get "thead_class" | default "table-dark" }}
|
||||
|
||||
{{- partial "shortcodes/table" (dict "content" $htmlTable "table_class" $table_class "thead_class" $thead_class) -}}
|
8
layouts/shortcodes/download-feed.html
Normal file
8
layouts/shortcodes/download-feed.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{{ $dataName := .Get "data" }}
|
||||
{{ $baseDir := path.Dir .Page.File }}
|
||||
|
||||
<ul>
|
||||
{{ range (index .Site.Data (split $dataName "/")) }}
|
||||
<li><a href="{{ (path.Join $baseDir .filename) | absURL }}">{{ .title }}{{ with .filesize }} ({{ int (div (div . 1024) 1024) }} MB){{ end }}</a><br/>{{ .comment }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
12
layouts/shortcodes/download.html
Normal file
12
layouts/shortcodes/download.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
{{ $dataName := .Get "data" }}
|
||||
{{ $baseDir := path.Dir .Page.File }}
|
||||
|
||||
<ul>
|
||||
{{ range (index .Site.Data (split $dataName "/")) }}
|
||||
{{ $filename := (path.Join $baseDir .filename) }}
|
||||
{{ $file := os.Stat $filename }}
|
||||
{{ if $file }}
|
||||
<li><a href="{{ $filename | absURL }}">{{ .title }} ({{ div (div $file.Size 1024) 1024 }} MB)</a><br/>{{ .comment }}</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
17
layouts/shortcodes/table.html
Normal file
17
layouts/shortcodes/table.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<!-- Ermittle Parameter -->
|
||||
{{ $htmlTable := .Inner | markdownify }}
|
||||
{{ $table_class := .Get "table_class" }}
|
||||
{{ $thead_class := .Get "thead_class" }}
|
||||
|
||||
<!-- Tabellenklassen hinzufügen -->
|
||||
{{ $old_tbl := "<table>"}}
|
||||
{{ $new_tbl := printf "<table class=\"%s\">" $table_class }}
|
||||
{{ $htmlTable := replace $htmlTable $old_tbl $new_tbl }}
|
||||
|
||||
<!-- Tabellenkopf hinzufügen -->
|
||||
{{ $old_th := "<thead>"}}
|
||||
{{ $new_th := printf "<thead class=\"%s\">" $thead_class }}
|
||||
{{ $htmlTable := replace $htmlTable $old_th $new_th }}
|
||||
|
||||
<!-- Tabellen-HTML-Code -->
|
||||
{{ $htmlTable | safeHTML }}
|
Loading…
Reference in a new issue