From 5486f711f7e7c255e97c37b9bc76d61f4744050b Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Thu, 30 Apr 2020 15:37:27 +0200 Subject: [PATCH] add include shortcode and doc --- exampleSite/content/shortcodes/includes.md | 51 ++++++++++++++++++++++ exampleSite/static/example.html | 13 ++++++ exampleSite/static/table.md | 5 +++ layouts/shortcodes/include.html | 8 ++++ 4 files changed, 77 insertions(+) create mode 100644 exampleSite/content/shortcodes/includes.md create mode 100644 exampleSite/static/example.html create mode 100644 exampleSite/static/table.md create mode 100644 layouts/shortcodes/include.html diff --git a/exampleSite/content/shortcodes/includes.md b/exampleSite/content/shortcodes/includes.md new file mode 100644 index 0000000..3940503 --- /dev/null +++ b/exampleSite/content/shortcodes/includes.md @@ -0,0 +1,51 @@ +Include Shortcode can include files of different types. By specifying a language, the included file will have syntax highlighting. + +## Shortcode + +```tpl +{{}} +``` + +Attributes: + +| Name | Usage | default | +|---|---|---| +| file | path to the included file relative to the hugo root | empty value | +| language* | language for [syntax highlighting](https://gohugo.io/content-management/syntax-highlighting/#list-of-chroma-highlighting-languages) | empty value | +| markdown | included file is markdown | false | +| options | highlighting [options](https://gohugo.io/content-management/syntax-highlighting/#highlight-shortcode) | linenos=table | + +\* if not set, the content will be rendered as plain html + +### Include *.yml file with options + +```tpl +{{}} +``` + +{{< include file="config.yaml" language="yaml" options="linenos=table,hl_lines=5-6,linenostart=100">}} + +### Include *.md file + +Included markdown files will be rendered using the `markdownify` filter. + +{{< hint warning >}} +**Location of markdown files**\ +If you include markdown files that should not get a menu entry, place them outside the content folder or exlude them otherwise. +{{< /hint >}} + +```tpl +{{}} +``` + +{{< include file="static/table.md" markdown="true" >}} + +### Include *.html file + +Html content will be filtered by the `safeHTML` filter and added to the rendered page output. + +```tpl +{{}} +``` + +{{< include file="static/example.html" >}} diff --git a/exampleSite/static/example.html b/exampleSite/static/example.html new file mode 100644 index 0000000..eee48b2 --- /dev/null +++ b/exampleSite/static/example.html @@ -0,0 +1,13 @@ + + + + +

This is heading 1

+

This is heading 2

+

This is heading 3

+

This is heading 4

+
This is heading 5
+
This is heading 6
+ + + \ No newline at end of file diff --git a/exampleSite/static/table.md b/exampleSite/static/table.md new file mode 100644 index 0000000..4bf79a3 --- /dev/null +++ b/exampleSite/static/table.md @@ -0,0 +1,5 @@ +#### Test Table + +| Head 1 | Head 2 | Head 3 | +|---|---|---| +| 1 | 2 | 3 | \ No newline at end of file diff --git a/layouts/shortcodes/include.html b/layouts/shortcodes/include.html new file mode 100644 index 0000000..2253198 --- /dev/null +++ b/layouts/shortcodes/include.html @@ -0,0 +1,8 @@ +{{$file := .Get "file"}} +{{- if eq (.Get "markdown") "true" -}} +{{- $file | readFile | markdownify -}} +{{- else if (.Get "language") -}} +{{- highlight ($file | readFile) (.Get "language") (default "linenos=table" (.Get "options")) -}} +{{- else -}} +{{ $file | readFile | safeHTML }} +{{- end -}} \ No newline at end of file