Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b888ad5b02 | ||
![]() |
a6cc743573 | ||
![]() |
577fc55fef | ||
![]() |
4df6168e87 | ||
![]() |
14b6d25f79 | ||
![]() |
2ed6e0aa4b | ||
![]() |
dd9ccb4351 | ||
![]() |
96b7ce6259 | ||
![]() |
9d1a5ad65a | ||
![]() |
c44f35d629 | ||
![]() |
1efbc967f9 | ||
![]() |
72b1cf7eaf | ||
![]() |
2094e69b4a | ||
![]() |
628ba75262 | ||
![]() |
04d749b2d5 | ||
![]() |
408f434654 |
@@ -41,7 +41,7 @@
|
||||
|
||||
## About
|
||||
|
||||

|
||||

|
||||
|
||||
- [Online Demo][demo]
|
||||
- [PageSpeed Insights][pagespeed]
|
||||
@@ -55,6 +55,7 @@ Additional features include:
|
||||
- Social links
|
||||
- Blog pagination
|
||||
- Code highlighting
|
||||
- Command prompt
|
||||
- Color customization
|
||||
- i18n support
|
||||
|
||||
@@ -108,7 +109,7 @@ The main site configuration is available in `./config/_default`. Some remarks:
|
||||
- **Content** - Ensure the `mainSections` in `config.toml` is synchronized with the `content` folder, default values are `["blog", "projects"]`.
|
||||
- **Theme color** - Update `themeColor` and `themeOpacity` within the `[style]` section of `params.toml` to update the site's primary color and opacity. You can use the [WCAG Color Contrast Checker][contrast_checker] to validate the contrast ratio of your color to improve accessibility.
|
||||
- **Comments** - Comments are powered by [utterances][utterances], a lightweight comments widget built on GitHub issues. Update the `repo` of the `[comments]` section of `params.toml`.
|
||||
- **Security headings** - The local development server uses the header configuration as provided by `server.toml`. Similar settings are defined in the `netlify.toml` file provided in the repository's root when deploying to [Netlify][netlify].
|
||||
- **Security policy** - The theme uses rather strict security policies by default. Be sure to allow references to external sources in the header configuration to avoid broken links. The settings of the local development server are defined in `server.toml`. Similar settings are defined in the `netlify.toml` file provided in the repository's root when deploying to [Netlify][netlify].
|
||||
|
||||
## Contributing
|
||||
|
||||
|
@@ -163,7 +163,7 @@ Source:
|
||||
*/
|
||||
|
||||
const svgCopy =
|
||||
'<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true"><path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path></svg>';
|
||||
'<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"><path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/><path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>';
|
||||
const svgCheck =
|
||||
'<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true"><path fill-rule="evenodd" fill="rgb(63, 185, 80)" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>';
|
||||
|
||||
|
@@ -62,6 +62,7 @@ $themeColor: {{ site.Params.style.themeColor | default "#007bff" }};
|
||||
@import "components/buttons.scss";
|
||||
@import "components/card.scss";
|
||||
@import "components/clipboard.scss";
|
||||
@import "components/command.scss";
|
||||
@import "components/comments.scss";
|
||||
@import "components/navbar.scss";
|
||||
@import "components/img.scss";
|
||||
|
@@ -5,11 +5,9 @@
|
||||
right: 0;
|
||||
padding: 2px 7px 5px;
|
||||
margin: 5px;
|
||||
color: #767676;
|
||||
border-color: #767676;
|
||||
background-color: #ededed;
|
||||
border: 1px solid;
|
||||
border-radius: 6px;
|
||||
color: $secondary;
|
||||
background-color: transparent;
|
||||
border-style: none;
|
||||
font-size: 0.8em;
|
||||
z-index: 1;
|
||||
opacity: 0;
|
||||
@@ -17,17 +15,16 @@
|
||||
}
|
||||
|
||||
.clipboard-button > svg {
|
||||
fill: #767676;
|
||||
fill: $secondary;
|
||||
}
|
||||
|
||||
.clipboard-button:hover {
|
||||
cursor: pointer;
|
||||
border-color: #696969;
|
||||
background-color: #e0e0e0;
|
||||
color: $primary;
|
||||
}
|
||||
|
||||
.clipboard-button:hover > svg {
|
||||
fill: #696969;
|
||||
fill: $primary;
|
||||
}
|
||||
|
||||
.clipboard-button:focus {
|
||||
|
43
assets/scss/components/_command.scss
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Adapted from PrismJS 1.29.0
|
||||
https://prismjs.com/download.html#themes=prism&plugins=command-line */
|
||||
|
||||
/**
|
||||
* prism.js default theme for JavaScript, CSS and HTML
|
||||
* Based on dabblet (http://dabblet.com)
|
||||
* @author Lea Verou
|
||||
*/
|
||||
|
||||
.command-line-prompt {
|
||||
border-right: 1px solid #999;
|
||||
display: block;
|
||||
float: left;
|
||||
font-size: 100%;
|
||||
letter-spacing: -1px;
|
||||
margin-right: 1em;
|
||||
pointer-events: none;
|
||||
text-align: right;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.command-line-prompt > span::before {
|
||||
opacity: 0.7;
|
||||
content: " ";
|
||||
display: block;
|
||||
padding-right: 0.8em;
|
||||
}
|
||||
|
||||
.command-line-prompt > span[data-prompt]::before {
|
||||
content: attr(data-prompt);
|
||||
}
|
||||
|
||||
.command-line-prompt > span[data-continuation-prompt]::before {
|
||||
content: attr(data-continuation-prompt);
|
||||
}
|
||||
|
||||
.command-line span.token.output {
|
||||
/* Make shell output lines a bit lighter to distinguish them from shell commands */
|
||||
opacity: 0.7;
|
||||
}
|
@@ -21,10 +21,10 @@ schemaAuthorTwitter = "https://twitter.com/markdumay"
|
||||
schemaAuthorLinkedIn = "https://www.linkedin.com/in/markdumay/"
|
||||
schemaAuthorGitHub = "https://github.com/markdumay"
|
||||
schemaLocale = "en-US"
|
||||
schemaLogo = "logo512x512.png"
|
||||
schemaLogo = "img/logo512x512.png"
|
||||
schemaLogoWidth = 512
|
||||
schemaLogoHeight = 512
|
||||
schemaImage = "logo1280x640.png"
|
||||
schemaImage = "img/logo1280x640.png"
|
||||
schemaImageWidth = 1280
|
||||
schemaImageHeight = 640
|
||||
# schemaTwitter = "https://twitter.com/gethinode"
|
||||
@@ -48,8 +48,8 @@ schemaSection = "blog"
|
||||
themeOpacity = "10"
|
||||
|
||||
[main]
|
||||
featurePhoto = "img/sunrise.jpg" # source: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
logo = "/logo_embedded.svg"
|
||||
featurePhoto = "/img/sunrise.jpg" # source: https://unsplash.com/photos/ZX6BPboJrYk
|
||||
logo = "/img/logo_embedded.svg"
|
||||
|
||||
|
||||
[comments]
|
||||
|
@@ -16,7 +16,7 @@ for = '/**'
|
||||
connect-src 'self' localhost:1313 ws://localhost:1313/livereload; \
|
||||
font-src 'self' https://fonts.gstatic.com; \
|
||||
frame-src 'self' localhost:1313 https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
|
||||
img-src 'self' https://i.vimeocdn.com https://i.ytimg.com; \
|
||||
img-src 'self' https: data:; \
|
||||
manifest-src 'self'; \
|
||||
media-src 'self' \
|
||||
"""
|
||||
|
@@ -5,7 +5,7 @@ date: "2022-04-11"
|
||||
showComments: false
|
||||
---
|
||||
|
||||
<p class="text-center"><img src="/logo_embedded.svg" class="img-fluid w-50" alt="Logo"></p>
|
||||
<p class="text-center"><img src="/img/logo_embedded.svg" class="img-fluid w-50" alt="Logo"></p>
|
||||
|
||||
<center>Hinode is a clean blog theme for Hugo, an open-source static site generator.</center>
|
||||
|
||||
|
@@ -55,3 +55,129 @@ func GetTitleFunc(style string) func(s string) string {
|
||||
}
|
||||
}
|
||||
{{< / highlight >}}
|
||||
|
||||
## Command Prompt Shortcode
|
||||
|
||||
The `command` shortcode generates terminal output for either `bash`, `powershell`, or `sql` shell languages.
|
||||
|
||||
### Bash (default shell)
|
||||
|
||||
Use the `command` shortcode to generate a block with a default bash command prompt.
|
||||
|
||||
```html
|
||||
{{%/* command */%}}
|
||||
export MY_VAR=123
|
||||
{{%/* /command */%}}
|
||||
```
|
||||
|
||||
The result looks like this:
|
||||
{{% command %}}
|
||||
export MY_VAR=123
|
||||
{{% /command %}}
|
||||
|
||||
Specify `user` and `host` to add the user context to the prompt. In addition, use `(out)` to specify an output line and use `\` to denote a line continuation.
|
||||
|
||||
```html
|
||||
{{%/* command user="user" host="localhost" */%}}
|
||||
export MY_VAR=123
|
||||
echo "hello"
|
||||
(out)hello
|
||||
echo one \
|
||||
two \
|
||||
three
|
||||
(out)one two three
|
||||
echo "goodbye"
|
||||
(out)goodbye
|
||||
{{%/* /command */%}}
|
||||
```
|
||||
|
||||
The result looks like this:
|
||||
{{% command user="user" host="localhost" %}}
|
||||
export MY_VAR=123
|
||||
echo "hello"
|
||||
(out)hello
|
||||
echo one \
|
||||
two \
|
||||
three
|
||||
(out)one two three
|
||||
echo "goodbye"
|
||||
(out)goodbye
|
||||
{{% /command %}}
|
||||
|
||||
### PowerShell
|
||||
|
||||
Set the `shell` argument to `powershell` to generate a PowerShell terminal. Override the `prompt` to add a directory if needed. Use the backtick `` ` `` symbol to denote a line continuation.
|
||||
|
||||
```html
|
||||
{{%/* command prompt="PS C:\Users\User>" shell="powershell" */%}}
|
||||
Write-Host `
|
||||
'Hello' `
|
||||
'from' `
|
||||
'PowerShell!'
|
||||
(out)Hello from PowerShell!
|
||||
Write-Host 'Goodbye from PowerShell!'
|
||||
(out)Goodbye from PowerShell!
|
||||
{{%/* /command */%}}
|
||||
```
|
||||
|
||||
The result looks like this:
|
||||
{{% command prompt="PS C:\Users\User>" shell="powershell" %}}
|
||||
Write-Host `
|
||||
'Hello' `
|
||||
'from' `
|
||||
'PowerShell!'
|
||||
(out)Hello from PowerShell!
|
||||
Write-Host 'Goodbye from PowerShell!'
|
||||
(out)Goodbye from PowerShell!
|
||||
{{% /command %}}
|
||||
|
||||
### SQL
|
||||
|
||||
Set the `shell` argument to `sql` to generate a SQL terminal. Use the `(con)` suffix to denote a line continuation.
|
||||
|
||||
```html
|
||||
{{%/* command prompt="mysql>" shell="sql" */%}}
|
||||
set @my_var = 'foo';
|
||||
set @my_other_var = 'bar';
|
||||
CREATE TABLE people ((con)
|
||||
first_name VARCHAR(30) NOT NULL,(con)
|
||||
last_name VARCHAR(30) NOT NULL(con)
|
||||
);
|
||||
(out)Query OK, 0 rows affected (0.09 sec)
|
||||
insert into people(con)
|
||||
values ('John', 'Doe');
|
||||
(out)Query OK, 1 row affected (0.02 sec)
|
||||
select *(con)
|
||||
from people(con)
|
||||
order by last_name;
|
||||
(out)+------------+-----------+
|
||||
(out)| first_name | last_name |
|
||||
(out)+------------+-----------+
|
||||
(out)| John | Doe |
|
||||
(out)+------------+-----------+
|
||||
(out)1 row in set (0.00 sec)
|
||||
{{%/* /command */%}}
|
||||
```
|
||||
|
||||
The result looks like this:
|
||||
{{% command prompt="mysql>" shell="sql" %}}
|
||||
set @my_var = 'foo';
|
||||
set @my_other_var = 'bar';
|
||||
CREATE TABLE people ((con)
|
||||
first_name VARCHAR(30) NOT NULL,(con)
|
||||
last_name VARCHAR(30) NOT NULL(con)
|
||||
);
|
||||
(out)Query OK, 0 rows affected (0.09 sec)
|
||||
insert into people(con)
|
||||
values ('John', 'Doe');
|
||||
(out)Query OK, 1 row affected (0.02 sec)
|
||||
select *(con)
|
||||
from people(con)
|
||||
order by last_name;
|
||||
(out)+------------+-----------+
|
||||
(out)| first_name | last_name |
|
||||
(out)+------------+-----------+
|
||||
(out)| John | Doe |
|
||||
(out)+------------+-----------+
|
||||
(out)1 row in set (0.00 sec)
|
||||
{{% /command %}}
|
||||
|
@@ -4,7 +4,8 @@ title: "Emoji Support"
|
||||
date: 2021-07-15
|
||||
description: "Guide to emoji usage in Hugo"
|
||||
tags: ["emoji"]
|
||||
thumbnail: img/dunes.jpg # https://picsum.photos/id/184/4288/2848
|
||||
# thumbnail: img/dunes.jpg
|
||||
thumbnail: https://picsum.photos/id/184/4288/2848.jpg
|
||||
credits: Photo by <a href="https://unsplash.com/@timdegroot">Tim de Groot</a> on <a href="https://unsplash.com/photos/yNGQ830uFB4">Unsplash</a>
|
||||
---
|
||||
|
||||
|
@@ -17,9 +17,20 @@
|
||||
|
||||
{{ with .Params.thumbnail }}
|
||||
{{ $source := resources.Get . -}}
|
||||
{{ $dim := "1280x640" -}}
|
||||
{{ $img := ($source.Fill (printf "%s jpg" $dim)) -}}
|
||||
{{ $.Scratch.Set "thumbnail" ($img.Permalink | absURL) -}}
|
||||
{{ if not $source }}
|
||||
{{ $source = resources.GetRemote . -}}
|
||||
{{ if $source }}
|
||||
{{ $filename := index (last 1 (split (delimit (split . "/") "," "") ",")) 0 }}
|
||||
{{ $source = $source.Content | resources.FromString (printf "/img/%s" $filename) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ with $source }}
|
||||
{{ $dim := "1280x640" -}}
|
||||
{{ $img := (.Fill (printf "%s jpg" $dim)) -}}
|
||||
{{ $.Scratch.Set "thumbnail" ($img.Permalink | absURL) -}}
|
||||
{{ else }}
|
||||
{{ warnf "Cannot find thumbnail: %q" . }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ with .Site.Params.schemaImage -}}
|
||||
{{ $.Scratch.Set "thumbnail" (. | absURL) }}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<!--
|
||||
Render an image with responsive image sizing. The image should be available as resource stored in the "assets"
|
||||
folder. Images are resized using default media breakpoints and are converted to webp format. The image is
|
||||
processed using the quality setting specified in the [imaging] section of the main config file (defaults to 75).
|
||||
A fallback image is provided for older browsers. The image is wrapped in a figure if a caption is provided, else
|
||||
the image is wrapped in a div with a ratio constraint. The partial supports the following arguments:
|
||||
Render a local or remote image with responsive image sizing. Images are resized using default media breakpoints
|
||||
and are converted to webp format. The image is processed using the quality setting specified in the [imaging]
|
||||
section of the main config file (defaults to 75). A fallback image is provided for older browsers. The image is
|
||||
wrapped in a figure if a caption is provided, else the image is wrapped in a div with a ratio constraint. The
|
||||
partial supports the following arguments:
|
||||
"url": Required relative url of the image, e.g. "img/example.jpg"
|
||||
"ratio": Bootstrap ratio of the image, either "1x1", "4x3" (default), "16x9", or "21x9".
|
||||
"outerClass": Optional class attribute of the outer div element, e.g. "img-wrap".
|
||||
@@ -13,70 +13,85 @@
|
||||
-->
|
||||
|
||||
|
||||
{{ $img := resources.Get .url -}}
|
||||
{{ $img := resources.GetMatch .url -}}
|
||||
{{ $ratio := .ratio}}
|
||||
{{ $outerClass := .outerClass -}}
|
||||
{{ $innerClass := .innerClass -}}
|
||||
{{ $title := .title -}}
|
||||
{{ $caption := .caption -}}
|
||||
|
||||
<!-- default ratio 4x3 -->
|
||||
{{ $smDim := "576x432" -}}
|
||||
{{ $mdDim := "768x576" -}}
|
||||
{{ $lgDim := "992x744" -}}
|
||||
{{ $xlDim := "1200x900" -}}
|
||||
{{ $xxlDim := "1400x1050" -}}
|
||||
{{ if not $img }}
|
||||
{{ $img = resources.GetRemote .url -}}
|
||||
{{ if $img }}
|
||||
{{ $filename := index (last 1 (split (delimit (split .url "/") "," "") ",")) 0 }}
|
||||
{{ $img = $img.Content | resources.FromString (printf "/img/%s" $filename) }}
|
||||
{{ end }}
|
||||
{{ end}}
|
||||
|
||||
{{ if eq .ratio "1x1" -}}
|
||||
{{ $smDim = "576x576" -}}
|
||||
{{ $mdDim = "768x768" -}}
|
||||
{{ $lgDim = "992x992" -}}
|
||||
{{ $xlDim = "1200x1200" -}}
|
||||
{{ $xxlDim = "1400x1400" -}}
|
||||
{{ else if eq .ratio "16x9" -}}
|
||||
{{ $smDim = "576x324" -}}
|
||||
{{ $mdDim = "768x432" -}}
|
||||
{{ $lgDim = "992x558" -}}
|
||||
{{ $xlDim = "1200x675" -}}
|
||||
{{ $xxlDim = "1400x788" -}}
|
||||
{{ else if eq .ratio "21x9" -}}
|
||||
{{ $smDim = "576x247" -}}
|
||||
{{ $mdDim = "768x329" -}}
|
||||
{{ $lgDim = "992x425" -}}
|
||||
{{ $xlDim = "1200x514" -}}
|
||||
{{ $xxlDim = "1400x600" -}}
|
||||
{{ end -}}
|
||||
{{ with $img }}
|
||||
<!-- default ratio 4x3 -->
|
||||
{{ $smDim := "576x432" -}}
|
||||
{{ $mdDim := "768x576" -}}
|
||||
{{ $lgDim := "992x744" -}}
|
||||
{{ $xlDim := "1200x900" -}}
|
||||
{{ $xxlDim := "1400x1050" -}}
|
||||
|
||||
{{ $sm := ($img.Fill (printf "%s webp" $smDim)) -}}
|
||||
{{ $md := ($img.Fill (printf "%s webp" $mdDim)) -}}
|
||||
{{ $lg := ($img.Fill (printf "%s webp" $lgDim)) -}}
|
||||
{{ $xl := ($img.Fill (printf "%s webp" $xlDim)) -}}
|
||||
{{ $xxl := ($img.Fill (printf "%s webp" $xxlDim)) -}}
|
||||
{{ $fallback := ($img.Fill (printf "%s jpg" $xxlDim)) -}}
|
||||
{{ if eq $ratio "1x1" -}}
|
||||
{{ $smDim = "576x576" -}}
|
||||
{{ $mdDim = "768x768" -}}
|
||||
{{ $lgDim = "992x992" -}}
|
||||
{{ $xlDim = "1200x1200" -}}
|
||||
{{ $xxlDim = "1400x1400" -}}
|
||||
{{ else if eq $ratio "16x9" -}}
|
||||
{{ $smDim = "576x324" -}}
|
||||
{{ $mdDim = "768x432" -}}
|
||||
{{ $lgDim = "992x558" -}}
|
||||
{{ $xlDim = "1200x675" -}}
|
||||
{{ $xxlDim = "1400x788" -}}
|
||||
{{ else if eq $ratio "21x9" -}}
|
||||
{{ $smDim = "576x247" -}}
|
||||
{{ $mdDim = "768x329" -}}
|
||||
{{ $lgDim = "992x425" -}}
|
||||
{{ $xlDim = "1200x514" -}}
|
||||
{{ $xxlDim = "1400x600" -}}
|
||||
{{ end -}}
|
||||
|
||||
{{ $sm := ($img.Fill (printf "%s webp" $smDim)) -}}
|
||||
{{ $md := ($img.Fill (printf "%s webp" $mdDim)) -}}
|
||||
{{ $lg := ($img.Fill (printf "%s webp" $lgDim)) -}}
|
||||
{{ $xl := ($img.Fill (printf "%s webp" $xlDim)) -}}
|
||||
{{ $xxl := ($img.Fill (printf "%s webp" $xxlDim)) -}}
|
||||
{{ $fallback := ($img.Fill (printf "%s jpg" $xxlDim)) -}}
|
||||
|
||||
|
||||
{{ with .caption -}}
|
||||
<figure class="figure">
|
||||
<img class="figure-img img-fluid {{ $innerClass }}"
|
||||
srcset="
|
||||
{{- with $xxl.RelPermalink -}}{{.}} 1400w{{- end -}}
|
||||
{{- with $xl.RelPermalink -}}, {{.}} 1200w{{- end -}}
|
||||
{{- with $lg.RelPermalink -}}, {{.}} 992w{{- end -}}
|
||||
{{- with $md.RelPermalink -}}, {{.}} 768w{{- end -}}
|
||||
{{- with $sm.RelPermalink -}}, {{.}} 576w{{- end -}}"
|
||||
sizes="100vw"
|
||||
src="{{ $fallback.RelPermalink }}"
|
||||
alt="{{ $title }}">
|
||||
<figcaption class="figure-caption">{{ . | safeHTML }}</figcaption>
|
||||
</figure>
|
||||
{{ else -}}
|
||||
<div class="ratio ratio-{{ .ratio }} {{ .outerClass }}">
|
||||
<img class="img-fluid {{ $innerClass }}"
|
||||
srcset="
|
||||
{{- with $xxl.RelPermalink -}}{{.}} 1400w{{- end -}}
|
||||
{{- with $xl.RelPermalink -}}, {{.}} 1200w{{- end -}}
|
||||
{{- with $lg.RelPermalink -}}, {{.}} 992w{{- end -}}
|
||||
{{- with $md.RelPermalink -}}, {{.}} 768w{{- end -}}
|
||||
{{- with $sm.RelPermalink -}}, {{.}} 576w{{- end -}}"
|
||||
sizes="100vw"
|
||||
src="{{ $fallback.RelPermalink }}"
|
||||
alt="{{ $title }}">
|
||||
</div>
|
||||
{{ end -}}
|
||||
{{ with $caption -}}
|
||||
<figure class="figure">
|
||||
<img class="figure-img img-fluid {{ $innerClass }}"
|
||||
srcset="
|
||||
{{- with $xxl.RelPermalink -}}{{.}} 1400w{{- end -}}
|
||||
{{- with $xl.RelPermalink -}}, {{.}} 1200w{{- end -}}
|
||||
{{- with $lg.RelPermalink -}}, {{.}} 992w{{- end -}}
|
||||
{{- with $md.RelPermalink -}}, {{.}} 768w{{- end -}}
|
||||
{{- with $sm.RelPermalink -}}, {{.}} 576w{{- end -}}"
|
||||
sizes="100vw"
|
||||
src="{{ $fallback.RelPermalink }}"
|
||||
alt="{{ $title }}">
|
||||
<figcaption class="figure-caption">{{ . | safeHTML }}</figcaption>
|
||||
</figure>
|
||||
{{ else -}}
|
||||
<div class="ratio ratio-{{ $ratio }} {{ $outerClass }}">
|
||||
<img class="img-fluid {{ $innerClass }}"
|
||||
srcset="
|
||||
{{- with $xxl.RelPermalink -}}{{.}} 1400w{{- end -}}
|
||||
{{- with $xl.RelPermalink -}}, {{.}} 1200w{{- end -}}
|
||||
{{- with $lg.RelPermalink -}}, {{.}} 992w{{- end -}}
|
||||
{{- with $md.RelPermalink -}}, {{.}} 768w{{- end -}}
|
||||
{{- with $sm.RelPermalink -}}, {{.}} 576w{{- end -}}"
|
||||
sizes="100vw"
|
||||
src="{{ $fallback.RelPermalink }}"
|
||||
alt="{{ $title }}">
|
||||
</div>
|
||||
{{ end -}}
|
||||
{{ else }}
|
||||
{{ warnf "Cannot find image resource: %q" .url }}
|
||||
{{ end }}
|
||||
|
70
layouts/shortcodes/command.html
Normal file
@@ -0,0 +1,70 @@
|
||||
{{ $host := .Get "host" }}
|
||||
{{ $user := .Get "user" }}
|
||||
{{ $prompt := .Get "prompt" }}
|
||||
{{ $filter := "(out)" }}
|
||||
{{ $input := trim .Inner "\n" }}
|
||||
|
||||
{{ $shell := lower (.Get "shell") }}
|
||||
{{ $continuationPrompt := ">" }}
|
||||
{{ $continuationStr := "\\" }}
|
||||
{{ if eq $shell "powershell" }}
|
||||
{{ if not $prompt }}{{ $prompt = "PS>" }}{{ end }}
|
||||
{{ $continuationPrompt = ">>" }}
|
||||
{{ $continuationStr = "`" }}
|
||||
{{ else if eq $shell "sql" }}
|
||||
{{ if not $prompt }}{{ $prompt = "sql>" }}{{ end }}
|
||||
{{ $continuationPrompt = "->" }}
|
||||
{{ $continuationStr = "(con)" }}
|
||||
{{ else }}
|
||||
{{ $shell = "bash" }}
|
||||
{{ if not $prompt }}{{ $prompt = "$" }}{{ end }}
|
||||
{{ if (and ($host) ($user)) }}
|
||||
{{ $prompt = printf "[%s@%s] %s" $user $host $prompt}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
|
||||
|
||||
{{ $lines := split $input "\n" }}
|
||||
{{ $prefix := ""}}
|
||||
{{ $prevLine := "" }}
|
||||
{{ $refined := "" }}
|
||||
{{ range $line := $lines }}
|
||||
{{ if hasPrefix $line $filter }}
|
||||
{{ $prefix = printf "%s<span></span>" $prefix }}
|
||||
{{ if eq $shell "sql" }}
|
||||
{{ $line = printf "--%s" (strings.TrimPrefix $filter $line) }}
|
||||
{{ else }}
|
||||
{{ $line = printf "#%s" (strings.TrimPrefix $filter $line) }}
|
||||
{{ end }}
|
||||
{{ else if (strings.HasSuffix $prevLine $continuationStr) }}
|
||||
{{ $prefix = printf "%s<span data-prompt=\"%s\"></span>" $prefix $continuationPrompt }}
|
||||
{{ else }}
|
||||
{{ $prefix = printf "%s<span data-prompt=\"%s\"></span>" $prefix $prompt }}
|
||||
{{ end }}
|
||||
{{ $prevLine = $line }}
|
||||
{{ if (and (eq $shell "sql") (strings.HasSuffix $line $continuationStr)) }}
|
||||
{{ $line = strings.TrimSuffix $continuationStr $line }}
|
||||
{{ end }}
|
||||
{{ $refined = printf "%s\n%s" $refined $line }}
|
||||
{{ end }}
|
||||
|
||||
{{ $refined := trim $refined "\n" }}
|
||||
|
||||
{{ $output := (transform.Highlight $refined $shell | safeHTML) }}
|
||||
|
||||
|
||||
|
||||
{{ $insert := printf "<span class=\"command-line-prompt\">%s</span><span class=\"line\">" $prefix }}
|
||||
|
||||
{{ $output := (replace $output ("<span class=\"line\">" | safeHTML) $insert 1 | safeHTML) }}
|
||||
|
||||
{{ if eq $shell "sql"}}
|
||||
{{ $output = (replace $output "<span class=\"c1\">--" "<span class=\"c1\">" | safeHTML) }}
|
||||
{{ else }}
|
||||
{{ $output = (replace $output "<span class=\"c1\">#" "<span class=\"c1\">" | safeHTML) }}
|
||||
{{ $output = (replace $output "<span class=\"c\">#" "<span class=\"c\">" | safeHTML) }}
|
||||
{{ end }}
|
||||
|
||||
{{ $output }}
|
@@ -1,8 +1,8 @@
|
||||
<!--
|
||||
Render an image with responsive image sizing. The image should be available as resource stored in the "assets"
|
||||
folder. Images are resized using default media breakpoints and are converted to webp format. The image is
|
||||
processed using the quality setting specified in the [imaging] section of the main config file (defaults to 75).
|
||||
A fallback image is provided for older browsers. The partial supports the following arguments:
|
||||
Render a local or remote image with responsive image sizing. Images are resized using default media breakpoints
|
||||
and are converted to webp format. The image is processed using the quality setting specified in the [imaging]
|
||||
section of the main config file (defaults to 75). A fallback image is provided for older browsers. The partial
|
||||
supports the following arguments:
|
||||
"src": Required relative url of the image, e.g. "img/example.jpg"
|
||||
"ratio": Bootstrap ratio of the image, either "1x1", "4x3" (default), "16x9", or "21x9".
|
||||
"class": Optional class attribute of the inner img element, e.g. "rounded".
|
||||
@@ -13,64 +13,72 @@
|
||||
{{ if isset .Params "src" }}
|
||||
{{ $url := .Get "src" }}
|
||||
{{ $ratio := "4x3" }}
|
||||
{{ $class := "" }}
|
||||
{{ $title := "" }}
|
||||
{{ $caption := "" }}
|
||||
|
||||
{{ $img := resources.Get $url }}
|
||||
{{ with .Get "ratio" }}{{ $ratio = . }}{{ end }}
|
||||
{{ with .Get "class" }}{{ $class = . }}{{ end }}
|
||||
{{ with .Get "title" }}{{ $title = . }}{{ end }}
|
||||
{{ with .Get "caption" }}{{ $caption = . }}{{ end }}
|
||||
|
||||
<!-- default ratio 4x3 -->
|
||||
{{ $smDim := "576x432" }}
|
||||
{{ $mdDim := "768x576" }}
|
||||
{{ $lgDim := "992x744" }}
|
||||
{{ $xlDim := "1200x900" }}
|
||||
{{ $xxlDim := "1400x1050" }}
|
||||
|
||||
{{ if eq $ratio "1x1"}}
|
||||
{{ $smDim = "576x576" }}
|
||||
{{ $mdDim = "768x768" }}
|
||||
{{ $lgDim = "992x992" }}
|
||||
{{ $xlDim = "1200x1200" }}
|
||||
{{ $xxlDim = "1400x1400" }}
|
||||
{{ else if eq $ratio "16x9"}}
|
||||
{{ $smDim = "576x324" }}
|
||||
{{ $mdDim = "768x432" }}
|
||||
{{ $lgDim = "992x558" }}
|
||||
{{ $xlDim = "1200x675" }}
|
||||
{{ $xxlDim = "1400x788" }}
|
||||
{{ else if eq $ratio "21x9"}}
|
||||
{{ $smDim = "576x247" }}
|
||||
{{ $mdDim = "768x329" }}
|
||||
{{ $lgDim = "992x425" }}
|
||||
{{ $xlDim = "1200x514" }}
|
||||
{{ $xxlDim = "1400x600" }}
|
||||
{{ end }}
|
||||
|
||||
{{ $sm := ($img.Fill (printf "%s webp" $smDim)) }}
|
||||
{{ $md := ($img.Fill (printf "%s webp" $mdDim)) }}
|
||||
{{ $lg := ($img.Fill (printf "%s webp" $lgDim)) }}
|
||||
{{ $xl := ($img.Fill (printf "%s webp" $xlDim)) }}
|
||||
{{ $xxl := ($img.Fill (printf "%s webp" $xxlDim)) }}
|
||||
{{ $fallback := ($img.Fill (printf "%s jpg" $xxlDim)) }}
|
||||
|
||||
{{ $class := .Get "class" }}
|
||||
{{ $title := .Get "title" }}
|
||||
{{ $caption := .Get "caption" }}
|
||||
|
||||
<figure class="figure">
|
||||
<img class="figure-img img-fluid {{ $class}}"
|
||||
srcset="
|
||||
{{- with $xxl.RelPermalink -}}{{.}} 1400w{{- end -}}
|
||||
{{- with $xl.RelPermalink -}}, {{.}} 1200w{{- end -}}
|
||||
{{- with $lg.RelPermalink -}}, {{.}} 992w{{- end -}}
|
||||
{{- with $md.RelPermalink -}}, {{.}} 768w{{- end -}}
|
||||
{{- with $sm.RelPermalink -}}, {{.}} 576w{{- end -}}"
|
||||
sizes="100vw"
|
||||
src="{{ $fallback.RelPermalink }}"
|
||||
alt="{{ $title }}">
|
||||
<figcaption class="figure-caption">{{ $caption }}</figcaption>
|
||||
</figure>
|
||||
{{ $img := resources.GetMatch $url }}
|
||||
{{ if not $img }}
|
||||
{{ $img = resources.GetRemote $url -}}
|
||||
{{ if $img }}
|
||||
{{ $filename := index (last 1 (split (delimit (split $url "/") "," "") ",")) 0 }}
|
||||
{{ $img = $img.Content | resources.FromString (printf "/img/%s" $filename) }}
|
||||
{{ end }}
|
||||
{{ end}}
|
||||
|
||||
{{ with $img }}
|
||||
<!-- default ratio 4x3 -->
|
||||
{{ $smDim := "576x432" }}
|
||||
{{ $mdDim := "768x576" }}
|
||||
{{ $lgDim := "992x744" }}
|
||||
{{ $xlDim := "1200x900" }}
|
||||
{{ $xxlDim := "1400x1050" }}
|
||||
|
||||
{{ if eq $ratio "1x1"}}
|
||||
{{ $smDim = "576x576" }}
|
||||
{{ $mdDim = "768x768" }}
|
||||
{{ $lgDim = "992x992" }}
|
||||
{{ $xlDim = "1200x1200" }}
|
||||
{{ $xxlDim = "1400x1400" }}
|
||||
{{ else if eq $ratio "16x9"}}
|
||||
{{ $smDim = "576x324" }}
|
||||
{{ $mdDim = "768x432" }}
|
||||
{{ $lgDim = "992x558" }}
|
||||
{{ $xlDim = "1200x675" }}
|
||||
{{ $xxlDim = "1400x788" }}
|
||||
{{ else if eq $ratio "21x9"}}
|
||||
{{ $smDim = "576x247" }}
|
||||
{{ $mdDim = "768x329" }}
|
||||
{{ $lgDim = "992x425" }}
|
||||
{{ $xlDim = "1200x514" }}
|
||||
{{ $xxlDim = "1400x600" }}
|
||||
{{ end }}
|
||||
|
||||
{{ $sm := ($img.Fill (printf "%s webp" $smDim)) }}
|
||||
{{ $md := ($img.Fill (printf "%s webp" $mdDim)) }}
|
||||
{{ $lg := ($img.Fill (printf "%s webp" $lgDim)) }}
|
||||
{{ $xl := ($img.Fill (printf "%s webp" $xlDim)) }}
|
||||
{{ $xxl := ($img.Fill (printf "%s webp" $xxlDim)) }}
|
||||
{{ $fallback := ($img.Fill (printf "%s jpg" $xxlDim)) }}
|
||||
|
||||
|
||||
<figure class="figure">
|
||||
<img class="figure-img img-fluid {{ $class}}"
|
||||
srcset="
|
||||
{{- with $xxl.RelPermalink -}}{{.}} 1400w{{- end -}}
|
||||
{{- with $xl.RelPermalink -}}, {{.}} 1200w{{- end -}}
|
||||
{{- with $lg.RelPermalink -}}, {{.}} 992w{{- end -}}
|
||||
{{- with $md.RelPermalink -}}, {{.}} 768w{{- end -}}
|
||||
{{- with $sm.RelPermalink -}}, {{.}} 576w{{- end -}}"
|
||||
sizes="100vw"
|
||||
src="{{ $fallback.RelPermalink }}"
|
||||
alt="{{ $title }}">
|
||||
<figcaption class="figure-caption">{{ $caption }}</figcaption>
|
||||
</figure>
|
||||
{{ else }}
|
||||
{{ warnf "Cannot find image resource: %q" $url }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ errorf "missing value for param 'src': %s" .Position }}
|
||||
{{ errorf "Missing value for param 'src': %s" .Position }}
|
||||
{{ end }}
|
185
package-lock.json
generated
@@ -1,23 +1,23 @@
|
||||
{
|
||||
"name": "@markdumay/hugo-theme-hinode",
|
||||
"version": "0.4.4",
|
||||
"version": "0.5.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@markdumay/hugo-theme-hinode",
|
||||
"version": "0.4.4",
|
||||
"version": "0.5.2",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.2.0",
|
||||
"@fullhuman/postcss-purgecss": "^5.0.0",
|
||||
"autoprefixer": "^10.4.12",
|
||||
"autoprefixer": "^10.4.13",
|
||||
"bootstrap": "^5.2.2",
|
||||
"eslint": "^8.25.0",
|
||||
"eslint": "^8.26.0",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-n": "^15.3.0",
|
||||
"eslint-plugin-n": "^15.4.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"exec-bin": "^1.0.0",
|
||||
"flexsearch": "^0.7.31",
|
||||
@@ -27,7 +27,7 @@
|
||||
"purgecss-whitelister": "^2.4.0",
|
||||
"shx": "^0.3.4",
|
||||
"stylelint": "^14.14.0",
|
||||
"stylelint-config-standard-scss": "^5.0.0"
|
||||
"stylelint-config-standard-scss": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
@@ -199,9 +199,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@humanwhocodes/config-array": {
|
||||
"version": "0.10.7",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
|
||||
"integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
|
||||
"version": "0.11.6",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
|
||||
"integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@humanwhocodes/object-schema": "^1.2.1",
|
||||
@@ -540,9 +540,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/autoprefixer": {
|
||||
"version": "10.4.12",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
|
||||
"integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
|
||||
"version": "10.4.13",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
|
||||
"integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -556,7 +556,7 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"browserslist": "^4.21.4",
|
||||
"caniuse-lite": "^1.0.30001407",
|
||||
"caniuse-lite": "^1.0.30001426",
|
||||
"fraction.js": "^4.2.0",
|
||||
"normalize-range": "^0.1.2",
|
||||
"picocolors": "^1.0.0",
|
||||
@@ -871,9 +871,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001414",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz",
|
||||
"integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==",
|
||||
"version": "1.0.30001426",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001426.tgz",
|
||||
"integrity": "sha512-n7cosrHLl8AWt0wwZw/PJZgUg3lV0gk9LMI7ikGJwhyhgsd2Nb65vKvmSexCqq/J7rbH3mFG6yZZiPR5dLPW5A==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -1503,14 +1503,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "8.25.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
|
||||
"integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
|
||||
"version": "8.26.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz",
|
||||
"integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@eslint/eslintrc": "^1.3.3",
|
||||
"@humanwhocodes/config-array": "^0.10.5",
|
||||
"@humanwhocodes/config-array": "^0.11.6",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
"ajv": "^6.10.0",
|
||||
"chalk": "^4.0.0",
|
||||
"cross-spawn": "^7.0.2",
|
||||
@@ -1526,14 +1527,14 @@
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"file-entry-cache": "^6.0.1",
|
||||
"find-up": "^5.0.0",
|
||||
"glob-parent": "^6.0.1",
|
||||
"glob-parent": "^6.0.2",
|
||||
"globals": "^13.15.0",
|
||||
"globby": "^11.1.0",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"ignore": "^5.2.0",
|
||||
"import-fresh": "^3.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"is-glob": "^4.0.0",
|
||||
"is-path-inside": "^3.0.3",
|
||||
"js-sdsl": "^4.1.4",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||
@@ -1726,9 +1727,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/eslint-plugin-n": {
|
||||
"version": "15.3.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.3.0.tgz",
|
||||
"integrity": "sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==",
|
||||
"version": "15.4.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.4.0.tgz",
|
||||
"integrity": "sha512-MkoKy9/lfd52TAXK4fkABgCp0aglk82Q3viy2UOWIEpTVE/Cem5P/UAxMBA4vSw7Gy+2egPqImE9euitLGp5aw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"builtins": "^5.0.1",
|
||||
@@ -1811,6 +1812,15 @@
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint/node_modules/is-path-inside": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
|
||||
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/espree": {
|
||||
"version": "9.4.0",
|
||||
"resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
|
||||
@@ -5028,51 +5038,57 @@
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-recommended": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz",
|
||||
"integrity": "sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==",
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz",
|
||||
"integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==",
|
||||
"dev": true,
|
||||
"peerDependencies": {
|
||||
"stylelint": "^14.8.0"
|
||||
"stylelint": "^14.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-recommended-scss": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-7.0.0.tgz",
|
||||
"integrity": "sha512-rGz1J4rMAyJkvoJW4hZasuQBB7y9KIrShb20l9DVEKKZSEi1HAy0vuNlR8HyCKy/jveb/BdaQFcoiYnmx4HoiA==",
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz",
|
||||
"integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"postcss-scss": "^4.0.2",
|
||||
"stylelint-config-recommended": "^8.0.0",
|
||||
"stylelint-config-recommended": "^9.0.0",
|
||||
"stylelint-scss": "^4.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^14.4.0"
|
||||
"postcss": "^8.3.3",
|
||||
"stylelint": "^14.10.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"postcss": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-standard": {
|
||||
"version": "26.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz",
|
||||
"integrity": "sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==",
|
||||
"version": "29.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz",
|
||||
"integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"stylelint-config-recommended": "^8.0.0"
|
||||
"stylelint-config-recommended": "^9.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^14.9.0"
|
||||
"stylelint": "^14.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-config-standard-scss": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-5.0.0.tgz",
|
||||
"integrity": "sha512-zoXLibojHZYPFjtkc4STZtAJ2yGTq3Bb4MYO0oiyO6f/vNxDKRcSDZYoqN260Gv2eD5niQIr1/kr5SXlFj9kcQ==",
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.0.0.tgz",
|
||||
"integrity": "sha512-aAWcQgiqsXg6Jyhq/Q/HPbVB7PHf4v/wdyFSDun/qlL/SPxtEcVeGMvJLzRVRaNf3tp3D93QP6N9QKwJa1L0Kw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"stylelint-config-recommended-scss": "^7.0.0",
|
||||
"stylelint-config-standard": "^26.0.0"
|
||||
"stylelint-config-recommended-scss": "^8.0.0",
|
||||
"stylelint-config-standard": "^29.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"stylelint": "^14.9.0"
|
||||
"stylelint": "^14.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stylelint-scss": {
|
||||
@@ -5682,9 +5698,9 @@
|
||||
}
|
||||
},
|
||||
"@humanwhocodes/config-array": {
|
||||
"version": "0.10.7",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
|
||||
"integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
|
||||
"version": "0.11.6",
|
||||
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
|
||||
"integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@humanwhocodes/object-schema": "^1.2.1",
|
||||
@@ -5936,13 +5952,13 @@
|
||||
"dev": true
|
||||
},
|
||||
"autoprefixer": {
|
||||
"version": "10.4.12",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
|
||||
"integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
|
||||
"version": "10.4.13",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
|
||||
"integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"browserslist": "^4.21.4",
|
||||
"caniuse-lite": "^1.0.30001407",
|
||||
"caniuse-lite": "^1.0.30001426",
|
||||
"fraction.js": "^4.2.0",
|
||||
"normalize-range": "^0.1.2",
|
||||
"picocolors": "^1.0.0",
|
||||
@@ -6151,9 +6167,9 @@
|
||||
}
|
||||
},
|
||||
"caniuse-lite": {
|
||||
"version": "1.0.30001414",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz",
|
||||
"integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==",
|
||||
"version": "1.0.30001426",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001426.tgz",
|
||||
"integrity": "sha512-n7cosrHLl8AWt0wwZw/PJZgUg3lV0gk9LMI7ikGJwhyhgsd2Nb65vKvmSexCqq/J7rbH3mFG6yZZiPR5dLPW5A==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
@@ -6618,14 +6634,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"eslint": {
|
||||
"version": "8.25.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
|
||||
"integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
|
||||
"version": "8.26.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz",
|
||||
"integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@eslint/eslintrc": "^1.3.3",
|
||||
"@humanwhocodes/config-array": "^0.10.5",
|
||||
"@humanwhocodes/config-array": "^0.11.6",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
"@nodelib/fs.walk": "^1.2.8",
|
||||
"ajv": "^6.10.0",
|
||||
"chalk": "^4.0.0",
|
||||
"cross-spawn": "^7.0.2",
|
||||
@@ -6641,14 +6658,14 @@
|
||||
"fast-deep-equal": "^3.1.3",
|
||||
"file-entry-cache": "^6.0.1",
|
||||
"find-up": "^5.0.0",
|
||||
"glob-parent": "^6.0.1",
|
||||
"glob-parent": "^6.0.2",
|
||||
"globals": "^13.15.0",
|
||||
"globby": "^11.1.0",
|
||||
"grapheme-splitter": "^1.0.4",
|
||||
"ignore": "^5.2.0",
|
||||
"import-fresh": "^3.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"is-glob": "^4.0.0",
|
||||
"is-path-inside": "^3.0.3",
|
||||
"js-sdsl": "^4.1.4",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||
@@ -6661,6 +6678,14 @@
|
||||
"strip-ansi": "^6.0.1",
|
||||
"strip-json-comments": "^3.1.0",
|
||||
"text-table": "^0.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"is-path-inside": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
|
||||
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-config-standard": {
|
||||
@@ -6786,9 +6811,9 @@
|
||||
}
|
||||
},
|
||||
"eslint-plugin-n": {
|
||||
"version": "15.3.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.3.0.tgz",
|
||||
"integrity": "sha512-IyzPnEWHypCWasDpxeJnim60jhlumbmq0pubL6IOcnk8u2y53s5QfT8JnXy7skjHJ44yWHRb11PLtDHuu1kg/Q==",
|
||||
"version": "15.4.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.4.0.tgz",
|
||||
"integrity": "sha512-MkoKy9/lfd52TAXK4fkABgCp0aglk82Q3viy2UOWIEpTVE/Cem5P/UAxMBA4vSw7Gy+2egPqImE9euitLGp5aw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"builtins": "^5.0.1",
|
||||
@@ -9185,40 +9210,40 @@
|
||||
}
|
||||
},
|
||||
"stylelint-config-recommended": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz",
|
||||
"integrity": "sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==",
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz",
|
||||
"integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==",
|
||||
"dev": true,
|
||||
"requires": {}
|
||||
},
|
||||
"stylelint-config-recommended-scss": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-7.0.0.tgz",
|
||||
"integrity": "sha512-rGz1J4rMAyJkvoJW4hZasuQBB7y9KIrShb20l9DVEKKZSEi1HAy0vuNlR8HyCKy/jveb/BdaQFcoiYnmx4HoiA==",
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz",
|
||||
"integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"postcss-scss": "^4.0.2",
|
||||
"stylelint-config-recommended": "^8.0.0",
|
||||
"stylelint-config-recommended": "^9.0.0",
|
||||
"stylelint-scss": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"stylelint-config-standard": {
|
||||
"version": "26.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz",
|
||||
"integrity": "sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==",
|
||||
"version": "29.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz",
|
||||
"integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"stylelint-config-recommended": "^8.0.0"
|
||||
"stylelint-config-recommended": "^9.0.0"
|
||||
}
|
||||
},
|
||||
"stylelint-config-standard-scss": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-5.0.0.tgz",
|
||||
"integrity": "sha512-zoXLibojHZYPFjtkc4STZtAJ2yGTq3Bb4MYO0oiyO6f/vNxDKRcSDZYoqN260Gv2eD5niQIr1/kr5SXlFj9kcQ==",
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.0.0.tgz",
|
||||
"integrity": "sha512-aAWcQgiqsXg6Jyhq/Q/HPbVB7PHf4v/wdyFSDun/qlL/SPxtEcVeGMvJLzRVRaNf3tp3D93QP6N9QKwJa1L0Kw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"stylelint-config-recommended-scss": "^7.0.0",
|
||||
"stylelint-config-standard": "^26.0.0"
|
||||
"stylelint-config-recommended-scss": "^8.0.0",
|
||||
"stylelint-config-standard": "^29.0.0"
|
||||
}
|
||||
},
|
||||
"stylelint-scss": {
|
||||
|
12
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@markdumay/hugo-theme-hinode",
|
||||
"version": "0.4.5",
|
||||
"version": "0.5.2",
|
||||
"description": "Hinode is a clean blog theme for Hugo, an open-source static site generator",
|
||||
"main": "index.js",
|
||||
"publishConfig": {
|
||||
@@ -47,12 +47,12 @@
|
||||
"devDependencies": {
|
||||
"@fortawesome/fontawesome-free": "^6.2.0",
|
||||
"@fullhuman/postcss-purgecss": "^5.0.0",
|
||||
"autoprefixer": "^10.4.12",
|
||||
"autoprefixer": "^10.4.13",
|
||||
"bootstrap": "^5.2.2",
|
||||
"eslint": "^8.25.0",
|
||||
"eslint": "^8.26.0",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-n": "^15.3.0",
|
||||
"eslint-plugin-n": "^15.4.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"exec-bin": "^1.0.0",
|
||||
"flexsearch": "^0.7.31",
|
||||
@@ -62,9 +62,9 @@
|
||||
"purgecss-whitelister": "^2.4.0",
|
||||
"shx": "^0.3.4",
|
||||
"stylelint": "^14.14.0",
|
||||
"stylelint-config-standard-scss": "^5.0.0"
|
||||
"stylelint-config-standard-scss": "^6.0.0"
|
||||
},
|
||||
"otherDependencies": {
|
||||
"hugo": "0.104.3"
|
||||
"hugo": "0.105.0"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |