Compare commits

...

417 Commits

Author SHA1 Message Date
Mark Dumay
e7a6582229 Merge pull request #730 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-23 17:15:53 +01:00
markdumay
02946a9c9b fix: update Hugo module dependencies 2024-01-23 16:08:07 +00:00
Mark Dumay
a5ca5fcff1 Bump package release 2024-01-23 17:06:26 +01:00
Mark Dumay
b412c03b72 Bump package release 2024-01-23 17:06:08 +01:00
Mark Dumay
22678d4ecc Merge pull request #729 from gethinode/develop
Correct list view content on smaller screens
2024-01-23 17:04:44 +01:00
Mark Dumay
d84099e41f Merge branch 'main' into develop 2024-01-23 16:47:54 +01:00
Mark Dumay
853aac57a6 Fixes #728 2024-01-23 16:46:47 +01:00
Mark Dumay
a5bddcb033 Merge pull request #725 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-23 11:57:00 +01:00
markdumay
3a7178166f fix: update Hugo module dependencies 2024-01-23 03:17:22 +00:00
Mark Dumay
3f89bfb444 Merge pull request #726 from gethinode/develop
Fix init of fixed navigation parameter
2024-01-22 07:19:53 +01:00
Mark Dumay
e5ba3a94a4 Merge branch 'main' into develop 2024-01-22 06:44:57 +01:00
Mark Dumay
dc7af61a3a Fix init of fixed navigation parameter 2024-01-22 06:43:16 +01:00
Mark Dumay
da560a0275 Merge pull request #724 from gethinode/develop
Bump package release
2024-01-19 07:49:03 +01:00
Mark Dumay
41cf694792 Merge branch 'main' into develop 2024-01-19 07:42:18 +01:00
Mark Dumay
59f42c0dbd Merge pull request #723 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-19 07:39:54 +01:00
markdumay
b2302e2e9f fix: update Hugo module dependencies 2024-01-19 06:32:17 +00:00
Mark Dumay
8e6c0f8ade Bump package release 2024-01-19 07:31:06 +01:00
github-actions[bot]
ba92505daa Merge pull request #720 from gethinode/dependabot/npm_and_yarn/markdownlint-cli2-0.12.1
Bump markdownlint-cli2 from 0.11.0 to 0.12.1
2024-01-19 06:30:05 +00:00
Mark Dumay
e6e93888f6 Merge branch 'main' into dependabot/npm_and_yarn/markdownlint-cli2-0.12.1 2024-01-19 07:23:28 +01:00
Mark Dumay
e92598dc5b Merge pull request #722 from gethinode/develop
Disable table validation
2024-01-19 07:23:18 +01:00
Mark Dumay
697c6a1aae Fix #719 2024-01-19 07:16:11 +01:00
Mark Dumay
2487001b0d Merge branch 'main' into develop 2024-01-19 05:39:11 +01:00
Mark Dumay
7cd722bcc2 Disable table validation 2024-01-19 05:38:40 +01:00
dependabot[bot]
e0b7d7c3bb Bump markdownlint-cli2 from 0.11.0 to 0.12.1
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.11.0 to 0.12.1.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.11.0...v0.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 13:25:47 +00:00
github-actions[bot]
23470b705d Merge pull request #721 from gethinode/dependabot/npm_and_yarn/autoprefixer-10.4.17
Bump autoprefixer from 10.4.16 to 10.4.17
2024-01-18 13:25:02 +00:00
dependabot[bot]
70a624a9f3 Bump autoprefixer from 10.4.16 to 10.4.17
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.4.16 to 10.4.17.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.4.16...10.4.17)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 13:18:06 +00:00
Mark Dumay
bce38385ab Merge pull request #717 from gethinode/develop
Bump package release
2024-01-09 17:06:13 +01:00
mark
8848b126ca Bump package release 2024-01-09 16:45:48 +01:00
Mark Dumay
45a90fbe9d Merge pull request #716 from gethinode/main
Sync with main
2024-01-09 16:42:38 +01:00
Mark Dumay
d2929bf776 Merge pull request #715 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-09 15:58:59 +01:00
markdumay
3bab1c1250 fix: update Hugo module dependencies 2024-01-09 14:51:46 +00:00
github-actions[bot]
e59d4696da Merge pull request #714 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.6.2
Bump eslint-plugin-n from 16.6.1 to 16.6.2
2024-01-09 14:50:03 +00:00
dependabot[bot]
f44f74f34c Bump eslint-plugin-n from 16.6.1 to 16.6.2
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.6.1 to 16.6.2.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.6.1...16.6.2)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-09 13:47:03 +00:00
Mark Dumay
22474722ad Merge pull request #713 from gethinode/validation
Bump dependencies
2024-01-08 16:39:34 +01:00
Mark Dumay
99df503a90 Merge branch 'main' into validation 2024-01-08 15:21:59 +01:00
mark
0df055db8c Bump GitHub actions 2024-01-08 15:20:50 +01:00
github-actions[bot]
f73936d056 Merge pull request #712 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.118.1
Bump hugo-bin from 0.118.0 to 0.118.1
2024-01-08 13:28:24 +00:00
dependabot[bot]
e1c976e09a Bump hugo-bin from 0.118.0 to 0.118.1
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.118.0 to 0.118.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.118.0...v0.118.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 13:21:54 +00:00
Mark Dumay
21579f7a40 Merge pull request #710 from aefly/french-translation
Update `fr.yaml`
2024-01-06 10:10:51 +01:00
aefly
693882aff1 Update fr.yaml 2024-01-06 08:45:20 +01:00
mark
6b42ed0845 Bump DART_SASS_VERSION 2024-01-06 07:24:52 +01:00
Mark Dumay
ed9373bc7e Merge pull request #709 from gethinode/validation
Fix breakpoint-specific responsive behavior of tables
2024-01-06 06:34:53 +01:00
mark
0d2f5cc553 Fix linting issue 2024-01-06 06:24:29 +01:00
mark
12f6e9e552 Update build stats 2024-01-06 06:23:39 +01:00
mark
999c7a8fff Add table shortcode example 2024-01-06 06:23:28 +01:00
Mark Dumay
a5494f4681 Merge branch 'main' into validation 2024-01-06 06:11:02 +01:00
mark
404a5500df Bump package release 2024-01-06 06:09:46 +01:00
mark
4442833c1b Fix breakpoint-specific responsive behavior 2024-01-06 06:09:22 +01:00
mark
4cb800d485 Refine comments 2024-01-06 05:57:34 +01:00
Mark Dumay
f1598c3c4b Merge pull request #707 from gethinode/validation
Fix spacing
2024-01-05 15:49:07 +01:00
Mark Dumay
6b9915a425 Merge branch 'main' into validation 2024-01-05 15:17:46 +01:00
mark
59befa908f Fix spacing 2024-01-05 14:39:17 +01:00
Mark Dumay
af68fb24b5 Merge pull request #705 from gethinode/validation
Fix configuration of single module
2024-01-05 07:41:56 +01:00
Mark Dumay
73870663f6 Merge branch 'main' into validation 2024-01-05 07:09:59 +01:00
mark
ac48cf6b57 Bump package release 2024-01-05 07:09:09 +01:00
mark
6a5d4a1363 Fix configuration of single module 2024-01-05 07:08:53 +01:00
Mark Dumay
8be3996fb2 Merge pull request #704 from gethinode/validation
Fix missing illustration arg
2024-01-05 07:07:05 +01:00
Mark Dumay
bd7d2ffb09 Merge branch 'main' into validation 2024-01-05 07:01:26 +01:00
mark
9375248a09 Fix missing illustration arg 2024-01-04 16:00:59 +01:00
Mark Dumay
713d1920a3 Merge pull request #703 from gethinode/validation
Bump package release
2024-01-04 15:14:21 +01:00
Mark Dumay
adc1212cd7 Merge branch 'main' into validation 2024-01-04 14:56:10 +01:00
mark
b8803d75fe Bump package release 2024-01-04 14:55:34 +01:00
github-actions[bot]
8006acb8c9 Merge pull request #702 from gethinode/dependabot/npm_and_yarn/cssnano-preset-advanced-6.0.3
Bump cssnano-preset-advanced from 6.0.2 to 6.0.3
2024-01-04 13:38:16 +00:00
dependabot[bot]
7be7e3b7f0 Bump cssnano-preset-advanced from 6.0.2 to 6.0.3
Bumps [cssnano-preset-advanced](https://github.com/cssnano/cssnano) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano-preset-advanced@6.0.2...cssnano-preset-advanced@6.0.3)

---
updated-dependencies:
- dependency-name: cssnano-preset-advanced
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-04 13:32:05 +00:00
github-actions[bot]
a6c18c91e5 Merge pull request #701 from gethinode/dependabot/npm_and_yarn/cssnano-6.0.3
Bump cssnano from 6.0.2 to 6.0.3
2024-01-04 13:31:17 +00:00
dependabot[bot]
81c531e2b5 Bump cssnano from 6.0.2 to 6.0.3
Bumps [cssnano](https://github.com/cssnano/cssnano) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano@6.0.2...cssnano@6.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-04 13:24:59 +00:00
Mark Dumay
d66910740f Merge pull request #700 from gethinode/validation
Bump package release
2024-01-04 08:09:05 +01:00
Mark Dumay
3323bf500d Merge branch 'main' into validation 2024-01-03 19:00:21 +01:00
mark
3cc34d18e0 Bump package release 2024-01-03 18:59:49 +01:00
Mark Dumay
aeb050440f Merge pull request #699 from gethinode/validation
Fix alignment of cards in group
2024-01-03 17:34:29 +01:00
Mark Dumay
a9a6bd0d31 Merge branch 'main' into validation 2024-01-03 17:04:57 +01:00
Mark Dumay
2b921def52 Merge pull request #698 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-03 17:04:21 +01:00
mark
f5a1a97383 Fix alignment of cards in group 2024-01-03 16:59:05 +01:00
markdumay
c87b96f8f0 fix: update Hugo module dependencies 2024-01-03 15:57:10 +00:00
Mark Dumay
1def105bda Merge pull request #697 from gethinode/validation
Keep HTML whitespace to improve external cue visualization
2024-01-03 16:07:45 +01:00
Mark Dumay
1d67a30ece Merge branch 'main' into validation 2024-01-03 16:01:48 +01:00
mark
1a3d50ca17 Keep HTML whitespace to improve external cue visualiation 2024-01-03 15:40:30 +01:00
Mark Dumay
ce26722c96 Merge pull request #696 from gethinode/validation
Refactor argument validation of internal partials
2024-01-03 14:25:22 +01:00
Mark Dumay
f2aab26b6e Merge branch 'main' into validation 2024-01-03 14:15:39 +01:00
mark
10e086594b Structure validation of section-menu args 2024-01-03 14:11:37 +01:00
mark
30ea77182d Structure validation of sharing args 2024-01-03 14:06:53 +01:00
mark
e899d7d39a Structure validation of sidebar args 2024-01-03 13:39:48 +01:00
mark
3b2e780a20 Fix typo 2024-01-03 13:25:04 +01:00
mark
d443d89616 Structure validation of toc-dropdown args 2024-01-03 13:17:18 +01:00
mark
c981ac45d3 Structure validation of toc args 2024-01-03 13:11:15 +01:00
mark
ceabca3a43 Structure validation of section-header args 2024-01-03 13:03:04 +01:00
mark
99b6fcbc42 Adjust indentation 2024-01-03 12:59:06 +01:00
mark
dde79bf5d0 Structure validation of pagination args 2024-01-03 09:14:36 +01:00
mark
ff3e957558 Structure validation of page-alert args 2024-01-03 08:59:34 +01:00
mark
1466c7a927 Fix error message 2024-01-03 08:59:21 +01:00
mark
1a7c18d209 Structure validation of navbar-item args 2024-01-03 08:53:48 +01:00
mark
2c8ed7c494 Structure validation of list args 2024-01-03 08:02:42 +01:00
mark
0526b4c5e0 Adjust indentation 2024-01-03 08:02:04 +01:00
mark
c2f4e6bc48 Refine layout 2024-01-03 07:24:50 +01:00
mark
0cc5fcb33a Refine comments 2024-01-03 07:24:25 +01:00
mark
e461a9564f Adjust line breaks 2024-01-03 07:24:12 +01:00
Mark Dumay
183879d51c Merge pull request #695 from gethinode/validation
Drop built-in comments support
2024-01-02 15:53:53 +01:00
Mark Dumay
cddae05b53 Merge branch 'main' into validation 2024-01-02 15:44:49 +01:00
mark
67d831d898 Bump package release 2024-01-02 15:37:40 +01:00
mark
d726323220 Close #694 2024-01-02 15:36:45 +01:00
Mark Dumay
f76fea84cc Merge pull request #693 from gethinode/validation
Refine argument validation of modules
2024-01-02 15:23:00 +01:00
Mark Dumay
6ec24e12f7 Merge branch 'main' into validation 2024-01-02 15:07:11 +01:00
mark
cf27cce44d Bump package release 2024-01-02 15:05:31 +01:00
github-actions[bot]
6ea22d121f Merge pull request #692 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.6.1
Bump eslint-plugin-n from 16.6.0 to 16.6.1
2024-01-02 13:42:24 +00:00
dependabot[bot]
2d7bfaa9dc Bump eslint-plugin-n from 16.6.0 to 16.6.1
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.6.0 to 16.6.1.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.6.0...16.6.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-02 13:37:06 +00:00
Mark Dumay
0e62cc4fec Merge pull request #691 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-02 12:59:52 +01:00
markdumay
ae0307092f fix: update Hugo module dependencies 2024-01-02 11:03:20 +00:00
Mark Dumay
2ebf6fe7fa Merge pull request #690 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2024-01-02 12:02:32 +01:00
mark
f9805de74c Adjust display of min-max range 2024-01-02 11:47:24 +01:00
mark
20b7b6b95c Fix type of pre menu 2024-01-02 06:59:05 +01:00
mark
c2beca3504 Update copyright notice 2024-01-01 12:32:39 +01:00
markdumay
7414a1badf fix: update Hugo module dependencies 2023-12-31 03:16:34 +00:00
Mark Dumay
cd5f7e08c4 Merge pull request #689 from gethinode/validation
Move utilities to separate module
2023-12-30 11:49:46 +01:00
Mark Dumay
fd804fa29a Merge branch 'main' into validation 2023-12-30 11:26:26 +01:00
mark
08c310c59e Update netlify build env 2023-12-30 11:25:35 +01:00
mark
46bde0918f Move utilities to separate module 2023-12-30 11:25:28 +01:00
mark
a77c3aa347 Improve persona args 2023-12-30 06:46:04 +01:00
Mark Dumay
d27c04dc64 Merge pull request #688 from gethinode/validation
Refine args handling
2023-12-30 06:36:59 +01:00
Mark Dumay
b0c8326255 Merge branch 'main' into validation 2023-12-30 06:26:40 +01:00
mark
99a35a3ffd Bump package release 2023-12-30 06:26:07 +01:00
mark
c5673efea2 Refine sub and sup args 2023-12-30 06:14:07 +01:00
mark
c3b48e0033 Refine spinner args 2023-12-30 06:09:09 +01:00
mark
5aa57dd402 Refine release args 2023-12-30 06:04:42 +01:00
mark
d919d3f068 Refina nav-item args 2023-12-30 05:59:41 +01:00
mark
38ad418005 Support individual fade arg 2023-12-30 05:59:30 +01:00
mark
ba50786118 Refine nav-item comments 2023-12-29 19:14:04 +01:00
mark
aee3cb3e03 Refine nav args 2023-12-29 19:12:05 +01:00
mark
61430b07e2 Refine navbar args 2023-12-29 18:01:36 +01:00
mark
5d393598c5 Refine the mark args 2023-12-29 15:10:16 +01:00
mark
4b0c075b53 Refine the link args 2023-12-29 15:06:13 +01:00
github-actions[bot]
2b5b6434da Merge pull request #687 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.6.0
Bump eslint-plugin-n from 16.5.0 to 16.6.0
2023-12-29 14:01:36 +00:00
mark
ae0877037a Refine the image args 2023-12-29 14:59:08 +01:00
dependabot[bot]
64a12da2e6 Bump eslint-plugin-n from 16.5.0 to 16.6.0
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.5.0 to 16.6.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.5.0...16.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-29 13:56:13 +00:00
mark
6865fa40f7 Refine the file args 2023-12-29 14:51:00 +01:00
mark
79632aeed0 Use long form for ID 2023-12-29 14:46:27 +01:00
mark
6f03f3e5fd Refine the example args 2023-12-29 14:46:05 +01:00
mark
df53150972 Refine the docs args 2023-12-29 14:38:29 +01:00
mark
9282cd630d Add missing punctuation 2023-12-29 11:04:12 +01:00
mark
a3eb2fc7cc Refine carousel-item definition 2023-12-29 10:58:05 +01:00
mark
4e39d03240 Refine carousel definition 2023-12-29 10:53:45 +01:00
mark
8cadb30179 Refine button definition 2023-12-29 10:46:45 +01:00
mark
d2c02ca016 Add label alias 2023-12-29 10:46:30 +01:00
mark
1bbfba32a5 Support label alias 2023-12-29 10:45:46 +01:00
mark
cf59cc3a49 Make badge title required 2023-12-29 08:07:06 +01:00
mark
897db61ee2 Fix color of info alert 2023-12-29 08:01:58 +01:00
mark
ac14ac23fb Improve styling of elements 2023-12-29 08:01:43 +01:00
mark
0f1bc34d37 Improve card and card-group arg handling 2023-12-29 07:40:32 +01:00
mark
26d318356f Fix int range init 2023-12-29 06:35:24 +01:00
mark
9f4a0d35b6 Fix inline arg init 2023-12-29 06:17:01 +01:00
mark
a201be6487 Remove debug statement 2023-12-28 17:36:27 +01:00
Mark Dumay
380ebcd1d8 Merge pull request #686 from gethinode/validation
Fix purge settings and arg init
2023-12-28 17:34:07 +01:00
Mark Dumay
c06499033d Merge branch 'main' into validation 2023-12-28 17:17:49 +01:00
mark
0874957993 Bump package release 2023-12-28 17:16:56 +01:00
mark
6019c7412f Update build stats 2023-12-28 17:16:24 +01:00
mark
30c300cabf Fix bool args init 2023-12-28 17:16:16 +01:00
mark
46f11f02ab Fix default color 2023-12-28 17:03:21 +01:00
mark
71e6029117 Exclude embedded video styles from purging 2023-12-28 15:45:49 +01:00
Mark Dumay
5c67da7882 Merge pull request #685 from gethinode/validation
Fix args validation
2023-12-28 15:16:26 +01:00
Mark Dumay
af4f6de4b9 Merge branch 'main' into validation 2023-12-28 15:05:45 +01:00
mark
9b173d6c68 Bump package version 2023-12-28 15:04:59 +01:00
mark
2f4fb5230d Fix type conversion 2023-12-28 15:04:10 +01:00
mark
9144a1fec3 Fix args 2023-12-28 15:03:48 +01:00
mark
4192af1d46 Fix width arg 2023-12-28 15:02:44 +01:00
mark
0e72124cdc Fix cols arg 2023-12-28 15:02:25 +01:00
Mark Dumay
8300b9afee Merge pull request #684 from gethinode/validation
Fix args validation
2023-12-28 14:46:59 +01:00
Mark Dumay
5f61e74dfb Merge branch 'main' into validation 2023-12-28 14:40:46 +01:00
mark
44b3ccd21e Bump package release 2023-12-28 14:39:44 +01:00
mark
29e54ce7ec Fix accordion rendering 2023-12-28 14:38:58 +01:00
mark
f2835209c6 Fix rendering 2023-12-28 14:38:47 +01:00
mark
a0a1b8a9c0 Refactor table shortcode 2023-12-28 14:37:38 +01:00
mark
83f6ec1cb9 Fix persona args 2023-12-28 13:33:17 +01:00
mark
af5b07202e Fix image args 2023-12-28 13:25:27 +01:00
mark
0bcfa59a12 Fix error message 2023-12-28 13:25:03 +01:00
mark
e00095f68d Improve navbar validation error message 2023-12-28 07:38:29 +01:00
mark
5cbd2a1a82 Fix validation error message 2023-12-28 07:28:42 +01:00
mark
9b5a45a3f6 Fix kb args validation 2023-12-28 07:16:18 +01:00
Mark Dumay
325500620a Merge pull request #683 from gethinode/validation
Refactor remaining shortcodes
2023-12-27 17:17:56 +01:00
Mark Dumay
134bfa1a0b Merge branch 'main' into validation 2023-12-27 17:01:06 +01:00
mark
df593859fa Bump package release 2023-12-27 17:00:20 +01:00
mark
4204fae5a0 Fix file 2023-12-27 16:59:51 +01:00
mark
cc12c49143 Update build stats 2023-12-27 16:57:46 +01:00
mark
f09694da70 Remove empty line 2023-12-27 16:57:39 +01:00
mark
d923df2156 Refactor file shortcode 2023-12-27 16:56:08 +01:00
mark
71d1db456a Update comments 2023-12-27 16:45:16 +01:00
mark
ec0eaa2faa Update comments 2023-12-27 16:45:06 +01:00
mark
836cd21df2 Refactor example shortcode 2023-12-27 16:44:57 +01:00
mark
7a4c364b49 Fix indentation 2023-12-27 16:32:20 +01:00
mark
79f10ba724 Improve readability 2023-12-27 16:30:54 +01:00
mark
d0ea4ecd1b Refactor docs shortcode 2023-12-27 16:30:18 +01:00
mark
867e448e21 Refactor command shortcode 2023-12-27 16:01:36 +01:00
mark
50a07d368f Refactor collapse shortcode 2023-12-27 15:44:33 +01:00
mark
21e2435350 Fix error check 2023-12-27 15:37:34 +01:00
mark
0dab66f24c Refactor button-group shortcode 2023-12-27 15:37:25 +01:00
mark
827595ded2 Refactor carousel partial and shortcode 2023-12-27 15:23:12 +01:00
mark
fda99f18e8 Update comments 2023-12-27 15:22:50 +01:00
mark
c9b76c9bc4 Refine comments 2023-12-27 15:22:31 +01:00
mark
3e2e2de482 Refactor kbd shortcode 2023-12-27 14:53:57 +01:00
Mark Dumay
d648873e21 Merge pull request #682 from gethinode/validation
Refactor image partial and shortcode
2023-12-27 14:47:35 +01:00
Mark Dumay
2490b26277 Merge branch 'main' into validation 2023-12-27 14:42:01 +01:00
mark
66ccd7a71d Refactor image partial and shortcode 2023-12-27 14:41:00 +01:00
mark
4ef440d499 Remove comments 2023-12-27 14:40:09 +01:00
Mark Dumay
e334dd1d10 Merge pull request #681 from gethinode/validation
Refactor sub, sup, spinner, release, persona, navbar, nav, mark, and link
2023-12-27 10:01:17 +01:00
Mark Dumay
c7e62acf9d Merge branch 'main' into validation 2023-12-27 09:47:24 +01:00
mark
f44adf92b4 Refactor link partial and shortcode 2023-12-27 09:45:28 +01:00
mark
87cd07801d Adjust indentation 2023-12-27 09:20:39 +01:00
mark
24e96e2724 Refactor mark shortcode 2023-12-27 09:20:29 +01:00
mark
a5f5a9ff24 Refactor nav partial and shortcode 2023-12-27 09:12:24 +01:00
mark
dd19b8a236 Adjust indentation 2023-12-27 09:11:55 +01:00
mark
0a80f40c07 Refactor navbar 2023-12-27 08:04:29 +01:00
mark
772cc97a8b Refine unsupported args test to consider groups 2023-12-27 07:27:27 +01:00
mark
ce7f1d6c26 Add persona example 2023-12-27 07:26:28 +01:00
mark
a41994fc0f Refactor persona shortcode and partial 2023-12-27 07:26:13 +01:00
mark
6e42a729e7 Adjust content padding on smaller screens 2023-12-27 07:25:35 +01:00
mark
33a634e4fc Refactor release shortcode 2023-12-26 17:45:45 +01:00
mark
fc61c52939 Refactor spinner 2023-12-26 17:11:24 +01:00
mark
5e4ff5b780 Fix spacing 2023-12-26 17:00:16 +01:00
mark
2e5903abed Refactor sub and sup shortcodes 2023-12-26 16:44:48 +01:00
Mark Dumay
62db8f574f Merge pull request #680 from gethinode/validation
Refactor table shortcode
2023-12-26 10:09:02 +01:00
Mark Dumay
d44ee41268 Merge branch 'main' into validation 2023-12-26 09:22:13 +01:00
mark
6baadfef75 Refactor table shortcode 2023-12-26 09:21:45 +01:00
Mark Dumay
fbec6a9b35 Merge pull request #679 from gethinode/validation
Refactor youtube, tooltip, toast, and timeline shortcodes / partials
2023-12-26 09:21:18 +01:00
Mark Dumay
197d9359dd Merge branch 'main' into validation 2023-12-26 09:14:00 +01:00
mark
fa083e0bde Update build stats 2023-12-26 09:12:30 +01:00
mark
1cf427fddd Improve display of positional args 2023-12-26 09:12:20 +01:00
mark
819e9e89dc Refine validation of permitted values 2023-12-26 09:12:01 +01:00
mark
900632c5f5 Refactor timeline shortcode 2023-12-26 09:10:20 +01:00
mark
dc66a4334f Refactor toast partial and shortcode 2023-12-26 07:42:16 +01:00
mark
badbe334df Improve layout 2023-12-26 07:42:00 +01:00
mark
fa334d6e84 Add license info 2023-12-26 07:20:08 +01:00
mark
9580d4e72e Add version partial comments 2023-12-26 07:19:55 +01:00
mark
252257be8b Change indentation 2023-12-26 07:19:41 +01:00
mark
04c253995f Refactor tooltip 2023-12-26 07:19:30 +01:00
mark
8c007fd627 Fix rendering of default values 2023-12-26 07:10:22 +01:00
mark
afcd59e1a4 Refactor youtube shortcode 2023-12-26 06:50:36 +01:00
mark
bba0ecad63 Fix typo 2023-12-26 06:50:21 +01:00
Mark Dumay
c1058ac665 Merge pull request #678 from aefly/french-translation
Update French translation
2023-12-26 06:05:41 +01:00
aefly
b891fcdc4f update fourth-post.md 2023-12-25 19:36:39 +01:00
aefly
3bea9dfc8f Update fourth-post.md with the latest hinode version 2023-12-25 19:32:20 +01:00
aefly
4d99d7dfc4 Update fr.yaml with the latest hinode version 2023-12-25 19:32:10 +01:00
Mark Dumay
373b8eddeb Merge pull request #677 from gethinode/validation
Refactor button
2023-12-25 15:49:29 +01:00
Mark Dumay
d463d1feb3 Merge branch 'main' into validation 2023-12-25 15:40:36 +01:00
mark
48a96a8d79 Refactor button 2023-12-25 15:39:57 +01:00
mark
0e1128aba3 Fix error message 2023-12-25 15:39:41 +01:00
Mark Dumay
c3be4957ba Merge pull request #675 from gethinode/validation
Refactor breadcrumb
2023-12-25 15:38:46 +01:00
Mark Dumay
3618aadf74 Merge branch 'main' into validation 2023-12-25 15:31:07 +01:00
github-actions[bot]
74a8c36c74 Merge pull request #676 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.118.0
Bump hugo-bin from 0.117.1 to 0.118.0
2023-12-25 13:59:13 +00:00
dependabot[bot]
49aa52b36f Bump hugo-bin from 0.117.1 to 0.118.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.117.1 to 0.118.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.117.1...v0.118.0)

---
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-12-25 13:54:02 +00:00
Mark Dumay
ee95a05b48 Merge branch 'main' into validation 2023-12-25 14:46:27 +01:00
mark
134e544718 Refactor breadcrumb 2023-12-25 14:45:30 +01:00
Mark Dumay
306a767686 Merge pull request #674 from gethinode/validation
Refactor badge and card-group
2023-12-25 14:43:49 +01:00
Mark Dumay
47ca9d303a Merge branch 'main' into validation 2023-12-25 14:31:05 +01:00
mark
6fc68fe540 Refactor badge 2023-12-25 14:10:39 +01:00
mark
9195bd7f4e Remove empty line 2023-12-25 14:10:29 +01:00
mark
4ef503e07f Remove unsupported args 2023-12-25 14:03:07 +01:00
mark
4711139513 Refine cascading args 2023-12-25 14:02:55 +01:00
mark
fc56508b91 Update code comments 2023-12-25 14:02:40 +01:00
mark
232c78364f Refactor card group 2023-12-25 14:02:29 +01:00
mark
d85e16f1fa Support child args 2023-12-25 14:02:05 +01:00
mark
562b386cb5 Add option to filter for args with parent 2023-12-25 12:45:47 +01:00
Mark Dumay
daab751299 Merge pull request #673 from gethinode/validation
Refactor alert and args shortcodes
2023-12-25 09:07:31 +01:00
Mark Dumay
9e82ff8de5 Merge branch 'main' into validation 2023-12-25 08:59:10 +01:00
mark
52b2c23565 Bump package release 2023-12-25 08:58:17 +01:00
mark
617fd688db Refactor args shortcode 2023-12-25 08:47:36 +01:00
mark
2cf7fff3ba Refactor alert 2023-12-25 08:31:27 +01:00
Mark Dumay
a34d3fde1f Merge pull request #672 from gethinode/validation
Refactor abbr and accordion shortcodes
2023-12-25 08:29:09 +01:00
Mark Dumay
be054a723e Merge branch 'main' into validation 2023-12-25 08:03:42 +01:00
mark
fc43f6a52e Refine comments 2023-12-25 08:03:13 +01:00
mark
195d3cb69b Refactor accordion 2023-12-25 08:03:06 +01:00
mark
92c69b6011 Fix empty args 2023-12-25 07:27:08 +01:00
mark
ea78805587 Support bool, int, and float represented as string 2023-12-25 06:53:16 +01:00
mark
76e90ea321 Fix required arguments test 2023-12-25 06:52:07 +01:00
mark
b300758aa5 Update build stats 2023-12-25 05:55:56 +01:00
mark
68c44c55d4 Refactor abbr shortcode 2023-12-25 05:55:47 +01:00
mark
228a89f61d Support unnamed args 2023-12-25 05:55:25 +01:00
mark
2645453de2 Update card comments 2023-12-25 04:57:56 +01:00
mark
5ce069a4c0 Improve handling of module args 2023-12-24 14:59:35 +01:00
Mark Dumay
6661434c35 Merge pull request #671 from gethinode/validation
Improve argument validation and documentation
2023-12-24 14:57:51 +01:00
Mark Dumay
aee6b3a32d Merge branch 'main' into validation 2023-12-24 14:50:16 +01:00
mark
4b0cc260cb Bump package release 2023-12-24 14:48:24 +01:00
mark
7611315941 Remove redundant comments 2023-12-24 14:47:47 +01:00
mark
3b1f71a601 Update build stats 2023-12-24 14:47:20 +01:00
mark
fead3555fc Support release info 2023-12-24 14:47:01 +01:00
mark
cd3f99fc90 Fix aria label 2023-12-24 14:27:21 +01:00
mark
a2e6855117 Refactor required args check 2023-12-24 14:27:04 +01:00
mark
1e4cd3a5da Handle empty args 2023-12-24 14:26:51 +01:00
Mark Dumay
865898ac4f Merge pull request #670 from gethinode/validation
Refactor argument validation and documentation
2023-12-24 12:03:50 +01:00
Mark Dumay
44ace26cde Merge branch 'main' into validation 2023-12-24 11:55:17 +01:00
mark
d0350c7672 Bump package release 2023-12-24 11:54:25 +01:00
mark
943a115ef0 Update build stats 2023-12-24 11:53:19 +01:00
mark
745322b3fe Add args shortcode to render structured arguments 2023-12-24 11:53:10 +01:00
mark
90ea2cb760 Refactor card args validation 2023-12-24 11:52:18 +01:00
Mark Dumay
2d6c3c7d64 Merge pull request #667 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-12-22 06:51:30 +01:00
markdumay
4401c49c54 fix: update Hugo module dependencies 2023-12-22 05:46:02 +00:00
github-actions[bot]
fa3bfa7008 Merge pull request #665 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.5.0
Bump eslint-plugin-n from 16.4.0 to 16.5.0
2023-12-20 13:58:37 +00:00
dependabot[bot]
14c2ddc725 Bump eslint-plugin-n from 16.4.0 to 16.5.0
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.4.0 to 16.5.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.4.0...16.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 13:52:36 +00:00
Mark Dumay
1e55dc8f65 Merge pull request #664 from uvham521/feature/chinese-support
Add Chinese translation files
2023-12-19 14:09:32 +01:00
uvham521
78980dde3f Add Chinese translation files 2023-12-19 11:59:48 +00:00
github-actions[bot]
3a770b6f40 Merge pull request #662 from gethinode/dependabot/npm_and_yarn/eslint-8.56.0
Bump eslint from 8.55.0 to 8.56.0
2023-12-18 13:25:07 +00:00
dependabot[bot]
b271adef3f Bump eslint from 8.55.0 to 8.56.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.55.0 to 8.56.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.55.0...v8.56.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-12-18 13:19:12 +00:00
Mark Dumay
639c9770b8 Merge pull request #661 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-12-17 06:34:31 +01:00
markdumay
e6b29666ad fix: update Hugo module dependencies 2023-12-17 03:16:31 +00:00
Mark Dumay
dd052250f6 Merge pull request #660 from gethinode/develop
Add support for absolute paths
2023-12-16 08:12:10 +01:00
mark
1223a22d7e Bump package version 2023-12-16 08:03:31 +01:00
mark
b6f034f8e3 Add support for absolute paths 2023-12-16 08:03:07 +01:00
mark
ca01b67396 Mount data folder 2023-12-16 07:53:12 +01:00
Mark Dumay
eb3a2b0bb1 Merge pull request #659 from gethinode/main
Sync with main
2023-12-16 07:42:47 +01:00
Mark Dumay
41711fb527 Merge pull request #658 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-12-16 07:32:09 +01:00
markdumay
6e7a9a8796 fix: update Hugo module dependencies 2023-12-16 06:25:10 +00:00
github-actions[bot]
92838c0572 Merge pull request #657 from gethinode/dependabot/npm_and_yarn/cssnano-6.0.2
Bump cssnano from 6.0.1 to 6.0.2
2023-12-15 13:37:12 +00:00
dependabot[bot]
3f71da19ee Bump cssnano from 6.0.1 to 6.0.2
Bumps [cssnano](https://github.com/cssnano/cssnano) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano@6.0.1...cssnano@6.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 13:30:07 +00:00
github-actions[bot]
43a6dd2b79 Merge pull request #655 from gethinode/dependabot/npm_and_yarn/cssnano-preset-advanced-6.0.2
Bump cssnano-preset-advanced from 6.0.1 to 6.0.2
2023-12-15 13:29:26 +00:00
dependabot[bot]
806fac97db Bump cssnano-preset-advanced from 6.0.1 to 6.0.2
Bumps [cssnano-preset-advanced](https://github.com/cssnano/cssnano) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/compare/cssnano-preset-advanced@6.0.1...cssnano-preset-advanced@6.0.2)

---
updated-dependencies:
- dependency-name: cssnano-preset-advanced
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 13:24:01 +00:00
github-actions[bot]
9fd07827db Merge pull request #656 from gethinode/dependabot/npm_and_yarn/eslint-plugin-import-2.29.1
Bump eslint-plugin-import from 2.29.0 to 2.29.1
2023-12-15 13:23:20 +00:00
dependabot[bot]
28cdcec7ee Bump eslint-plugin-import from 2.29.0 to 2.29.1
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.29.0 to 2.29.1.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.29.0...v2.29.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-15 13:18:05 +00:00
github-actions[bot]
cb2e946435 Merge pull request #654 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.4.0
Bump eslint-plugin-n from 16.3.1 to 16.4.0
2023-12-11 13:57:51 +00:00
dependabot[bot]
2e7bb50d43 Bump eslint-plugin-n from 16.3.1 to 16.4.0
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.3.1 to 16.4.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.3.1...16.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 13:52:03 +00:00
github-actions[bot]
3d7875ba18 Merge pull request #653 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.117.1
Bump hugo-bin from 0.117.0 to 0.117.1
2023-12-08 13:20:14 +00:00
dependabot[bot]
29ab88d581 Bump hugo-bin from 0.117.0 to 0.117.1
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.117.0 to 0.117.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.117.0...v0.117.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-08 13:14:49 +00:00
Mark Dumay
d93bbe4fe3 Merge pull request #652 from gethinode/develop
Update Netlify build environment
2023-12-07 06:20:19 +01:00
mark
3a2d062e22 Update netlify env 2023-12-07 06:01:29 +01:00
mark
c3ef897a71 Bump package version 2023-12-07 05:58:21 +01:00
Mark Dumay
73964e6be4 Merge pull request #651 from gethinode/main
Sync with main
2023-12-07 05:50:40 +01:00
Mark Dumay
520c000d3b Merge pull request #648 from gethinode/nested
Fix nesting behavior
2023-12-07 05:42:43 +01:00
Mark Dumay
e3c1db7b88 Merge branch 'main' into nested 2023-12-07 05:27:09 +01:00
github-actions[bot]
9ba3218f61 Merge pull request #650 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.117.0
Bump hugo-bin from 0.116.4 to 0.117.0
2023-12-06 14:03:21 +00:00
dependabot[bot]
a912d65608 Bump hugo-bin from 0.116.4 to 0.117.0
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.116.4 to 0.117.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.116.4...v0.117.0)

---
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-12-06 13:57:08 +00:00
github-actions[bot]
ffd6bb9c46 Merge pull request #649 from gethinode/dependabot/npm_and_yarn/postcss-cli-11.0.0
Bump postcss-cli from 10.1.0 to 11.0.0
2023-12-06 13:55:58 +00:00
dependabot[bot]
6a238c3a11 Bump postcss-cli from 10.1.0 to 11.0.0
Bumps [postcss-cli](https://github.com/postcss/postcss-cli) from 10.1.0 to 11.0.0.
- [Release notes](https://github.com/postcss/postcss-cli/releases)
- [Changelog](https://github.com/postcss/postcss-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss-cli/compare/10.1.0...11.0.0)

---
updated-dependencies:
- dependency-name: postcss-cli
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 13:50:57 +00:00
Mark Dumay
3210d72068 Merge branch 'main' into nested 2023-12-06 11:18:25 +01:00
mark
add57592cd Fix default nested behavior 2023-12-06 06:30:04 +01:00
Mark Dumay
584131c8c4 Merge pull request #647 from florianloewen/fix-clipboard-typos
Fix German translations for clipboard interactions
2023-12-05 06:41:39 +01:00
Florian Loewen
9e8a1b4e3d Update German translations for clipboard interactions 2023-12-05 00:32:16 +01:00
github-actions[bot]
61efc2de16 Merge pull request #646 from gethinode/dependabot/npm_and_yarn/eslint-8.55.0
Bump eslint from 8.54.0 to 8.55.0
2023-12-04 14:05:19 +00:00
dependabot[bot]
ce1f688b38 Bump eslint from 8.54.0 to 8.55.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.54.0 to 8.55.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.54.0...v8.55.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-12-04 13:58:36 +00:00
mark
088464bf13 Improve nested behavior 2023-11-25 08:28:28 +01:00
Mark Dumay
936ca3ffc2 Merge pull request #643 from gethinode/develop
Fix flexsearch index
2023-11-24 16:24:01 +01:00
mark
4f6320f7cf Bump package release 2023-11-24 16:15:29 +01:00
mark
ccf3169381 Update build stats 2023-11-24 16:15:21 +01:00
Mark Dumay
54d66d2b02 Merge pull request #642 from gethinode/main
Sync with main
2023-11-24 16:12:12 +01:00
Mark Dumay
25aeb94364 Merge pull request #641 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-11-24 16:03:58 +01:00
markdumay
5657ef5b40 fix: update Hugo module dependencies 2023-11-24 14:32:59 +00:00
Mark Dumay
c8818d104f Merge pull request #640 from gethinode/develop
Add option to exclude pages from search index
2023-11-23 12:15:40 +01:00
mark
ed239034bf Bump package version 2023-11-23 10:53:54 +01:00
mark
774f936d3b Add example to exclude page from search index 2023-11-23 10:53:15 +01:00
Mark Dumay
905c28886a Merge pull request #639 from gethinode/main
Sync with main
2023-11-23 10:46:46 +01:00
Mark Dumay
ad430074f7 Merge pull request #637 from gethinode/hugo-mod-dependencies
Update Hugo module dependencies
2023-11-23 10:33:34 +01:00
Mark Dumay
6449f01185 Merge branch 'main' into hugo-mod-dependencies 2023-11-23 07:46:15 +01:00
github-actions[bot]
0c3488472c Merge pull request #634 from gethinode/dependabot/npm_and_yarn/markdownlint-cli2-0.11.0
Bump markdownlint-cli2 from 0.10.0 to 0.11.0
2023-11-23 06:36:39 +00:00
Mark Dumay
ee7990ec1e Merge branch 'main' into dependabot/npm_and_yarn/markdownlint-cli2-0.11.0 2023-11-23 07:30:55 +01:00
Mark Dumay
b892b48388 Merge pull request #638 from gethinode/develop
Fix linting issues
2023-11-23 07:30:43 +01:00
Mark Dumay
340213e4ff Merge branch 'main' into develop 2023-11-23 07:22:06 +01:00
mark
989f2eed4c Fix linting issues 2023-11-23 07:21:16 +01:00
markdumay
4fadb7a6ab fix: update Hugo module dependencies 2023-11-23 03:16:45 +00:00
dependabot[bot]
8f1fd120eb Bump markdownlint-cli2 from 0.10.0 to 0.11.0
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.10.0 to 0.11.0.
- [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.10.0...v0.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 13:16:20 +00:00
github-actions[bot]
f2fc3b60a4 Merge pull request #635 from gethinode/dependabot/npm_and_yarn/eslint-8.54.0
Bump eslint from 8.53.0 to 8.54.0
2023-11-20 13:15:34 +00:00
dependabot[bot]
c0735f71ef Bump eslint from 8.53.0 to 8.54.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.53.0 to 8.54.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.53.0...v8.54.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-11-20 13:09:54 +00:00
Mark Dumay
858f9b3430 Merge pull request #632 from gethinode/develop
Make tags page sidebar aware
2023-11-14 14:47:27 +01:00
Mark Dumay
402a7a85b8 Merge branch 'main' into develop 2023-11-14 13:54:26 +01:00
mark
97fbc6087c Make tags page sidebar aware 2023-11-14 13:53:37 +01:00
Mark Dumay
cc4a4766a9 Merge pull request #631 from gethinode/develop
Make page breakpoint configurable
2023-11-14 13:01:08 +01:00
Mark Dumay
6821ac2b60 Merge branch 'main' into develop 2023-11-14 12:10:40 +01:00
mark
06e10655ec Bump package release 2023-11-14 12:10:07 +01:00
mark
d32fdfa987 Make page breakpoint configurable 2023-11-14 12:09:16 +01:00
mark
9e97f063e5 Update build stats 2023-11-14 12:06:41 +01:00
mark
627f174ae4 Fix duplicate rendering of section body 2023-11-14 12:06:26 +01:00
Mark Dumay
c349c28f08 Merge pull request #630 from gethinode/develop
Improve list overview of subsections
2023-11-13 12:49:40 +01:00
Mark Dumay
e73f96ffe9 Merge branch 'main' into develop 2023-11-13 11:53:02 +01:00
mark
bd4ab51aff Improve list overview of subsections 2023-11-13 11:52:15 +01:00
Mark Dumay
81823c35ec Merge pull request #629 from gethinode/develop
Fix variable scope error
2023-11-12 17:55:05 +01:00
Mark Dumay
c567949205 Merge branch 'main' into develop 2023-11-12 15:32:19 +01:00
mark
def136cb1b Fix variable scope error 2023-11-12 15:31:55 +01:00
Mark Dumay
889dc2e5ef Merge pull request #628 from gethinode/develop
Fix spacing of timeline icons
2023-11-11 17:01:08 +01:00
Mark Dumay
371323f929 Merge branch 'main' into develop 2023-11-11 16:56:03 +01:00
mark
1694702d11 Fix spacing of timeline icons 2023-11-11 16:55:36 +01:00
Mark Dumay
048f50ddc4 Merge pull request #627 from gethinode/develop
Add check for vector image availability
2023-11-10 19:34:22 +01:00
Mark Dumay
488cfc576b Merge branch 'main' into develop 2023-11-10 18:25:39 +01:00
mark
1d8e564acf Update package version 2023-11-10 18:25:02 +01:00
mark
6e94bc279b Add check for vector image availability 2023-11-10 18:24:31 +01:00
github-actions[bot]
90ee15cccf Merge pull request #626 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.3.1
Bump eslint-plugin-n from 16.3.0 to 16.3.1
2023-11-10 13:46:56 +00:00
dependabot[bot]
751ff334ac Bump eslint-plugin-n from 16.3.0 to 16.3.1
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.3.0 to 16.3.1.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.3.0...16.3.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-10 13:41:17 +00:00
Mark Dumay
c200af1ad2 Merge pull request #625 from gethinode/develop
Add fetch priority support for images
2023-11-10 07:10:18 +01:00
Mark Dumay
5232afa812 Merge branch 'main' into develop 2023-11-10 06:57:17 +01:00
mark
ad8e2f51d7 Add fetch priority support for images
The priority provides a hint to the browser on how it should prioritize the fetch of an image relative to other
images. The implementation is experimental and currently only supported by Chrome, Edge, and Opera.

Hinode sets a high priority for the thumbnail image. On list pages, this image is included in the featured section. For single pages, the thumbnail is included in the page header. Carousel images that are not active will receive a low fetch priority. All other images are unchanged.

See https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/fetchpriority#browser_compatibility for browser compatibility.
2023-11-10 06:56:30 +01:00
Mark Dumay
ff708cf580 Merge pull request #624 from gethinode/develop
Fix styles of embedded youtube videos
2023-11-09 18:31:19 +01:00
Mark Dumay
f93ee9f01b Merge branch 'main' into develop 2023-11-09 18:18:22 +01:00
mark
611320e661 Bump package release 2023-11-09 18:17:47 +01:00
mark
8a56d82cb9 Fix styles of embedded youtube videos 2023-11-09 18:16:59 +01:00
Mark Dumay
c052086388 Merge pull request #623 from gethinode/develop
Add language to download title if applicable
2023-11-09 17:27:37 +01:00
Mark Dumay
d4bfbf925a Merge branch 'main' into develop 2023-11-09 17:02:28 +01:00
mark
b6b7e7be4f Add language to download title if applicable 2023-11-09 16:59:18 +01:00
github-actions[bot]
61ef48798b Merge pull request #622 from gethinode/dependabot/npm_and_yarn/hugo-bin-0.116.4
Bump hugo-bin from 0.116.3 to 0.116.4
2023-11-09 13:32:04 +00:00
dependabot[bot]
d65382e80d Bump hugo-bin from 0.116.3 to 0.116.4
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.116.3 to 0.116.4.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.116.3...v0.116.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-09 13:24:53 +00:00
Mark Dumay
e97d3e6fe9 Merge pull request #621 from gethinode/develop
Fix incorrect class init of thumbnails
2023-11-07 16:28:01 +01:00
Mark Dumay
5cb189d545 Merge branch 'main' into develop 2023-11-07 16:14:38 +01:00
mark
7897fe5f00 Bump package release 2023-11-07 16:13:45 +01:00
mark
6c4e0e8992 Fix incorrect class init 2023-11-07 16:13:10 +01:00
Mark Dumay
3c6a533236 Merge pull request #620 from gethinode/develop
Fix empty class attributes
2023-11-07 15:53:21 +01:00
Mark Dumay
69a9108655 Merge branch 'main' into develop 2023-11-07 15:42:02 +01:00
mark
4fdc7bb7d3 Bump release version and adjust optional dependencies 2023-11-07 15:41:05 +01:00
mark
170bd7034a Update build stats 2023-11-07 15:40:42 +01:00
mark
2bc99753d6 Fix empty class attributes 2023-11-07 15:31:54 +01:00
Mark Dumay
3ae1671b46 Merge pull request #619 from gethinode/develop
Improve configurability of single pages
2023-11-07 14:54:33 +01:00
Mark Dumay
4b9f137d41 Merge branch 'main' into develop 2023-11-07 14:44:37 +01:00
mark
651f733622 Update build environment 2023-11-07 14:43:09 +01:00
github-actions[bot]
a2b0c2c05f Merge pull request #618 from gethinode/dependabot/npm_and_yarn/eslint-plugin-n-16.3.0
Bump eslint-plugin-n from 16.2.0 to 16.3.0
2023-11-07 13:38:06 +00:00
mark
21476927ef Update build stats 2023-11-07 14:27:25 +01:00
mark
8c86081271 Support configurable thumbnail ratio 2023-11-07 14:27:17 +01:00
mark
fe5e94d277 Add download option to sharing buttons 2023-11-07 14:26:57 +01:00
mark
585db8094e Support related content 2023-11-07 14:26:22 +01:00
mark
4bcc536d42 Suppress empty more button 2023-11-07 14:26:00 +01:00
mark
b22c2e5ca5 Make metadata of single page header configurable 2023-11-07 14:25:43 +01:00
mark
715b714781 Make rendering of single page content configurable 2023-11-07 14:24:13 +01:00
mark
1d4b95a827 Refactor TOC for single pages 2023-11-07 14:22:38 +01:00
dependabot[bot]
0530a01445 Bump eslint-plugin-n from 16.2.0 to 16.3.0
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 16.2.0 to 16.3.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.2.0...16.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-07 13:22:19 +00:00
mark
2a29eba66e Bump package release 2023-11-07 14:10:10 +01:00
mark
e93b66f4b8 Update build stats 2023-11-07 06:29:33 +01:00
mark
44bb9d7f12 Add message when no tags are found 2023-11-07 06:29:27 +01:00
179 changed files with 4802 additions and 3002 deletions

View File

@@ -20,10 +20,10 @@ jobs:
steps:
- name: Check out repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'npm'
@@ -49,10 +49,10 @@ jobs:
steps:
- name: Check out repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

View File

@@ -14,10 +14,10 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'npm'

View File

@@ -21,10 +21,10 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup .npmrc file to publish to npm
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
registry-url: ${{ env.REGISTRY_URL }}

View File

@@ -6,7 +6,9 @@
"MD026": false,
"MD034": false,
"MD051": false,
"MD053": false
"MD053": false,
"MD055": false,
"MD056": false
},
"ignores": ["node_modules", "CHANGELOG.md"]
}

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2023 Mark Dumay
Copyright (c) 2024 Mark Dumay
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -9,32 +9,32 @@
<!-- Badges -->
<p align="center">
<a href="https://gohugo.io" alt="Hugo website">
<img src="https://img.shields.io/badge/generator-hugo-brightgreen">
<a href="https://gohugo.io">
<img src="https://img.shields.io/badge/generator-hugo-brightgreen" alt="Hugo website">
</a>
<a href="https://gethinode.com" alt="Hinode theme">
<img src="https://img.shields.io/badge/theme-hinode-blue">
<a href="https://gethinode.com">
<img src="https://img.shields.io/badge/theme-hinode-blue" alt="Hinode theme">
</a>
<a href="https://www.npmjs.com/package/%40gethinode/hinode" alt="npm package">
<img src="https://img.shields.io/npm/v/%40gethinode/hinode">
<a href="https://www.npmjs.com/package/%40gethinode/hinode">
<img src="https://img.shields.io/npm/v/%40gethinode/hinode" alt="npm package">
</a>
<a href="https://app.netlify.com/sites/gethinode-demo/deploys" alt="Netlify Status">
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67">
<a href="https://app.netlify.com/sites/gethinode-demo/deploys">
<img src="https://img.shields.io/netlify/0ad42e3e-fdfa-4d37-8e26-58badd429a67" alt="Netlify Status">
</a>
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb">
<a href="https://stats.uptimerobot.com/xyGVYhLJmV">
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb" alt="UptimeRobot Status">
</a>
<a href="https://github.com/gethinode/hinode/commits/main" alt="Last commit">
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg">
<a href="https://github.com/gethinode/hinode/commits/main">
<img src="https://img.shields.io/github/last-commit/gethinode/hinode.svg" alt="Last commit">
</a>
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg">
<a href="https://github.com/gethinode/hinode/issues">
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg" alt="Issues">
</a>
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg">
<a href="https://github.com/gethinode/hinode/pulls">
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg" alt="Pulls">
</a>
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
<img src="https://img.shields.io/github/license/gethinode/hinode">
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/gethinode/hinode" alt="License">
</a>
</p>
@@ -136,7 +136,6 @@ The `hinode`, `docs`, and `template` codebase is released under the [MIT license
[npm]: https://www.npmjs.com
[observatory]: https://observatory.mozilla.org/analyze/demo.gethinode.com
[pagespeed]: https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F
[utterances]: https://utteranc.es
<!-- MARKDOWN MAINTAINED LINKS -->
[contribute]: https://gethinode.com/contribute

BIN
assets/img/creator-1x1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 MiB

View File

@@ -24,7 +24,6 @@
@import "components/carousel.scss";
@import "components/clipboard.scss";
@import "components/command.scss";
@import "components/comments.scss";
@import "components/feature.scss";
@import "components/footer.scss";
@import "components/nav.scss";
@@ -38,7 +37,7 @@
@import "components/table.scss";
@import "components/timeline.scss";
@import "components/toc.scss";
@import "components/vimeo.scss";
@import "components/video.scss";
@import "common/animation.scss";
@import "common/styles.scss";
@import "layouts/reboot.scss";

View File

@@ -22,7 +22,6 @@
@import "components/carousel.scss";
@import "components/clipboard.scss";
@import "components/command.scss";
@import "components/comments.scss";
@import "components/feature.scss";
@import "components/footer.scss";
@import "components/nav.scss";
@@ -36,7 +35,7 @@
@import "components/table.scss";
@import "components/timeline.scss";
@import "components/toc.scss";
@import "components/vimeo.scss";
@import "components/video.scss";
@import "common/animation.scss";
@import "common/styles.scss";
@import "layouts/reboot.scss";

View File

@@ -1,20 +0,0 @@
.utterances {
position: relative;
box-sizing: border-box;
width: 100%;
max-width: 760px;
margin-left: auto;
margin-right: auto;
}
.utterances-frame {
color-scheme: light;
position: absolute;
left: 0;
right: 0;
width: 1px;
min-width: 100%;
max-width: 100%;
height: 100%;
border: 0;
}

View File

@@ -1,3 +1,19 @@
.youtube-embedded {
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
}
.youtube-embedded > iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border:0;
}
// Adapted from https://github.com/gohugoio/hugo/tpl/tplimpl/embedded/templates/shortcodes/vimeo_simple.html
.__h_video {
position: relative;

View File

@@ -1,6 +1,6 @@
# toml-docs-start main
title = "Hinode"
copyright = "Copyright © 2023 Mark Dumay."
copyright = "Copyright © 2024 Mark Dumay."
paginate = 9
enableGitInfo = true
# toml-docs-end main
@@ -89,6 +89,8 @@ home = ["HTML", "RSS", "REDIR"]
keepVarNames = true
precision = 0
version = 2022
[minify.tdewolff.html]
keepWhitespace = true
[module]
[module.hugoVersion]
@@ -104,6 +106,9 @@ home = ["HTML", "RSS", "REDIR"]
[[module.mounts]]
source = "content"
target = "content"
[[module.mounts]]
source = "data"
target = "data"
[[module.mounts]]
source = "i18n"
target = "i18n"
@@ -129,4 +134,6 @@ home = ["HTML", "RSS", "REDIR"]
path = "github.com/gethinode/mod-leaflet"
[[module.imports]]
path = "github.com/gethinode/mod-lottie"
[[module.imports]]
path = "github.com/gethinode/mod-utils"
# toml-docs-end modules

View File

@@ -8,6 +8,7 @@
endorse = true
footerBelowFold = false
loading = "lazy"
breakpoint = "md"
[main.externalLinks]
cue = false
tab = false
@@ -188,14 +189,5 @@
images = ["logo.png"]
locale = "en_US"
[comments]
enabled = false
repo = "" # Replace with your repository.
#issueTerm = "pathname" # pathname, url, title, og:title
#label = "comment"
# By default, light and dark mode correspond to github-light and github-dark, respectively.
# Optional values: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-blue, photon-dark.
#theme = ""
[links]
hinode = "https://gethinode.com"

View File

@@ -7,15 +7,14 @@ for = '/**'
X-XSS-Protection = "1; mode=block"
Content-Security-Policy = """\
default-src 'self'; \
script-src 'self' \
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
script-src 'self' https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \
base-uri 'self'; \
connect-src 'self'
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://fonts.gstatic.com; \
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
frame-src 'self' https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
manifest-src 'self'; \
media-src 'self' \

View File

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

35
data/structures/abbr.yml Normal file
View File

@@ -0,0 +1,35 @@
comment: >-
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`
arguments:
key:
type: string
position: 0
optional: false
comment: >-
Case-insensitive key of the abbreviation. In shorthand notation, this is
the first (and only) matched argument. Non-alphanumeric keys must be quoted.
data:
type: string
default: abbr.yaml
optional: true
comment: >-
Filename of the abbrevation input. 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:
type: string
optional: true
comment: >-
Class attribute of the abbr element. For example, specify `initialism` for
a slightly smaller font size.

View File

@@ -0,0 +1,19 @@
comment: >-
Defines an individual accordion item.
arguments:
header:
type: string
optional: false
comment: Header of the accordion item.
show:
type: bool
optional: true
comment: Flag to indicate an item should be shown as collapsed.
class:
type: string
optional: true
comment: Class attribute of the accordion item.
body:
optional: false
comment: Content of the accordion item.
group: shortcode

View File

@@ -0,0 +1,18 @@
comment: >-
Use the accordion to show a group of vertically collapsing and expanding
items. Add accordion-item inner elements for each accordion item.
arguments:
id:
type: string
optional: true
comment: >-
ID of the accordion, defaults to `accordion-n` with a sequential number n.
always-open:
type: bool
optional: true
comment: >-
Flag to make accordion items stay open when another item is opened.
class:
type: string
optional: true
comment: Class attribute of the accordion, e.g. `w-50`.

46
data/structures/alert.yml Normal file
View File

@@ -0,0 +1,46 @@
comment: >-
Use the alert shortcode to display a contextual feedback message. The inner
content is used as alert text.
arguments:
class:
type: string
optional: true
comment: Class attribute of the alert element.
color:
type: select
optional: true
default: danger
comment: Theme color of the alert.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black
dismissible:
type: bool
optional: true
default: false
comment: Flag to indicate the alert is dismissible.
icon:
type: string
optional: true
comment: Font Awesome icon to include.
type:
type: select
optional: true
comment: Type of the alert, generates an alert with related color and icon.
options:
values:
- danger
- info
body:
optional: false
comment: Alert text.
group: shortcode

27
data/structures/args.yml Normal file
View File

@@ -0,0 +1,27 @@
comment: >-
Generates a markdown table of structured arguments. The argument definitions are
expected to be defined in a data file identified by a provided structure name.
arguments:
structure:
type: string
position: 0
optional: false
comment: >-
Name of the data file that contains argument definitions. Supported data
formats include JSON, TOML, YAML, and XML. You can omit the file
extension. The file should reside in the `data/structures` folder.
group:
type: string
position: 1
optional: true
comment: >-
Name of the group filter. This is typically used when a shortcode and
partial have common arguments. The group filter binds a specific argument
to a particular group. By default, an argument belongs to all groups.
parent:
type: bool
position: 2
optional: true
comment: >-
Flag to filter only arguments that have a parent attribute (either
`cascade` or `merge`).

27
data/structures/badge.yml Normal file
View File

@@ -0,0 +1,27 @@
comment: Use the badge shortcode to enrich headings.
arguments:
title:
type: string
optional: false
comment: Title of the badge.
class:
type: string
optional: true
comment: Class attribute of the badge element.
color:
type: select
optional: true
default: secondary
comment: Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black

View File

@@ -0,0 +1,16 @@
comment: Displays a breadcrumb for a specific page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Page to display the breadcrumb for.
group: partial
path:
type: string
optional: true
comment: Path of the page to display the breadcrumb for.
group: shortcode

View File

@@ -0,0 +1,15 @@
comment: >-
Displays a group of buttons. Add inner <button> elements for each button.
arguments:
label:
type: string
optional: true
comment: Assistive label for the button group.
aria-label:
type: string
optional: true
comment: Alias for label.
body:
type: string
optional: false
comment: Inner <button> elements for each button.

190
data/structures/button.yml Normal file
View File

@@ -0,0 +1,190 @@
comment: >-
Display a button with a hyperlink.
arguments:
title:
type:
- string
- template.HTML
optional: true
comment: Title of the button, required unless icon is set.
class:
type: string
optional: true
comment: Class attribute of the button element, e.g. `p-5`.
color:
type: select
optional: true
default: primary
comment: Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black
href:
type:
- string
- template.URL
optional: true
comment: >-
Address for the button or hyperlink. Automatically assigned when using
collapse.
relref:
type: string
optional: true
comment: >-
Name of the page to link to. Replaces `href` with a relative link if set.
group: shortcode
id:
type: string
optional: true
comment: Identifier of the button, to be used in the DOM.
state:
type: select
optional: true
default: enabled
comment: State of the button.
options:
values:
- enabled
- disabled
- active
- inactive
size:
type: select
optional: true
default: md
comment: Size of the button.
options:
values:
- sm
- md
- lg
outline:
type: bool
optional: true
default: false
comment: Flag indicating the button should be outlined.
badge:
type: string
optional: true
comment: Positioned badge to display on top of the button.
label:
type: string
optional: true
comment: >-
Assistive label for the button or badge. The label is applied
to the badge instead of the button when a badge has been defined.
The default value of the button's assistive label is its title.
aria-label:
type: string
optional: true
comment: Alias for label.
group: shortcode
tooltip:
type: string
optional: true
comment: >-
Text to display in a tooltip. Cannot be used together with
collapse. Ignored for active/inactive buttons.
collapse:
type: string
optional: true
comment: >-
Panel to collapse. Cannot be used together with tooltip. Ignored for
active/inactive buttons.
type:
type: select
optional: true
default: button
comment: Type of the element.
options:
values:
- link
- button
placement:
type: select
optional: true
default: top
comment: Position of the tooltip.
options:
values:
- top
- bottom
- left
- right
icon:
type: string
optional: true
comment: >-
Font Awesome icon class attribute, required unless title is set. An
example value is `fas sort`.
order:
type: select
optional: true
default: last
comment: Order of the icon
options:
values:
- first
- last
justify:
type: select
optional: true
default: center
comment: Justification of the button title and icon.
options:
values:
- start
- end
- center
- between
- around
- evenly
toast:
type: string
optional: true
comment: Identifier (ID) of the toast to display when the button is clicked.
clipboard:
type:
- string
- template.URL
optional: true
comment: Text to be copied to the clipboard when the button is clicked.
cue:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should show a visual cue, defaults
to the setting `main.externalLinks.cue` in the site's parameters.
tab:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should open in a new tab, defaults
to setting `main.externalLinks.tab` in the site's parameters.
attributes:
type: map[string]interface {}
optional: true
comment: >-
Dictionary of key-value pairs added as custom attributes to the button
element ('<a>').
group: partial
spacing:
type: bool
optional: true
default: true
comment: >-
Flag to add spacing to the inline button.
wrapper:
type: string
optional: true
comment: Element class of the button wrapper.
group: shortcode

View File

@@ -0,0 +1,93 @@
comment: >-
Displays a grid of Bootstrap cards with 1 to 5 columns. The cards are rendered
using a provided list of pages. Cards on the same row are aligned to each
other. The grid renders pages up to a provided maximum amount. The remaining
items are accessible via either a paginator or button to a list page (default
behavior). Be aware a page can only contain one paginator at a time.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: true
comment: Context of the current page.
group: partial
title:
type: string
optional: true
comment: Title of the card group.
gutter:
type: int
optional: true
default: 4
comment: Gutter between columns in a group.
options:
min: 0
max: 5
release: v0.19.0
list:
type:
- page.Pages
- resource.Resources
optional: true
comment: Array of pages to be rendered as cards.
group: partial
cards:
type: string
optional: true
comment: String of rendered cards.
group: partial
max:
type: int
optional: true
comment: Maximum number of cards to display.
group: partial
cols:
type: select
optional: true
default: "3"
comment: Number of grid columns.
options:
values:
- "1"
- "2"
- "3"
- "4"
- "5"
- "auto"
release: v0.19.0
paginate:
type: bool
optional: true
comment: >-
Flag indicating if pagination should be added to the card group, if the
list exceeds the maximum number of cards to display.
group: partial
href:
type: string
optional: true
comment: >-
Address for the button or hyperlink. If set, a button is added if the
list exceeds the maximum number of cards to display.
group: partial
hrefTitle:
type: string
optional: true
comment: >-
Title of the button or hyperlink as companion to href.
group: partial
separator:
type: bool
optional: true
comment: >-
Flag to indicate a horizontal line should be added between items on small screens.
wrapper:
type: string
optional: true
comment: >-
Class attributes of the wrapper element, e.g. `p-4 px-xxl-0`.
responsive:
type: bool
optional: true
comment: >-
Flag indicating if the number of columns should be responsive, defaults to `true`.

177
data/structures/card.yml Normal file
View File

@@ -0,0 +1,177 @@
comment: >-
Displays a Bootstrap card. Either specify a valid path, or set the arguments
title, href, header, description, and thumbnail individually. The latter
arguments override any page attributes.
arguments:
title:
type: string
optional: true
comment: >-
Title of the card, replaces the title of the referenced page (if any).
path:
type: path
optional: true
comment: >-
Path of the page that the card reference to. If omitted, specify the
title, icon, thumbnail, and description (inner content) as needed.
href:
type: url
optional: true
comment: >-
Address for the button or hyperlink.
group: partial
class:
type: string
optional: true
parent: merge
comment: >-
Class attribute of the card element, e.g. “w-50”.
color:
type: select
optional: true
parent: cascade
comment: >-
Theme color of the card. By default, no color is specified.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black
- body
- body-tertiary
padding:
type: select
optional: true
default: auto
parent: cascade
comment: >-
Padding of the content.
options:
values:
- "0"
- "1"
- "2"
- "3"
- "4"
- "5"
- "auto"
gutter:
type: select
optional: true
default: "0"
parent: cascade
comment: >-
Gutter between columns in a group.
options:
values:
- "0"
- "1"
- "2"
- "3"
- "4"
- "5"
header:
type: select
optional: true
default: full
parent: cascade
comment: >-
Header components of the card, displayed in small caps.
options:
values:
- full
- publication
- tags
- none
footer:
type: select
optional: true
default: none
parent: cascade
comment: >-
Footer components of the card, displayed in small caps.
options:
values:
- full
- publication
- tags
- none
description:
type:
- string
- template.HTML
optional: true
comment: >-
Description of the card.
group: partial
loading:
type: select
optional: true
parent: cascade
default: eager
comment: >-
Loading behavior of the image. The loading of lazily loaded images is
deferred until the image is within scrolling range of the viewport. This
should reduce the initial loading time of the website. It is recommended
to lazily load only those images that are below the page fold.
options:
values:
- lazy
- eager
group: partial
thumbnail:
type: path
optional: true
comment: >-
Thumbnail image url, displayed on top or the left of the card.
ratio:
type: select
optional: true
parent: cascade
comment: >-
Ratio of the thumbnail image, defaults to `16x9` (stacked orientation)
or `1x1` (horizontal orientation).
options:
values:
- 1x1
- 3x2
- 4x3
- 16x9
- 21x9
group: partial
alt:
type: string
optional: true
release: v0.19.0
comment: >-
Alternate text for the thumbnail, uses `title` by default.
icon:
type: string
optional: true
comment: >-
Font Awesome icon, displayed on top or the left of the card.
orientation:
type: select
optional: true
default: stacked
parent: cascade
comment: >-
Placement of the thumbnail or icon.
options:
values:
- stacked
- horizontal
- horizontal-sm
- none
body:
optional: true
comment: >-
Description of the card.
group: shortcode

View File

@@ -0,0 +1,59 @@
comment: Renders a carousel item with a responsive image.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
src:
type: string
optional: false
comment: Path or url of the image, e.g. `img/example.jpg`.
ratio:
type: string
optional: true
comment: >-
Ratio of the image. If set, the image is resized and cropped to match the
ratio. Else the original aspect ratio of the image is kept.
options:
values:
- 1x1
- 3x2
- 4x3
- 16x9
- 21x9
group: partial
portrait:
type: bool
optional: true
default: false
comment: >-
Flag to adjust the ratio from landscape to portrait. The image itself
is not rotated, only the crop area is adjusted. Not applicable to vector
graphics.
group: partial
loading:
type: select
default: eager
optional: true
comment: >-
Loading behavior of the image. The loading of lazily loaded images is
deferred until the image is within scrolling range of the viewport. This
should reduce the initial loading time of the website. It is recommended
to lazily load only those images that are below the pagefold.
options:
values:
- eager
- lazy
caption:
type: string
optional: true
comment: Carousel slide caption.
active:
type: bool
optional: true
comment: >-
Sets the current carousel item as active (only one item at a time). By
default, the first slide is made active.

View File

@@ -0,0 +1,39 @@
comment: >-
Displays a carousel of several responsive images (see the image shortcode for
more details). Add inner `img` elements to define individual image slides.
arguments:
id:
type: string
optional: true
comment: >-
ID of the carousel, defaults to `carousel-n` with a sequential number `n`.
ratio:
type: select
optional: true
comment: >-
Ratio of the images. If set, the images are resized and cropped to match the
ratio. Else the original aspect ratio of the image is kept.
options:
values:
- 1x1
- 3x2
- 4x3
- 16x9
- 21x9
portrait:
type: bool
optional: true
default: false
comment: >-
Flag to adjust the ratio from landscape to portrait. The images themselves
are not rotated, only the crop area is adjusted. Not applicable to vector
graphics.
release: v0.18.3
class:
type: string
optional: true
comment: Class attribute of the carousel element, e.g. `w-75`.
body:
type: string
optional: false
comment: Inner `img` elements that define the individual image slides.

View File

@@ -0,0 +1,15 @@
comment: Defines a hidden panel that can be reveiled by a trigger.
arguments:
id:
type: string
optional: false
comment: >-
ID of the collapse element, e.g. `collapse-1`.
class:
type: string
optional: true
comment: Class attribute of the inner panel element, e.g. `p-3`.
body:
type: string
optional: false
comment: Inner <img> elements that define the individual image slides.

View File

@@ -0,0 +1,40 @@
comment: >-
Generates terminal output for either `bash`, `powershell`, or `sql` shell
languages.
arguments:
user:
type: string
optional: true
comment: User to add to the prompt, e.g. `user`.
host:
type: string
optional: true
comment: Host to add to the prompt, e.g. `localhost`.
prompt:
type: string
optional: true
comment: Prompt override, e.g. `PS C:\Users\User>`.
shell:
type: select
optional: true
default: bash
comment: Type of shell.
options:
values:
- bash
- powershell
- sql
class:
type: string
optional: true
comment: Class attribute of the command element.
body:
type: string
optional: false
comment: >-
The shell commands and their output. Start a line with `(out)` to specify
an output line. Use the following line continuation characters for each
supported language:
- bash: backslash symbol
- PowerShell: backtick symbol
- sql: `(con)` line suffix

44
data/structures/docs.yml Normal file
View File

@@ -0,0 +1,44 @@
comment: >-
Capture a code snippet from a `toml` or `scss` input file. The shortcode scans for named markers in a local file:
- For `.toml` files, use `# toml-docs-start` and `# toml-docs-end` followed by the snippet name
- For `.scss` files, use `// scss-docs-start` and `// scss-docs-end` followed by the snippet name
The snippet between the two markers is then rendered using syntax highlighting.
arguments:
name:
type: string
optional: false
comment: >-
Name of the code snippet, used to identify the relevant section of the
input file.
file:
type: string
optional: false
comment: >-
Path of the input file. The path is relative to the `basePath` defined in
the `docs` section of the site's parameters. If the file starts with `./`,
the path of the repository is used as base path instead.
show:
type: bool
optional: true
default: true
comment: >-
If unset, shows the panel with the code snippet in collapsed state. By
default, the panel is expanded.
full:
type: bool
optional: true
default: true
comment: >-
If unset, shows the filename only. By default, the entire path (relative
to the base path) is shown.
id:
type: string
optional: true
comment: >-
ID of the collapse panel holding the code snippet, defaults to
`docs-collapse-n` with a sequential number `n` starting at `1`.
class:
type: string
optional: true
comment: Class attribute of the tab control that wraps the docs element.

View File

@@ -0,0 +1,33 @@
comment: >-
Display a code example and render a preview of the same input. The shortcode
accepts the languages supported by Hugo's highlight function.
arguments:
id:
type: string
optional: true
comment: Identifier of the elements container.
lang:
type: string
optional: true
default: markdown
comment: >-
Language used to display the code. Use `hugo` to process Hugo (escaped)
shortcodes.
show_markup:
type: bool
optional: true
default: true
comment: Indicates if the markup should be output in the HTML.
show_preview:
type: bool
optional: true
default: true
comment: Indicates if the preview should be output in the HTML.
class:
type: string
optional: true
comment: Class attributes of the element's container.
body:
type: string
optional: false
comment: The example input.

40
data/structures/file.yml Normal file
View File

@@ -0,0 +1,40 @@
comment: >-
Print the full content of any given file supported by the Chroma syntax
highlighter.
arguments:
path:
type: string
optional: false
comment: >-
Path of the input file. The path is relative to the `basePath` defined in
the `docs` section of the site's parameters. If the file starts with `./`,
the path of the repository is used as base path instead.
lang:
type: string
optional: true
comment: >-
Language to be used by the syntax highlighter. If not set, the
language is derived from the file extension.
show:
type: bool
optional: true
comment: >-
If unset, shows the panel with the code in collapsed state. By default,
the panel is expanded.
full:
type: bool
optional: true
default: true
comment: >-
If unset, shows the filename only. By default, the entire path (relative
to the base path) is shown.
id:
type: string
optional: true
comment: >-
Identifier of the collapse panel, defaults to `file-collapse-n` with a
sequential number `n` starting at 1.
class:
type: string
optional: true
comment: Class attribute of the tab control that wraps the file element.

117
data/structures/image.yml Normal file
View File

@@ -0,0 +1,117 @@
comment: >-
Render a local or remote image with responsive image sizing. Images are
resized using default media breakpoints and are converted to webp format. The
image is processed using the quality setting specified in the [imaging]
section of the main config file (defaults to 75). A fallback image is provided
for older browsers. The image is wrapped in a figure if a caption is provided,
else the image is wrapped in a div with a ratio constraint.
If the url starts with `http`, the image is retrieved from an external
location. Else, the url is matched with a page resource and site asset (in
that order). The path of a remote image is rewritten to ensure processed files
are stored in the final '/img' folder.
The partial supports the following bitmap image formats: `png`, `jpeg`, `gif`,
`tiff`, `bmp`, and `webp`. Vector graphics of type `svg` are supported too,
although these images do no support additional processing. This means the
arguments `ratio` and `portrait` have no effect for vector images. Vector
graphics support an optional anchor `#` in their url to denote a symbol
reference.
arguments:
url:
type: string
optional: true
comment: >-
Path or url of the image, e.g. `img/example.jpg`. Images with multiple
color modes are expected to have a basename that ends with either `-dark`
or `-light`.
src:
type: string
optional: true
position: 0
comment: Alias for url.
group: shortcode
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: true
comment: Page context, used to match page resources.
group: partial
mode:
type: bool
default: false
optional: true
comment: >-
Flag indicating if the image should support color modes. If set, the
shortcode searches for images that having a matching color-mode suffix
such as `-light` or `-dark`.
ratio:
type: select
optional: true
comment: >-
Ratio of the image. If set, the image is resized and cropped to match the
ratio. Else the original aspect ratio of the image is kept. Not applicable
to vector graphics.
options:
values:
- 1x1
- 3x2
- 4x3
- 16x9
- 21x9
portrait:
type: bool
optional: true
default: false
comment: >-
Flag to adjust the ratio from landscape to portrait. The image itself is
not rotated, only the crop area is adjusted. Not applicable to vector
graphics.
release: v0.18.3
loading:
type: select
default: eager
optional: true
comment: >-
Loading behavior of the image. The loading of lazily loaded images is
deferred until the image is within scrolling range of the viewport. This
should reduce the initial loading time of the website. It is recommended
to lazily load only those images that are below the pagefold.
options:
values:
- eager
- lazy
release: v0.21.0
priority:
type: select
default: auto
optional: true
comment: >-
Fetch priority of the image. The priority provides a hint to the browser
on how it should prioritize the fetching of the image relative to other
images. The implementation is experimental and currently only supported by
Chrome, Edge, and Opera.
options:
values:
- high
- low
- auto
group: partial
title:
type: string
optional: true
comment: Alternate text of the image.
caption:
type: string
optional: true
comment: Figure caption.
wrapper:
type: string
optional: true
comment: Class attributes of the wrapper element, e.g. `mx-auto`.
release: v0.18.3
class:
type: string
optional: true
comment: Class attribute of the inner img element, e.g. `rounded`.

30
data/structures/kbd.yml Normal file
View File

@@ -0,0 +1,30 @@
comment: Adds a keyboard input element.
arguments:
title:
type: string
optional: false
position: 0
comment: >-
Title of the keyboard input. In shorthand notation, this is the first (and
only) matched argument.
class:
type: string
optional: true
comment: Class attribute of the keyboard input element.
color:
type: select
default: secondary
optional: true
comment: Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black

74
data/structures/link.yml Normal file
View File

@@ -0,0 +1,74 @@
comment: >-
Generates a link for a given named link or url. The shortcode supports a
single unnamed parameter, or various named parameters. The unnamed parameter
is recognized as a url if it starts with `http`, else it is treated as either
a named link or internal reference (in that order). Any inner text is rendered
as the link title, otherwise it uses the host name (for external links), link
title (for internal links), or anchor name (for any local references
containing a `#`).
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
group: partial
comment: Context of the current page.
destination:
type: string
optional: false
group: partial
comment: >-
Target destination.
href:
type: string
position: 0
optional: true
comment: >-
Reference to either an external link (if it starts with `http`), a named
link (if it can be found in `params.links`), or internal reference.
Both external and internal references may include an anchor `#`.
name:
type: string
optional: true
comment: Alias of href.
url:
type: string
optional: true
comment: Alias of href.
cue:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should show a visual cue, defaults to
setting `main.externalLinks.cue` in the site's parameters.
tab:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should open in a new tab, defaults to
setting `main.externalLinks.tab` in the site's parameters.
case:
type: bool
optional: true
default: true
comment: >-
Flag to indicate if the retrieved title (e.g. no inner text is provided)
of an internal link should use its original case. If false, the title is
set to lower case.
class:
type: string
optional: true
comment: Class attribute of the anchor element.
text:
type:
- string
- template.HTML
optional: true
group: partial
comment: Link title.
body:
type: string
optional: true
group: shortcode
comment: Link title.

55
data/structures/list.yml Normal file
View File

@@ -0,0 +1,55 @@
comment: >-
Displays a list of items with a thumbnail alternating between left and right
alignment.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Required context of the current page.
group: partial
list:
type:
- 'page.Pages'
- 'resource.Resources'
optional: false
comment: Required array of pages.
group: partial
title:
type: string
optional: true
comment: Optional title of the card group.
loading:
type: select
default: eager
optional: true
comment: >-
Loading behavior of the image. The loading of lazily loaded images is
deferred until the image is within scrolling range of the viewport. This
should reduce the initial loading time of the website. It is recommended
to lazily load only those images that are below the pagefold.
options:
values:
- eager
- lazy
class:
type: string
optional: true
comment: Class attribute of the tab element, e.g. “w-50”.
color:
type: select
optional: true
comment: >-
Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- body

27
data/structures/mark.yml Normal file
View File

@@ -0,0 +1,27 @@
comment: Highlights text by applying a background color.
arguments:
class:
type: string
optional: true
comment: Class attribute of the highlight element.
color:
type: select
optional: true
comment: >-
Theme color of the highlight. By default, the highlight uses the color of
the HTML mark function (usually yellow).
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black
body:
optional: false
comment: Text to be marked.

View File

@@ -0,0 +1,62 @@
comment: >-
Defines an individual item.
arguments:
id:
type: string
optional: true
comment: Identification of the item.
group: partial
parentID:
type: string
optional: false
comment: Identification of the parent (e.g. nav control).
group: partial
header:
type: string
optional: false
comment: Header of the item.
show:
type: bool
optional: true
comment: >-
Flag to indicate if the item should be shown. Only one can be shown at a
time.
disabled:
type: bool
optional: true
comment: Flag to indicate the item should be in a disabled state.
fade:
type: bool
optional: true
comment: Flag to make the tab pane fade in.
parent: cascade
class:
type: string
optional: true
comment: Class attribute of the item.
body:
type:
- string
- template.HTML
optional: true
comment: The body content of the item, supports Markdown and HTML (if enabled).
group: partial
item_type:
type: select
optional: true
comment: Type of the item to render.
options:
values:
- accordion
- tab-pane
group: partial
illustration:
type:
- string
- template.HTML
optional: true
group: partial
body:
optional: false
comment: Content of the item.
group: shortcode

82
data/structures/nav.yml Normal file
View File

@@ -0,0 +1,82 @@
comment: >-
Displays a tab group of multiple items. Add nav-item inner elements for each
tab pane.
arguments:
id:
type: string
optional: true
comment: >-
Identifier of the tab group, uses a generated sequence if not specified.
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
list:
type:
- page.Pages
- resource.Resources
optional: true
comment: Array of pages to be rendered as nav items.
group: partial
type:
type: select
optional: true
comment: Type of the tab group.
options:
values:
- tabs
- pills
- underline
- callout
vertical:
type: bool
default: false
optional: true
comment: Flag to show vertical tabs instead of horizontal tabs.
wrap:
type: bool
default: false
optional: true
comment: Flag to enable word wrapping of tab titles.
class:
type: string
optional: true
comment: Class attribute of the tab group, e.g. `nav-fill`.
pane:
type: select
optional: true
default: none
comment: Style of the panes.
options:
values:
- none
- persona
group: partial
width:
type: select
optional: true
default: "100"
comment: Responsive width of the tab group.
options:
values:
- "50"
- "100"
group: partial
loading:
type: select
optional: true
default: eager
parent: cascade
comment: >-
Loading behavior of the image. The loading of lazily loaded images is
deferred until the image is within scrolling range of the viewport. This
should reduce the initial loading time of the website. It is recommended
to lazily load only those images that are below the page fold.
options:
values:
- lazy
- eager
group: partial

View File

@@ -0,0 +1,34 @@
comment: >-
Defines an individual item of the navigation bar.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
menu:
type: '*navigation.MenuEntry'
optional: false
comment: Menu data to use for the navbar item.
parent:
type: '*navigation.MenuEntry'
optional: true
comment: Parent of the current navbar item.
class:
type: string
optional: true
comment: Class attribute of the item.
cue:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should show a visual cue, defaults
to the setting `main.externalLinks.cue` in the site's parameters.
tab:
type: bool
optional: true
comment: >-
Flag to indicate if an external link should open in a new tab, defaults
to setting `main.externalLinks.tab` in the site's parameters.

108
data/structures/navbar.yml Normal file
View File

@@ -0,0 +1,108 @@
comment: >-
Displays a navigation header with a toggler. The menu items are derived from
the site's configuration. Nested items are supported at one-level depth. The
navigation bar includes a search area and a language switcher if applicable.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
path:
type: path
optional: false
comment: Path of the active page.
group: shortcode
title:
type: string
optional: true
comment: >-
Brand title, displayed when the logo is not set. Defaults to the site's
title.
class:
type: string
optional: true
comment: Class attribute of the navbar container.
color:
type: select
optional: true
comment: >-
Background theme color of the navbar. Set the color to `body` or
`body-tertiary` for the navbar to respond to color mode changes (e.g.
switching between dark and light). The navigation bar is transparent when
no color is set, but is set to the body color when scrolling to enhance
the contrast.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black
- body
- body-tertiary
id:
type: string
optional: true
comment: >-
Identification of the navbar, defaults to `navbar-0`. The id is used by
several child elements, including a color mode switcher, version switcher,
and collapse panel.
menus:
type: string
optional: true
default: main
comment: Name of the menu configuration.
size:
type: select
optional: true
comment: Breakpoint of the navbar toggler.
default: md
options:
values:
- xs
- sm
- md
- lg
- xl
style:
type: select
optional: true
default: light
comment: Style of the navbar.
options:
values:
- light
- dark
group: partial
mode:
type: bool
optional: true
default: true
comment: >-
Flag to include a color mode switcher, defaults to `true` when dark mode
is enabled.
search:
type: bool
optional: true
default: true
comment: Flag to include a search input.
fixed:
type: bool
optional: true
default: false
comment: Flag to indicate the navbar should stick to the top.
group: partial
logo:
type: path
optional: true
comment: >-
Address of the logo image, defaults to the parameter `logo` set in the
`main` section of the site's parameter configuration.

View File

@@ -0,0 +1,14 @@
comment: >-
Adds a dismissible alert message to the top of the page, above the main menu.
The alert uses the following scratch variables:
- pageAlertMsg
- pageAlertURL
- version
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -0,0 +1,21 @@
comment: >-
Adds a pagination element to a page. This allows to split long lists across
multiple pages to ease navigation. Set 'paginate' in the site configuration to
define the maximum amount of items to display on a list page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
format:
type: select
optional: true
default: default
comment:
options:
values:
- default
- terse

View File

@@ -0,0 +1,60 @@
comment: >-
Display a custom persona card.
arguments:
path:
type: path
optional: true
comment: >-
Path of the page that defines the card content. You can set `title`,
`href`, `thumbnail` and the inner content individually too.
title:
type:
- string
- template.HTML
optional: true
comment: Title of the card.
class:
type: string
optional: true
comment: Class attribute of the card element, e.g. `w-50`.
color:
type: select
optional: true
default: primary
comment: Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black
- body
- body-tertiary
href:
type:
- string
- template.URL
optional: true
comment: Address for the button or hyperlink.
content:
type:
- string
- template.HTML
optional: true
comment: Content of the card.
group: partial
thumbnail:
type: url
optional: true
comment: Thumbnail image url, displayed on top or the left of the card.
body:
optional: true
comment: >-
Description of the card.
group: shortcode

View File

@@ -0,0 +1,40 @@
comment: >-
Displays a release button that links to a specific release. Use the state to
indicate if it is a new or deprecated feature.
arguments:
version:
type: string
optional: false
comment: Version string, expects semver notation with a `v` prefix.
state:
type: select
optional: true
default: new
comment: State of the feature.
options:
values:
- new
- deprecated
short:
type: bool
optional: true
comment: Flag to indicate the release button should use short notation.
size:
type: select
optional: true
default: md
comment: Size of the button.
options:
values:
- sm
- md
- lg
class:
type: string
optional: true
comment: Class attribute of the button element.
inline:
type: bool
optional: true
default: false
comment: Flag to render the release button inline.

View File

@@ -0,0 +1,16 @@
comment: Renders the header of a page section.
arguments:
title:
type: string
optional: true
comment: Title of the section.
description:
type: string
optional: true
comment: Section description.
content:
type:
- string
- template.HTML
optional: true
comment: Section content.

View File

@@ -0,0 +1,9 @@
comment: Renders the section menu of a single page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -0,0 +1,9 @@
comment: Renders the social sharing buttons for a single page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -0,0 +1,24 @@
comment: >-
Renders the sidebar navigation of a single page. It is intended to be used as
companion to the main navigation and is typically used in content-heavy
sections, such as documentation pages. On smaller screens, the sidebar is
replaced with an offcanvas element. In this case, the main navigation receives
an additional toggler on the left of the screen.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial
menu:
type: '[]interface {}'
optional: true
comment: Path of the sidebar navigation menu.
version:
type: string
optional: true
comment: >-
Version of the sidebar navigation, used to define the base URL of
generated links, together with the page's section.

View File

@@ -0,0 +1,36 @@
comment: >-
Use the spinner shortcode to indicate the loading state of a component or
page. The inner content is used as alternative description.
arguments:
class:
type: string
optional: true
comment: >-
Class attribute of the wrapping element, e.g. `text-center`.
color:
type: select
optional: true
default: primary
comment: >-
Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
- white
- black
grow:
type: bool
optional: true
default: false
comment: Flag to indicate the spinner is growing instead of rotating.
body:
optional: false
comment: >-
Alternative description.

8
data/structures/sub.yml Normal file
View File

@@ -0,0 +1,8 @@
comment: >-
Displays text in subscript.
arguments:
text:
type: string
optional: false
position: 0
comment: Text to display in subscript. You can omit the argument name.

8
data/structures/sup.yml Normal file
View File

@@ -0,0 +1,8 @@
comment: >-
Displays text in superscript.
arguments:
text:
type: string
optional: false
position: 0
comment: Text to display in superscript. You can omit the argument name.

30
data/structures/table.yml Normal file
View File

@@ -0,0 +1,30 @@
comment: >-
Makes a markdown table responsive. Responsive tables scroll horizontally to
improve their layout on smaller screens.
arguments:
breakpoint:
type: select
optional: true
position: 0
comment: >-
By default, the table shortcode is responsive for all viewports. When a
breakpoint is set, the table will behave normally and not scroll
horizontally from the provided breakpoint and up. Use `none` to disable
this behavior. You can specify multiple breakpoints when using positional
arguments.
options:
values:
- none
- sm
- md
- lg
- xl
- xxl
class:
type: string
optional: true
comment: Class attribute of the table element, e.g. `table-striped-columns w-auto`.
body:
type: string
optional: false
comment: Table input in markdown format.

View File

@@ -0,0 +1,31 @@
comment: >-
Shows items ordered on a vertical timelime.
arguments:
data:
type: string
optional: false
comment: >-
Filename of the timeline input data. You can omit the file extension. The
file should reside in the data folder.
background:
type: select
optional: true
comment: >-
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.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
class:
type: string
optional: true
comment: >-
Class attribute of the timeline's container.

29
data/structures/toast.yml Normal file
View File

@@ -0,0 +1,29 @@
comment: >-
Prepares a toast message. Use a trigger to display the message.
arguments:
id:
type: string
optional: true
comment: >-
Unique identifier of the toast message, defaults to `toast-message-n`
with sequence n.
header:
type: string
optional: true
comment: Header of the toast message. Uses the site title by default.
class:
type: string
optional: true
comment: Class attribute of the toast element.
message:
type:
- string
- template.HTML
optional: false
comment: Toast message.
group: partial
body:
type: string
optional: false
comment: Toast mesage.
group: shortcode

9
data/structures/toc.yml Normal file
View File

@@ -0,0 +1,9 @@
comment: Renders the table of contents of a single page.
arguments:
page:
type:
- '*hugolib.pageState'
- '*hugolib.pageForShortcode'
optional: false
comment: Context of the current page.
group: partial

View File

@@ -0,0 +1,50 @@
comment: >-
Displays a tooltip for a link. The inner content is used as hyperlink text.
arguments:
title:
type: string
optional: true
comment: Plain text to display in the tooltip.
href:
type: url
optional: true
comment: Address for the button or hyperlink.
class:
type: string
optional: true
parent: merge
comment: Class attribute of the tooltip's button element.
color:
type: select
optional: true
default: dark
comment: Theme color of the element.
options:
values:
- primary
- secondary
- success
- danger
- warning
- info
- light
- dark
placement:
type: select
optional: true
default: top
comment: Position of the tooltip.
options:
values:
- top
- bottom
- left
- right
spacing:
type: bool
optional: true
default: true
comment: Flag to add spacing to the inline tooltip.
body:
optional: false
comment: Hyperlink text.

View File

@@ -0,0 +1,5 @@
comment: >-
Returns the current version defined in 'package.json` in the repository root,
or in the documentation base path ('params.docs.basePath') if specified. The
returned version includes a 'v' prefix. The partial returns nothing when no
match is found. The partial does not require any arguments.

View File

@@ -0,0 +1,26 @@
comment: >-
Embeds a responsive video player for YouTube videos. Only the ID of the video
is required. In privacy-enhanced mode, YouTube will not store information
about visitors on your website unless the user plays the embedded video.
arguments:
title:
type: string
optional: true
comment: >-
Title of the video.
class:
type: string
optional: true
position: 1
comment: >-
Class attribute of the video wrapper element.
id:
type: string
optional: false
position: 0
comment: Identifier of the video to be embedded.
autoplay:
type: bool
optional: true
default: false
comment: Flag indicating the video should start playing immediately when loaded.

View File

@@ -1,6 +1,6 @@
resourcedir = '../resources/'
title = "Hinode"
copyright = "Copyright © 2023 Mark Dumay."
copyright = "Copyright © 2024 Mark Dumay."
paginate = 9
enableGitInfo = true
@@ -79,6 +79,8 @@ home = ["HTML", "RSS", "REDIR"]
keepVarNames = true
precision = 0
version = 2022
[minify.tdewolff.html]
keepWhitespace = true
[module]
replacements = 'github.com/gethinode/hinode -> ../..'

View File

@@ -6,6 +6,7 @@
canonifyAssetsURLs = false
footerBelowFold = false
loading = "lazy"
breakpoint = "md"
[main.externalLinks]
cue = true
tab = true
@@ -180,15 +181,6 @@
images = ["logo.png"]
locale = "en_US"
[comments]
enabled = false
repo = "" # Replace with your repository.
#issueTerm = "pathname" # pathname, url, title, og:title
#label = "comment"
# By default, light and dark mode correspond to github-light and github-dark, respectively.
# Optional values: github-light, github-dark, preferred-color-scheme, github-dark-orange, icy-dark, dark-blue, photon-dark.
#theme = ""
[links]
bs_badge_heading = "https://getbootstrap.com/docs/5.3/components/badge/#headings"
hinode_docs = "https://gethinode.com"
@@ -196,5 +188,4 @@
mozilla_image = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images"
observatory = "https://observatory.mozilla.org/analyze/demo.gethinode.com"
pagespeed = "https://pagespeed.web.dev/report?url=https%3A%2F%2Fdemo.gethinode.com%2F"
utterances = "https://utteranc.es"
hinode = "https://gethinode.com"

View File

@@ -7,15 +7,14 @@ for = '/**'
X-XSS-Protection = "1; mode=block"
Content-Security-Policy = """\
default-src 'self'; \
script-src 'self' \
https://utteranc.es/client.js https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
script-src 'self' https://*.google-analytics.com https://*.googletagmanager.com; \
style-src 'self' https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \
base-uri 'self'; \
connect-src 'self'
https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com; \
font-src 'self' https://fonts.gstatic.com; \
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
frame-src 'self' https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' data: https://i.vimeocdn.com https://i.ytimg.com https://*.google-analytics.com https://*.googletagmanager.com https://tile.openstreetmap.org; \
manifest-src 'self'; \
media-src 'self' \

View File

@@ -21,6 +21,7 @@ const purgecss = require('@fullhuman/postcss-purgecss')({
'./assets/scss/components/_syntax-dark.scss',
'./assets/scss/components/_syntax-light.scss',
'./assets/scss/components/_table.scss',
'./assets/scss/components/_video.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

@@ -26,7 +26,6 @@ Additional features include:
* Support for multiple languages
* Reusable Bootstrap components through configurable shortcodes and partials
* Versioned documentation, including sidebar navigation and version switcher
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
* Reponsive 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" >}})

View File

@@ -344,6 +344,24 @@ As an example, the following shortcode displays a light navigation header.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Persona
As an example, the following shortcode displays a persona card with a primary color.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* persona thumbnail="/img/creator-1x1.jpg" title="Creators" color="primary" */>}}
As a content creator you value your independence. You like to take control of your
online and offline presence. You want to focus on growing your audience, without
limitations.
Hinode gives you the tools to publish your blog in the way that you want. You have
full ownership and control of your content. That is why content creators choose
Hinode.
{{</* /persona */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Release
As an example, the following shortcode displays a default release button.
@@ -386,6 +404,22 @@ As an example, the following shortcode displays superscript text.
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Table
As an example, the following shortcode displays a responsive table.
<!-- markdownlint-disable MD037 -->
{{< example lang="markdown" >}}
{{</* table */>}}
| # | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading | Heading |
|----|---------|---------|---------|---------|---------|---------|---------|---------|---------|
| 1. | cell | cel | cel | cel | cel | cel | cel | cel | cel |
| 2. | cell | cel | cel | cel | cel | cel | cel | cel | cel |
| 3. | cell | cel | cel | cel | cel | cel | cel | cel | cel |
{{</* /table */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Timeline
As an example, the following shortcode displays a timeline with the file `data/timeline.en.yml` as data.

View File

@@ -1,9 +1,10 @@
---
author: Mark Dumay
title: Fourth post
title: Fourth post (excluded from search)
date: 2023-01-01
description: This is my fourth blog post.
description: This is my fourth blog post. It is excluded from the search index.
tags: ["blog"]
searchExclude: true
thumbnail:
url: img/flowers.jpg
author: Arvee Marie

View File

@@ -27,7 +27,6 @@ Les fonctionnalités supplémentaires incluent:
- Prise en charge de plusieurs langues
- Composants bootstrap réutilisables à travers des codes et partiels configurables
- Documentation versionnée, incluant une navigation latérale et un sélecteur de version.
- Commentaires intégrés via une intégration légère avec GitHub via [utteranc.es]({{< param "links.utterances" >}})
- 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" >}})

View File

@@ -1,10 +1,11 @@
---
author: Mark Dumay
title: Quatrième article
title: Quatrième article (exclu de la recherche)
slug: quatrieme-article
date: 2023-01-01
description: Ceci est mon quatrième article.
description: Ceci est mon quatrième article de blog. Il est exclu de l'index de recherche.
tags: ["blog"]
searchExclude: true
thumbnail:
url: img/flowers.jpg
author: Arvee Marie

View File

@@ -28,7 +28,6 @@ Overige functies:
* Ondersteuning voor meerdere talen
* Herbruikbare Bootstrap componenten via shortcodes en partials
* Versiebeheer van documentatiepagina's, inclusief secundaire navigatie en selectie van versies
* Integreren van commentaar via [utteranc.es]({{< param "links.utterances" >}})
* 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" >}})

View File

@@ -18,6 +18,10 @@ github.com/gethinode/mod-flexsearch v1.5.1 h1:9fYlnHgiEXckL0EoC0zlSNO7BWZf5yiOro
github.com/gethinode/mod-flexsearch v1.5.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.6.0 h1:Rjx+GLOByFLmaWD9hZXwmuKN8A89te6BZAIq2c9QBKg=
github.com/gethinode/mod-flexsearch v1.6.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.7.0 h1:VFTf6iUyT9b47jTDAxh8nVHU1eUBrdxlykaC90lTfqk=
github.com/gethinode/mod-flexsearch v1.7.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.7.1 h1:f4rjKkhleDVzqwUmwP1xZdhjru5VQ9g0MRDz0G6oLyY=
github.com/gethinode/mod-flexsearch v1.7.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-fontawesome v1.2.4 h1:SqE3CQ+boaBIhrVh3MPu4nz0uoHPfEH5t60nNY1CfsI=
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=
@@ -34,6 +38,10 @@ github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQ
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.5.1 h1:C7goQY4HrEua/lpjC++laydNKBuYo1+307ngn5tyXeM=
github.com/gethinode/mod-fontawesome v1.5.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.6.1 h1:iqOgDGdw7Bs4hnzjF/8JsUn10omyKQZTglLqNenT1K0=
github.com/gethinode/mod-fontawesome v1.6.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.7.3 h1:YzRCYSasVRIcImVmTJYjqNJ+KmyNWfm/bMgtM0slvzs=
github.com/gethinode/mod-fontawesome v1.7.3/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=
@@ -41,6 +49,8 @@ github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkm
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.4 h1:NozgWPFnHhx1W+E9DnwMTRpvxPbdqdANEtwp9N3/mj8=
github.com/gethinode/mod-katex v1.0.4/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.5 h1:AVhcTINYory0ygChQERf8PcyJkbT1oqhmLRF6ESnWOY=
github.com/gethinode/mod-katex v1.0.5/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp4ia4r4=
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81LrLbYU=

View File

@@ -14,6 +14,7 @@
"footer",
"form",
"h2",
"h3",
"head",
"hr",
"html",
@@ -38,8 +39,14 @@
"sub",
"sup",
"svg",
"table",
"tbody",
"td",
"th",
"thead",
"time",
"title",
"tr",
"ul",
"use"
],
@@ -113,19 +120,24 @@
"carousel-item",
"chroma",
"col",
"col-10",
"col-12",
"col-2",
"col-3",
"col-4",
"col-6",
"col-8",
"col-9",
"col-auto",
"col-lg-2",
"col-lg-4",
"col-lg-8",
"col-md-10",
"col-md-2",
"col-md-3",
"col-md-4",
"col-md-8",
"col-md-9",
"col-md-auto",
"col-sm-12",
"col-sm-3",
@@ -141,6 +153,7 @@
"d-grid",
"d-inline",
"d-inline-flex",
"d-lg-block",
"d-md-block",
"d-md-flex",
"d-md-none",
@@ -209,6 +222,8 @@
"form-control",
"fs-3",
"fs-5",
"fs-6",
"fs-md-5",
"fw-bold",
"fw-semibold",
"g-0",
@@ -256,7 +271,6 @@
"me-auto",
"middle-bar",
"min-vh-100",
"mirrorred",
"ms-1",
"ms-3",
"ms-auto",
@@ -271,6 +285,7 @@
"mx-md-0",
"mx-md-2",
"my-2",
"my-4",
"my-auto",
"my-md-0",
"my-md-auto",
@@ -306,6 +321,8 @@
"pb-5",
"pb-md-0",
"pe-3",
"pe-5",
"persona",
"position-absolute",
"position-fixed",
"position-relative",
@@ -316,6 +333,10 @@
"ps-xl-3",
"pt-5",
"pt-md-3",
"ptw-3",
"ptw-5",
"ptw-lg-5",
"ptw-sm-4",
"px-4",
"px-xxl-0",
"py-1",
@@ -327,12 +348,14 @@
"ratio-16x9",
"rounded",
"rounded-2",
"rounded-5",
"rounded-bottom",
"rounded-pill",
"rounded-top",
"row",
"row-cols-1",
"row-cols-2",
"row-cols-lg-3",
"row-cols-md-2",
"row-cols-md-3",
"row-cols-sm-2",
@@ -342,10 +365,13 @@
"search-suggestions",
"shadow",
"show",
"sidebar-overflow",
"slide",
"small",
"spinner-border",
"start-0",
"start-100",
"start-50",
"sticky-top",
"stretched-link",
"svg-inline--fa",
@@ -353,6 +379,8 @@
"syntax-highlight",
"tab-content",
"tab-pane",
"table",
"table-responsive",
"tag-link",
"text-bg-body",
"text-bg-body-tertiary",
@@ -404,8 +432,11 @@
"toc-sidebar",
"toggler-icon",
"top-0",
"top-25",
"top-50",
"top-bar",
"translate-middle",
"translate-middle-y",
"visually-hidden",
"vr",
"w-100",
@@ -485,6 +516,7 @@
"navbar-sample-collapse",
"navigation",
"notification",
"persona",
"projecten",
"projects",
"projets",
@@ -494,6 +526,7 @@
"spinner",
"sub",
"sup",
"table",
"timeline",
"toast",
"toast-container",

13
go.mod
View File

@@ -5,11 +5,12 @@ go 1.19
require (
github.com/airbnb/lottie-web v5.12.2+incompatible // indirect
github.com/gethinode/mod-bootstrap v1.2.2 // indirect
github.com/gethinode/mod-flexsearch v1.6.0 // indirect
github.com/gethinode/mod-fontawesome v1.5.1 // indirect
github.com/gethinode/mod-katex v1.0.4 // indirect
github.com/gethinode/mod-leaflet v0.3.5 // indirect
github.com/gethinode/mod-lottie v1.3.0 // indirect
github.com/nextapps-de/flexsearch v0.0.0-20230711092928-1243fd883ec3 // indirect
github.com/gethinode/mod-flexsearch v1.8.1 // indirect
github.com/gethinode/mod-fontawesome v1.8.0 // indirect
github.com/gethinode/mod-katex v1.0.5 // indirect
github.com/gethinode/mod-leaflet v0.4.0 // indirect
github.com/gethinode/mod-lottie v1.4.1 // indirect
github.com/gethinode/mod-utils v1.0.2 // indirect
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22 // indirect
github.com/twbs/bootstrap v5.3.2+incompatible // indirect
)

30
go.sum
View File

@@ -36,6 +36,14 @@ github.com/gethinode/mod-flexsearch v1.5.1 h1:9fYlnHgiEXckL0EoC0zlSNO7BWZf5yiOro
github.com/gethinode/mod-flexsearch v1.5.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.6.0 h1:Rjx+GLOByFLmaWD9hZXwmuKN8A89te6BZAIq2c9QBKg=
github.com/gethinode/mod-flexsearch v1.6.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.7.0 h1:VFTf6iUyT9b47jTDAxh8nVHU1eUBrdxlykaC90lTfqk=
github.com/gethinode/mod-flexsearch v1.7.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.7.1 h1:f4rjKkhleDVzqwUmwP1xZdhjru5VQ9g0MRDz0G6oLyY=
github.com/gethinode/mod-flexsearch v1.7.1/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.8.0 h1:rKu9ackmbGAD/CRJYUDUhy/3nDCEj0IgYDiL1bkwzDc=
github.com/gethinode/mod-flexsearch v1.8.0/go.mod h1:TXbGbWsvmhBdsTzRt887mcpFfr4ORpzG3+h/l4W3YM4=
github.com/gethinode/mod-flexsearch v1.8.1 h1:xwPvmmxd8Tdyxp8/rnd9KRGqIDtZs/YwAQJ1i9oQMiM=
github.com/gethinode/mod-flexsearch v1.8.1/go.mod h1:L8hrnpupx27cez2ObMX8gWnhbW6qss4HGH1Ea4UaBRQ=
github.com/gethinode/mod-fontawesome v1.0.2 h1:ZSK6D20/w4y5GnfYfTBB58uHD0ChIfkpKfRGwioS9rg=
github.com/gethinode/mod-fontawesome v1.0.2/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.1.0 h1:rsDzUI+3ZlS/do2ff3ne8/z3KwHeysmuA+WsXlumXXk=
@@ -64,6 +72,12 @@ github.com/gethinode/mod-fontawesome v1.5.0 h1:3mW5dnWauuF9wSWXNIY+PPgTNPlc/xQOQ
github.com/gethinode/mod-fontawesome v1.5.0/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.5.1 h1:C7goQY4HrEua/lpjC++laydNKBuYo1+307ngn5tyXeM=
github.com/gethinode/mod-fontawesome v1.5.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.6.1 h1:iqOgDGdw7Bs4hnzjF/8JsUn10omyKQZTglLqNenT1K0=
github.com/gethinode/mod-fontawesome v1.6.1/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.7.3 h1:YzRCYSasVRIcImVmTJYjqNJ+KmyNWfm/bMgtM0slvzs=
github.com/gethinode/mod-fontawesome v1.7.3/go.mod h1:Ki1qkWEOiF0hQpCgWeZRw+HkpL6nd1DxKFptU0O2feI=
github.com/gethinode/mod-fontawesome v1.8.0 h1:YEuCmvCdzcemF1eFK35Wnp1asKKO3/xbxGArnjq6PRY=
github.com/gethinode/mod-fontawesome v1.8.0/go.mod h1:uvuC2YL8mdXNp6NRzFOu4TWsHvtY9AZ8YxJkF23/M/8=
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=
@@ -74,6 +88,8 @@ github.com/gethinode/mod-katex v1.0.3 h1:fvlUWqcUQqv2zRNM2kfmJ6GhXA816Tl1nfVrUkm
github.com/gethinode/mod-katex v1.0.3/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.4 h1:NozgWPFnHhx1W+E9DnwMTRpvxPbdqdANEtwp9N3/mj8=
github.com/gethinode/mod-katex v1.0.4/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-katex v1.0.5 h1:AVhcTINYory0ygChQERf8PcyJkbT1oqhmLRF6ESnWOY=
github.com/gethinode/mod-katex v1.0.5/go.mod h1:byAfpI3wuqNJIooTGVEGc1cjBhhCy4+CcK1H6495MYg=
github.com/gethinode/mod-leaflet v0.2.3 h1:QQI4h+IH0jZ7fx4q0um2YIEiYBoW3OAfW8qHzbRCDPk=
github.com/gethinode/mod-leaflet v0.2.3/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.3.1 h1:H5MaOa+BB1KuVw7abTqfIn/SNzzRsAyx/WQoSe+2Ykc=
@@ -84,6 +100,8 @@ github.com/gethinode/mod-leaflet v0.3.4 h1:oY+YQ0JiJuhFQNrk9XgFdg0NMsTUQPXNfnILp
github.com/gethinode/mod-leaflet v0.3.4/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.3.5 h1:69Bv/6zRXhbcTzo7TMr58h3ry47srHRpM1k81LrLbYU=
github.com/gethinode/mod-leaflet v0.3.5/go.mod h1:uGggt87x4Fw7wBoJpSiUvNkYg+s/Ujne7klAX2rxMRk=
github.com/gethinode/mod-leaflet v0.4.0 h1:Xc6c1UTf4m1saQLFfFWT5sEpwj25xVGuS8csGC82UUI=
github.com/gethinode/mod-leaflet v0.4.0/go.mod h1:yr+bUKAstifdB16mbYh69OayAmgPOlNUubAmVn5eL2M=
github.com/gethinode/mod-lottie v1.0.0 h1:1CUZMcgN5FAyjjyuP3qkaOQ6M5sv6HUAbosW4sIT5VE=
github.com/gethinode/mod-lottie v1.0.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.0.1 h1:+IE7xtnSVQpJS56oBJq9RWKZeFEfxrOZAqE3BSrS/u0=
@@ -96,7 +114,19 @@ github.com/gethinode/mod-lottie v1.2.0 h1:9S0Y4PlEO66dIvFxayatmDEf8WWxqbLNLi4z56
github.com/gethinode/mod-lottie v1.2.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.3.0 h1:vQ8CXkjdp2IeFskTzu+ZnKOEio8GtN08urVK+oCH81E=
github.com/gethinode/mod-lottie v1.3.0/go.mod h1:erRCgSL2FCfKHI0jQbSpM+g0jXl7SjKVJrh7kWGteKs=
github.com/gethinode/mod-lottie v1.4.0 h1:0Ls1Q/8p0gQpuX9+dtfNGKcjBNeymjE7gERdnN3lCCE=
github.com/gethinode/mod-lottie v1.4.0/go.mod h1:57eu6glS5oxkew2dB1P2zsbhw444aRX0XfuyDe7k/dk=
github.com/gethinode/mod-lottie v1.4.1 h1:RzCjYsxFPqyBsYAcdPeUP0rvF+hD9eEl7NrxuaRiKQQ=
github.com/gethinode/mod-lottie v1.4.1/go.mod h1:QjKlEmYbekrNGwa9EdFlPcXxwWWcraJUQ6xIL+syA60=
github.com/gethinode/mod-utils v1.0.0 h1:cqHm2xS5uDiJzRm1KfHaNbq6uMVDKLhQa8/BuTZ1nhY=
github.com/gethinode/mod-utils v1.0.0/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
github.com/gethinode/mod-utils v1.0.1 h1:jhZGlGFHHL1f5HXbBMXfiZ2gCz4TVafAzjnRPTIBSEE=
github.com/gethinode/mod-utils v1.0.1/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
github.com/gethinode/mod-utils v1.0.2 h1:0b3i+/bBHY1Td9N6khDbL1nf3d5HGc4QzI4BbEWHoU4=
github.com/gethinode/mod-utils v1.0.2/go.mod h1:ONJm3pHCq7nvaPNjusLZNCeCbhOhSBH4HVKHwK1FdYE=
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=
github.com/nextapps-de/flexsearch v0.0.0-20240108021025-afd75f742f22/go.mod h1:5GdMfPAXzbA2gXBqTjC6l27kioSYzHlqDMh0+wyx7sU=
github.com/twbs/bootstrap v5.3.2+incompatible h1:tuiO5acc6xnZUR77Sbi5aKWXxjYxbmsSbJwYrhAKoQQ=
github.com/twbs/bootstrap v5.3.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=

View File

@@ -15,6 +15,7 @@
"link",
"meta",
"nav",
"ol",
"p",
"path",
"script",
@@ -29,11 +30,14 @@
"active",
"align-items-center",
"align-self-center",
"align-self-end",
"bg-body",
"bg-opacity-10",
"bg-primary",
"bottom-0",
"bottom-bar",
"breadcrumb",
"breadcrumb-item",
"btn",
"btn-close",
"btn-primary",
@@ -41,8 +45,10 @@
"col-12",
"col-6",
"col-md-2",
"col-md-3",
"col-md-4",
"col-md-8",
"col-md-9",
"col-sm-12",
"collapse",
"collapsed",
@@ -85,7 +91,6 @@
"form-control",
"fs-3",
"fs-5",
"fw-30",
"fw-bold",
"hstack",
"img-fluid",
@@ -144,7 +149,6 @@
"row-cols-1",
"row-cols-2",
"row-cols-md-2",
"row-cols-sm-2",
"row-cols-sm-3",
"search",
"search-input",

View File

@@ -30,9 +30,9 @@
- id: shareSystem
translation: "Betriebssystem"
- id: copyToClipboard
translation: "In Zwischenablage kopieren"
translation: "In die Zwischenablage kopieren"
- id: copiedToClipboard
translation: "Der Text befindet sich in die Zwischenablage"
translation: "befindet sich in der Zwischenablage"
- id: link
translation: "Link zur Webseite"
- id: code

View File

@@ -27,6 +27,18 @@
translation: "More {{ . }}"
- id: emptyList
translation: "No articles found"
- id: emptyTags
translation: "No tags found"
# Languages
- id: lang_de
translation: "German"
- id: lang_en
translation: "English"
- id: lang_nl
translation: "Dutch"
- id: lang_fr
translation: "French"
# Sharing
- id: shareLink
@@ -121,3 +133,17 @@
translation: "Show"
- id: comments
translation: "Comments"
# Arguments
- id: name
translation: "Name"
- id: type
translation: "Type"
- id: required
translation: "Required"
- id: default
translation: "Default"
- id: comment
translation: "Comment"
- id: supportedValues
translation: "Supported values"

View File

@@ -25,6 +25,20 @@
translation: "Articles"
- id: more
translation: "Plus {{ . }}"
- id: emptyList
translation: "Aucun articles trouvé"
- id: emptyTags
translation: "Aucun tags trouvé"
# Languages
- id: lang_de
translation: "Allemand"
- id: lang_en
translation: "Anglais"
- id: lang_nl
translation: "Néerlandais"
- id: lang_fr
translation: "Français"
# Sharing
- id: shareLink
@@ -39,6 +53,8 @@
translation: "Lien"
- id: code
translation: "Code"
- id: download
translation: "Télécharger l'article"
# Pagination
- id: paginationNav
@@ -75,6 +91,8 @@
translation: "Sur cette page"
- id: seeAlso
translation: "Voir également"
- id: sectionMenu
translation: "Selectionner un topic"
# Sidebar
- id: toggleSidebar
@@ -115,3 +133,17 @@
translation: "Afficher"
- id: comments
translation: "Commentaires"
# Arguments
- id: name
translation: "Nom"
- id: type
translation: "Type"
- id: required
translation: "Requis"
- id: default
translation: "Défaut"
- id: comment
translation: "Commentaire"
- id: supportedValues
translation: "Valeurs supportées"

View File

@@ -25,6 +25,18 @@
translation: "Meer {{ . }}"
- id: emptyList
translation: "Geen artikelen gevonden"
- id: emptyTags
translation: "Geen tags gevonden"
# Languages
- id: lang_de
translation: "Duits"
- id: lang_en
translation: "Engels"
- id: lang_nl
translation: "Nederlands"
- id: lang_fr
translation: "Frans"
# Sharing
- id: shareLink
@@ -119,3 +131,18 @@
translation: "Tonen"
- id: comments
translation: "Reacties"
# Arguments
- id: name
translation: "Naam"
- id: type
translation: "Type"
- id: required
translation: "Verplicht"
- id: default
translation: "Standaardwaarde"
- id: comment
translation: "Toelichting"
- id: supportedValues
translation: "Toegestane waarden"

135
i18n/zh-hans.yaml Normal file
View File

@@ -0,0 +1,135 @@
# Single pages
- id: postedOnDate
translation: "发布于 {{ . }}"
- id: lastModified
translation: "最后修改于 {{ . }}"
- id: read
translation: "阅读"
- id: minutesShort
translation: "分钟"
- id: words
translation: "字"
- id: photoFull
translation: "照片由 %s 于 %s 拍摄"
- id: photoShort
translation: "照片由 {{ . }} 拍摄"
- id: photoOn
translation: "于"
- id: draft
translation: "草稿"
# List pages
- id: article
translation: "文章"
- id: articles
translation: "文章"
- id: more
translation: "更多 {{ . }}"
- id: emptyList
translation: "没有找到文章"
- id: emptyTags
translation: "没有找到标签"
# Languages
- id: lang_de
translation: "German"
- id: lang_en
translation: "English"
- id: lang_nl
translation: "Dutch"
- id: lang_fr
translation: "French"
# Sharing
- id: shareLink
translation: "分享至 {{ . }}"
- id: shareSystem
translation: "系统"
- id: copyToClipboard
translation: "复制到剪贴板"
- id: copiedToClipboard
translation: "已复制到剪贴板"
- id: link
translation: "链接"
- id: code
translation: "代码"
- id: download
translation: "下载文章"
# Pagination
- id: paginationNav
translation: "页面导航"
- id: paginationPrevious
translation: "上一页"
- id: paginationNext
translation: "下一页"
- id: paginationFirst
translation: "第一页"
- id: paginationLast
translation: "最后一页"
# Navigation
- id: colorMode
translation: "切换主题"
- id: colorLight
translation: "亮色"
- id: colorDark
translation: "暗色"
- id: colorAuto
translation: "自动"
- id: toggleMainNav
translation: "切换主导航"
- id: home
translation: "首页"
- id: languageSwitcherLabel
translation: "语言"
- id: close
translation: "关闭"
# Table of contents
- id: toc
translation: "本页目录"
- id: seeAlso
translation: "参见"
- id: sectionMenu
translation: "选择一个主题"
# Sidebar
- id: toggleSidebar
translation: "切换侧边栏导航"
# Feature
- id: addedFeature
translation: "新增于 {{ . }}"
- id: deprecatedFeature
translation: "已弃用于 {{ . }}"
# Versioning
- id: latest
translation: "最新"
- id: allVersions
translation: "所有版本"
- id: newerVersionAlert
translation: "有一个更新版本的 {{ . }}!"
# 404 page
- id: pageNotFound
translation: "您访问的页面不存在或发生了其他错误。请返回我们的{{ . }}。"
- id: pageNotFoundTitle
translation: "页面未找到"
- id: pageNotFoundHome
translation: "首页"
# Footer
- id: copyright
translation: "Copyright"
- id: rights
translation: "版权所有"
- id: poweredBy
translation: "由 {{ . }} 提供支持。"
# Comments
- id: show
translation: "显示"
- id: comments
translation: "评论"

135
i18n/zh-hant.yaml Normal file
View File

@@ -0,0 +1,135 @@
# Single pages
- id: postedOnDate
translation: "發佈於 {{ . }}"
- id: lastModified
translation: "最後修改於 {{ . }}"
- id: read
translation: "閱讀"
- id: minutesShort
translation: "分鐘"
- id: words
translation: "字"
- id: photoFull
translation: "照片由 %s 於 %s 拍攝"
- id: photoShort
translation: "照片由 {{ . }} 拍攝"
- id: photoOn
translation: "於"
- id: draft
translation: "草稿"
# List pages
- id: article
translation: "文章"
- id: articles
translation: "文章"
- id: more
translation: "更多 {{ . }}"
- id: emptyList
translation: "沒有找到文章"
- id: emptyTags
translation: "沒有找到標籤"
# Languages
- id: lang_de
translation: "German"
- id: lang_en
translation: "English"
- id: lang_nl
translation: "Dutch"
- id: lang_fr
translation: "French"
# Sharing
- id: shareLink
translation: "分享至 {{ . }}"
- id: shareSystem
translation: "系統"
- id: copyToClipboard
translation: "複製到剪貼板"
- id: copiedToClipboard
translation: "已複製到剪貼板"
- id: link
translation: "連結"
- id: code
translation: "程式碼"
- id: download
translation: "下載文章"
# Pagination
- id: paginationNav
translation: "頁面導航"
- id: paginationPrevious
translation: "上一頁"
- id: paginationNext
translation: "下一頁"
- id: paginationFirst
translation: "第一頁"
- id: paginationLast
translation: "最後一頁"
# Navigation
- id: colorMode
translation: "切換主題"
- id: colorLight
translation: "亮色"
- id: colorDark
translation: "暗色"
- id: colorAuto
translation: "自動"
- id: toggleMainNav
translation: "切換主導航"
- id: home
translation: "首頁"
- id: languageSwitcherLabel
translation: "語言"
- id: close
translation: "關閉"
# Table of contents
- id: toc
translation: "本頁目錄"
- id: seeAlso
translation: "參見"
- id: sectionMenu
translation: "選擇一個主題"
# Sidebar
- id: toggleSidebar
translation: "切換側邊欄導航"
# Feature
- id: addedFeature
translation: "新增於 {{ . }}"
- id: deprecatedFeature
translation: "已棄用於 {{ . }}"
# Versioning
- id: latest
translation: "最新"
- id: allVersions
translation: "所有版本"
- id: newerVersionAlert
translation: "有一個更新版本的 {{ . }}!"
# 404 page
- id: pageNotFound
translation: "您訪問的頁面不存在或發生了其他錯誤。請返回我們的{{ . }}。"
- id: pageNotFoundTitle
translation: "頁面未找到"
- id: pageNotFoundHome
translation: "首頁"
# Footer
- id: copyright
translation: "Copyright"
- id: rights
translation: "版權所有"
- id: poweredBy
translation: "由 {{ . }} 提供支持。"
# Comments
- id: show
translation: "顯示"
- id: comments
translation: "評論"

View File

@@ -1,4 +1,4 @@
{{ define "main"}}
{{ define "main" }}
<div class="d-flex flex-fill">
<div class="container-xxl my-auto">
<div class="text-center">

View File

@@ -1,5 +1,12 @@
{{- define "partials/optional-scripts.html" -}}
{{- $modules := site.Params.modules.optional | intersect .Params.modules -}}
{{ $page_modules := slice }}
{{ if reflect.IsMap .Params.modules }}
{{ $page_modules = .Params.modules }}
{{ else }}
{{ $page_modules = $page_modules | append .Params.modules }}
{{ end }}
{{- $modules := site.Params.modules.optional | intersect $page_modules -}}
{{- range $index, $mod := $modules -}}
{{- $filename := printf "js/%s.bundle.js" $mod -}}
{{- $match := printf "js/modules/%s/**.js" $mod -}}
@@ -48,6 +55,9 @@
{{ $sections := partial "utilities/GetSections.html" (dict "page" . "loading" $loading) }}
{{- $.Scratch.Set "sections" $sections -}}
{{- /* Define main breakpoint */ -}}
{{- $.Scratch.Set "breakpoint" (partial "utilities/GetBreakpoint.html") }}
<!doctype html>
<html lang="{{ .Site.Language.Lang }}" class="no-js">
<head>
@@ -60,7 +70,7 @@
<div class="d-flex flex-column {{ if $fullCover }} fullscreen{{ end }}{{ if .IsHome }} {{ .Site.Params.home.style }}{{ end }}">
{{- partial "assets/navbar.html" (dict
"page" .
"fixed" (string site.Params.navigation.fixed)
"fixed" site.Params.navigation.fixed
"color" site.Params.navigation.color
"style" (default "light" site.Params.navigation.style)
"size" (default "md" site.Params.navigation.size))

View File

@@ -11,7 +11,7 @@
<div class="container-xxl p-4 px-xxl-0">
{{- if ne $layout "featured" -}}
{{ if and (not $page.IsHome) site.Params.navigation.breadcrumb }}
<div>{{ partial "assets/breadcrumb.html" $page }}</div>
<div>{{ partial "assets/breadcrumb.html" (dict "page" $page) }}</div>
{{ end -}}
{{- end -}}

View File

@@ -1,23 +1,27 @@
{{- $sections := $.Scratch.Get "sections" -}}
{{- $fullCover := $.Scratch.Get "fullCover" -}}
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
{{- $layout := .Params.layout -}}
<div class="row row-cols-1 row-cols-sm-2">
<div class="col col-sm-12 col-md-8">
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
<div class="col-12 col-{{ $breakpoint.current }}-9">
{{ if not .IsHome }}
{{ with .Title }}<p id="{{ anchorize . }}" class="display-4 mt-5{{ if and $.IsHome site.Params.home.centerHeadline }} text-center{{ end }}">{{ . }}</p>{{ end }}
{{ end }}
{{ if (.Params.menu) }}
{{- partial "assets/section-menu.html" . -}}
{{- partial "assets/section-menu.html" (dict "page" .) -}}
{{- end -}}
{{- $loading := "" -}}
{{- if or (eq $layout "featured") .IsHome -}}
{{- if $fullCover }}{{ $loading = site.Params.main.loading }}{{ end }}
{{ end }}
{{- $content := partial "utilities/ProcessContent" (dict "page" . "raw" .RawContent "loading" $loading) -}}
{{ $content | safeHTML }}
{{- $content | safeHTML -}}
{{ if and (and $sections (eq (len $sections) 1)) (not $content) }}
<p class="pt-4">{{- T "emptyList" }}.</p>
{{ end }}
</div>
</div>
<div class="col col-{{ $breakpoint.current }}-3 d-none d-{{ $breakpoint.current }}-block">
{{/* Empty in default layout */}}
</div>
</div>

View File

@@ -1,37 +1,27 @@
{{- define "partials/single-main.html" -}}
{{ if .Site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" . }}{{ end -}}
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
{{ if .Site.Params.navigation.breadcrumb }}{{ partial "assets/breadcrumb.html" (dict "page" .) }}{{ end -}}
{{ .Render "single/header" }}
{{- if and .Site.Params.navigation.toc .Params.includeToc | default true -}}
<div class="d-md-none pb-5">{{ partial "assets/toc-dropdown.html" . }}</div>
<div class="d-{{ $breakpoint.current }}-none pb-5">{{ partial "assets/toc-dropdown.html" (dict "page" .) }}</div>
{{- end -}}
{{ .Render "single/body" }}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}
{{ .Render "single/footer" }}
{{- if and .Site.Params.comments.enabled .Params.showComments | default true -}}
<hr>
{{ partial "assets/comments.html" . }}
{{ end -}}
{{ end -}}
{{ define "main" -}}
{{- $download := .Params.download -}}
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}}
{{- end -}}
{{- $menu := .Scratch.Get "sidebar" -}}
{{- $version := .Scratch.Get "version" -}}
{{- $breakpoint := $.Scratch.Get "breakpoint" -}}
{{ $sidebar := "" }}
{{- $hasSidebar := .Site.Params.navigation.sidebar | default true -}}
{{ if and $menu $hasSidebar }}{{ $sidebar = partial "assets/sidebar.html" (dict "page" . "menu" $menu "version" $version) }}{{ end }}
{{ $toc := "" }}
{{- $hasTOC := and .Site.Params.navigation.toc .Params.includeToc | default true -}}
{{ if $hasTOC }}{{ $toc = partial "assets/toc.html" (dict "page" . "download" $download) }}{{ end -}}
{{ $toc := .Render "single/panel-toc" }}
{{ with $sidebar -}}
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvass-sidebar" aria-inledby="offcanvas-label">
@@ -46,34 +36,24 @@
{{ end }}
<div class="container-xxl flex-fill p-4 px-xxl-0">
{{ if and $menu $hasSidebar -}}
<div class="row row-cols-md-2 row-cols-lg-3">
<div class="col col-md-3 col-lg-2 d-none pt-5 d-md-block sidebar-overflow sticky-top">
{{ if $hasSidebar -}}
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2 row-cols-{{ $breakpoint.next }}-3">
<div class="col col-{{ $breakpoint.next }}-2 d-none d-{{ $breakpoint.next }}-block sidebar-overflow sticky-top pt-5">
{{ $sidebar | safeHTML }}
</div>
<div class="col col-md-9 col-lg-8 mb-5 p-4">
<div class="col-12 col-{{ $breakpoint.current }}-9 col-{{ $breakpoint.next }}-8 mb-5 p-4">
{{ partial "partials/single-main.html" . }}
</div>
<div class="col col-lg-2 d-none d-lg-block pt-5">
<div class="col col-{{ $breakpoint.current }}-3 col-{{ $breakpoint.next }}-2 d-none d-{{ $breakpoint.current }}-block pt-5">
{{ $toc | safeHTML }}
</div>
</div>
{{ else if $hasSidebar }}
<div class="row row-cols-1 row-cols-sm-3">
<div class="col col-md-2 d-none d-md-block"></div>
<div class="col col-sm-12 col-md-8">
{{ partial "partials/single-main.html" . }}
</div>
<div class="col col-md-2 d-none d-md-block">
{{ $toc | safeHTML }}
</div>
</div>
{{ else }}
<div class="row row-cols-1 row-cols-sm-2">
<div class="col col-sm-12 col-md-9">
<div class="row row-cols-1 row-cols-{{ $breakpoint.current }}-2">
<div class="col col-{{ $breakpoint.prev }}-12 col-{{ $breakpoint.current }}-9">
{{ partial "partials/single-main.html" . }}
</div>
<div class="col col-md-3 d-none d-md-block">
<div class="col col-{{ $breakpoint.current }}-3 d-none d-{{ $breakpoint.current }}-block">
{{ $toc | safeHTML }}
</div>
</div>

View File

@@ -1,2 +1,3 @@
{{- partial "single/thumbnail.html" (dict "page" . "class" "mb-5") -}}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}

View File

@@ -1,12 +1,31 @@
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
{{- $metadata := "full" -}}
{{ if isset .Params "metadata" }}
{{ $metadata = .Params.metadata }}
{{ else }}
{{- with (index site.Params.pages .Type ) -}}
{{ if isset . "metadata" }}{{ $metadata = (index . "metadata") }}{{ end }}
{{- end -}}
{{ end }}
{{- $supportedStates := slice "full" "original" "none" -}}
{{- if not (in $supportedStates $metadata) -}}
{{- errorf "layout [_default/single/header.html] - Invalid value for param 'metadata': %s" $metadata -}}
{{- end -}}
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
<small class="text-body-secondary text-uppercase">
{{ $datestr | i18n "postedOnDate" -}}
{{ if ne $datestr $lastmodstr -}}&nbsp;({{ $lastmodstr | i18n "lastModified" }}){{ end }} &bull;
{{ .ReadingTime | lang.FormatNumber 0 }}&nbsp;{{ i18n "minutesShort" }} {{ i18n "read" }} &bull;
{{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }}
</small>
{{ if ne $metadata "none" }}
{{ $lastmodstr := (partial "utilities/date.html" (dict "date" .Lastmod "format" "long")) -}}
{{ $datestr := (partial "utilities/date.html" (dict "date" .Date "format" "long")) -}}
<small class="text-body-secondary text-uppercase">
{{ $datestr | i18n "postedOnDate" -}}
{{ if eq $metadata "full" }}
{{ if ne $datestr $lastmodstr -}}&nbsp;({{ $lastmodstr | i18n "lastModified" }}){{ end }}
{{ end }}
&bull;
{{ .ReadingTime | lang.FormatNumber 0 }}&nbsp;{{ i18n "minutesShort" }} {{ i18n "read" }} &bull;
{{ .WordCount | lang.FormatNumber 0 }}&nbsp;{{ i18n "words" }}
</small>
{{ end }}
{{- if gt (len (.GetTerms "tags")) 0 -}}
<div class="mt-3">
@@ -29,5 +48,5 @@
</div>
</div>
{{- end -}}
{{ partial "assets/sharing.html" . }}
{{ partial "assets/sharing.html" (dict "page" .) }}
<p class="lead mb-5 mt-3">{{ .Description }}</p>

View File

@@ -0,0 +1,42 @@
{{- $download := .Params.download -}}
{{- if and $download (not (fileExists (path.Join "static" $download))) -}}
{{- errorf "Cannot find download file for page '%s': %s" .File.Path $download -}}
{{- end -}}
{{- $toc := .Site.Params.navigation.toc -}}
{{ if $toc }}
{{ if isset .Params "includeToc" }}
{{ $toc = .Params.includeToc }}
{{ else }}
{{- with (index site.Params.pages .Type) -}}
{{ if isset . "includetoc" }}
{{ $toc = index . "includetoc" }}
{{ if ne (printf "%T" $toc) "bool" }}
{{ errorf "Expected bool value in site parameters: pages.%s.includeToc" $.Type }}
{{ end }}
{{ end }}
{{- end -}}
{{ end }}
{{ end }}
<div class="toc toc-sidebar mb-5 my-md-0 ps-xl-3 mb-lg-5 p-3 text-body-secondary sticky-top">
{{ with $download }}
{{ $title := (T "download" ) }}
{{ $lang := strings.TrimPrefix "." (path.Ext (path.BaseName .)) }}
{{ if and $lang (ne (string site.LanguageCode) $lang) }}
{{ range site.Languages }}
{{ if eq .LanguageCode $lang }}
{{ $title = printf "%s (%s)" (T "download") (T (printf "lang_%s" .LanguageCode)) }}
{{ end }}
{{ end }}
{{ end }}
<div class="mb-5 text-center">
{{ $attr := dict "download" (path.Base .) }}
{{ partial "assets/button.html" (dict "href" . "title" $title "color" "primary" "outline" "true" "icon" "fas download" "size" "sm" "attributes" $attr) }}
</div>
{{ end }}
{{ if $toc }}
{{ partial "assets/toc.html" (dict "page" .) }}
{{ end -}}
</div>

View File

@@ -1 +1 @@
{{/* Intentionally left blank to suppress thumbnail */}}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}

View File

@@ -1,3 +1,3 @@
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }}
{{ partial "assets/sharing.html" (dict "page" .) }}
<p class="lead mb-5">{{ .Description }}</p>

View File

@@ -1 +1 @@
{{/* Intentionally left blank to suppress thumbnail */}}
{{ partial "utilities/ProcessContent" (dict "page" .Page "raw" .RawContent) }}

View File

@@ -1,3 +1,3 @@
{{ with .Title }}<p class="display-4 mt-5">{{ . }}</p>{{ end }}
{{ partial "assets/sharing.html" . }}
{{ partial "assets/sharing.html" (dict "page" .) }}
<p class="lead mb-5">{{ .Description }}</p>

View File

@@ -1,6 +1,24 @@
<!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "breadcrumb" "args" . "group" "partial") }}
{{- errorf "partial [assets/breadcrumb.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{ $page := .page }}
<!-- Main code -->
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
{{- range $index, $item := .Page.Ancestors.Reverse -}}
{{- range $index, $item := $page.Ancestors.Reverse -}}
{{- $title := .LinkTitle -}}
{{- if .IsHome }}{{ $title = T "home" }}{{ end -}}
{{- $address := or .RelPermalink (.Params.Redirect | relLangURL) -}}
@@ -10,6 +28,6 @@
<li class="breadcrumb-item">{{ $title }}</li>
{{ end }}
{{- end -}}
<li class="breadcrumb-item active" aria-current="page">{{ .Page.LinkTitle }}</li>
<li class="breadcrumb-item active" aria-current="page">{{ $page.LinkTitle }}</li>
</ol>
</nav>

View File

@@ -1,73 +1,32 @@
<!--
Displays a button. The shortcode supports the following arguments:
"title" Title of the button, required unless icon is set.
"href" Optional address for the button or hyperlink.
"id" Optional id of the button, to be used in the DOM.
"state" Optional state of the button, either "enabled" (default), "disabled", "active", or "inactive".
"size" Optional size of the button, either "sm", "md" (default), or "lg".
"color" Optional theme color of the element, either "primary" (default), "secondary", "success",
"danger", "warning", "info", "light", "dark", "white", or "black".
"outline" Optional flag indicating the button should be outlined, either "false" (default) or "true".
"badge" Optional positioned badge to display on top of the button.
"label" Optional assistive label for the button or badge. The label is applied to the badge instead of the
button when a badge has been defined. Default value of the button aria-label is its title.
"tooltip" Optional text to display in a tooltip. Cannot be used together with collapse. Ignored for active/
inactive buttons.
"collapse" Optional panel to collapse. Cannot be used together with tooltip. Ignored for active/inactive buttons.
"type" Optional type of the element, either "link" or "button" (default).
"placement" Optional position of the tooltip: "top" (default), "bottom", "left", or "right".
"class" Optional class attribute of the button element, e.g. “toc-button”.
"icon" Font Awesome icon class attribute, required unless title is set. An example value is "fas sort".
"order" Optional order of the icon, either "first" or "last" (default).
"justify" Optional justification of the button title and icon, either "start", "end", "center" (default),
"between", "around", or "evenly".
"toast" Optional id of the toast to display when the button is clicked.
"clipboard" Optional text to be copied to the clipboard when the button is clicked.
"cue" Optional flag to indicate if an external link should show a visual cue, defaults to setting
"main.externalLinks.cue" in the site's parameters.
"tab" Optional flag to indicate if an external link should open in a new tab, defaults to setting
"main.externalLinks.tab" in the site's parameters.
"attributes" Optional dictionary of key-value pairs added as custom attributes to the button element ('<a>').
"spacing" Optional flag to add spacing to the inline button, defaults to "true".
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "button" "args" . "group" "partial") }}
{{- errorf "partial [assets/button.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $title := trim .title " \r\n" -}}
{{- $icon := .icon }}
{{- if not (or $title $icon) -}}
{{- errorf "partial [assets/button.html] - Missing element title or icon" -}}
{{ $error = true }}
{{- end -}}
{{- $id := .id }}
{{- $state := "enabled" -}}
{{- with .state }}{{ $state = . }}{{ end -}}
{{- $supportedStates := slice "enabled" "disabled" "active" "inactive" -}}
{{- if not (in $supportedStates $state) -}}
{{- errorf "partial [assets/button.html] - Invalid value for param 'state': %s" $state -}}
{{- end -}}
{{- $size := "md" -}}
{{- with .size }}{{ $size = . }}{{ end -}}
{{- $supportedSizes := slice "sm" "md" "lg" -}}
{{- if not (in $supportedSizes $size) -}}
{{- errorf "partial [assets/button.html] - Invalid value for param 'size': %s" $size -}}
{{- end -}}
{{- $color := "primary" -}}
{{- with .color }}{{ $color = . }}{{ end -}}
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" -}}
{{- if not (in $supportedColors $color) -}}
{{- errorf "partial [assets/button.html] - Invalid value for param 'color': %s" $color -}}
{{- end -}}
{{- $outline := false -}}
{{- with .outline }}{{ $outline = . }}{{ end -}}
{{- $badge := "" -}}
{{- with .badge }}{{ $badge = . }}{{ end -}}
{{- $label := "" -}}
{{- with .label }}{{ $label = . }}{{ end -}}
{{- $state := .state | default "enabled" -}}
{{- $size := .size | default "md" -}}
{{- $color := .color | default "primary" -}}
{{- $outline := .outline | default false -}}
{{- $badge := .badge | default "" -}}
{{- $label := .label | default $title -}}
{{- $tooltip := "" -}}
{{- if not (strings.HasSuffix $state "active") -}}
@@ -75,58 +34,28 @@
{{- end -}}
{{- $href := .href -}}
{{- $collapse := "" -}}
{{- if not (strings.HasSuffix $state "active") -}}
{{- with .collapse }}{{ $collapse = . }}{{ $href = printf "#%s" . }}{{ end -}}
{{- end -}}
{{- if $tooltip -}}
{{- if $collapse -}}
{{- errorf "partial [assets/button.html] - Cannot use tooltip and collapse at the same time" -}}
{{- end -}}
{{- if and $tooltip $collapse -}}
{{- errorf "partial [assets/button.html] - Cannot use tooltip and collapse at the same time" -}}
{{ $error = true }}
{{- end -}}
{{- $type := "button" -}}
{{- with .type }}{{ $type = . }}{{ end -}}
{{- $supportedTypes := slice "button" "link" -}}
{{- if not (in $supportedTypes $type) -}}
{{- errorf "partial [assets/button.html] - Invalid value for param 'type': %s" $type -}}
{{- end -}}
{{- $placement := "top" -}}
{{- with .placement }}{{ $placement = . }}{{ end -}}
{{- $supportedPlacements := slice "top" "bottom" "left" "right" -}}
{{- if not (in $supportedPlacements $placement) -}}
{{- errorf "partial [assets/button.html] - Invalid value for param 'placement': %s" $placement -}}
{{- end -}}
{{- $class := .class }}
{{- $type := .type | default "button" -}}
{{- $placement := .placement | default "top" -}}
{{- $class := .class | default "" }}
{{ with $badge }}{{ $class = printf "%s me-3" $class }}{{ end }}
{{- $order := "last" -}}
{{- with .order }}{{ $order = . }}{{ end -}}
{{- $supportedOrders := slice "first" "last" -}}
{{- if not (in $supportedOrders $order) -}}
{{- errorf "partial [assets/button.html] - Invalid value for param 'order': %s" $order -}}
{{- end -}}
{{- $justify := "center" -}}
{{- with .justify }}{{ $justify = . }}{{ end -}}
{{- $supportedJustify := slice "start" "end" "center" "between" "around" "evenly" -}}
{{- if not (in $supportedJustify $justify) -}}
{{- errorf "partial [assets/button.html] - Invalid value for param 'justify': %s" $justify -}}
{{- end -}}
{{- $order := .order | default "last" -}}
{{- $justify := .justify | default "center" -}}
{{- $toast := .toast -}}
{{- $clipboard := .clipboard -}}
{{- $cue := .cue | default site.Params.main.externalLinks.cue -}}
{{- $tab := .tab | default site.Params.main.externalLinks.tab -}}
{{- $isExternal := ne (urls.Parse (absURL $href)).Host (urls.Parse site.BaseURL).Host -}}
{{- $target := "" -}}
{{- $rel := "" -}}
{{- $spacing := .spacing | default true -}}
{{- if $isExternal -}}
@@ -143,31 +72,35 @@
{{- $attributes := .attributes -}}
<a aria-label="{{ (or $label $title) | safeHTML }}" {{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
{{- with $id }} id="{{ . }}"{{ end -}}
{{- with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}}
{{- with $toast }} data-toast-target="{{ $toast }}"{{ end -}}
{{- with $clipboard }} data-clipboard="{{ $clipboard }}"{{ end -}}
{{- if eq $type "button" }} class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class -}}"
role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end -}}
{{- else }} class="link-{{ $color }} position-relative {{ $class }}"{{ end -}}
{{- with $tooltip }} data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end -}}
{{- with $collapse }} data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end -}}
{{- if eq $state "active" }} data-bs-toggle="button" aria-pressed="true"{{ end -}}
{{- if eq $state "inactive" }} data-bs-toggle="button" aria-pressed="false"{{ end -}}
{{- range $key, $val := $attributes -}}
{{ printf " %s=\"%s\"" $key $val | safeHTMLAttr }}
{{- end -}}
>
<div class="d-flex justify-content-{{ $justify }}">
<div class="my-auto">{{ $title | safeHTML }}</div>
{{- with $icon }}<div class="align-self-center{{ if $title }}{{ if eq $order "first" }} order-first pe-1{{ else }} ps-1{{ end }}{{ end }}">{{ partial "assets/icon.html" (dict "icon" $icon "spacing" false) }}</div>{{ end }}
</div>
<!-- Main code -->
{{ if not $error }}
<a aria-label="{{ (or $label $title) | safeHTML }}"
{{ if ne $state "disabled" }}{{ with $href }}href="{{ . }}"{{ end }}{{ end -}}
{{- with $id }} id="{{ . }}"{{ end -}}
{{- with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end -}}
{{- with $toast }} data-toast-target="{{ $toast }}"{{ end -}}
{{- with $clipboard }} data-clipboard="{{ $clipboard }}"{{ end -}}
{{- if eq $type "button" }} class="btn btn-{{ if $outline }}outline-{{ end }}{{ $color }} {{ if ne $size "md"}}btn-{{ $size }}{{ end }} position-relative {{ if in (slice "disabled" "active") $state }}{{ $state }}{{ end }} {{ $class -}}"
role="button" {{ if eq $state "disabled" }}aria-disabled="true"{{ end -}}
{{- else }} class="link-{{ $color }} position-relative {{ $class }}"{{ end -}}
{{- with $tooltip }} data-bs-toggle="tooltip" data-bs-title="{{ . }}" data-bs-placement="{{ $placement }}"{{ end -}}
{{- with $collapse }} data-bs-toggle="collapse" aria-expanded="false" aria-controls="{{ . }}"{{ end -}}
{{- if eq $state "active" }} data-bs-toggle="button" aria-pressed="true"{{ end -}}
{{- if eq $state "inactive" }} data-bs-toggle="button" aria-pressed="false"{{ end -}}
{{- range $key, $val := $attributes -}}
{{ printf " %s=\"%s\"" $key $val | safeHTMLAttr }}
{{- end -}}
>
<div class="d-flex justify-content-{{ $justify }}">
<div class="my-auto">{{ $title | safeHTML }}</div>
{{- with $icon }}<div class="align-self-center{{ if $title }}{{ if eq $order "first" }} order-first pe-1{{ else }} ps-1{{ end }}{{ end }}">{{ partial "assets/icon.html" (dict "icon" $icon "spacing" false) }}</div>{{ end }}
</div>
{{- with $badge }}
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
{{ . }}
{{ with $label }}<span class="visually-hidden">{{ . }}</span>{{ end }}
</span>
{{- end -}}
</a>{{ if $spacing }}&nbsp;{{- end }}
{{- with $badge }}
<span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-danger">
{{ . }}
{{ with $label }}<span class="visually-hidden">{{ . }}</span>{{ end }}
</span>
{{- end -}}
</a>{{ if $spacing }}&nbsp;{{- end }}
{{ end }}

