Skip to content

loikein/hugo-novelist

 
 

Repository files navigation

Novelist Hugo theme

Netlify Status

Novelist is content focused, minimal theme for Hugo, suitable for fanfiction writings. It aims at a feature set similar to Archive of Our Own. Not production-ready yet.

Live demo: https://hugo-novelist.netlify.app/

Building guides

Local

Build your own site: (path: /your-site/)

hugo server --buildDrafts --disableFastRender

Build the example site: (path: /hugo-novelist/)

cd exampleSite
hugo server --buildDrafts --disableFastRender --themesDir .. --theme .

Netlify

Example netlify.toml:

Build your own site: (from your own site repo)

[build]
publish = "public"
command = "hugo --gc --minify"

[context.production.environment]
HUGO_VERSION = "0.115.2"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"

Build the example site: (from this repo) see ./netlify.toml

Fork notes

TODO

  • Hugo
    • Clean up temp files
    • Add theme.toml
    • Clean up layout code
    • Set up exampleSite & deploy
    • Add i18n (WIP)
    • Better archetypes
  • Site features
    • Add rating system
      • Fix rating focus style
    • Add multi-chapter support
      • Section permalink shenanigan
    • Taxonomies: fandoms, relationships, characters, tags
    • Add age warning modal for M & E rated writings
    • Add archive pages (achieved by restoring section lists)
    • Add full-text search
  • Style
    • Centre the main tag
    • Adjust date format
    • Custom <hr> glyph
    • Do something about the code fence styling (only with config)
    • Dark mode
    • Do something about multi-line summary style (and all summary style)
  • Layout
    • Add series layout
    • Add prev/next page buttons (maybe only for multi-chapter)
    • Add beginning notes and end notes
  • Meta tags
    • Add jump link to external sources
  • Others
    • (a11y) Add jump to main button
    • Get the extra privacy version of the social shortcodes
  • Probably won't
    • Add pagination
    • Support LaTeX

Features

  • Minimalistic, clean and simple design
  • Perfect for writers
  • Content focused
  • System fonts
  • Anchor links
  • NO JS! This is voided by the addition of age warning modals. Readers can still disable JS which skips the modal, but nothing else will be affected.
  • AAA, 100/100 scores on Lighthouse, Gmetrix and Webpagetest (Untested)
  • Responsive design
  • Tags and tag pages
  • Inline CSS
  • Atom feed
  • Json feed
  • Related content (internal links)
  • Sass SCSS
  • SEO optimized (Twitter cards, Facebook Open Graph, Schema.org)

Site customisation

You can customise the favicon by creating a favicon.png file under /site/static/.

Customisation options in config.yaml:

  • params.customCSS bool: Turn on/off site-specific custom CSS. All .css files located under /site/assets/css/ will be included. See the example site folder for an example (not turned-on).
  • params.enableRatings bool: Site-wide switch for turning on/off the AO3 rating system. Only controls the display. You can still save the ratings for your own reference purpose.
  • params.description string: The subtitle under your site title.
  • params.dateFormat string: Enter any format of the date Monday, Jan 2, 2006 that is compatible with Go's Time Format function. See Hugo documentation for a list of simple examples.
  • params.showSummary bool: Controls whether the article lists automatically show the beginning of the article (140 characters) or not.
  • params.lowVisionSymbols bool: Controls whether to use the low vision version of ratings symbols or not.
  • params.hrGlyph string: Glyph used for the <hr> element. The quotation marks are required. Also, if you want to use Unicode Characters, you must type an extra slash like this: "\\2756".

Pages customisation

In addition to the usual markdown front matter (note certain entries are not supported such as categories and weight), you can also specify fandoms, relationships, characters, tags, ratings and 1 external link.

For an all-in-one example, see ./exampleSite/content/writing/markdown-syntax.md.

Notes

You can add notes anywhere in your article by typing

{{< notes >}}
… (Your notes here. Use Markdown.)
{{< /notes >}}

You can also get a custom title by typing

{{< notes "Custom message:" >}}
… (Your notes here. Use Markdown.)
{{< /notes >}}

See ./exampleSite/content/writing/markdown-syntax.md for examples of both cases.

Multi-chapter article

See ./exampleSite/content/writing/multi-chapter/ for a brief example.

In _index.md you can set the following parameters in addition to the pages parameters above:

  • chapterPlan int: Planned number of total chapters.
  • cascade.language RFC 5646 language code: Language setting for all chapters.

ratings

For each writing (for multi-chapters only the _index file counts), you can choose from: (Quotation marks are required. Can be single quote if you want.)

  • rating:
    • "general-audience"
    • "teen"
    • "mature"
    • "explicit"
    • "no"
  • warning:
    • "choosenotto"
    • "yes"
    • "no"
  • category:
    • "femslash"
    • "het"
    • "gen"
    • "slash"
    • "multi"
    • "other"
    • "no"
  • complete:
    • "no"
    • "yes"

YAML example:

ratings:
  rating: "general-audience"
  warning: "choosenotto"
  category: "slash"
  complete: "yes"

TOML example:

[ratings]
rating = "teen"
warning = "choosenotto"
category = "femslash"
complete = "no"

License/copyright acknowledgements

Upstream codebase

This theme was originally authored by Ronalds Vilciņš and distributed under the MIT License (ronv/simplist: Content focused, minimal theme for Hugo).

This repo

This repository is distributed under the GNU General Public License v2.0 or any later version (per compatibility matrix of GNU licenses).

Age warning modal

This theme uses the adult caution message from the otwarchive repository under the GNU General Public License v2.0 only, no changes made.

Rating system

./exampleSite/content/rating-description.md:

This theme uses the symbol system from the otwarchive repository under the GNU General Public License v2.0, with the following changes:

  • Removing the external work mark and the completion status unknown mark (because presumably all the works that you post here are your originals, and you know whether they are completed or not);
  • Enlarging the "Other relationships" icon to make it the same size with others.

About

Content focused, minimal theme for Hugo

Resources

License

GPL-2.0, MIT licenses found

Licenses found

GPL-2.0
LICENSE
MIT
LICENSE.upstream

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 75.4%
  • SCSS 24.4%
  • CSS 0.2%