2024-10-13 14:26:50 +00:00
<!DOCTYPE html>
< html lang = "en" dir = "ltr" 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" >
2024-10-24 17:57:32 +00:00
< meta name = "generator" content = "Hugo 0.136.5" >
2024-10-25 06:34:40 +00:00
< meta name = "generator" content = "Relearn 7.1.1" >
2024-10-13 14:26:50 +00:00
< 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 :: Hugo Relearn Theme" >
< meta name = "twitter:description" content = "Add further code to your site" >
< meta property = "og:url" content = "https://mcshelby.github.io/hugo-theme-relearn/configuration/customization/dependencies/index.html" >
< meta property = "og:site_name" content = "Hugo Relearn Theme" >
< meta property = "og:title" content = "Extending Scripts :: Hugo Relearn Theme" >
< meta property = "og:description" content = "Add further code to your site" >
< meta property = "og:locale" content = "en" >
< 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 :: Hugo Relearn 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 :: Hugo Relearn 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/configuration/customization/dependencies/index.html" rel = "canonical" type = "text/html" title = "Extending Scripts :: Hugo Relearn Theme" >
< link href = "/hugo-theme-relearn/configuration/customization/dependencies/index.xml" rel = "alternate" type = "application/rss+xml" title = "Extending Scripts :: Hugo Relearn Theme" >
2024-10-25 06:34:40 +00:00
< link href = "/hugo-theme-relearn/images/logo.svg?1729838068" rel = "icon" type = "image/svg+xml" >
< link href = "/hugo-theme-relearn/css/fontawesome-all.min.css?1729838068" rel = "stylesheet" media = "print" onload = "this.media='all';this.onload=null;" > < noscript > < link href = "/hugo-theme-relearn/css/fontawesome-all.min.css?1729838068" rel = "stylesheet" > < / noscript >
< link href = "/hugo-theme-relearn/css/nucleus.css?1729838068" rel = "stylesheet" >
< link href = "/hugo-theme-relearn/css/auto-complete.css?1729838068" rel = "stylesheet" media = "print" onload = "this.media='all';this.onload=null;" > < noscript > < link href = "/hugo-theme-relearn/css/auto-complete.css?1729838068" rel = "stylesheet" > < / noscript >
< link href = "/hugo-theme-relearn/css/perfect-scrollbar.min.css?1729838068" rel = "stylesheet" >
< link href = "/hugo-theme-relearn/css/fonts.css?1729838068" rel = "stylesheet" media = "print" onload = "this.media='all';this.onload=null;" > < noscript > < link href = "/hugo-theme-relearn/css/fonts.css?1729838068" rel = "stylesheet" > < / noscript >
< link href = "/hugo-theme-relearn/css/theme.css?1729838068" rel = "stylesheet" >
< link href = "/hugo-theme-relearn/css/theme-relearn-auto.css?1729838068" rel = "stylesheet" id = "R-variant-style" >
< link href = "/hugo-theme-relearn/css/chroma-relearn-auto.css?1729838068" rel = "stylesheet" id = "R-variant-chroma-style" >
< link href = "/hugo-theme-relearn/css/print.css?1729838068" rel = "stylesheet" media = "print" >
< link href = "/hugo-theme-relearn/css/format-print.css?1729838068" rel = "stylesheet" >
< script src = "/hugo-theme-relearn/js/variant.js?1729838068" > < / script >
2024-10-13 14:26:50 +00:00
< 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 to clipboard`;
window.T_Copied_to_clipboard = `Copied to clipboard!`;
window.T_Copy_link_to_clipboard = `Copy link to clipboard`;
window.T_Link_copied_to_clipboard = `Copied link to clipboard!`;
window.T_Reset_view = `Reset view`;
window.T_View_reset = `View reset!`;
window.T_No_results_found = `No results found for "{0}"`;
window.T_N_results_found = `{1} results found for "{0}"`;
< / script >
< style >
#R-body img.bg-white {
background-color: white;
}
< / style >
< / head >
< body class = "mobile-support print disableInlineCopyToClipboard" data-url = "/hugo-theme-relearn/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 of 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" > Adding JavaScript or Stylesheets to All Pages< / a > < / li >
< li > < a href = "#custom-shortcodes-with-dependencies" > Custom Shortcodes with 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/configuration/index.html" > < span itemprop = "name" > Configuration< / span > < / a > < meta itemprop = "position" content = "1" > > < / li > < li
itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement">< a itemprop = "item" href = "/hugo-theme-relearn/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.en.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/configuration/customization/dependencies/index.print.html" title = "Print whole chapter (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/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/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 = "More" > < 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 question is how to add extra CSS styles or JavaScript to your site. This depends on what you need.< / p >
< h2 id = "adding-javascript-or-stylesheets-to-all-pages" > Adding JavaScript or Stylesheets to All Pages< / h2 >
< p > To add JavaScript files or CSS stylesheets to every page, you can include them in < code > layouts/partials/custom-header.html< / code > or < code > layouts/partials/custom-footer.html< / code > .< / p >
< p > However, this can make your site larger than necessary if these files are only needed on a few pages. The next section explains how to add dependencies only when needed.< / p >
< h2 id = "custom-shortcodes-with-dependencies" > Custom Shortcodes with Dependencies< / h2 >
< p > Some shortcodes need extra JavaScript and CSS files. The theme only loads these when the shortcode is used. You can use this for your own shortcodes too.< / p >
< p > For example, to create a shortcode called < code > myshortcode< / code > that needs the < code > jquery< / code > library:< / p >
< ol >
< li >
< p > Create the shortcode file < code > layouts/shortcodes/myshortcode.html< / code > and add the folloging line somewhere:< / p >
2024-10-25 06:34:40 +00:00
< div class = "tab-panel" data-tab-group = "770d1325f47ccc9d1ca119401ff011b3" >
2024-10-13 14:26:50 +00:00
< 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"
2024-10-25 06:34:40 +00:00
onclick="switchTab('770d1325f47ccc9d1ca119401ff011b3','layoutsshortcodesmyshortcodehtml')"
2024-10-13 14:26:50 +00:00
>
< 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" > Page< / 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" > Option< / span > < / span > Add this to your < 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 >
2024-10-25 06:34:40 +00:00
< div class = "tab-panel" data-tab-group = "f98075c5b5629975d2a54e856223d7b3" >
2024-10-13 14:26:50 +00:00
< 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"
2024-10-25 06:34:40 +00:00
onclick="switchTab('f98075c5b5629975d2a54e856223d7b3','layoutspartialsdependenciesmyshortcodehtml')"
2024-10-13 14:26:50 +00:00
>
< 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" > location< / 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 casing is relevant!< / li >
< li > The < code > name< / code > in < code > hugo.toml< / code > must match the < code > Store< / code > key used in the shortcode file, prefixed with a < code > has< / code > .< / li >
< li > The key of < code > relearn.dependencies< / code > must match the loader file name.< / li >
< / ul >
< p > See the < code > math< / code > , < code > mermaid< / code > , and < code > openapi< / code > shortcodes for examples.< / p >
< div class = "box notices cstyle note" >
< div class = "box-label" >
< i class = "fa-fw fas fa-exclamation-circle" > < / i > Note
< / div >
< div class = "box-content" >
< p > For advanced customization, you can use the dependency loader in your 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 for the < code > location< / code > parameter when you call it, so you can distinguish your loaders behavior depending on the location it was called from.< / p >
< footer class = "footline" >
< div class = "R-taxonomy taxonomy-categories cstyle" title = "Categories" 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/categories/explanation/index.html" > Explanation< / a > < / li >
< li > < a class = "term-link" href = "/hugo-theme-relearn/categories/howto/index.html" > Howto< / a > < / li >
< / ul >
< / div >
< / footer >
< / article >
< / div >
< / main >
< / div >
2024-10-25 06:34:40 +00:00
< script src = "/hugo-theme-relearn/js/clipboard.min.js?1729838068" defer > < / script >
< script src = "/hugo-theme-relearn/js/perfect-scrollbar.min.js?1729838068" defer > < / script >
< script src = "/hugo-theme-relearn/js/theme.js?1729838068" defer > < / script >
2024-10-13 14:26:50 +00:00
< / body >
< / html >