Compare commits

...

126 Commits

Author SHA1 Message Date
Mark Dumay
ede8fe8066 Merge pull request #507 from gethinode/develop
Fix issues with table and link
2023-09-02 16:26:15 +02:00
mark
51046d9646 Bump package version 2023-09-02 15:44:31 +02:00
mark
f2fd933f50 Update build stats 2023-09-02 15:43:08 +02:00
mark
8d16d50171 Increase min required version of Hugo 2023-09-02 15:42:49 +02:00
mark
3e3e2486ee Remove workaround for incorrect raw content 2023-09-02 15:42:17 +02:00
Mark Dumay
780707d821 Merge branch 'main' into develop 2023-09-02 15:31:43 +02:00
mark
8ac0f752ba Fix class init of link shortcode 2023-09-02 09:36:54 +02:00
mark
180641a72b Refine table colors in dark mode 2023-09-02 09:06:07 +02:00
Mark Dumay
75126f27ed Merge pull request #503 from gethinode/develop
Improve cards and card-group
2023-09-01 16:40:46 +02:00
Mark Dumay
df683a3022 Merge branch 'main' into develop 2023-09-01 16:27:17 +02:00
mark
61373259e9 Bump package version 2023-09-01 16:26:19 +02:00
mark
481dffd8b6 Update build stats 2023-09-01 16:26:08 +02:00
mark
80a957d261 Refine project cards layout 2023-09-01 16:26:01 +02:00
mark
9df3b0f163 Adjust card-group gutter 2023-09-01 16:25:34 +02:00
mark
284cc53308 Add card-body-margin to example section config 2023-09-01 16:12:20 +02:00
mark
4c7075fdb8 Improve handling of inner content 2023-09-01 16:08:21 +02:00
mark
5d5a21ca4e Add gutter support 2023-09-01 16:07:24 +02:00
mark
9e6f14ed47 Add wrapper example 2023-09-01 16:07:05 +02:00
mark
c61c770c3e Document wrapper example value 2023-09-01 14:45:38 +02:00
mark
9595892444 Add gutter argument 2023-09-01 14:45:10 +02:00
mark
8c7867e14a Document cols arg 2023-09-01 14:44:26 +02:00
mark
a58b0dae6b Refine default wrapper value 2023-09-01 14:44:06 +02:00
mark
4385ef9f87 Add configurable gutter 2023-09-01 14:43:20 +02:00
mark
8f9ed014f2 Add bottom margin adjustment 2023-09-01 14:38:45 +02:00
mark
2f0ce05789 Refactor cols init 2023-09-01 13:17:18 +02:00
mark
6d700e6819 Adjust gutter behavior 2023-09-01 13:16:44 +02:00
mark
46c5ec3b44 Document auto-behavior 2023-09-01 13:16:08 +02:00
mark
de8d450a05 Add responsive argument 2023-09-01 13:05:28 +02:00
Mark Dumay
56f74e03ba Merge pull request #502 from aefly/french-translation
Update 'bootstrap-elements.md' with latest hinode version
2023-09-01 12:33:51 +02:00
aefly
0ce037675b Fix exemple - > example 2023-09-01 03:51:56 +02:00
aefly
aa472e6ffa Update 'bootstap-elements.md' with latest hinode version 2023-09-01 03:48:03 +02:00
github-actions[bot]
f05b45af02 Merge pull request #500 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.114.2
Bump hugo-bin from 0.113.0 to 0.114.2
2023-08-31 14:06:54 +00:00
dependabot[bot]
69b4f6a4ca Bump hugo-bin from 0.113.0 to 0.114.2
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.113.0 to 0.114.2.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.113.0...v0.114.2)

---
updated-dependencies:
- dependency-name: hugo-bin
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-31 14:01:00 +00:00
Mark Dumay
484d540ecb Merge pull request #499 from gethinode/develop
Improve cards
2023-08-31 14:41:27 +02:00
Mark Dumay
bb542efaa8 Merge branch 'main' into develop 2023-08-31 14:27:36 +02:00
Mark Dumay
49ac691b3e Merge pull request #498 from gethinode/develop
Improve argument handling
2023-08-31 14:25:41 +02:00
mark
95d757f826 Discard empty title 2023-08-31 14:24:27 +02:00
mark
c1fc156d75 Remove bottom margin 2023-08-31 14:24:03 +02:00
mark
35a5a25150 Add wrapper arg 2023-08-31 14:23:20 +02:00
Mark Dumay
9547ba316e Merge branch 'main' into develop 2023-08-31 13:35:41 +02:00
mark
0d48dec518 Improve initialization of default value 2023-08-31 13:34:23 +02:00
mark
f4852a4bdb Fix arg handling 2023-08-31 13:32:01 +02:00
mark
a7d515e76a Improve handling of nil args 2023-08-31 12:48:42 +02:00
Mark Dumay
37f6acc984 Merge pull request #497 from gethinode/develop
Improve contrast for accented tables
2023-08-31 12:14:56 +02:00
Mark Dumay
c87bd75334 Merge branch 'main' into develop 2023-08-31 11:56:20 +02:00
mark
77ffbb49a7 Improve contrast for accented tables 2023-08-31 11:55:51 +02:00
Mark Dumay
64533e5dbc Merge pull request #494 from aefly/french-translation
Add French slugs
2023-08-31 11:35:14 +02:00
Mark Dumay
d42b980496 Merge branch 'main' into french-translation 2023-08-31 11:25:50 +02:00
Mark Dumay
2b84def4d8 Merge pull request #496 from gethinode/develop
Fix #495
2023-08-31 11:24:37 +02:00
Mark Dumay
7ba75a04ad Merge branch 'main' into develop 2023-08-31 11:14:21 +02:00
mark
98b88a74ae Fix #495 2023-08-31 11:13:52 +02:00
aefly
31d98ef263 Merge branch 'gethinode:main' into french-translation 2023-08-31 10:09:58 +02:00
aefly
3f34ae2ab0 Add 'composents' slug 2023-08-31 10:07:02 +02:00
aefly
d8b52d8772 Add 'elements-bootstrap' slug 2023-08-31 10:06:39 +02:00
Mark Dumay
103fa52511 Merge pull request #492 from gethinode/develop
Bump package version
2023-08-31 07:31:06 +02:00
mark
cdb0a8e685 Bump package version 2023-08-31 07:20:51 +02:00
mark
6b217d6c02 Update build stats 2023-08-31 07:20:29 +02:00
Mark Dumay
490b0a32b2 Merge pull request #491 from gethinode/main
Sync with main
2023-08-31 07:17:49 +02:00
Mark Dumay
c0684f4486 Merge pull request #490 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-08-31 07:10:49 +02:00
markdumay
988c8dcb08 fix: update Hugo module dependencies 2023-08-31 05:02:09 +00:00
Mark Dumay
a1251de4e8 Merge pull request #489 from gethinode/main
Sync with main
2023-08-31 06:26:50 +02:00
Mark Dumay
a64e4f1d0d Merge pull request #455 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-08-31 06:19:54 +02:00
markdumay
72f13a2b66 fix: update Hugo module dependencies 2023-08-31 04:14:03 +00:00
Mark Dumay
a587119310 Merge pull request #488 from aefly/french-translation
Update French Translation
2023-08-31 05:13:38 +02:00
aefly
12e29f944a Update 'components.md' 2023-08-30 22:25:12 +02:00
aefly
19861ce3d4 Update 'bootstrap-elements.md' 2023-08-30 22:21:56 +02:00
aefly
d8647e4f16 Merge branch 'french-translation' of https://github.com/aefly/hinode into french-translation 2023-08-30 22:10:25 +02:00
aefly
60e9abecfe Update 'components.md'
Added 'slug' for French Translation.
2023-08-30 22:10:14 +02:00
aefly
1b45d2b564 Update 'bootstrap-elements.md'
Updated /fr/about to /en/about to illustrate the cross-language links. Added 'slug' for French Translation.
2023-08-30 22:09:35 +02:00
Mark Dumay
25d62a4755 Merge pull request #485 from gethinode/main
Sync with main
2023-08-30 13:58:15 +02:00
Mark Dumay
c0a8fbe86b Merge pull request #484 from gethinode/shortcode
Refine abbr shortcode
2023-08-30 13:13:50 +02:00
Mark Dumay
8a9e7b2d57 Merge branch 'main' into shortcode 2023-08-30 13:06:54 +02:00
Mark Dumay
dc85034aed Merge pull request #474 from aefly/french-translation
Update French Translation with latest hinode version
2023-08-30 09:07:51 +02:00
Mark Dumay
6b029098d9 Merge branch 'main' into french-translation 2023-08-30 08:56:57 +02:00
mark
9f754f93a0 Bump package release 2023-08-30 08:56:01 +02:00
mark
910240df67 Update build stats 2023-08-30 08:55:31 +02:00
mark
4f93a96e7e Add class support for abbr shortcode 2023-08-30 08:49:41 +02:00
mark
f93977ba24 Add mark shortcode example 2023-08-30 08:49:27 +02:00
Mark Dumay
9a260950ef Merge pull request #482 from gethinode/shortcode
Fix emoji support
2023-08-30 07:59:58 +02:00
Mark Dumay
66df7986e7 Merge branch 'main' into shortcode 2023-08-30 07:47:49 +02:00
mark
487da42baa Fix #469 2023-08-30 07:46:46 +02:00
Mark Dumay
64150de775 Merge pull request #481 from gethinode/shortcode
Add sub and sup shortcode
2023-08-30 06:29:25 +02:00
mark
2ded5a6fe5 Fix linting issues 2023-08-30 06:23:14 +02:00
Mark Dumay
feae17bffe Merge branch 'main' into shortcode 2023-08-30 06:16:11 +02:00
mark
0949023b81 Add sub and sup shortcode 2023-08-30 06:15:06 +02:00
aefly
aa096ed497 Update 'bootstrap-elements.md' 2023-08-29 23:06:58 +02:00
aefly
af08703c50 Update 'bootstrap-elements.md' 2023-08-29 22:53:37 +02:00
aefly
5c0939160a Update 'bootstrap-elements.md' 2023-08-29 22:51:06 +02:00
aefly
1a2497f745 Update 'bootstrap-elements.md' 2023-08-29 22:48:36 +02:00
aefly
ec1fb97c93 Merge branch 'gethinode:main' into french-translation 2023-08-29 22:47:10 +02:00
Mark Dumay
c83c3b7fd8 Merge pull request #480 from gethinode/develop
Add mark shortcode
2023-08-29 14:30:09 +02:00
Mark Dumay
158fd884ad Merge branch 'main' into develop 2023-08-29 14:08:46 +02:00
mark
a872cb977b Add mark shortcode 2023-08-29 13:54:16 +02:00
aefly
48d6ab035a Update 'bootstrap-elements.md' 2023-08-28 22:29:39 +02:00
aefly
27ed169c26 Merge branch 'gethinode:main' into french-translation 2023-08-28 22:18:22 +02:00
Mark Dumay
b3118bab80 Merge pull request #479 from gethinode/develop
Add kbd shortcode
2023-08-28 17:28:35 +02:00
Mark Dumay
73edc42408 Merge branch 'main' into develop 2023-08-28 17:20:48 +02:00
mark
a2a466cf2b Add kbd shortcode 2023-08-28 17:20:14 +02:00
Mark Dumay
c426340ed2 Merge pull request #478 from gethinode/develop
Support alt text arg for thumbnail
2023-08-28 17:19:22 +02:00
Mark Dumay
ae14943882 Merge branch 'main' into develop 2023-08-28 16:38:33 +02:00
mark
c4b43fd2ac Support alt text arg for thumbnail 2023-08-28 16:38:03 +02:00
Mark Dumay
df017d9d5d Merge pull request #475 from gethinode/develop
Fix timeline content
2023-08-28 15:56:11 +02:00
Mark Dumay
9c0ea3e564 Merge branch 'main' into develop 2023-08-28 15:47:06 +02:00
github-actions[bot]
eb5d4b3dec Merge pull request #477 from gethinode/dependabot/npm_and_yarn/eslint-8.48.0
Bump eslint from 8.47.0 to 8.48.0
2023-08-28 13:45:44 +00:00
Mark Dumay
8de7ad2d82 Merge branch 'main' into develop 2023-08-28 15:41:18 +02:00
dependabot[bot]
96fb918b7a Bump eslint from 8.47.0 to 8.48.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.47.0 to 8.48.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.47.0...v8.48.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 13:41:06 +00:00
github-actions[bot]
d2e81917d3 Merge pull request #476 from gethinode/dependabot/npm_and_yarn/markdownlint-cli2-0.9.2
Bump markdownlint-cli2 from 0.9.0 to 0.9.2
2023-08-28 13:40:10 +00:00
dependabot[bot]
020e11a06c Bump markdownlint-cli2 from 0.9.0 to 0.9.2
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.9.0 to 0.9.2.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.9.0...v0.9.2)