View File

@@ -1,72 +1,46 @@
<!--
Displays a grid of Bootstrap cards with 1 to 5 columns. The cards are rendered using a provided list of pages.
Cards on the same row are aligned to each other. The grid renders pages up to a provided maximum amount. The
remaining items are accessible via either a paginator or button to a list page (default behavior). Be aware a page
can only contain one paginator at a time.
The shortcode supports the following arguments:
"page" Required context of the current page.
"list" Required array of pages.
"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.
"href" Optional address for the button or hyperlink. If set, a button is added if the list exceeds the
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”.
"color": Optional theme color of the card, either "primary", "secondary", "success", "danger",
"warning", "info", "light", "dark", or "body". By default, no color is specified.
"padding": Optional padding of the content, either "0", "1", "2", "3", "4", "5", or "auto" (default).
"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".
"ratio" Optional ratio of the thumbnail image, defaults to "16x9" (stacked orientation) or "1x1" (horizontal
orientation).
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "card-group" "child" "card" "args" .) }}
{{- errorf "partial [assets/card-group.html] - Invalid arguments" -}}
{{ end }}
<!-- Initialize arguments and default values -->
{{- $page := .page -}}
{{- if not (in (slice "*hugolib.pageState" "*hugolib.pageForShortcode") (printf "%T" $page)) -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'page': %T" $page -}}
{{- end -}}
{{- $supportedTypes := slice "page.Pages" "resource.Resources" -}}
{{- $breakpoint := partial "utilities/GetBreakpoint.html" -}}
{{ $pages := .list }}
{{- if and $pages (not (in $supportedTypes (printf "%T" $pages))) -}}
{{ warnf "Type: %T" $pages }}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'list'" -}}
{{- end -}}
{{ $cards := .cards }}
{{- $paginate := .paginate | default false -}}
{{- $moreURL := .href -}}
{{- $moreTitle := .hrefTitle -}}
{{- $gutter := .gutter | default 4 -}}
{{- $separator := .separator | default false -}}
{{- $class := .class -}}
{{- $color := .color -}}
{{- $padding := .padding -}}
{{- $header := .header -}}
{{- $footer := .footer -}}
{{- $orientation := .orientation -}}
{{- $ratio := .ratio -}}
{{- $wrapper := .wrapper | default "p-0" -}}
{{- $loading := .loading -}}
{{- $paginate := false -}}
{{- with .paginate -}}
{{- if ne (printf "%T" .) "bool" -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'paginate'" -}}
{{- end -}}
{{- $paginate = . -}}
{{- end -}}
<!-- Override arguments -->
{{ $paginator := "" }}
{{ if $paginate }}
{{ $paginator = $page.Paginate $pages }}
{{ $pages = first $paginator.PageSize (after (mul (sub $paginator.PageNumber 1) $paginator.PageSize) $pages) }}
{{ end }}
{{ $list := slice }}
{{ range $index, $element := $pages }}
{{ $params := dict }}
<!-- regular page -->
{{- if $element.RelPermalink -}}
{{- if and $element.RelPermalink $element.File -}}
{{- $params = merge $params (dict "path" $element.File.Path) -}}
<!-- headless page -->
{{- else -}}
@@ -85,87 +59,37 @@
{{- $count := len $list -}}
{{- $max := $count -}}
{{- with .max }}
{{- if ne (printf "%T" .) "int" -}}
{{- warnf "partial [assets/card-group.html] - Invalid value for param 'max': %s" . -}}
{{- else -}}
{{- $max = . -}}
{{- end -}}
{{- end -}}
{{- $max = math.Min $max $count -}}
{{- $max = math.Min (.max | default $count) $count -}}
{{- $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 -}}
{{- else if eq $cols "2" }}{{ if $responsive }}{{ $colGrid = printf "row-cols-1 row-cols-%s-1 row-cols-%s-2" $breakpoint.prev $breakpoint.current }}{{ else }}{{ $colGrid = "row-cols-2" }}{{ end -}}
{{- else if eq $cols "3" }}{{ if $responsive }}{{ $colGrid = printf "row-cols-1 row-cols-%s-2 row-cols-%s-3" $breakpoint.prev $breakpoint.current }}{{ else }}{{ $colGrid = "row-cols-3" }}{{ end -}}
{{- else if eq $cols "4" }}{{ if $responsive }}{{ $colGrid = printf "row-cols-1 row-cols-%s-2 row-cols-%s-4" $breakpoint.prev $breakpoint.current }}{{ else }}{{ $colGrid = "row-cols-4" }}{{ end -}}
{{- else if eq $cols "5" }}{{ if $responsive }}{{ $colGrid = printf "row-cols-1 row-cols-%s-3 row-cols-%s-5" $breakpoint.prev $breakpoint.current }}{{ 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 -}}
{{- if not $paginate -}}
{{- $list = first $max $list -}}
{{- end -}}
{{- $moreURL := .href -}}
{{- $moreTitle := .hrefTitle -}}
{{- $separator := false -}}
{{- with .separator -}}
{{- if ne (printf "%T" .) "bool" -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'separator'" -}}
{{- end -}}
{{- $separator = . -}}
{{- end -}}
{{- $class := .class -}}
{{- $color := .color -}}
{{- $padding := .padding -}}
{{- $header := .header -}}
{{- $footer := .footer -}}
{{- $orientation := .orientation -}}
{{- $ratio := .ratio -}}
{{- $wrapper := .wrapper | default "p-0" -}}
{{- $loading := .loading -}}
{{- $validSettings := slice "lazy" "eager" -}}
{{- if $loading -}}
{{ if not (in $validSettings $loading) -}}
{{- errorf "partial [assets/card-group.html] - Invalid value for param 'loading': %s" $loading -}}
{{ end -}}
{{- end -}}
{{- if and (eq $cols 1) (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
{{- if and (eq $cols "1") (eq $orientation "horizontal") }}{{ $orientation = "horizontal-sm" }}{{ end -}}
<!-- Main code -->
<div class="container-fluid {{ $wrapper }}">
<div class="row {{ $colGrid }} g-{{ $gutter }}">
{{ range $index, $element := $list }}
{{- $params := (dict
"class" (printf "h-100 %s" $class)
"color" $color
"padding" $padding
"header" $header
"footer" $footer
"orientation" $orientation
"ratio" $ratio
"header" $header
"loading" $loading
"orientation" $orientation
"padding" $padding
"ratio" $ratio
) -}}
{{- $params = merge $params $element }}
@@ -186,7 +110,7 @@
<div class="pt-3">{{ partial "assets/pagination.html" (dict "page" $page "format" "terse") }}</div>
{{- end -}}
{{ else }}
{{ if gt $count $max }}
{{ if and (gt $count $max) $moreTitle }}
<a class="btn btn-outline-primary" href="{{ $moreURL| safeURL }}" role="button">{{ $moreTitle }}</a>
{{ end }}
{{ end }}

View File

@@ -1,31 +1,49 @@
<!--
Displays a Bootstrap card. Either specify a valid path, or set the arguments title, href, header, description, and
thumbnail individually. The latter arguments override any page attributes.
The shortcode supports the following arguments:
"path" Optional path of the page, override with other parameters.
"title" Required title of the card.
"href" Optional address for the button or hyperlink.
"class" Optional class attribute of the card element, e.g. “w-50”.
"color": Optional theme color of the card, either "primary", "secondary", "success", "danger",
"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.
"ratio" Optional ratio of the thumbnail image, defaults to "16x9" (stacked orientation) or "1x1" (horizontal
orientation).
"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".
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "card" "args" .) }}
{{- errorf "partial [assets/card.html] - Invalid arguments" -}}
{{ end }}
<!-- Initialize arguments and default values -->
{{- $alt := .alt -}}
{{- $class := .class -}}
{{- $color := .color -}}
{{- $description := .description -}}
{{- $footer := .footer | default "none" -}}
{{- $gutter := .gutter | default "0" -}}
{{- $header := .header | default "full" -}}
{{- $href := .href -}}
{{- $icon := .icon -}}
{{- $loading := .loading -}}
{{- $orientation := .orientation | default "stacked" -}}
{{- $padding := .padding | default "auto" -}}
{{- $ratio := .ratio -}}
{{- $thumbnail := .thumbnail -}}
{{- $title := .title -}}
<!-- Override arguments -->
{{- $page := "" }}
{{- if .path }}
{{- $page = site.GetPage .path }}
{{- if not $page }}
{{- errorf "partial [assets/card.html] - Cannot find page: %s" .path -}}
{{- end }}
{{- end }}
{{- with $page -}}
{{- if not $title }}{{ $title = .Title }}{{ end -}}
{{- if not $href }}{{ $href = .RelPermalink }}{{ end -}}
{{- if not $description }}{{ $description = partial "utilities/GetDescription.html" . }}{{ end -}}
{{- if not $thumbnail }}{{ $thumbnail = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) }}{{ end -}}
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
{{- end -}}
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
<!-- Inline partial to render the card's body -->
{{- define "partials/card-body.html" -}}
{{- $title := .title -}}
@@ -77,90 +95,16 @@
</small></p>
{{- end -}}
{{- $page := "" }}
{{- if .path }}
{{- $page = site.GetPage .path }}
{{- if not $page }}
{{- errorf "partial [assets/card.html] - Cannot find page: %s" .path -}}
{{- end }}
{{- end }}
{{- $title := .title -}}
{{- $alt := .alt -}}
{{- $href := .href -}}
{{- $description := .description -}}
{{- $thumbnail := .thumbnail -}}
{{- $ratio := .ratio -}}
{{- $icon := .icon -}}
{{- $color := "" -}}
{{- with .color }}{{ $color = . }}{{ end -}}
{{- if $color -}}
{{- $supportedColors := slice "primary" "secondary" "success" "danger" "warning" "info" "light" "dark" "white" "black" "body" "body-tertiary" -}}
{{- if not (in $supportedColors $color) -}}
{{- errorf "partial [assets/card.html] - Invalid value for param 'color': %s" $color -}}
{{- end -}}
{{- end -}}
{{- $header := "full" -}}
{{- with .header }}{{ $header = . }}{{ end -}}
{{- $supportedKeywords := slice "full" "publication" "tags" "none" -}}
{{- if not (in $supportedKeywords $header) -}}
{{- errorf "partial [assets/card.html] - Invalid value for param 'header': %s" $header -}}
{{- end -}}
{{- $footer := "none" -}}
{{- with .footer }}{{ $footer = . }}{{ end -}}
{{- if not (in $supportedKeywords $footer) -}}
{{- errorf "partial [assets/card.html] - Invalid value for param 'footer': %s" $footer -}}
{{- end -}}
{{- with $page -}}
{{- if not $title }}{{ $title = .Title }}{{ end -}}
{{- if not $href }}{{ $href = .RelPermalink }}{{ end -}}
{{- if not $description }}{{ $description = partial "utilities/GetDescription.html" . }}{{ end -}}
{{- if not $thumbnail }}{{ $thumbnail = (or (and (reflect.IsMap .Params.Thumbnail) .Params.Thumbnail.url) .Params.Thumbnail) }}{{ end -}}
{{- if not $icon }}{{ $icon = .Params.icon }}{{ end -}}
{{- end -}}
{{- $class := .class -}}
{{- $padding := "auto" -}}
{{- with .padding }}{{ $padding = . }}{{ end -}}
{{- $supportedPaddings := slice "0" "1" "2" "3" "4" "5" "auto" -}}
{{- if not (in $supportedPaddings $padding) -}}
{{- 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" -}}
{{- if not (in $supportedOrientations $orientation) -}}
{{- errorf "partial [assets/card.html] - Invalid value for param 'orientation': %s" $orientation -}}
{{- end -}}
{{- if eq $orientation "none" }}{{ $thumbnail = "" }}{{ $icon = "" }}{{ end -}}
{{- $loading := .loading -}}
{{- $validSettings := slice "lazy" "eager" -}}
{{- if $loading -}}
{{ if not (in $validSettings $loading) -}}
{{- errorf "partial [assets/card.html] - Invalid value for param 'loading': %s" $loading -}}
{{ end -}}
{{- end -}}
<!-- Main code -->
{{ if ne $gutter "0" }}<div class="g-{{ $gutter }}">{{ end }}
{{- if hasPrefix $orientation "horizontal" -}}
<!-- Render horizontal card -->
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
<div class="row g-0 row-cols-1 h-100">
<div class="col-4{{ if eq $orientation "horizontal-sm" }} col-md-2{{ end }}">
{{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "1x1") "outerClass" "h-100 card-img-wrap" "innerClass" "rounded-start card-img-h100" "title" $title "loading" $loading) -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "1x1") "wrapper" "h-100 card-img-wrap" "class" "rounded-start card-img-h100" "title" $title "loading" $loading) -}}
{{- else if $icon -}}
<div class="card-icon p-{{ $padding }} h-100 fa-wrapper d-flex align-items-center justify-content-center">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-fluid fa-fw" $icon)) -}}
@@ -179,9 +123,10 @@
</div>
</div>
{{- else -}}
<!-- Render stacked / default card -->
<div class="card {{ with $color }}bg-{{ . }} text-bg-{{ . }}{{ end }} {{ $class }}">
{{- if $thumbnail -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "16x9") "outerClass" "card-img-wrap" "innerClass" "card-img-top" "title" (or $alt $title) "loading" $loading) -}}
{{- partial "assets/image.html" (dict "url" $thumbnail "ratio" (or $ratio "16x9") "wrapper" "card-img-wrap" "class" "card-img-top" "title" (or $alt $title) "loading" $loading) -}}
{{- else if $icon -}}
<div class="card-icon p-{{ $padding }}">
{{- partial "assets/icon.html" (dict "icon" (printf "%s fa-4x" $icon)) -}}
@@ -194,4 +139,5 @@
</div>
</div>
{{- end -}}
{{ if ne $gutter "0" }}</div>{{ end }}

View File

@@ -1,20 +1,29 @@
<!--
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "carousel-item" "args" . "group" "partial") }}
{{- errorf "partial [assets/carousel-item.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{- $page := .page -}}
{{- $active := .active -}}
{{- $src := .src -}}
{{- $caption := .caption -}}
{{- $ratio := .ratio -}}
{{- $portrait := .portrait -}}
{{- $loading := .loading | default "eager" -}}
{{- $loading := .loading -}}
{{- $validSettings := slice "lazy" "eager" -}}
{{- if $loading -}}
{{ if not (in $validSettings $loading) -}}
{{- errorf "partial [assets/carousel-item.html] - Invalid value for param 'loading': %s" $loading -}}
{{ end -}}
{{- end -}}
<div class="carousel-item{{ if $active }} active{{ end }}">
{{ partial "assets/image.html" (dict "url" $src "ratio" $ratio "page" $page "innerClass" "d-block w-100" "portrait" $portrait "loading" $loading) }}
<!-- Main code -->
<div class="carousel-item{{ if $active }} active{{ end }}" {{ if not $active }} fetchpriority="low"{{ end }}>
{{ partial "assets/image.html" (dict "url" $src "ratio" $ratio "page" $page "class" "d-block w-100" "portrait" $portrait "loading" $loading) }}
<div class="carousel-caption gradient"></div>
{{ with $caption }}
<div class="carousel-caption d-none d-md-block">

View File

@@ -1,12 +0,0 @@
{{- $params := .Site.Params.comments -}}
{{- with $params -}}
<h2>{{ T "comments" }}</h2>
<script src="https://utteranc.es/client.js"
repo="{{ $params.repo }}"
issue-term="{{ default "pathname" $params.issueTerm }}"
label="{{ default "comment" $params.label }}"
theme="{{ default "github-light" $params.theme }}"
crossorigin="anonymous"
async>
</script>
{{- end -}}

View File

@@ -1,68 +1,38 @@
<!--
Render a local or remote image with responsive image sizing. Images are resized using default media breakpoints
and are converted to webp format. The image is processed using the quality setting specified in the [imaging]
section of the main config file (defaults to 75). A fallback image is provided for older browsers. The image is
wrapped in a figure if a caption is provided, else the image is wrapped in a div with a ratio constraint.
If the url starts with 'http', the image is retrieved from an external location. Else, the url is matched with a
page resource and site asset (in that order). The path of a remote image is rewritten to ensure processed files are
stored in the final '/img' folder.
The partial supports the following bitmap image formats: "png", "jpeg", "gif", "tiff", "bmp", and "webp". Vector
graphics of type "svg" are supported too, although these images do no support additional processing. This means
the arguments "ratio" and "portrait" have no effect for vector images. Vector graphics support an optional anchor
"#" in their url to denote a styling reference.
The partial supports the following arguments:
"url": Required path or url of the image, e.g. "img/example.jpg"
"mode": Optional flag indicating if the image should support color modes.
"ratio": Optional ratio of the image, either "1x1", "3x2", "4x3", "16x9", or "21x9". If set, the image is
resized and cropped to match the ratio. Else the original aspect ratio of the image is kept. Not
applicable to vector graphics.
"portrait": Optional flag to adjust the ratio from landscape to portrait. The image itself is not rotated, only
the crop area is adjusted. Not applicable to vector graphics.
"loading": Optional loading behavior of the image, either "eager" (default) or "lazy". The loading of lazily
loaded images is deferred until the image is within scrolling range of the viewport. This should
reduce the initial loading time of the website. It is recommended to lazily load only those images
that are below the page fold.
"outerClass": Optional class attribute of the outer div element, e.g. "img-wrap".
"innerClass": Optional class attribute of the inner img element, e.g. "rounded".
"title": Optional alternate text of the image.
"caption": Optional figure caption.
"page": Optional page context, used to match page resources.
Copyright © 2024 The Hinode Team / Mark Dumay. All rights reserved.
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
Visit gethinode.com/license for more details.
-->
{{ $error := false }}
<!-- Validate arguments -->
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "image" "args" . "group" "partial") }}
{{ errorf "partial [assets/image.html] - Invalid arguments" -}}
{{ $error = true }}
{{ end }}
<!-- Initialize arguments -->
{{ $destination := .destination }}
<!-- Initialize arguments -->
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
{{- $validRatios := slice "1x1" "3x2" "4x3" "16x9" "21x9" -}}
{{- $ratio := .ratio -}}
{{- if $ratio -}}
{{ if not (in $validRatios $ratio) -}}
{{- errorf "partial [assets/image.html] - Invalid value for param 'ratio'" -}}
{{ end -}}
{{- end -}}
{{- $portrait := .portrait -}}
{{- $url := .url -}}
{{- $mode := false -}}
{{- with .mode }}{{ $mode = . }}{{ end -}}
{{- $outerClass := .outerClass -}}
{{- $innerClass := .innerClass -}}
{{- $mode := .mode -}}
{{- $modes := site.Params.main.modes | default (slice "light" "dark") -}}
{{- $wrapper := .wrapper -}}
{{- $class := .class -}}
{{- $title := .title -}}
{{- $caption := .caption -}}
{{- if ne (printf "%T" $mode) "bool" -}}
{{- errorf "partial [assets/image.html] - Invalid value for param 'mode'" -}}
{{- end -}}
{{- $modes := site.Params.main.modes | default (slice "light" "dark") -}}
{{- $page := .page -}}
{{- $loading := .loading -}}
{{- $validSettings := slice "lazy" "eager" -}}
{{- if $loading -}}
{{ if not (in $validSettings $loading) -}}
{{- errorf "partial [assets/image.html] - Invalid value for param 'loading'" -}}
{{ end -}}
{{- end -}}
{{- $lazy := eq $loading "lazy" -}}
{{- $priority := .priority -}}
{{- if eq $priority "auto" }}{{ $priority = "" }}{{ end -}}
{{- define "partials/image-portrait.html" -}}
{{- $dimensions := slice }}
@@ -124,7 +94,6 @@
{{- return $fallback -}}
{{- end -}}
<!-- Generate a image set of type webp -->
{{- define "partials/image-scaled.html " -}}
{{- $absoluteURL := site.Params.main.canonifyAssetsURLs | default false -}}
@@ -185,8 +154,8 @@
{{- $ratio := .ratio -}}
{{- $portrait := .portrait -}}
{{- $url := .url -}}
{{- $outerClass := .outerClass -}}
{{- $innerClass := .innerClass -}}
{{- $wrapper := .wrapper -}}
{{- $class := .class -}}
{{- $title := .title -}}
{{- $caption := .caption -}}
{{- $fallbackURL := "" -}}
@@ -196,6 +165,7 @@
{{- $modes := .modes -}}
{{- $lazy := .lazy -}}
{{- $page := .page -}}
{{- $priority := .priority -}}
{{- $isVector := false -}}
{{- $segments := split $url "#" -}}
@@ -209,12 +179,18 @@
{{- if hasSuffix $url "svg" -}}
{{- $fallbackURL = $url -}}
{{- $isVector = true -}}
{{- $res := partial "utilities/GetResource.html" (dict "url" $url "page" $page) -}}
{{ if not $res }}
{{- if not (fileExists (path.Join "/static" $url)) -}}
{{ warnf "Cannot find vector image resource: %q" $url -}}
{{ end }}
{{ end }}
{{- else -}}
{{- $res := partial "utilities/GetImage.html" (dict "url" $url "page" $page) -}}
{{- $img := "" -}}
{{ with $res }}
{{ $img = $res.resource }}
{{ if $res.mirror }}{{ $innerClass = printf "%s mirrorred" $innerClass }}{{ end }}
{{ if $res.mirror }}{{ $class = printf "%s mirrorred" $class }}{{ end }}
{{ end }}
{{- if $img -}}
{{- $fallback := partial "partials/image-default.html" (dict "img" $img "ratio" $ratio "portrait" $portrait) -}}
@@ -229,7 +205,7 @@
{{- range $none := $modes -}}
{{- if ne $none $mode -}}
{{- $outerClass = printf "%s d-none-%s" (or $outerClass "") $none -}}
{{- $wrapper = printf "%s d-none-%s" (or $wrapper "") $none -}}
{{- end -}}
{{- end -}}
@@ -248,19 +224,20 @@
{{- end }}
{{- if $caption -}}
<figure {{ with $outerClass }}class="{{ . }}"{{ end }}>
<figure {{ with $wrapper }}class="{{ . }}"{{ end }}>
{{ end }}
<div class="{{ if not $caption }}{{ $outerClass }}{{ end }}">
<div class="{{ if not $caption }}{{ $wrapper }}{{ end }}">
{{- if not $anchor -}}
<img class="img-fluid {{ $innerClass }}"
<img class="img-fluid {{ $class }}"
src="{{ $fallbackURL }}"
{{ if $lazy }}loading="lazy"{{ end }}
{{ with $priority }}fetchpriority="{{ . }}"{{ end }}
{{ with $imgset -}}srcset="{{ . }}" sizes="100vw"{{- end }}
{{ with $height }}height="{{ . }}"{{ end }}
{{ with $width }}width="{{ . }}"{{ end }}
{{ with $title }}alt="{{ . }}"{{ end }}>
{{- else }}
<svg class="{{ $innerClass }}">
<svg class="{{ $class }}">
<use href="{{ $fallbackURL }}#{{ $anchor }}"></use>
</svg>
{{ end }}
@@ -271,17 +248,17 @@
{{- end -}}
{{- end -}}
<!-- Initiate the regular or color-mode image -->
{{ $params := dict }}
{{- $params = merge $params (dict
"ratio" $ratio
"portrait" $portrait
"outerClass" $outerClass
"innerClass" $innerClass
"wrapper" $wrapper
"class" $class
"title" $title
"caption" $caption
"lazy" $lazy
"priority" $priority
"page" $page)
-}}

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