summaryrefslogtreecommitdiff
path: root/themes/PaperMod/layouts/shortcodes/blockquote.html
diff options
context:
space:
mode:
Diffstat (limited to 'themes/PaperMod/layouts/shortcodes/blockquote.html')
-rw-r--r--themes/PaperMod/layouts/shortcodes/blockquote.html72
1 files changed, 72 insertions, 0 deletions
diff --git a/themes/PaperMod/layouts/shortcodes/blockquote.html b/themes/PaperMod/layouts/shortcodes/blockquote.html
new file mode 100644
index 0000000..14bb107
--- /dev/null
+++ b/themes/PaperMod/layouts/shortcodes/blockquote.html
@@ -0,0 +1,72 @@
+
+<!-- Author: Parsia Hakimian https://github.com/parsiya/Hugo-Shortcodes -->
+<!-- port of Octopress blockquote plugin http://octopress.org/docs/plugins/blockquote/ to Hugo
+ see readme for usage -->
+
+<!-- reset scratch variables at the start -->
+{{ $.Scratch.Set "bl_author" false }}
+{{ $.Scratch.Set "bl_source" false }}
+{{ $.Scratch.Set "bl_link" false }}
+{{ $.Scratch.Set "bl_title" false }}
+
+{{ if .IsNamedParams }}
+ {{ $.Scratch.Set "bl_author" (.Get "author") }}
+ {{ $.Scratch.Set "bl_source" (.Get "source") }}
+ {{ $.Scratch.Set "bl_link" (.Get "link") }}
+ {{ $.Scratch.Set "bl_title" (.Get "title") }}
+{{ else }}
+ <!-- for the positional version if any -->
+{{ end }}
+
+<!-- if title is not set explicitly then we need to beautify the link
+ if length of link is more than 32 chars, we will cut it off by 32 and
+ then drop everything after the last / if any and put it in into title -->
+
+{{ with $.Scratch.Get "bl_title" }}
+ <!-- do nothing -->
+{{ else }}
+ {{ with $.Scratch.Get "bl_link" }} <!-- if link is given -->
+ {{ range last 1 (split ($.Scratch.Get "bl_link" ) "://") }} <!-- split by :// and then only take the items after it to remove protocol:// -->
+ {{ $.Scratch.Set "title_without_protocol" . }}
+ {{ end }}
+ {{ range last 1 (split ($.Scratch.Get "title_without_protocol" ) "www.") }} <!-- also remove the www. at the start if any. we are using a second split because all URLS may not start with it -->
+ {{ $.Scratch.Set "title_without_protocol" . }}
+ {{ end }}
+ {{ $.Scratch.Set "bl_title" ($.Scratch.Get "title_without_protocol") }}
+
+ <!-- if link is longer than 32 bytes we should trim it -->
+ {{ if (gt (len ($.Scratch.Get "title_without_protocol") ) 32) }}
+ {{ $title := (slicestr ($.Scratch.Get "title_without_protocol") 0 32) }} <!-- get the first 32 characters of title_without_protocol -->
+ {{ $split_by_fw_slash := split $title "/" }} <!-- now split on / because we want to stop after the last forward slash -->
+ {{ $count := (sub (len $split_by_fw_slash) 1) }} <!-- we want everything but the last part so we adjust the count accordingly -->
+
+ {{ $.Scratch.Set "tempstring" "" }} <!-- temp variable to hold the concatinated string -->
+ {{ range first $count $split_by_fw_slash }} <!-- loop through all parts except last and concat them (add / between halves) -->
+ {{ $.Scratch.Set "tempstring" ( . | printf "%s%s/" ($.Scratch.Get "tempstring") | printf "%s" ) }}
+ {{ end }}
+ {{ $.Scratch.Set "bl_title" ( printf "%s..." ($.Scratch.Get "tempstring") | printf "%s" ) }}
+ {{ end }}
+ {{ end }}
+{{ end }}
+
+<blockquote>
+ <p>{{ .Inner | markdownify }}</p>
+ <footer>
+ <strong>{{ with $.Scratch.Get "bl_author" }}{{ . }}{{ end }}</strong>
+ {{ with $.Scratch.Get "bl_source" }}
+ <cite>{{ . }}</cite>
+ {{ else }}
+ {{ with $.Scratch.Get "bl_link" }}
+ <cite>
+ <a href="{{ . }}" title="{{ . }}">{{ $.Scratch.Get "bl_title" }}</a> <!-- can't have new lines here -->
+ </cite>
+ {{ else }}
+ {{ with $.Scratch.Get "bl_title" }}
+ <cite>
+ {{ $.Scratch.Get "bl_title" }}</a>
+ </cite>
+ {{ end }}
+ {{ end }}
+ {{ end }}
+ </footer>
+</blockquote>