initial commit

This commit is contained in:
2025-02-19 00:16:57 +01:00
parent 1d9cd91fcd
commit d89698593b
1293 changed files with 55933 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
<style>
/* image effects */
#R-body img.bg-white {
background-color: white;
}
/* logo */
#R-logo {
font-size: 1.875rem;
margin-bottom: -.666rem;
margin-top: -.666rem;
max-width: 100%;
width: 14.125rem;
}
@media only all and (max-width: 59.999rem) {
#R-logo {
font-size: 1.5625rem;
margin-bottom: -.1875rem;
margin-top: -.1875rem;
}
}
#R-logo svg {
display: inline-block;
opacity: .945;
vertical-align: middle;
width: 29% !important;
}
@media only all and (max-width: 59.999rem) {
#R-logo svg {
width: 24.5% !important;
}
}
#R-logo svg * {
opacity: .945;
}
#R-logo .logo-title{
display: inline-block;
text-align: left;
text-wrap: wrap;
overflow-wrap: break-word;
vertical-align: middle;
width: 4.5em;
}
</style>

View File

@@ -0,0 +1,8 @@
{{- $page := .page }}
{{- $location := .location }}
{{- if eq $location "header" }}
{{- with $page }}
{{- $assetBusting := partialCached "assetbusting.gotmpl" . }}
<script src="{{"js/variant.js" | relURL}}{{ $assetBusting }}"></script>
{{- end }}
{{- end }}

View File

@@ -0,0 +1,5 @@
<!-- CSS styles are in layouts/partials/custom-header.html -->
<a id="R-logo" href="{{ partial "permalink.gotmpl" (dict "to" .Site.Home) }}">
{{ partial "shortcodes/image.html" (dict "page" . "url" "/images/logo.svg?border=false&inlinecontent&lightbox=false&shadow=false") }}
<div class="logo-title">{{ .Site.Params.linkTitle | default .Site.Title }}</div>
</a>

View File

@@ -0,0 +1,43 @@
{{- $assetBusting := partialCached "assetbusting.gotmpl" . }}
<span class="github-buttons"></span>
<p>Built with <a href="https://github.com/McShelby/hugo-theme-relearn" title="love"><i class="fas fa-heart"></i></a> by <a href="https://gohugo.io/">Hugo</a></p>
<script>
function githubButtonsScheme(){
var scheme = 'light';
var colorPropertyValue = window.getComputedStyle( document.querySelector( '#R-sidebar' ) ).getPropertyValue( 'background-color' );
var colorValues = colorPropertyValue.match( /\d+/g ).map( function( e ){ return parseInt(e,10); });
if( colorValues.length === 3 && ((0.2126 * colorValues[0]) + (0.7152 * colorValues[1]) + (0.0722 * colorValues[2]) < 165) ){
{{- /* Luma, https://en.wikipedia.org/wiki/Luma_%28video%29, SMPTE C, Rec. 709 weightings */}}
scheme = 'dark';
}
return scheme;
}
function githubButtonsInit(){
if( !window.githubButtons ){
{{- /* wait for the script to load */}}
setTimeout( githubButtonsInit, 50 );
return;
}
var scheme = githubButtonsScheme();
var githubButtonsHTML = `
<a class="github-button" href="https://github.com/McShelby/hugo-theme-relearn/archive/main.zip" data-color-scheme="${scheme}" data-icon="octicon-cloud-download" aria-label="Download McShelby/hugo-theme-relearn on GitHub">Download</a>
<a class="github-button" href="https://github.com/McShelby/hugo-theme-relearn" data-color-scheme="${scheme}" data-icon="octicon-star" data-show-count="true" aria-label="Star McShelby/hugo-theme-relearn on GitHub">Star</a>
<a class="github-button" href="https://github.com/McShelby/hugo-theme-relearn/fork" data-color-scheme="${scheme}" data-icon="octicon-repo-forked" data-show-count="true" aria-label="Fork McShelby/hugo-theme-relearn on GitHub">Fork</a>
`;
document.querySelector( '.github-buttons' ).innerHTML = githubButtonsHTML;
document.querySelectorAll( '.github-button' ).forEach( function( anchor ){
anchor.dataset.colorScheme = scheme;
window.githubButtons.render( anchor, function( el ){
anchor.parentNode.replaceChild( el, anchor );
});
});
}
document.addEventListener( 'themeVariantLoaded', function( e ){
{{- /* we have to wait until the CSS class .default-animation has settled and the buttons have loaded to recalculate the scheme again */}}
setTimeout( githubButtonsInit, 400 );
});
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
setTimeout( githubButtonsInit, 400 );
});
</script>
<script async src="{{"js/github-buttons.js" | relURL}}{{ $assetBusting }}"></script>

