mirror of
https://github.com/McShelby/hugo-theme-relearn.git
synced 2024-12-01 03:33:08 +00:00
290 lines
21 KiB
HTML
290 lines
21 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="art-x-pir" dir="rtl" itemscope itemtype="http://schema.org/Article">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
|
<meta name="generator" content="Hugo 0.136.4">
|
|
<meta name="generator" content="Relearn 7.0.1+0938e8bd2e8bce8d47586b5c26e306892fcb70a9">
|
|
<meta name="description" content="Add further code to your site">
|
|
<meta name="author" content="Sören Weber">
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png">
|
|
<meta name="twitter:title" content="Extending Scripts :: Cap'n Hugo Relearrrn Theme">
|
|
<meta name="twitter:description" content="Add further code to your site">
|
|
<meta property="og:url" content="https://mcshelby.github.io/hugo-theme-relearn/pir/configuration/customization/dependencies/index.html">
|
|
<meta property="og:site_name" content="Cap'n Hugo Relearrrn Theme">
|
|
<meta property="og:title" content="Extending Scripts :: Cap'n Hugo Relearrrn Theme">
|
|
<meta property="og:description" content="Add further code to your site">
|
|
<meta property="og:locale" content="art_x_pir">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png">
|
|
<meta itemprop="name" content="Extending Scripts :: Cap'n Hugo Relearrrn Theme">
|
|
<meta itemprop="description" content="Add further code to your site">
|
|
<meta itemprop="wordCount" content="289">
|
|
<meta itemprop="image" content="https://mcshelby.github.io/hugo-theme-relearn/images/hero.png">
|
|
<meta itemprop="keywords" content="Explanation,Howto,Relearn.dependencies">
|
|
<title>Extending Scripts :: Cap'n Hugo Relearrrn Theme</title>
|
|
<link href="https://mcshelby.github.io/hugo-theme-relearn/configuration/customization/dependencies/index.html" rel="alternate" hreflang="x-default">
|
|
<link href="https://mcshelby.github.io/hugo-theme-relearn/configuration/customization/dependencies/index.html" rel="alternate" hreflang="en">
|
|
<link href="https://mcshelby.github.io/hugo-theme-relearn/pir/configuration/customization/dependencies/index.html" rel="alternate" hreflang="art-x-pir">
|
|
<link href="https://mcshelby.github.io/hugo-theme-relearn/pir/configuration/customization/dependencies/index.html" rel="canonical" type="text/html" title="Extending Scripts :: Cap'n Hugo Relearrrn Theme">
|
|
<link href="/hugo-theme-relearn/pir/configuration/customization/dependencies/index.xml" rel="alternate" type="application/rss+xml" title="Extending Scripts :: Cap'n Hugo Relearrrn Theme">
|
|
<link href="/hugo-theme-relearn/images/logo.svg?1729784207" rel="icon" type="image/svg+xml">
|
|
<link href="/hugo-theme-relearn/css/fontawesome-all.min.css?1729784207" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/fontawesome-all.min.css?1729784207" rel="stylesheet"></noscript>
|
|
<link href="/hugo-theme-relearn/css/nucleus.css?1729784207" rel="stylesheet">
|
|
<link href="/hugo-theme-relearn/css/auto-complete.css?1729784207" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/auto-complete.css?1729784207" rel="stylesheet"></noscript>
|
|
<link href="/hugo-theme-relearn/css/perfect-scrollbar.min.css?1729784207" rel="stylesheet">
|
|
<link href="/hugo-theme-relearn/css/fonts.css?1729784207" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/hugo-theme-relearn/css/fonts.css?1729784207" rel="stylesheet"></noscript>
|
|
<link href="/hugo-theme-relearn/css/theme.css?1729784207" rel="stylesheet">
|
|
<link href="/hugo-theme-relearn/css/theme-relearn-auto.css?1729784207" rel="stylesheet" id="R-variant-style">
|
|
<link href="/hugo-theme-relearn/css/chroma-relearn-auto.css?1729784207" rel="stylesheet" id="R-variant-chroma-style">
|
|
<link href="/hugo-theme-relearn/css/print.css?1729784207" rel="stylesheet" media="print">
|
|
<link href="/hugo-theme-relearn/css/format-print.css?1729784207" rel="stylesheet">
|
|
<script src="/hugo-theme-relearn/js/variant.js?1729784207"></script>
|
|
<script>
|
|
window.relearn = window.relearn || {};
|
|
window.relearn.relBasePath='..\/..\/..\/..';
|
|
window.relearn.relBaseUri='..\/..\/..\/..\/..';
|
|
window.relearn.absBaseUri='https:\/\/mcshelby.github.io\/hugo-theme-relearn';
|
|
window.relearn.disableAnchorCopy=false;
|
|
window.relearn.disableAnchorScrolling=false;
|
|
// variant stuff
|
|
window.variants && variants.init( [ 'relearn-auto', 'relearn-light', 'relearn-dark', 'relearn-bright', 'zen-auto', 'zen-light', 'zen-dark', 'retro-auto', 'neon', 'learn', 'blue', 'green', 'red' ] );
|
|
// translations
|
|
window.T_Copy_to_clipboard = `Copy t' clipboard`;
|
|
window.T_Copied_to_clipboard = `Copied t' clipboard!`;
|
|
window.T_Copy_link_to_clipboard = `Copy link t' clipboard`;
|
|
window.T_Link_copied_to_clipboard = `Copied link t' clipboard!`;
|
|
window.T_Reset_view = `Rrreset view`;
|
|
window.T_View_reset = `View rrreset!`;
|
|
window.T_No_results_found = `No rrresults found fer "{0}"`;
|
|
window.T_N_results_found = `{1} rrresults found fer "{0}"`;
|
|
</script>
|
|
<style>
|
|
#R-body img.bg-white {
|
|
background-color: white;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="mobile-support print disableInlineCopyToClipboard" data-url="/hugo-theme-relearn/pir/configuration/customization/dependencies/index.html">
|
|
<div id="R-body" class="default-animation">
|
|
<div id="R-body-overlay"></div>
|
|
<nav id="R-topbar">
|
|
<div class="topbar-wrapper">
|
|
<div class="topbar-sidebar-divider"></div>
|
|
<div class="topbar-area topbar-area-start" data-area="start">
|
|
<div class="topbar-button topbar-button-sidebar" data-content-empty="disable" data-width-s="show" data-width-m="hide" data-width-l="hide"><button class="topbar-control" onclick="toggleNav()" type="button" title="Menu (CTRL+ALT+n)"><i class="fa-fw fas fa-bars"></i></button>
|
|
</div>
|
|
<div class="topbar-button topbar-button-toc" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="Table o' Contents (CTRL+ALT+t)"><i class="fa-fw fas fa-list-alt"></i></button>
|
|
<div class="topbar-content">
|
|
<div class="topbar-content-wrapper">
|
|
<nav class="TableOfContents">
|
|
<ul>
|
|
<li><a href="#adding-javascript-or-stylesheets-to-all-pages">Add'n JavaScript or Stylesheets t' All Planks</a></li>
|
|
<li><a href="#custom-shortcodes-with-dependencies">Custom Shorrrtcodes wit' Dependencies</a></li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList"><li
|
|
itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="/hugo-theme-relearn/pir/configuration/index.html"><span itemprop="name">Configurrrat'n</span></a><meta itemprop="position" content="1"> > </li><li
|
|
itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="/hugo-theme-relearn/pir/configuration/customization/index.html"><span itemprop="name">Customization</span></a><meta itemprop="position" content="2"> > </li><li
|
|
itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><span itemprop="name">Extending Scripts</span><meta itemprop="position" content="3"></li>
|
|
</ol>
|
|
<div class="topbar-area topbar-area-end" data-area="end">
|
|
<div class="topbar-button topbar-button-edit" data-content-empty="disable" data-width-s="area-more" data-width-m="show" data-width-l="show"><a class="topbar-control" href="https://github.com/McShelby/hugo-theme-relearn/edit/main/exampleSite/content/configuration/customization/dependencies/_index.pir.md" target="_self" title="Edit (CTRL+ALT+w)"><i class="fa-fw fas fa-pen"></i></a>
|
|
</div>
|
|
<div class="topbar-button topbar-button-print" data-content-empty="disable" data-width-s="area-more" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/pir/configuration/customization/dependencies/index.print.html" title="Prrrint whole chapterrr (CTRL+ALT+p)"><i class="fa-fw fas fa-print"></i></a>
|
|
</div>
|
|
<div class="topbar-button topbar-button-prev" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/pir/configuration/customization/partials/index.html" title="Partials (🡒)"><i class="fa-fw fas fa-chevron-left"></i></a>
|
|
</div>
|
|
<div class="topbar-button topbar-button-next" data-content-empty="disable" data-width-s="show" data-width-m="show" data-width-l="show"><a class="topbar-control" href="/hugo-theme-relearn/pir/configuration/customization/imageeffects/index.html" title="Image Effects (🡐)"><i class="fa-fw fas fa-chevron-right"></i></a>
|
|
</div>
|
|
<div class="topbar-button topbar-button-more" data-content-empty="hide" data-width-s="show" data-width-m="show" data-width-l="show"><button class="topbar-control" onclick="toggleTopbarFlyout(this)" type="button" title="Morrre"><i class="fa-fw fas fa-ellipsis-v"></i></button>
|
|
<div class="topbar-content">
|
|
<div class="topbar-content-wrapper">
|
|
<div class="topbar-area topbar-area-more" data-area="more">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<div id="R-main-overlay"></div>
|
|
<main id="R-body-inner" class="highlightable configuration" tabindex="-1">
|
|
<div class="flex-block-wrapper">
|
|
<article class="default">
|
|
<header class="headline">
|
|
</header>
|
|
|
|
<h1 id="extending-scripts">Extending Scripts</h1>
|
|
|
|
<p>A common quest'n be how t' add extra CSS styles or JavaScript t' yer ship. This depends on what ye need.</p>
|
|
<h2 id="adding-javascript-or-stylesheets-to-all-pages">Add'n JavaScript or Stylesheets t' All Planks</h2>
|
|
<p>T' add JavaScript files or CSS stylesheets t' every plank, ye can include them 'n <code>layouts/partials/custom-header.html</code> or <code>layouts/partials/custom-footer.html</code>.</p>
|
|
<p>However, this can make yer ship larger than necessary if these files be only needed on a few planks. Th' next section explains how t' add dependencies only when needed.</p>
|
|
<h2 id="custom-shortcodes-with-dependencies">Custom Shorrrtcodes wit' Dependencies</h2>
|
|
<p>Some shorrrtcodes need extra JavaScript an' CSS files. Th' theme only loads these when th' shortcode be used. Ye can use this fer yer own shorrrtcodes too.</p>
|
|
<p>For example, t' create a shortcode called <code>myshortcode</code> that needs th' <code>jquery</code> library:</p>
|
|
<ol>
|
|
<li>
|
|
<p>Create th' shortcode file <code>layouts/shortcodes/myshortcode.html</code> an' add th' follog'n line somewhere:</p>
|
|
<div class="tab-panel" data-tab-group="304337b2b7f14ad390101b1fbc399e03">
|
|
<div class="tab-nav">
|
|
<div class="tab-nav-title">​</div>
|
|
<button
|
|
data-tab-item="layoutsshortcodesmyshortcodehtml"
|
|
class="tab-nav-button tab-panel-style cstyle initial active" tabindex="-1"
|
|
onclick="switchTab('304337b2b7f14ad390101b1fbc399e03','layoutsshortcodesmyshortcodehtml')"
|
|
>
|
|
<span class="tab-nav-text">layouts/shortcodes/myshortcode.html</span>
|
|
</button>
|
|
</div>
|
|
<div class="tab-content-container">
|
|
<div
|
|
data-tab-item="layoutsshortcodesmyshortcodehtml"
|
|
class="tab-content tab-panel-style cstyle initial active">
|
|
<div class="tab-content-text">
|
|
<div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="o">...</span>
|
|
</span></span><span class="line"><span class="cl"><span class="p">{{</span><span class="o">-</span> <span class="p">.</span><span class="nx">Plank</span><span class="p">.</span><span class="nx">Store</span><span class="p">.</span><span class="nx">Set</span> <span class="s">"hasMyShortcode"</span> <span class="kc">true</span> <span class="p">}}</span>
|
|
</span></span><span class="line"><span class="cl"><span class="o">...</span></span></span></code></pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div></li>
|
|
<li>
|
|
<p><span class="badge cstyle cyan badge-with-title"><span class="badge-title"><i class="fa-fw fas fa-gears"></i></span><span class="badge-content">Opt'n</span></span> Add this t' yer <code>hugo.toml</code>:</p>
|
|
<div class="tab-panel" data-tab-group="config-code">
|
|
<div class="tab-nav">
|
|
<div class="tab-nav-title">hugo.</div>
|
|
<button
|
|
data-tab-item="toml"
|
|
class="tab-nav-button tab-panel-style cstyle initial active" tabindex="-1"
|
|
onclick="switchTab('config-code','toml')"
|
|
>
|
|
<span class="tab-nav-text">toml</span>
|
|
</button>
|
|
<button
|
|
data-tab-item="yaml"
|
|
class="tab-nav-button tab-panel-style cstyle initial"
|
|
onclick="switchTab('config-code','yaml')"
|
|
>
|
|
<span class="tab-nav-text">yaml</span>
|
|
</button>
|
|
<button
|
|
data-tab-item="json"
|
|
class="tab-nav-button tab-panel-style cstyle initial"
|
|
onclick="switchTab('config-code','json')"
|
|
>
|
|
<span class="tab-nav-text">json</span>
|
|
</button>
|
|
</div>
|
|
<div class="tab-content-container">
|
|
<div
|
|
data-tab-item="toml"
|
|
class="tab-content tab-panel-style cstyle initial active">
|
|
<div class="tab-content-text">
|
|
<div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">]</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p">[</span><span class="nx">params</span><span class="p">.</span><span class="nx">relearn</span><span class="p">]</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p">[</span><span class="nx">params</span><span class="p">.</span><span class="nx">relearn</span><span class="p">.</span><span class="nx">dependencies</span><span class="p">]</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p">[</span><span class="nx">params</span><span class="p">.</span><span class="nx">relearn</span><span class="p">.</span><span class="nx">dependencies</span><span class="p">.</span><span class="nx">myshortcode</span><span class="p">]</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="nx">name</span> <span class="p">=</span> <span class="s1">'MyShortcode'</span></span></span></code></pre></div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
data-tab-item="yaml"
|
|
class="tab-content tab-panel-style cstyle initial">
|
|
<div class="tab-content-text">
|
|
<div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
|
|
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">relearn</span><span class="p">:</span><span class="w">
|
|
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">dependencies</span><span class="p">:</span><span class="w">
|
|
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">myshortcode</span><span class="p">:</span><span class="w">
|
|
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">MyShortcode</span></span></span></code></pre></div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
data-tab-item="json"
|
|
class="tab-content tab-panel-style cstyle initial">
|
|
<div class="tab-content-text">
|
|
<div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-json" data-lang="json"><span class="line"><span class="cl"><span class="p">{</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="nt">"params"</span><span class="p">:</span> <span class="p">{</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="nt">"relearn"</span><span class="p">:</span> <span class="p">{</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="nt">"dependencies"</span><span class="p">:</span> <span class="p">{</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="nt">"myshortcode"</span><span class="p">:</span> <span class="p">{</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="nt">"name"</span><span class="p">:</span> <span class="s2">"MyShortcode"</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p">}</span>
|
|
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<p>Create loader file <code>layouts/partials/dependencies/myshortcode.html</code>:</p>
|
|
<div class="tab-panel" data-tab-group="ee12df716a8dc51d302de6cc835a6b96">
|
|
<div class="tab-nav">
|
|
<div class="tab-nav-title">​</div>
|
|
<button
|
|
data-tab-item="layoutspartialsdependenciesmyshortcodehtml"
|
|
class="tab-nav-button tab-panel-style cstyle initial active" tabindex="-1"
|
|
onclick="switchTab('ee12df716a8dc51d302de6cc835a6b96','layoutspartialsdependenciesmyshortcodehtml')"
|
|
>
|
|
<span class="tab-nav-text">layouts/partials/dependencies/myshortcode.html</span>
|
|
</button>
|
|
</div>
|
|
<div class="tab-content-container">
|
|
<div
|
|
data-tab-item="layoutspartialsdependenciesmyshortcodehtml"
|
|
class="tab-content tab-panel-style cstyle initial active">
|
|
<div class="tab-content-text">
|
|
<div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="p">{{</span><span class="o">-</span> <span class="k">if</span> <span class="nx">eq</span> <span class="p">.</span><span class="nx">locat'n</span> <span class="s">"footer"</span> <span class="p">}}</span>
|
|
</span></span><span class="line"><span class="cl"> <span class="p"><</span><span class="nx">script</span> <span class="nx">src</span><span class="p">=</span><span class="s">"https://www.unpkg.com/jquery/dist/jquery.js"</span><span class="p">><</span><span class="o">/</span><span class="nx">script</span><span class="p">></span>
|
|
</span></span><span class="line"><span class="cl"><span class="p">{{</span><span class="o">-</span> <span class="nx">end</span> <span class="p">}}</span></span></span></code></pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div></li>
|
|
</ol>
|
|
<p>Important notes:</p>
|
|
<ul>
|
|
<li>Character cas'n be relevant!</li>
|
|
<li>Th' <code>name</code> 'n <code>hugo.toml</code> must match th' <code>Store</code> key used 'n th' shortcode file, prefixed wit' a <code>has</code>.</li>
|
|
<li>Th' key o' <code>relearn.dependencies</code> must match th' loader file name.</li>
|
|
</ul>
|
|
<p>See th' <code>math</code>, <code>mermaid</code>, an' <code>openapi</code> shorrrtcodes fer examples.</p>
|
|
<div class="box notices cstyle note">
|
|
<div class="box-label">
|
|
<i class="fa-fw fas fa-exclamation-circle"></i> Avast
|
|
</div>
|
|
<div class="box-content">
|
|
<p>For advanced customizat'n, ye can use th' dependency loader 'n yer own partials:</p>
|
|
<div class="highlight wrap-code"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="p">{{</span><span class="o">-</span> <span class="nx">partial</span> <span class="s">"dependencies.gotmpl"</span> <span class="p">(</span><span class="nx">dict</span> <span class="s">"page"</span> <span class="p">.</span> <span class="s">"location"</span> <span class="s">"mylocation"</span><span class="p">)</span> <span class="p">}}</span></span></span></code></pre></div>
|
|
</div>
|
|
</div>
|
|
<p>Give a unique name fer th' <code>locat'n</code> parameter when ye call it, so ye can distinguish yer loaders behavior depend'n on th' locat'n it was called from.</p>
|
|
|
|
|
|
<footer class="footline">
|
|
<div class="R-taxonomy taxonomy-categories cstyle" title="Categorrries" style="--VARIABLE-TAGS-BG-color: var(--INTERNAL-TAG-BG-color);">
|
|
<i class="fa-fw fas fa-layer-group"></i>
|
|
<ul>
|
|
<li><a class="term-link" href="/hugo-theme-relearn/pir/categories/explanation/index.html">Explanation</a></li>
|
|
<li><a class="term-link" href="/hugo-theme-relearn/pir/categories/howto/index.html">Howto</a></li>
|
|
</ul>
|
|
</div>
|
|
</footer>
|
|
</article>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
<script src="/hugo-theme-relearn/js/clipboard.min.js?1729784207" defer></script>
|
|
<script src="/hugo-theme-relearn/js/perfect-scrollbar.min.js?1729784207" defer></script>
|
|
<script src="/hugo-theme-relearn/js/theme.js?1729784207" defer></script>
|
|
</body>
|
|
</html>
|