---
updated-dependencies:
- dependency-name: markdownlint-cli2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 13:34:18 +00:00
Mark Dumay
8470b4f809 Merge branch 'main' into develop 2023-08-28 14:50:11 +02:00
mark
12f29b765d Bump package release 2023-08-28 14:49:23 +02:00
mark
4bf56b9c99 Fix rendering of timeline content 2023-08-28 14:48:11 +02:00
mark
584a51a5bf Use quoted abbr example 2023-08-28 14:47:41 +02:00
mark
e36858d1e1 Exclude abbr data from mounts 2023-08-28 14:47:22 +02:00
Mark Dumay
860b12a63a Merge pull request #473 from gethinode/develop
Add abbr shortcode
2023-08-28 14:15:40 +02:00
mark
50708e2f89 Update package version 2023-08-28 14:02:01 +02:00
mark
ad24e44041 Fix abbr example 2023-08-28 14:00:56 +02:00
mark
ad143b87c9 Update build stats 2023-08-28 13:57:35 +02:00
mark
f17914a3ef Add abr shortcode 2023-08-28 13:57:29 +02:00
mark
3feeff793e Include data folder in module mounts 2023-08-28 13:57:10 +02:00
aefly
d9152fa8ea Add 'bootstrap-elements.md' for French Translation 2023-08-27 19:30:27 +02:00
aefly
77e3698b04 Add 'components.md' for French Translation 2023-08-27 15:20:37 +02:00
aefly
d6366618fd Add 'timeline-fr.yml' for French Translation 2023-08-27 15:14:44 +02:00
mark
fe603eca70 Fix timeline arg 2023-08-27 14:07:51 +02:00
Mark Dumay
7904caa902 Merge branch 'main' into develop 2023-08-27 13:53:12 +02:00
mark
f4dcb16d24 Add support for translated timeline data 2023-08-27 13:52:26 +02:00
Mark Dumay
cce017c646 Update npm-publish.yml 2023-08-27 09:41:35 +02:00
59 changed files with 990 additions and 9037 deletions

View File

@@ -31,8 +31,9 @@ jobs:
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Perform clean install of npm
run: npm ci
# [27/AUG/23] Adjusted from npm ci to prevent EBADPLATFORM error due to fsevents
- name: Install npm
run: npm i
- name: Publish package to npm
run: npm publish

View File

@@ -30,6 +30,7 @@
@import "components/popover.scss";
@import "components/sidebar.scss";
@import "components/syntax.scss";
@import "components/table.scss";
@import "components/timeline.scss";
@import "components/toc.scss";
@import "components/vimeo.scss";

View File