View File

@@ -0,0 +1,83 @@
{{- /*
Heavily modified from https://github.com/gohugoio/hugoDocs/blob/master/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html
Renders syntax-highlighted configuration data in TOML, YAML and JSON formats.
@param {Page} [page] The page to render on.
@param {string} [content] Plain content to render.
@param {string} [config] The section of site.Data.docs.config to render.
@param {string} [dataKey] Only render specific section
@param {string} [file] The file name to display above the rendered code.
@param {bool} [fm=false] If true, render the code as front matter.
@param {bool} [skipHeader=false] If false, omit top level key(s) when rendering a section of site.Data.docs.config.
@param {string} [section] The file name to display above the rendered code.
@returns {template.HTML}
*/}}
{{- /* Get parameters. */}}
{{- $page := .page }}
{{- $content := .content }}
{{- $config := .config }}
{{- $dataKey := .dataKey }}
{{- $file := .file }}
{{- $fm := false }}
{{- if in (slice "false" false 0) .fm }}
{{- $fm = false }}
{{- else if in (slice "true" true 1) .fm }}
{{- $fm = true }}
{{- end }}
{{- $skipHeader := false }}
{{- if in (slice "false" false 0) .skipHeader }}
{{- $skipHeader = false }}
{{- else if in (slice "true" true 1) .skipHeader }}
{{- $skipHeader = true }}
{{- end }}
{{- $section := .section }}
{{- /* Define constants. */}}
{{- $delimiters := dict "toml" "+++" "yaml" "---" }}
{{- $langs := slice "toml" "yaml" "json" }}
{{- /* Render. */}}
{{- $code := "" }}
{{- if $config }}
{{- $file = $file | default "hugo" }}
{{- $sections := (split $config ".") }}
{{- $configSection := index $page.Site.Data.docs.config $sections }}
{{- $code = dict $sections $configSection }}
{{- if $skipHeader }}
{{- $code = $configSection }}
{{- end }}
{{- else if $dataKey }}
{{- $file = $file | default $dataKey }}
{{- $sections := (split $dataKey ".") }}
{{- $code = index $page.Site.Data.docs $sections }}
{{- else }}
{{- $code = $content }}
{{- end }}
{{- /* Remove toml comments. */}}
{{- $code = $code | replaceRE `#.*(\r\n|\r|\n)?` "" }}
{{- $code = trim $code "\n\r\t " }}
{{- if and $section $code }}
{{- $code = printf "[%s]\n%s" $section $code }}
{{- end }}
{{- $params := dict "page" $page "groupid" "config-code" }}
{{- with $file }}
{{- $params = $params | merge (dict "title" (printf "%s%s" . (cond $fm "" "."))) }}
{{- end }}
{{- $contentparam := slice }}
{{- range $langs }}
{{- $hCode := $code }}
{{- if $hCode }}
{{- $hCode = $hCode | transform.Remarshal . }}
{{- end }}
{{- if and $fm (in (slice "toml" "yaml") .) }}
{{- $placeHolder := (index $delimiters .) }}
{{- $hCode = printf "%s\n%s%s\n" $placeHolder $hCode $placeHolder }}
{{- end }}
{{- $contentparam = $contentparam | append (dict "title" . "content" (printf "````%s\n%s````" . $hCode | $page.RenderString)) }}
{{- end }}
{{- $params = $params | merge (dict "content" $contentparam) }}
{{- partial "shortcodes/tabs.html" $params }}

View File

