pidgin/nest

Update to hugo-theme-learn 2.5.0

18 months ago, Elliott Sales de Andrade
50afdb25d25a
Update to hugo-theme-learn 2.5.0

The latest version improves compatibility with latest Hugo and adds several enhancements. This enables us to drop most of our vendored copies of the theme files.

* Mermaid is now a theme option, so we don't need to overlay a copy of the partial with it removed.
* Custom CSS has a theme option to load it, so we don't need to add it to `custom-header.html`.
* It now uses the [recommended colour style variant customization](https://learn.netlify.app/en/basics/style-customization/#yours-variant) instead of copying the theme's CSS. Most of the sidebar seemed unchanged from the default, but I copied them anyway to prevent them changing.
* Dropping the copy of the theme CSS means moving our customized fixed-max-width style on the body to the custom CSS.
* I moved the footer into `custom-footer.html` so that most partials would not need to be copied; this does mean it's no longer a bubble that's the width of the content, but I always found that weird anyway. Some new CSS is necessary to make it centred properly.
* I found many of the partials and the JavaScript were functionally the same as the original theme's copy, so I removed them.

Testing Done:
Opened up a few pages and saw things were roughly equivalent, except the footer as noted above.

The only regression I believe is that the ToC is no longer automatically added on 'long' pages. However, it's still there on hover of the ToC icon.

Reviewed at https://reviews.imfreedom.org/r/1933/
# Pidgin Nest
The place we like to call home.
This repository contains the source for the https://pidgin.im/ site.
## Dependencies
This project uses [hugo](https://gohugo.io/), get it
[here](https://gohugo.io/getting-started/installing/)
## Developing Docs
To start development server run:
`hugo server -s hugo -D --disableFastRender -v --verboseLog --noHTTPCache --i18n-warnings`
- `--disableFastRender` Disabling fast render is needed because hugo starts to
ignore new content in the data dir
- `-v --verboseLog` Better logging and debugging experience
- `--noHTTPCache` To prevent caching issues
If you want to have your development server accessible from other computers or
devices on your network, you'll want to add some additional arguments to the
hugo command line:
`hugo server -s hugo -D --disableFastRender -v --verboseLog --noHTTPCache --i18n-warnings --bind=192.168.2.100 --baseURL=http://192.168.2.100:1313`
The additional arguments assume that your workstation's local IP address is
`192.168.2.100`.
- `--bind=192.168.2.100` instructs hugo to bind to the specified IP address.
- `--baseURL=http://192.168.2.100:1313` sets the base URL to allow connections
from other devices to work with proper URL's.
## Docker
1. `docker build -t pidgin/nest:latest .`
2. `docker run -it --rm -p 3000:3000 pidgin/nest:latest`
## Formatting
These are some regexes to quickly format templating
| regex | replace |
| -------------------- | -------- |
| `\{\{(\w|\.|\$|\()` | `{{ $1` |
| `\{\{-(\w|\.|$)` | `{{- $1` |
| `("|\w|\.|\))(-)?}}` | `$1 }}` |
## Hugo config
To disable **Copy Code to Clipboard** the `disableInlineCopyToClipBoard` switch
can be used either in **config** `[params]` **or** in the front matter of the
individual page.
## Tools
- **Visual Regression**
1. [Run dev server](#Developing-Docs)
1. To run the visual diff tool call `node tools/visual-diff.js` or
`npm run regression`
## Alert Notification
![](docs/images/notifications.png)
Notifications are configured in `hugo/config.toml`:
```toml
[params]
notificationMessage = "Great News Everyone!"
notificationCode = "nest-launch"
```
- `notificationMessage` is the message and is fully HTML
- `notificationCode` is used as the key to remember if the notification has been cleared
If either of these are unset, the template will not render.
The notification template is rendered `display: none` in the
`hugo/layouts/partials/custom-footer.html`, and then hoisted to the top of the
page if the cookie is not equal to the code.
## Submitting to Review Board
To submit a pull request you will need:
1.[RBTools](https://www.reviewboard.org/docs/rbtools/2.0/) (see
[here](https://docs.imfreedom.org/purple3/code_contributions.html)
for details)
1.[A JetBrains Hub Account](https://hub.imfreedom.org/) from our Hub
instance.