@@ -48,6 +48,10 @@
color: $body-color if($enable-important-utilities, !important, null);
}
.card-body-margin {
margin-bottom: $spacer * 1.5; // equals mb-4
}
@if $enable-dark-mode {
@include color-mode(dark) {
.card-body-link {

View File

@@ -0,0 +1,13 @@
@if $enable-dark-mode {
@include color-mode(dark) {
.table-striped, .table-striped-columns {
--bs-table-striped-bg: var(--bs-tertiary-bg);
--bs-table-striped-color: var(--bs-body-color);
}
.table-hover {
--bs-table-hover-bg: var(--bs-tertiary-bg);
--bs-table-striped-color: var(--bs-body-color);
}
}
}

View File

@@ -116,7 +116,7 @@
# header = "full"
# footer = "none"
# orientation = "stacked"
# style = "border-0 card-zoom"
# style = "border-0 card-zoom card-body-margin"
# homepage = 3
# separator = true
# toml-docs-end sections

View File

@@ -19,6 +19,7 @@ const purgecss = require('@fullhuman/postcss-purgecss')({
'./assets/scss/components/_syntax.scss',
'./assets/scss/components/_syntax-dark.scss',
'./assets/scss/components/_syntax-light.scss',
'./assets/scss/components/_table.scss',
'./assets/scss/theme/fonts.scss',
'./assets/scss/theme/theme.scss',
'./_vendor/github.com/gethinode/mod-flexsearch/assets/scss/modules/flexsearch/flexsearch.scss',

View File

@@ -98,7 +98,7 @@
header = "full"
footer = "none"
orientation = "stacked"
style = "border-0 card-zoom"
style = "border-0 card-zoom card-body-margin"
homepage = 3
separator = true
[sections.projects]
@@ -113,7 +113,7 @@
padding = "3"
header = "none"
footer = "tags"
orientation = "horizontal"
orientation = "horizontal-sm"
style = "border-1 card-emphasize"
homepage = 3
separator = false

View File

@@ -14,6 +14,16 @@ thumbnail:
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
## Abbr
As an example, the following shortcode displays the full text of an abbreviation on hover.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* abbr "CI/CD" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Accordion
As an example, the following shortcode displays an accordion with three elements, of which the first element is expanded.
@@ -125,7 +135,7 @@ As an example, the following shortcode displays a card group of three elements.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* card-group padding="3" */>}}
{{</* card-group padding="3" gutter="3" */>}}
{{</* card title="Bootstrap framework" icon="fab bootstrap" */>}}
Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source
Sass files.
@@ -292,6 +302,16 @@ As an example, the following shortcodes render links in different formats.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Mark
Use the `mark` shortcode to highlight text. The inner content is used as input.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
Use the mark shortcode to {{</* mark >}}highlight{{< /mark */>}} specific text.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Nav
As an example, the following shortcode displays a tab group with vertically aligned pills.
@@ -345,13 +365,33 @@ Loading...
{{< /example>}}
<!-- markdownlint-enable MD037 -->
## Sub
As an example, the following shortcode displays subscript text.
<!-- markdownlint-disable MD037 -->
{{< example >}}
H{{</* sub 2 */>}}O is a liquid.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Sup
As an example, the following shortcode displays superscript text.
<!-- markdownlint-disable MD037 -->
{{< example >}}
2{{</* sup 10 */>}} is 1024.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Timeline
As an example, the following shortcode displays a timeline with the file `data/timeline-en.yml` as data.
As an example, the following shortcode displays a timeline with the file `data/timeline.en.yml` as data.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* timeline data="timeline-en" background="dark" */>}}
{{</* timeline data="timeline" background="dark" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -0,0 +1,432 @@
---
author: Mark Dumay
title: Éléments Bootstrap
slug: elements-bootstrap
date: 2023-08-12
description: Utilisez des shortcodes pour ajouter facilement des éléments Bootstrap courants.
tags: ["bootstrap", "shortcode"]
thumbnail:
url: img/boots.jpg
author: Nathan Dumlao
authorURL: https://unsplash.com/@nate_dumlao
origin: Unsplash
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.
## Abbr
À titre d'exemple, le shortcode suivant affiche le texte complet d'une abréviation lorsque survolé.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* abbr "CI/CD" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Accordéon
À titre d'exemple, le shortcode suivant affiche un accordéon avec trois éléments, dont le premier élément est déplié.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* accordion */>}}
{{</* accordion-item header="Élément d'accordéon #1" show="true" */>}}
Il s'agit du contenu du corps du premier élément de l'accordéon. Il prend en charge le contenu HTML, s'il est activé dans le moteur de rendu goldmark. L'élément est affiché en ajoutant la valeur `show` à l'argument `class`.
{{</* /accordion-item */>}}
{{</* accordion-item header="Élément d'accordéon #2" */>}}
Il s'agit du contenu du corps du deuxième élément de l'accordéon.
{{</* /accordion-item */>}}
{{</* accordion-item header="Élément d'accordéon #3" */>}}
Il s'agit du contenu du corps du troisième élément de l'accordéon.
{{</* /accordion-item */>}}
{{</* /accordion */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Alerte
À titre d'exemple, le shortcode suivant affiche une alerte simple.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* alert color="danger" dismissible="true" */>}}
Une simple alerte de danger — vérifiez-la !
{{</* /alert */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Badge
Utilisez le shortcode "badge" pour afficher un badge avec un en-tête.
<!-- markdownlint-disable MD037 -->
{{< example >}}
En-tête 1 {{</* badge title="Nouveau" */>}}
{.h1}
En-tête 2 {{</* badge title="Nouveau" */>}}
{.h2}
En-tête 3 {{</* badge title="Nouveau" */>}}
{.h3}
En-tête 4 {{</* badge title="Nouveau" */>}}
{.h4}
En-tête 5 {{</* badge title="Nouveau" */>}}
{.h5}
En-tête 6 {{</* badge title="Nouveau" */>}}
{.h6}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Fil d'Ariane
À titre d'exemple, le shortcode suivant affiche un fil d'Ariane pour la page du blog.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* breadcrumb path="blog" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Bouton
À titre d'exemple, le shortcode suivant affiche une infobulle pour un bouton sombre avec un badge.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button color="secondary" tooltip="Cliquez sur la boîte de réception pour voir vos messages non lus." href="#!" badge="99+" */>}}
Boîte de réception
{{</* /button */>}}
{{< /example>}}
<!-- markdownlint-enable MD037 -->
## Groupe de boutons
À titre d'exemple, le shortcode suivant affiche un groupe de trois boutons.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button-group aria-label="Basic example" */>}}
{{</* button color="primary" href="#!" */>}}Gauche{{</* /button */>}}
{{</* button color="primary" href="#!" */>}}Millieu{{</* /button */>}}
{{</* button color="primary" href="#!" */>}}Droite{{</* /button */>}}
{{</* /button-group */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## 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é.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* card path="about" padding="3" class="col-6 mx-auto" color="body-tertiary" header="publication" footer="none" /*/>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Groupe de cartes
À titre d'exemple, le shortcode suivant affiche un groupe de cartes avec trois éléments.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* card-group padding="3" gutter="3" */>}}
{{</* card title="Framework Bootstrap" icon="fab bootstrap" */>}}
Créez des sites rapides et réactifs avec Bootstrap 5. Personnalisez facilement votre site
avec les fichiers source Sass.
{{</* /card */>}}
{{</* card title="Recherche en texte intégral" icon="fas magnifying-glass" */>}}
Recherchez votre site avec FlexSearch, une bibliothèque de recherche en texte intégral
avec zéro dépendances.
{{</* /card */>}}
{{</* card title="Outils de développement" icon="fas code" */>}}
Utilisez Node Package Manager pour automatiser le processus de construction et suivre
les dépendances.
{{</* /card */>}}
{{</* /card-group */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Carrousel
À titre d'exemple, le shortcode suivant affiche un carrousel centré avec trois slides, un rapport hauteur/largeur de 16:9 et une largeur relative de 67 % sur les grands écrans.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
{{</* img src="img/coffee.jpg" caption="slide 1" */>}}
{{</* img src="img/phone.jpg" caption="slide 2" */>}}
{{</* img src="img/dunes.jpg" caption="slide 3" */>}}
{{</* /carousel */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Réduire
À titre d'exemple, le shortcode suivant affiche un bouton qui, lorsqu'il est cliqué, déclenche l'apparition ou la disparition d'un panneau.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button collapse="collapse-1" */>}}
Déclencher le panneau
{{</* /button */>}}
{{</* collapse id="collapse-1" class="p-3 border rounded bg-primary-subtle" */>}}
Un contenu de remplacement destiné au composant de repliement. Ce panneau est initialement masqué, mais il
sera révélé lorsque l'utilisateur active le déclencheur correspondant.
{{</* /collapse */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Invite de commandes
Utilisez le shortcode `command` pour générer un bloc avec un invite de commandes bash par défaut.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* command */>}}
export MY_VAR=123
{{</* /command */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
Spécifiez `user` et `host` pour ajouter le contexte de l'utilisateur à l'invite. De plus, utilisez `(out)` pour spécifier une ligne de sortie et utilisez `\` pour indiquer une continuation de ligne.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* 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 */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Documentation
Utilisez le shortcode `docs` pour afficher le contenu d'un fichier `js`, `scss` ou `toml` :
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
## Exemple
Utilisez le shortcode `example` pour afficher un exemple de code et pour afficher un aperçu de la même entrée.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* command */>}}
export MY_VAR=123
{{</* /command */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Fichier
Utilisez le shortcode `file` pour afficher et mettre en évidence le contenu complet d'un fichier d'entrée donné.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* file path="./config/_default/languages.toml" id="file-collapse-1" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Icon
À titre d'exemple, les shortcodes suivants affichent une coche carrée, un logo de marque et une coche circulaire.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* fa square-check */>}}
{{</* fab linkedin */>}}
{{</* fas circle-check */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Image
À titre d'exemple, le shortcode suivant affiche une image avec des coins arrondis et un ratio d'aspect de 21:9.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Légende de l'image" class="rounded" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
À titre d'exemple, le shortcode suivant affiche une image vectorielle classique.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* image src="/img/logo_icon.svg" class="col-sm-6 col-lg-4" wrapper="text-center" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
À titre d'exemple, le shortcode suivant affiche une image vectorielle avec une référence de symbole.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* image src="/img/logo_var.svg#logo" class="col-sm-6 col-lg-4" wrapper="text-center" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Lien
À titre d'exemple, les shortcodes suivants rendent des liens dans différents formats.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
- {{</* link hinode >}}Lien nommé avec les paramètres par défaut{{< /link */>}}
- {{</* link name=hinode cue=false tab=false >}}Lien nommé s'ouvrant dans l'onglet actuel sans icône{{< /link */>}}
- {{</* link name=hinode cue=true tab=true >}}Lien nommé s'ouvrant dans un nouvel onglet avec icône{{< /link */>}}
- {{</* link hinode /*/>}}
- {{</* link href="https://developer.mozilla.org" >}}Lien externe{{< /link */>}}
- {{</* link "./projects/another-project" >}}Lien interne avec titre{{< /link */>}}
- {{</* link url="projects/another-project" /*/>}}
- {{</* link url="/projects/another-project" /*/>}}
- {{</* link url="../projects/another-project" case=false /*/>}}
- {{</* link "/about/" /*/>}}
- {{</* link "/en/about/" /*/>}}
- {{</* link "/en/about" >}}About (Anglais){{< /link */>}}
- {{</* link "#image" /*/>}}
- {{</* link "components/#map" /*/>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Mark
Utilisez le shortcode `mark` pour mettre en évidence le texte. Le contenu interne est utilisé en tant qu'entrée.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
Utilisez le shortcode `mark` pour {{</* mark >}}mettre en évidence{{< /mark */>}} un texte spécifique.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Navigation
À titre d'exemple, le shortcode suivant affiche un groupe d'onglets avec des onglets alignés verticalement.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* nav type="pills" vertical="true" */>}}
{{</* nav-item header="Élément de navigation #1" show="true" */>}}
Voici le contenu de navigation du premier élément. Il prend en charge le contenu HTML, s'il est
activé dans le moteur de rendu Goldmark. L'élément est affiché en ajoutant la valeur `show` à l'argument `class`.
{{</* /nav-item */>}}
{{</* nav-item header="Élément de navigation #2" */>}}
Voici le contenu de navigation du deuxième élément.
{{</* /nav-item */>}}
{{</* nav-item header="Élément de navigation #3" */>}}
Voici le contenu de navigation du troisième élément.
{{</* /nav-item */>}}
{{</* /nav */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Barre de navigation
À titre d'exemple, le shortcode suivant affiche un en-tête de navigation clair.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* navbar id="navbar-sample" path="blog" color="primary" size="md" search="false" menus="sample" title="Marque" mode="false" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Publication
À titre d'exemple, le shortcode suivant affiche un bouton de publication par défaut.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* release version="v0.14.1" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Indicateur de chargement
À titre d'exemple, le raccourci suivant affiche un indicateur de chargement centré.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* spinner color="info" class="text-center" */>}}
Chargement...
{{</* /spinner */>}}
{{< /example>}}
<!-- markdownlint-enable MD037 -->
## Sub
À titre d'exemple, le shortcode suivant affiche du texte en indice.
<!-- markdownlint-disable MD037 -->
{{< example >}}
H{{</* sub 2 */>}}O est un liquide.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Sup
À titre d'exemple, le shortcode suivant affiche du texte en exposant.
<!-- markdownlint-disable MD037 -->
{{< example >}}
2{{</* sup 10 */>}} équivaut à 1024.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Chronologie
À titre d'exemple, le shortcode suivant affiche une chronologie avec le fichier `data/timeline-fr.yml` en tant que données.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* timeline data="timeline-fr" background="dark" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Notification
À titre d'exemple, le shortcode suivant affiche un bouton qui, lorsqu'il est cliqué, déclenche le message de notification.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button toast="toast-example-1" */>}}
Affiche la notifiaction #1
{{</* /button */>}}
{{</* button toast="toast-example-2" */>}}
Affiche la notifiaction #1
{{</* /button */>}}
{{</* toast id="toast-example-1" header="Premier titre" */>}}
Ceci est le premier message de notification. Il prend en charge le `markdown`.
{{</* /toast */>}}
{{</* toast id="toast-example-2" header="Deuxième titre" */>}}
Ceci est le deuxième message de notification. Il prend en charge le `markdown`.
{{</* /toast */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Infobulle
À titre d'exemple, le shortcode suivant affiche une infobulle pour un lien hypertexte coloré.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* tooltip color="primary" title="Légende de l'infobulle" href="#!" */>}}Démonstration{{</* /tooltip */>}} d'une infobulle
{{< /example >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -0,0 +1,40 @@
---
author: Mark Dumay
title: Composents
slug: composents
date: 2023-07-21
description: Utilisez des shortcodes pour ajouter des composants prédéfinis alimentés par des bibliothèques externes.
tags: ["bootstrap", "shortcode"]
thumbnail:
url: img/puzzle.jpg
author: Ryoji Iwata
authorURL: https://unsplash.com/@ryoji__iwata
origin: Unsplash
originURL: https://unsplash.com/photos/5siQcvSxCP8
modules: ["katex", "leaflet"]
---
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.
## Formule (KaTeX)
À titre d'exemple, le markdown suivant affiche deux formules en utilisant la bibliothèque de composition typographique KaTeX.
{{< example lang="markdown" >}}
Voici une formule en ligne $-b \pm \sqrt{b^2 - 4ac} \over 2a$.
Il s'agit d'une formule non en ligne:
$$x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}}$$
$$\forall x \in X, \quad \exists y \leq \epsilon$$
{{< /example >}}
## Map
À titre d'exemple, le shortcode suivant affiche une carte interactive de la ville d'Amsterdam.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* map lat=52.377 long=4.90 zoom=13 popup="Gare centrale d'Amsterdam" popup-lat=52.378062 popup-long=4.900562 */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

11
exampleSite/data/abbr.yml Normal file
View File

@@ -0,0 +1,11 @@
- id: css
long: "Cascading Style Sheets"
- id: html
long: "HyperText Markup Language"
- id: svg
long: "Scalable Vector Graphics"
- id: ci/cd
long: "Continous Integration/Continuous Deployment"

View File

@@ -0,0 +1,35 @@
# This file holds all menu entries for the docs sidebar
- title: Lancement de produit
icon: fas rocket
color: primary
date: 2023-07-01
url: https://github.com/gethinode/hinode/releases/tag/v0.15.2
content:
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
- title: Prise en charge I18N
icon: fas globe
color: success
date: 2023-05-06
url: v0.14.0
content:
Lorem ipsum dolor sit amet.
- title: Nouvelle fonctionnalité
icon: fas house
color: warning
date: 2023-02-04
url: v0.8.1
content:
Cupiditate ducimus officiis quod!
- title: Version bêta
icon: fas heart
color: info
date: 2022-11-30
# url: v0.1
content:
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ducimus officiis quod! Aperiam eveniet nam nostrum odit quasi ullam voluptatum.

View File

@@ -3,9 +3,4 @@ module github.com/gethinode/hinode-test
go 1.19
require (
github.com/gethinode/mod-bootstrap v1.1.1 // indirect
github.com/gethinode/mod-flexsearch v1.4.0 // indirect
github.com/gethinode/mod-fontawesome v1.2.5 // indirect
github.com/gethinode/mod-katex v1.0.2 // indirect
github.com/gethinode/mod-leaflet v0.3.4 // indirect
)

View File

@@ -10,6 +10,10 @@ github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.2.5 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU=
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.3.0 h1:oudeDBlAKu8vqYxumWuq5SG5F5itm33NgTrBLgvPulQ=
github.com/gethinode/mod-fontawesome v1.3.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.3.1 h1:EdnBuG2B+bi06OcYmcL1NfSxHpRMEGu8TXUqEEpVH4g=
github.com/gethinode/mod-fontawesome v1.3.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-katex v1.0.1/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.2 h1:pIG4n3qLl/IVe7BEiwn+GL8r5lOCtF6FDxlcrPKdAXk=
github.com/gethinode/mod-katex v1.0.2/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=

View File

@@ -2,6 +2,7 @@
"htmlElements": {
"tags": [
"a",
"abbr",
"body",
"br",
"button",
@@ -21,6 +22,7 @@
"input",
"li",
"link",
"mark",
"meta",
"nav",
"nil",
@@ -33,6 +35,8 @@
"small",
"span",
"strong",
"sub",
"sup",
"svg",
"time",
"title",
@@ -90,6 +94,7 @@
"card",
"card-body",
"card-body-link",
"card-body-margin",
"card-emphasize",
"card-img-top",
"card-img-wrap",
@@ -209,6 +214,7 @@
"fw-semibold",
"g-0",
"g-3",
"g-4",
"gap-2",
"gap-3",
"gradient",
@@ -258,7 +264,7 @@
"mt-3",
"mt-5",
"mt-auto",
"multi-docs-collapse-14",
"multi-docs-collapse-15",
"multi-file-collapse-1",
"mx-auto",
"mx-md-2",
@@ -304,7 +310,6 @@
"ps-1",
"ps-3",
"ps-xl-3",
"pt-3",
"px-3",
"px-4",
"px-xxl-0",
@@ -403,6 +408,7 @@
"-theme",
"-theme-collapsed",
"TableOfContents",
"abbr",
"accordion",
"accordion-0",
"accordion-0-heading-0",
@@ -411,10 +417,14 @@
"accordion-0-item-0",
"accordion-0-item-1",
"accordion-0-item-2",
"accordéon",
"alert",
"alerte",
"badge",
"body-docs-collapse-14",
"barre-de-navigation",
"body-docs-collapse-15",
"body-file-collapse-1",
"bouton",
"breadcrumb",
"btn-webshare",
"button",
@@ -423,20 +433,35 @@
"card-group",
"carousel",
"carousel-0",
"carrousel",
"carte",
"chronologie",
"collapse",
"collapse-1",
"command-prompt",
"docs",
"documentation",
"example",
"exemple",
"fichier",
"fil-dariane",
"file",
"footer-docs-collapse-14",
"footer-docs-collapse-15",
"footer-file-collapse-1",
"formula-katex",
"formule-katex",
"groupe-de-boutons",
"groupe-de-cartes",
"icon",
"image",
"indicateur-de-chargement",
"infobulle",
"invite-de-commandes",
"leaflet-map-0",
"lien",
"link",
"map",
"mark",
"nav",
"nav-0",
"nav-0-0",
@@ -448,8 +473,14 @@
"navbar",
"navbar-0-collapse",
"navbar-sample-collapse",
"navigation",
"notification",
"publication",
"release",
"réduire",
"spinner",
"sub",
"sup",
"timeline",
"toast",
"toast-container",

2
go.mod
View File

@@ -5,7 +5,7 @@ go 1.19
require (
github.com/gethinode/mod-bootstrap v1.1.1 // indirect
github.com/gethinode/mod-flexsearch v1.4.0 // indirect
github.com/gethinode/mod-fontawesome v1.2.5 // indirect
github.com/gethinode/mod-fontawesome v1.3.1 // indirect
github.com/gethinode/mod-katex v1.0.2 // indirect
github.com/gethinode/mod-leaflet v0.3.4 // indirect
)

4
go.sum
View File

@@ -38,6 +38,10 @@ github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t
github.com/gethinode/mod-fontawesome v1.2.4/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.2.5 h1:RqkLRj6+s+gM4nKd0IwNMMDA8cRmxfp0fxkVH4FdAGU=
github.com/gethinode/mod-fontawesome v1.2.5/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.3.0 h1:oudeDBlAKu8vqYxumWuq5SG5F5itm33NgTrBLgvPulQ=
github.com/gethinode/mod-fontawesome v1.3.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.3.1 h1:EdnBuG2B+bi06OcYmcL1NfSxHpRMEGu8TXUqEEpVH4g=
github.com/gethinode/mod-fontawesome v1.3.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-katex v1.0.0 h1:me/3dIIZBkfk1mRIFt8QiAGYwYDoSG5bc2hHRtIutFc=
github.com/gethinode/mod-katex v1.0.0/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.1 h1:809QUztxmKgMNchU+v03iMO7Ma+ISc3ZzhXYauc21rs=

View File

@@ -1,4 +1,5 @@
{{- define "main" -}}
{{- $content := partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) -}}
{{- partial "assets/section-list.html" (dict
"page" .
"section" .Type
@@ -6,7 +7,7 @@
"nested" .Params.Nested
"title" (or .Title .Type)
"description" .Description
"content" .Content
"content" $content
"paginate" true)
-}}
{{- end -}}

View File

@@ -10,6 +10,7 @@
"cards" Optional string of rendered cards.
"max" Required maximum number of cards to display.
"cols" Required number of columns for the grid, must be a value between 1 and 5.
"gutter" Gutter between columns in a group, either "0", "1", "2", "3", "4" (default), or "5".
"title" Optional title of the card group.
"paginate" Optional flag indicating if pagination should be added to the card group, if the list exceeds the
maximum number of cards to display.
@@ -17,6 +18,8 @@
maximum number of cards to display.
"hrefTitle" Optional title of the button or hyperlink as companion to href.
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
"wrapper" Optional class attributes of the wrapper element, e.g. "p-4 px-xxl-0".
"responsive" Optional flag if the number of columns should be responsive, defaults to "true".
In addition, the following arguments are passed to the individual cards.
"class" Optional class attribute of the card element, e.g. “w-50”.
@@ -89,15 +92,31 @@
{{- end -}}
{{- $max = math.Min $max $count -}}
{{- $cols := .cols -}}
{{- if or (lt $cols 1) (gt $cols 5) -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'cols': %d" $cols -}}
{{- $responsive := .responsive | default true -}}
{{- with .responsive -}}
{{- if ne (printf "%T" .) "bool" -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'responsive'" -}}
{{- end -}}
{{- end -}}
{{- $cols := string .cols | default "3" -}}
{{- $supportedCols := slice "0" "1" "2" "3" "4" "5" "auto" -}}
{{- if not (in $supportedCols $cols) -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'cols': %s" $cols -}}
{{- end -}}
{{- $colGrid := "" -}}
{{- if eq $cols "1" }}{{ $colGrid = "row-cols-1" -}}
{{- else if eq $cols "2" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-1 row-cols-md-2" }}{{ else }}{{ $colGrid = "row-cols-2" }}{{ end -}}
{{- else if eq $cols "3" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-3" }}{{ else }}{{ $colGrid = "row-cols-3" }}{{ end -}}
{{- else if eq $cols "4" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-4" }}{{ else }}{{ $colGrid = "row-cols-4" }}{{ end -}}
{{- else if eq $cols "5" }}{{ if $responsive }}{{ $colGrid = "row-cols-1 row-cols-sm-3 row-cols-md-5" }}{{ else }}{{ $colGrid = "row-cols-5" }}{{ end -}}
{{ end -}}
{{- $gutter := .gutter | default "4" -}}
{{- $supportedGutters := slice "0" "1" "2" "3" "4" "5" -}}
{{- if not (in $supportedGutters $gutter) -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'gutter': %s" $gutter -}}
{{- end -}}
{{- $colGrid := "row-cols-1" -}}
{{- if eq $cols 2 }}{{ $colGrid = "row-cols-1 row-cols-sm-1 row-cols-md-2" -}}
{{- else if eq $cols 3 }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-3" -}}
{{- else if eq $cols 4 }}{{ $colGrid = "row-cols-1 row-cols-sm-2 row-cols-md-4" -}}
{{- else if eq $cols 5 }}{{ $colGrid = "row-cols-1 row-cols-sm-3 row-cols-md-5" }}{{ end -}}
{{- if not $paginate -}}
{{- $list = first $max $list -}}
@@ -120,11 +139,12 @@
{{- $header := .header -}}
{{- $footer := .footer -}}
{{- $orientation := .orientation -}}
{{- $wrapper := .wrapper | default "p-4 px-xxl-0" -}}
{{- if and (eq $cols 1) (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
<div class="container-fluid p-4 px-xxl-0 ">
<div class="row {{ $colGrid }}">
<div class="container-fluid {{ $wrapper }}">
<div class="row {{ $colGrid }} g-{{ $gutter }}">
{{ range $index, $element := $list }}
{{- $params := (dict
"class" (printf "h-100 %s" $class)
@@ -136,7 +156,7 @@
) -}}
{{- $params = merge $params $element }}
<div class="col pt-3 pb-3">
<div class="col">
{{- partial "assets/card.html" $params -}}
</div>
{{- if and (lt $index (sub $max 1)) $separator -}}

View File

@@ -11,12 +11,14 @@
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
color is specified.
"padding": Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
"gutter" Gutter between columns in a group, either "0" (default), "1", "2", "3", "4", or "5".
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
(default), "publication", "tags", and "none".
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
"publication", "tags", and "none" (default).
"description" Optional description of the card.
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
"alt" Optional alternate text for the thumbnail, uses "title" by default.
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
"orientation" Optional placecement of the thumbnail or icon, either "stacked" (default), "horizontal",
"horizontal-sm" or "none".
@@ -32,12 +34,12 @@
{{- if $href -}}
<a href="{{ $href }}" class="{{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }} stretched-link">
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
{{ with $description }}<p class="card-text mb-4 {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
{{ with $description }}<p class="card-text {{ if $color }}link-bg-{{ $color }}{{ else }}card-body-link{{ end }}">{{ . }}</p>{{ end -}}
</a>
{{- else -}}
<div>
<p class="card-title fs-5 fw-bold">{{ $title }}</p>
{{ with $description }}<p class="card-text mb-4">{{ . }}</p>{{ end -}}
{{ with $title }}<p class="card-title fs-5 fw-bold">{{ . }}</p>{{ end -}}
{{ with $description }}<p class="card-text">{{ . }}</p>{{ end -}}
</div>
{{- end -}}
{{- end -}}
@@ -82,6 +84,7 @@
{{- end }}
{{- $title := .title -}}
{{- $alt := .alt -}}
{{- $href := .href -}}
{{- $description := .description -}}
{{- $thumbnail := .thumbnail -}}
@@ -126,6 +129,12 @@
{{- errorf "partial [assets/card.html] - Invalid value for param 'padding': %s" $padding -}}
{{- end -}}
{{- $gutter := .gutter | default "0" -}}
{{ $supportedGutters:= slice "0" "1" "2" "3" "4" "5" -}}
{{ if not (in $supportedGutters $gutter) -}}
{{- errorf "partial [assets/card.html] - Invalid value for param 'gutter': %s" $gutter -}}
{{ end -}}
{{- $orientation := "stacked" -}}
{{- with .orientation }}{{ $orientation = . }}{{ end -}}
{{- $supportedOrientations := slice "stacked" "horizontal" "horizontal-sm" "none" -}}
@@ -134,6 +143,7 @@
{{- end -}}
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
{{ if ne $gutter "0" }}<div class="g-{{ $gutter }}">{{ end }}
{{- if hasPrefix $orientation "horizontal" -}}
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
<div class="row g-0 row-cols-1 h-100">
@@ -160,7 +170,7 @@
{{- else -}}
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
{{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" $title) -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" "16x9" "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" (or $alt $title)) -}}
{{- else if $icon -}}
<div class="p-{{ $padding }}">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x text-secondary" $icon)) -}}
@@ -173,3 +183,4 @@
</div>
</div>
{{- end -}}
{{ if ne $gutter "0" }}</div>{{ end }}

View File

@@ -7,7 +7,8 @@
{{ $page := .page -}}
{{ $arg := .arg -}}
{{ $merge := .merge -}}
{{ $val := $page.Get $arg }}
{{ $val := "" }}
{{ with $page.Get $arg }}{{ $val = . }}{{ end }}
{{- with $page.Parent -}}
{{ with .Get $arg }}

View File

@@ -9,5 +9,5 @@
{{- if site.Params.debugging.purgeHTMLComments -}}
{{- $raw = replaceRE "<!--(.|\n)*?-->" "" $raw -}}
{{- end -}}
{{ $content := $raw | $page.RenderString | safeHTML }}
{{ $content := emojify $raw | $page.RenderString }}
{{ return $content }}

View File

@@ -0,0 +1,68 @@
<!--
Creates an HTML element that shows the long form of an abbrevitation. The abbreviation data is centrally stored in a
data file. By default, the shortcode uses "abbr.yaml" with translation support.
The data file is expected to store key-value pairs, where "id" is the lower-case abbrevation and "long" its long
form. The following example illustrates this using YML:
- id: css
long: "Cascading Style Sheets"
The shortcode supports the following arguments:
"key" Required case-insensitive key of the abbreviation. In shorthand notation, this is the first (and
only) matched argument.
"data" Optional filename of the abbrevation input. It defaults to "abbr.yaml" with translation support.
You can omit the file extension. The file should reside in the "data" folder. The data supports
language extensions. For example, "abbr.en.yaml" refers to the English translation of the
abbrevation data. The filename "abbr.yaml" is used when no suitable translation is found.
"class" Optional class attribute of the abbr element. For example, specify "initialism" for a slightly
smaller font size.
-->
{{ $error := false }}
{{ $key := "" }}
{{- if .IsNamedParams }}{{ $key = .Get "key" }}{{ else }}{{ $key = .Get 0 }}{{ end }}
{{ if not $key -}}
{{ errorf "Missing param 'key': %s" .Position -}}
{{ $error = true }}
{{ end -}}
{{- $data := .Get "data" | default "abbr" -}}
{{ if not $data -}}
{{ errorf "Missing param 'data': %s" .Position -}}
{{ $error = true }}
{{ end -}}
{{- $class := .Get "class" | default "" -}}
{{ if not $error }}
{{/* Try language-specific file first */}}
{{ $path := path.Join (path.Dir $data) (printf "%s.%s" (path.BaseName $data) .Page.Language.Lang) (path.Ext $data) }}
{{ $entries := index site.Data $path }}
{{/* Use exact provided path as backup */}}
{{ if not $entries -}}
{{ $entries = index site.Data $data }}
{{ end }}
{{ if not $entries -}}
{{ errorf "Invalid abbrevation data '%s': %s" $data .Position -}}
{{ $error = true }}
{{ end -}}
{{ $title := "" }}
{{ if not $error }}
{{ $elements := (where $entries "id" (lower $key)) }}
{{ if gt (len $elements) 0 }}
{{ $title = index (index $elements 0) "long" }}
{{ end -}}
{{ if not $title -}}
{{ errorf "Cannot find value for '%s': %s" $key .Position -}}
{{ $error = true }}
{{ end -}}
{{ end }}
{{ if not $error }}
<abbr {{ with $class }}class="{{ . }}"{{ end }} title="{{ $title }}">{{ $key }}</abbr>
{{ end }}
{{ end }}

View File

@@ -12,7 +12,7 @@
{{- end -}}
{{- $id := .Ordinal -}}
{{ $header := .Get "header" -}}
{{ $header := .Get "header" | default "" -}}
{{ if not $header -}}
{{ if .Parent }}
{{ errorf "Missing value for param 'header': %s" .Parent.Position -}}
@@ -21,7 +21,7 @@
{{ end }}
{{ end -}}
{{ $class := .Get "class" -}}
{{ $class := .Get "class" | default "" -}}
{{ $body := trim .Inner " \r\n" -}}
{{ if not $body -}}
{{ if .Parent }}

View File

@@ -10,7 +10,7 @@
{{ with .Get "id" }}
{{ $id = . }}
{{ end }}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{- $openParam := "false" -}}
{{- $open := false -}}

View File

@@ -49,7 +49,7 @@
{{ $error = true -}}
{{ end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{- if not $error -}}
<div class="d-flex alert alert-{{ $color }} {{ if $dismissible }}alert-dismissible fade show{{ end }}{{ with $class }} {{ . }}{{ end }}" role="alert">

View File

@@ -7,8 +7,8 @@
-->
{{- $error := false -}}
{{- $title := .Get "title" -}}
{{- $class := .Get "class" -}}
{{- $title := .Get "title" | default "" -}}
{{- $class := .Get "class" | default "" -}}
{{- $color := "secondary" -}}
{{- with .Get "color" }}{{ $color = . }}{{ end -}}
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" -}}

View File

@@ -5,7 +5,7 @@
{{- $error := false -}}
{{- $page := . -}}
{{- $path := .Get "path"}}
{{- $path := .Get "path" | default "" }}
{{- if $path -}}
{{- $page = .Site.GetPage $path -}}
{{- if not $page -}}

View File

@@ -31,7 +31,7 @@
{{ $error := false }}
{{ $type := "button" -}}
{{- $icon := .Get "icon" }}
{{- $icon := .Get "icon" | default "" }}
{{ $title := trim .Inner " \r\n" | .Page.RenderString -}}
{{ if not (or $title $icon) -}}
{{ errorf "Missing icon or inner element text: %s" .Position -}}
@@ -71,17 +71,17 @@
{{ errorf "Invalid value for param 'outline': %s" .Position -}}
{{ end -}}
{{ $badge := .Get "badge" -}}
{{ $label := .Get "aria-label" -}}
{{ $tooltip := .Get "tooltip" -}}
{{ $collapse := .Get "collapse" -}}
{{ $href := .Get "href" -}}
{{ $relref := .Get "relref" }}
{{ $id := .Get "id" -}}
{{ $badge := .Get "badge" | default "" -}}
{{ $label := .Get "aria-label" | default "" -}}
{{ $tooltip := .Get "tooltip" | default "" -}}
{{ $collapse := .Get "collapse" | default "" -}}
{{ $href := .Get "href" | default "" -}}
{{ $relref := .Get "relref" | default "" -}}
{{ $id := .Get "id" | default "" -}}
{{ if $relref }}
{{ $href = relref . $relref }}
{{ end }}
{{ $class := .Get "class" -}}
{{ $class := .Get "class" | default "" -}}
{{ $placement := "top" -}}
{{ with .Get "placement" }}{{ $placement = . }}{{ end -}}
@@ -91,7 +91,7 @@
{{ $error = true }}
{{ end -}}
{{- $toast := .Get "toast" -}}
{{- $toast := .Get "toast" | default "" -}}
{{- $order := "last" -}}
{{- with .Get "order" }}{{ $order = . }}{{ end -}}

View File

@@ -8,7 +8,9 @@
"cols" Required number of columns for the grid, must be a value between 1 and 5.
"title" Optional title of the card group.
"separator" Optional flag to indicate a horizontal line should be added between items on small screens.
"gutter" Gutter between columns in a group, either "0", "1", "2", "3" (default), "4", or "5".
"gutter" Gutter between columns in a group, either "0", "1", "2", "3", "4" (default), or "5".
"wrapper" Optional class attributes of the wrapper element, e.g. "p-4 px-xxl-0".
"responsive" Optional flag if the number of columns should be responsive, defaults to "true".
In addition, the following arguments are passed to the individual cards.
"class" Optional class attribute of the card element, e.g. “w-50”.
@@ -22,24 +24,35 @@
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
-->
{{- $cols := 3 -}}
{{ with .Get "cols" }}{{ $cols = int . }}{{ end -}}
{{- $title := .Get "title" -}}
{{- $separator := .Get "separator" -}}
{{- $class := .Get "class" -}}
{{- $wrapper := .Get "wrapper" -}}
{{- $color := .Get "color" -}}
{{- $cols := .Get "cols" | default "3" -}}
{{- $gutter := .Get "gutter" | default "4" -}}
{{- $title := .Get "title" | default "" -}}
{{- $separator := .Get "separator" | default "" -}}
{{- $class := .Get "class" | default "" -}}
{{- $wrapper := .Get "wrapper" | default "" -}}
{{- $responsive := .Get "responsive" | default true -}}
{{- $color := .Get "color" | default "" -}}
{{- $padding := .Get "padding" | default "3" -}}
{{- $header := .Get "header" -}}
{{- $footer := .Get "footer" -}}
{{- $orientation := .Get "orientation" -}}
{{- $header := .Get "header" | default "" -}}
{{- $footer := .Get "footer" | default "" -}}
{{- $orientation := .Get "orientation" | default "" -}}
{{ $inner := .Scratch.Get "inner" }}
{{ $input := trim .Inner " \r\n" }}
{{ if $input }}
{{ $input = replace $input "\n" "\n " }}
{{ warnf "Unexpected inner content: %s\r\n %s" .Position $input }}
{{ end }}
{{- partial "assets/card-group.html" (dict
"page" .Page
"cards" .Inner
"cards" $inner
"cols" $cols
"gutter" $gutter
"title" $title
"separator" $separator
"wrapper" $wrapper
"responsive" $responsive
"class" $class
"color" $color
"padding" $padding

View File

@@ -8,19 +8,20 @@
"warning", "info", "light", "dark", "white", "black", "body", or "body-tertiary". By default, no
color is specified.
"padding" Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
"gutter" Gutter between columns in a group, either "0", "1", "2", "3" (default), "4", or "5".
"gutter" Gutter between columns in a group, either "0" (default), "1", "2", "3", "4", or "5".
"header" Optional header components of the card, displayed in small caps. Supported values are "full"
(default), "publication", "tags", and "none".
"footer" Optional footer components of the card, displayed in small caps. Supported values are "full",
"publication", "tags", and "none" (default).
"orientation" Optional placecement of the thumbnail, either "stacked" (default), "horizontal", or "none".
"thumbnail" Optional thumbnail image url, displayed on top or the left of the card.
"alt" Optional alternate text for the thumbnail, uses "title" by default.
"icon" Optional Font Awesome icon, displayed on top or the left of the card.
-->
{{ $error := false }}
{{ $path := .Get "path" }}
{{ $path := or (.Get "path") "" }}
{{ $page := .Page }}
{{ with $path }}
{{ $page = $.Site.GetPage $path }}
@@ -59,7 +60,7 @@
{{ $error = true -}}
{{ end -}}
{{- $gutter := partial "utilities/GetArg" (dict "page" . "arg" "gutter") | default "3" -}}
{{- $gutter := partial "utilities/GetArg" (dict "page" . "arg" "gutter") | default "0" -}}
{{ $supportedGutters:= slice "0" "1" "2" "3" "4" "5" -}}
{{ if not (in $supportedGutters $gutter) -}}
{{ errorf "Invalid value for param 'gutter': %s" .Position -}}
@@ -81,16 +82,17 @@
{{ end -}}
{{ $description := trim .Inner " \r\n" | .Page.RenderString | safeHTML }}
{{ $title := .Get "title" }}
{{ $icon := .Get "icon" }}
{{ $thumbnail := .Get "thumbnail" }}
{{ $title := .Get "title" | default "" -}}
{{ $alt := .Get "alt" | default "" -}}
{{ $icon := .Get "icon" | default "" -}}
{{ $thumbnail := .Get "thumbnail" | default "" -}}
{{ if not $error -}}
<div class="g-{{ $gutter }}">
{{- partial "assets/card.html" (dict
{{- $output := partial "assets/card.html" (dict
"path" $path
"title" $title
"class" (printf "h-100 %s" $class)
"gutter" $gutter
"color" $color
"padding" $padding
"header" $header
@@ -99,6 +101,17 @@
"description" $description
"icon" $icon
"thumbnail" $thumbnail
"alt" $alt
) -}}
</div>
{{ with .Parent }}
{{ $current := .Scratch.Get "inner" }}
{{ if $current }}
{{ .Scratch.Set "inner" (print $current $output) }}
{{ else }}
{{ .Scratch.Set "inner" $output }}
{{ end }}
{{ else }}
{{ print $output | safeHTML }}
{{ end }}
{{ end -}}

View File

@@ -14,7 +14,7 @@
{{ $id = . }}
{{ end }}
{{ $class := .Get "class" -}}
{{ $class := .Get "class" | default "" -}}
{{ $inner := .Scratch.Get "inner" }}
{{ $input := trim .Inner " \r\n" }}

View File

@@ -4,12 +4,12 @@
"class" Optional class attribute of the inner panel element, e.g. “p-3”.
-->
{{ $id := .Get "id" -}}
{{ $id := .Get "id" | default "" -}}
{{ if not $id -}}
{{ errorf "Missing value for param 'id': %s" .Position -}}
{{ end -}}
{{ $class := .Get "class" }}
{{ $class := .Get "class" | default "" }}
{{- $body := trim .Inner " \r\n" -}}
{{ if not $body -}}

View File

@@ -8,9 +8,9 @@
"class" Optional class attribute of the command element.
-->
{{- $host := .Get "host" -}}
{{- $user := .Get "user" -}}
{{- $prompt := .Get "prompt" -}}
{{- $host := .Get "host" | default "" -}}
{{- $user := .Get "user" | default "" -}}
{{- $prompt := .Get "prompt" | default "" -}}
{{- $filter := "(out)" -}}
{{- $input := trim .Inner " \t\r\n" -}}
@@ -70,7 +70,7 @@
{{- $output = (replace $output "<span class=\"c\">#" "<span class=\"c\">" | safeHTML) -}}
{{- end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
<div class="mb-3 syntax-highlight{{ with $class }} {{ . }}{{ end }}">
{{- $output -}}

View File

@@ -19,9 +19,9 @@
"class" Optional class argument of the tab control.
-->
{{- $name := .Get "name" -}}
{{- $name := .Get "name" | default "" -}}
{{- $basePath := .Site.Params.docs.basePath -}}
{{- $file := .Get "file" }}
{{- $file := .Get "file" | default "" -}}
{{- if hasPrefix $file "./" -}}
{{- $file = path.Clean $file -}}
{{- else -}}
@@ -68,7 +68,7 @@
{{ errorf "Invalid value for param 'full': %s" $fullParam -}}
{{ end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{- /* If any parameters are missing, print an error and exit */ -}}
{{- if or (not $name) (not $file) -}}

View File

@@ -11,8 +11,8 @@
"class" Optional class attributes of the element's container.
-->
{{- $id := .Get "id" -}}
{{- $class := .Get "class" -}}
{{- $id := .Get "id" | default "" -}}
{{- $class := .Get "class" | default "" -}}
{{- $lang := .Get "lang" | default "markdown" -}}
{{- $show_markup := .Get "show_markup" | default true -}}
{{- $show_preview := .Get "show_preview" | default true -}}

View File

@@ -14,7 +14,7 @@
-->
{{- $basePath := .Site.Params.docs.basePath -}}
{{- $file := .Get "path" }}
{{- $file := .Get "path" | default "" -}}
{{- if hasPrefix $file "./" -}}
{{- $file = path.Clean $file -}}
{{- else -}}
@@ -47,7 +47,7 @@
{{ errorf "Invalid value for param 'full': %s" $fullParam -}}
{{ end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{- /* If any parameters are missing, print an error and exit */ -}}
{{- if not $file -}}

View File

@@ -16,19 +16,19 @@
-->
{{- if isset .Params "src" -}}
{{ $url := .Get "src" -}}
{{ $url := .Get "src" | default "" -}}
{{- $validRatios := slice "1x1" "3x2" "4x3" "16x9" "21x9" -}}
{{ $ratio := .Get "ratio" -}}
{{ $ratio := .Get "ratio" | default "" -}}
{{ if $ratio -}}
{{ if not (in $validRatios $ratio) -}}
{{ errorf "Invalid value for param 'ratio': %s" .Position -}}
{{ end -}}
{{ end -}}
{{- $class := .Get "class" -}}
{{- $wrapper := .Get "wrapper" -}}
{{ $title := .Get "title" -}}
{{ $caption := .Get "caption" -}}
{{- $class := .Get "class" | default "" -}}
{{- $wrapper := .Get "wrapper" | default "" -}}
{{ $title := .Get "title" | default "" -}}
{{ $caption := .Get "caption" | default "" -}}
{{ $supportedFlags := slice "true" "false" -}}
{{ $modeParam := "false" -}}
{{ $mode := false -}}

View File

@@ -12,9 +12,9 @@
{{ if not .Parent }}
{{ errorf "The img shortcode should be contained within a carousel shortcode: %s" .Position }}
{{ else }}
{{- $src := .Get "src" -}}
{{- $src := .Get "src" | default "" -}}
{{- if $src -}}
{{- $caption := .Get "caption" -}}
{{- $caption := .Get "caption" | default "" -}}
{{- $ratio := partial "utilities/GetArg" (dict "page" . "arg" "ratio") -}}
{{- $portrait := partial "utilities/GetArg" (dict "page" . "arg" "portrait") | default false -}}
{{- $active := eq .Ordinal 0 -}}

View File

@@ -0,0 +1,25 @@
<!--
Adds a keyboard input element. The shortcode supports the following arguments:
"title" Required title of the keyboard input. In shorthand notation, this is the first (and only) matched
argument.
"class" Optional class attributes of the keyboard input element.
"color" Optional theme color of the element, either "primary", "secondary" (default), "success",
"danger", "warning", "info", "light", "dark", "white", or "black".
-->
{{- $error := false -}}
{{- $title := "" -}}
{{- if .IsNamedParams }}{{ $title = .Get "title" }}{{ else }}{{ $title = .Get 0 }}{{ end }}
{{- $class := .Get "class" | default "" -}}
{{- $color := "" -}}
{{- with .Get "color" }}{{ $color = . }}{{ end -}}
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" -}}
{{- if and $color (not (in $supportedColors $color)) -}}
{{- errorf "Invalid value for param 'color': %s" .Position -}}
{{- end -}}
{{- if not $title }}
{{ errorf "Missing title: %s" .Position -}}
{{ else -}}
<kbd {{ if or $color $class }}class="{{ with $color }}text-bg-{{ . }}{{ end }}{{ with $class }} {{ . }}{{ end }}"{{ end }}>{{ $title | plainify }}</kbd>
{{ end -}}

View File

@@ -30,13 +30,13 @@
{{- $anchor := "" -}}
{{ if .IsNamedParams }}
{{ $href = .Get "href" }}
{{ $name = .Get "name" }}
{{ $url = .Get "url" }}
{{ $cue = .Get "cue" | default site.Params.main.externalLinks.cue }}
{{ $tab = .Get "tab" | default site.Params.main.externalLinks.tab }}
{{ $case = .Get "case" | default true }}
{{- $class := .Get "class" -}}
{{- $href = .Get "href" | default "" -}}
{{- $name = .Get "name" | default "" -}}
{{- $url = .Get "url" | default "" -}}
{{- $cue = .Get "cue" | default site.Params.main.externalLinks.cue -}}
{{- $tab = .Get "tab" | default site.Params.main.externalLinks.tab -}}
{{- $case = .Get "case" | default true -}}
{{- $class = .Get "class" | default "" -}}
{{ else }}
{{ $href = .Get 0 }}
{{ end }}
@@ -63,8 +63,7 @@
{{- $url = index $segments 0 -}}
{{- $anchor = index $segments 1 -}}
{{ if not $url }}
{{- $url = strings.TrimSuffix "/" .Page.RelPermalink -}}
{{- with .Page.Language }}{{ $url = strings.TrimPrefix (path.Join "/" .Lang) $url}}{{ end -}}
{{ $url = .Page.File.Path }}
{{ end }}
{{ end }}
{{ else }}

View File

@@ -0,0 +1,23 @@
<!--
Highlights text by applying a background color. The shortcode supports the following arguments:
"color": Optional theme color of the highlight, either "primary", "secondary", "success", "danger",
"warning", "info", "light", "dark", "white" or "black". By default, the highlight uses the color of
the HTML mark function.
"class": Optional class attribute of the highlight element.
-->
{{- $error := false -}}
{{ $color := .Get "color" | default "" -}}
{{ $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" -}}
{{ if and $color (not (in $supportedColors $color)) -}}
{{ errorf "Invalid value for param 'color': %s" .Position -}}
{{ $error = true -}}
{{ end -}}
{{- $class := .Get "class" | default "" -}}
{{- if $color }}{{ $class = printf "%s text-bg-%s" $class $color }}{{ end -}}
{{- if not $error -}}
<mark{{ with $class }} class="{{ . }}"{{ end }}>{{ trim .Inner " \r\n" | .Page.RenderString -}}</mark>
{{- end -}}

View File

@@ -22,12 +22,12 @@
{{- $fade = true -}}
{{- end -}}
{{- $header := .Get "header" -}}
{{- $header := .Get "header" | default "" -}}
{{- if not $header -}}
{{- errorf "Missing value for param 'header': %s" .Parent.Position -}}
{{- end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{- $body := trim .Inner " \r\n" | .Page.RenderString -}}
{{- $supportedFlags := slice "true" "false" -}}

View File

@@ -12,8 +12,8 @@
{{ $id = . }}
{{ end }}
{{- $class := .Get "class" -}}
{{ $type := .Get "type" -}}
{{- $class := .Get "class" | default "" -}}
{{ $type := .Get "type" | default "" -}}
{{ $supportedNavTypes := slice "tabs" "pills" "underline" -}}
{{ if $type }}
{{ if not (in $supportedNavTypes $type) -}}

View File

@@ -27,7 +27,7 @@
{{ $id = . }}
{{ end }}
{{ $path := .Get "path" }}
{{ $path := .Get "path" | default "" }}
{{ $page := .Site.GetPage $path }}
{{ if not $page }}
{{ errorf "Invalid or missing value for param 'path': %s" $path -}}
@@ -86,7 +86,7 @@
{{ $title := "" -}}
{{ with .Get "title" }}{{ $title = . }}{{ end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{ if not $error -}}
{{- partial "assets/navbar.html" (dict

View File

@@ -9,14 +9,14 @@
{{- $error := false -}}
{{- $path := .Get "path" -}}
{{- $path := .Get "path" | default "" -}}
{{- $page := .Site.GetPage $path -}}
{{- if not $page -}}
{{- errorf "Invalid or missing value for param 'path': %s" .Position -}}
{{- $error = true -}}
{{- end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{- $color := "" -}}
{{- with .Get "color" }}{{ $color = . }}{{ end -}}

View File

@@ -10,11 +10,10 @@
-->
{{- $error := false -}}
{{- $version := .Get "version" -}}
{{- $version := .Get "version" | default "" -}}
{{- $inline := false -}}
{{- $state := "new" -}}
{{- with .Get "state" }}{{ $state = . }}{{ end -}}
{{- $state := .Get "state" | default "new" -}}
{{- $supportedStates := slice "new" "deprecated" -}}
{{- if not (in $supportedStates $state) -}}
{{- errorf "Invalid value for param 'state': %s" .Position -}}
@@ -84,7 +83,7 @@
{{- $error = true -}}
{{- end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{- if not $error -}}
{{- if not $inline }}<div class="pb-3">{{ end -}}

View File

@@ -0,0 +1,7 @@
<!--
Displays text as subscript, provided as unnamed argument.
-->
{{- $text := .Get 0 | default "" -}}
<sub>{{ $text | .Page.RenderString -}}</sub>

View File

@@ -0,0 +1,7 @@
<!--
Displays text as superscript, provided as unnamed argument.
-->
{{- $text := .Get 0 | default "" -}}
<sup>{{ $text | .Page.RenderString -}}</sup>

View File

@@ -3,21 +3,30 @@
Show items ordered on a vertical timelime. The shortcode supports the following arguments:
"data" Required filename of the timeline input. You can omit the file extension. The file should reside in
the "data" folder.
the "data" folder. The data supports language extensions. For example, "timeline.en.yaml" refers to
the English translation of the timeline data. The filename "timeline.yaml" is used when no suitable
translation is found.
"background" Optional border color of the connector dots, defaults to the body background color. If set, uses a
subtle background color that is adaptive to the current color mode.
"class" Optional class attribute of the timeline's container.
-->
{{ $error := false }}
{{- $page := .Page -}}
{{- $data := .Get "data" -}}
{{- $data := .Get "data" | default "" -}}
{{ if not $data -}}
{{ errorf "Missing param 'data': %s" .Position -}}
{{ $error = true }}
{{ end -}}
{{ $entries := index site.Data $data }}
{{/* Try language-specific file first */}}
{{ $path := path.Join (path.Dir $data) (printf "%s.%s" (path.BaseName $data) .Page.Language.Lang) (path.Ext $data) }}
{{ $entries := index site.Data $path }}
{{/* Use exact provided path as backup */}}
{{ if not $entries -}}
{{ $entries = index site.Data $data }}
{{ end }}
{{ if not $entries -}}
{{ errorf "Invalid timeline data '%s': %s" $data .Position -}}
{{ $error = true }}
@@ -31,7 +40,7 @@
{{ $error = true -}}
{{ end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
<!-- Inline partial to render icon -->
{{- define "partials/timeline-icon.html" -}}
@@ -51,6 +60,7 @@
<!-- Inline partial to render icon -->
{{- define "partials/timeline-panel.html" -}}
{{- $col := default 6 .col -}}
{{- $page := .page -}}
{{- $content := .content -}}
{{- $color := .color -}}
{{- $title := .title -}}
@@ -79,7 +89,7 @@
{{ $datestr := (partial "utilities/date.html" (dict "date" $date "format" "long")) -}}
<p class="mb-0"><small class="text-body-secondary text-uppercase">{{ $datestr -}}</small></p>
{{ end }}
<p class="mt-3 mb-0">{{ $content | .Page.RenderString }}</p>
<p class="mt-3 mb-0">{{ $content | $page.RenderString }}</p>
</div>
</div>
</div>
@@ -90,11 +100,11 @@
{{ range $index, $item := $entries }}
<div class="row timeline timeline-{{ $item.color }} timeline-dot g-0 ">
{{ if eq (mod $index 2) 1 }}
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "start") }}
{{ partial "partials/timeline-panel.html" (dict "page" $page "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "start") }}
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "start") }}
{{ else }}
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "end") }}
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end") }}
{{ partial "partials/timeline-panel.html" (dict "page" $page "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end") }}
{{ end }}
</div>
<div class="row timeline g-0 p-3"> </div>
@@ -106,7 +116,7 @@
{{ range $index, $item := $entries }}
<div class="row timeline-sm timeline-{{ $item.color }} timeline-dot g-0">
{{ partial "partials/timeline-icon.html" (dict "icon" $item.icon "direction" "end" "col" 3) }}
{{ partial "partials/timeline-panel.html" (dict "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end" "col" 9) }}
{{ partial "partials/timeline-panel.html" (dict "page" $page "content" $item.content "color" $item.color "title" $item.title "badge" $item.badge "date" $item.date "url" $item.url "direction" "end" "col" 9) }}
</div>
<div class="row timeline-sm g-0 p-3"> </div>
{{ end }}

View File

@@ -8,10 +8,10 @@
{{- $error := false -}}
{{- $id := printf "toast-message-%d" .Ordinal -}}
{{- with .Get "id" }}{{ $id = . }}{{ end -}}
{{ $header := .Get "header" -}}
{{ $header := .Get "header" | default "" -}}
{{ $message := trim .Inner " \r\n" | .Page.RenderString -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{ if not $message -}}
{{ errorf "Missing inner element text: %s" .Position -}}

View File

@@ -25,9 +25,9 @@
{{ $error = true }}
{{ end -}}
{{ $tooltip := .Get "title" -}}
{{ $tooltip := .Get "title" | default "" -}}
{{ $href := .Get "href" -}}
{{ $href := .Get "href" | default "" -}}
{{ if not $href -}}
{{ errorf "Missing value for param 'href': %s" .Position -}}
{{ $error = true }}
@@ -41,7 +41,7 @@
{{ $error = true }}
{{ end -}}
{{- $class := .Get "class" -}}
{{- $class := .Get "class" | default "" -}}
{{ if not $error }}
<div class="d-inline-flex">

8918
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@gethinode/hinode",
"version": "0.19.0-alpha",
"version": "0.19.0",
"description": "Hinode is a clean documentation and blog theme for Hugo, an open-source static site generator",
"keywords": [
"hugo",
@@ -70,13 +70,13 @@
"autoprefixer": "^10.4.15",
"cssnano": "^6.0.1",
"cssnano-preset-advanced": "^6.0.1",
"eslint": "^8.47.0",
"eslint": "^8.48.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-n": "^16.0.2",
"eslint-plugin-promise": "^6.1.1",
"hugo-bin": "^0.113.0",
"markdownlint-cli2": "^0.9.0",
"hugo-bin": "^0.114.2",
"markdownlint-cli2": "^0.9.2",
"npm-run-all": "^4.1.5",
"postcss-cli": "^10.1.0",
"purgecss-whitelister": "^2.4.0",

View File

@@ -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.110.0"
min_version = "0.118.0" # fixes Hugo issue #11406
[author]
name = "Mark Dumay"