{{- $Content := partial "utils/markdownify.html" (dict "$" . "raw" .Content "isContent" true) -}} {{- $enableTOC := .Params.toc | default .Site.Params.enableTOC -}} {{- if and $enableTOC .Site.Params.linkHeadingsToTOC -}} {{- $regexPatternLinkHeadings := `()(.+)?()` -}} {{- $regexReplacementLinkHeadings := `$1$3$4` -}} {{- $Content = $Content | replaceRE $regexPatternLinkHeadings $regexReplacementLinkHeadings -}} {{- end -}} {{- if .Params.anchor | default .Site.Params.enableHeadingsAnchor -}} {{- with .Site.Params.headingsOpt -}} {{- $headings := . -}} {{- $.Scratch.Set "headings" $headings -}} {{- end -}} {{- $headings := .Scratch.Get "headings" -}} {{- $headings := $headings | default "1-6" -}} {{- with .Site.Params.anchorIcon -}} {{- $icon := (replace (index $.Site.Data.SVG .) "icon" "icon anchor-icon") -}} {{- $.Scratch.Set "icon" $icon -}} {{- end -}} {{- $icon := .Scratch.Get "icon" -}} {{- $anchor := $icon | default .Site.Params.anchorSymbol | default "ยง" -}} {{- if .Site.Params.enableAnchorLink -}} {{- $replacement := (printf `$1%s$3$4` $anchor) -}} {{- $.Scratch.Set "replacement" $replacement -}} {{- else -}} {{- $replacement := (printf `$1%s$3$4` $anchor) -}} {{- $.Scratch.Set "replacement" $replacement -}} {{- end -}} {{- $replacement := .Scratch.Get "replacement" -}} {{- $regexPatternHeadingsAnchor := (printf `()(.+)?()` $headings $headings) -}} {{- $regexReplacementHeadingsAnchor := $replacement -}} {{- $Content = $Content | replaceRE $regexPatternHeadingsAnchor $regexReplacementHeadingsAnchor -}} {{- end -}} {{- if eq .Type "poetry" -}} {{- $enableDropCap := .Params.dropCap | default false -}} {{- .Scratch.Set "enableDropCap" $enableDropCap -}} {{- else -}} {{- $enableDropCap := .Params.dropCap | default .Site.Params.enableDropCap -}} {{- .Scratch.Set "enableDropCap" $enableDropCap -}} {{- end -}} {{- $enableDropCap := .Scratch.Get "enableDropCap" -}} {{- if $enableDropCap -}} {{- $regexPatternDropCap := `()([^<])(.+(

|\n))` -}} {{- $regexReplacementDropCap := `$1 style="text-indent:0"$2$3$4` -}} {{- $firstParagraphOld := (delimit (findRE $regexPatternDropCap $Content 1) " ") -}} {{- $firstParagraphNew := (replaceRE $regexPatternDropCap $regexReplacementDropCap $firstParagraphOld) -}} {{- $Content = replace $Content $firstParagraphOld $firstParagraphNew 1 -}} {{- end -}} {{- $enableDropCapAfterHr := .Params.dropCapAfterHr | default .Site.Params.enableDropCapAfterHr -}} {{- if ne .Type "poetry" -}} {{- if $enableDropCapAfterHr -}} {{- if .Params.deleteHrBeforeDropCap | default .Site.Params.deleteHrBeforeDropCap -}} {{- $replacement := `$3 style="text-indent:0"$4$5` -}} {{- $.Scratch.Set "replacement" $replacement -}} {{- else -}} {{- $replacement := `$1$3 style="text-indent:0"$4$5` -}} {{- $.Scratch.Set "replacement" $replacement -}} {{- end -}} {{- $replacement := .Scratch.Get "replacement" -}} {{- $regexPatternDropCapAfterHr := `(\n(
|
))(\n)([^<])` -}} {{- $regexReplacementDropCapAfterHr := $replacement -}} {{- $Content = $Content | replaceRE $regexPatternDropCapAfterHr $regexReplacementDropCapAfterHr -}} {{- end -}} {{- end -}} {{- if .Site.Params.squareBrackets -}} {{- $regexPatternFootnoteRef := `(]+>)(\d+)()` -}} {{- $regexReplacementFootnoteRef := `$1[$2]$3` -}} {{- $Content = $Content | replaceRE $regexPatternFootnoteRef $regexReplacementFootnoteRef -}} {{- end -}} {{- if .Site.Params.insertHrBySelf -}} {{- $regexPatternDeleteHr := `(
|
)\n(<(section|div) class="footnotes" role="doc-endnotes">)` -}} {{- $regexReplacementDeleteHr := `$2` -}} {{- $Content = $Content | replaceRE $regexPatternDeleteHr $regexReplacementDeleteHr -}} {{- end -}} {{- with .Site.Params.footnoteReturnLinkIcon -}} {{- $icon := (partial "utils/icon.html" (dict "$" $ "name" . "class" "footnote-icon")) -}} {{- $replacement := (printf `${1}%s$3` $icon) -}} {{- $regexPatternfootnoteReturnLinkIcon := `(href="#fnref[^>]+>)([^<]+)(.+)` -}} {{- $regexReplacementfootnoteReturnLinkIcon := $replacement -}} {{- $Content = $Content | replaceRE $regexPatternfootnoteReturnLinkIcon $regexReplacementfootnoteReturnLinkIcon -}} {{- end -}} {{- $regexPatternFootnoteImage := `(<(img|video))` -}} {{- $regexReplacementFootnoteImage := `$1 style="float:right"$2` -}} {{- $Content = $Content | replaceRE $regexPatternFootnoteImage $regexReplacementFootnoteImage -}} {{- if .Site.Params.enableCaption -}} {{- $captionPrefix := .Site.Params.captionPrefix -}} {{- $regexPatternCaption := `(<(img|video).+) title="([^"]+)"( controls)?( />|>)()?` -}} {{- $regexReplacementCaption := (printf `$1$4$5$6%s$3` $captionPrefix) -}} {{- $Content = $Content | replaceRE $regexPatternCaption $regexReplacementCaption -}} {{- end -}} {{- if and .Site.Params.enableImageHost (eq hugo.Environment "production") -}} {{- $hostURL := strings.TrimSuffix "/" .Site.Params.imageHostURL -}} {{- $temps := findRE `<(img) src="/?([^":]+)` $Content | uniq -}} {{- with $temps -}} {{- range . -}} {{- if not (in (slice "http" "ttps") (substr . -1 4)) -}} {{- $url := replaceRE `<(img) src="/?([^":]+)` `$2` . -}} {{- $prefix := replaceRE `(<(img) src=")/?([^":]+)` `$1` . -}} {{- $replacement := (printf `%s%s/%s` $prefix $hostURL $url) -}} {{- $Content = replace $Content . $replacement -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- if and .Site.Params.enableVideoHost (eq hugo.Environment "production") -}} {{- $hostURL := strings.TrimSuffix "/" .Site.Params.videoHostURL -}} {{- $temps := findRE `<(video) src="/?([^":]+)` $Content | uniq -}} {{- with $temps -}} {{- range . -}} {{- if not (in (slice "http" "ttps") (substr . -1 4)) -}} {{- $url := replaceRE `<(video) src="/?([^":]+)` `$2` . -}} {{- $prefix := replaceRE `(<(video) src=")/?([^":]+)` `$1` . -}} {{- $replacement := (printf `%s%s/%s` $prefix $hostURL $url) -}} {{- $Content = replace $Content . $replacement -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{- $enableIndent := (and .Site.Params.enableParagraphIndent .Params.indent) | default (and .Site.Params.enableParagraphIndent (eq .Site.Params.paragraphStyle "indent")) -}} {{- if ne .Type "poetry" -}} {{- if $enableIndent -}} {{- $regexPatternIndent := `((

|
)\n)(.+(
|
))` -}} {{- $regexReplacementIndent := `$1 style="text-indent:0;padding-left:2em;margin:1em 0"$3$4` -}} {{- $Content = $Content | replaceRE $regexPatternIndent $regexReplacementIndent -}} {{- end -}} {{- end -}} {{- if and (not (.Params.indentFirstParagraph | default .Site.Params.indentFirstParagraph)) $enableIndent -}} {{- if ne .Type "poetry" -}} {{- if not $enableDropCap -}} {{- $regex := `([^<]+)` -}} {{- $replacement := `$1 style="text-indent:0"$2` -}} {{- $firstParagraphOld := (delimit (findRE $regex $Content 1) " ") -}} {{- $firstParagraphNew := (replaceRE $regex $replacement $firstParagraphOld) -}} {{- $Content = replace $Content $firstParagraphOld $firstParagraphNew -}} {{- end -}} {{- if not $enableDropCapAfterHr -}} {{- $regex := `((|
|
)\n(
\n)?[^<])` -}} {{- $.Scratch.Set "regex" $regex -}} {{- else -}} {{- $regex := `(()\n(
\n)?[^<])` -}} {{- $.Scratch.Set "regex" $regex -}} {{- end -}} {{- $regex := .Scratch.Get "regex" -}} {{- $replacement := `$1 style="text-indent:0"$4` -}} {{- $Content = $Content | replaceRE $regex $replacement -}} {{- end -}} {{- end -}} {{- $Content = $Content | replaceRE `` `` -}} {{- $Content = partial "custom/content.html" (dict "$" $ "Content" $Content) | default $Content -}} {{- $Content | safeHTML -}}