Compare commits

...

7 Commits

Author SHA1 Message Date
Ceda EI 173014e06a Update gitignore 2020-12-13 18:30:20 +05:30
Ceda EI 3385311773 Add homepage 2020-12-13 18:30:08 +05:30
Ceda EI 25f3faff03 Removed paperesque 2020-12-13 18:21:33 +05:30
Ceda EI fa7e7df689 Update config to new theme 2020-12-13 18:18:28 +05:30
Ceda EI 7c958e50df Fix path in "All Posts" in tags 2020-12-13 18:17:47 +05:30
Ceda EI 298efdb91e Merge commit 'bfb1829a86a2bc1b595dad52a9d6dcfe80dd0679' as 'themes/codex' 2020-12-11 02:43:08 +05:30
Ceda EI bfb1829a86 Squashed 'themes/codex/' content from commit da2d16a
git-subtree-dir: themes/codex
git-subtree-split: da2d16a4f95fc37e71548dfc139d51e22ebb09bd
2020-12-11 02:43:08 +05:30
184 changed files with 3053 additions and 4000 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
public/
resources/

View File

@ -1,67 +1,64 @@
baseURL = "https://cedaei.com/"
languageCode = "en-us"
title = "Ceda EI's Blog"
theme = "paperesque"
paginate = 5
theme = "codex"
copyright = "CC-BY-SA 4.0"
pygmentsUseClasses = true
[params]
# dir name of your blog content (default is `content/posts`)
contentTypeName = "posts"
dateFormat = "2006 Jan 2"
description = "asd"
# ["orange", "blue", "red", "green", "pink"]
themeColor = "orange"
twitter = "https://twitter.com/ceda_ei"
gitlab = "https://gitlab.com/ceda_ei/"
email = "mailto:ceda_ei@webionite.com"
iconOrder = ["Gitlab", "Email", "Twitter"]
showPageTitleInTOC = false
# if you set this to 0, only submenu trigger will be visible
showMenuItems = 2
# Controls the navigation
[[menu.main]]
identifier = "blog"
name = "Posts"
title = "Posts"
url = "/posts/"
# show selector to switch language
showLanguageSelector = false
# set theme to full screen width
fullWidthTheme = false
# center theme with default width
centerTheme = true
# set a custom favicon (default is a `themeColor` square)
# favicon = "favicon.ico"
# set all headings to their default size (depending on browser settings)
# it's set to `true` by default
# oneHeadingSize = false
[params.twitter]
# set Twitter handles for Twitter cards
# see https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started#card-and-content-attribution
# do not include @
creator = ""
site = ""
[[params.menu]]
name = "Blog Posts"
url = "posts/"
[[params.menu]]
name = "Tags"
url = "tags/"
[[params.menu]]
name = "About"
url = "https://webionite.com/"
[[params.menu]]
name = "RSS"
url = "/index.xml"
[[params.menu]]
name = "Telegram Updates"
url = "https://t.me/cedaei"
[[params.menu]]
[[menu.main]]
identifier = "source"
title = "Source"
name = "Source"
url = "https://git.webionite.com/ceda_ei/cedaei.com"
[[params.topmenu]]
name = "Subscribe"
url = "/"
[[menu.main]]
identifier = "tg"
title = "Subscribe (TG)"
name = "Subscribe (TG)"
url = "https://t.me/cedaei"
[[menu.main]]
identifier = "rss"
title = "Subscribe (RSS)"
name = "Subscribe (RSS)"
url = "/index.xml"
[[menu.main]]
identifier = "tags"
title = "Tags"
name = "Tags"
url = "/tags/"
[[menu.main]]
identifier = "about"
name = "About"
title = "About"
url = "https://webionite.com/"
[markup]
[markup.highlight]
codeFences = false
# Set to false to disallow raw HTML in markdown files
[markup.goldmark.renderer]
unsafe = true

5
content/_index.md Normal file
View File

@ -0,0 +1,5 @@
---
heading: "Hi, I am Ceda EI"
subheading: "DevOps, Vimmer, Pythonista"
handle: "ceda_ei"
---

View File

