# Amethyst Hugo Theme [![Hugo](https://img.shields.io/badge/hugo-0.96-blue.svg)](https://gohugo.io) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) Amethyst combines the navigational features of [hugo-book](https://github.com/alex-shpak/hugo-book) with the Obsidian integrations of [quartz](https://github.com/jackyzha0/quartz) to provide a hassle-free place to store and host personal notes or documentation. Insert screenshot here ## Features - Most of the features of the original themes (Quartz and Book) - Mobile-friendly - Multi-language support - Customizable - Dark Mode - LaTeX support - Obsidian-style back/forward links and page previews - Interactive graph view - Tab cards for practice problems ## Documentation If you just want to use Amethyst for your own notes hosting, go to [amethyst.bencuan.me](https://amethyst.bencuan.me) for a demo and documentation on how to use it. Keep reading if you want to help develop Amethyst, or make changes to the code base for your own needs. ## Requirements - **Go 1.16 or higher**: [installation instructions](https://golang.org/doc/install) - **Hugo 0.93 or higher:** [installation instructions](https://gohugo.io/getting-started/installing/) - If installing on Ubuntu/Debian-based systems, this is a higher version than is available in apt at the time of writing. Install the extended version from the [releases page](https://github.com/gohugoio/hugo/releases) instead. - **Hugo-obsidian:** Run `go install github.com/jackyzha0/hugo-obsidian@latest`. - If you're getting a `command not found` error, [ensure that your PATH is configured properly so that binaries in the GOPATH can be executed](https://stackoverflow.com/questions/21001387/how-do-i-set-the-gopath-environment-variable-on-ubuntu-what-file-must-i-edit). ## Live Server Start the live server using `make serve`. Content will be served to `localhost:1313` by default. The server will need to be restarted to preview changes to navigation (internal links and sidebar menu). ## Configuration ### Site Configuration Most configuration can be done by creating a `config.yaml` file in the root directory and editing the parameters. You can start by copying the example [here](https://github.com/64bitpandas/amethyst/blob/main/config.yaml). Graph-specific configuration can be added to `data/graphConfig.yaml`. (Example [here](https://github.com/64bitpandas/amethyst/blob/main/data/graphConfig.yaml)) ### Multi-Language Support Theme supports Hugo's [multilingual mode](https://gohugo.io/content-management/multilingual/), just follow configuration guide there. You can also tweak search indexing configuration per language in `i18n` folder. ### Page Configuration You can specify additional params in the front matter of individual pages: ```toml # Set type to 'docs' if you want to render page outside of configured section or if you render section other than 'docs' type = 'docs' # Set page weight to re-arrange items in file-tree menu (if BookMenuBundle not set) weight = 10 # (Optional) Set to 'true' to mark page as flat section in file-tree menu (if BookMenuBundle not set) bookFlatSection = false # (Optional) Set to hide nested sections or pages at that level. Works only with file-tree menu mode bookCollapseSection = true # (Optional) Set true to hide page or section from side menu (if BookMenuBundle not set) bookHidden = false # (Optional) Set 'false' to hide ToC from page bookToC = true # (Optional) If you have enabled BookComments for the site, you can disable it for specific pages. bookComments = true # (Optional) Set to 'false' to exclude page from search index. bookSearchExclude = true # (Optional) Set explicit href attribute for this page in a menu (if BookMenuBundle not set) bookHref = '' ``` ### Partials There are layout partials available for you to easily override components of the theme in `layouts/partials/`. In addition to this, there are several empty partials you can override to easily add/inject code. | Empty Partial | Placement | | -------------------------------------------------- | ------------------------------------------- | | `layouts/partials/docs/inject/head.html` | Before closing `` tag | | `layouts/partials/docs/inject/body.html` | Before closing `` tag | | `layouts/partials/docs/inject/footer.html` | After page footer content | | `layouts/partials/docs/inject/menu-before.html` | At the beginning of `