mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-07 10:04:22 +00:00
Compare commits
27 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f3211eabe0 | ||
![]() |
82c1d00af4 | ||
![]() |
70386eaeec | ||
![]() |
7413155dea | ||
![]() |
cfd1706f5f | ||
![]() |
5eca63c50d | ||
![]() |
d3f471a281 | ||
![]() |
b4acd7aef2 | ||
![]() |
49a3ef3c42 | ||
![]() |
56eaa9d90b | ||
![]() |
492dbbec24 | ||
![]() |
d2fc5e3433 | ||
![]() |
b5cc3f6d84 | ||
![]() |
e1e1041c1b | ||
![]() |
e1cac645a7 | ||
![]() |
d23d533575 | ||
![]() |
d447a4a65a | ||
![]() |
3a466277e3 | ||
![]() |
2b09ceef93 | ||
![]() |
ee30409257 | ||
![]() |
70583bdb33 | ||
![]() |
8e1a299a72 | ||
![]() |
e20aba4907 | ||
![]() |
1aedf22923 | ||
![]() |
e77671ffef | ||
![]() |
433f8ef60d | ||
![]() |
acb261ba69 |
@@ -61,33 +61,14 @@
|
||||
})
|
||||
|
||||
window.addEventListener('DOMContentLoaded', () => {
|
||||
const light = (document.documentElement.getAttribute('data-bs-theme') === 'light')
|
||||
|
||||
document.querySelectorAll('.ball').forEach(ball => {
|
||||
ball.classList.add('notransition');
|
||||
})
|
||||
|
||||
document.querySelectorAll('.navbar-mode-selector').forEach(chk => {
|
||||
chk.checked = light
|
||||
chk.addEventListener('change', function () {
|
||||
document.documentElement.setAttribute('data-bs-theme-animate', 'true')
|
||||
toggleTheme()
|
||||
})
|
||||
})
|
||||
|
||||
document.querySelectorAll('.ball').forEach(ball => {
|
||||
ball.offsetHeight; // flush css changes
|
||||
ball.classList.remove('notransition');
|
||||
})
|
||||
})
|
||||
|
||||
window.addEventListener('load', () => {
|
||||
const light = (document.documentElement.getAttribute('data-bs-theme') === 'light')
|
||||
document.querySelectorAll('.navbar-mode-selector').forEach(chk => {
|
||||
chk.checked = light
|
||||
})
|
||||
});
|
||||
|
||||
// initialize theme directly when script is invoked
|
||||
setTheme(getTheme())
|
||||
})()
|
||||
|
@@ -1,5 +1,69 @@
|
||||
// stylelint-disable annotation-no-unknown
|
||||
|
||||
// adapted from https://www.codeply.com/p/UsTEwDkzNp#
|
||||
.checkbox {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.mode-switch {
|
||||
--#{$prefix}mode-switch-width: 50px;
|
||||
}
|
||||
|
||||
.mode-switch .label {
|
||||
border-color: var(--#{$prefix}border-color);
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-radius: var(--#{$prefix}mode-switch-width);
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 5px;
|
||||
position: relative;
|
||||
height: calc(1px + var(--#{$prefix}mode-switch-width) / 2);
|
||||
width: var(--#{$prefix}mode-switch-width);
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
.notransition {
|
||||
-webkit-transition: none !important;
|
||||
-moz-transition: none !important;
|
||||
-o-transition: none !important;
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
.mode-switch .label .ball {
|
||||
background-color: var(--#{$prefix}border-color);
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
height: calc((var(--#{$prefix}mode-switch-width) / 2) - 5px);
|
||||
width: calc((var(--#{$prefix}mode-switch-width) / 2) - 5px);
|
||||
transition: transform 0.2s linear;
|
||||
}
|
||||
|
||||
.mode-switch .checkbox:checked + .label .ball {
|
||||
transform: translateX(calc((var(--#{$prefix}mode-switch-width) / 2) - 1px));
|
||||
}
|
||||
|
||||
@if $enable-dark-mode {
|
||||
[data-bs-theme="light"] .mode-switch .ball {
|
||||
transform: translateX(calc((var(--#{$prefix}mode-switch-width) / 2) - 1px));
|
||||
}
|
||||
}
|
||||
|
||||
.mode-switch .fa-moon {
|
||||
color: $yellow;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
.mode-switch .fa-sun {
|
||||
color: var(--#{$prefix}bs-body-color);
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
// Source: https://jsfiddle.net/njhgr40m/
|
||||
|
||||
@if $enable-dark-mode {
|
||||
@@ -49,9 +113,15 @@
|
||||
--bs-navbar-active-color: white !important;
|
||||
--bs-navbar-toggler-color: white;
|
||||
|
||||
.navbar-title {
|
||||
.navbar-title, .mode-switch {
|
||||
--#{$prefix}border-color: white;
|
||||
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.mode-switch .fa-moon {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-expanded {
|
||||
@@ -245,60 +315,3 @@
|
||||
}
|
||||
}
|
||||
|
||||
// adapted from https://www.codeply.com/p/UsTEwDkzNp#
|
||||
.checkbox {
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.mode-switch {
|
||||
--#{$prefix}mode-switch-width: 50px;
|
||||
}
|
||||
|
||||
.mode-switch .label {
|
||||
border-color: var(--#{$prefix}border-color);
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-radius: var(--#{$prefix}mode-switch-width);
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 5px;
|
||||
position: relative;
|
||||
height: calc(1px + var(--#{$prefix}mode-switch-width) / 2);
|
||||
width: var(--#{$prefix}mode-switch-width);
|
||||
transform: scale(0.9);
|
||||
}
|
||||
|
||||
.notransition {
|
||||
-webkit-transition: none !important;
|
||||
-moz-transition: none !important;
|
||||
-o-transition: none !important;
|
||||
transition: none !important;
|
||||
}
|
||||
|
||||
.mode-switch .label .ball {
|
||||
background-color: var(--#{$prefix}secondary-bg);
|
||||
border-radius: 50%;
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
height: calc((var(--#{$prefix}mode-switch-width) / 2) - 5px);
|
||||
width: calc((var(--#{$prefix}mode-switch-width) / 2) - 5px);
|
||||
transition: transform 0.2s linear;
|
||||
}
|
||||
|
||||
.mode-switch .checkbox:checked + .label .ball {
|
||||
transform: translateX(calc((var(--#{$prefix}mode-switch-width) / 2) - 1px));
|
||||
}
|
||||
|
||||
.mode-switch .fa-moon {
|
||||
color: $yellow;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
.mode-switch .fa-sun {
|
||||
color: var(--#{$prefix}bs-body-color);
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
@@ -95,7 +95,7 @@ home = ["HTML", "RSS", "REDIR"]
|
||||
[module]
|
||||
[module.hugoVersion]
|
||||
extended = true
|
||||
min = "0.120.0"
|
||||
min = "0.132.0"
|
||||
max = ""
|
||||
[[module.mounts]]
|
||||
source = "archetypes"
|
||||
|
@@ -24,9 +24,15 @@ defaultMarkdownHandler = "goldmark"
|
||||
table = true
|
||||
taskList = true
|
||||
typographer = true
|
||||
[goldmark.extensions.passthrough]
|
||||
enable = true
|
||||
[goldmark.extensions.passthrough.delimiters]
|
||||
block = [['\[', '\]'], ['$$', '$$']]
|
||||
inline = [['\(', '\)'], ['$', '$']]
|
||||
[goldmark.parser]
|
||||
autoHeadingID = true
|
||||
autoHeadingIDType = 'github'
|
||||
wrapStandAloneImageWithinParagraph = false
|
||||
[goldmark.parser.attribute]
|
||||
block = true
|
||||
[goldmark.renderer]
|
||||
|
@@ -36,6 +36,7 @@ arguments:
|
||||
page:
|
||||
type:
|
||||
- '*hugolib.pageState'
|
||||
- '*hugolib.pageForRenderHooks'
|
||||
- '*hugolib.pageForShortcode'
|
||||
optional: true
|
||||
comment: Page context, used to match page resources.
|
||||
@@ -109,7 +110,9 @@ arguments:
|
||||
image set.
|
||||
group: partial
|
||||
title:
|
||||
type: string
|
||||
type:
|
||||
- string
|
||||
- 'hstring.RenderedString'
|
||||
optional: true
|
||||
comment: Alternate text of the image.
|
||||
caption:
|
||||
|
@@ -10,6 +10,7 @@ arguments:
|
||||
page:
|
||||
type:
|
||||
- '*hugolib.pageState'
|
||||
- '*hugolib.pageForRenderHooks'
|
||||
- '*hugolib.pageForShortcode'
|
||||
optional: false
|
||||
group: partial
|
||||
@@ -70,11 +71,17 @@ arguments:
|
||||
type:
|
||||
- string
|
||||
- template.HTML
|
||||
- hstring.RenderedString
|
||||
optional: true
|
||||
group: partial
|
||||
comment: Link description.
|
||||
title:
|
||||
type: string
|
||||
optional: true
|
||||
comment: Link title.
|
||||
release: v0.26.0
|
||||
body:
|
||||
type: string
|
||||
optional: true
|
||||
group: shortcode
|
||||
comment: Link title.
|
||||
comment: Link description.
|
||||
|
@@ -24,9 +24,15 @@ defaultMarkdownHandler = "goldmark"
|
||||
table = true
|
||||
taskList = true
|
||||
typographer = true
|
||||
[goldmark.extensions.passthrough]
|
||||
enable = true
|
||||
[goldmark.extensions.passthrough.delimiters]
|
||||
block = [['\[', '\]'], ['$$', '$$']]
|
||||
inline = [['\(', '\)'], ['$', '$']]
|
||||
[goldmark.parser]
|
||||
autoHeadingID = true
|
||||
autoHeadingIDType = 'github'
|
||||
wrapStandAloneImageWithinParagraph = false
|
||||
[goldmark.parser.attribute]
|
||||
block = true
|
||||
[goldmark.renderer]
|
||||
|
@@ -27,6 +27,6 @@ Additional features include:
|
||||
* Reusable Bootstrap components through configurable shortcodes and partials
|
||||
* Versioned documentation, including sidebar navigation and version switcher
|
||||
* Responsive image handling for multiple screen sizes and resolutions
|
||||
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
||||
* Secure by default, scoring A+ on [Mozilla Observatory test]({{< param "links.observatory" >}})
|
||||
* Optimized search results, scoring 100 points for SEO on [PageSpeed Insights]({{% param "links.pagespeed" %}})
|
||||
* Secure by default, scoring A+ on [Mozilla Observatory test]({{% param "links.observatory" %}})
|
||||
{.tickmark}
|
||||
|
@@ -12,7 +12,7 @@ thumbnail:
|
||||
originURL: https://unsplash.com/photos/QLPWQvHvmII
|
||||
---
|
||||
|
||||
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
|
||||
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{% param "links.hinode_docs" %}}) for more details.
|
||||
|
||||
## Abbr
|
||||
|
||||
@@ -121,7 +121,7 @@ As an example, the following shortcode displays a group of three buttons.
|
||||
|
||||
## Card
|
||||
|
||||
As an example, the following shortcode displays a stacked card that links to the [about]({{< ref "about" >}}) page. It includes a custom header.
|
||||
As an example, the following shortcode displays a stacked card that links to the [about]({{% ref "about" %}}) page. It includes a custom header.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
@@ -264,6 +264,13 @@ As an example, the following shortcode displays an image with rounded corners an
|
||||
{{< /example >}}
|
||||
<!-- markdownlint-enable MD037 -->
|
||||
|
||||
The same image, but then using Markdown syntax:
|
||||
|
||||
{{< example lang="hugo" >}}
|
||||

|
||||
{class="rounded col-md-6" ratio="4x3" portrait=true wrapper="text-center"}
|
||||
{{< /example >}}
|
||||
|
||||
As an example, the following shortcode displays a regular vector image.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
|
@@ -10,10 +10,10 @@ thumbnail:
|
||||
authorURL: https://unsplash.com/@ryoji__iwata
|
||||
origin: Unsplash
|
||||
originURL: https://unsplash.com/photos/5siQcvSxCP8
|
||||
modules: ["katex", "leaflet", "lottie", "simple-datatables"]
|
||||
modules: ["leaflet", "lottie", "simple-datatables"]
|
||||
---
|
||||
|
||||
Hinode provides several shortcodes on top of the common [Bootstrap elements]({{< relref "bootstrap-elements" >}}). Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
|
||||
Hinode provides several shortcodes on top of the common [Bootstrap elements]({{% relref "bootstrap-elements" %}}). Refer to the [official documentation]({{% param "links.hinode_docs" %}}) for more details.
|
||||
|
||||
## Animation
|
||||
|
||||
@@ -70,7 +70,7 @@ As an example, the following shortcode displays a responsive table that uses adv
|
||||
|
||||
## Formula (KaTeX)
|
||||
|
||||
As an example, the following markdown renders two formulas using the KaTeX typesetting library.
|
||||
As an example, the following markdown renders two formulas using server-side math rendering using KaTeX.
|
||||
|
||||
{{< example lang="markdown" >}}
|
||||
This is an inline $-b \pm \sqrt{b^2 - 4ac} \over 2a$ formula
|
||||
|
@@ -28,6 +28,6 @@ Les fonctionnalités supplémentaires incluent:
|
||||
- Composants bootstrap réutilisables à travers des codes et partiels configurables
|
||||
- Documentation versionnée, incluant une navigation latérale et un sélecteur de version.
|
||||
- Gestion d'images adaptatives pour plusieurs tailles d'écran et résolutions.
|
||||
- Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{< param "links.pagespeed" >}}).
|
||||
- Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{< param "links.observatory" >}})
|
||||
- Résultats de recherche optimisés, obtenant un score de 100 points pour le référencement (SEO) sur [PageSpeed Insights]({{% param "links.pagespeed" %}}).
|
||||
- Sécurisé par défaut, obtenant un score A+ au test [Mozilla Observatory]({{% param "links.observatory" %}})
|
||||
{.tickmark}
|
||||
|
@@ -13,7 +13,7 @@ thumbnail:
|
||||
originURL: https://unsplash.com/photos/QLPWQvHvmII
|
||||
---
|
||||
|
||||
Hinode propose plusieurs shortcodes qui enveloppent des composants Bootstrap courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails.
|
||||
Hinode propose plusieurs shortcodes qui enveloppent des composants Bootstrap courants. Consultez la [documentation officielle]({{% param "links.hinode_docs" %}}) pour plus de détails.
|
||||
|
||||
## Abbr
|
||||
|
||||
@@ -121,7 +121,7 @@ En-tête 6 {{</* badge title="Nouveau" */>}}
|
||||
|
||||
## Carte
|
||||
|
||||
À titre d'exemple, le shortcode suivant affiche une carte empilée qui renvoie à la page [à propos]({{< ref "about" >}}). Elle inclut un en-tête personnalisé.
|
||||
À titre d'exemple, le shortcode suivant affiche une carte empilée qui renvoie à la page [à propos]({{% ref "about" %}}). Elle inclut un en-tête personnalisé.
|
||||
|
||||
<!-- markdownlint-disable MD037 -->
|
||||
{{< example lang="hugo" >}}
|
||||
|
@@ -14,7 +14,7 @@ thumbnail:
|
||||
modules: ["katex", "leaflet", "lottie"]
|
||||
---
|
||||
|
||||
Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{< relref "bootstrap-elements" >}}) courants. Consultez la [documentation officielle]({{< param "links.hinode_docs" >}}) pour plus de détails.
|
||||
Hinode propose plusieurs shortcodes en plus des [éléments Bootstrap]({{% relref "bootstrap-elements" %}}) courants. Consultez la [documentation officielle]({{% param "links.hinode_docs" %}}) pour plus de détails.
|
||||
|
||||
## Animation
|
||||
|
||||
|
@@ -29,6 +29,6 @@ Overige functies:
|
||||
* Herbruikbare Bootstrap componenten via shortcodes en partials
|
||||
* Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies
|
||||
* Optimalisering van foto's voor meerdere schermafmetingen en resoluties
|
||||
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{< param "links.pagespeed" >}})
|
||||
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{< param "links.observatory" >}})
|
||||
* Optimale zoekresultaten, met 100 punten voor SEO volgens [PageSpeed Insights]({{% param "links.pagespeed" %}})
|
||||
* Veilige communicatie, met een score van A+ volgens [Mozilla Observatory]({{% param "links.observatory" %}})
|
||||
{.tickmark}
|
||||
|
@@ -3,8 +3,8 @@
|
||||
"tags": [
|
||||
"a",
|
||||
"abbr",
|
||||
"annotation",
|
||||
"body",
|
||||
"br",
|
||||
"button",
|
||||
"code",
|
||||
"div",
|
||||
@@ -27,7 +27,17 @@
|
||||
"li",
|
||||
"link",
|
||||
"mark",
|
||||
"math",
|
||||
"meta",
|
||||
"mfrac",
|
||||
"mi",
|
||||
"mn",
|
||||
"mo",
|
||||
"mrow",
|
||||
"mspace",
|
||||
"msqrt",
|
||||
"msub",
|
||||
"msup",
|
||||
"nav",
|
||||
"noscript",
|
||||
"ol",
|
||||
@@ -35,6 +45,7 @@
|
||||
"path",
|
||||
"pre",
|
||||
"script",
|
||||
"semantics",
|
||||
"small",
|
||||
"span",
|
||||
"strong",
|
||||
@@ -268,6 +279,7 @@
|
||||
"justify-content-center",
|
||||
"justify-content-end",
|
||||
"justify-content-start",
|
||||
"katex",
|
||||
"label",
|
||||
"lead",
|
||||
"leaflet-map",
|
||||
|
2
go.mod
2
go.mod
@@ -11,7 +11,7 @@ require (
|
||||
github.com/gethinode/mod-leaflet v1.1.1 // indirect
|
||||
github.com/gethinode/mod-lottie v1.5.6 // indirect
|
||||
github.com/gethinode/mod-simple-datatables v1.0.7 // indirect
|
||||
github.com/gethinode/mod-utils/v2 v2.3.10 // indirect
|
||||
github.com/gethinode/mod-utils/v2 v2.4.0 // indirect
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240501124520-961c3ae84a87 // indirect
|
||||
github.com/twbs/bootstrap v5.3.3+incompatible // indirect
|
||||
)
|
||||
|
2
go.sum
2
go.sum
@@ -258,6 +258,8 @@ github.com/gethinode/mod-utils/v2 v2.3.9 h1:Z9uAr6S0wunlkfKHa2D/U83fBV6Ivtf+7sjB
|
||||
github.com/gethinode/mod-utils/v2 v2.3.9/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||
github.com/gethinode/mod-utils/v2 v2.3.10 h1:+coUXdgAbLEE8Tvb3Rfk/1Nr6oDVreXI2sil0pa/n2Q=
|
||||
github.com/gethinode/mod-utils/v2 v2.3.10/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||
github.com/gethinode/mod-utils/v2 v2.4.0 h1:mmG4hWaeA4krAg933pibH+TrjFmPHkAi/DUbe3SM38I=
|
||||
github.com/gethinode/mod-utils/v2 v2.4.0/go.mod h1:GTYeknoLujNjfDxI+V9Dcug26CYJSTJ0B/U2dagw9oY=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 h1:H/qVR5O4BXjRjD+5PZB+r4ug2BSJ2Of4RtwOntd+OKo=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
|
||||
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 h1:re7L8FxbXQpnX8BgzkdUnDpsUmloGNyLmiy2ZCln8pg=
|
||||
|
@@ -7,6 +7,7 @@
|
||||
"div",
|
||||
"footer",
|
||||
"form",
|
||||
"h5",
|
||||
"head",
|
||||
"html",
|
||||
"img",
|
||||
@@ -16,6 +17,7 @@
|
||||
"link",
|
||||
"meta",
|
||||
"nav",
|
||||
"noscript",
|
||||
"ol",
|
||||
"p",
|
||||
"path",
|
||||
@@ -36,6 +38,7 @@
|
||||
"bg-body",
|
||||
"bg-opacity-10",
|
||||
"bg-primary",
|
||||
"border-0",
|
||||
"bottom-0",
|
||||
"bottom-bar",
|
||||
"breadcrumb",
|
||||
@@ -43,41 +46,52 @@
|
||||
"btn",
|
||||
"btn-close",
|
||||
"btn-primary",
|
||||
"btn-social",
|
||||
"card",
|
||||
"card-body",
|
||||
"card-body-link",
|
||||
"card-text",
|
||||
"card-title",
|
||||
"card-zoom",
|
||||
"checkbox",
|
||||
"col",
|
||||
"col-12",
|
||||
"col-6",
|
||||
"col-md-2",
|
||||
"col-lg-2",
|
||||
"col-lg-8",
|
||||
"col-md-3",
|
||||
"col-md-4",
|
||||
"col-md-8",
|
||||
"col-md-9",
|
||||
"col-sm-12",
|
||||
"collapse",
|
||||
"collapsed",
|
||||
"container-fluid",
|
||||
"container-xxl",
|
||||
"d-flex",
|
||||
"d-inline",
|
||||
"d-lg-block",
|
||||
"d-md-block",
|
||||
"d-md-none",
|
||||
"d-none",
|
||||
"display-1",
|
||||
"display-4",
|
||||
"emphasis",
|
||||
"emphasis-dark",
|
||||
"end-0",
|
||||
"fa",
|
||||
"fa-10x",
|
||||
"fa-2x",
|
||||
"fa-arrow-left",
|
||||
"fa-arrow-right",
|
||||
"fa-book-open",
|
||||
"fa-ellipsis",
|
||||
"fa-face-frown",
|
||||
"fa-facebook",
|
||||
"fa-fw",
|
||||
"fa-github",
|
||||
"fa-link",
|
||||
"fa-linkedin",
|
||||
"fa-medium",
|
||||
"fa-moon",
|
||||
"fa-share-nodes",
|
||||
"fa-sun",
|
||||
"fa-whatsapp",
|
||||
"fa-x-twitter",
|
||||
"fab",
|
||||
"fas",
|
||||
"fixed-top",
|
||||
@@ -87,8 +101,13 @@
|
||||
"form-control",
|
||||
"fs-3",
|
||||
"fs-5",
|
||||
"fs-6",
|
||||
"fs-lg-5",
|
||||
"fw-30",
|
||||
"fw-bold",
|
||||
"g-4",
|
||||
"gap-1",
|
||||
"h-100",
|
||||
"hstack",
|
||||
"img-fluid",
|
||||
"img-wrap",
|
||||
@@ -98,10 +117,14 @@
|
||||
"justify-content-end",
|
||||
"justify-content-start",
|
||||
"label",
|
||||
"lead",
|
||||
"link-bg-footer",
|
||||
"link-secondary",
|
||||
"main-content",
|
||||
"main-nav-toggler",
|
||||
"mb-3",
|
||||
"mb-5",
|
||||
"mb-lg-5",
|
||||
"me-auto",
|
||||
"middle-bar",
|
||||
"min-vh-100",
|
||||
@@ -113,6 +136,7 @@
|
||||
"mx-auto",
|
||||
"mx-md-0",
|
||||
"my-auto",
|
||||
"my-md-0",
|
||||
"my-md-auto",
|
||||
"nav-item",
|
||||
"nav-link",
|
||||
@@ -120,13 +144,18 @@
|
||||
"navbar-brand",
|
||||
"navbar-collapse",
|
||||
"navbar-container",
|
||||
"navbar-contrast",
|
||||
"navbar-expand-md",
|
||||
"navbar-fixed-top",
|
||||
"navbar-mode-selector",
|
||||
"navbar-nav",
|
||||
"navbar-toggler",
|
||||
"next",
|
||||
"no-js",
|
||||
"offcanvas",
|
||||
"offcanvas-body",
|
||||
"offcanvas-header",
|
||||
"offcanvas-start",
|
||||
"offcanvas-title",
|
||||
"order-0",
|
||||
"order-1",
|
||||
"order-md-0",
|
||||
@@ -135,12 +164,14 @@
|
||||
"p-2",
|
||||
"p-3",
|
||||
"p-4",
|
||||
"p-auto",
|
||||
"pb-4",
|
||||
"pb-5",
|
||||
"pb-md-0",
|
||||
"position-fixed",
|
||||
"position-relative",
|
||||
"previous",
|
||||
"ps-1",
|
||||
"pt-4",
|
||||
"pt-5",
|
||||
"pt-md-3",
|
||||
"px-4",
|
||||
@@ -150,32 +181,45 @@
|
||||
"row",
|
||||
"row-cols-1",
|
||||
"row-cols-2",
|
||||
"row-cols-lg-3",
|
||||
"row-cols-md-2",
|
||||
"row-cols-sm-3",
|
||||
"row-cols-md-3",
|
||||
"row-cols-sm-2",
|
||||
"search",
|
||||
"search-input",
|
||||
"search-suggestions",
|
||||
"shadow",
|
||||
"sidebar-overflow",
|
||||
"sticky-top",
|
||||
"stretched-link",
|
||||
"svg-inline--fa",
|
||||
"text-body-secondary",
|
||||
"text-center",
|
||||
"text-decoration-none",
|
||||
"text-end",
|
||||
"text-muted",
|
||||
"text-secondary",
|
||||
"text-sm-start",
|
||||
"text-start",
|
||||
"text-uppercase",
|
||||
"toast",
|
||||
"toast-body",
|
||||
"toast-container",
|
||||
"toast-header",
|
||||
"toc",
|
||||
"toc-sidebar",
|
||||
"toggler-icon",
|
||||
"top-bar"
|
||||
],
|
||||
"ids": [
|
||||
"btn-webshare",
|
||||
"navbar-0-collapse",
|
||||
"navbar-mode",
|
||||
"navbar-mode-checkbox",
|
||||
"offcanvas-label",
|
||||
"offcanvass-sidebar",
|
||||
"toast-container",
|
||||
"toast-copied-code-message"
|
||||
"toast-copied-code-message",
|
||||
"toast-message-email-4"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
11
layouts/_default/_markup/render-codeblock-math.html
Normal file
11
layouts/_default/_markup/render-codeblock-math.html
Normal file
@@ -0,0 +1,11 @@
|
||||
{{ with transform.ToMath .Inner (dict "displayMode" true) }}
|
||||
{{ with .Err }}
|
||||
{{ errorf "Failed to render KaTeX: %q. See %s" . $.Position }}
|
||||
{{ else }}
|
||||
{{ if $.Attributes.class }}
|
||||
<div class="{{ $.Attributes.class }}">{{ . }}</div>
|
||||
{{ else }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
15
layouts/_default/_markup/render-image.html
Normal file
15
layouts/_default/_markup/render-image.html
Normal file
@@ -0,0 +1,15 @@
|
||||
{{ partial "assets/image.html" (dict
|
||||
"url" .Destination
|
||||
"page" .Page
|
||||
"caption" .Title
|
||||
"title" .Text
|
||||
"anchor" .Attributes.anchor
|
||||
"class" .Attributes.class
|
||||
"figclass" .Attributes.figclass
|
||||
"loading" .Attributes.loading
|
||||
"mode" .Attributes.mode
|
||||
"plain" .Attributes.plain
|
||||
"portrait" .Attributes.portrait
|
||||
"ratio" .Attributes.ratio
|
||||
"wrapper" .Attributes.wrapper
|
||||
) }}
|
15
layouts/_default/_markup/render-link.html
Normal file
15
layouts/_default/_markup/render-link.html
Normal file
@@ -0,0 +1,15 @@
|
||||
{{ if gt (findRE `^HAHAHUGO` .Destination 1) 0 }}
|
||||
{{ errorf "Invalid markdown link destination, use '%s' syntax when using shortcodes as input. See '%s'"
|
||||
("{{% %}}" | htmlUnescape)
|
||||
.Page.File.Path
|
||||
}}
|
||||
{{ else if not .Destination }}
|
||||
{{ errorf "Missing markdown link destination, see '%s'" .Page.File.Path }}
|
||||
{{ else }}
|
||||
{{ partial "assets/link.html" (dict
|
||||
"destination" .Destination
|
||||
"page" .Page
|
||||
"text" .Text
|
||||
"title" .Title
|
||||
) }}
|
||||
{{- end }}
|
13
layouts/_default/_markup/render-passthrough.html
Normal file
13
layouts/_default/_markup/render-passthrough.html
Normal file
@@ -0,0 +1,13 @@
|
||||
{{ $opts := dict }}
|
||||
|
||||
{{ if eq .Type "block" }}
|
||||
{{ $opts = dict "displayMode" true }}
|
||||
{{ end }}
|
||||
|
||||
{{ with transform.ToMath .Inner $opts }}
|
||||
{{ with .Err }}
|
||||
{{ errorf "Failed to render KaTeX: %q. See %s" . $.Position }}
|
||||
{{ else }}
|
||||
{{ . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
@@ -51,9 +51,13 @@
|
||||
<!-- Override arguments -->
|
||||
{{- $page := "" }}
|
||||
{{- if .path }}
|
||||
{{- $page = site.GetPage .path }}
|
||||
{{ $page = partial "utilities/GetPage.html" (dict "url" .path "page" page) }}
|
||||
{{- if not $page }}
|
||||
{{- errorf "partial [assets/card.html] - Cannot find page: %s" .path -}}
|
||||
{{ if page.File }}
|
||||
{{- errorf "partial [assets/card.html] - Cannot find target page '%s', see '%s'" .path page.File.Path -}}
|
||||
{{ else }}
|
||||
{{- errorf "partial [assets/card.html] - Cannot find target page '%s'" .path -}}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with $page -}}
|
||||
|
@@ -14,6 +14,7 @@
|
||||
|
||||
<!-- Initialize arguments -->
|
||||
{{ $destination := strings.TrimPrefix (strings.TrimSuffix "/" site.BaseURL) .destination }}
|
||||
{{ if not $destination }}{{ $destination = "/" }}{{ end }}
|
||||
|
||||
{{- $target := "" -}}
|
||||
{{- $rel := "" -}}
|
||||
@@ -22,9 +23,11 @@
|
||||
{{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
|
||||
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
|
||||
{{- $isExternal := or (ne (urls.Parse (absURL $destination)).Host (urls.Parse site.BaseURL).Host) $external -}}
|
||||
{{- $isLocal := hasPrefix $destination "#" -}}
|
||||
{{- $page := .page -}}
|
||||
{{- $anchor := "" -}}
|
||||
{{- $text := .text -}}
|
||||
{{- $title := .title -}}
|
||||
{{- $class := .class -}}
|
||||
|
||||
<!-- Main code -->
|
||||
@@ -53,24 +56,37 @@
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ $ref := partial "utilities/GetPage.html" (dict "url" $destination "page" $page) }}
|
||||
{{- if not $ref -}}
|
||||
{{- errorf "partial [assets/link.html] - Cannot find page: %s" $destination -}}
|
||||
{{- $error = true -}}
|
||||
{{- else -}}
|
||||
{{- $destination = $ref.RelPermalink -}}
|
||||
{{- with $anchor }}{{ $destination = printf "%s#%s" (strings.TrimSuffix "/" $destination) . -}}{{ end -}}
|
||||
{{ if not $isLocal }}
|
||||
{{ $ref := partial "utilities/GetPage.html" (dict "url" $destination "page" $page) }}
|
||||
{{- if not $ref -}}
|
||||
{{- errorf "partial [assets/link.html] - Cannot find page: %s" $destination -}}
|
||||
{{- $error = true -}}
|
||||
{{- else -}}
|
||||
{{- $destination = $ref.RelPermalink -}}
|
||||
{{- with $anchor }}{{ $destination = printf "%s#%s" (strings.TrimSuffix "/" $destination) . -}}{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- if not $text -}}
|
||||
{{- if $anchor -}}
|
||||
{{- $text = $anchor -}}
|
||||
{{- else -}}
|
||||
{{- $text = $ref.LinkTitle -}}
|
||||
{{- end -}}
|
||||
{{ if $anchor }}{{ $text = $anchor }}{{ else }}{{ $text = $ref.LinkTitle }}{{ end }}
|
||||
{{ end -}}
|
||||
{{- if not $case }}{{ $text = lower $text }}{{ end -}}
|
||||
{{- end -}}
|
||||
{{ else }}
|
||||
{{ with $anchor }}
|
||||
{{ $destination = printf "#%s" . }}
|
||||
{{ if not $text }}{{ $text = . }}{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{- if not $case }}{{ $text = lower $text }}{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{ if not $error -}}
|
||||
<a {{ with $class }}class="{{ . }}" {{ end }}href="{{ $destination | safeURL }}"{{ with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end }}>{{ $text }}</a>
|
||||
{{- end }}
|
||||
<a
|
||||
{{- with $destination }} href="{{ . | safeURL }}"{{ end -}}
|
||||
{{ with $class }} class="{{ . }}" {{ end -}}
|
||||
{{ with $target }} target="{{ . }}"{{ end -}}
|
||||
{{ with $rel }} rel="{{ . }}"{{ end -}}
|
||||
{{ with $title }} title="{{ . }}"{{ end -}}
|
||||
>
|
||||
{{- $text | safeHTML -}}
|
||||
</a>
|
||||
{{- end -}}
|
12
package-lock.json
generated
12
package-lock.json
generated
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.25.6",
|
||||
"version": "0.26.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.25.6",
|
||||
"version": "0.26.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@fullhuman/postcss-purgecss": "^6.0.0",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"cssnano": "^7.0.5",
|
||||
"cssnano-preset-advanced": "^7.0.5",
|
||||
"hugo-bin": "0.129.1",
|
||||
"hugo-bin": "0.129.2",
|
||||
"purgecss-whitelister": "^2.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -3313,9 +3313,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/hugo-bin": {
|
||||
"version": "0.129.1",
|
||||
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.129.1.tgz",
|
||||
"integrity": "sha512-xA94x62Dy1NZIKyClKwbIaAjOTubrJh0+fooPX8+BANS7Gt+aL3My7kdt+fHeTHyVMfMgIExmeWmmm7FeXh6xA==",
|
||||
"version": "0.129.2",
|
||||
"resolved": "https://registry.npmjs.org/hugo-bin/-/hugo-bin-0.129.2.tgz",
|
||||
"integrity": "sha512-OpfKbO8nkopEt8MBYPWQOgcL6IcotiskI+U1YRprAtw+ySUJHIDHfxMIcWeNmo66N/Reqm4RbDxFMDgKPUXGeQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@gethinode/hinode",
|
||||
"version": "0.25.6",
|
||||
"version": "0.26.2",
|
||||
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
|
||||
"keywords": [
|
||||
"hugo",
|
||||
@@ -71,7 +71,7 @@
|
||||
"autoprefixer": "^10.4.20",
|
||||
"cssnano": "^7.0.5",
|
||||
"cssnano-preset-advanced": "^7.0.5",
|
||||
"hugo-bin": "0.129.1",
|
||||
"hugo-bin": "0.129.2",
|
||||
"purgecss-whitelister": "^2.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@@ -6,7 +6,7 @@ homepage = "https://gethinode.com"
|
||||
demosite = "https://demo.gethinode.com"
|
||||
tags = ["blog", "documentation", "minimal", "modern", "customizable", "search", "bootstrap"]
|
||||
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "versioned documentation"]
|
||||
min_version = "0.120.0"
|
||||
min_version = "0.132.0"
|
||||
|
||||
[author]
|
||||
name = "Mark Dumay"
|
||||
|
Reference in New Issue
Block a user