@ -0,0 +1,197 @@
{
"files": [
"README.md"
],
"imageSize": 100,
"commit": false,
"contributors": [
{
"login": "jakewies",
"name": "Jake Wiesler",
"avatar_url": "https://avatars1.githubusercontent.com/u/12075916?v=4",
"profile": "https://www.jakewiesler.com",
"contributions": [
"code",
"design",
"doc"
]
},
{
"login": "chuxinh",
"name": "Chuxin Huang",
"avatar_url": "https://avatars2.githubusercontent.com/u/30974572?v=4",
"profile": "https://www.chuxinhuang.com/",
"contributions": [
"doc",
"code",
"design"
]
},
{
"login": "kentnek",
"name": "Kent",
"avatar_url": "https://avatars1.githubusercontent.com/u/7024160?v=4",
"profile": "https://kentnek.com",
"contributions": [
"code",
"doc",
"design"
]
},
{
"login": "somaniarushi",
"name": "Arushi Somani",
"avatar_url": "https://avatars3.githubusercontent.com/u/54224195?v=4",
"profile": "https://github.com/somaniarushi",
"contributions": [
"doc"
]
},
{
"login": "xvallspl",
"name": "Xavier Valls",
"avatar_url": "https://avatars0.githubusercontent.com/u/867299?v=4",
"profile": "https://github.com/xvallspl",
"contributions": [
"doc",
"code",
"design"
]
},
{
"login": "pyvain",
"name": "Pyvain",
"avatar_url": "https://avatars3.githubusercontent.com/u/2924494?v=4",
"profile": "https://github.com/pyvain",
"contributions": [
"code",
"doc"
]
},
{
"login": "jlebar",
"name": "Justin Lebar",
"avatar_url": "https://avatars1.githubusercontent.com/u/150663?v=4",
"profile": "http://jlebar.com",
"contributions": [
"code"
]
},
{
"login": "aareet",
"name": "Aareet Shermon",
"avatar_url": "https://avatars1.githubusercontent.com/u/33654?v=4",
"profile": "https://www.aareet.com",
"contributions": [
"design"
]
},
{
"login": "dgnicholson",
"name": "dgnicholson",
"avatar_url": "https://avatars1.githubusercontent.com/u/6208288?v=4",
"profile": "https://github.com/dgnicholson",
"contributions": [
"design",
"code"
]
},
{
"login": "msfjarvis",
"name": "Harsh Shandilya",
"avatar_url": "https://avatars0.githubusercontent.com/u/13348378?v=4",
"profile": "https://msfjarvis.dev",
"contributions": [
"code"
]
},
{
"login": "ProfessorLogout",
"name": "Marco Kamner",
"avatar_url": "https://avatars3.githubusercontent.com/u/13572444?v=4",
"profile": "https://twitter.com/ProfessorLogout",
"contributions": [
"code"
]
},
{
"login": "ewenme",
"name": "ewen",
"avatar_url": "https://avatars3.githubusercontent.com/u/10872821?v=4",
"profile": "https://ewen.io/",
"contributions": [
"code"
]
},
{
"login": "SanchithHegde",
"name": "Sanchith Hegde",
"avatar_url": "https://avatars2.githubusercontent.com/u/22217505?v=4",
"profile": "https://github.com/SanchithHegde",
"contributions": [
"code",
"doc"
]
},
{
"login": "CER10TY",
"name": "Sören Johanson",
"avatar_url": "https://avatars1.githubusercontent.com/u/5760400?v=4",
"profile": "https://soeren.codes",
"contributions": [
"code"
]
},
{
"login": "jdl031",
"name": "James Lloyd",
"avatar_url": "https://avatars3.githubusercontent.com/u/1720477?v=4",
"profile": "https://github.com/jdl031",
"contributions": [
"code"
]
},
{
"login": "wilsonehusin",
"name": "Wilson E. Husin",
"avatar_url": "https://avatars1.githubusercontent.com/u/14004487?v=4",
"profile": "http://wilsonehusin.com",
"contributions": [
"code"
]
},
{
"login": "tommorris",
"name": "Tom Morris",
"avatar_url": "https://avatars0.githubusercontent.com/u/175?v=4",
"profile": "https://tommorris.org/",
"contributions": [
"code"
]
},
{
"login": "sdil",
"name": "Mohamad Fadhil",
"avatar_url": "https://avatars0.githubusercontent.com/u/461537?v=4",
"profile": "http://twitter.com/sdil",
"contributions": [
"code"
]
},
{
"login": "skvale",
"name": "Sam Kvale",
"avatar_url": "https://avatars0.githubusercontent.com/u/5314713?v=4",
"profile": "https://github.com/skvale",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
"projectName": "hugo-theme-codex",
"projectOwner": "jakewies",
"repoType": "github",
"repoHost": "https://github.com",
"skipCi": true
}

11
themes/codex/.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
node_modules
# OS
.DS_Store
Thumbs.db
# IDEs
.vscode
# Hugo
public/

View File

@ -0,0 +1,11 @@
exampleSite/content
layouts
static
package.json
public
node_modules
.DS_Store
logs
*.log

View File

@ -0,0 +1,48 @@
# Contributing
First off, thank you for your time and effort! This project is not very large
and easy to jump into.
## Getting started
1. Fork and clone the repository
2. Install dependencies:
```bash
cd hugo-theme-codex
yarn install
```
## Scripts
```bash
yarn develop
```
Triggers a one-time build of the static directory.
```bash
yarn format
```
Runs prettier on the entire project directory.
## Assets
The `assets/` directory is where you can write JS and SCSS, which get processed
into CSS files before being placed in the `static/` directory.
### Making `scss` changes
If you make a change to a source `scss` file in `assets/scss`, you will need to make sure that you rebuild the `exampleSite/resources/_gen/assets/` directory to reflect the change in the demo site, else the demo's styles will become stale.
If you are running `yarn develop`, `hugo` will pick up these changes by default. You can also run `yarn build:example`, which will trigger a one-time rebuild of the example site. From there, commit the updated `resources/_gen` directory to version control.
## Questions
If you have any questions feel free to reach out to me directly. Best ways to
contact me:
- Twitter: https://twitter.com/jakewies
- Email: jakewiesler@gmail.com

20
themes/codex/LICENSE.md Normal file
View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2020 YOUR_NAME_HERE
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

253
themes/codex/README.md Normal file
View File

@ -0,0 +1,253 @@
## Codex
A minimal blog theme built for [Hugo](https://gohugo.io/) 🍜
![Hugo desktop screenshot](/images/screenshot.png)
- An about page 👋🏻 and a blog 📝
- Blog posts can be tagged 🏷
- Mathematical notations are supported with KaTex 📐
- Sass/SCSS for styling ✨
- Support for Google Analytics 📈 and Disqus 💬
### Prerequisites
Hugo **extended version** (for Sass/SCSS support).
For macOS users, the extended version is installed by default if you use `homebrew`.
For Windows users, you can install with `choco`:
```
choco install hugo-extended -confirm
```
### Getting started
At the root of your Hugo project, run:
```bash
git submodule add https://github.com/jakewies/hugo-theme-codex.git themes/hugo-theme-codex
```
Next, copy the contents of the [`exampleSite/config.toml`](https://github.com/jakewies/hugo-theme-codex/blob/master/exampleSite/config.toml) to your site's `config.toml`. Make sure to read all the comments, as there a few nuances with Hugo themes that require some changes to that file.
The most important change you will need to make to the `config.toml` is removing [this line](https://github.com/jakewies/hugo-theme-codex/blob/master/exampleSite/config.toml#L2):
```
themesDir = "../../"
```
It only exists in the example site so that the demo can function properly.
Finally, run:
```
hugo server -D
```
**Note: If you are seeing a blank page it is probably because you have nothing in your `content/` directory. Read on to fix that.**
### Configuring the Home Page
The site's home page can be configured by creating a `content/_index.md` file. This file can use the following frontmatter:
```md
---
heading: "Hi, I'm Codex"
subheading: "A minimal blog theme for hugo."
handle: "hugo-theme-codex"
---
```
If you would rather override the about page's layout with your own, you can do so by creating a `layouts/index.html`. You can find the `index.html` file that `hugo-theme-codex` uses [here](https://github.com/jakewies/hugo-theme-codex/blob/master/layouts/index.html).
### Configuring Social Icons
Social Icons are optional. To show any of these icons, just provide the value in the `[params]` section of `config.toml`.
```toml
# config.toml
[params]
twitter = "https://twitter.com/GoHugoIO"
github = "https://github.com/jakewies/hugo-theme-codex"
# ...
iconOrder = ["Twitter", "GitHub"]
```
If any of these options are given, `hugo-theme-codex` will render the social icon in the footer, using the order specified in `iconOrder`.
See the contents of the [example site](https://github.com/jakewies/hugo-theme-codex/tree/master/exampleSite) for more details.
You can also create additional social icons by:
1. Adding your own SVGs in `static/svg/`, for example `static/svg/reddit.svg`.
2. Modifying your site's config as follows:
```toml
[params]
# ...
reddit = "<url to your reddit>"
iconOrder = ["Reddit"]
```
Make sure that the icon title must match the icon's file name. If the title contains more than one word, say "My Awesome Site",
you can use dash "-" for the icon name: `my-awesome-site.svg`.
### Creating a blog post
You can create a new blog post page by going to the root of your project and typing:
```
hugo new blog/:blog-post.md
```
Where `:blog-post.md` is the name of the file of your new post.
This will execute the theme's `blog` archetype to create a new markdown file in `contents/blog/:blog-post.md` with the following frontmatter:
```md
# Default post frontmatter:
# The title of your post. Default value is generated
# From the markdown filename
title: "{{ replace .TranslationBaseName "-" " " | title }}"
# The date the post was created
date: {{ .Date }}
# The post filename
slug: ""
# Post description used for seo
description: ""
# Post keywords used for seo
keywords: []
# If true, the blog post will not be included in static build
draft: true
# Categorize your post with tags
tags: []
# Uses math typesetting
math: false
# Includes a table of contents on screens >1024px
toc: false
```
The frontmatter above is the default for a new post, but all values can be changed.
### Configuring Table of Contents in blog posts
To display post title in Table of Contents in blog posts, set `showPageTitleInTOC`
to `true` in the `[params]` section of `config.toml`.
```toml
# config.toml
[params]
# ...
showPageTitleInTOC = true
```
### Adding a new section menu
In your site's `config.toml`, add a new menu definition for say, "photos":
```toml
# config.toml
[[menu.main]]
identifier = "photos"
name = "photos"
title = "Photos"
url = "/photos"
```
Then, put your posts under "content/photos".
### Custom styling
You have two options for custom styling. The first is to create an `assets/scss/custom.scss` in your project and put your custom styling there. For example, the snippet below changes the dot's color on your About page to blue:
```scss
// custom.scss
.fancy {
color: #1e88e5;
}
```
You can even use Hugo variables/params in your custom styles too!
```scss
// custom.scss
.fancy {
color: {{ .Site.Params.colors.fancy | default "#1e88e5" }}
}
```
```toml
# config.toml
[params.colors]
fancy = "#f06292"
```
The second option is to use the supported scss overrides. You can do this by creating an `assets/scss/overrides/scss` file in your project. The following overrides are supported:
```scss
// overrides.scss
// The primary accent color used throughout the site
$primary: ''
```
### Tags
Right now `hugo-theme-codex` uses the `tags` taxonomy for blog posts. You can view all the blog posts of a given tag by going to `/tags/:tag-name`, where `:tag-name` is the name of your tag.
### Favicon
To update favicon of the site, replace the one in `static/favicon.ico` with your own.
## Contributing
Check out the [CONTRIBUTORS.md file](https://github.com/jakewies/hugo-theme-codex/blob/master/CONTRIBUTING.md) for more info on how you can contribute!
## Contributors ✨
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-19-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://www.jakewiesler.com"><img src="https://avatars1.githubusercontent.com/u/12075916?v=4" width="100px;" alt=""/><br /><sub><b>Jake Wiesler</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=jakewies" title="Code">💻</a> <a href="#design-jakewies" title="Design">🎨</a> <a href="https://github.com/jakewies/hugo-theme-codex/commits?author=jakewies" title="Documentation">📖</a></td>
<td align="center"><a href="https://www.chuxinhuang.com/"><img src="https://avatars2.githubusercontent.com/u/30974572?v=4" width="100px;" alt=""/><br /><sub><b>Chuxin Huang</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=chuxinh" title="Documentation">📖</a> <a href="https://github.com/jakewies/hugo-theme-codex/commits?author=chuxinh" title="Code">💻</a> <a href="#design-chuxinh" title="Design">🎨</a></td>
<td align="center"><a href="https://kentnek.com"><img src="https://avatars1.githubusercontent.com/u/7024160?v=4" width="100px;" alt=""/><br /><sub><b>Kent</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=kentnek" title="Code">💻</a> <a href="https://github.com/jakewies/hugo-theme-codex/commits?author=kentnek" title="Documentation">📖</a> <a href="#design-kentnek" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/somaniarushi"><img src="https://avatars3.githubusercontent.com/u/54224195?v=4" width="100px;" alt=""/><br /><sub><b>Arushi Somani</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=somaniarushi" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/xvallspl"><img src="https://avatars0.githubusercontent.com/u/867299?v=4" width="100px;" alt=""/><br /><sub><b>Xavier Valls</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=xvallspl" title="Documentation">📖</a> <a href="https://github.com/jakewies/hugo-theme-codex/commits?author=xvallspl" title="Code">💻</a> <a href="#design-xvallspl" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/pyvain"><img src="https://avatars3.githubusercontent.com/u/2924494?v=4" width="100px;" alt=""/><br /><sub><b>Pyvain</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=pyvain" title="Code">💻</a> <a href="https://github.com/jakewies/hugo-theme-codex/commits?author=pyvain" title="Documentation">📖</a></td>
<td align="center"><a href="http://jlebar.com"><img src="https://avatars1.githubusercontent.com/u/150663?v=4" width="100px;" alt=""/><br /><sub><b>Justin Lebar</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=jlebar" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.aareet.com"><img src="https://avatars1.githubusercontent.com/u/33654?v=4" width="100px;" alt=""/><br /><sub><b>Aareet Shermon</b></sub></a><br /><a href="#design-aareet" title="Design">🎨</a></td>
<td align="center"><a href="https://github.com/dgnicholson"><img src="https://avatars1.githubusercontent.com/u/6208288?v=4" width="100px;" alt=""/><br /><sub><b>dgnicholson</b></sub></a><br /><a href="#design-dgnicholson" title="Design">🎨</a> <a href="https://github.com/jakewies/hugo-theme-codex/commits?author=dgnicholson" title="Code">💻</a></td>
<td align="center"><a href="https://msfjarvis.dev"><img src="https://avatars0.githubusercontent.com/u/13348378?v=4" width="100px;" alt=""/><br /><sub><b>Harsh Shandilya</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=msfjarvis" title="Code">💻</a></td>
<td align="center"><a href="https://twitter.com/ProfessorLogout"><img src="https://avatars3.githubusercontent.com/u/13572444?v=4" width="100px;" alt=""/><br /><sub><b>Marco Kamner</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=ProfessorLogout" title="Code">💻</a></td>
<td align="center"><a href="https://ewen.io/"><img src="https://avatars3.githubusercontent.com/u/10872821?v=4" width="100px;" alt=""/><br /><sub><b>ewen</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=ewenme" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/SanchithHegde"><img src="https://avatars2.githubusercontent.com/u/22217505?v=4" width="100px;" alt=""/><br /><sub><b>Sanchith Hegde</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=SanchithHegde" title="Code">💻</a> <a href="https://github.com/jakewies/hugo-theme-codex/commits?author=SanchithHegde" title="Documentation">📖</a></td>
<td align="center"><a href="https://soeren.codes"><img src="https://avatars1.githubusercontent.com/u/5760400?v=4" width="100px;" alt=""/><br /><sub><b>Sören Johanson</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=CER10TY" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/jdl031"><img src="https://avatars3.githubusercontent.com/u/1720477?v=4" width="100px;" alt=""/><br /><sub><b>James Lloyd</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=jdl031" title="Code">💻</a></td>
<td align="center"><a href="http://wilsonehusin.com"><img src="https://avatars1.githubusercontent.com/u/14004487?v=4" width="100px;" alt=""/><br /><sub><b>Wilson E. Husin</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=wilsonehusin" title="Code">💻</a></td>
<td align="center"><a href="https://tommorris.org/"><img src="https://avatars0.githubusercontent.com/u/175?v=4" width="100px;" alt=""/><br /><sub><b>Tom Morris</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=tommorris" title="Code">💻</a></td>
<td align="center"><a href="http://twitter.com/sdil"><img src="https://avatars0.githubusercontent.com/u/461537?v=4" width="100px;" alt=""/><br /><sub><b>Mohamad Fadhil</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=sdil" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/skvale"><img src="https://avatars0.githubusercontent.com/u/5314713?v=4" width="100px;" alt=""/><br /><sub><b>Sam Kvale</b></sub></a><br /><a href="https://github.com/jakewies/hugo-theme-codex/commits?author=skvale" title="Code">💻</a></td>
</tr>
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

View File

@ -0,0 +1,11 @@
---
title: "{{ replace .TranslationBaseName "-" " " | title }}"
date: {{ .Date }}
slug: ""
description: ""
keywords: []
draft: true
tags: []
math: false
toc: false
---

View File

@ -0,0 +1,7 @@
---
title: "{{ replace .TranslationBaseName "-" " " | title }}"
description: ""
date: {{ .Date }}
keywords: []
draft: true
---

View File

@ -0,0 +1,19 @@
/*
* Handles mobile nav
*/
function toggleMobileNavState() {
const body = document.querySelector("body");
body.classList.toggle("nav--active");
}
/*
* Initializes burger functionality
*/
function initBurger() {
const burger = document.querySelector(".burger");
burger.addEventListener("click", toggleMobileNavState);
}
initBurger();

View File

@ -0,0 +1,22 @@
@import "partials/vars";
@import "partials/normalize";
@import "partials/reset";
@import "partials/typography";
@import "partials/nav";
@import "partials/social-icons";
body.nav--active {
overflow: hidden;
}
main {
padding: 3rem 1.5rem 1rem;
@media screen and (min-width: $medium) {
padding-left: calc(1.5rem + #{$navWidth});
}
@media screen and (max-width: $medium - 1) {
padding-top: calc(3rem + #{$burgerContainerHeight});
}
}

View File

@ -0,0 +1,4 @@
// The following variables can be overridden
// The primary accent color can take any css color property, including hex, named props, rgba etc.
// $primary:

View File

@ -0,0 +1,60 @@
@import "../main";
.splash-container {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
font-size: 14px;
@media screen and (min-width: $medium) {
font-size: 18px;
}
}
.splash {
h1 {
font-size: 3em;
line-height: 1;
letter-spacing: -0.03em;
margin: 0;
}
h2 {
font-size: 2.25em;
font-weight: 500;
line-height: 1.25;
max-width: 22em;
letter-spacing: -0.03em;
}
}
.fancy {
color: $primary;
}
.handle {
display: inline-block;
margin-top: 0.275em;
color: $grey;
letter-spacing: 0.5px;
}
.writing {
text-decoration: none;
color: $primary;
}
/* overrides */
main {
padding-top: 0;
padding-bottom: 0;
height: 100%;
}
.social-icons {
justify-content: flex-start;
padding-top: 1rem;
margin-left: -0.8rem; // offset to negate icon's padding to align with text above
}

View File

@ -0,0 +1,241 @@
@import "../main";
@import "../partials/github-syntax-highlighting";
$tocBreakpoint: 1024px;
/* Aligns ToC content */
.flex-wrapper {
display: flex;
}
.post__container {
flex-grow: 1;
min-width: 0;
}
.post {
width: 100%;
max-width: 34rem;
margin: 0 auto;
h2,
h3 {
position: relative;
padding-top: 10px;
.anchor {
top: 0.5rem;
text-decoration: none;
position: absolute;
left: -1rem;
color: $grey;
font-size: 1.2rem;
font-weight: 400;
}
.anchor:hover {
color: $darkGrey;
}
}
blockquote {
width: 95%;
margin: 0 auto;
font-size: 1rem;
a {
color: $darkGrey;
text-decoration: underline;
}
}
img {
width: 100%;
max-width: 500px;
margin: 0 auto;
display: block;
}
}
#post__title {
margin-top: 0;
margin-bottom: 0.5rem;
}
.post__date {
color: $grey;
font-size: 0.8rem;
}
.post__footer {
padding-top: 3rem;
}
.toc-container {
position: sticky;
align-self: start;
top: 3rem;
max-width: 350px;
@media screen and (max-width: $tocBreakpoint) {
display: none;
}
}
.toc-post-title {
font-size: 0.9rem;
margin-bottom: 0.8rem;
}
#TableOfContents {
ul {
list-style: none;
margin: 0;
}
a {
text-decoration: none;
color: #9b9b9b;
font-size: 0.9rem;
}
a.active {
color: rgb(51, 51, 51);
}
}
.tags__list {
padding-right: 1.5rem;
margin: 1.5rem 0 0;
list-style: none;
display: flex;
justify-content: flex-end;
}
.tag__item {
margin-right: 1rem;
display: inline-block;
&:last-child {
margin-right: 0;
}
}
.tag__link {
display: inline-block;
text-decoration: none;
padding: 0.2em 0.4em;
border-radius: 3px;
background: lighten($primary, 41%);
color: $primary;
font-size: 0.8rem;
&:hover {
background: lighten($primary, 38%);
}
}
.gif {
margin-top: 1.5rem;
img {
max-width: 375px;
}
}
.pagination {
display: flex;
flex-direction: column;
margin-top: 1.5rem;
@media screen and (min-width: 600px) {
flex-direction: row;
justify-content: space-between;
}
}
.pagination__item {
text-decoration: none;
display: flex;
flex-direction: column;
&:nth-child(2) {
margin-top: 1.5rem;
}
@media screen and (min-width: 600px) {
width: 275px;
padding: 15px;
border-radius: 4px;
&:first-of-type {
padding-right: 15px;
}
&:last-of-type {
margin-top: 0;
}
&:hover {
background-color: #f6f9fc;
}
}
}
.pagination__label {
color: $grey;
font-size: 0.8rem;
}
.pagination__title {
color: $black;
font-weight: 700;
margin-top: 0.25rem;
}
footer {
text-align: center;
padding: 0 1.5rem;
background: $white;
p {
margin-top: 1rem; // reduce margin top due to social icons' padding
color: $grey;
font-size: 0.65rem;
}
}
/* overrides */
.post__content {
ul {
list-style: none;
li {
margin-bottom: 0.5rem;
&::before {
content: "-";
color: $darkGrey;
position: absolute;
margin-left: -15px;
}
}
}
}
.twitter-tweet.twitter-tweet-rendered {
margin: 1.5rem auto !important;
width: 375px !important;
}
table {
max-width: 100%;
border-spacing: 0;
thead {
background: $lightGrey;
}
th,
td {
padding: 0.5em 1em;
border: 1px double $greyTableBorder;
}
}

View File

@ -0,0 +1,57 @@
@import "../main";
@import "../partials/post-list";
.tags__list {
list-style: none;
margin: 0;
padding: 0 0 0 50px;
flex-shrink: 0;
@media screen and (max-width: $medium - 1) {
display: none;
}
}
.post__header .tags__list {
display: none;
padding-left: 0;
@media screen and (max-width: $medium - 1) {
display: block;
}
.tag__item {
display: inline-block;
margin-right: 10px;
&:last-child {
margin-right: 0;
}
}
.tag__link {
font-size: 0.8rem;
}
}
.tag__link {
text-decoration: none;
color: $grey;
font-size: 0.9rem;
&::before {
content: "#";
font-size: 0.7rem;
padding-right: 1px;
}
&:hover {
color: $darkGrey;
}
}
/* page overrides */
.post-list__container {
display: flex;
justify-content: space-between;
}

View File

@ -0,0 +1,28 @@
@import "../main";
@import "../partials/post-list";
.tag__header {
align-items: baseline;
display: flex;
margin: 0 auto 3rem;
a,
.separator {
color: $grey;
font-size: 1.5rem;
}
a {
text-decoration: none;
}
.separator {
align-self: center;
margin: 0 5px;
}
.tag__term {
margin: 0;
font-weight: 600;
}
}

View File

@ -0,0 +1,55 @@
.burger__container {
height: $burgerContainerHeight;
display: flex;
align-items: center;
padding: 0 1.5rem;
position: fixed;
width: 100%;
background: $white;
z-index: 2;
@media screen and (min-width: $medium) {
display: none;
}
}
.burger {
position: relative;
width: $meatWidth;
height: $meatWidth;
cursor: pointer;
}
.burger__meat {
position: absolute;
width: $meatWidth;
height: $meatHeight;
background: $black;
top: calc(50% - #{$meatHeight} / 2);
left: calc(50% - #{$meatWidth} / 2);
transition: all 150ms ease-in;
}
.burger__meat--1 {
transform: translateY(-10px);
}
.burger__meat--2 {
width: calc(#{$meatWidth} - 6px);
}
.burger__meat--3 {
transform: translateY(10px);
}
.nav--active .burger__meat--1 {
transform: rotate(45deg);
}
.nav--active .burger__meat--2 {
opacity: 0;
}
.nav--active .burger__meat--3 {
transform: rotate(-45deg);
}

View File

@ -0,0 +1,108 @@
code[class*="language-"],
pre[class*="language-"] {
color: #24292e;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata,
.token.plain-text {
color: #6a737d;
}
.token.atrule,
.token.attr-value,
.token.keyword,
.token.operator {
color: #d73a49;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #22863a;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #032f62;
}
.token.function,
.token.class-name {
color: #6f42c1;
}
/* language-specific */
/* JSX */
.language-jsx .token.punctuation,
.language-jsx .token.tag .token.punctuation,
.language-jsx .token.tag .token.script,
.language-jsx .token.plain-text {
color: #24292e;
}
.language-jsx .token.tag .token.attr-name {
color: #6f42c1;
}
.language-jsx .token.tag .token.class-name {
color: #005cc5;
}
.language-jsx .token.tag .token.script-punctuation,
.language-jsx .token.attr-value .token.punctuation:first-child {
color: #d73a49;
}
.language-jsx .token.attr-value {
color: #032f62;
}
.language-jsx span[class="comment"] {
color: pink;
}
/* HTML */
.language-html .token.tag .token.punctuation {
color: #24292e;
}
.language-html .token.tag .token.attr-name {
color: #6f42c1;
}
.language-html .token.tag .token.attr-value,
.language-html
.token.tag
.token.attr-value
.token.punctuation:not(:first-child) {
color: #032f62;
}
/* CSS */
.language-css .token.selector {
color: #6f42c1;
}
.language-css .token.property {
color: #005cc5;
}

View File

@ -0,0 +1,82 @@
@import "burger";
.nav {
font-size: 16px;
position: fixed;
display: flex;
justify-content: center;
align-items: center;
background: $white;
visibility: hidden;
z-index: 1;
@media screen and (min-width: $medium) {
display: block;
visibility: visible;
padding-top: 3em;
width: $navWidth;
}
}
.nav--active .nav {
visibility: visible;
height: 100%;
width: 100%;
@media screen and (min-width: $medium) {
width: $navWidth;
}
}
.nav__list {
text-align: right;
list-style: none;
margin: 0;
padding: 0;
width: 50%;
@media screen and (min-width: $medium) {
width: auto;
}
@media screen and (max-width: $medium - 1) {
transform: translateY(-25px);
opacity: 0;
.nav--active & {
transform: translateY(0);
opacity: 1;
transition: all 500ms ease;
}
}
}
.nav__list li {
margin-bottom: 3em;
line-height: 1.5em;
&:last-of-type {
margin-bottom: 0;
}
@media screen and (min-width: $medium) {
margin-bottom: 1.75em;
}
}
.nav__list a {
color: $grey;
text-decoration: none;
font-size: 2em;
&.active {
color: $black;
}
&:hover {
color: $black;
}
@media screen and (min-width: $medium) {
font-size: 1em;
}
}

View File

@ -0,0 +1,14 @@
button,
button[type="button"],
button[type="reset"],
button[type="submit"] {
-webkit-appearance: button;
}
input,
input[type="text"],
input[type="email"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}

View File

@ -0,0 +1,19 @@
.paginator-container {
position: absolute;
width: 100%;
text-align: center;
}
.paginator {
display: inline-block;
height: 24px;
width: 24px;
margin: 0 1.5rem;
background-image: url(/svg/chevron-left.svg);
background-size: contain;
background-repeat: no-repeat;
}
.paginator--right {
transform: rotate(180deg);
}

View File

@ -0,0 +1,34 @@
.post-list__container {
margin: 0 auto;
max-width: 1200px;
width: 100%;
@media screen and (min-width: $medium) {
padding-left: 50px;
}
}
.post-list {
list-style: none;
margin: 0;
padding: 0;
}
.post {
margin-bottom: 1.5rem;
}
.post__title {
margin-top: 0;
font-weight: 500;
a {
color: $black;
text-decoration: none;
}
}
.post__date {
color: $grey;
font-size: 0.8rem;
}

View File

@ -0,0 +1,18 @@
html,
body {
background-color: $white;
color: $black;
height: 100%;
}
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
padding: 0;
margin: 0;
box-sizing: inherit;
}

View File

@ -0,0 +1,19 @@
.social-icons {
display: flex;
justify-content: center;
}
.social-icons__link {
padding: 0.8rem;
&:not(:last-child) {
margin-right: 1em;
}
.social-icons__icon {
width: 1.4rem;
height: 1.4rem;
background-size: contain;
background-repeat: no-repeat;
}
}

View File

@ -0,0 +1,149 @@
$baseFontSize: 16;
$fontSizeMobile: 14;
$baseLineHeight: 1.5;
$scale: 1.414;
$leading: $baseLineHeight * 1rem;
html {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-webkit-font-smoothing: antialiased;
font-size: 95%;
@media screen and (min-width: $medium) {
font-size: 100%;
}
@media screen and (min-width: $large) {
font-size: 115%;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin-top: $leading;
margin-bottom: 0;
line-height: $leading;
}
h1 {
font-size: 1.5 * $scale * 1rem;
line-height: 1.5 * $leading;
margin-top: 1.5 * $leading;
}
h2 {
font-size: $scale * 1rem;
}
h3 {
font-size: ($scale / 1.2) * 1rem;
}
h4 {
font-size: ($scale / 1.44) * 1rem;
}
h5 {
font-size: ($scale / 1.728) * 1rem;
}
p {
margin-top: $leading;
margin-bottom: 0;
line-height: $leading;
}
ul,
ol {
padding-left: $leading;
margin-top: $leading;
margin-bottom: $leading;
li {
line-height: $leading;
}
ul,
ol {
margin-top: 0;
margin-bottom: 0;
}
}
blockquote {
&::before {
position: absolute;
content: "\201C";
font-size: 6em;
font-family: "Roboto", serif;
margin-top: 0.1em;
margin-left: -0.2em;
z-index: -1;
color: darken($white, 7%);
}
margin-top: $leading;
margin-bottom: $leading;
line-height: $leading;
color: $black;
cite {
&::before {
content: "";
}
font-style: italic;
font-size: 0.95em;
color: $darkGrey;
}
}
pre {
line-height: 1.45;
margin-top: $leading;
padding: 16px;
word-wrap: normal;
overflow: auto;
background-color: #f6f8fa;
border-radius: 3px;
}
code {
font-size: 85%;
font-family: "SFMono-Regular", Consolas, Menlo, monospace;
padding: 0.2em 0.4em;
margin: 0;
background-color: rgba(27, 31, 35, 0.05);
border-radius: 3px;
}
pre > code {
word-break: normal;
white-space: pre;
}
pre code {
display: inline;
padding: 0;
margin: 0;
overflow: visible;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}
.lead {
font-size: $scale * 1rem;
}
abbr[title] {
text-decoration: underline double;
}

View File

@ -0,0 +1,21 @@
$navWidth: 100px;
$meatWidth: 28px;
$meatHeight: 2px;
$burgerContainerHeight: 4rem;
// colors
$black: #111;
$lightGrey: #f7f7f7;
$greyTableBorder: #eeeeee;
$grey: #9b9b9b;
$darkGrey: #717171;
$white: #fff;
$primary: #9013fe;
// screenSizes
$medium: 800px;
$large: 1400px;
// import site overrides after variables after
// variables have been declared
@import "../overrides";

View File

@ -0,0 +1,73 @@
# REMOVE THIS
themesDir = "../../"
# DO NOT REMOVE THIS
theme = "hugo-theme-codex"
# Override these settings with your own
title = "codex"
languageCode = "en-us"
baseURL = "https://example.org/"
copyright = "© {year}"
# Add your Disqus shortname here.
# disqusShortname = ""
# Add your Google Analytics identifier: UA-XXXXXXXX-X
# googleAnalytics = ""
# Optional params
[params]
# Follow the Hugo date/time format reference here:
# https://gohugo.io/functions/format/#gos-layout-string
dateFormat = "Jan 2 2006"
# Links to your social accounts, comment/uncomment as needed. Icons will be displayed for those specified.
twitter = "https://twitter.com/<your handle>"
github = "https://github.com/<your handle>"
# email = "mailto:<your email>"
# facebook = "https://facebook.com/<your handle>"
# gitlab = "https://gitlab.com/<your handle>"
# instagram = "https://instagram.com/<your handle>"
# linkedin = "<link to your profile>"
# youtube = "https://www.youtube.com/channel/<your channel>"
# Titles for your icons (shown as tooltips), and also their display order.
# Currently, these icons are supported:
# "Twitter", "GitHub", "Email", "Facebook", "GitLab", "Instagram", "LinkedIn", "YouTube"
iconOrder = ["Twitter", "GitHub"]
# Metadata for Twitter cards, defaults to params.twitter
# twitterSite = "@<your handle>"
# twitterAuthor = "@<your handle>"
# Set to true to display page title in table of contents in blog posts.
showPageTitleInTOC = false
# This disables Hugo's default syntax highlighting in favor
# of prismjs. If you wish to use Hugo's default syntax highlighting
# over prismjs, remove this. You will also need to remove the prismjs
# vendor script in layouts/blog/single.html.
[markup]
[markup.highlight]
codeFences = false
# Set to false to disallow raw HTML in markdown files
[markup.goldmark.renderer]
unsafe = true
# Controls the navigation
[[menu.main]]
identifier = "about"
name = "about"
title = "About"
url = "/"
[[menu.main]]
identifier = "blog"
name = "blog"
title = "Blog"
url = "/blog"

View File

@ -0,0 +1,5 @@
---
heading: "Hi, I'm Codex"
subheading: "A minimal blog theme for hugo."
handle: "hugo-theme-codex"
---

View File

@ -0,0 +1,23 @@
---
title: "Welcome To Codex"
date: 2020-06-04T09:19:29-04:00
slug: "example-post"
description: "This is an example post for hugo-theme-codex."
keywords: ["gohugo", "hugo", "go", "blog"]
draft: false
tags: ["hugo"]
math: false
toc: true
---
## The standard Lorem Ipsum passage
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
## written by Cicero in 45 BC
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
## 1914 translation by H. Rackham
"But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"

View File

@ -1,12 +1,14 @@
+++
author = "Hugo Authors"
title = "Markdown Syntax Guide"
date = "2019-03-11"
description = "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
tags = [
"hugoBasicSite",
]
+++
---
title: "Markdown Syntax Guide"
date: 2020-06-05
slug: "markdown-syntax-guide"
description: "Sample article showcasing basic Markdown syntax and formatting for HTML elements"
keywords: ["gohugo", "hugo", "go", "blog"]
draft: false
tags: ["markdown", "css", "html", "themes"]
math: false
toc: false
---
This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.
<!--more-->
@ -39,11 +41,11 @@ The blockquote element represents content that is quoted from another source, op
#### Blockquote with attribution
> Don't communicate by sharing memory, share memory by communicating.</p>
> <cite>Rob Pike[^1]</cite>
> Simplicity is the ultimate sophistication.
> <cite>Leonardo da Vinci[^1]</cite>
[^1]: The above quote is often attributed to Leonardo da Vinci but there is no concrete evidence to support this.
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
## Tables
@ -56,10 +58,14 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
#### Inline Markdown within tables
<div style="overflow-x: auto">
| Inline&nbsp;&nbsp;&nbsp; | Markdown&nbsp;&nbsp;&nbsp; | In&nbsp;&nbsp;&nbsp; | Table |
| ---------- | --------- | ----------------- | ---------- |
| *italics* | **bold** | ~~strikethrough~~&nbsp;&nbsp;&nbsp; | `code` |
</div>
## Code Blocks
#### Code block with backticks
@ -90,7 +96,7 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
</html>
#### Code block with Hugo's internal highlight shortcode
{{< highlight html >}}
```html
<!DOCTYPE html>
<html lang="en">
<head>
@ -101,7 +107,21 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
<p>Test</p>
</body>
</html>
{{< /highlight >}}
```
#### Wide code block
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example HTML5 Document</title>
</head>
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</body>
</html>
```
## List Types
@ -120,8 +140,8 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
#### Nested list
* Item
1. First Sub-item
2. Second Sub-item
1. First Sub-item
2. Second Sub-item
## Other Elements — abbr, sub, sup, kbd, mark
@ -134,4 +154,3 @@ X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.

View File

@ -0,0 +1,48 @@
---
title: "Math Typesetting"
date: 2020-06-05
slug: "math-typesetting"
description: "A brief guide to setup KaTeX"
keywords: ["gohugo", "hugo", "go", "blog"]
draft: false
tags: ["math"]
math: true
toc: false
---
Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.
<!--more-->
In this example we will be using [KaTeX](https://katex.org/)
- Create a partial under `/layouts/partials/math.html`
- Within this partial reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally.
- Include the partial in your templates like so:
```
{{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}
```
- To enable KaTex globally set the parameter `math` to `true` in a project's configuration
- To enable KaTex on a per page basis include the parameter `math: true` in content files.
**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
{{< math.inline >}}
{{ if or .Page.Params.math .Site.Params.math }}
<!-- KaTeX -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.css" integrity="sha384-dbVIfZGuN1Yq7/1Ocstc1lUEm+AT+/rCkibIcC/OmWo5f0EA48Vf8CytHzGrSwbQ" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.js" integrity="sha384-2BKqo+exmr9su6dir+qCw08N2ZKRucY4PrGQPPWU1A7FtlCGjmEGFqXCv5nyM5Ij" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
{{ end }}
{{</ math.inline >}}
### Examples
Inline math: $$ \varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887… $$
Block math:
$$
\sigma(t) = \cfrac{1}{1 + e^{-t}}
$$

View File

@ -1,40 +1,31 @@
+++
author = "Hugo Authors"
title = "Rich Content"
date = "2019-03-10"
description = "A brief description of Hugo Shortcodes"
tags = [
"hugoBasicSite",
]
+++
---
title: "Rich Content"
date: 2020-06-05
slug: "rich-text"
description: "A brief description of Hugo Shortcodes"
keywords: ["gohugo", "hugo", "go", "blog"]
draft: false
tags: ["shortcodes"]
math: false
toc: false
---
Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.
<!--more-->
---
## Instagram Simple Shortcode
{{< instagram_simple BGvuInzyFAe hidecaption >}}
<br>
---
## YouTube Privacy Enhanced Shortcode
{{< youtube ZJthWmvUzzc >}}
<br>
---
## Twitter Simple Shortcode
{{< twitter_simple 1085870671291310081 >}}
{{< tweet 1085870671291310081 >}}
<br>
---
## Vimeo Simple Shortcode

View File

@ -0,0 +1 @@
{"Target":"css/custom.min.e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css","MediaType":"text/css","Data":{"Integrity":"sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="}}

View File

@ -0,0 +1 @@
@charset "UTF-8";button,button[type=button],button[type=reset],button[type=submit]{-webkit-appearance:button}input,input[type=text],input[type=email]{-webkit-appearance:none;-moz-appearance:none;appearance:none}html,body{background-color:#fff;color:#111;height:100%}html{box-sizing:border-box}*,*:before,*:after{padding:0;margin:0;box-sizing:inherit}html{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,sans-serif;-webkit-font-smoothing:antialiased;font-size:95%}@media screen and (min-width:800px){html{font-size:100%}}@media screen and (min-width:1400px){html{font-size:115%}}h1,h2,h3,h4,h5,h6{margin-top:1.5rem;margin-bottom:0;line-height:1.5rem}h1{font-size:2.121rem;line-height:2.25rem;margin-top:2.25rem}h2{font-size:1.414rem}h3{font-size:1.17833333rem}h4{font-size:.98194444rem}h5{font-size:.81828704rem}p{margin-top:1.5rem;margin-bottom:0;line-height:1.5rem}ul,ol{padding-left:1.5rem;margin-top:1.5rem;margin-bottom:1.5rem}ul li,ol li{line-height:1.5rem}ul ul,ul ol,ol ul,ol ol{margin-top:0;margin-bottom:0}blockquote{margin-top:1.5rem;margin-bottom:1.5rem;line-height:1.5rem;color:#111}blockquote::before{position:absolute;content:"\201C";font-size:6em;font-family:roboto,serif;margin-top:.1em;margin-left:-.2em;z-index:-1;color:#ededed}blockquote cite{font-style:italic;font-size:.95em;color:#717171}blockquote cite::before{content:"— "}pre{line-height:1.45;margin-top:1.5rem;padding:16px;word-wrap:normal;overflow:auto;background-color:#f6f8fa;border-radius:3px}code{font-size:85%;font-family:sfmono-regular,Consolas,Menlo,monospace;padding:.2em .4em;margin:0;background-color:rgba(27,31,35,.05);border-radius:3px}pre>code{word-break:normal;white-space:pre}pre code{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.lead{font-size:1.414rem}abbr[title]{text-decoration:underline double}.burger__container{height:4rem;display:flex;align-items:center;padding:0 1.5rem;position:fixed;width:100%;background:#fff;z-index:2}@media screen and (min-width:800px){.burger__container{display:none}}.burger{position:relative;width:28px;height:28px;cursor:pointer}.burger__meat{position:absolute;width:28px;height:2px;background:#111;top:calc(50% - 2px/2);left:calc(50% - 28px/2);transition:all 150ms ease-in}.burger__meat--1{transform:translateY(-10px)}.burger__meat--2{width:calc(28px - 6px)}.burger__meat--3{transform:translateY(10px)}.nav--active .burger__meat--1{transform:rotate(45deg)}.nav--active .burger__meat--2{opacity:0}.nav--active .burger__meat--3{transform:rotate(-45deg)}.nav{font-size:16px;position:fixed;display:flex;justify-content:center;align-items:center;background:#fff;visibility:hidden;z-index:1}@media screen and (min-width:800px){.nav{display:block;visibility:visible;padding-top:3em;width:100px}}.nav--active .nav{visibility:visible;height:100%;width:100%}@media screen and (min-width:800px){.nav--active .nav{width:100px}}.nav__list{text-align:right;list-style:none;margin:0;padding:0;width:50%}@media screen and (min-width:800px){.nav__list{width:auto}}@media screen and (max-width:799px){.nav__list{transform:translateY(-25px);opacity:0}.nav--active .nav__list{transform:translateY(0);opacity:1;transition:all 500ms ease}}.nav__list li{margin-bottom:3em;line-height:1.5em}.nav__list li:last-of-type{margin-bottom:0}@media screen and (min-width:800px){.nav__list li{margin-bottom:1.75em}}.nav__list a{color:#9b9b9b;text-decoration:none;font-size:2em}.nav__list a.active{color:#111}.nav__list a:hover{color:#111}@media screen and (min-width:800px){.nav__list a{font-size:1em}}.social-icons{display:flex;justify-content:center}.social-icons__link{padding:.8rem}.social-icons__link:not(:last-child){margin-right:1em}.social-icons__link .social-icons__icon{width:1.4rem;height:1.4rem;background-size:contain;background-repeat:no-repeat}body.nav--active{overflow:hidden}main{padding:3rem 1.5rem 1rem}@media screen and (min-width:800px){main{padding-left:calc(1.5rem + 100px)}}@media screen and (max-width:799px){main{padding-top:calc(3rem + 4rem)}}.splash-container{height:100%;display:flex;justify-content:center;align-items:center;font-size:14px}@media screen and (min-width:800px){.splash-container{font-size:18px}}.splash h1{font-size:3em;line-height:1;letter-spacing:-.03em;margin:0}.splash h2{font-size:2.25em;font-weight:500;line-height:1.25;max-width:22em;letter-spacing:-.03em}.fancy{color:#9013fe}.handle{display:inline-block;margin-top:.275em;color:#9b9b9b;letter-spacing:.5px}.writing{text-decoration:none;color:#9013fe}main{padding-top:0;padding-bottom:0;height:100%}.social-icons{justify-content:flex-start;padding-top:1rem;margin-left:-.8rem}

View File

@ -0,0 +1 @@
{"Target":"css/about.min.faa0cdf2d211fbe1d8399c340d898781f94b8e9a9d0e53657a5b8bf7c13e990b.css","MediaType":"text/css","Data":{"Integrity":"sha256-+qDN8tIR++HYOZw0DYmHgflLjpqdDlNleluL98E+mQs="}}

View File

@ -0,0 +1 @@
{"Target":"css/post.min.b60e0932fe1c50c3d7c5b4f83ee9e4592363654d0f2abf05bbd0678d5b8a214c.css","MediaType":"text/css","Data":{"Integrity":"sha256-tg4JMv4cUMPXxbT4PunkWSNjZU0PKr8Fu9BnjVuKIUw="}}

View File

@ -0,0 +1 @@
{"Target":"css/posts.min.9d00414be708b07c685f180cfce5239fac4e85078a970260044342d7422f18f8.css","MediaType":"text/css","Data":{"Integrity":"sha256-nQBBS+cIsHxoXxgM/OUjn6xOhQeKlwJgBENC10IvGPg="}}

View File

@ -0,0 +1 @@
@charset "UTF-8";button,button[type=button],button[type=reset],button[type=submit]{-webkit-appearance:button}input,input[type=text],input[type=email]{-webkit-appearance:none;-moz-appearance:none;appearance:none}html,body{background-color:#fff;color:#111;height:100%}html{box-sizing:border-box}*,*:before,*:after{padding:0;margin:0;box-sizing:inherit}html{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen-Sans,Ubuntu,Cantarell,helvetica neue,sans-serif;-webkit-font-smoothing:antialiased;font-size:95%}@media screen and (min-width:800px){html{font-size:100%}}@media screen and (min-width:1400px){html{font-size:115%}}h1,h2,h3,h4,h5,h6{margin-top:1.5rem;margin-bottom:0;line-height:1.5rem}h1{font-size:2.121rem;line-height:2.25rem;margin-top:2.25rem}h2{font-size:1.414rem}h3{font-size:1.17833333rem}h4{font-size:.98194444rem}h5{font-size:.81828704rem}p{margin-top:1.5rem;margin-bottom:0;line-height:1.5rem}ul,ol{padding-left:1.5rem;margin-top:1.5rem;margin-bottom:1.5rem}ul li,ol li{line-height:1.5rem}ul ul,ul ol,ol ul,ol ol{margin-top:0;margin-bottom:0}blockquote{margin-top:1.5rem;margin-bottom:1.5rem;line-height:1.5rem;color:#111}blockquote::before{position:absolute;content:"\201C";font-size:6em;font-family:roboto,serif;margin-top:.1em;margin-left:-.2em;z-index:-1;color:#ededed}blockquote cite{font-style:italic;font-size:.95em;color:#717171}blockquote cite::before{content:"— "}pre{line-height:1.45;margin-top:1.5rem;padding:16px;word-wrap:normal;overflow:auto;background-color:#f6f8fa;border-radius:3px}code{font-size:85%;font-family:sfmono-regular,Consolas,Menlo,monospace;padding:.2em .4em;margin:0;background-color:rgba(27,31,35,.05);border-radius:3px}pre>code{word-break:normal;white-space:pre}pre code{display:inline;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.lead{font-size:1.414rem}abbr[title]{text-decoration:underline double}.burger__container{height:4rem;display:flex;align-items:center;padding:0 1.5rem;position:fixed;width:100%;background:#fff;z-index:2}@media screen and (min-width:800px){.burger__container{display:none}}.burger{position:relative;width:28px;height:28px;cursor:pointer}.burger__meat{position:absolute;width:28px;height:2px;background:#111;top:calc(50% - 2px/2);left:calc(50% - 28px/2);transition:all 150ms ease-in}.burger__meat--1{transform:translateY(-10px)}.burger__meat--2{width:calc(28px - 6px)}.burger__meat--3{transform:translateY(10px)}.nav--active .burger__meat--1{transform:rotate(45deg)}.nav--active .burger__meat--2{opacity:0}.nav--active .burger__meat--3{transform:rotate(-45deg)}.nav{font-size:16px;position:fixed;display:flex;justify-content:center;align-items:center;background:#fff;visibility:hidden;z-index:1}@media screen and (min-width:800px){.nav{display:block;visibility:visible;padding-top:3em;width:100px}}.nav--active .nav{visibility:visible;height:100%;width:100%}@media screen and (min-width:800px){.nav--active .nav{width:100px}}.nav__list{text-align:right;list-style:none;margin:0;padding:0;width:50%}@media screen and (min-width:800px){.nav__list{width:auto}}@media screen and (max-width:799px){.nav__list{transform:translateY(-25px);opacity:0}.nav--active .nav__list{transform:translateY(0);opacity:1;transition:all 500ms ease}}.nav__list li{margin-bottom:3em;line-height:1.5em}.nav__list li:last-of-type{margin-bottom:0}@media screen and (min-width:800px){.nav__list li{margin-bottom:1.75em}}.nav__list a{color:#9b9b9b;text-decoration:none;font-size:2em}.nav__list a.active{color:#111}.nav__list a:hover{color:#111}@media screen and (min-width:800px){.nav__list a{font-size:1em}}.social-icons{display:flex;justify-content:center}.social-icons__link{padding:.8rem}.social-icons__link:not(:last-child){margin-right:1em}.social-icons__link .social-icons__icon{width:1.4rem;height:1.4rem;background-size:contain;background-repeat:no-repeat}body.nav--active{overflow:hidden}main{padding:3rem 1.5rem 1rem}@media screen and (min-width:800px){main{padding-left:calc(1.5rem + 100px)}}@media screen and (max-width:799px){main{padding-top:calc(3rem + 4rem)}}.post-list__container{margin:0 auto;max-width:1200px;width:100%}@media screen and (min-width:800px){.post-list__container{padding-left:50px}}.post-list{list-style:none;margin:0;padding:0}.post{margin-bottom:1.5rem}.post__title{margin-top:0;font-weight:500}.post__title a{color:#111;text-decoration:none}.post__date{color:#9b9b9b;font-size:.8rem}.tag__header{align-items:baseline;display:flex;margin:0 auto 3rem}.tag__header a,.tag__header .separator{color:#9b9b9b;font-size:1.5rem}.tag__header a{text-decoration:none}.tag__header .separator{align-self:center;margin:0 5px}.tag__header .tag__term{margin:0;font-weight:600}

View File

@ -0,0 +1 @@
{"Target":"css/tags.min.366a1c4761304f40d7ab2549c070344a1c8cfbfefc263bb2187aa968d9f66612.css","MediaType":"text/css","Data":{"Integrity":"sha256-NmocR2EwT0DXqyVJwHA0ShyM+/78JjuyGHqpaNn2ZhI="}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
themes/codex/images/tn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -0,0 +1,7 @@
{{ define "main" }}
<article>
<h1>
This is not the page you were looking for
</h1>
</article>
{{ end }}

View File

@ -0,0 +1,4 @@
<a href="{{ .Destination | safeURL }}" {{ with .Title}} title="{{ . }}" {{ end }}
{{ if strings.HasPrefix .Destination "mailto" }} target="_blank" {{ end }}
{{ if strings.HasPrefix .Destination "http" }} target="_blank" rel="noreferrer noopener" {{ end }}
>{{ .Text | safeHTML }}</a>

View File

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
<head>
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}</title>
<meta charset="UTF-8">
<meta name="language" content="en">
<meta name="description" content="{{ if .IsHome}}{{ .Site.Params.Description }}{{ else }}{{.Page.Params.Description}}{{ end }}">
<meta name="keywords" content="{{ delimit .Keywords " , " }}">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Twitter -->
{{ if isset .Site.Params "twitter" }}
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="{{ .Title }}" />
<meta name="twitter:description" content="{{ if .IsHome }}{{ htmlEscape .Site.Params.description }}{{ else }}{{ htmlEscape .Description }}{{ end }}"/>
<meta name="twitter:site" content="{{ .Site.Params.twitterSite | default .Site.Params.twitter }}" />
<meta name="twitter:creator" content="{{ .Site.Params.twitterCreator | default .Site.Params.twitter }}" />
{{ end }}
{{ partial "favicon.html" }}
<!-- Styles -->
{{ block "styles" . }} {{ end }} <!-- Get "style_opts" variable from "styles" block -->
{{ $base_styles_opts := .Scratch.Get "style_opts" | default (dict "src" "scss/pages/about.scss" "dest" "css/about.css") }}
{{ $custom_styles_opts := (dict "src" "scss/custom.scss" "dest" "css/custom.css") }}
{{ $current_page := . }}
{{ range (slice $base_styles_opts $custom_styles_opts) }}
{{ $style := resources.Get .src | resources.ExecuteAsTemplate .dest $current_page | toCSS | minify | fingerprint }}
<link type="text/css" rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}"/>
{{ end }}
{{ range .AlternativeOutputFormats }}
{{ printf `<link rel="%s" type="%s+%s" href="%s" title="%s" />` .Rel .MediaType.Type .MediaType.Suffix .Permalink $.Site.Title | safeHTML }}
{{ end }}
{{ block "links" . }} {{ end }}
{{ partial "seo-schema.html" .}}
{{- if not .Site.IsServer -}}
{{ template "_internal/google_analytics_async.html" . }}
{{- end -}}
</head>
<body>
{{ partial "burger.html" .}}
{{ partial "nav.html" .}}
<main>
{{ block "main" . }} {{ end }}
</main>
{{ block "footer" . }} {{ end }}
{{ $script := resources.Get "js/index.js" | minify | fingerprint }}
<script src="{{ $script.RelPermalink }}" integrity="{{ $script.Data.Integrity | safeHTMLAttr }}" crossorigin="anonymous"></script>
{{ block "scripts" . }} {{ end }}
</body>
</html>

View File

@ -0,0 +1,27 @@
{{ define "styles" }}
{{ $.Scratch.Set "style_opts" (dict "src" "scss/pages/posts.scss" "dest" "css/posts.css") }}
{{ end }}
{{ define "main" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2 2006" }}
<div class="post-list__container">
<ul class="post-list">
{{ range .Pages }}
<li class="post">
<div class="post__header">
<time class="post__date" datetime="{{ .Date }}"
>{{ .Date.Format $dateFormat }}</time>
<h2 class="post__title">
<a href="{{.RelPermalink}}">{{ .Title }}</a>
</h2>
{{ partial "tags.html" .}}
</div>
</li>
{{ end }}
</ul>
{{ partial "browse-by-tag.html" .}}
</div>
{{ end }}

View File

@ -0,0 +1,51 @@
{{ define "styles" }}
{{ $.Scratch.Set "style_opts" (dict "src" "scss/pages/post.scss" "dest" "css/post.css") }}
{{ end }}
{{ define "main" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2 2006" }}
<div class="flex-wrapper">
<div class="post__container">
<div class="post">
<header class="post__header">
<h1 id="post__title">{{.Title}}</h1>
{{ if .Date }}<time datetime="{{ .Date }}" class="post__date">{{ .Date.Format $dateFormat }}</time> {{ end }}
</header>
<article class="post__content">
{{ partial "anchored-headings.html" .Content }}
{{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}
</article>
{{ partial "tags.html" .}} {{ partial "post-pagination.html" .}}
{{ template "_internal/disqus.html" . }}
<footer class="post__footer">
{{ partial "social-icons.html" .}}
<p>{{ replace .Site.Copyright "{year}" now.Year }}</p>
</footer>
</div>
</div>
{{ if .Params.toc }}
<div class="toc-container">
{{ if .Site.Params.showPageTitleInTOC }} <div class="toc-post-title">{{ .Title }}</div> {{ end }}
{{ .TableOfContents }}
</div>
{{ end }}
</div>
{{ end }}
{{ define "scripts" }}
{{/* Hardcode a specific prismjs version to avoid a redirect on every page load. */}}
<script src="https://unpkg.com/prismjs@1.20.0/components/prism-core.min.js"></script>
{{/* Automatically loads the needed languages to highlight the code blocks. */}}
<script src="https://unpkg.com/prismjs@1.20.0/plugins/autoloader/prism-autoloader.min.js"
data-autoloader-path="https://unpkg.com/prismjs@1.20.0/components/"></script>
{{ if .Params.toc }}
<script src="/js/table-of-contents.js"></script>
{{ end }}
{{ end }}

View File

@ -0,0 +1,23 @@
{{ define "styles" }}
{{ $.Scratch.Set "style_opts" (dict "src" "scss/pages/about.scss" "dest" "css/about.css") }}
{{ end }}
{{ define "main" }}
<div class="splash-container">
<div class="splash">
<h1>{{ .Params.heading }}<span class="fancy">.</span></h1>
{{ if isset .Params "handle" }}
<span class="handle">@{{ .Params.handle }}</span>
{{ end }}
<h2>
{{ .Params.subheading }}
</h2>
<!-- Replace MEEEEE -->
{{ partial "social-icons.html" .}}
</div>
</div>
{{ end }}

View File

@ -0,0 +1,2 @@
<!-- formats .Content headings by adding an anchor -->
{{ . | replaceRE "(<h[2-3] id=\"([^\"]+)\".+)(</h[2-9]+>)" "${1}<a class=\"anchor\" href=\"#${2}\">#</a>${3}" | safeHTML }}

View File

@ -0,0 +1,7 @@
<ul class="tags__list">
{{ range $tag, $value := $.Site.Taxonomies.tags }}
<li class="tag__item">
<a class="tag__link" href="{{ "/tags/" | relLangURL}}{{ $tag | urlize }}/">{{ $tag | urlize }} ({{ len $value }})</a>
</li>
{{ end }}
</ul>

View File

@ -0,0 +1,7 @@
<div class="burger__container">
<div class="burger" aria-controls="navigation" aria-label="Menu">
<div class="burger__meat burger__meat--1"></div>
<div class="burger__meat burger__meat--2"></div>
<div class="burger__meat burger__meat--3"></div>
</div>
</div>

View File

@ -0,0 +1 @@
<link rel="shortcut icon" type="image/png" href="/favicon.ico" />

View File

@ -0,0 +1,11 @@
<!-- layouts/partials/math.html -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_SVG"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
showMathMenu: false, //disables context menu
tex2jax: {
inlineMath: [ ['$','$'], ['\\(','\\)'] ]
}
});
</script>

View File

@ -0,0 +1,11 @@
<nav class="nav" id="navigation">
<ul class="nav__list">
{{ $currentPage := . }}
{{ range .Site.Menus.main }}
<li>
<a {{ if or ($currentPage.IsMenuCurrent "main" .) (eq $currentPage.Section .Identifier) }} class="active"
{{end}} href="{{ .URL }}">{{ .Name }}</a>
</li>
{{ end }}
</ul>
</nav>

View File

@ -0,0 +1,7 @@
<div class="paginator-container">
{{ if .Paginator.HasPrev }}
<a class="paginator paginator--left" href="{{ .Paginator.Prev.URL }}"></a>
{{ end }} {{ if .Paginator.HasNext }}
<a class="paginator paginator--right" href="{{ .Paginator.Next.URL }}"></a>
{{ end }}
</div>

View File

@ -0,0 +1,15 @@
<div class="pagination">
{{if .PrevInSection}}
<a class="pagination__item" href="{{.PrevInSection.Permalink}}">
<span class="pagination__label">Previous Post</span>
<span class="pagination__title">{{.PrevInSection.Title}}</span>
</a>
{{end}}
{{if .NextInSection}}
<a class="pagination__item" href="{{.NextInSection.Permalink}}">
<span class="pagination__label">Next Post</span>
<span class="pagination__title" >{{.NextInSection.Title}}</span>
</a>
{{end}}
</div>

View File

@ -0,0 +1,42 @@
<!-- JSON-LD -->
<script type="application/ld+json">
{{ if and (.IsPage) (eq .Section "blog") }}
{
"@context" : "http://schema.org",
"@type" : "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "{{ .Site.BaseURL }}"
},
"articleSection" : "{{ .Section }}",
"name" : "{{ .Title }}",
"headline" : "{{ .Title }}",
"description" : "{{ .Description }}",
"inLanguage" : "en-US",
"author" : "{{ .Site.Params.name }}",
"creator" : "{{ .Site.Params.name }}",
"publisher": "{{ .Site.Params.name }}",
"accountablePerson" : "{{ .Site.Params.name }}",
"copyrightHolder" : "{{ .Site.Params.name }}",
"copyrightYear" : "{{ .Date.Format "2006" }}",
"datePublished": "{{ .Date }}",
"dateModified" : "{{ .Date }}",
"url" : "{{ .Permalink }}",
"wordCount" : "{{ .WordCount }}",
"keywords" : [{{ if isset .Params "keywords" }}{{ range .Params.keywords }}"{{ . }}", {{ end }}{{ end }}"Blog"]
}
{{ else }}
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "{{ .Permalink }}",
"name": "{{ .Title }}",
"author": {
"@type": "Person",
"name": "{{ .Site.Params.name }}"
},
"description": "{{ if .IsHome }}{{ htmlEscape .Site.Params.description }}{{ else }}{{ htmlEscape .Description }}{{ end }}"
}
{{ end }}
</script>

View File

@ -0,0 +1,15 @@
{{ $currentPage := . }}
{{ $icons := .Site.Params.iconOrder | default (slice "Twitter" "GitHub" "Email" "Facebook" "GitLab" "Instagram" "LinkedIn" "YouTube") }}
<div class="social-icons">
{{ range $icons }}
{{ $icon := anchorize . }}
{{ if isset $currentPage.Site.Params $icon }}
<a class="social-icons__link" rel="me" title="{{ . }}"
href="{{ index $currentPage.Site.Params $icon }}"
target="_blank" rel="noopener">
<div class="social-icons__icon" style="background-image: url('{{print "svg/" $icon ".svg" | absURL}}')"></div>
</a>
{{ end }}
{{ end }}
</div>

View File

@ -0,0 +1,12 @@
{{ $taxo := "tags" }}
{{ with .Param $taxo }}
<ul class="tags__list">
{{ range $index, $tag := . }}
{{ with $.Site.GetPage (printf "/%s/%s" $taxo $tag) -}}
<li class="tag__item">
<a class="tag__link" href="{{ .Permalink }}">{{ $tag | urlize }}</a>
</li>
{{- end -}}
{{- end -}}
</ul>
{{ end }}

View File

@ -0,0 +1,26 @@
{{ define "styles" }}
{{ $.Scratch.Set "style_opts" (dict "src" "scss/pages/tags.scss" "dest" "css/tags.css") }}
{{ end }}
{{ define "main" }}
{{ $dateFormat := .Site.Params.dateFormat | default "Jan 2 2006" }}
<div class="post-list__container">
<div class="tag__header">
<a href="/posts/">All posts</a><span class="separator">/</span>
<h1 class="tag__term">{{ .Title }}</h1>
</div>
<ul class="post-list">
{{ range .Data.Pages }}
<li class="post">
<div class="post__header">
<time class="post__date" datetime="{{ .Date }}">{{ .Date.Format $dateFormat }}</time>
<h2 class="post__title">
<a href="{{.RelPermalink}}">{{ .Title }}</a>
</h2>
</div>
</li>
{{ end }}
</ul>
</div>
{{ end }}

36
themes/codex/package.json Normal file
View File

@ -0,0 +1,36 @@
{
"name": "hugo-theme-codex",
"version": "1.5.0",
"author": "Jake Wiesler",
"description": "A minimal blog theme for Hugo",
"license": "MIT",
"scripts": {
"develop": "hugo server -s ./exampleSite/",
"build:example": "hugo -s ./exampleSite/",
"format": "prettier ./ --write"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"devDependencies": {
"husky": "^4.2.5",
"lint-staged": ">=10",
"prettier": "^2.0.5"
},
"browserslist": [
"last 2 version",
"> 2%"
],
"homepage": "https://github.com/jakewies/hugo-theme-codex",
"bugs": "https://github.com/jakewies/hugo-theme-codex/issues",
"keywords": [
"hugo",
"blog",
"go"
],
"lint-staged": {
"*.{js,css,scss}": "prettier --write"
}
}

View File

@ -0,0 +1,13 @@
module.exports = {
arrowParens: "avoid",
bracketSpacing: false,
endOfLine: "lf",
htmlWhitespaceSensitivity: "css",
printWidth: 80,
proseWrap: "always",
semi: true,
singleQuote: false,
tabWidth: 2,
trailingComma: "all",
useTabs: false,
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

View File

@ -0,0 +1,17 @@
window.addEventListener('DOMContentLoaded', () => {
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
const id = entry.target.getAttribute('id');
if (entry.intersectionRatio > 0) {
document.querySelector(`#TableOfContents ul li a[href="#${id}"]`).classList.add('active');
} else {
document.querySelector(`#TableOfContents ul li a[href="#${id}"]`).classList.remove('active');
}
});
});
// Track all headers that have an `id` applied
document.querySelectorAll('article h3[id], article h2[id]').forEach((section) => {
observer.observe(section);
});
});

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-left"><path d="M15 18l-6-6 6-6"/></svg>

After

Width:  |  Height:  |  Size: 251 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-mail"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>

After

Width:  |  Height:  |  Size: 354 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-facebook"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>

After

Width:  |  Height:  |  Size: 303 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"/></svg>

After

Width:  |  Height:  |  Size: 521 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-gitlab"><path d="M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z"></path></svg>

After

Width:  |  Height:  |  Size: 490 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-instagram"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>

After

Width:  |  Height:  |  Size: 400 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-linkedin"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>

After

Width:  |  Height:  |  Size: 400 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-twitter"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"/></svg>

After

Width:  |  Height:  |  Size: 402 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-youtube"><path d="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"></path><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"></polygon></svg>

After

Width:  |  Height:  |  Size: 565 B

15
themes/codex/theme.toml Normal file
View File

@ -0,0 +1,15 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
name = "Codex"
license = "MIT"
licenselink = "https://github.com/jakewies/hugo-theme-codex/blob/master/LICENSE.md"
description = "A minimal blog theme for hugo"
homepage = "https://github.com/jakewies/hugo-theme-codex"
tags = ["website", "starter", "blog"]
features = ["blog"]
min_version = "0.72.0"
[author]
name = "Jake Wiesler"
homepage = "https://jakewiesler.com"

860
themes/codex/yarn.lock Normal file
View File

@ -0,0 +1,860 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@babel/code-frame@^7.0.0":
version "7.10.3"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.3.tgz#324bcfd8d35cd3d47dae18cde63d752086435e9a"
integrity sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==
dependencies:
"@babel/highlight" "^7.10.3"
"@babel/helper-validator-identifier@^7.10.3":
version "7.10.3"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz#60d9847f98c4cea1b279e005fdb7c28be5412d15"
integrity sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==
"@babel/highlight@^7.10.3":
version "7.10.3"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.3.tgz#c633bb34adf07c5c13156692f5922c81ec53f28d"
integrity sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==
dependencies:
"@babel/helper-validator-identifier" "^7.10.3"
chalk "^2.0.0"
js-tokens "^4.0.0"
"@types/color-name@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
"@types/minimatch@^3.0.3":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
aggregate-error@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0"
integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==
dependencies:
clean-stack "^2.0.0"
indent-string "^4.0.0"
ansi-colors@^3.2.1:
version "3.2.4"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
ansi-escapes@^4.3.0:
version "4.3.1"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
dependencies:
type-fest "^0.11.0"
ansi-regex@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
dependencies:
color-convert "^1.9.0"
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
dependencies:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
array-differ@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b"
integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
arrify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa"
integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==
astral-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
braces@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
dependencies:
fill-range "^7.0.1"
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
chalk@^2.0.0, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
chalk@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
clean-stack@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
cli-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
dependencies:
restore-cursor "^3.1.0"
cli-truncate@2.1.0, cli-truncate@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
dependencies:
slice-ansi "^3.0.0"
string-width "^4.2.0"
color-convert@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
color-name "1.1.3"
color-convert@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
dependencies:
color-name "~1.1.4"
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
commander@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
compare-versions@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
cosmiconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
dependencies:
"@types/parse-json" "^4.0.0"
import-fresh "^3.1.0"
parse-json "^5.0.0"
path-type "^4.0.0"
yaml "^1.7.2"
cross-spawn@^7.0.0:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
dependencies:
path-key "^3.1.0"
shebang-command "^2.0.0"
which "^2.0.1"
debug@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
dependencies:
ms "^2.1.1"
dedent@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
enquirer@^2.3.5:
version "2.3.5"
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.5.tgz#3ab2b838df0a9d8ab9e7dff235b0e8712ef92381"
integrity sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==
dependencies:
ansi-colors "^3.2.1"
error-ex@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"
escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
execa@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99"
integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==
dependencies:
cross-spawn "^7.0.0"
get-stream "^5.0.0"
is-stream "^2.0.0"
merge-stream "^2.0.0"
npm-run-path "^3.0.0"
onetime "^5.1.0"
p-finally "^2.0.0"
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
execa@^4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.2.tgz#ad87fb7b2d9d564f70d2b62d511bee41d5cbb240"
integrity sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==
dependencies:
cross-spawn "^7.0.0"
get-stream "^5.0.0"
human-signals "^1.1.1"
is-stream "^2.0.0"
merge-stream "^2.0.0"
npm-run-path "^4.0.0"
onetime "^5.1.0"
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
figures@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
dependencies:
escape-string-regexp "^1.0.5"
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
dependencies:
to-regex-range "^5.0.1"
find-up@^4.0.0, find-up@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
dependencies:
locate-path "^5.0.0"
path-exists "^4.0.0"
find-versions@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e"
integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==
dependencies:
semver-regex "^2.0.0"
get-own-enumerable-property-symbols@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
get-stream@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
dependencies:
pump "^3.0.0"
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
has-flag@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
human-signals@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
husky@^4.2.5:
version "4.2.5"
resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36"
integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==
dependencies:
chalk "^4.0.0"
ci-info "^2.0.0"
compare-versions "^3.6.0"
cosmiconfig "^6.0.0"
find-versions "^3.2.0"
opencollective-postinstall "^2.0.2"
pkg-dir "^4.2.0"
please-upgrade-node "^3.2.0"
slash "^3.0.0"
which-pm-runs "^1.0.0"
ignore@^5.1.4:
version "5.1.8"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
import-fresh@^3.1.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"
indent-string@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
is-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
is-regexp@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
is-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
json-parse-better-errors@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
lines-and-columns@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
lint-staged@>=10:
version "10.2.11"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720"
integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==
dependencies:
chalk "^4.0.0"
cli-truncate "2.1.0"
commander "^5.1.0"
cosmiconfig "^6.0.0"
debug "^4.1.1"
dedent "^0.7.0"
enquirer "^2.3.5"
execa "^4.0.1"
listr2 "^2.1.0"
log-symbols "^4.0.0"
micromatch "^4.0.2"
normalize-path "^3.0.0"
please-upgrade-node "^3.2.0"
string-argv "0.3.1"
stringify-object "^3.3.0"
listr2@^2.1.0:
version "2.1.8"
resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.1.8.tgz#8af7ebc70cdbe866ddbb6c80909142bd45758f1f"
integrity sha512-Op+hheiChfAphkJ5qUxZtHgyjlX9iNnAeFS/S134xw7mVSg0YVrQo1IY4/K+ElY6XgOPg2Ij4z07urUXR+YEew==
dependencies:
chalk "^4.0.0"
cli-truncate "^2.1.0"
figures "^3.2.0"
indent-string "^4.0.0"
log-update "^4.0.0"
p-map "^4.0.0"
rxjs "^6.5.5"
through "^2.3.8"
locate-path@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
dependencies:
p-locate "^4.1.0"
log-symbols@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
dependencies:
chalk "^4.0.0"
log-update@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
dependencies:
ansi-escapes "^4.3.0"
cli-cursor "^3.1.0"
slice-ansi "^4.0.0"
wrap-ansi "^6.2.0"
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
micromatch@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
dependencies:
braces "^3.0.1"
picomatch "^2.0.5"
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
mri@^1.1.4:
version "1.1.5"
resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.5.tgz#ce21dba2c69f74a9b7cf8a1ec62307e089e223e0"
integrity sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg==
ms@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
multimatch@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3"
integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==
dependencies:
"@types/minimatch" "^3.0.3"
array-differ "^3.0.0"
array-union "^2.1.0"
arrify "^2.0.1"
minimatch "^3.0.4"
normalize-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
npm-run-path@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5"
integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==
dependencies:
path-key "^3.0.0"
npm-run-path@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
path-key "^3.0.0"
once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
onetime@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
dependencies:
mimic-fn "^2.1.0"
opencollective-postinstall@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
p-finally@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
dependencies:
p-try "^2.0.0"
p-locate@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
dependencies:
p-limit "^2.2.0"
p-map@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
dependencies:
aggregate-error "^3.0.0"
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
dependencies:
callsites "^3.0.0"
parse-json@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==
dependencies:
"@babel/code-frame" "^7.0.0"
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
lines-and-columns "^1.1.6"
path-exists@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
picomatch@^2.0.5:
version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
dependencies:
find-up "^4.0.0"
please-upgrade-node@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
dependencies:
semver-compare "^1.0.0"
prettier@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4"
integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
pretty-quick@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.1.tgz#417ee605ade98ecc686e72f63b5d28a2c35b43e9"
integrity sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg==
dependencies:
chalk "^2.4.2"
execa "^2.1.0"
find-up "^4.1.0"
ignore "^5.1.4"
mri "^1.1.4"
multimatch "^4.0.0"
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
dependencies:
onetime "^5.1.0"
signal-exit "^3.0.2"
rxjs@^6.5.5:
version "6.5.5"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
dependencies:
tslib "^1.9.0"
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
semver-regex@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338"
integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
dependencies:
shebang-regex "^3.0.0"
shebang-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
signal-exit@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
slice-ansi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
dependencies:
ansi-styles "^4.0.0"
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
slice-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
dependencies:
ansi-styles "^4.0.0"
astral-regex "^2.0.0"
is-fullwidth-code-point "^3.0.0"
string-argv@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
string-width@^4.1.0, string-width@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.0"
stringify-object@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
dependencies:
get-own-enumerable-property-symbols "^3.0.0"
is-obj "^1.0.1"
is-regexp "^1.0.0"
strip-ansi@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
dependencies:
ansi-regex "^5.0.0"
strip-final-newline@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
dependencies:
has-flag "^3.0.0"
supports-color@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
dependencies:
has-flag "^4.0.0"
through@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
dependencies:
is-number "^7.0.0"
tslib@^1.9.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
type-fest@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
which-pm-runs@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
which@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
isexe "^2.0.0"
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
yaml@^1.7.2:
version "1.10.0"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==

View File

@ -1,3 +0,0 @@
.cache/
*.js.map
.DS_Store

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2019 Fabian Tamp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,160 +0,0 @@
# Paperesque
A lightweight [Hugo](https://gohugo.io) theme with a couple of neat tricks.
You can see it in action on [capnfabs.net](https://capnfabs.net), or on the [Hugo Themes Example Site](https://themes.gohugo.io/theme/paperesque/).
Here's what makes it special:
- Has a shortcode for resizing images to fit the page, _and_ tools for removing originals from the output
- Visual differentiation for drafts
- Footnotes turn into margin notes when there's enough space.
## Install
### git subtree (easiest!)
Copy the files into your repo using `git subtree` (this is way easier to use than submodules; [here's an explainer](https://www.atlassian.com/git/tutorials/git-subtree)):
```sh
git subtree add --prefix themes/paperesque https://github.com/capnfabs/paperesque mainline --squash
```
This will add a commit to your repo with everything ready to go. You'll probably want to modify parts of this theme for your own usage! Subtree makes that easy, because you've just copied the code into your repo ✨
### git submodules
If you're sure you want to use git submodules:
```sh
git submodule add -b mainline https://github.com/capnfabs/paperesque themes/paperesque
```
### Select the theme in your `config.toml`
Add / Modify the `theme` field in your `config.toml` for your hugo site:
```toml
theme = "paperesque"
```
## Using Features
### FYI: the Home Page is Config-driven
When you first install and switch to the theme, you might find that your homepage is blank. That's because all the links on the homepage are specified in your `config.toml`. Set it up like this:
```toml
[[params.menu]]
name = "blog"
url = "posts/"
[[params.menu]]
name = "tags"
url = "tags/"
[[params.menu]]
name = "about"
url = "about/"
[[params.menu]]
name = "contact"
url = "contact/"
```
### Links in the top-right corner
These are also config driven! Add this to your `config.toml` (for example):
```toml
[[params.topmenu]]
name = "about"
url = "about/"
[[params.topmenu]]
name = "contact"
url = "contact/"
[[params.topmenu]]
name = "rss"
url = "posts/index.xml"
```
### Removing original images after resizing
The `fitfigure` shortcode is exactly the same as the `figure` shortcode, but it automatically resizes your images to fit the container, _and_ provides different resolutions for different DPIs (1x, 2x).
Whenever you use this shortcode, the theme makes a mental note of the resource you specified.
Now, you need to do some configuration if you want the originals to be removed from the output.
First, add this to your site's `config.toml`:
```toml
[outputs]
page = ["HTML", "droplist"]
```
Now, as part of your build process, run:
```sh
./themes/paperesque/buildscripts/drop-resources.py [hugo-output-directory]
```
(the Hugo output directory is usually `./public`).
That's it! Resized resources will be removed.
This is _off by default_ because it peppers your build output with `.droplist` files, and if you're not expecting them, it's going to be an unpleasant surprise.
### Visual differentiation for drafts
This one's on, and can't be switched off. Drafts have an orange stripey background everywhere. You can't miss them.
### Footnotes turn into margin notes
This is _on by default_.
You can switch it off site-wide by adding `disableMarginNotes = true` to your `params` in your `config.toml`, i.e.
```toml
[params]
disableMarginNotes = true
```
Alternatively, you can turn it off per-page by adding the `disableMarginNotes = true` to your front-matter for the page.
## Testing against the example site
You can build the example site with this theme with:
```
cd exampleSite
hugo serve --themesDir=../..
```
## Hacking / Modifying the JS
The javascript is built from the `./assets/js/` directory using [Hugo Pipes JS Build functionality](https://gohugo.io/hugo-pipes/js/). This means you should be able to just modify the JS in the theme and expect your changes to be reflected, using the same workflow as you'd use for anything else in your Hugo site.
Note that this is only available since Hugo 0.74.0; if you're stuck on an old version of Hugo, try grabbing this theme at commit dfcf8b8e802e500e883c4f291b34d65d2e65a7bf instead, which uses a different bundling mechanism.
### Dependencies
Note that dependencies are checked into version control, so unless you're adding new ones / upgrading existing packages you should be fine.
To install / update dependencies, you need to [install the `yarn` package manager](https://yarnpkg.com/getting-started/install) (you might need to install [NPM / NodeJS](https://www.npmjs.com/get-npm) too!).
Then, run as required:
```sh
yarn install
yarn add [package]
yarn upgrade [package]
```
### Other resources
- The explanation for how a lot of this works is in [this blog post](https://capnfabs.net/posts/hugo-theme-exclude-processed-images/), so take a look there if you get stuck or want to borrow some of the ideas without grabbing all of them.
- You can see who else is using this theme by [searching Github for `paperesque filename:config.toml`](https://github.com/search?q=paperesque+filename%3Aconfig.toml&type=Code) (requires login).

View File

@ -1,3 +0,0 @@
{
"esversion": 6
}

View File

@ -1,33 +0,0 @@
import { docReady } from "./utils.js";
// Borrowed from https://github.com/gohugoio/gohugoioTheme/blob/2e7250ca437d4666329d3ca96708dd3a4ff59818/assets/js/anchorforid.js
function anchorForId(id) {
const anchor = document.createElement("a");
anchor.className = "header-link";
anchor.title = "Link to this section";
anchor.href = "#" + id;
// Icon from https://useiconic.com/open#icons
anchor.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8 8"><path d="M5.88.03c-.18.01-.36.03-.53.09-.27.1-.53.25-.75.47a.5.5 0 1 0 .69.69c.11-.11.24-.17.38-.22.35-.12.78-.07 1.06.22.39.39.39 1.04 0 1.44l-1.5 1.5c-.44.44-.8.48-1.06.47-.26-.01-.41-.13-.41-.13a.5.5 0 1 0-.5.88s.34.22.84.25c.5.03 1.2-.16 1.81-.78l1.5-1.5c.78-.78.78-2.04 0-2.81-.28-.28-.61-.45-.97-.53-.18-.04-.38-.04-.56-.03zm-2 2.31c-.5-.02-1.19.15-1.78.75l-1.5 1.5c-.78.78-.78 2.04 0 2.81.56.56 1.36.72 2.06.47.27-.1.53-.25.75-.47a.5.5 0 1 0-.69-.69c-.11.11-.24.17-.38.22-.35.12-.78.07-1.06-.22-.39-.39-.39-1.04 0-1.44l1.5-1.5c.4-.4.75-.45 1.03-.44.28.01.47.09.47.09a.5.5 0 1 0 .44-.88s-.34-.2-.84-.22z" /></svg>';
return anchor;
}
function anchorizeHeadings() {
// If we've found more than 1 article, then abort. It probably means I've
// messed something up if this is the case, but I don't have enough
// confidence in the way I've set everything up to _not_ do this safety
// check.
const articles = document.querySelectorAll('article#main');
if (articles.length != 1) {
return;
}
// Keep this list of header classes in sync with style.css
const headers = articles[0].querySelectorAll('h2, h3, h4');
Array.prototype.forEach.call(headers, function (el, i) {
var link = anchorForId(el.id);
el.appendChild(link);
});
}
export default function anchorizeOnReady() {
docReady(anchorizeHeadings);
}

View File

@ -1,123 +0,0 @@
import { docReady, onWindowResize } from "./utils.js";
import { ResizeObserver } from '@juggle/resize-observer';
const ARTICLE_CONTENT_SELECTOR = "article#main";
const FOOTNOTE_SECTION_SELECTOR = "section.footnotes[role=doc-endnotes]";
const FLOATING_FOOTNOTE_MIN_WIDTH = 1260;
// Computes an offset such that setting `top` on elemToAlign will put it
// in vertical alignment with targetAlignment.
function computeOffsetForAlignment(elemToAlign, targetAlignment) {
const offsetParentTop = elemToAlign.offsetParent.getBoundingClientRect().top;
// Distance between the top of the offset parent and the top of the target alignment
return targetAlignment.getBoundingClientRect().top - offsetParentTop;
}
function setFootnoteOffsets(footnotes) {
// Keep track of the bottom of the last element, because we don't want to
// overlap footnotes.
let bottomOfLastElem = 0;
Array.prototype.forEach.call(footnotes, function (footnote, i) {
// In theory, don't need to escape this because IDs can't contain
// quotes, in practice, not sure. ¯\_(ツ)_/¯
// Get the thing that refers to the footnote
const intextLink = document.querySelector("a.footnote-ref[href='#" + footnote.id + "']");
// Find its "content parent"; nearest paragraph or list item or
// whatever. We use this for alignment because it looks much cleaner.
// If it doesn't, your paragraphs are too long :P
// Fallback - use the same height as the link.
const verticalAlignmentTarget = intextLink.closest('p,li') || intextLink;
let offset = computeOffsetForAlignment(footnote, verticalAlignmentTarget);
if (offset < bottomOfLastElem) {
offset = bottomOfLastElem;
}
// computedStyle values are always in pixels, but have the suffix 'px'.
// offsetHeight doesn't include margins, but we want it to use them so
// we retain the style / visual fidelity when all the footnotes are
// crammed together.
bottomOfLastElem =
offset +
footnote.offsetHeight +
parseInt(window.getComputedStyle(footnote).marginBottom) +
parseInt(window.getComputedStyle(footnote).marginTop);
footnote.style.top = offset + 'px';
footnote.style.position = 'absolute';
});
}
function clearFootnoteOffsets(footnotes) {
// Reset all
Array.prototype.forEach.call(footnotes, function (fn, i) {
fn.style.top = null;
fn.style.position = null;
});
}
// contract: this is idempotent; i.e. it won't wreck anything if you call it
// with the same value over and over again. Though maybe it'll wreck performance
// lol.
function updateFootnoteFloat(shouldFloat) {
const footnoteSection = document.querySelector(FOOTNOTE_SECTION_SELECTOR);
const footnotes = footnoteSection.querySelectorAll(
"li[role=doc-endnote]");
if (shouldFloat) {
// Do this first because we need styles applied before doing other
// calculations
footnoteSection.classList.add('floating-footnotes');
setFootnoteOffsets(footnotes);
subscribeToUpdates();
} else {
unsubscribeFromUpdates();
clearFootnoteOffsets(footnotes);
footnoteSection.classList.remove('floating-footnotes');
}
}
function subscribeToUpdates() {
const article = document.querySelector(ARTICLE_CONTENT_SELECTOR);
// Watch for dimension changes on the thing that holds all the footnotes so
// we can reposition as required
resizeObserver.observe(article);
}
function unsubscribeFromUpdates() {
resizeObserver.disconnect();
}
const notifySizeChange = function() {
// Default state, not expanded.
let bigEnough = false;
return function () {
// Pixel width at which this looks good
let nowBigEnough = window.innerWidth >= FLOATING_FOOTNOTE_MIN_WIDTH;
if (nowBigEnough !== bigEnough) {
updateFootnoteFloat(nowBigEnough);
bigEnough = nowBigEnough;
}
};
}();
const resizeObserver = new ResizeObserver((_entries, observer) => {
// By virtue of the fact that we're subscribed, we know this is true.
updateFootnoteFloat(true);
});
export default function enableFloatingFootnotes() {
docReady(() => {
const footnoteSection = document.querySelector(FOOTNOTE_SECTION_SELECTOR);
const article = document.querySelector(ARTICLE_CONTENT_SELECTOR);
const allowFloatingFootnotes = article && !article.classList.contains('no-floating-footnotes');
// only set it all up if there's actually a footnote section and
// we haven't explicitly disabled floating footnotes.
if (footnoteSection && allowFloatingFootnotes) {
onWindowResize(notifySizeChange);
}
});
}

View File

@ -1,5 +0,0 @@
import anchorizeHeadings from "./anchorizeHeadings.js";
import enableFloatingFootnotes from "./floatingFootnotes.js";
enableFloatingFootnotes();
anchorizeHeadings();

View File

@ -1,29 +0,0 @@
// borrowed from https://stackoverflow.com/questions/9899372/pure-javascript-equivalent-of-jquerys-ready-how-to-call-a-function-when-t
function docReady(fn) {
// see if DOM is already available
if (document.readyState === "complete" || document.readyState === "interactive") {
// call on next available tick
setTimeout(fn, 1);
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}
function windowLoaded(fn) {
// see if we're already loaded
if (document.readyState === "complete") {
// call on next available tick
setTimeout(fn, 1);
} else {
window.addEventListener("load", fn);
}
}
function onWindowResize(fn) {
windowLoaded(function () {
window.addEventListener('resize', fn);
setTimeout(fn, 1);
});
}
export { docReady, windowLoaded, onWindowResize};

View File

@ -1,41 +0,0 @@
#!/usr/bin/env python3
import sys
import os
import pathlib
import typing
def die(msg):
print(msg)
exit(1)
def line_to_path(base_path, line):
path = pathlib.Path(base_path, line.lstrip('/'))
return path
def get_filenames_from_droplist(base_path, path):
lines = path.read_text().strip().splitlines()
return [line_to_path(base_path, line) for line in lines if line]
def drop_paths(paths, output_dir):
for f in paths:
assert f.is_file()
f.unlink()
print(f"Removed {f.relative_to(output_dir)}")
def main():
if len(sys.argv) != 2:
die(f'Usage: {sys.argv[0]} [hugo-output-directory]')
output_dir = pathlib.Path(sys.argv[1])
if not output_dir.is_dir():
die(f'{output_dir} must be a hugo output directory')
all_droplists = list(output_dir.rglob('*.droplist'))
all_files_to_drop = [f for droplist in all_droplists for f in get_filenames_from_droplist(output_dir, droplist)]
drop_paths(all_files_to_drop, output_dir)
drop_paths(all_droplists, output_dir)
if __name__ == "__main__":
main()

View File

@ -1,7 +0,0 @@
[mediaTypes]
[mediaTypes."text/droplist"]
suffixes = ["droplist"]
[outputFormats.droplist]
mediatype = "text/droplist"
isPlainText = true

View File

@ -1,6 +0,0 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

View File

@ -1,64 +0,0 @@
baseURL = "http://example.com/"
languageCode = "en-us"
title = "Paperesque theme example"
theme = "paperesque"
copyright = "© 2011-2020 Fabian Tamp"
# We're building drafts in config so that you can see them in the example on
# Hugo Themes; you almost certainly don't want this on your production site
buildDrafts = true
[markup]
# This is the default from Hugo 0.60.0 onwards, but we're setting config
# for it below, so make it explicit
defaultMarkdownHandler = "goldmark"
# Required to render HTML tags in the hugoExampleSite examples.
[markup.goldmark.renderer]
unsafe = true
# I can't remember if this is required for syntax highlighting or not.
pygmentsUseClasses = true
# Uncomment these lines for droplist / resource removal support! See the
# README for more details
# [outputs]
# page = ["HTML", "droplist"]
[params]
# Turn this on if you want to disable margin notes everywhere!
# disableMarginNotes = true
# Customise your home page menu here:
[[params.menu]]
name = "Recent Posts"
url = "posts/"
[[params.menu]]
name = "Posts by Tag"
url = "tags/"
[[params.menu]]
name = "About the contents of this example"
url = "about/"
[[params.menu]]
name = "Hugo Themes default example pages"
url = "tags/hugobasicsite/"
[[params.menu]]
name = "Link to theme on Github"
url = "https://github.com/capnfabs/paperesque"
# And your top-right menu links here.
[[params.topmenu]]
name = "my favourite bird"
url = "posts/kookaburra/"
[[params.topmenu]]
name = "rss"
url = "posts/index.xml"

View File

@ -1,10 +0,0 @@
---
date: 2020-01-05
title: "About the contents of this example site"
---
All content on this example site is taken from [_The Birds of Australia_, volume 2 of 7, by John Gould](http://www.gutenberg.org/ebooks/60302).
That book's available in full on Project ~~Gutenbird~~ Gutenberg. The illustrations are beautiful.
Note that many of the names of the birds have since changed, and there's [efforts underway in parts of Australia](https://www.dpaw.wa.gov.au/images/documents/about/science/cswa/articles/14.pdf) to start identifying these birds by the names used by local Aboriginal Australians.

View File

@ -1,47 +0,0 @@
+++
author = "Hugo Authors"
title = "Emoji Support"
date = "2019-03-05"
description = "Guide to emoji usage in Hugo"
tags = [
"hugoBasicSite",
]
+++
Emoji can be enabled in a Hugo project in a number of ways.
<!--more-->
The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
To enable emoji globally, set `enableEmoji` to `true` in your sites [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g.
<p><span class="nowrap"><span class="emojify">🙈</span> <code>:see_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙉</span> <code>:hear_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙊</span> <code>:speak_no_evil:</code></span></p>
<br>
The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) is a useful reference for emoji shorthand codes.
***
**N.B.** The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g.
{{< highlight html >}}
.emoji {
font-family: Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols;
}
{{< /highlight >}}
{{< css.inline >}}
<style>
.emojify {
font-family: Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols;
font-size: 2rem;
vertical-align: middle;
}
@media screen and (max-width:650px) {
.nowrap {
display: block;
margin: 25px 0;
}
}
</style>
{{< /css.inline >}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

View File

@ -1,34 +0,0 @@
---
date: 2020-01-03
title: "Great Brown Kingfisher"
tags:
- New South Wales
- Large birds
---
{{< figure
src="featured.jpg"
caption="The Great Brown Kingfisher"
attr="-- Project Gutenberg"
attrlink="http://www.gutenberg.org/files/60302/60302-h/60302-h.htm"
>}}
The _Dacelo gigantea_ is a bird with which every resident and traveller in New South Wales is more or less familiar, for independently of its large size, which in itself would tend to attract attention, its voice is so extraordinary as to be unlike that of any other living creature. In its disposition it is by no means shy, and when any new objects are presented to its notice, such as a party traversing the bush or pitching their tent in the vicinity of its retreat, it becomes very prying and inquisitive, often perching on the dead branch of some neighbouring tree, and watching with the greatest curiosity the kindling of the fire and the preparation of the meal; its presence, however, owing to the quietude with which it passes through the forest, and the almost noiseless manner in which it settles, is seldom detected until it emits its extraordinary gurgling, laughing note, which generally calls forth some exclamation according with the temper of the hearer, such as “There is our old friend the Laughing Jackass,” or an epithet of a less friendly character: not unfrequently does its life pay the penalty of its temerity; for if, as is often the case, the travellers larder be ill-provided and his appetite keen, but a few minutes elapse before it is roasting over the fire it was lately surveying with so much curiosity. So remarkable are the sounds emitted by the bird that they have been noted by nearly every writer on New South Wales and its productions. Mr. Caley states that its “loud noise, somewhat like laughing, may be heard at a considerable distance, from which circumstance, and its uncouth appearance, it probably received the extraordinary appellation given to it by the settlers on their first arrival in the colony.” Captain Sturt says, “Its cry, which resembles a chorus of wild spirits, is apt to startle the traveller who may be in jeopardy, as if laughing and mocking at his misfortune;” and Mr. Bennett, in his Wanderings, says, “Its peculiar gurgling laugh, commencing in a low and gradually rising to a high and loud tone, is often heard in all parts of the colony; the deafening noise being poured forth while the bird remains perched upon a neighbouring tree; it rises with the dawn, when the woods re-echo with its gurgling laugh; at sunset it is again heard; and as that glorious orb sinks in the west, a last good night is given in its peculiar tones to all within hearing.”
The Great Brown Kingfisher does not inhabit Van Diemens Land, nor has it yet been met with in Western Australia; it may be said to be almost solely confined to that portion of Australia lying between Spencers Gulf and Moreton Bay, the south-eastern corner, as it were, of the continent.[^location] Unlike most other species, it frequents every variety of situation; the luxuriant brushes stretching along the coast, the more thinly-timbered forest, the belts of trees studding the parched plains and the brushes of the higher ranges being alike favoured with its presence; over all these localities it is rather thinly dispersed being nowhere very numerous.
[^location]: The plate in the Pl. Enl., quoted above, has been considered by all previous writers to have reference to this bird, and while I coincide in this opinion, I think that some mistake must have arisen as to the locality, and that it never visits New Guinea nor even the northern coast of Australia, where its place is supplied by the Dacelo cervina and D. Leachii.
I believe that this bird seldom, if ever, drinks; consequently the most arid plains are as suitable to its habits as the shrouded river sides and the flat brushes near the coast.
Its food, which is of a mixed character, consists exclusively of animal substances; reptiles, insects and crabs, however, appear to be its favourite diet, upon which it is destined by nature to subsist: it devours lizards with avidity, and it is not an unfrequent sight to see it bearing off a snake in its bill to be eaten at leisure; it also preys on small mammalia.[^the-rat] It breeds during the months of August and September, and generally selects a hole in a large gum-tree for the purpose; making no nest, but depositing its beautiful pearl-white eggs, which are one inch and nine lines long by one inch and five lines broad, on the decomposed wood at the bottom of the hole. When there are young ones in it, it defends its breeding-place with great courage and daring, darting down upon any intruder who may attempt to ascend the tree, and inflicting severe and dangerous blows with its pointed bill.
[^the-rat]: I recollect shooting a Great Brown Kingfisher in South Australia in order to secure a fine rat I saw hanging from its bill, and which proved to be a rare species inhabiting the plains of that part of the country.
The sexes present so little difference in the colouring of their plumage, that they are scarcely distinguishable from each other; neither do the young at a month old exhibit any great variation from the adult, the only difference being that the markings are somewhat darker and the brown more generally diffused.
It bears confinement remarkably well, and is one of the most amusing birds for the aviary with which I am acquainted: examples have been brought alive to England; one lived for several years in the Gardens of the Zoological Society of London, and at the moment I am writing (April 1843) a fine individual brought from New South Wales by Mr. Yaldwyn, is now living at his seat at Blackdown in Sussex, where it attracts the attention of every one by its singular actions and extraordinary notes, which are poured forth as freely as in its native wilds.
Forehead brown, each feather with a stripe of blackish brown down the centre; crown of the head, lores, ear-coverts, and a broad band passing round the occiput blackish brown; space between the crown of the head and the band encircling the occiput, and the back of the neck buff, crossed by fine irregular lines of dark brown; back and wings brownish black; the wing-coverts and rump tipped with verditer green; primaries white at the base, black for the remainder of their length, and stained with green on their outer margins immediately behind the white; upper tail-coverts blackish brown, crossed by several broad irregular bands of rusty red; tail brownish black, tipped with white, the white increasing in extent as the feathers recede from the centre; the central feathers crossed near the tip with rusty red; the lateral feathers with brownish black, the bands being very narrow near the tip, and gradually increasing in breadth as they approach the base, where the white interspaces also become tinged with rusty red; under surface pale buffy white, crossed by fine irregular freckled markings of dark brown; upper mandible brownish black; under mandible pale buff; feet olive; irides dark brown; eyelash olive-brown.
The figures represent a male and two young of the natural size.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

View File

@ -1,32 +0,0 @@
---
date: 2020-01-07
title: "Leach's Kingfisher"
tags:
- New South Wales
- South Australia
- Small birds
---
Specimens of this fine Kingsfisher are contained in the British Museum, the Linnean Society, and my own collections, all of which were procured on the north-east coast of Australia, where it evidently replaces the Dacelo gigantea of New South Wales and South Australia.
{{< figure
src="featured-i078.jpg"
class="smaller"
caption="Leach's Kingfisher"
attr="-- Project Gutenberg"
attrlink="http://www.gutenberg.org/files/60302/60302-h/60302-h.htm"
>}}
The specimen in the Linnean Societys museum was presented by Dr. Brown[^1], who procured it in Keppel Bay on the east coast; and it was subsequently seen at Shoalwater Bay[^2] and Broad Sound on the same coast; my own specimens were obtained at Cape York, the north-eastern extremity of Australia.
[^1]: Here's an example of a footnote that's been converted to a margin-note on sufficiently wide screens. They align to the paragraph that they are referenced in.
[^2]: If you use a lot of footnotes close together, they are still spaced nicely and retain their distance from each other.
The habits, actions, food, and indeed the whole of the economy, are so precisely like those of the Dacelo gigantea that a separate description of them is entirely unnecessary.
The male has the head and back of the neck striated with brown and white; sides of the neck and under surface white, crossed with very narrow irregular markings of brown, these markings becoming much broader and conspicuous on the under surface of the shoulder; back brownish black; wing-coverts and rump shining azure-blue; wings deep blue; primaries white at the base, black on their inner webs and blue on the outer; tail rich deep blue, all but the two centre feathers irregularly barred near the extremity and largely tipped with white; upper mandible brownish black, under mandible pale buff; irides dark brown; feet olive.
The female differs but little from the male in the colouring of the plumage, except that the tail-feathers, instead of being of a rich blue barred and tipped with white, are of a light chestnut-brown conspicuously barred with bluish black.
The Plate represents the two sexes about the natural size.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View File

@ -1,34 +0,0 @@
---
date: 2020-01-20
title: "Pied Crow Shrike"
tags:
- New South Wales
- Large Birds
draft: true
disableMarginNotes: true
---
_Editor's note_: This page is marked as a draft, which is why everything is orange and stripey.
{{< figure
src="featured-i170.jpg"
caption="The Pied Crow-Shrike"
attr="-- Project Gutenberg"
attrlink="http://www.gutenberg.org/files/60302/60302-h/60302-h.htm"
>}}
This species was originally described and figured in Whites Voyage to New South Wales: it is consequently the oldest and most familiarly known member of the group to which it belongs. It is very generally distributed over the colony of New South Wales, inhabiting alike the brushes near the coast, those of the mountain ranges, and also the forests of Eucalypti which clothe the plains and more open country. As a great part of its food consists of seeds, berries and fruits, it is more arboreal in its habits than some of the other species of its group, whose structure better adapts them for progression on the ground, and whose food principally consists of insects and their larvæ. The habitat of the present bird appears to be confined to the south-eastern portions of the continent, where, as is the case with all birds whose range is so limited, it is a stationary species, merely moving from one district to another according to the season; at one time being more numerous on the open coast, and at another among the brushes, as each may offer it a greater variety or more abundant supply of food: the hilly portions of the country intersected with deep ravines are, however, decidedly its most congenial localities. Like the other members of the genus it is mostly seen in small companies, varying from four to six in number, seldom either singly or in pairs: I am not, however, inclined to consider them as gregarious birds in the strict sense of the word, believing as I do that each of these small companies is composed of a pair and their progeny, which appear to keep together from the birth of the latter until the natural impulse for pairing prompts them to separate.[^unimportant]
[^unimportant]: Here's a footnote I added for no good reason, except to demonstrate that you can turn off margin notes on a per-article basis.
Their flight is very different from that of the Crow, (which they much resemble in outward appearance) being much less protracted, and never of an elevated character; its utmost extent is from one part of the forest to another, or across a gully, in effecting which they sometimes pass over the tops of the trees, while at others they accomplish the distance by flitting from tree to tree. It is during flight that the markings of this bird are displayed to the greatest advantage, the strong contrast of its colours then rendering it a conspicuous object in the bush: while on the wing also it frequently causes the woods to ring with its peculiar noisy cry, by which its presence is often indicated when otherwise it would not be seen. On the ground it hops over the surface with the greatest facility.
The nest, which is usually constructed on the branches of low trees, sometimes even on those of the Casuarinæ, is of a large size, round, open, and cup-shaped, built of sticks and lined with moss and grasses; the eggs, which I was not so fortunate as to procure, are generally three or four in number.
The flesh of this species is frequently eaten by the colonists, and is by some considered a delicacy.
Of all the species of this singular and well-defined genus, the present, although not the largest in stature, is by far the handsomest, its markings being more clearly defined and the tints of its plumage more rich and contrasted than those of any of its congeners, the black being as deep as jet, and the white pure and unspotted; it differs also from all its allies yet discovered in having the basal half of the primaries and the basal half and the tips of the tail-feathers together with those portions of the shafts pure white.
The plumage of both sexes at all ages is so precisely similar, that by dissection alone can we distinguish the male from his mate, or the young from the adult; the female is, however, always a trifle less in all her admeasurements, and the young birds have the corners of the mouth more fleshy and of a brighter yellow than the adults.
All the plumage fine bluish black with the exception of the basal half of the primaries, the basal half and the tips of the tail-feathers, including those portions of their shafts and the under tail-coverts which are snow-white; irides beautiful yellow; bill and feet black.

Some files were not shown because too many files have changed in this diff Show More