Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsnjack/hugo-changelog-theme
A Hugo changelog theme
https://github.com/jsnjack/hugo-changelog-theme
changelog hugo theme
Last synced: 3 months ago
JSON representation
A Hugo changelog theme
- Host: GitHub
- URL: https://github.com/jsnjack/hugo-changelog-theme
- Owner: jsnjack
- License: mit
- Created: 2018-09-02T19:35:09.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-21T10:40:44.000Z (5 months ago)
- Last Synced: 2024-06-22T17:07:01.004Z (5 months ago)
- Topics: changelog, hugo, theme
- Language: HTML
- Size: 273 KB
- Stars: 105
- Watchers: 7
- Forks: 28
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-starred - jsnjack/hugo-changelog-theme - A Hugo changelog theme (others)
README
Hugo Changelog Theme
=====A [Hugo](https://gohugo.io/) theme to display a changelog
# Features
- Build with [Spectre.css](https://picturepan2.github.io/spectre/) (All unused components are disabled)
- Pagination
- Mobile friendly# How to install
- Clone the repository with `--recursive` flag as the theme includes submodule
```bash
git clone [email protected]:jsnjack/hugo-changelog-theme.git --recursive
```
- Use hugo extended version# Workflow
## Conventions
- Create non-released entries in `experimental/` folder. All of them are displayed in the top of the first page
- Create deprecation entries in `deprecated/` folder. Deprecated entries appear in a dropdown section on top of the first page
- Create released entries in `released/` folders. Entries are sorted by Weight. Weight is displayed as version
- Your hugo changelog website is located in `site/changelog/` folder
- You are using `master` branch as the stable branch and `develop` branch as a working branch (needed for the post-merge webhook only)## Scripts
- `Makefile` - list of useful commands
- `release.py` - moves changes from the `experimental/` folder to the `released/` folder, assigns version number and generates release-commit
- `.githooks/post-merge` - verifies that `experimental/` folder is empty during the merge from the working branch to the stable branch## Dependencies
- For release script:
```bash
sudo pip install python-frontmatter
```## Description
1. When a pull request is ready, a developer creates a changelog entry:
```bash
make change
```
The command creates a *.md file with random name (ensures that there will be no merge conflicts) in `site/changelog/content/experimental/` folder2. If necessary, the developer creates a deprecation entry:
```bash
make deprecation
```
The command creates a *.md file with random name (ensures that there will be no merge conflicts) in `site/changelog/content/deprecated/` folder.
Note that deprecation entries are not removed automatically. When a certain deprecated feature reaches the end of life period, the corresponding
file in the `deprecation/` folder has to be removed manually3. The developer updates created files with changes. Changes are going to be rendered in the `experimental` section of the template
4. Preview the site with the command:
```bash
make serve_changelog
```5. When the working branch is ready to be merged in the stable branch, the developer runs:
```bash
make release
```
The command will move all *.md files from the `experimental/` folder to the `released/` folder, assign the release version and generate the commit with related changes6. The developer merges working branch in to the stable branch
# Shortcodes
- `{{< tag fixed >}}` - create a specific tag before entry text. Available tag types are: added, changed, fixed, deprecated, removed, performance, security, self-hosted# Settings
```
[params]
customCSS = ["css/styles.css"] # List of css files to include on the website. Relative to the static/ folder
customJS = ["js/script.js"] # List of js files to include on the website. Relative to the static/ folder
```# Development
## Serve example website
```bash
cd exampleSite && hugo serve --theme hugo-changelog-theme --themesDir ../../ --baseURL http://localhost/
```