@@ -0,0 +1,49 @@
{{- $showtitle := .showtitle | default false }}
{{- if eq (printf "%T" $showtitle) "string" }}
{{- $showtitle = (eq $showtitle "true") }}
{{- end }}
{{- $showdivider := .showdivider | default false }}
{{- if eq (printf "%T" $showdivider) "string" }}
{{- $showdivider = (eq $showdivider "true") }}
{{- end }}
{{- $showhidden := .showhidden | default false }}
{{- if eq (printf "%T" $showhidden) "string" }}
{{- $showhidden = (eq $showhidden "true") }}
{{- end }}
{{- $hidevisible := .hidevisible | default false }}
{{- if eq (printf "%T" $hidevisible) "string" }}
{{- $hidevisible = (eq $hidevisible "true") }}
{{- end }}
{{- $reverse := .reverse | default false }}
{{- if eq (printf "%T" $reverse) "string" }}
{{- $reverse = (eq $reverse "true") }}
{{- end }}
{{- $pages := .page.Pages }}
{{- if $reverse }}
{{- $pages = $pages.Reverse }}
{{- end }}
{{- $needsdivider := false }}
{{- range $pages }}
{{- $display := or
(and $showhidden (or .Params.hidden (eq .Title "")) )
(and (not $hidevisible) (not (or .Params.hidden (eq .Title ""))) )
}}
{{- if $display }}
{{- if and $showdivider $needsdivider }}
---
{{ end }}
{{ if and $showtitle .Title }}
# {{ .Title }}
{{ end }}
{{ .RenderShortcodes }}
{{ $needsdivider = true }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,153 @@
{{- $page := .page }}
{{- if and (not $page) .context }}
{{- $page = .context }}
{{- $filepath := "[virtual file]" }}{{ with and $page $page.File $page.File.Filename }}{{ $filepath = . }}{{ end }}
{{- warnf "%q: DEPRECATED parameter 'context' for shortcode 'piratify' found, use 'page' instead; see https://mcshelby.github.io/hugo-theme-relearn/introduction/releasenotes/5/#5-18-0" $filepath }}
{{- end }}
{{- $content := .content }}
{{- $pagefield := cond (ne $content nil) nil (.pagefield | default "Content") }}
{{- $writenotice := cond (ne .writenotice nil) .writenotice false }}
{{- $langtrg := "pir" }}
{{- $langsrc := cond (eq $page.Language.Lang $langtrg) (.langsrc | default "en") $page.Language.Lang }}
{{- $baseURL := urls.Parse site.BaseURL }}
{{- $baseURLpath := $baseURL.Path | default "/" }}
{{- $l := $page.RelPermalink }}
{{- $c := "" }}
{{- $srcPage := "" }}
{{- if ne $content nil }}
{{- $c = $content }}
{{- else if eq $pagefield "Content" }}
{{- $c = $page.Content }}
{{- else if eq $pagefield "TableOfContents" }}
{{- $c = $page.TableOfContents }}
{{- end }}
{{- range $page.AllTranslations }}
{{- if eq .Language.Lang $langsrc }}
{{- $l = .RelPermalink }}
{{- if ne $content nil }}
{{- $c = $content }}
{{- else if eq $pagefield "Content" }}
{{- $c = .Content }}
{{- $srcPage = . }}
{{- else if eq $pagefield "TableOfContents" }}
{{- $c = .TableOfContents }}
{{- end }}
{{- break }}
{{- end }}
{{- end }}
{{- if eq $page.Language.Lang $langtrg }}
{{- if $writenotice }}
{{- partial "shortcodes/notice.html" (dict
"page" $page
"content" "<p>Fello' pirrrates, grog made us dizzy! Be awarrre some stuff may look weird in this trrranslat'n. Like seeing Merrrmaids and stuff.</p>\n"
"icon" "skull-crossbones"
"style" "warning"
"title" "Arrr! Pirrrates"
) }}
{{- end }}
{{- $words := dict
"Hugo" "Cap'n Hugo"
"Info" "Ahoi"
"Note" "Avast"
"Tip" "Smarrrt Arrrse"
"Warning" "Arrr"
"good" "bloody"
"shortcodes" "shorrrtcodes"
"Shortcodes" "Shorrrtcodes"
"Mermaid" "Merrrmaid"
"Markdown" "Marrrkdown"
"Markup" "Marrrkup"
"markup" "marrrkup"
"for" "fer"
"Your" "Yer"
"your" "yer"
"You" "Ye"
"you" "ye"
"the" "th'"
"The" "Th'"
"is" "be"
"Is" "Be"
"are" "be"
"Are" "Be"
"Of" "O'"
"of" "o'"
"To" "T'"
"to" "t'"
"in" "'n"
"With" "Wit'"
"with" "wit'"
"Where" "Whar'"
"where" "whar'"
"After" "Aft"
"And" "An'"
"and" "an'"
"Load" "Board"
"load" "board"
"Loaded" "Boarded"
"loaded" "boarded"
"Content" "Rrrambling"
"content" "rrrambling"
"icon" "ay'con"
"Icon" "Ay'con"
"icons" "ay'cons"
"Icons" "Ay'cons"
"syntax" "rules"
"Syntax" "Rules"
"Site" "Ship"
"site" "ship"
"Page" "Plank"
"page" "plank"
"Pages" "Planks"
"pages" "planks"
"Relearn" "Relearrrn"
"Learn" "Learrrn"
-}}
{{- $specials := dict
"(\\w)ing([\\s\\n<.,;?!:])" "'n"
"(\\w)ings([\\s\\n<.,;?!:])" "'ns"
"(\\w)tion([\\s\\n<.,;?!:])" "t'n"
"(\\w)tions([\\s\\n<.,;?!:])" "t'ns"
"(\\w)(?:[aeiou])ble([\\s\\n<.,;?!:])" "'ble"
"(\\w)(?:[aeiou])mize([\\s\\n<.,;?!:])" "'mize"
"(\\w)(?:[aeiou])mizes([\\s\\n<.,;?!:])" "'mizes"
"(\\w)(?:[aeiou])nize([\\s\\n<.,;?!:])" "'nize"
"(\\w)(?:[aeiou])nizes([\\s\\n<.,;?!:])" "'nizes"
-}}
{{- $links := slice
"href"
-}}
{{- $fix := dict
"warn'n" "warning"
"sect'n" "section"
"n Cap'n" "n"
"Avast right o' John" "Note right of John"
-}}
{{- range $from, $to := $words }}
{{- $c = replaceRE (printf "([\\s\\n>])%s([\\s\\n<.,;?!:])" $from) (printf "${1}%s${2}" $to) $c }}
{{- end }}
{{- range $from, $to := $specials }}
{{- $c = replaceRE $from (printf "${1}%s${2}" $to) $c }}
{{- end }}
{{- range $attr := $links }}
{{- $c = replaceRE (printf "\\b(%s)(=\"%s[^\"]*?\")" $attr $baseURLpath) "${1} data-piratify${2}" $c }}
{{- $m := findRESubmatch (printf "%s data-piratify=\"(%s)([^\"]*?)\"" $attr $baseURLpath) $c }}
{{- range $m }}
{{- $r := printf "%s=\"%s\"" $attr (index . 2) }}
{{- $u := urls.Parse (index . 2) }}
{{- if and (not $u.IsAbs) $u.Path }}
{{- $r = printf "%s=\"%s%s/%s\"" $attr $baseURLpath $langtrg (index . 2) }}
{{- end }}
{{- $c = replace $c (index . 0) $r }}
{{- end }}
{{- end }}
{{- range $from, $to := $fix }}
{{- $c = replace $c $from $to }}
{{- end }}
{{- if $srcPage }}
{{- range $page.Site.Params.relearn.dependencies }}
{{- $has := printf "has%s" .name }}
{{- $page.Store.Set $has (or ($page.Store.Get $has) ($srcPage.Store.Get $has)) }}
{{- end }}
{{- end }}
{{- end }}
{{- $c | safeHTML }}

View File

@@ -0,0 +1 @@
{{- replaceRE .pattern .replacement .input | safeHTML }}

View File

@@ -0,0 +1,4 @@
{{- partial "shortcodes/piratify.html" (dict
"page" .
"pagefield" "TableOfContents"
) }}