From f8c72825f05351ba6598c7d0eac74303fa30a14b Mon Sep 17 00:00:00 2001 From: mdn <1stdragon@gmail.com> Date: Sat, 7 Jan 2023 23:24:56 +0100 Subject: [PATCH] =?UTF-8?q?Shortcodes=20f=C3=BCr=20Tabelle=20und=20Downloa?= =?UTF-8?q?ds=20eingebaut=20sowie=20eigenen=20Typ=20f=C3=BCr=20feed=20geba?= =?UTF-8?q?ut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 51 +++++++++++++++++++++++-- archetypes/feed.md | 10 +++++ layouts/feed/rss.xml | 22 +++++++++++ layouts/index.html | 1 - layouts/partials/shortcodes/table.html | 14 +++++++ layouts/shortcodes/bootstrap-table.html | 6 +++ layouts/shortcodes/download-feed.html | 8 ++++ layouts/shortcodes/download.html | 12 ++++++ layouts/shortcodes/table.html | 17 +++++++++ 9 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 archetypes/feed.md create mode 100644 layouts/feed/rss.xml create mode 100644 layouts/partials/shortcodes/table.html create mode 100644 layouts/shortcodes/bootstrap-table.html create mode 100644 layouts/shortcodes/download-feed.html create mode 100644 layouts/shortcodes/download.html create mode 100644 layouts/shortcodes/table.html diff --git a/README.md b/README.md index c55e188..2a62e2a 100644 --- a/README.md +++ b/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": "", + "filename": "", + "comment": "", + "published": "" + } +} +``` + +> 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,10 +198,28 @@ 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) +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) ## Lizenz -Diese Thema ist unter der [LGPLv3 Lizenz ](https://gitea.marcodn.de/mdn/blogamore/src/branch/main/LICENSE) freigegeben. +Diese Thema ist unter der [LGPLv3 Lizenz](https://gitea.marcodn.de/mdn/blogamore/src/branch/main/LICENSE) freigegeben. diff --git a/archetypes/feed.md b/archetypes/feed.md new file mode 100644 index 0000000..1798571 --- /dev/null +++ b/archetypes/feed.md @@ -0,0 +1,10 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +description: "Descripe {{ title }}" +draft: true +slug: {{ replace .Name "_feed" "" }}/feed +type: feed +dataname: {{ .Name }} +outputs: +- rss +--- diff --git a/layouts/feed/rss.xml b/layouts/feed/rss.xml new file mode 100644 index 0000000..8224699 --- /dev/null +++ b/layouts/feed/rss.xml @@ -0,0 +1,22 @@ +{{ $baseDir := path.Dir .Page.File }} +{{- printf "" | safeHTML }} + + + {{ .Page.Params.title }} + {{ .Site.BaseURL }} + {{ .Page.Params.description }} + {{ .Site.LanguageCode }} + {{ with .Site.Author.email }}{{.}}{{end}} + {{ now.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + {{ range (index .Site.Data ( .Page.Params.dataname )) }} + + {{ .title }} + {{ .comment }} + {{ (path.Join $baseDir .filename) | absURL }} + {{ with $.Site.Author.email }}{{.}}{{end}} + + {{ (time .published).Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }} + + {{ end }} + + \ No newline at end of file diff --git a/layouts/index.html b/layouts/index.html index 6e5ad49..bae10a1 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -1,7 +1,6 @@ {{ define "main" }}

{{ .Site.Title }}

-
{{ .Site.Params.Description }}
diff --git a/layouts/partials/shortcodes/table.html b/layouts/partials/shortcodes/table.html new file mode 100644 index 0000000..3278b3c --- /dev/null +++ b/layouts/partials/shortcodes/table.html @@ -0,0 +1,14 @@ +{{ $htmlTable := .content }} + + +{{ $old_tbl := ""}} +{{ $new_tbl := printf "
" .table_class }} +{{ $htmlTable := replace $htmlTable $old_tbl $new_tbl }} + + +{{ $old_th := ""}} +{{ $new_th := printf "" .thead_class }} +{{ $htmlTable := replace $htmlTable $old_th $new_th }} + + +{{ $htmlTable | safeHTML }} \ No newline at end of file diff --git a/layouts/shortcodes/bootstrap-table.html b/layouts/shortcodes/bootstrap-table.html new file mode 100644 index 0000000..baeeb61 --- /dev/null +++ b/layouts/shortcodes/bootstrap-table.html @@ -0,0 +1,6 @@ + +{{ $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) -}} diff --git a/layouts/shortcodes/download-feed.html b/layouts/shortcodes/download-feed.html new file mode 100644 index 0000000..ab74640 --- /dev/null +++ b/layouts/shortcodes/download-feed.html @@ -0,0 +1,8 @@ +{{ $dataName := .Get "data" }} +{{ $baseDir := path.Dir .Page.File }} + + diff --git a/layouts/shortcodes/download.html b/layouts/shortcodes/download.html new file mode 100644 index 0000000..0621399 --- /dev/null +++ b/layouts/shortcodes/download.html @@ -0,0 +1,12 @@ +{{ $dataName := .Get "data" }} +{{ $baseDir := path.Dir .Page.File }} + + diff --git a/layouts/shortcodes/table.html b/layouts/shortcodes/table.html new file mode 100644 index 0000000..6356ecd --- /dev/null +++ b/layouts/shortcodes/table.html @@ -0,0 +1,17 @@ + +{{ $htmlTable := .Inner | markdownify }} +{{ $table_class := .Get "table_class" }} +{{ $thead_class := .Get "thead_class" }} + + +{{ $old_tbl := "
"}} +{{ $new_tbl := printf "
" $table_class }} +{{ $htmlTable := replace $htmlTable $old_tbl $new_tbl }} + + +{{ $old_th := ""}} +{{ $new_th := printf "" $thead_class }} +{{ $htmlTable := replace $htmlTable $old_th $new_th }} + + +{{ $htmlTable | safeHTML }} \ No newline at end of file