Compare commits

...

11 Commits

Author SHA1 Message Date
github-actions[bot]
56eaa9d90b Merge pull request #1105 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.129.2
Bump hugo-bin from 0.129.1 to 0.129.2
2024-08-15 13:42:51 +00:00
dependabot[bot]
492dbbec24 Bump hugo-bin from 0.129.1 to 0.129.2
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.129.1 to 0.129.2.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.129.1...v0.129.2)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-15 13:38:04 +00:00
Mark Dumay
d2fc5e3433 Merge pull request #1104 from gethinode/develop
Support markdown links
2024-08-15 15:15:30 +02:00
Mark Dumay
b5cc3f6d84 Merge branch 'main' into develop 2024-08-15 14:46:54 +02:00
Mark Dumay
e1e1041c1b Support markdown links
Closes #826
2024-08-15 14:46:10 +02:00
Mark Dumay
e1cac645a7 Merge pull request #1103 from gethinode/develop
Support markdown images
2024-08-15 13:14:35 +02:00
Mark Dumay
d23d533575 Merge branch 'main' into develop 2024-08-15 12:48:56 +02:00
Mark Dumay
d447a4a65a Support markdown images 2024-08-15 12:48:26 +02:00
Mark Dumay
3a466277e3 Merge pull request #1102 from gethinode/develop
Support server-side math rendering using KaTeX
2024-08-15 11:44:50 +02:00
Mark Dumay
2b09ceef93 Merge branch 'main' into develop 2024-08-15 10:22:46 +02:00
Mark Dumay
ee30409257 Support server-side math rendering using KaTeX 2024-08-15 10:22:12 +02:00
20 changed files with 199 additions and 31 deletions

View File

@@ -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]

View File

@@ -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:

View File

@@ -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.

View File

@@ -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]

View File

@@ -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}

View File

@@ -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" >}}
![Flowers](/img/flowers.jpg "Figure caption")
{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 -->

View File

@@ -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

View File

@@ -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}

View File

@@ -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" >}}

View File

@@ -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

View File

@@ -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}

View File

@@ -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",
@@ -547,8 +559,6 @@
"navbar-0-collapse",
"navbar-mode",
"navbar-mode-checkbox",
"navbar-sample",
"navbar-sample-checkbox",
"navbar-sample-collapse",
"navigation",
"notification",

View File

@@ -2,11 +2,13 @@
"htmlElements": {
"tags": [
"a",
"annotation",
"body",
"button",
"div",
"footer",
"form",
"h5",
"head",
"html",
"img",
@@ -14,12 +16,29 @@
"label",
"li",
"link",
"math",
"meta",
"mfrac",
"mi",
"mn",
"mo",
"mpadded",
"mphantom",
"mrow",
"mspace",
"msqrt",
"mstyle",
"msub",
"msup",
"mtext",
"munder",
"nav",
"noscript",
"ol",
"p",
"path",
"script",
"semantics",
"small",
"span",
"strong",
@@ -36,6 +55,7 @@
"bg-body",
"bg-opacity-10",
"bg-primary",
"border-0",
"bottom-0",
"bottom-bar",
"breadcrumb",
@@ -43,10 +63,19 @@
"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-lg-2",
"col-lg-8",
"col-md-2",
"col-md-3",
"col-md-4",
@@ -59,7 +88,9 @@
"container-xxl",
"d-flex",
"d-inline",
"d-lg-block",
"d-md-block",
"d-md-none",
"d-none",
"display-1",
"display-4",
@@ -71,12 +102,17 @@
"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",
@@ -86,8 +122,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",
@@ -96,11 +137,17 @@
"justify-content-center",
"justify-content-end",
"justify-content-start",
"katex",
"label",
"lead",
"link-bg-footer",
"link-secondary",
"main-content",
"main-nav-toggler",
"mb-3",
"mb-4",
"mb-5",
"mb-lg-5",
"me-auto",
"middle-bar",
"min-vh-100",
@@ -112,6 +159,7 @@
"mx-auto",
"mx-md-0",
"my-auto",
"my-md-0",
"my-md-auto",
"nav-item",
"nav-link",
@@ -119,13 +167,17 @@
"navbar-brand",
"navbar-collapse",
"navbar-container",
"navbar-contrast",
"navbar-expand-md",
"navbar-fixed-top",
"navbar-mode-selector",
"navbar-nav",
"navbar-toggler",
"no-js",
"offcanvas",
"offcanvas-body",
"offcanvas-header",
"offcanvas-start",
"offcanvas-title",
"order-0",
"order-1",
"order-md-0",
@@ -135,11 +187,11 @@
"p-3",
"p-4",
"pb-4",
"pb-5",
"pb-md-0",
"position-fixed",
"position-relative",
"ps-1",
"pt-4",
"pt-5",
"pt-md-3",
"px-4",
@@ -149,32 +201,48 @@
"row",
"row-cols-1",
"row-cols-2",
"row-cols-lg-3",
"row-cols-md-2",
"row-cols-md-3",
"row-cols-sm-2",
"row-cols-sm-3",
"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": [
"blogs",
"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"
]
}
}

View 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 }}

View 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
) }}

View File

@@ -0,0 +1,13 @@
{{ if gt (findRE `^HAHAHUGO` .Destination 1) 0 }}
{{ errorf "Invalid markdown link destination, use '%s' syntax when using shortcodes as input. See '%s'"
("&#123;&#123;% %&#125;&#125;" | htmlUnescape)
.Page.File.Filename
}}
{{ else }}
{{ partial "assets/link.html" (dict
"destination" .Destination
"page" .Page
"text" .Text
"title" .Title
) }}
{{ end }}

View 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 }}

View File

@@ -25,6 +25,7 @@
{{- $page := .page -}}
{{- $anchor := "" -}}
{{- $text := .text -}}
{{- $title := .title -}}
{{- $class := .class -}}
<!-- Main code -->
@@ -72,5 +73,13 @@
{{- end -}}
{{ if not $error -}}
<a {{ with $class }}class="{{ . }}" {{ end }}href="{{ $destination | safeURL }}"{{ with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end }}>{{ $text }}</a>
<a
{{- with $destination }} href="{{ . | safeURL }}"{{ end -}}
{{- with $class }}class="{{ . }}" {{ end -}}
{{- with $target }} target="{{ . }}"{{ end -}}
{{- with $rel }} rel="{{ . }}"{{ end -}}
{{- with $title }} title="{{ . }}"{{ end -}}
>
{{- $text -}}
</a>
{{- end }}

12
package-lock.json generated
View File

@@ -1,19 +1,19 @@
{
"name": "@gethinode/hinode",
"version": "0.25.7",
"version": "0.26.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@gethinode/hinode",
"version": "0.25.7",
"version": "0.26.0",
"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",

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.25.7",
"version": "0.26.0",
"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": {