support custom css and js files

This commit is contained in:
zwbetz-gh 2020-11-16 20:32:11 -06:00
parent da0a871758
commit 9824fe3e2e
8 changed files with 30 additions and 14 deletions

View File

@ -18,7 +18,7 @@ An accessibility-friendly Hugo theme, ported from the [original Cupper](https://
- [Syntax highlighting](#syntax-highlighting)
- [Disable toc for a blog post](#disable-toc-for-a-blog-post)
- [Localization](#localization)
- [Custom css](#custom-css)
- [Custom CSS and JS](#custom-css-and-js)
- [Getting help](#getting-help)
- [Credits](#credits)
@ -92,11 +92,13 @@ The strings in the templates of this theme can be localized. Make a copy of `<TH
[Here is a tutorial that goes more in depth about this.](https://regisphilibert.com/blog/2018/08/hugo-multilingual-part-2-i18n-string-localization/)
## Custom css
## Custom CSS and JS
Instead of copying the theme's css file to your own installation and modifying this large file, you can provide a list of css files that will be loaded after the theme's one. This enables you to override individual style while getting theme updates when they come.
You can provide an optional list of custom CSS files, which must be placed inside the `static` dir. These will load after the theme CSS loads. So, `static/css/custom_01.css` translates to `css/custom_01.css`.
Please see the params section of the example site `config.yaml` for more details.
You can provide an optional list of custom JS files, which must be placed inside the `static` dir. These will load after the theme JS loads. So, `static/js/custom_01.js` translates to `js/custom_01.js`.
See the [example site config file](https://github.com/zwbetz-gh/cupper-hugo-theme/blob/master/exampleSite/config.yaml) for sample usage.
## Getting help

View File

@ -27,14 +27,12 @@ params:
darkThemeAsDefault: false
hideHeaderLinks: false
search: true
# A list of custom css files can be provided, which must be placed inside
# 'static/'.
# This is useful to override just specific css classes, instead of copying
# the entire theme's css file to your own site.
# Usage:
# customCss:
# - css/foo.css # relative path starting from static/
#- css/bar.css
customCss:
- css/custom_01.css
- css/custom_02.css
customJs:
- js/custom_01.js
- js/custom_02.js
menu:
nav:

View File

@ -0,0 +1,3 @@
.your-custom-class-01 {
display: block;
}

View File

@ -0,0 +1,3 @@
.your-custom-class-02 {
display: block;
}

View File

@ -0,0 +1,3 @@
const yourCustomFunction01 = (message) => {
console.log(message);
};

View File

@ -0,0 +1,3 @@
const yourCustomFunction02 = (message) => {
console.log(message);
};

View File

@ -26,9 +26,9 @@
{{ $styles := $templateStyles | resources.ExecuteAsTemplate "css/styles.css" . }}
<link rel="stylesheet" type="text/css" href="{{ $styles.Permalink }}">
{{ range .Site.Params.customCss -}}
{{ range .Site.Params.customCss }}
<link rel="stylesheet" href="{{ . | absURL }}">
{{- end }}
{{ end }}
<style id="inverter" media="none">
.intro-and-nav, .main-and-footer { filter: invert(100%) }

View File

@ -10,3 +10,7 @@
{{ $searchCss := resources.Get "css/search.css" | fingerprint }}
<link rel="stylesheet" href="{{ $searchCss.RelPermalink }}"></link>
{{ end }}
{{ range .Site.Params.customJs }}
<script src="{{ . | absURL }}"></script>
{{ end }}