Compare commits

...

454 Commits

Author SHA1 Message Date
Mark Dumay
0abf604d2a Merge pull request #148 from gethinode/color
Transparent navbar
2023-02-16 09:44:04 +01:00
mark
ca51130286 Fix linting issues 2023-02-16 09:36:19 +01:00
mark
28e96deb73 Bump package version 2023-02-16 09:28:38 +01:00
mark
9173b6eaaa Add optional style for homepage 2023-02-16 09:28:13 +01:00
mark
492420d13f Remove redundant style element 2023-02-16 09:27:55 +01:00
mark
d2ec492827 Remove redundant style element 2023-02-16 09:27:38 +01:00
mark
d12cdc7a76 Suppor transparent navbar 2023-02-16 07:23:36 +01:00
Mark Dumay
a4f49ffb18 Merge pull request #147 from gethinode/dependabot/npm_and_yarn/stylelint-config-standard-scss-7.0.1
Bump stylelint-config-standard-scss from 7.0.0 to 7.0.1
2023-02-14 18:22:10 +01:00
dependabot[bot]
6599912985 Bump stylelint-config-standard-scss from 7.0.0 to 7.0.1
Bumps [stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss) from 7.0.0 to 7.0.1.
- [Release notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-config-standard-scss/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: stylelint-config-standard-scss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-14 14:10:02 +00:00
Mark Dumay
b7ef39a61c Merge pull request #146 from gethinode/color
Refinement
2023-02-14 06:26:53 +01:00
mark
d4bf047b09 Bump package version 2023-02-14 06:21:06 +01:00
mark
9df3426f41 Fix centering of logo on smaller screens 2023-02-14 06:20:06 +01:00
mark
d7f887c6f6 Revise cache settings in server header 2023-02-14 04:38:13 +01:00
mark
25dfbb3ed3 Revert back to hugo-installer (see #124) 2023-02-14 04:37:33 +01:00
mark
4e48065605 Add spacing below prev/next links 2023-02-13 06:54:26 +01:00
mark
929a86e6b7 Add docs example 2023-02-13 06:52:28 +01:00
mark
e0895d9751 Enable color mode for docs 2023-02-13 06:52:21 +01:00
mark
7a1925594b Replace text-muted with text-body-secondary 2023-02-13 06:47:35 +01:00
mark
913813c602 Switch to hugo-bin 2023-02-13 05:20:17 +01:00
Mark Dumay
4fb4b31635 Merge pull request #145 from gethinode/color
Sidebar
2023-02-12 18:32:27 +01:00
mark
6aedfc9c6a Clean up file 2023-02-12 18:17:09 +01:00
mark
2cc9204d9d Bump dependencies 2023-02-12 18:14:17 +01:00
mark
76fe879066 Bump package version 2023-02-12 18:11:32 +01:00
mark
34b161d10f Enable dark mode for sidebar 2023-02-12 18:08:35 +01:00
mark
5c0f47fdc8 Enable dark mode for sidebar 2023-02-12 18:07:08 +01:00
mark
919b62adac Enable dark mode for sidebar 2023-02-12 18:05:58 +01:00
mark
909ff6bc9e Enable dark mode for sidebar 2023-02-12 18:05:16 +01:00
mark
9b053b876c Fix indentation 2023-02-12 18:05:06 +01:00
mark
831568fde3 Enable dark mode for sidebar 2023-02-12 18:04:09 +01:00
Mark Dumay
54f06566ee Merge pull request #144 from gethinode/color
Color mode
2023-02-12 15:30:18 +01:00
mark
f52241f4fe Disable linting for Bootstrap hot fixes 2023-02-12 15:17:21 +01:00
mark
ea5ce16f3c Disable linting for color.js 2023-02-12 15:14:31 +01:00
Mark Dumay
e1c23e003b Merge branch 'main' into color 2023-02-12 15:08:50 +01:00
mark
a018b2af25 Add dark mode enabler 2023-02-12 15:06:50 +01:00
mark
16a7cecdbe Add hidden helper 2023-02-12 14:42:40 +01:00
mark
091cc49b1d Apply Bootstrap hot fixes 2023-02-12 14:42:21 +01:00
mark
5982b8132f Remove redundant variable 2023-02-12 14:41:56 +01:00
mark
90d158d8c4 Correct accordion and form icons 2023-02-12 14:41:34 +01:00
mark
a5b3a7b3a5 Refine carousel dark-mode colors 2023-02-12 14:41:25 +01:00
mark
feafd3c3a9 Correct accordion and form icons 2023-02-12 14:41:04 +01:00
mark
3fe31f9655 Remove redundant space 2023-02-12 14:40:32 +01:00
mark
317302fd94 Refine card color mode 2023-02-12 14:37:27 +01:00
mark
7d03be11e6 Refine navbar color mode 2023-02-12 14:37:09 +01:00
mark
a8b834c71c Refine syntax highlighting 2023-02-12 14:36:49 +01:00
mark
ca00426f0d Add Bootstrap color-mode hotfixes 2023-02-12 14:33:13 +01:00
mark
040441b7eb Add translations 2023-02-12 14:32:38 +01:00
mark
edde8164d7 Update metadata of shortcodes post 2023-02-12 14:31:46 +01:00
mark
7451687be5 Remove obsolete links 2023-02-11 17:17:39 +01:00
mark
0d55ad9f24 Refine tooltip color 2023-02-11 17:17:20 +01:00
mark
c225e86ef3 Refine scss lint 2023-02-11 17:17:08 +01:00
mark
cd5886be9e Add example shortcodes 2023-02-11 17:01:39 +01:00
mark
a2e909e0b0 Refine rendering of code blocks 2023-02-11 17:01:08 +01:00
mark
a2c45081a3 Use color-mode aware logo 2023-02-11 14:42:02 +01:00
mark
3d7c49db2e Use color-mode aware logo 2023-02-11 14:35:15 +01:00
mark
d2ba6f827b Add todo 2023-02-11 14:34:11 +01:00
mark
2137062559 Fix spacing 2023-02-11 14:33:55 +01:00
mark
d08c23f668 Support color mode for navbar toggler 2023-02-11 14:33:38 +01:00
mark
c04a0c1981 Switch to logo icon in navbar 2023-02-11 14:28:40 +01:00
mark
c2484433e8 Support color mode for code blocks 2023-02-11 14:27:46 +01:00
mark
c92af394eb Support color mode 2023-02-11 06:34:53 +01:00
mark
e82b4cce0c Support color mode 2023-02-11 06:34:45 +01:00
mark
ff5624951d Bump package version 2023-02-10 09:28:39 +01:00
mark
0d1aa334b3 Use Bootstrap 5.3.0-alpha1 to enable color mode 2023-02-10 09:28:31 +01:00
mark
24979034a3 Support color mode 2023-02-10 09:27:26 +01:00
mark
d43a992efd Enable color mode 2023-02-10 09:27:02 +01:00
mark
d913dbf00b Fix appearance behavior 2023-02-10 09:26:42 +01:00
mark
e3c3f8eb75 Support navbar color mode 2023-02-10 04:49:38 +01:00
mark
4e6c437274 Support navbar color mode 2023-02-10 04:48:55 +01:00
mark
3ae4c5ee97 Add theme color 2023-02-10 04:48:05 +01:00
mark
bce3d8ed83 Add dark variables 2023-02-10 04:47:45 +01:00
mark
02f3b9cedc Remove obsolete navbar-style 2023-02-10 04:47:07 +01:00
Mark Dumay
0721243d82 Merge pull request #141 from gethinode/dependabot/npm_and_yarn/fortawesome/fontawesome-free-6.3.0
Bump @fortawesome/fontawesome-free from 6.2.1 to 6.3.0
2023-02-08 16:53:04 +01:00
dependabot[bot]
63fda8378e Bump @fortawesome/fontawesome-free from 6.2.1 to 6.3.0
Bumps [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) from 6.2.1 to 6.3.0.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.2.1...6.3.0)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-08 13:15:35 +00:00
Mark Dumay
0bd6257ef5 Merge pull request #140 from gethinode/develop
Refine readme
2023-02-08 05:55:19 +01:00
mark
cfec32ac11 Fix linting issues 2023-02-08 05:42:54 +01:00
mark
8f32d613d1 Refine readme 2023-02-08 05:32:30 +01:00
Mark Dumay
7a46a47cea Merge pull request #139 from gethinode/develop
Refinement
2023-02-08 04:18:55 +01:00
mark
a0e446dc2c Add version partial 2023-02-08 04:13:33 +01:00
mark
8938f4270d Remove docs menu entry 2023-02-07 07:13:35 +01:00
mark
25bd5ea47c Bump package version 2023-02-07 07:10:58 +01:00
mark
0bce0a9fb7 Adjust Netlify badge 2023-02-07 06:59:35 +01:00
Mark Dumay
f6aeed969c Merge pull request #138 from gethinode/develop
Remove docs from main repository
2023-02-07 06:48:26 +01:00
mark
088dd82bd3 Remove docs from main repository 2023-02-07 06:37:51 +01:00
Mark Dumay
503554046c Merge pull request #137 from gethinode/develop
Logo
2023-02-07 06:35:41 +01:00
mark
419ad7bb86 Remove base path from displayed filename 2023-02-07 06:27:56 +01:00
mark
74e6367b30 Add logo design 2023-02-07 06:11:59 +01:00
mark
4c8e73af33 Transform text to path 2023-02-07 06:11:48 +01:00
Mark Dumay
73446e5580 Merge pull request #135 from gethinode/develop
Refinement
2023-02-06 09:40:42 +01:00
mark
223ae24416 Add relref argument 2023-02-06 05:21:16 +01:00
mark
4167cf1695 Bump package version 2023-02-06 05:21:00 +01:00
mark
cf98b4d067 Add support for minimal layout 2023-02-06 05:01:35 +01:00
Mark Dumay
e0e694cda4 Merge pull request #134 from gethinode/develop
Refinement
2023-02-05 16:30:14 +01:00
mark
40b36ef34b Fix linting issues 2023-02-05 16:25:12 +01:00
mark
d47adb99a2 Suppress more button when max is reached 2023-02-05 16:21:53 +01:00
mark
32b86d1183 Suppress empty lines from Go template 2023-02-05 16:20:58 +01:00
mark
c17ac02c13 Add icon support 2023-02-05 16:20:47 +01:00
mark
ea6623349c Add background param 2023-02-05 16:18:49 +01:00
mark
0d1b08e770 Ass support for base paths for file references 2023-02-05 16:15:27 +01:00
mark
868430b726 Replace feature params with _index content 2023-02-05 16:09:27 +01:00
mark
d3330716ee Suppress empty lines from Go template 2023-02-05 15:59:45 +01:00
mark
9799b9d6eb Reuse icon partial 2023-02-05 15:54:13 +01:00
mark
092ee2f4a7 Add icon for external links 2023-02-05 15:53:43 +01:00
mark
9c0fca16bf Fix class recognition 2023-02-05 15:53:12 +01:00
mark
ac5521bffa Refactor icon code 2023-02-05 15:36:37 +01:00
mark
8634b1ecce Bump package version 2023-02-05 15:22:03 +01:00
mark
258040c345 Remove default title 2023-02-05 15:19:35 +01:00
mark
1cd93c131e Add theme style placeholder 2023-02-05 15:11:19 +01:00
Mark Dumay
cba64fccfe Merge pull request #132 from gethinode/develop
Refinement
2023-02-04 15:08:50 +01:00
mark
bd6743acc6 Bump package version 2023-02-04 14:57:28 +01:00
mark
1d30b45c2b Fix #131 2023-02-04 14:57:10 +01:00
mark
8d8a6918b6 Clarify homepage setting 2023-02-04 14:55:17 +01:00
mark
58ba98f180 Add Dutch projects to main navbar 2023-02-04 14:55:02 +01:00
mark
736d93774a Update codebase names in license statement 2023-02-04 06:37:51 +01:00
Mark Dumay
7a0b0f318d Merge pull request #130 from gethinode/develop
Develop
2023-02-04 06:05:11 +01:00
mark
d65bea328f Bump package version 2023-02-04 05:57:27 +01:00
mark
4e84e97146 Update homepage 2023-02-04 05:56:45 +01:00
mark
29f8016ebc Adjust base url 2023-02-04 05:53:50 +01:00
Mark Dumay
60b4cc0403 Merge pull request #129 from gethinode/develop
Bump package version
2023-02-04 05:41:45 +01:00
mark
47d642bd38 Bump package version 2023-02-04 05:31:46 +01:00
mark
8bfd3ffee8 Remove temp blog 2023-02-04 05:31:36 +01:00
Mark Dumay
6fa0c2b101 Merge pull request #127 from gethinode/dependabot/npm_and_yarn/http-cache-semantics-4.1.1
Bump http-cache-semantics from 4.1.0 to 4.1.1
2023-02-04 05:30:47 +01:00
dependabot[bot]
c8735634a1 Bump http-cache-semantics from 4.1.0 to 4.1.1
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 04:17:45 +00:00
Mark Dumay
1487fec2ff Merge pull request #126 from gethinode/develop
Switch to gethinode.com
2023-02-04 05:17:18 +01:00
mark
1421103b6c Close #120 2023-02-04 05:10:16 +01:00
mark
cbc1b3bbb9 Set Bootstrap placeholder content status to draft 2023-02-04 04:51:45 +01:00
Mark Dumay
0750ec61b8 Merge pull request #118 from markdumay/develop
Fix broken link
2023-02-03 07:15:21 +01:00
mark
b237246290 Replace codeblocks with command shortcodes 2023-02-03 06:22:48 +01:00
mark
1a8c8439b8 Fix broken link 2023-02-03 06:18:22 +01:00
Mark Dumay
0221e71dce Merge pull request #117 from markdumay/develop
Deployment
2023-02-02 06:33:15 +01:00
mark
7a8cee0f0b Fix linting issues 2023-02-02 06:27:08 +01:00
mark
e832ad9493 Add Azure blob configuration 2023-02-02 06:19:17 +01:00
mark
4c0bd6ef82 Add Hugo and Azure blob storage links 2023-02-02 06:10:23 +01:00
mark
1fda10837d Add focus area 2023-02-02 06:09:49 +01:00
mark
06a1744a40 Add considerations and Azure blob storage 2023-02-02 06:09:32 +01:00
mark
3960504a98 Remove indentation from inner content 2023-02-02 05:51:50 +01:00
mark
d187748394 Add icon component documentation 2023-02-02 05:50:58 +01:00
mark
0beac5cd20 Reuse icon shortcode 2023-02-02 05:50:31 +01:00
mark
2e5053fefb Add icon shortcode 2023-02-02 05:50:17 +01:00
Mark Dumay
af8bc2d26d Merge pull request #116 from markdumay/dependabot/npm_and_yarn/eslint-8.33.0
Bump eslint from 8.32.0 to 8.33.0
2023-01-30 17:27:09 +01:00
dependabot[bot]
03aa601922 Bump eslint from 8.32.0 to 8.33.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.32.0 to 8.33.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.32.0...v8.33.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-01-30 13:28:16 +00:00
mark
a6d8f7e6f1 Update date 2023-01-29 08:21:59 +01:00
mark
f09e71f27f Add bottom margin 2023-01-29 08:21:27 +01:00
mark
2ede4c52a2 Refine default aspect-ratio behavior 2023-01-29 08:21:09 +01:00
mark
579f2a9a79 Use refactored docs shortcode 2023-01-29 08:20:47 +01:00
mark
c2e1ae5346 Refactor docs shortcode 2023-01-29 08:19:07 +01:00
mark
2c078631a1 Add netlify documentation 2023-01-29 08:18:45 +01:00
mark
6a6458f65c Update node, npm, and Hugo versions 2023-01-29 08:17:27 +01:00
mark
b28dffac49 Adjust main sections 2023-01-29 05:18:08 +01:00
mark
7d86c45658 Add content section 2023-01-29 05:16:06 +01:00
mark
02c1b17e96 Add an alert about contributions 2023-01-29 04:44:35 +01:00
mark
ba7e617deb Split settings into basic and advanced 2023-01-29 04:43:59 +01:00
mark
cc6c5be156 Rewrite introduction 2023-01-29 04:41:45 +01:00
mark
5489001d06 Fix behavior of accordion 2023-01-29 04:40:45 +01:00
Mark Dumay
69b7ef0642 Merge pull request #115 from markdumay/develop
Documentation
2023-01-28 14:44:47 +01:00
mark
75b7423668 Streamline frontmatter 2023-01-28 14:35:45 +01:00
mark
7de9cd670a Support html and markdown content 2023-01-28 14:34:55 +01:00
mark
7b6586dca8 Remove redundant shortcode 2023-01-28 14:34:38 +01:00
mark
8ca0351aee Add image documentation 2023-01-28 14:34:07 +01:00
mark
b6acf81025 Add image documentation 2023-01-28 14:33:58 +01:00
mark
5669704aed Add links documentation 2023-01-28 11:42:05 +01:00
mark
a6a61f0561 Add links documentation 2023-01-28 11:41:27 +01:00
mark
72d4302cd2 Adjust rendering 2023-01-28 08:58:01 +01:00
mark
b2b872481a Add bottom margin 2023-01-28 08:57:21 +01:00
mark
459482f83b Fix spacing 2023-01-28 08:38:34 +01:00
Mark Dumay
a9f488e0a2 Merge pull request #114 from markdumay/develop
Codeblocks
2023-01-28 08:31:04 +01:00
mark
8b0104eb45 Add highlight style comments 2023-01-28 08:20:53 +01:00
mark
423793f181 Use example shortcode 2023-01-28 08:20:00 +01:00
mark
e2b2b57899 Fix bg-color of codeblocks 2023-01-28 08:14:53 +01:00
mark
298800c988 Fix rendering of example shortcode 2023-01-28 07:43:03 +01:00
mark
c5ce6094de Remove empty line 2023-01-28 07:02:06 +01:00
mark
1277bf3fac Fix markdown processing 2023-01-28 07:01:13 +01:00
Mark Dumay
ba7b911a5f Merge pull request #113 from markdumay/main
Sync dev branch
2023-01-27 18:10:45 +01:00
Mark Dumay
acb249e4f8 Merge pull request #112 from markdumay/csp
Update child repo
2023-01-27 18:05:14 +01:00
mark
b6c6f34786 Update child repo 2023-01-27 18:00:10 +01:00
Mark Dumay
cb8f4cfe36 Merge pull request #111 from markdumay/dependabot/npm_and_yarn/rimraf-4.1.2
Bump rimraf from 4.1.1 to 4.1.2
2023-01-27 17:20:11 +01:00
dependabot[bot]
0420aedb32 Bump rimraf from 4.1.1 to 4.1.2
Bumps [rimraf](https://github.com/isaacs/rimraf) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/isaacs/rimraf/releases)
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v4.1.1...v4.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-27 13:12:39 +00:00
Mark Dumay
57991ed86f Merge pull request #110 from markdumay/csp
Icons
2023-01-27 10:35:59 +01:00
mark
b4a761d9ae Fix rendering of icons in production 2023-01-27 10:31:11 +01:00
mark
de97ce712a Remove empty space 2023-01-27 10:27:16 +01:00
Mark Dumay
56d950d8b3 Merge pull request #109 from markdumay/csp
Content Security Policy
2023-01-27 07:41:53 +01:00
mark
36f1895ef0 Improve trim on Windows 2023-01-27 07:37:29 +01:00
mark
e26b140185 Fix regex on Windows 2023-01-27 07:22:20 +01:00
mark
b021836322 Clean file path 2023-01-27 06:37:35 +01:00
mark
35dc525cbc Clean file path 2023-01-27 06:37:30 +01:00
mark
154bea7f34 Fix linting issues 2023-01-27 06:24:05 +01:00
mark
d644d0009a Adjust package version 2023-01-26 19:09:26 +01:00
mark
21391c5062 Clean up old content 2023-01-26 19:07:13 +01:00
mark
9e004b053b Hide work in progress content 2023-01-26 19:06:07 +01:00
mark
cdb0583cfa Add preliminary icon support 2023-01-26 18:57:28 +01:00
mark
80c45ae937 Remove icon 2023-01-26 18:57:05 +01:00
mark
34186b4a3a Hide work in progress content 2023-01-26 18:55:51 +01:00
mark
5b3bc65044 Fix font reference 2023-01-26 18:55:37 +01:00
mark
4cb4d71c29 Add deployment placeholder 2023-01-26 06:34:12 +01:00
mark
63c340388a Add custom header 2023-01-26 06:32:38 +01:00
mark
f1eca1820a Use indentation 2023-01-25 19:46:53 +01:00
mark
7e3e1d5f3c Fix globe logo 2023-01-25 19:44:54 +01:00
mark
91894368bd Use example shortcode 2023-01-25 19:44:43 +01:00
mark
240ab445fd Trim content 2023-01-25 19:39:08 +01:00
mark
14d3f87433 Fix error message 2023-01-25 19:38:54 +01:00
mark
de23b953b8 Add path arg 2023-01-25 19:38:39 +01:00
mark
bab08f2645 Remove whitespace 2023-01-25 19:38:29 +01:00
mark
52c6fa27b1 Use example shortcode 2023-01-25 19:38:09 +01:00
mark
fba194e0c4 Hide copy button placeholder 2023-01-25 12:37:17 +01:00
mark
9b6da30281 Add shortcode to show code examples incl output 2023-01-25 12:28:08 +01:00
mark
628e6d0a82 Add missing regular icons 2023-01-25 12:26:13 +01:00
mark
0cd6fefac6 Remove overview from content section 2023-01-24 09:43:16 +01:00
mark
0639ea4f8e Add external links 2023-01-24 09:42:52 +01:00
mark
0d6804ae6b Fix linting issues 2023-01-24 07:37:20 +01:00
mark
eceb98923c Add link to content section about icons 2023-01-24 07:35:25 +01:00
mark
7b1ea3bb48 Add icon documentation 2023-01-24 07:31:20 +01:00
mark
0dc7887e99 Add icon documentation 2023-01-24 07:31:12 +01:00
mark
fe6f49b516 Refine and add Font Awesome 2023-01-23 19:11:13 +01:00
mark
2632c690ea Add placeholder 2023-01-23 18:55:52 +01:00
mark
62dee1a440 Add initial icons documentation 2023-01-23 07:27:43 +01:00
mark
4257ff2e37 Add initial icons documentation 2023-01-23 07:27:35 +01:00
mark
17f72ec5fd Add icons placeholder 2023-01-22 17:11:54 +01:00
mark
197505e79d Add links placeholder 2023-01-22 17:11:42 +01:00
mark
5e6f878606 Fix linting issues 2023-01-22 17:11:19 +01:00
mark
9cf568cd40 Refine intro 2023-01-22 16:45:37 +01:00
mark
bdff2c24df Add table shortcode 2023-01-22 16:45:24 +01:00
mark
11b95e35a4 Add table documentation 2023-01-22 16:45:17 +01:00
mark
214b667409 Hide placeholder content 2023-01-22 09:52:22 +01:00
mark
daf881a6ad Change file description 2023-01-22 09:52:02 +01:00
mark
6cf89f5c59 Add typography documentation 2023-01-22 09:51:44 +01:00
mark
24be96a4a7 Add typography documentation 2023-01-22 09:51:32 +01:00
mark
9221a05c8f Fix typo in example 2023-01-21 20:41:18 +01:00
mark
859b62d460 Fix git link 2023-01-21 20:35:52 +01:00
mark
f458b2250c Fix lint issue 2023-01-21 20:32:03 +01:00
mark
ca798c391d Clean npm scripts 2023-01-21 20:30:18 +01:00
mark
ea14e90901 Add font docs 2023-01-21 20:30:00 +01:00
mark
058ec3f1df Fix bold font 2023-01-21 20:29:48 +01:00
mark
d239ec482d Add font docs 2023-01-21 20:29:35 +01:00
mark
779fcfbda1 Fix typo 2023-01-21 19:05:47 +01:00
mark
b326a0c121 Simplify local server headers 2023-01-21 19:05:24 +01:00
mark
e4ef15b702 Update package versions in example 2023-01-21 15:36:54 +01:00
mark
24ba30acb0 Refine wording 2023-01-21 15:36:27 +01:00
mark
3884e32245 Add scripts documentation 2023-01-21 15:36:07 +01:00
mark
49733cc31c Add dart-sass comment 2023-01-21 15:01:38 +01:00
mark
0bc440c640 Use cross-platform rimraf 2023-01-21 15:01:09 +01:00
mark
dec5269f56 Add dart-sass comment 2023-01-21 15:00:42 +01:00
mark
33a55ef9f3 Use cross-platform rimraf 2023-01-21 14:57:47 +01:00
mark
4c3920abbc Use cross-platform rimraf 2023-01-21 14:57:32 +01:00
mark
664d9fa9b0 Add docs tag 2023-01-21 14:55:22 +01:00
Mark Dumay
644fdaefca Merge pull request #107 from markdumay/main
Sync with main branch
2023-01-21 08:13:38 +01:00
mark
7c6d9bc7a3 Fix linting issues 2023-01-21 08:10:32 +01:00
Mark Dumay
ec50c950bb Merge branch 'csp' into main 2023-01-21 08:05:14 +01:00
mark
4015b923a7 Refine comments 2023-01-21 07:54:06 +01:00
mark
cd0786e82c Add fonts placeholder 2023-01-21 07:52:57 +01:00
mark
a2762ebf4b Define styles documentation 2023-01-21 07:52:35 +01:00
mark
0dda1af72d Add language documentation 2023-01-21 06:39:41 +01:00
mark
af792bf385 Simplify frontmatter 2023-01-21 06:39:27 +01:00
mark
4a77d9cafd Simplify frontmatter 2023-01-21 06:38:48 +01:00
mark
db1b0efd04 Add language documentation 2023-01-21 06:38:29 +01:00
mark
0b273a0bb7 Finalize layout documentation for single pages 2023-01-21 05:57:41 +01:00
mark
3c22cda509 Document language configuration 2023-01-21 05:20:52 +01:00
mark
5b7645797b Extend list page configuration 2023-01-21 05:20:11 +01:00
mark
dcb0d27883 Fix a typo 2023-01-21 05:19:44 +01:00
mark
76622657dd Expand base layout configuration settings 2023-01-21 05:19:27 +01:00
mark
3ef9622c9a Add about i18n 2023-01-21 04:46:39 +01:00
mark
1dbc144fbc Refine documentation 2023-01-21 04:46:09 +01:00
mark
a5d5ddc5e6 Reuse section list for home page and list pages 2023-01-21 04:45:51 +01:00
mark
cfe4cc8505 Reuse section list for home page and list pages 2023-01-21 04:45:23 +01:00
mark
4d98627e21 Streamline site parameters 2023-01-21 04:43:37 +01:00
Mark Dumay
d31c1cdd92 Merge pull request #90 from dgrammlich/fix-missing-bullet
Add bullet after modified time entry
2023-01-20 05:37:00 +01:00
Daniela Grammlich
3fb9f43969 Refactor code to ensure whitespaces around every bullet 2023-01-19 17:34:42 +01:00
Daniela Grammlich
58422ae631 Add missing non-breaking space 2023-01-19 17:34:42 +01:00
Daniela Grammlich
28801aeef7 Refactor code 2023-01-19 17:34:42 +01:00
Daniela Grammlich
294928c254 Add bullet after modified time entry 2023-01-19 17:34:42 +01:00
mark
cd40afe6e4 Add initial layout content 2023-01-18 10:46:29 +01:00
mark
bf1728b88f Support list page parameterization 2023-01-18 10:43:26 +01:00
mark
1c9e8166a8 Refine default settings 2023-01-18 10:42:39 +01:00
mark
5492032128 Streamline configuration parameters 2023-01-18 10:39:55 +01:00
mark
070fe64d82 Fix title argument 2023-01-18 10:37:21 +01:00
mark
d3c45aff32 Bump dependency 2023-01-18 10:36:48 +01:00
mark
1c60dfa023 Add metadata placeholder 2023-01-18 10:36:38 +01:00
Mark Dumay
976f437949 Merge pull request #104 from markdumay/dependabot/npm_and_yarn/eslint-plugin-import-2.27.5
Bump eslint-plugin-import from 2.27.4 to 2.27.5
2023-01-17 15:28:03 +01:00
dependabot[bot]
e2db1af696 Bump eslint-plugin-import from 2.27.4 to 2.27.5
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.27.4 to 2.27.5.
- [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.27.4...v2.27.5)

---
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-01-17 13:14:40 +00:00
Mark Dumay
7b2cf91811 Merge pull request #103 from markdumay/dependabot/npm_and_yarn/eslint-8.32.0
Bump eslint from 8.31.0 to 8.32.0
2023-01-16 14:49:06 +01:00
dependabot[bot]
83adf87e5b Bump eslint from 8.31.0 to 8.32.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.31.0 to 8.32.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.31.0...v8.32.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-01-16 13:21:37 +00:00
mark
7769d58ad9 Fix scroll position of anchors with fixed nav 2023-01-16 06:28:28 +01:00
mark
d79be40cae Refactor positioning of navigation elements 2023-01-16 06:27:33 +01:00
mark
849d60d4f8 Refactor positioning of navigation elements 2023-01-16 06:27:16 +01:00
mark
781bc8678b Refactor positioning of navigation elements 2023-01-16 06:26:56 +01:00
mark
314fd94eeb Disable breadcrumb 2023-01-15 15:49:51 +01:00
mark
e0fbacc57d Add placeholder 2023-01-15 15:48:27 +01:00
mark
87ed025a87 Remove redundant frontmatter argument 2023-01-15 15:48:14 +01:00
mark
b31e2cac82 Improve markup 2023-01-15 15:44:20 +01:00
mark
acc96631cf Standardize navigation configuration 2023-01-15 15:43:53 +01:00
mark
d49a17c015 Add navigation page 2023-01-15 15:43:38 +01:00
mark
3b4813d65a Refine breadcrumb layout 2023-01-15 15:42:23 +01:00
mark
91da9eaecf Add layout page 2023-01-15 15:41:40 +01:00
mark
b8c555449b Improve single page menus 2023-01-15 15:41:23 +01:00
mark
73364ae305 Standardize navigation configuration 2023-01-15 15:41:00 +01:00
mark
c138b5999f Address linting issues 2023-01-15 15:38:01 +01:00
mark
963100834e Refine colored links example 2023-01-15 05:00:06 +01:00
mark
4a4ee8d2fc Use scss-docs to add generator example 2023-01-15 04:59:49 +01:00
mark
ca60f7e2c3 Use toml-docs to add config example 2023-01-15 04:59:08 +01:00
mark
e28a6086b8 Use toml-docs to add config example 2023-01-15 04:58:36 +01:00
mark
010b0e8b04 Add server configuration 2023-01-14 17:47:39 +01:00
mark
c83c5ccb48 Add color configuration 2023-01-14 17:15:27 +01:00
mark
bb3edcc0b9 Add configuration overview 2023-01-14 16:52:26 +01:00
mark
b7e4ec2465 Add keywords and author 2023-01-14 16:51:50 +01:00
mark
5b7f2d33ca Add repo owner 2023-01-14 12:55:38 +01:00
mark
0f401bf345 Update features 2023-01-14 12:55:09 +01:00
mark
b77215f7b6 Add license overview for code and documentation 2023-01-14 12:54:49 +01:00
mark
5e5d8d8338 Remove overview from about section 2023-01-14 12:54:11 +01:00
mark
cbb7713737 Add team, core components, and inspiration 2023-01-14 11:52:35 +01:00
mark
17f63f93e4 Add initial credits 2023-01-14 08:57:09 +01:00
mark
3755c20a55 Simplify reference to Hinode 2023-01-14 08:47:13 +01:00
mark
0a8ec00c90 Simplify reference to Hinode 2023-01-14 08:46:45 +01:00
mark
8aabb262ca Add placeholders 2023-01-14 08:43:13 +01:00
mark
9d26a7386c Add documentation keyword to theme summary 2023-01-14 08:10:39 +01:00
mark
b61c68ce68 Centralize external links 2023-01-14 07:44:47 +01:00
mark
8bb66ff0cd Align padding to main content 2023-01-14 06:39:52 +01:00
mark
d038ef2590 Change author 2023-01-14 06:39:26 +01:00
mark
175f726e3c Fix /docs redirect 2023-01-14 06:39:11 +01:00
mark
03b665f273 Address linting issues 2023-01-13 07:34:32 +01:00
mark
786dbbab1e Use command shortcode 2023-01-13 07:34:21 +01:00
mark
13c7e4e9a4 Add link comment 2023-01-13 07:33:06 +01:00
mark
c4d8665e10 Remove unused links 2023-01-13 07:32:52 +01:00
mark
06f739dc79 Rewrite contribution guidelines 2023-01-13 07:31:48 +01:00
Mark Dumay
aff07f0392 Update issue templates 2023-01-13 05:41:53 +01:00
Mark Dumay
20061058bf Update issue templates 2023-01-13 05:36:15 +01:00
Mark Dumay
318abf8f19 Merge pull request #102 from markdumay/dependabot/npm_and_yarn/eslint-plugin-import-2.27.4
Bump eslint-plugin-import from 2.26.0 to 2.27.4
2023-01-12 15:11:27 +01:00
dependabot[bot]
7ad9f428ab Bump eslint-plugin-import from 2.26.0 to 2.27.4
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.26.0 to 2.27.4.
- [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.26.0...v2.27.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-12 13:30:56 +00:00
mark
b5d6c2dc8f Add initial version 2023-01-11 17:12:14 +01:00
mark
59e6b6c789 Fix linting issues 2023-01-11 15:20:27 +01:00
mark
cdaa9a97ed Apply docs layout 2023-01-11 15:07:25 +01:00
mark
6f1a22172a Fix toggle with multiple navbars 2023-01-11 15:01:54 +01:00
mark
6f26c0257e Add badge documentation 2023-01-11 14:44:44 +01:00
mark
393b4d0324 Generalize sidebar support 2023-01-11 14:12:47 +01:00
mark
c78b4daa75 Fix layout of cards 2023-01-11 14:10:13 +01:00
Mark Dumay
2a3a236025 Merge pull request #101 from markdumay/image-win
Fix image handling on Windows
2023-01-11 13:14:26 +01:00
mark
d19cec8547 Bump dependencies 2023-01-11 13:09:31 +01:00
mark
6800125faa Bump package version 2023-01-11 13:08:41 +01:00
mark
7b6966c48f Fix #100 2023-01-11 10:27:19 +01:00
Mark Dumay
f8c25163c6 Update build.yml 2023-01-11 05:06:47 +01:00
Mark Dumay
79aae2c355 Merge pull request #99 from markdumay/dependabot/npm_and_yarn/json5-1.0.2
Bump json5 from 1.0.1 to 1.0.2
2023-01-11 05:01:53 +01:00
Mark Dumay
1adb480281 Create build.yml 2023-01-11 05:00:57 +01:00
dependabot[bot]
801733ac98 Bump json5 from 1.0.1 to 1.0.2
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-08 18:37:33 +00:00
mark
8de92ae0c0 Add sidebar toggle button 2023-01-08 12:31:52 +01:00
mark
3aa9e5eee3 Add initial content 2023-01-08 12:04:16 +01:00
mark
e95262d887 Add initial content 2023-01-08 12:04:00 +01:00
mark
e6dac64a66 Refine description 2023-01-08 12:02:43 +01:00
mark
1b23707d68 Add support for fixed-top navbar 2023-01-08 12:02:22 +01:00
mark
38fbdfe0dd Add initial docs menu 2023-01-08 12:00:07 +01:00
mark
17123df07f Extend supported colors 2023-01-08 11:56:16 +01:00
mark
ac663e4300 Add sidebar navigation support 2023-01-08 11:53:36 +01:00
mark
d6931e08b0 Fix alignment of suggestions on overflow 2023-01-08 11:07:30 +01:00
mark
8d9f9126ba Refine navbar component 2023-01-07 11:25:12 +01:00
mark
6174f6902d Add initial component documentation 2023-01-06 16:32:42 +01:00
mark
3a48245e47 Fix Dutch url 2023-01-06 16:31:10 +01:00
mark
5e41528313 Add git partial 2023-01-06 16:30:14 +01:00
mark
a1c8571883 Fix active item identification 2023-01-06 16:29:27 +01:00
mark
b6e4f1c9e8 Add placeholder content 2023-01-06 16:27:44 +01:00
mark
3396edd49d Add placeholder content 2023-01-06 16:27:09 +01:00
mark
2935b19918 Fix layout 2023-01-05 10:38:44 +01:00
mark
fb9a3198e3 Add nested menu example 2023-01-05 10:37:53 +01:00
mark
572bff160a Introduce reusable card group 2023-01-05 10:37:19 +01:00
mark
49c6f2e722 Align card height to grid 2023-01-05 10:35:03 +01:00
mark
842706b39b Add search option 2023-01-05 10:34:03 +01:00
mark
221888a9df Remove debug statements 2023-01-05 10:33:36 +01:00
mark
85b52116a0 Remove rendered space 2023-01-03 16:56:26 +01:00
mark
b371b0f162 Add support for full cover page 2023-01-03 16:56:04 +01:00
Mark Dumay
9f30ce0dfa Merge pull request #97 from markdumay/dependabot/npm_and_yarn/markdownlint-cli2-0.6.0
Bump markdownlint-cli2 from 0.5.1 to 0.6.0
2023-01-02 17:50:45 +01:00
Mark Dumay
7ed1309e67 Merge pull request #98 from markdumay/dependabot/npm_and_yarn/eslint-8.31.0
Bump eslint from 8.30.0 to 8.31.0
2023-01-02 17:48:29 +01:00
mark
fe7c7af9e9 Fix #86 2023-01-02 15:03:38 +01:00
mark
77986aea12 Fix #86 2023-01-02 15:02:27 +01:00
dependabot[bot]
0ed4e12eec Bump eslint from 8.30.0 to 8.31.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.30.0 to 8.31.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.30.0...v8.31.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-01-02 13:32:13 +00:00
dependabot[bot]
29ae08aca8 Bump markdownlint-cli2 from 0.5.1 to 0.6.0
Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.5.1 to 0.6.0.
- [Release notes](https://github.com/DavidAnson/markdownlint-cli2/releases)
- [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.5.1...v0.6.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-01-02 13:31:50 +00:00
mark
fc98cb27cb Address linting issues 2023-01-02 08:30:39 +01:00
mark
f31f67bc38 Address linting issues 2023-01-02 07:56:45 +01:00
mark
ced65e93f2 Adsd collapse shortcode 2023-01-02 07:56:26 +01:00
mark
ccabca0e44 Refine close button documentation 2023-01-02 07:52:40 +01:00
mark
ac36334e46 Refine badge documentation 2023-01-02 07:52:16 +01:00
mark
8e65ad0d9b Fix popover 2023-01-01 17:12:35 +01:00
mark
b88536991c Add accordion shortcode 2023-01-01 16:33:41 +01:00
mark
609ead6929 Simplify argument init 2023-01-01 16:33:22 +01:00
mark
42f2d40782 Make href optional and add id 2023-01-01 11:32:57 +01:00
mark
414f635da0 Add toast shortcode 2023-01-01 11:31:24 +01:00
mark
7f883265bf Remove generated newline 2023-01-01 10:42:07 +01:00
mark
a76d144961 Add css compression in production 2023-01-01 10:40:34 +01:00
mark
89546e97a9 Reuse existing variable 2023-01-01 10:39:49 +01:00
mark
266dfeb378 Remove debug statement 2023-01-01 10:29:46 +01:00
mark
a2a9c5cced Center card 2023-01-01 09:46:28 +01:00
mark
9eb3eb45d8 Bundle primary scripts 2023-01-01 09:40:35 +01:00
mark
7235f804cf Update copyright notice 2023-01-01 09:39:28 +01:00
mark
6ee2903e1f Fix more button translation 2022-12-31 15:56:40 +01:00
mark
94519ebab7 Remove obsolete partials 2022-12-31 15:46:57 +01:00
mark
bdb383971f Remove redundant spaces 2022-12-31 15:44:45 +01:00
mark
28ccceb4e7 Add modified date 2022-12-31 15:43:40 +01:00
mark
44c7effd84 Refine modification date 2022-12-31 15:43:29 +01:00
mark
c35f4af315 Prettify number formatting 2022-12-31 15:42:46 +01:00
mark
b9f4ad7dd4 Make descriptions consistent 2022-12-31 15:42:13 +01:00
mark
cca17670df Fix linting issues 2022-12-31 15:15:07 +01:00
mark
6b0c5cbbf3 Rename project-card to card-emphasize 2022-12-31 14:49:57 +01:00
mark
059870d86b Refactor card partial 2022-12-31 14:22:57 +01:00
mark
adf10a184c Add header and footer 2022-12-31 14:22:43 +01:00
mark
8e26e8ef7f Reuse card partial 2022-12-31 14:22:24 +01:00
mark
840fbd42af Update documentation 2022-12-31 14:21:47 +01:00
mark
3945be2871 Add support for link-bg-* classes 2022-12-31 14:21:28 +01:00
mark
eb8422e277 Change thumbnails 2022-12-31 06:55:52 +01:00
mark
60a5a87990 Refine intro 2022-12-30 16:54:48 +01:00
mark
7a689eb6c5 Reuse card partial 2022-12-30 16:49:20 +01:00
mark
9f47ce8f23 Reuse card partial 2022-12-30 16:49:00 +01:00
mark
09ce9835fb Add card shortcode 2022-12-30 16:48:26 +01:00
mark
06cedc7285 Refactor card shortcode and partial 2022-12-30 16:48:09 +01:00
mark
95dba924e3 Rename text param to title 2022-12-30 07:28:33 +01:00
mark
abb09b91ea Add card shortcode and partial 2022-12-30 07:28:04 +01:00
Mark Dumay
793eaeaab1 Merge pull request #96 from markdumay/dependabot/npm_and_yarn/stylelint-14.16.1
Bump stylelint from 14.16.0 to 14.16.1
2022-12-29 15:01:38 +01:00
dependabot[bot]
a2b28da988 Bump stylelint from 14.16.0 to 14.16.1
Bumps [stylelint](https://github.com/stylelint/stylelint) from 14.16.0 to 14.16.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/14.16.0...14.16.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-29 13:15:40 +00:00
mark
1ec9690fe1 Add breadcrumb partial and shortcode 2022-12-27 16:55:53 +01:00
mark
9ba31ad1c3 Add button group shortcode 2022-12-27 16:30:32 +01:00
mark
3cc530b3f6 Include shortcode references and examples 2022-12-27 16:10:42 +01:00
mark
c19a0d1b06 Refine examples 2022-12-27 15:54:54 +01:00
mark
1cd1bfe463 Reuse button partial 2022-12-27 15:54:18 +01:00
mark
fed06d16d5 Add button partial and shortcode 2022-12-27 15:54:07 +01:00
mark
ffeaeb47f6 Add alert, spinner, and tooltip shortcode 2022-12-26 19:29:49 +01:00
mark
7c7331a219 Remove redundant whitespace 2022-12-26 19:29:04 +01:00
mark
9138fae240 Improve documentation 2022-12-26 19:28:47 +01:00
mark
155c1c6e68 Add alert shortcode 2022-12-26 19:28:19 +01:00
mark
1fa374c7e6 Add spinner shortcode 2022-12-26 19:28:11 +01:00
mark
98e95bf03e Add tooltip shortcode 2022-12-26 19:27:59 +01:00
mark
e28ed2283c Remove test file 2022-12-26 11:49:16 +01:00
mark
a651d0e14d Refine indentation 2022-12-26 11:46:51 +01:00
mark
81b2f8fd1f Refine summary 2022-12-26 11:46:49 +01:00
mark
125e2b011b Support parameterized vector icons 2022-12-26 11:32:40 +01:00
mark
d1c26f8321 Add example bootstrap components 2022-12-26 11:30:31 +01:00
mark
66e619af96 Add parameterized vector images 2022-12-26 11:29:36 +01:00
mark
5a8bf71cd6 Add parameterized vector images 2022-12-26 11:29:05 +01:00
mark
820aa45a58 Update theme color style 2022-12-26 11:27:35 +01:00
mark
50b712cf9c Remove redundant space 2022-12-26 11:25:54 +01:00
mark
2c8097bbb8 Bump dependency 2022-12-26 11:25:38 +01:00
mark
f89dfd23ef Add banner mixin placeholder 2022-12-21 05:26:35 +01:00
Mark Dumay
0999eb451b Merge pull request #94 from markdumay/dependabot/npm_and_yarn/eslint-8.30.0
Bump eslint from 8.29.0 to 8.30.0
2022-12-19 15:02:26 +01:00
dependabot[bot]
152a955597 Bump eslint from 8.29.0 to 8.30.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.29.0 to 8.30.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.29.0...v8.30.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 13:19:58 +00:00
mark
f72cd1de3c Remove trailing slash on void elements 2022-12-14 16:57:34 +01:00
Mark Dumay
482a9bfe26 Merge pull request #93 from markdumay/main
Synchronize branch
2022-12-12 07:10:09 +01:00
Mark Dumay
a0fb57d7d3 Merge pull request #92 from markdumay/develop
Fix spacing of blog captions #87
2022-12-12 07:04:03 +01:00
mark
c6c686ec65 Fix spacing of blog captions #87 2022-12-12 07:01:13 +01:00
Mark Dumay
48f967ad92 Merge pull request #91 from markdumay/develop
Bump package version
2022-12-12 06:54:53 +01:00
mark
ba3af4f031 Bump package version 2022-12-12 06:52:14 +01:00
Mark Dumay
70a175bdaa Merge pull request #89 from dgrammlich/enhance-i18n-labels
Translate pagination buttons
2022-12-12 06:47:03 +01:00
Daniela Grammlich
fdc0750f13 Translate first and last button of pagination 2022-12-12 00:20:21 +01:00
Daniela Grammlich
43db7912d0 Provide translations for aria-label 2022-12-12 00:19:35 +01:00
Daniela Grammlich
5a4f0dc14d Merge branch 'markdumay:main' into enhance-i18n-labels 2022-12-12 00:07:19 +01:00
Daniela Grammlich
c93b62817e Use proper Dutch translation for pagination 2022-12-11 19:32:39 +01:00
Mark Dumay
3a6ab9df76 Merge pull request #88 from dgrammlich/german-language-support
Add German translation
2022-12-11 19:07:32 +01:00
Daniela Grammlich
ad5989d80f Provide labels for pagination 2022-12-11 19:02:38 +01:00
Daniela Grammlich
0b9eadffb6 Translate pagination buttons 2022-12-11 18:56:55 +01:00
Daniela Grammlich
9963b746b1 Add German translation 2022-12-11 18:22:39 +01:00
Mark Dumay
836ef99122 Merge pull request #85 from markdumay/develop
Configurable font
2022-12-10 07:23:26 +01:00
mark
156b444582 Bump package version 2022-12-10 07:20:58 +01:00
mark
aa27ab0f2c Make default font configurable 2022-12-10 07:18:56 +01:00
176 changed files with 6514 additions and 1638 deletions

View File

@@ -1,3 +1,4 @@
assets/js/index.js
assets/js/color.js
assets/js/flexsearch.js
assets/js/vendor
node_modules

36
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,36 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Log file**
If applicable, add a copy of Hugo's log messages.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
- Host OS: [e.g. macOS Ventura 13.0]
- Node version: [e.g. node v18.10.0]
- Hugo version: [e.g. hugo v0.109.0-47b12b83e636224e5e601813ff3e6790c191e371+extended darwin/amd64 BuildDate=2022-12-23T10:38:11Z VendorInfo=gohugoio]
- Browser: [e.g. Google Chrome Version 108.0.5359.124 (Official Build) (arm64)]
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

28
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: build
on:
push:
tags:
- v*
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
strategy:
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
node-version: [14.x, 16.x, 18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build

View File

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

View File

@@ -1,5 +1,7 @@
assets/scss/common/_variables.scss
assets/scss/components/_syntax.scss
assets/scss/components/_syntax-dark.scss
assets/scss/components/_syntax-light.scss
assets/scss/hotfix
assets/scss/vendor
assets/scss/app.scss
node_modules

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 Mark Dumay
Copyright (c) 2023 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

123
README.md
View File

@@ -2,7 +2,7 @@
<!-- Tagline -->
<p align="center">
<b>A clean blog theme for your Hugo site based on Bootstrap 5</b>
<b>A clean documentation and blog theme for your Hugo site based on Bootstrap 5</b>
<br />
</p>
@@ -11,23 +11,23 @@
<a href="https://gohugo.io" alt="Hugo website">
<img src="https://img.shields.io/badge/generator-hugo-brightgreen" />
</a>
<a href="https://app.netlify.com/sites/hinode-demo/deploys" alt="Netlify Status">
<img src="https://img.shields.io/netlify/151e88a3-d161-4045-856d-778fea43fc2f" />
<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>
<a href="https://stats.uptimerobot.com/xyGVYhLJmV" alt="UptimeRobot Status">
<img src="https://img.shields.io/uptimerobot/status/m791334689-73d9dfc82030f4f955b2d6bb" />
</a>
<a href="https://github.com/markdumay/hugo-theme-hinode/commits/main" alt="Last commit">
<img src="https://img.shields.io/github/last-commit/markdumay/hugo-theme-hinode.svg" />
<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>
<a href="https://github.com/markdumay/hugo-theme-hinode/issues" alt="Issues">
<img src="https://img.shields.io/github/issues/markdumay/hugo-theme-hinode.svg" />
<a href="https://github.com/gethinode/hinode/issues" alt="Issues">
<img src="https://img.shields.io/github/issues/gethinode/hinode.svg" />
</a>
<a href="https://github.com/markdumay/hugo-theme-hinode/pulls" alt="Pulls">
<img src="https://img.shields.io/github/issues-pr-raw/markdumay/hugo-theme-hinode.svg" />
<a href="https://github.com/gethinode/hinode/pulls" alt="Pulls">
<img src="https://img.shields.io/github/issues-pr-raw/gethinode/hinode.svg" />
</a>
<a href="https://github.com/markdumay/hugo-theme-hinode/blob/main/LICENSE" alt="License">
<img src="https://img.shields.io/github/license/markdumay/hugo-theme-hinode" />
<a href="https://github.com/gethinode/hinode/blob/main/LICENSE" alt="License">
<img src="https://img.shields.io/github/license/gethinode/hinode" />
</a>
</p>
@@ -44,27 +44,25 @@
## About
![Logo](https://raw.githubusercontent.com/markdumay/hugo-theme-hinode/main/static/img/logo.png)
![Logo](https://raw.githubusercontent.com/gethinode/hinode/main/static/img/logo.png)
- [Online Demo][demo]
- [PageSpeed Insights][pagespeed]
- [Mozilla Observatory][observatory]
Hinode is a clean blog theme for [Hugo][hugo], an open-source static site generator. Based on the [Bootstrap 5][bootstrap] framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch][flexsearch] to enable full text search across your site. Finally, the theme uses [Node Package Manager][npm] to automate the build process and to keep track of dependencies.
Hinode is a clean documentation and blog theme for [Hugo][hugo], an open-source static site generator. Based on the [Bootstrap 5][bootstrap] framework, the rendered site is fast, secure, and responsive. Hinode uses [FlexSearch][flexsearch] to enable full text search across your site. Finally, the theme uses [Node Package Manager][npm] to automate the build process and to keep track of dependencies.
Additional features include:
- Comments
- Social links
- Blog pagination
- Code highlighting
- Command prompt
- Color customization
- Language switcher
- Support for multiple languages
- Reusable Bootstrap components through configurable shortcodes and partials
- Embedded comments through light-weight integration with GitHub via [utteranc.es][utterances]
- Integrated sidebar navigation for content-heavy sections, such as documentation pages
- Reponsive image handling for multiple screen sizes and resolutions
- Optimized search results, scoring 100 points for SEO on [PageSpeed Insights][pagespeed]
- Secure by default, scoring A+ on [Mozilla Observatory test][observatory]
<!-- TODO: add tutorial deep-link
Detailed background information is available on the author's [personal blog][blog].
-->
Detailed information about Hinode is available on the [official website][website].
## Prerequisites
@@ -74,60 +72,43 @@ Hinode requires Git, Node.js and npm for local development and testing. Download
Start a new Hinode project in three steps:
### 1. Create a new site
1. Create a new site
Hinode is available as a [child theme][repository_child], and a [main theme][repository]. The child theme uses [npm][npm] to link to the latest available version of the Hinode theme. As such, it is less applicable if you plan to customize a lot. Vice versa, the main theme allows for heavy customization, but is not synchronized with the latest available Hinode theme automatically.
Hinode is available as a [child theme][repository_child], and a [main theme][repository]. The child theme uses [npm][npm] to link to the latest available version of Hinode. Unless you plan to customize a lot, it is recommended to use the child theme:
Not quite sure? Use the Hinode child theme.
```bash
git clone https://github.com/gethinode/child.git my-hinode-site && cd my-hinode-site
```
#### Hinode child theme
Use the main theme if you intend to customize the base code:
```bash
git clone https://github.com/markdumay/hugo-theme-hinode-child.git my-hinode-site && cd my-hinode-site
```
```bash
git clone https://github.com/gethinode/hinode.git my-hinode-site && cd my-hinode-site
```
#### Hinode main theme
1. Install dependencies
```bash
git clone https://github.com/markdumay/hugo-theme-hinode.git my-hinode-site && cd my-hinode-site
```
```bash
npm install
```
### 2. Install dependencies
1. Start development server
```bash
npm install
```
### 3. Start development server
```bash
npm run start
```
```bash
npm run start
```
## Configuration
The main site configuration is available in `./config/_default`. Some remarks:
- **Menu items** - `menus/menus.en.toml` contains language-specific items for the navigation bar and social media links for the home page's footer.
- **Content** - Ensure the `mainSections` in `config.toml` is synchronized with the `content` folder, default values are `["blog", "projects"]`.
- **Theme color** - Update `themeColor` and `themeOpacity` within the `[style]` section of `params.toml` to update the site's primary color and opacity. You can use the [WCAG Color Contrast Checker][contrast_checker] to validate the contrast ratio of your color to improve accessibility.
- **Comments** - Comments are powered by [utterances][utterances], a lightweight comments widget built on GitHub issues. Update the `repo` of the `[comments]` section of `params.toml`.
- **Security policy** - The theme uses rather strict security policies by default. Be sure to include references to external sources in the header configuration to avoid broken links. The settings of the local development server are defined in `server.toml`. Similar settings are defined in the `netlify.toml` file provided in the repository's root when deploying to [Netlify][netlify].
See the [official documentation][getstarted] on how to configure your site.
## Contributing
1. Clone the repository and create a new branch
```console
git checkout https://github.com/markdumay/hugo-theme-hinode.git -b name_for_new_branch
```
2. Make and test the changes
3. Submit a Pull Request with a comprehensive description of the changes
See the [official documentation][contribute] on how to contribute to the open-source development of Hinode.
## Credits
The Hinode theme is inspired by the following themes:
Hinode is inspired by the following themes:
- [Blist][blist] - a clean and fast blog theme for your Hugo site using Tailwind CSS.
- [Doks][doks] - a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize.
@@ -138,13 +119,12 @@ The Hinode theme is inspired by the following themes:
## License
The `hugo-theme-hinode` and `hugo-theme-hinode-child` codebase is released under the [MIT license][license]. The documentation (including the "README") is licensed under the Creative Commons ([CC BY-NC 4.0)][cc-by-nc-4.0] license.
The `hinode` and `child` codebase is released under the [MIT license][license]. The documentation (including the "README" and `docs` codebase) is licensed under the Creative Commons ([CC BY-NC 4.0)][cc-by-nc-4.0] license.
<!-- MARKDOWN PUBLIC LINKS -->
[blist]: https://github.com/apvarun/blist-hugo-theme
[bootstrap]: https://getbootstrap.com
[cc-by-nc-4.0]: https://creativecommons.org/licenses/by-nc/4.0/
[contrast_checker]: https://accessibleweb.com/color-contrast-checker/
[doks]: https://github.com/h-enk/doks
[flexsearch]: https://github.com/nextapps-de/flexsearch
[git_download]: https://git-scm.com
@@ -152,16 +132,15 @@ The `hugo-theme-hinode` and `hugo-theme-hinode-child` codebase is released under
[netlify]: https://www.netlify.com
[nodejs]: https://nodejs.org
[npm]: https://www.npmjs.com
[observatory]: https://observatory.mozilla.org/analyze/hinode-demo.markdumay.org
[pagespeed]: https://pagespeed.web.dev/report?url=https%3A%2F%2Fhinode-demo.markdumay.org%2F
[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 -->
<!-- TODO: add blog link
[blog]: https://markdumay.com
[blog]: https://github.com/markdumay
-->
[demo]: https://hinode-demo.markdumay.org/
[license]: https://github.com/markdumay/hugo-theme-hinode/blob/main/LICENSE
[repository]: https://github.com/markdumay/hugo-theme-hinode.git
[repository_child]: https://github.com/markdumay/hugo-theme-hinode-child.git
[contribute]: https://gethinode.com/contribute
[getstarted]: https://gethinode.com/docs
[demo]: https://demo.gethinode.com/
[license]: https://github.com/gethinode/hinode/blob/main/LICENSE
[repository]: https://github.com/gethinode/hinode.git
[repository_child]: https://github.com/gethinode/child.git
[website]: https://gethinode.com/

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='{{ .accordion_icon_active_color_dark }}'>
<path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/>
</svg>

After

Width:  |  Height:  |  Size: 269 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='{{ .accordion_icon_active_color }}'>
<path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/>
</svg>

After

Width:  |  Height:  |  Size: 264 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='{{ .accordion_icon_color_dark }}'>
<path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/>
</svg>

After

Width:  |  Height:  |  Size: 262 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='{{ .accordion_icon_color }}'>
<path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/>
</svg>

After

Width:  |  Height:  |  Size: 257 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='{{ .btn_close_color }}'>
<path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/>
</svg>

After

Width:  |  Height:  |  Size: 305 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 320 512' fill='{{ .btn_toggle_color_dark }}'>
<path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/>
</svg>

After

Width:  |  Height:  |  Size: 314 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 320 512' fill='{{ .btn_toggle_color }}'>
<path d="M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"/>
</svg>

After

Width:  |  Height:  |  Size: 309 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='{{ .carousel_control_color }}'>
<path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/>
</svg>

After

Width:  |  Height:  |  Size: 239 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='{{ .carousel_control_color }}'>
<path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/>
</svg>

After

Width:  |  Height:  |  Size: 238 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'>
<path fill='none' stroke='{{ .form_check_input_checked_color }}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/>
</svg>

After

Width:  |  Height:  |  Size: 220 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'>
<path fill='none' stroke='{{ .form_check_input_indeterminate_color }}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/>
</svg>

After

Width:  |  Height:  |  Size: 220 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
<circle r='2' fill='{{ .form_check_input_checked_color }}'/>
</svg>

After

Width:  |  Height:  |  Size: 132 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='{{ .form_feedback_icon_invalid_color }}'>
<circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='{{ .form_feedback_icon_invalid_color }}' stroke='none'/>
</svg>

After

Width:  |  Height:  |  Size: 334 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'>
<path fill='{{ .form_feedback_icon_valid_color }}' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/>
</svg>

After

Width:  |  Height:  |  Size: 229 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'>
<path fill='none' stroke='{{ .form_select_indicator_color_dark }}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/>
</svg>

After

Width:  |  Height:  |  Size: 221 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'>
<path fill='none' stroke='{{ .form_select_indicator_color }}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/>
</svg>

After

Width:  |  Height:  |  Size: 216 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
<circle r='3' fill='{{ .form_switch_color_dark }}' />
</svg>

After

Width:  |  Height:  |  Size: 125 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
<circle r='3' fill='{{ .form_switch_color }}' />
</svg>

After

Width:  |  Height:  |  Size: 120 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
<circle r='3' fill='{{ .form_switch_checked_color }}'/>
</svg>

After

Width:  |  Height:  |  Size: 127 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
<circle r='3' fill='{{ .form_switch_focus_color }}'/>
</svg>

After

Width:  |  Height:  |  Size: 125 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'>
<path stroke="{{ .navbar_dark_color }}" stroke-opacity="0.55" stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/>
</svg>

After

Width:  |  Height:  |  Size: 226 B

View File

@@ -0,0 +1,3 @@
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'>
<path stroke='{{ .navbar_light_icon_color }}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/>
</svg>

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

BIN
assets/img/azblob-step2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB

BIN
assets/img/azblob-step3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

BIN
assets/img/paper.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 KiB

BIN
assets/img/sketch.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 KiB

View File

@@ -1 +0,0 @@
import 'bootstrap/dist/js/bootstrap.bundle.min.js'

38
assets/js/clipboard.js Normal file
View File

@@ -0,0 +1,38 @@
/*
Source:
- https://simplernerd.com/hugo-add-copy-to-clipboard-button/
*/
const svgCopy =
'<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"><path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/><path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>'
const svgCheck =
'<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true"><path fill-rule="evenodd" fill="rgb(63, 185, 80)" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>'
const addCopyButtons = (clipboard) => {
// 1. Look for pre > code elements in the DOM
document.querySelectorAll('pre > code').forEach((codeBlock) => {
// 2. Create a button that will trigger a copy operation
const button = document.createElement('button')
button.className = 'clipboard-button'
button.type = 'button'
button.innerHTML = svgCopy
button.addEventListener('click', () => {
clipboard.writeText(codeBlock.innerText).then(
() => {
button.blur()
button.innerHTML = svgCheck
setTimeout(() => (button.innerHTML = svgCopy), 2000)
},
// eslint-disable-next-line n/handle-callback-err
(error) => (button.innerHTML = 'Error')
)
})
// 3. Append the button directly before the pre tag
const pre = codeBlock.parentNode
pre.parentNode.insertBefore(button, pre)
})
}
if (navigator && navigator.clipboard) {
addCopyButtons(navigator.clipboard)
}

67
assets/js/color.js Normal file
View File

@@ -0,0 +1,67 @@
/*!
* Color mode toggler for Bootstrap's docs (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Licensed under the Creative Commons Attribution 3.0 Unported License.
*/
{{ if site.Params.main.enableDarkMode }}
(() => {
'use strict'
const storedTheme = localStorage.getItem('theme')
const getPreferredTheme = () => {
if (storedTheme) {
return storedTheme
}
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
}
const setTheme = function (theme) {
if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.setAttribute('data-bs-theme', 'dark')
} else {
document.documentElement.setAttribute('data-bs-theme', theme)
}
}
setTheme(getPreferredTheme())
const showActiveTheme = theme => {
const activeSelector = document.querySelector('.theme-icon-active')
const activeButton = document.querySelector(`[data-bs-theme-value="${theme}"]`)
const activeIcon = activeButton.querySelector('i')
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
element.classList.remove('active')
})
activeSelector.className = activeIcon.className
activeSelector.className = activeSelector.className.replace('theme-icon', 'theme-icon-active')
activeButton.classList.add('active')
}
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
if (storedTheme !== 'light' || storedTheme !== 'dark') {
setTheme(getPreferredTheme())
}
})
window.addEventListener('DOMContentLoaded', () => {
showActiveTheme(getPreferredTheme())
document.querySelectorAll('[data-bs-theme-value]')
.forEach(toggle => {
toggle.addEventListener('click', () => {
const theme = toggle.getAttribute('data-bs-theme-value')
localStorage.setItem('theme', theme)
setTheme(theme)
showActiveTheme(theme)
})
})
})
})()
{{ end }}

161
assets/js/flexsearch.js Normal file
View File

@@ -0,0 +1,161 @@
/*
Source:
- https://raw.githubusercontent.com/h-enk/doks/master/assets/js/index.js
*/
var suggestions = document.getElementById('suggestions');
var search = document.getElementById('search');
if (search !== null) {
document.addEventListener('keydown', inputFocus);
}
function inputFocus(e) {
if (e.ctrlKey && e.key === '/' ) {
e.preventDefault();
search.focus();
}
if (e.key === 'Escape' ) {
search.blur();
suggestions.classList.add('d-none');
}
}
document.addEventListener('click', function(event) {
var isClickInsideElement = suggestions.contains(event.target);
if (!isClickInsideElement) {
suggestions.classList.add('d-none');
}
});
/*
Source:
- https://dev.to/shubhamprakash/trap-focus-using-javascript-6a3
*/
document.addEventListener('keydown',suggestionFocus);
function suggestionFocus(e) {
const suggestionsHidden = suggestions.classList.contains('d-none');
if (suggestionsHidden) return;
const focusableSuggestions= [...suggestions.querySelectorAll('a')];
if (focusableSuggestions.length === 0) return;
const index = focusableSuggestions.indexOf(document.activeElement);
if (e.key === "ArrowUp") {
e.preventDefault();
const nextIndex = index > 0 ? index - 1 : 0;
focusableSuggestions[nextIndex].focus();
}
else if (e.key === "ArrowDown") {
e.preventDefault();
const nextIndex= index + 1 < focusableSuggestions.length ? index + 1 : index;
focusableSuggestions[nextIndex].focus();
}
}
/*
Source:
- https://github.com/nextapps-de/flexsearch#index-documents-field-search
- https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html
*/
(function(){
var index = new FlexSearch.Document({
tokenize: "forward",
cache: 100,
document: {
id: "id",
tag: "tag",
store: ["href", "title", "description"],
index: ["title", "description", "content"]
}
});
// https://discourse.gohugo.io/t/range-length-or-last-element/3803/2
// Note: uses .Site.AllPages as .Site.RegularPages only returns content for the current language
// pages without a title (such as browserconfig.xml) are excluded
{{ $list := where (where .Site.AllPages "Kind" "in" "page") "Title" "!=" "" }}
{{ $len := (len $list) -}}
index.add(
{{ range $index, $element := $list -}}
{
id: {{ $index }},
tag: "{{ .Lang }}",
href: "{{ .RelPermalink }}",
title: {{ .Title | jsonify }},
{{ with .Description -}}
description: {{ . | jsonify }},
{{ else -}}
description: {{ .Summary | plainify | jsonify }},
{{ end -}}
content: {{ .Plain | jsonify }}
})
{{ if ne (add $index 1) $len -}}
.add(
{{ end -}}
{{ end -}}
;
search.addEventListener('input', show_results, true);
function show_results(){
const maxResult = 5;
var searchQuery = this.value;
// filter the results for the currently tagged language
const lang = document.documentElement.lang;
var results = index.search(searchQuery, { index: ['title', 'description', 'content'], limit: maxResult, tag: lang, enrich: true });
// flatten results since index.search() returns results for each indexed field
const flatResults = new Map(); // keyed by href to dedupe results
for (const result of results.flatMap(r => r.result)) {
if (flatResults.has(result.doc.href)) continue;
flatResults.set(result.doc.href, result.doc);
}
suggestions.innerHTML = "";
suggestions.classList.remove('d-none');
// inform user that no results were found
if (flatResults.size === 0 && searchQuery) {
const noResultsMessage = document.createElement('div')
noResultsMessage.innerHTML = `{{ T "ui_no_results" }} "<strong>${searchQuery}</strong>"`
noResultsMessage.classList.add("suggestion__no-results");
suggestions.appendChild(noResultsMessage);
return;
}
// construct a list of suggestions
for(const [href, doc] of flatResults) {
const entry = document.createElement('div');
suggestions.appendChild(entry);
const a = document.createElement('a');
a.href = href;
entry.appendChild(a);
const title = document.createElement('span');
title.classList.add('text-start');
title.textContent = doc.title;
title.classList.add("suggestion__title");
a.appendChild(title);
const description = document.createElement('span');
description.textContent = doc.description;
description.classList.add("suggestion__description");
a.appendChild(description);
suggestions.appendChild(entry);
if(suggestions.childElementCount == maxResult) break;
}
}
}());

View File

@@ -1,199 +0,0 @@
/*
Source:
- https://raw.githubusercontent.com/h-enk/doks/master/assets/js/index.js
*/
var suggestions = document.getElementById('suggestions');
var search = document.getElementById('search');
if (search !== null) {
document.addEventListener('keydown', inputFocus);
}
function inputFocus(e) {
if (e.ctrlKey && e.key === '/' ) {
e.preventDefault();
search.focus();
}
if (e.key === 'Escape' ) {
search.blur();
suggestions.classList.add('d-none');
}
}
document.addEventListener('click', function(event) {
var isClickInsideElement = suggestions.contains(event.target);
if (!isClickInsideElement) {
suggestions.classList.add('d-none');
}
});
/*
Source:
- https://dev.to/shubhamprakash/trap-focus-using-javascript-6a3
*/
document.addEventListener('keydown',suggestionFocus);
function suggestionFocus(e) {
const suggestionsHidden = suggestions.classList.contains('d-none');
if (suggestionsHidden) return;
const focusableSuggestions= [...suggestions.querySelectorAll('a')];
if (focusableSuggestions.length === 0) return;
const index = focusableSuggestions.indexOf(document.activeElement);
if (e.key === "ArrowUp") {
e.preventDefault();
const nextIndex = index > 0 ? index - 1 : 0;
focusableSuggestions[nextIndex].focus();
}
else if (e.key === "ArrowDown") {
e.preventDefault();
const nextIndex= index + 1 < focusableSuggestions.length ? index + 1 : index;
focusableSuggestions[nextIndex].focus();
}
}
/*
Source:
- https://github.com/nextapps-de/flexsearch#index-documents-field-search
- https://raw.githack.com/nextapps-de/flexsearch/master/demo/autocomplete.html
*/
(function(){
var index = new FlexSearch.Document({
tokenize: "forward",
cache: 100,
document: {
id: "id",
tag: "tag",
store: ["href", "title", "description"],
index: ["title", "description", "content"]
}
});
// https://discourse.gohugo.io/t/range-length-or-last-element/3803/2
// Note: uses .Site.AllPages as .Site.RegularPages only returns content for the current language
// pages without a title (such as browserconfig.xml) are excluded
{{ $list := where (where .Site.AllPages "Kind" "in" "page") "Title" "!=" "" }}
{{ $len := (len $list) -}}
index.add(
{{ range $index, $element := $list -}}
{
id: {{ $index }},
tag: "{{ .Lang }}",
href: "{{ .RelPermalink }}",
title: {{ .Title | jsonify }},
{{ with .Description -}}
description: {{ . | jsonify }},
{{ else -}}
description: {{ .Summary | plainify | jsonify }},
{{ end -}}
content: {{ .Plain | jsonify }}
})
{{ if ne (add $index 1) $len -}}
.add(
{{ end -}}
{{ end -}}
;
search.addEventListener('input', show_results, true);
function show_results(){
const maxResult = 5;
var searchQuery = this.value;
// filter the results for the currently tagged language
const lang = document.documentElement.lang;
var results = index.search(searchQuery, { index: ['title', 'description', 'content'], limit: maxResult, tag: lang, enrich: true });
// flatten results since index.search() returns results for each indexed field
const flatResults = new Map(); // keyed by href to dedupe results
for (const result of results.flatMap(r => r.result)) {
if (flatResults.has(result.doc.href)) continue;
flatResults.set(result.doc.href, result.doc);
}
suggestions.innerHTML = "";
suggestions.classList.remove('d-none');
// inform user that no results were found
if (flatResults.size === 0 && searchQuery) {
const noResultsMessage = document.createElement('div')
noResultsMessage.innerHTML = `{{ T "ui_no_results" }} "<strong>${searchQuery}</strong>"`
noResultsMessage.classList.add("suggestion__no-results");
suggestions.appendChild(noResultsMessage);
return;
}
// construct a list of suggestions
for(const [href, doc] of flatResults) {
const entry = document.createElement('div');
suggestions.appendChild(entry);
const a = document.createElement('a');
a.href = href;
entry.appendChild(a);
const title = document.createElement('span');
title.textContent = doc.title;
title.classList.add("suggestion__title");
a.appendChild(title);
const description = document.createElement('span');
description.textContent = doc.description;
description.classList.add("suggestion__description");
a.appendChild(description);
suggestions.appendChild(entry);
if(suggestions.childElementCount == maxResult) break;
}
}
}());
/*
Source:
- https://simplernerd.com/hugo-add-copy-to-clipboard-button/
*/
const svgCopy =
'<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"><path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/><path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/></svg>';
const svgCheck =
'<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true"><path fill-rule="evenodd" fill="rgb(63, 185, 80)" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>';
const addCopyButtons = (clipboard) => {
// 1. Look for pre > code elements in the DOM
document.querySelectorAll("pre > code").forEach((codeBlock) => {
// 2. Create a button that will trigger a copy operation
const button = document.createElement("button");
button.className = "clipboard-button";
button.type = "button";
button.innerHTML = svgCopy;
button.addEventListener("click", () => {
clipboard.writeText(codeBlock.innerText).then(
() => {
button.blur();
button.innerHTML = svgCheck;
setTimeout(() => (button.innerHTML = svgCopy), 2000);
},
(error) => (button.innerHTML = "Error")
);
});
// 3. Append the button directly before the pre tag
const pre = codeBlock.parentNode;
pre.parentNode.insertBefore(button, pre);
});
};
if (navigator && navigator.clipboard) {
addCopyButtons(navigator.clipboard);
}

16
assets/js/navbar.js Normal file
View File

@@ -0,0 +1,16 @@
const navbar = document.querySelector('.navbar')
const toggler = document.getElementById('main-nav-toggler')
// set the navbar background color to opaque when scrolling past a breakpoint
window.onscroll = () => {
if (window.scrollY > 75) {
navbar.classList.add('nav-active')
} else {
navbar.classList.remove('nav-active')
}
}
// set the navbar background color to opaque when expanded
toggler.onclick = () => {
navbar.classList.toggle('navbar-expanded')
}

3
assets/js/popover.js Normal file
View File

@@ -0,0 +1,3 @@
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
// eslint-disable-next-line no-undef, no-unused-vars
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))

10
assets/js/toast.js Normal file
View File

@@ -0,0 +1,10 @@
// Bootstrap toast example: https://getbootstrap.com/docs/5.2/components/toasts/
const toastTrigger = document.getElementById('toastButton')
const toastLiveExample = document.getElementById('toastMessage')
if (toastTrigger) {
toastTrigger.addEventListener('click', () => {
// eslint-disable-next-line no-undef
const toast = new bootstrap.Toast(toastLiveExample)
toast.show()
})
}

4
assets/js/tooltip.js Normal file
View File

@@ -0,0 +1,4 @@
// Bootstrap tooltip example: https://getbootstrap.com/docs/5.2/components/tooltips/
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
// eslint-disable-next-line no-unused-vars, no-undef
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))

View File

@@ -1,23 +1,36 @@
// Define template variables
$themeColor: {{ site.Params.style.themeColor | default "#007bff" }};
$carousel-control-prev-icon-bg: url("/img/carousel_prev.svg") !default;
$carousel-control-next-icon-bg: url("/img/carousel_next.svg") !default;
// Import Bootstrap functions
@import "bootstrap/scss/functions";
// Define template variables
// TODO: optimize, see https://discourse.gohugo.io/t/initialize-sass-variables-from-hugo-templates/42053
// requires installation of dart-sass, no cross-platform installation available yet
$themeFont: {{ site.Params.style.themeFont | default "Inter" }};
$primary: {{ site.Params.style.primary | default "#007bff" }};
$secondary: {{ site.Params.style.secondary | default "#6c757d" }};
$success: {{ site.Params.style.success | default "#198754" }};
$info: {{ site.Params.style.info | default "#0dcaf0" }};
$warning: {{ site.Params.style.warning | default "#ffc107" }};
$danger: {{ site.Params.style.danger | default "#dc3545" }};
$light: {{ site.Params.style.light | default "#f8f9fa" }};
$dark: {{ site.Params.style.dark | default "#212529" }};
$navbar-offset: {{ if site.Params.navigation.fixed }}{{ site.Params.navigation.offset | default "4em" }}{{ else }}0em{{ end }};
$enable-dark-mode: {{ site.Params.main.enableDarkMode | default true }} !default;
// Include default variable overrides
@import "common/variables.scss";
@import "common/icons.scss";
// Import Bootstrap banner and functions
@import "bootstrap/scss/mixins/banner";
@include bsBanner("");
@import "bootstrap/scss/functions";
// Import Bootstrap configuration
@import "bootstrap/scss/variables";
@import "bootstrap/scss/maps";
@import "hotfix/variables";
@import "hotfix/variables-dark.scss";
@import "hotfix/maps";
@import "bootstrap/scss/mixins";
@import "bootstrap/scss/utilities";
// Import Bootstrap layout & components
@import "bootstrap/scss/root";
@import "hotfix/root";
@import "bootstrap/scss/reboot";
@import "bootstrap/scss/type";
@import "bootstrap/scss/images";
@@ -56,11 +69,14 @@ $carousel-control-next-icon-bg: url("/img/carousel_next.svg") !default;
@import "bootstrap/scss/utilities/api";
// Import Font Awesome
// scss-docs-start awesome
@import "@fortawesome/fontawesome-free/scss/fontawesome";
@import "@fortawesome/fontawesome-free/scss/regular";
@import "@fortawesome/fontawesome-free/scss/solid";
@import "@fortawesome/fontawesome-free/scss/brands";
// scss-docs-end awesome
// Import theme styles
// Import Hinode theme styles
@import "components/blockquote.scss";
@import "components/buttons.scss";
@import "components/card.scss";
@@ -70,9 +86,18 @@ $carousel-control-next-icon-bg: url("/img/carousel_next.svg") !default;
@import "components/comments.scss";
@import "components/navbar.scss";
@import "components/img.scss";
@import "components/popover.scss";
@import "components/search.scss";
@import "components/sidebar.scss";
@import "components/syntax.scss";
@import "components/toc.scss";
@import "components/vimeo.scss";
@import "common/styles.scss";
@import "layouts/reboot.scss";
@import "layouts/type.scss";
@import "common/export.scss";
@import "helpers/colored-links.scss";
@import "helpers/hidden.scss";
// Import theme placeholder
@import "theme.scss";

View File

@@ -0,0 +1,27 @@
// stylelint-disable selector-pseudo-class-no-unknown
// scss-docs-start export
:hinode-theme {
--accordion-icon-active-color: #{$accordion-icon-active-color};
--accordion-icon-active-color-dark: #{$gray-300};
--accordion-icon-color: #{$accordion-icon-color};
--accordion-icon-color-dark: #{$gray-600};
--btn-close-color: #{$btn-close-color};
--btn-toggle-color: #{$btn-toggle-color};
--btn-toggle-color-dark: #{$gray-600};
--carousel-control-color: #{$carousel-control-color};
--form-check-input-checked-color: #{$form-check-input-checked-color};
--form-check-input-indeterminate-color: #{$form-check-input-indeterminate-color};
--form-feedback-icon-invalid-color: #{$form-feedback-icon-invalid-color};
--form-feedback-icon-valid-color: #{$form-feedback-icon-valid-color};
--form-select-indicator-color: #{$form-select-indicator-color};
--form-select-indicator-color-dark: #{$form-select-indicator-color-dark};
--form-switch-checked-color: #{$form-switch-checked-color};
--form-switch-color: #{$form-switch-color};
--form-switch-color-dark: #{$form-switch-color-dark};
--form-switch-focus-color: #{$form-switch-focus-color};
--navbar-dark-color: #{$navbar-dark-color};
--navbar-light-icon-color: rgba($body-color, 0.75); // TODO: See https://github.com/twbs/bootstrap/pull/37720
}
// scss-docs-end export

View File

@@ -0,0 +1,25 @@
// scss-docs-start icons
$form-check-input-checked-bg-image: url("icons/form-check-input-checked-bg-image.svg") !default;
$form-check-radio-checked-bg-image: url("icons/form-check-radio-checked-bg-image.svg") !default;
$form-check-input-indeterminate-bg-image: url("icons/form-check-input-indeterminate-bg-image.svg") !default;
$form-switch-bg-image: url("icons/form-switch-bg-image.svg") !default;
$form-switch-bg-image-dark: url("icons/form-switch-bg-image-dark.svg") !default;
$form-switch-focus-bg-image: url("icons/form-switch-focus-bg-image.svg") !default;
$form-switch-checked-bg-image: url("icons/form-switch-checked-bg-image.svg") !default;
$form-select-indicator: url("icons/form-select-indicator.svg") !default;
$form-select-indicator-dark: url("icons/form-select-indicator-dark.svg") !default;
$form-feedback-icon-valid: url("icons/form-feedback-icon-valid.svg") !default;
$form-feedback-icon-invalid: url("icons/form-feedback-icon-invalid.svg") !default;
$navbar-light-toggler-icon-bg: url("icons/navbar-light-toggler-icon-bg.svg") !default;
$navbar-dark-toggler-icon-bg: url("icons/navbar-dark-toggler-icon-bg.svg") !default;
$accordion-button-icon: url("icons/accordion-button-icon.svg") !default;
$accordion-button-icon-dark: url("icons/accordion-button-icon-dark.svg") !default;
$accordion-button-active-icon: url("icons/accordion-button-active-icon.svg") !default;
$accordion-button-active-icon-dark: url("icons/accordion-button-active-icon-dark.svg") !default;
$carousel-control-prev-icon-bg: url("icons/carousel-control-prev-icon-bg.svg") !default;
$carousel-control-next-icon-bg: url("icons/carousel-control-next-icon-bg.svg") !default;
$btn-close-bg: url("icons/btn-close-bg.svg") !default;
$btn-toggle: url("icons/btn-toggle.svg") !default;
$btn-toggle-dark: url("icons/btn-toggle-dark.svg") !default;
// scss-docs-end icons

View File

@@ -15,44 +15,6 @@ a:active {
min-height: 100vh;
}
//
// Table of contents sidebar
//
.toc {
grid-area: toc;
top: 5rem;
right: 0;
z-index: 2;
height: calc(100vh - 7rem);
overflow-y: auto;
}
.toc nav {
font-size: 0.875rem;
}
.toc nav ul {
padding-left: 0;
list-style: none;
}
.toc nav ul ul {
padding-left: 1rem;
margin-top: 0.25rem;
}
.toc nav li {
margin-bottom: 0.25rem;
}
.toc nav a {
color: inherit;
}
.toc nav a:not(:hover) {
text-decoration: none;
}
.toc nav a code {
font: inherit;
.tickmark li::marker {
content: "";
}

View File

@@ -1,5 +1,4 @@
// Bootstrap variables overrides for theme
$primary: $themeColor;
$enable-negative-margins: true;
// Font awesome variables overrides for theme
@@ -8,10 +7,23 @@ $fa-font-path: "../fonts";
// Remove the border from the focused navigation toggler
$navbar-toggler-focus-width: 0 !default;
$font-family-sans-serif: "Inter", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
// scss-docs-start font
$font-family-sans-serif: $themeFont, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$headings-font-weight: 600 !default;
$font-weight-lighter: lighter !default;
$font-weight-light: 200 !default;
$font-weight-normal: 300 !default;
$font-weight-bold: 600 !default;
$font-weight-bolder: bolder !default;
strong {
font-weight: 600 !important;
}
// scss-docs-end font
$black: #000 !default;
$btn-toggle-color: $black !default;
$carousel-dark-indicator-active-bg: #ffffff !default;
$carousel-dark-caption-color: #ffffff !default;
$carousel-dark-control-icon-filter: invert(0) grayscale(100) !default;

View File

@@ -1,3 +1,5 @@
// stylelint-disable annotation-no-unknown
// add zoom animation with opacity change on card img hover
// source: https://stackoverflow.com/a/43816376
@@ -31,12 +33,39 @@
opacity: 1;
}
.project-card {
.card-emphasize {
transition: 0.3s transform cubic-bezier(0.155, 1.105, 0.295, 1.12), 0.3s box-shadow, 0.3s -webkit-transform cubic-bezier(0.155, 1.105, 0.295, 1.12);
cursor: pointer;
}
.project-card:hover {
.card-emphasize:hover {
transform: scale(1.01);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);
}
.card-body-link {
color: $body-color if($enable-important-utilities, !important, null);
@if $link-shade-percentage != 0 {
&:hover,
&:focus {
color: tint-color($body-color, $link-shade-percentage) if($enable-important-utilities, !important, null);
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.card-body-link {
color: $gray-500 if($enable-important-utilities, !important, null);
@if $link-shade-percentage != 0 {
&:hover,
&:focus {
color: shade-color($gray-500, $link-shade-percentage) if($enable-important-utilities, !important, null);
}
}
}
}
}
// stylelint-enable annotation-no-unknown

View File

@@ -8,3 +8,9 @@
width: 100%;
object-fit: cover;
}
.card-img-h100 {
width: auto;
height: 100%;
object-fit: cover;
}

View File

@@ -1,5 +1,16 @@
// stylelint-disable annotation-no-unknown
// Source: https://jsfiddle.net/njhgr40m/
.navbar {
transition: 0.5s ease-in-out;
background-color: none;
}
.nav-active, .navbar-expanded {
background-color: var(--bs-body-bg);
}
/* Remove border from toggler */
.navbar-toggler {
border: 0 !important;
@@ -65,3 +76,21 @@
.navbar-toggler.collapsed .toggler-icon {
background-color: #777;
}
.emphasis {
background-color: $black if($enable-important-utilities, !important, null);
}
@if $enable-dark-mode {
@include color-mode(dark) {
.emphasis {
background-color: $white if($enable-important-utilities, !important, null);
}
}
}
.nav-spacing {
width: 26px;
}
// stylelint-enable annotation-no-unknown

View File

@@ -0,0 +1,3 @@
.popover-header {
margin-top: 0;
}

View File

@@ -11,7 +11,7 @@
.form-control.is-search {
padding-right: 4rem;
border: 1px solid transparent;
background: $gray-100;
background: var(--bs-tertiary-bg);
}
.form-control.is-search:focus {
@@ -29,9 +29,9 @@
padding-right: 0.3125rem;
padding-left: 0.3125rem;
font-size: $font-size-base * 0.75;
color: $gray-700;
color: var(--bs-secondary-color);
content: "Ctrl + /";
border: 1px solid $gray-300;
border: 1px solid var(--bs-border-color);
border-radius: 0.25rem;
}
@@ -59,12 +59,12 @@
}
#suggestions a:focus {
background: $gray-100;
background-color: var(--bs-tertiary-bg);
outline: 0;
}
#suggestions div:not(:first-child) {
border-top: 1px dashed $gray-200;
border-top: 1px dashed var(--bs-border-color);
}
#suggestions div:first-child {
@@ -76,7 +76,7 @@
}
#suggestions a:hover {
background: $gray-100;
background-color: var(--bs-tertiary-bg);
}
#suggestions span {
@@ -86,12 +86,11 @@
.suggestion__title {
font-weight: $headings-font-weight;
color: $black;
}
.suggestion__description,
.suggestion__no-results {
color: $gray-700;
color: var(--bs-secondary-color);
}
@include media-breakpoint-up(sm) {
@@ -106,7 +105,7 @@
.suggestion__title {
width: 9rem;
padding-right: 1rem;
border-right: 1px solid $gray-200;
border-right: 1px solid var(--bs-border-color);
display: inline-block;
text-align: right;
}

View File

@@ -0,0 +1,100 @@
// scss-docs-start sidebar
.sidebar {
top: $navbar-offset;
}
.sidebar-item {
color: black;
}
.btn-toggle {
padding: 0.25rem 0.5rem;
font-weight: 600;
color: rgba(0, 0, 0, 0.65);
background-color: transparent;
&:hover,
&:focus {
color: black;
background-color: tint-color($primary, 90%);
}
&::before {
width: 1.25em;
line-height: 0;
content: $btn-toggle;
transition: transform 0.35s ease;
transform-origin: 0.5em 50%;
}
}
.btn-toggle[aria-expanded="true"] {
color: black;
&::before {
transform: rotate(90deg);
}
}
.btn-toggle-nav a {
padding: 0.1875rem 0.5rem;
margin-top: 0.125rem;
margin-left: 1.25rem;
&:hover,
&:focus {
background-color: tint-color($primary, 90%);
}
&.active {
font-weight: bold;
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.sidebar-item {
color: var(--bs-tertiary-color);
}
.btn-toggle {
color: var(--bs-tertiary-color);
&:hover,
&:focus {
color: $secondary;
background-color: tint-color($primary, 90%);
}
&::before {
content: $btn-toggle-dark;
}
}
.btn-toggle[aria-expanded="true"] {
color: var(--bs-secondary-color);
}
.btn-toggle-nav a {
padding: 0.1875rem 0.5rem;
margin-top: 0.125rem;
margin-left: 1.25rem;
&:hover,
&:focus {
color: $secondary;
background-color: tint-color($primary, 90%);
}
&.active {
font-weight: bold;
}
}
}
}
// scss-docs-end sidebar
.dropdown-toggle {
outline: 0;
}

View File

@@ -0,0 +1,86 @@
/* Background */ .bg { color: #c9d1d9; background-color: #0d1117; }
/* PreWrapper */ .chroma { color: #c9d1d9; background-color: #0d1117; }
/* Other */ .chroma .x { }
/* Error */ .chroma .err { color: #f85149 }
/* CodeLine */ .chroma .cl { }
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #64686c }
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #6e7681 }
/* Line */ .chroma .line { display: flex; }
/* Keyword */ .chroma .k { color: #ff7b72 }
/* KeywordConstant */ .chroma .kc { color: #79c0ff }
/* KeywordDeclaration */ .chroma .kd { color: #ff7b72 }
/* KeywordNamespace */ .chroma .kn { color: #ff7b72 }
/* KeywordPseudo */ .chroma .kp { color: #79c0ff }
/* KeywordReserved */ .chroma .kr { color: #ff7b72 }
/* KeywordType */ .chroma .kt { color: #ff7b72 }
/* Name */ .chroma .n { }
/* NameAttribute */ .chroma .na { }
/* NameBuiltin */ .chroma .nb { }
/* NameBuiltinPseudo */ .chroma .bp { }
/* NameClass */ .chroma .nc { color: #f0883e; font-weight: bold }
/* NameConstant */ .chroma .no { color: #79c0ff; font-weight: bold }
/* NameDecorator */ .chroma .nd { color: #d2a8ff; font-weight: bold }
/* NameEntity */ .chroma .ni { color: #ffa657 }
/* NameException */ .chroma .ne { color: #f0883e; font-weight: bold }
/* NameFunction */ .chroma .nf { color: #d2a8ff; font-weight: bold }
/* NameFunctionMagic */ .chroma .fm { }
/* NameLabel */ .chroma .nl { color: #79c0ff; font-weight: bold }
/* NameNamespace */ .chroma .nn { color: #ff7b72 }
/* NameOther */ .chroma .nx { }
/* NameProperty */ .chroma .py { color: #79c0ff }
/* NameTag */ .chroma .nt { color: #7ee787 }
/* NameVariable */ .chroma .nv { color: #79c0ff }
/* NameVariableClass */ .chroma .vc { }
/* NameVariableGlobal */ .chroma .vg { }
/* NameVariableInstance */ .chroma .vi { }
/* NameVariableMagic */ .chroma .vm { }
/* Literal */ .chroma .l { color: #a5d6ff }
/* LiteralDate */ .chroma .ld { color: #79c0ff }
/* LiteralString */ .chroma .s { color: #a5d6ff }
/* LiteralStringAffix */ .chroma .sa { color: #79c0ff }
/* LiteralStringBacktick */ .chroma .sb { color: #a5d6ff }
/* LiteralStringChar */ .chroma .sc { color: #a5d6ff }
/* LiteralStringDelimiter */ .chroma .dl { color: #79c0ff }
/* LiteralStringDoc */ .chroma .sd { color: #a5d6ff }
/* LiteralStringDouble */ .chroma .s2 { color: #a5d6ff }
/* LiteralStringEscape */ .chroma .se { color: #79c0ff }
/* LiteralStringHeredoc */ .chroma .sh { color: #79c0ff }
/* LiteralStringInterpol */ .chroma .si { color: #a5d6ff }
/* LiteralStringOther */ .chroma .sx { color: #a5d6ff }
/* LiteralStringRegex */ .chroma .sr { color: #79c0ff }
/* LiteralStringSingle */ .chroma .s1 { color: #a5d6ff }
/* LiteralStringSymbol */ .chroma .ss { color: #a5d6ff }
/* LiteralNumber */ .chroma .m { color: #a5d6ff }
/* LiteralNumberBin */ .chroma .mb { color: #a5d6ff }
/* LiteralNumberFloat */ .chroma .mf { color: #a5d6ff }
/* LiteralNumberHex */ .chroma .mh { color: #a5d6ff }
/* LiteralNumberInteger */ .chroma .mi { color: #a5d6ff }
/* LiteralNumberIntegerLong */ .chroma .il { color: #a5d6ff }
/* LiteralNumberOct */ .chroma .mo { color: #a5d6ff }
/* Operator */ .chroma .o { color: #ff7b72; font-weight: bold }
/* OperatorWord */ .chroma .ow { color: #ff7b72; font-weight: bold }
/* Punctuation */ .chroma .p { }
/* Comment */ .chroma .c { color: #8b949e; font-style: italic }
/* CommentHashbang */ .chroma .ch { color: #8b949e; font-style: italic }
/* CommentMultiline */ .chroma .cm { color: #8b949e; font-style: italic }
/* CommentSingle */ .chroma .c1 { color: #8b949e; font-style: italic }
/* CommentSpecial */ .chroma .cs { color: #8b949e; font-weight: bold; font-style: italic }
/* CommentPreproc */ .chroma .cp { color: #8b949e; font-weight: bold; font-style: italic }
/* CommentPreprocFile */ .chroma .cpf { color: #8b949e; font-weight: bold; font-style: italic }
/* Generic */ .chroma .g { }
/* GenericDeleted */ .chroma .gd { color: #ffa198; background-color: #490202 }
/* GenericEmph */ .chroma .ge { font-style: italic }
/* GenericError */ .chroma .gr { color: #ffa198 }
/* GenericHeading */ .chroma .gh { color: #79c0ff; font-weight: bold }
/* GenericInserted */ .chroma .gi { color: #56d364; background-color: #0f5323 }
/* GenericOutput */ .chroma .go { color: #8b949e }
/* GenericPrompt */ .chroma .gp { color: #8b949e }
/* GenericStrong */ .chroma .gs { font-weight: bold }
/* GenericSubheading */ .chroma .gu { color: #79c0ff }
/* GenericTraceback */ .chroma .gt { color: #ff7b72 }
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
/* TextWhitespace */ .chroma .w { color: #6e7681 }

View File

@@ -0,0 +1,86 @@
/* Background */ .bg { background-color: #ffffff; }
/* PreWrapper */ .chroma { background-color: #ffffff; }
/* Other */ .chroma .x { }
/* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 }
/* CodeLine */ .chroma .cl { }
/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* Line */ .chroma .line { display: flex; }
/* Keyword */ .chroma .k { color: #000000; font-weight: bold }
/* KeywordConstant */ .chroma .kc { color: #000000; font-weight: bold }
/* KeywordDeclaration */ .chroma .kd { color: #000000; font-weight: bold }
/* KeywordNamespace */ .chroma .kn { color: #000000; font-weight: bold }
/* KeywordPseudo */ .chroma .kp { color: #000000; font-weight: bold }
/* KeywordReserved */ .chroma .kr { color: #000000; font-weight: bold }
/* KeywordType */ .chroma .kt { color: #445588; font-weight: bold }
/* Name */ .chroma .n { }
/* NameAttribute */ .chroma .na { color: #008080 }
/* NameBuiltin */ .chroma .nb { color: #0086b3 }
/* NameBuiltinPseudo */ .chroma .bp { color: #999999 }
/* NameClass */ .chroma .nc { color: #445588; font-weight: bold }
/* NameConstant */ .chroma .no { color: #008080 }
/* NameDecorator */ .chroma .nd { color: #3c5d5d; font-weight: bold }
/* NameEntity */ .chroma .ni { color: #800080 }
/* NameException */ .chroma .ne { color: #990000; font-weight: bold }
/* NameFunction */ .chroma .nf { color: #990000; font-weight: bold }
/* NameFunctionMagic */ .chroma .fm { }
/* NameLabel */ .chroma .nl { color: #990000; font-weight: bold }
/* NameNamespace */ .chroma .nn { color: #555555 }
/* NameOther */ .chroma .nx { }
/* NameProperty */ .chroma .py { }
/* NameTag */ .chroma .nt { color: #000080 }
/* NameVariable */ .chroma .nv { color: #008080 }
/* NameVariableClass */ .chroma .vc { color: #008080 }
/* NameVariableGlobal */ .chroma .vg { color: #008080 }
/* NameVariableInstance */ .chroma .vi { color: #008080 }
/* NameVariableMagic */ .chroma .vm { }
/* Literal */ .chroma .l { }
/* LiteralDate */ .chroma .ld { }
/* LiteralString */ .chroma .s { color: #dd1144 }
/* LiteralStringAffix */ .chroma .sa { color: #dd1144 }
/* LiteralStringBacktick */ .chroma .sb { color: #dd1144 }
/* LiteralStringChar */ .chroma .sc { color: #dd1144 }
/* LiteralStringDelimiter */ .chroma .dl { color: #dd1144 }
/* LiteralStringDoc */ .chroma .sd { color: #dd1144 }
/* LiteralStringDouble */ .chroma .s2 { color: #dd1144 }
/* LiteralStringEscape */ .chroma .se { color: #dd1144 }
/* LiteralStringHeredoc */ .chroma .sh { color: #dd1144 }
/* LiteralStringInterpol */ .chroma .si { color: #dd1144 }
/* LiteralStringOther */ .chroma .sx { color: #dd1144 }
/* LiteralStringRegex */ .chroma .sr { color: #009926 }
/* LiteralStringSingle */ .chroma .s1 { color: #dd1144 }
/* LiteralStringSymbol */ .chroma .ss { color: #990073 }
/* LiteralNumber */ .chroma .m { color: #009999 }
/* LiteralNumberBin */ .chroma .mb { color: #009999 }
/* LiteralNumberFloat */ .chroma .mf { color: #009999 }
/* LiteralNumberHex */ .chroma .mh { color: #009999 }
/* LiteralNumberInteger */ .chroma .mi { color: #009999 }
/* LiteralNumberIntegerLong */ .chroma .il { color: #009999 }
/* LiteralNumberOct */ .chroma .mo { color: #009999 }
/* Operator */ .chroma .o { color: #000000; font-weight: bold }
/* OperatorWord */ .chroma .ow { color: #000000; font-weight: bold }
/* Punctuation */ .chroma .p { }
/* Comment */ .chroma .c { color: #999988; font-style: italic }
/* CommentHashbang */ .chroma .ch { color: #999988; font-style: italic }
/* CommentMultiline */ .chroma .cm { color: #999988; font-style: italic }
/* CommentSingle */ .chroma .c1 { color: #999988; font-style: italic }
/* CommentSpecial */ .chroma .cs { color: #999999; font-weight: bold; font-style: italic }
/* CommentPreproc */ .chroma .cp { color: #999999; font-weight: bold; font-style: italic }
/* CommentPreprocFile */ .chroma .cpf { color: #999999; font-weight: bold; font-style: italic }
/* Generic */ .chroma .g { }
/* GenericDeleted */ .chroma .gd { color: #000000; background-color: #ffdddd }
/* GenericEmph */ .chroma .ge { color: #000000; font-style: italic }
/* GenericError */ .chroma .gr { color: #aa0000 }
/* GenericHeading */ .chroma .gh { color: #999999 }
/* GenericInserted */ .chroma .gi { color: #000000; background-color: #ddffdd }
/* GenericOutput */ .chroma .go { color: #888888 }
/* GenericPrompt */ .chroma .gp { color: #555555 }
/* GenericStrong */ .chroma .gs { font-weight: bold }
/* GenericSubheading */ .chroma .gu { color: #aaaaaa }
/* GenericTraceback */ .chroma .gt { color: #aa0000 }
/* GenericUnderline */ .chroma .gl { text-decoration: underline }
/* TextWhitespace */ .chroma .w { color: #bbbbbb }

View File

@@ -1,85 +1,40 @@
/* Background */ .bg { color: #272822; background-color: #fafafa }
/* PreWrapper */ .chroma { color: #272822; background-color: #fafafa; }
/* Other */ .chroma .x { }
/* Error */ .chroma .err { color: #960050; background-color: #1e0010 }
/* CodeLine */ .chroma .cl { }
/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
/* LineHighlight */ .chroma .hl { background-color: #ffffcc }
/* LineNumbersTable */ .chroma .lnt { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* LineNumbers */ .chroma .ln { white-space: pre; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
/* Line */ .chroma .line { display: flex; }
/* Keyword */ .chroma .k { color: #00a8c8 }
/* KeywordConstant */ .chroma .kc { color: #00a8c8 }
/* KeywordDeclaration */ .chroma .kd { color: #00a8c8 }
/* KeywordNamespace */ .chroma .kn { color: #f92672 }
/* KeywordPseudo */ .chroma .kp { color: #00a8c8 }
/* KeywordReserved */ .chroma .kr { color: #00a8c8 }
/* KeywordType */ .chroma .kt { color: #00a8c8 }
/* Name */ .chroma .n { color: #111111 }
/* NameAttribute */ .chroma .na { color: #75af00 }
/* NameBuiltin */ .chroma .nb { color: #111111 }
/* NameBuiltinPseudo */ .chroma .bp { color: #111111 }
/* NameClass */ .chroma .nc { color: #75af00 }
/* NameConstant */ .chroma .no { color: #00a8c8 }
/* NameDecorator */ .chroma .nd { color: #75af00 }
/* NameEntity */ .chroma .ni { color: #111111 }
/* NameException */ .chroma .ne { color: #75af00 }
/* NameFunction */ .chroma .nf { color: #75af00 }
/* NameFunctionMagic */ .chroma .fm { color: #111111 }
/* NameLabel */ .chroma .nl { color: #111111 }
/* NameNamespace */ .chroma .nn { color: #111111 }
/* NameOther */ .chroma .nx { color: #75af00 }
/* NameProperty */ .chroma .py { color: #111111 }
/* NameTag */ .chroma .nt { color: #f92672 }
/* NameVariable */ .chroma .nv { color: #111111 }
/* NameVariableClass */ .chroma .vc { color: #111111 }
/* NameVariableGlobal */ .chroma .vg { color: #111111 }
/* NameVariableInstance */ .chroma .vi { color: #111111 }
/* NameVariableMagic */ .chroma .vm { color: #111111 }
/* Literal */ .chroma .l { color: #ae81ff }
/* LiteralDate */ .chroma .ld { color: #d88200 }
/* LiteralString */ .chroma .s { color: #d88200 }
/* LiteralStringAffix */ .chroma .sa { color: #d88200 }
/* LiteralStringBacktick */ .chroma .sb { color: #d88200 }
/* LiteralStringChar */ .chroma .sc { color: #d88200 }
/* LiteralStringDelimiter */ .chroma .dl { color: #d88200 }
/* LiteralStringDoc */ .chroma .sd { color: #d88200 }
/* LiteralStringDouble */ .chroma .s2 { color: #d88200 }
/* LiteralStringEscape */ .chroma .se { color: #8045ff }
/* LiteralStringHeredoc */ .chroma .sh { color: #d88200 }
/* LiteralStringInterpol */ .chroma .si { color: #d88200 }
/* LiteralStringOther */ .chroma .sx { color: #d88200 }
/* LiteralStringRegex */ .chroma .sr { color: #d88200 }
/* LiteralStringSingle */ .chroma .s1 { color: #d88200 }
/* LiteralStringSymbol */ .chroma .ss { color: #d88200 }
/* LiteralNumber */ .chroma .m { color: #ae81ff }
/* LiteralNumberBin */ .chroma .mb { color: #ae81ff }
/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff }
/* LiteralNumberHex */ .chroma .mh { color: #ae81ff }
/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff }
/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff }
/* LiteralNumberOct */ .chroma .mo { color: #ae81ff }
/* Operator */ .chroma .o { color: #f92672 }
/* OperatorWord */ .chroma .ow { color: #f92672 }
/* Punctuation */ .chroma .p { color: #111111 }
/* Comment */ .chroma .c { color: #75715e }
/* CommentHashbang */ .chroma .ch { color: #75715e }
/* CommentMultiline */ .chroma .cm { color: #75715e }
/* CommentSingle */ .chroma .c1 { color: #75715e }
/* CommentSpecial */ .chroma .cs { color: #75715e }
/* CommentPreproc */ .chroma .cp { color: #75715e }
/* CommentPreprocFile */ .chroma .cpf { color: #75715e }
/* Generic */ .chroma .g { }
/* GenericDeleted */ .chroma .gd { }
/* GenericEmph */ .chroma .ge { font-style: italic }
/* GenericError */ .chroma .gr { }
/* GenericHeading */ .chroma .gh { }
/* GenericInserted */ .chroma .gi { }
/* GenericOutput */ .chroma .go { }
/* GenericPrompt */ .chroma .gp { }
/* GenericStrong */ .chroma .gs { font-weight: bold }
/* GenericSubheading */ .chroma .gu { }
/* GenericTraceback */ .chroma .gt { }
/* GenericUnderline */ .chroma .gl { }
/* TextWhitespace */ .chroma .w { }
// stylelint-disable annotation-no-unknown
@import "syntax-light";
.bg,
.chroma,
.chroma .err {
// set to transparent background to avoid rendering issues with example shortcode
background-color: transparent if($enable-important-utilities, !important, null);
}
.syntax-highlight {
background-color: var(--bs-light) if($enable-important-utilities, !important, null);
}
.preview-background {
background-color: var(--bs-secondary-bg) if($enable-important-utilities, !important, null);
}
@if $enable-dark-mode {
[data-bs-theme="dark"] {
@import "syntax-dark"; // stylelint-disable-line no-invalid-position-at-import-rule
.bg,
.chroma,
.chroma .err {
// set to transparent background to avoid rendering issues with example shortcode
background-color: transparent if($enable-important-utilities, !important, null);
}
.syntax-highlight {
background-color: var(--bs-tertiary-bg) if($enable-important-utilities, !important, null);
}
.bg,
.chroma {
color: #c9d1d9 if($enable-important-utilities, !important, null);
}
}
}
// stylelint-enable annotation-no-unknown

View File

@@ -0,0 +1,44 @@
//
// Table of contents sidebar
//
// scss-docs-start toc
.toc {
grid-area: toc;
right: 0;
z-index: 2;
height: calc(100vh - 7rem);
overflow-y: auto;
top: $navbar-offset;
}
// scss-docs-end toc
.toc nav {
font-size: 0.875rem;
}
.toc nav ul {
padding-left: 0;
list-style: none;
}
.toc nav ul ul {
padding-left: 1rem;
margin-top: 0.25rem;
}
.toc nav li {
margin-bottom: 0.25rem;
}
.toc nav a {
color: inherit;
}
.toc nav a:not(:hover) {
text-decoration: none;
}
.toc nav a code {
font: inherit;
}

View File

@@ -0,0 +1,21 @@
// stylelint-disable function-name-case
// scss-docs-start colored-links
@each $color, $value in $theme-colors {
$contrast-color: color-contrast($value);
$color-rgb: to-rgb($value);
.link-bg-#{$color} {
color: $contrast-color !important; // stylelint-disable-line declaration-no-important
background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null); // stylelint-disable-line annotation-no-unknown
@if $link-shade-percentage != 0 {
&:hover,
&:focus {
color: if($contrast-color == $color-contrast-light, shade-color($contrast-color, $link-shade-percentage), tint-color($contrast-color, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important
}
}
}
}
// scss-docs-end colored-links

View File

@@ -0,0 +1,3 @@
.hidden {
display: none;
}

View File

@@ -0,0 +1,176 @@
// Copied from https://github.com/twbs/bootstrap/commit/15744ee1d04bcca03155c3bb37ee7e65a7b011c6
//
// Re-assigned maps
//
// Placed here so that others can override the default Sass maps and see automatic updates to utilities and more.
// scss-docs-start theme-colors-rgb
$theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default;
// scss-docs-end theme-colors-rgb
// scss-docs-start theme-text-map
$theme-colors-text: (
"primary": $primary-text-emphasis,
"secondary": $secondary-text-emphasis,
"success": $success-text-emphasis,
"info": $info-text-emphasis,
"warning": $warning-text-emphasis,
"danger": $danger-text-emphasis,
"light": $light-text-emphasis,
"dark": $dark-text-emphasis,
) !default;
// scss-docs-end theme-text-map
// scss-docs-start theme-bg-subtle-map
$theme-colors-bg-subtle: (
"primary": $primary-bg-subtle,
"secondary": $secondary-bg-subtle,
"success": $success-bg-subtle,
"info": $info-bg-subtle,
"warning": $warning-bg-subtle,
"danger": $danger-bg-subtle,
"light": $light-bg-subtle,
"dark": $dark-bg-subtle,
) !default;
// scss-docs-end theme-bg-subtle-map
// scss-docs-start theme-border-subtle-map
$theme-colors-border-subtle: (
"primary": $primary-border-subtle,
"secondary": $secondary-border-subtle,
"success": $success-border-subtle,
"info": $info-border-subtle,
"warning": $warning-border-subtle,
"danger": $danger-border-subtle,
"light": $light-border-subtle,
"dark": $dark-border-subtle,
) !default;
// scss-docs-end theme-border-subtle-map
$theme-colors-text-dark: null !default;
$theme-colors-bg-subtle-dark: null !default;
$theme-colors-border-subtle-dark: null !default;
@if $enable-dark-mode {
// scss-docs-start theme-text-dark-map
$theme-colors-text-dark: (
"primary": $primary-text-emphasis-dark,
"secondary": $secondary-text-emphasis-dark,
"success": $success-text-emphasis-dark,
"info": $info-text-emphasis-dark,
"warning": $warning-text-emphasis-dark,
"danger": $danger-text-emphasis-dark,
"light": $light-text-emphasis-dark,
"dark": $dark-text-emphasis-dark,
) !default;
// scss-docs-end theme-text-dark-map
// scss-docs-start theme-bg-subtle-dark-map
$theme-colors-bg-subtle-dark: (
"primary": $primary-bg-subtle-dark,
"secondary": $secondary-bg-subtle-dark,
"success": $success-bg-subtle-dark,
"info": $info-bg-subtle-dark,
"warning": $warning-bg-subtle-dark,
"danger": $danger-bg-subtle-dark,
"light": $light-bg-subtle-dark,
"dark": $dark-bg-subtle-dark,
) !default;
// scss-docs-end theme-bg-subtle-dark-map
// scss-docs-start theme-border-subtle-dark-map
$theme-colors-border-subtle-dark: (
"primary": $primary-border-subtle-dark,
"secondary": $secondary-border-subtle-dark,
"success": $success-border-subtle-dark,
"info": $info-border-subtle-dark,
"warning": $warning-border-subtle-dark,
"danger": $danger-border-subtle-dark,
"light": $light-border-subtle-dark,
"dark": $dark-border-subtle-dark,
) !default;
// scss-docs-end theme-border-subtle-dark-map
}
// Utilities maps
//
// Extends the default `$theme-colors` maps to help create our utilities.
// Come v6, we'll de-dupe these variables. Until then, for backward compatibility, we keep them to reassign.
// scss-docs-start utilities-colors
$utilities-colors: $theme-colors-rgb !default;
// scss-docs-end utilities-colors
// scss-docs-start utilities-text-colors
$utilities-text: map-merge(
$utilities-colors,
(
"black": to-rgb($black),
"white": to-rgb($white),
"body": to-rgb($body-color)
)
) !default;
$utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default;
$utilities-text-emphasis-colors: (
"primary-emphasis": var(--#{$prefix}primary-text-emphasis),
"secondary-emphasis": var(--#{$prefix}secondary-text-emphasis),
"success-emphasis": var(--#{$prefix}success-text-emphasis),
"info-emphasis": var(--#{$prefix}info-text-emphasis),
"warning-emphasis": var(--#{$prefix}warning-text-emphasis),
"danger-emphasis": var(--#{$prefix}danger-text-emphasis),
"light-emphasis": var(--#{$prefix}light-text-emphasis),
"dark-emphasis": var(--#{$prefix}dark-text-emphasis)
) !default;
// scss-docs-end utilities-text-colors
// scss-docs-start utilities-bg-colors
$utilities-bg: map-merge(
$utilities-colors,
(
"black": to-rgb($black),
"white": to-rgb($white),
"body": to-rgb($body-bg)
)
) !default;
$utilities-bg-colors: map-loop($utilities-bg, rgba-css-var, "$key", "bg") !default;
$utilities-bg-subtle: (
"primary-subtle": var(--#{$prefix}primary-bg-subtle),
"secondary-subtle": var(--#{$prefix}secondary-bg-subtle),
"success-subtle": var(--#{$prefix}success-bg-subtle),
"info-subtle": var(--#{$prefix}info-bg-subtle),
"warning-subtle": var(--#{$prefix}warning-bg-subtle),
"danger-subtle": var(--#{$prefix}danger-bg-subtle),
"light-subtle": var(--#{$prefix}light-bg-subtle),
"dark-subtle": var(--#{$prefix}dark-bg-subtle)
) !default;
// scss-docs-end utilities-bg-colors
// scss-docs-start utilities-border-colors
$utilities-border: map-merge(
$utilities-colors,
(
"black": to-rgb($black),
"white": to-rgb($white)
)
) !default;
$utilities-border-colors: map-loop($utilities-border, rgba-css-var, "$key", "border") !default;
$utilities-border-subtle: (
"primary-subtle": var(--#{$prefix}primary-border-subtle),
"secondary-subtle": var(--#{$prefix}secondary-border-subtle),
"success-subtle": var(--#{$prefix}success-border-subtle),
"info-subtle": var(--#{$prefix}info-border-subtle),
"warning-subtle": var(--#{$prefix}warning-border-subtle),
"danger-subtle": var(--#{$prefix}danger-border-subtle),
"light-subtle": var(--#{$prefix}light-border-subtle),
"dark-subtle": var(--#{$prefix}dark-border-subtle)
) !default;
// scss-docs-end utilities-border-colors
$utilities-links-underline: map-loop($utilities-colors, rgba-css-var, "$key", "link-underline") !default;
$negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default;
$gutters: $spacers !default;

View File

@@ -0,0 +1,180 @@
// Copied from https://github.com/twbs/bootstrap/commit/15744ee1d04bcca03155c3bb37ee7e65a7b011c6
:root,
[data-bs-theme="light"] {
// Note: Custom variable values only support SassScript inside `#{}`.
// Colors
//
// Generate palettes for full colors, grays, and theme colors.
@each $color, $value in $colors {
--#{$prefix}#{$color}: #{$value};
}
@each $color, $value in $grays {
--#{$prefix}gray-#{$color}: #{$value};
}
@each $color, $value in $theme-colors {
--#{$prefix}#{$color}: #{$value};
}
@each $color, $value in $theme-colors-rgb {
--#{$prefix}#{$color}-rgb: #{$value};
}
@each $color, $value in $theme-colors-text {
--#{$prefix}#{$color}-text-emphasis: #{$value};
}
@each $color, $value in $theme-colors-bg-subtle {
--#{$prefix}#{$color}-bg-subtle: #{$value};
}
@each $color, $value in $theme-colors-border-subtle {
--#{$prefix}#{$color}-border-subtle: #{$value};
}
--#{$prefix}white-rgb: #{to-rgb($white)};
--#{$prefix}black-rgb: #{to-rgb($black)};
// Fonts
// Note: Use `inspect` for lists so that quoted items keep the quotes.
// See https://github.com/sass/sass/issues/2383#issuecomment-336349172
--#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};
--#{$prefix}font-monospace: #{inspect($font-family-monospace)};
--#{$prefix}gradient: #{$gradient};
// Root and body
// scss-docs-start root-body-variables
@if $font-size-root != null {
--#{$prefix}root-font-size: #{$font-size-root};
}
--#{$prefix}body-font-family: #{inspect($font-family-base)};
@include rfs($font-size-base, --#{$prefix}body-font-size);
--#{$prefix}body-font-weight: #{$font-weight-base};
--#{$prefix}body-line-height: #{$line-height-base};
@if $body-text-align != null {
--#{$prefix}body-text-align: #{$body-text-align};
}
--#{$prefix}body-color: #{$body-color};
--#{$prefix}body-color-rgb: #{to-rgb($body-color)};
--#{$prefix}body-bg: #{$body-bg};
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};
--#{$prefix}emphasis-color: #{$body-emphasis-color};
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};
--#{$prefix}secondary-color: #{$body-secondary-color};
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};
--#{$prefix}secondary-bg: #{$body-secondary-bg};
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};
--#{$prefix}tertiary-color: #{$body-tertiary-color};
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};
--#{$prefix}tertiary-bg: #{$body-tertiary-bg};
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};
// scss-docs-end root-body-variables
@if $headings-color != null {
--#{$prefix}heading-color: #{$headings-color};
}
--#{$prefix}link-color: #{$link-color};
--#{$prefix}link-color-rgb: #{to-rgb($link-color)};
--#{$prefix}link-decoration: #{$link-decoration};
--#{$prefix}link-hover-color: #{$link-hover-color};
--#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};
@if $link-hover-decoration != null {
--#{$prefix}link-hover-decoration: #{$link-hover-decoration};
}
--#{$prefix}code-color: #{$code-color};
--#{$prefix}highlight-bg: #{$mark-bg};
// scss-docs-start root-border-var
--#{$prefix}border-width: #{$border-width};
--#{$prefix}border-style: #{$border-style};
--#{$prefix}border-color: #{$border-color};
--#{$prefix}border-color-translucent: #{$border-color-translucent};
--#{$prefix}border-radius: #{$border-radius};
--#{$prefix}border-radius-sm: #{$border-radius-sm};
--#{$prefix}border-radius-lg: #{$border-radius-lg};
--#{$prefix}border-radius-xl: #{$border-radius-xl};
--#{$prefix}border-radius-xxl: #{$border-radius-xxl};
--#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency
--#{$prefix}border-radius-pill: #{$border-radius-pill};
// scss-docs-end root-border-var
--#{$prefix}box-shadow: #{$box-shadow};
--#{$prefix}box-shadow-sm: #{$box-shadow-sm};
--#{$prefix}box-shadow-lg: #{$box-shadow-lg};
--#{$prefix}box-shadow-inset: #{$box-shadow-inset};
// Focus styles
// scss-docs-start root-focus-variables
--#{$prefix}focus-ring-width: #{$focus-ring-width};
--#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};
--#{$prefix}focus-ring-color: #{$focus-ring-color};
// By default, there is no `--bs-focus-ring-x`, `--bs-focus-ring-y`, or `--bs-focus-ring-blur`, but we provide CSS variables with fallbacks to initial `0` values
--#{$prefix}focus-ring-box-shadow: var(--#{$prefix}focus-ring-x, 0) var(--#{$prefix}focus-ring-y, 0) var(--#{$prefix}focus-ring-blur, 0) var(--#{$prefix}focus-ring-width) var(--#{$prefix}focus-ring-color);
// scss-docs-end root-focus-variables
}
@if $enable-dark-mode {
@include color-mode(dark, true) {
color-scheme: dark;
// scss-docs-start root-dark-mode-vars
--#{$prefix}body-color: #{$body-color-dark};
--#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};
--#{$prefix}body-bg: #{$body-bg-dark};
--#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};
--#{$prefix}emphasis-color: #{$body-emphasis-color-dark};
--#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};
--#{$prefix}secondary-color: #{$body-secondary-color-dark};
--#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};
--#{$prefix}secondary-bg: #{$body-secondary-bg-dark};
--#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};
--#{$prefix}tertiary-color: #{$body-tertiary-color-dark};
--#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};
--#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};
--#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};
@each $color, $value in $theme-colors-text-dark {
--#{$prefix}#{$color}-text-emphasis: #{$value};
}
@each $color, $value in $theme-colors-bg-subtle-dark {
--#{$prefix}#{$color}-bg-subtle: #{$value};
}
@each $color, $value in $theme-colors-border-subtle-dark {
--#{$prefix}#{$color}-border-subtle: #{$value};
}
@if $headings-color-dark != null {
--#{$prefix}heading-color: #{$headings-color-dark};
}
--#{$prefix}link-color: #{$link-color-dark};
--#{$prefix}link-hover-color: #{$link-hover-color-dark};
--#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};
--#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};
--#{$prefix}code-color: #{$code-color-dark};
--#{$prefix}border-color: #{$border-color-dark};
--#{$prefix}border-color-translucent: #{$border-color-translucent-dark};
// scss-docs-end root-dark-mode-vars
}
}

View File

@@ -0,0 +1,77 @@
// Copied from https://github.com/twbs/bootstrap/pull/37953
// Dark color mode variables
//
// Custom variables for the `[data-bs-theme="dark"]` theme. Use this as a starting point for your own custom color modes by creating a new theme-specific file like `_variables-dark.scss` and adding the variables you need.
//
// Global colors
//
// scss-docs-start sass-dark-mode-vars
// scss-docs-start theme-text-dark-variables
$primary-text-emphasis-dark: tint-color($primary, 40%) !default;
$secondary-text-emphasis-dark: tint-color($secondary, 40%) !default;
$success-text-emphasis-dark: tint-color($success, 40%) !default;
$info-text-emphasis-dark: tint-color($info, 40%) !default;
$warning-text-emphasis-dark: tint-color($warning, 40%) !default;
$danger-text-emphasis-dark: tint-color($danger, 40%) !default;
$light-text-emphasis-dark: $gray-100 !default;
$dark-text-emphasis-dark: $gray-300 !default;
// scss-docs-end theme-text-dark-variables
// scss-docs-start theme-bg-subtle-dark-variables
$primary-bg-subtle-dark: shade-color($primary, 80%) !default;
$secondary-bg-subtle-dark: shade-color($secondary, 80%) !default;
$success-bg-subtle-dark: shade-color($success, 80%) !default;
$info-bg-subtle-dark: shade-color($info, 80%) !default;
$warning-bg-subtle-dark: shade-color($warning, 80%) !default;
$danger-bg-subtle-dark: shade-color($danger, 80%) !default;
$light-bg-subtle-dark: $gray-800 !default;
$dark-bg-subtle-dark: mix($gray-800, $black) !default;
// scss-docs-end theme-bg-subtle-dark-variables
// scss-docs-start theme-border-subtle-dark-variables
$primary-border-subtle-dark: shade-color($primary, 40%) !default;
$secondary-border-subtle-dark: shade-color($secondary, 40%) !default;
$success-border-subtle-dark: shade-color($success, 40%) !default;
$info-border-subtle-dark: shade-color($info, 40%) !default;
$warning-border-subtle-dark: shade-color($warning, 40%) !default;
$danger-border-subtle-dark: shade-color($danger, 40%) !default;
$light-border-subtle-dark: $gray-700 !default;
$dark-border-subtle-dark: $gray-800 !default;
// scss-docs-end theme-border-subtle-dark-variables
$body-color-dark: $gray-500 !default;
$body-bg-dark: $gray-900 !default;
$body-secondary-color-dark: rgba($body-color-dark, .75) !default;
$body-secondary-bg-dark: $gray-800 !default;
$body-tertiary-color-dark: rgba($body-color-dark, .5) !default;
$body-tertiary-bg-dark: mix($gray-800, $gray-900, 50%) !default;
$body-emphasis-color-dark: $white !default;
$border-color-dark: $gray-700 !default;
$border-color-translucent-dark: rgba($white, .15) !default;
$headings-color-dark: null !default;
$link-color-dark: tint-color($primary, 40%) !default;
$link-hover-color-dark: shift-color($link-color-dark, -$link-shade-percentage) !default;
$code-color-dark: tint-color($code-color, 40%) !default;
//
// Forms
//
$form-select-indicator-color-dark: $body-color-dark !default;
$form-select-indicator-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color-dark}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/></svg>") !default;
$form-switch-color-dark: rgba($white, .25) !default;
$form-switch-bg-image-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color-dark}'/></svg>") !default;
//
// Accordion
//
$accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$primary-text-emphasis-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
$accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$primary-text-emphasis-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
// scss-docs-end sass-dark-mode-vars

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,4 @@
pre {
padding: $spacer;
margin-bottom: 0;
}

View File

@@ -3,24 +3,30 @@
//
h1 {
margin-top: $spacer * 2.5;
scroll-margin-top: $navbar-offset;
}
h2 {
margin-top: $spacer * 2;
scroll-margin-top: $navbar-offset;
}
h3 {
margin-top: $spacer * 1.75;
scroll-margin-top: $navbar-offset;
}
h4 {
margin-top: $spacer * 1.5;
scroll-margin-top: $navbar-offset;
}
h5 {
margin-top: $spacer * 1.25;
scroll-margin-top: $navbar-offset;
}
h6 {
margin-top: $spacer;
scroll-margin-top: $navbar-offset;
}

2
assets/scss/theme.scss Normal file
View File

@@ -0,0 +1,2 @@
// Placeholder to quickly add your own styles
// The file is included last in the build pipeline

View File

@@ -1,2 +0,0 @@
# Multilingual
mainSections = ["blog", "projects"]

View File

@@ -1,2 +0,0 @@
# Multilingual
mainSections = ["blog", "projecten"]

View File

@@ -1,23 +1,30 @@
baseURL = "https://hinode-demo.markdumay.org/"
canonifyURLs = false
# toml-docs-start main
title = "Hinode"
author = "Mark Dumay"
copyright = "Copyright © 2022 Mark Dumay."
copyright = "Copyright © 2023 Mark Dumay."
paginate = 9
enableGitInfo = true
# toml-docs-end main
# additional settings
baseURL = "https://demo.gethinode.com/"
canonifyURLs = false
enableEmoji = true
enableRobotsTXT = true
languageCode = "en-us"
enableInlineShortcodes = true
# prevent build failures when using Hugo's Instagram shortcode due to deprecated Instagram API.
# See https://github.com/gohugoio/hugo/issues/7228#issuecomment-714490456
ignoreErrors = ["error-remote-getjson"]
enableEmoji = true
timeout = "60s"
# Multilingual
# toml-docs-start build
timeout = "60s"
# toml-docs-end build
# toml-docs-start language
languageCode = "en-us"
defaultContentLanguage = "en"
# disableLanguages = ["nl"]
DefaultContentLanguageInSubdir = true
defaultContentLanguageInSubdir = true
# toml-docs-end language
[taxonomies]
tag = 'tags'
@@ -46,7 +53,6 @@ DefaultContentLanguageInSubdir = true
[services.twitter]
disableInlineCSS = true
[outputFormats]
[outputFormats.XML]
isPlainText = false
@@ -67,6 +73,13 @@ DefaultContentLanguageInSubdir = true
[[module.mounts]]
source = "static"
target = "static"
# toml-docs-start javascript
[[module.mounts]]
source = "node_modules/flexsearch"
target = "assets/js/vendor/flexsearch"
source = "node_modules/bootstrap/dist/js"
target = "assets/js/vendor/bootstrap"
includeFiles = "*.bundle.js"
[[module.mounts]]
source = "node_modules/flexsearch/dist"
target = "assets/js/vendor/flexsearch"
includeFiles = "*.bundle.js"
# toml-docs-end javascript

View File

@@ -1,25 +1,31 @@
# toml-docs-start lang-main
[en]
languageName = "English"
contentDir = "content/en"
weight = 1
[en.params]
introTitle = "Welcome to Hinode!"
introCaption = "A clean blog theme for your Hugo site based on Bootstrap 5."
introLink = "/en/about"
introLinkTitle = "About"
# toml-docs-end lang-main
# toml-docs-start lang-param
[en.params.head]
tagline = "A Hugo Theme"
[en.params.feature]
link = "/en/about"
caption = "About"
[en.params.footer]
license = "Licensed under Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank'>CC BY-NC-SA 4.0</a>)."
socialTitle = "Follow me"
socialCaption = "I work on everything coding and tweet developer memes"
# toml-docs-end lang-param
[nl]
languageName = "Nederlands"
contentDir = "content/nl"
weight = 2
[nl.params]
introTitle = "Welkom bij Hinode!"
introCaption = "Een thema voor Hugo gebaseerd op Bootstrap 5."
introLink = "/nl/over-mij"
introLinkTitle = "Over mij"
[nl.params.head]
tagline = "Een Hugo Thema"
[nl.params.feature]
link = "/nl/over-mij"
caption = "Over mij"
[nl.params.footer]
license = "Gelicenseerd onder Creative Commons (<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' class='link-secondary' target='_blank'>CC BY-NC-SA 4.0</a>)."
socialTitle = "Volg mij"
socialCaption = "Ik doe aan programmeren en tweet memes"

View File

@@ -10,8 +10,10 @@ defaultMarkdownHandler = "goldmark"
lineNos = false
lineNumbersInTable = false
noClasses = false
# style = "monokailight" ## Update the 'create:syntax' command in package.json to modify the style
tabWidth = 2
## Update the 'create:syntax' command in package.json to modify the style
## The first two lines have been modified to remove the background color
# style = "monokailight"
[goldmark]
[goldmark.extensions]

View File

@@ -13,6 +13,18 @@
url = "/projects/"
weight = 30
[[main]]
name = "Sample project"
url = "/en/projects/sample-project/"
parent = "Projects"
weight = 1
[[main]]
name = "Another project"
url = "/en/projects/another-project/"
parent = "Projects"
weight = 2
[[main]]
name = "Tags"
url = "/tags/"
@@ -34,4 +46,28 @@
name = "Medium"
pre = "<i class=\"fab fa-medium fa-2x\"></i>"
url = "https://medium.com/"
weight = 30
weight = 30
# toml-docs-start sample-navigation
[[sample]]
name = "Blog"
url = "/blog/"
weight = 10
[[sample]]
name = "Projects"
url = "/projects/"
weight = 20
[[sample]]
name = "Sample project"
url = "/en/projects/sample-project/"
parent = "Projects"
weight = 1
[[sample]]
name = "Another project"
url = "/en/projects/another-project/"
parent = "Projects"
weight = 2
# toml-docs-end sample-navigation

View File

@@ -13,6 +13,18 @@
url = "/projecten/"
weight = 30
[[main]]
name = "Voorbeeldproject"
url = "/nl/projecten/voorbeeldproject/"
parent = "Projecten"
weight = 1
[[main]]
name = "Ander project"
url = "/nl/projecten/ander-project/"
parent = "Projecten"
weight = 2
[[main]]
name = "Tags"
url = "/tags/"

View File

@@ -1,56 +1,110 @@
## Homepage
title = "Hinode"
titleSeparator = "-"
titleAddition = "Clean Blog Theme"
description = "Hinode is a clean blog theme for your Hugo site based on Bootstrap 5."
# toml-docs-start main
[main]
separator = "-"
description = "Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5."
enableDarkMode = true
# toml-docs-end main
## Open Graph
images = ["logo.png"]
ogLocale = "en_US"
domainTLD = "hinode-demo.markdumay.org"
# toml-docs-start docs
[docs]
version = "0.8"
basePath = ""
# toml-docs-end docs
## Twitter Cards
# twitterSite = "@gethinode"
# twitterCreator = "@markdumay"
# toml-docs-start home
[home]
sections = ["blog", "projects"]
featurePhoto = "/img/sunrise.jpg" # source: https://unsplash.com/photos/ZX6BPboJrYk
fullCover = false
style = ""
# toml-docs-end home
## JSON-LD
schemaType = "Organization"
schemaName = "Hinode"
schemaAuthor = "Mark Dumay"
schemaAuthorTwitter = "https://twitter.com/markdumay"
schemaAuthorLinkedIn = "https://www.linkedin.com/in/markdumay/"
schemaAuthorGitHub = "https://github.com/markdumay"
schemaLocale = "en-US"
schemaLogo = "img/logo512x512.png"
schemaLogoWidth = 512
schemaLogoHeight = 512
schemaImage = "img/logo1280x640.png"
schemaImageWidth = 1280
schemaImageHeight = 640
# schemaTwitter = "https://twitter.com/gethinode"
# schemaLinkedIn = ""
schemaGitHub = "https://github.com/markdumay/hugo-theme-hinode"
schemaSection = "blog"
# toml-docs-start navigation
[navigation]
logo = "/img/logo_icon.svg"
color = "body"
fixed = true
offset = "4em"
search = true
breadcrumb = false
toc = true
sidebar = true
# toml-docs-end navigation
# toml-docs-start list
[list]
[blog]
title = "Blog"
sort = "date"
reverse = false
cols = 3
color = ""
padding = "0"
header = "full"
footer = "none"
orientation = "stacked"
style = "border-0"
homepage = 3
[projects]
title = "Projects"
sort = "title"
reverse = false
cols = 1
color = ""
padding = "3"
header = "none"
footer = "tags"
orientation = "none"
style = "border-1 card-emphasize"
homepage = 3
# toml-docs-end list
[favicon]
logo = "img/favicon.png"
sizes = [16, 32, 48]
[search]
enabled = true
[toc]
enabled = true
# toml-docs-start theme-colors
[style]
themeColor = "#D43900" #00b0f0
primary = "#D43900"
secondary = "#6c757d"
success = "#198754"
info = "#0dcaf0"
warning = "#ffc107"
danger = "#dc3545"
light = "#f8f9fa"
dark = "#212529"
# toml-docs-end theme-colors
themeOpacity = "10"
# toml-docs-start font
themeFont = "Inter"
themeFontPath = "https://fonts.googleapis.com/css2?family=Inter:wght@200;300;600&display=swap"
# toml-docs-end font
[main]
featurePhoto = "/img/sunrise.jpg" # source: https://unsplash.com/photos/ZX6BPboJrYk
logo = "/img/logo_embedded.svg"
[schema]
type = "Organization"
name = "Hinode"
locale = "en-US"
# twitter = "https://twitter.com/gethinode"
# linkedIn = ""
github = "https://github.com/gethinode/hinode"
section = "blog"
[author]
name = "Mark Dumay"
# twitter = "https://twitter.com/markdumay"
linkedin = "https://www.linkedin.com/in/markdumay/"
github = "https://github.com/markdumay"
[logo]
url = "img/logo512x512.png"
width = 512
height = 512
[image]
url = "img/logo1280x640.png"
width = 1280
height = 640
[opengraph]
images = ["logo.png"]
locale = "en_US"
[comments]
enabled = false
@@ -60,3 +114,13 @@ schemaSection = "blog"
# 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.2/components/badge/#headings"
hinode_docs = "https://gethinode.com/docs"
hugo_imaging = "https://gohugo.io/content-management/image-processing/#imaging-configuration"
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"

View File

@@ -1,3 +1,4 @@
# toml-docs-start server-config
[[headers]]
for = '/**'
[headers.values]
@@ -7,16 +8,14 @@ for = '/**'
Content-Security-Policy = """\
default-src 'self'; \
script-src 'self' \
https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js \
https://cdn.jsdelivr.net/gh/nextapps-de/flexsearch@0.7.31/dist/flexsearch.bundle.js \
https://utteranc.es/client.js; \
style-src 'self' localhost:1313 https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
style-src 'self' https://utteranc.es https://fonts.googleapis.com https://www.youtube.com; \
object-src 'none'; \
base-uri 'self'; \
connect-src 'self' localhost:1313 ws://localhost:1313/livereload; \
connect-src 'self'; \
font-src 'self' https://fonts.gstatic.com; \
frame-src 'self' localhost:1313 https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' https: data:; \
frame-src 'self' https://utteranc.es https://www.youtube-nocookie.com https://www.youtube.com; \
img-src 'self' https://i.vimeocdn.com https://i.ytimg.com; \
manifest-src 'self'; \
media-src 'self' \
"""
@@ -33,5 +32,11 @@ for = '/**'
fullscreen=(), \
payment=() \
"""
Cache-Control = "public, max-age=31536000"
Access-Control-Allow-Origin = "*"
cache-control = """\
max-age=0, \
no-cache, \
no-store, \
must-revalidate \
"""
Access-Control-Allow-Origin = "*"
# toml-docs-end server-config

View File

@@ -27,7 +27,7 @@ module.exports = {
/fa.*/,
/ratio.*/,
/suggestion.*/,
...whitelister([
...whitelister([
'./assets/scss/components/_blockquote.scss',
'./assets/scss/components/_buttons.scss',
'./assets/scss/components/_card.scss',

View File

@@ -0,0 +1,31 @@
# toml-docs-start az-blob
# By default, files are uploaded in an arbitrary order.
# Files that match the regular expressions in the "Order" list
# will be uploaded first, in the listed order.
order = [".webp$", ".jpg$", ".gif$"]
[targets]
name = "hinode"
URL = "azblob://$web"
[[matchers]]
# Cache static assets for 1 year.
pattern = "^.+\\.(js|css|svg|ttf)$"
cacheControl = "max-age=31536000, no-transform, public"
gzip = true
[[matchers]]
pattern = "^.+\\.(png|jpg|webp)$"
cacheControl = "max-age=31536000, no-transform, public"
gzip = false
[[matchers]]
# Set custom content type for /sitemap.xml
pattern = "^sitemap\\.xml$"
contentType = "application/xml"
gzip = true
[[matchers]]
pattern = "^.+\\.(html|xml|json)$"
gzip = true
# toml-docs-end az-blob

View File

@@ -1,3 +1,6 @@
---
author: "Hugo Authors"
author: Mark Dumay
title: Welcome to Hinode!
---
A clean documentation and blog theme for your Hugo site based on Bootstrap 5.

View File

@@ -1,48 +1,42 @@
---
title: "About"
description: "A clean blog theme for your Hugo site based on Bootstrap 5."
date: "2022-04-11"
title: About
description: Hinode is a clean documentation and blog theme for your Hugo site based on Bootstrap 5.
date: 2022-04-11
updated: 2023-02-11
showComments: false
---
<p class="text-center"><img src="/img/logo_embedded.svg" class="img-fluid w-50" alt="Logo"></p>
<p class="text-center"><svg class="img-fluid w-50"><use href="/img/logo_var.svg#logo"></use></svg></p>
<center>Hinode is a clean blog theme for Hugo, an open-source static site generator.</center>
<section class="section section-sm mt-5">
<div class="container-fluid">
<div class="row justify-content-center text-center">
<div class="row justify-content-center text-center">
<div class="col-lg-4">
<i class="fa-brands fa-bootstrap fa-2xl"></i>
<h2 class="h4">Bootstrap framework</h2>
<p>Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.</p>
</div>
<div class="col-lg-4">
<i class="fa-solid fa-magnifying-glass fa-2xl"></i>
<h2 class="h4">Full text search</h2>
<p>Search your site with FlexSearch, a full-text search library with zero dependencies.</p>
</div>
<div class="col-lg-4">
<i class="fa-solid fa-code fa-2xl"></i>
<h2 class="h4">Development tools</h2>
<p>Use Node Package Manager to automate the build process and to keep track of dependencies.</p>
</div>
<section class="section section-sm mt-5 mb-5">
<div class="container-fluid">
<div class="row justify-content-center text-center">
<div class="col-lg-4">
<i class="fa-brands fa-bootstrap fa-2xl"></i>
<h2 class="h4">Bootstrap framework</h2>
<p>Build fast, responsive sites with Bootstrap 5. Easily customize your site with the source Sass files.</p>
</div>
<div class="col-lg-4">
<i class="fa-solid fa-magnifying-glass fa-2xl"></i>
<h2 class="h4">Full text search</h2>
<p>Search your site with FlexSearch, a full-text search library with zero dependencies.</p>
</div>
<div class="col-lg-4">
<i class="fa-solid fa-code fa-2xl"></i>
<h2 class="h4">Development tools</h2>
<p>Use Node Package Manager to automate the build process and to keep track of dependencies.</p>
</div>
</div>
</div>
</div>
</section>
Additional features include:
* Comments
* Social links
* Blog pagination
* Scrollspy
* Code highlighting
* Color customization
* i18n support
The Hinode theme is inspired by the following themes:
* [Blist](https://github.com/apvarun/blist-hugo-theme) - a clean and fast blog theme for your Hugo site using Tailwind CSS.
* [Doks](https://github.com/h-enk/doks) - a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize.
* Support for multiple languages
* Reusable Bootstrap components through configurable shortcodes and partials
* Embedded comments through light-weight integration with GitHub via [utteranc.es]({{< param "links.utterances" >}})
* Integrated sidebar navigation for content-heavy sections, such as documentation pages
* 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" >}})
{.tickmark}

View File

@@ -1,4 +1,4 @@
---
author: Katheryn Fox
author: Mark Dumay
title: Blog
---

View File

@@ -2,7 +2,7 @@
author: "Mark Dumay"
title: "Code Highlighting"
date: 2022-04-16
description: "Examples on how to enable code highlighting"
description: "Examples on how to enable code highlighting."
tags: ["code"]
thumbnail: img/notepad.jpg
photoCredits: <a href="https://unsplash.com/@frederickjmedina">Frederick Medina</a>

View File

@@ -1,206 +0,0 @@
---
author: "Mark Dumay"
title: "Custom Shortcodes"
date: 2022-12-05
description: "Available shortcodes using Bootstrap components and styling"
tags: ["bootstrap", "shortcode"]
thumbnail: img/boots.jpg
photoCredits: <a href="https://unsplash.com/@nate_dumlao">Nathan Dumlao</a>
photoSource: <a href="https://unsplash.com/photos/QLPWQvHvmII">Unsplash</a>
---
Bootstrap is an open-source web development framework originally created by Twitter. It uses a responsive, mobile-first approach that scales seamlessly across different screen sizes. Bootstrap includes an extensive collection of ready-to-use components, such as navigation bars, pagination controls, buttons, and much more. The Hinode theme exposes several of those components as Hugo shortcodes to simplify their usage within markdown content. The below paragraphs illustrate the available shortcodes and how to use them.
## Carousel Shortcode
Use the `carousel` shortcode to display a carousel of several images, with behavior similar as the [Image Shortcode](#image-shortcode). The shortcode supports the following arguments:
| Argument | Required | Description |
|-----------|----------|-------------|
| ratio | No | Aspect ratio of the image, either "1x1", "4x3" (default), "16x9", or "21x9". |
| class | No | Optional class attribute of the `carousel` element, e.g. "w-75". |
{.table}
Add an inner `img` element for each slide of the carousel. The `img` element supports the following arguments:
| Argument | Required | Description |
|-----------|----------|-------------|
| src | Yes | Required url of the image, e.g. "img/boots.jpg" or "https://picsum.photos/id/27/3264/1836". |
| caption | No | Optional image caption. If set, the image is darkened to improve the contrast. The caption is hidden on smaller screens. |
{.table}
As an example, the following shortcode displays a centered carousel with three slides, 16x9 aspect ratio, and a relative width of 67% on large screens.
```html
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
{{</* img src="img/coffee.jpg" caption="slide 1" */>}}
{{</* img src="img/phone.jpg" caption="slide 2" */>}}
{{</* img src="img/dunes.jpg" caption="slide 3" */>}}
{{</* /carousel */>}}
```
The result looks like this:
{{< carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" >}}
{{< img src="img/coffee.jpg" caption="slide 1" >}}
{{< img src="img/phone.jpg" caption="slide 2" >}}
{{< img src="img/dunes.jpg" caption="slide 3" >}}
{{< /carousel >}}
## Command Prompt Shortcode
The `command` shortcode generates terminal output for either `bash`, `powershell`, or `sql` shell languages. The shortcode supports the following arguments:
| Argument | Required | Description |
|-----------|----------|-------------|
| user | No | Optional user to add to the prompt, e.g. "user". |
| host | No | Optional host to add to the prompt, e.g. "localhost". |
| prompt | No | Optional prompt override, e.g. "PS C:\Users\User>". |
| shell | No | Type of shell, either "bash" (default), "powershell", or "sql". |
{.table}
### Bash (default shell)
Use the `command` shortcode to generate a block with a default bash command prompt.
```html
{{%/* command */%}}
export MY_VAR=123
{{%/* /command */%}}
```
The result looks like this:
{{% command %}}
export MY_VAR=123
{{% /command %}}
Specify `user` and `host` to add the user context to the prompt. In addition, use `(out)` to specify an output line and use `\` to denote a line continuation.
```html
{{%/* command user="user" host="localhost" */%}}
export MY_VAR=123
echo "hello"
(out)hello
echo one \
two \
three
(out)one two three
echo "goodbye"
(out)goodbye
{{%/* /command */%}}
```
The result looks like this:
{{% command user="user" host="localhost" %}}
export MY_VAR=123
echo "hello"
(out)hello
echo one \
two \
three
(out)one two three
echo "goodbye"
(out)goodbye
{{% /command %}}
### PowerShell
Set the `shell` argument to `powershell` to generate a PowerShell terminal. Override the `prompt` to add a directory if needed. Use the backtick `` ` `` symbol to denote a line continuation.
```html
{{%/* command prompt="PS C:\Users\User>" shell="powershell" */%}}
Write-Host `
'Hello' `
'from' `
'PowerShell!'
(out)Hello from PowerShell!
Write-Host 'Goodbye from PowerShell!'
(out)Goodbye from PowerShell!
{{%/* /command */%}}
```
The result looks like this:
{{% command prompt="PS C:\Users\User>" shell="powershell" %}}
Write-Host `
'Hello' `
'from' `
'PowerShell!'
(out)Hello from PowerShell!
Write-Host 'Goodbye from PowerShell!'
(out)Goodbye from PowerShell!
{{% /command %}}
### SQL
Set the `shell` argument to `sql` to generate a SQL terminal. Use the `(con)` suffix to denote a line continuation.
```html
{{%/* command prompt="mysql>" shell="sql" */%}}
set @my_var = 'foo';
set @my_other_var = 'bar';
CREATE TABLE people ((con)
first_name VARCHAR(30) NOT NULL,(con)
last_name VARCHAR(30) NOT NULL(con)
);
(out)Query OK, 0 rows affected (0.09 sec)
insert into people(con)
values ('John', 'Doe');
(out)Query OK, 1 row affected (0.02 sec)
select *(con)
from people(con)
order by last_name;
(out)+------------+-----------+
(out)| first_name | last_name |
(out)+------------+-----------+
(out)| John | Doe |
(out)+------------+-----------+
(out)1 row in set (0.00 sec)
{{%/* /command */%}}
```
The result looks like this:
{{% command prompt="mysql>" shell="sql" %}}
set @my_var = 'foo';
set @my_other_var = 'bar';
CREATE TABLE people ((con)
first_name VARCHAR(30) NOT NULL,(con)
last_name VARCHAR(30) NOT NULL(con)
);
(out)Query OK, 0 rows affected (0.09 sec)
insert into people(con)
values ('John', 'Doe');
(out)Query OK, 1 row affected (0.02 sec)
select *(con)
from people(con)
order by last_name;
(out)+------------+-----------+
(out)| first_name | last_name |
(out)+------------+-----------+
(out)| John | Doe |
(out)+------------+-----------+
(out)1 row in set (0.00 sec)
{{% /command %}}
## Image Shortcode
Use the `image` shortcode to display a responsive image with a specific aspect ratio. The source link can refer to either an image available in the `/assets/img` folder of your site or a public web location. The shortcode renders the image as a so-called [image set][mozilla_image] to optimize the image for different screen sizes and resolutions. Behind the scenes, Hugo renders the images in `WebP` format and stores them in a local folder (`resources` or `public`). The images are processed using the quality setting specified in the `[imaging]` section of the main [config file][hugo_imaging] (defaults to 75). Supported image types are `.png`, `.jpeg`, `.gif`, `.tiff`, `.bmp`, and `.webp`. A fallback image of type `.jpeg` is provided for older browsers.The shortcode supports the following arguments:
| Argument | Required | Description |
|-----------|----------|-------------|
| src | Yes | Required url of the image, e.g. "img/boots.jpg" or "https://picsum.photos/id/27/3264/1836". |
| ratio | No | Optional aspect ratio of the image, either "1x1", "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. |
| class | No | Optional class attribute of the inner `img` element, e.g. "rounded". |
| title | No | Optional alternate text of the image. |
| caption | No | Optional figure caption. |
{.table}
As an example, the following shortcode displays an image with rounded corners and a 21x9 aspect ratio.
```html
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Figure caption" class="rounded" */>}}
```
The result looks like this:
{{< image src="img/flowers.jpg" ratio="21x9" caption="Figure caption" class="rounded">}}
[mozilla_image]: https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images
[hugo_imaging]: https://gohugo.io/content-management/image-processing/#imaging-configuration

View File

@@ -2,7 +2,7 @@
author: "Hugo Authors"
title: "Emoji Support"
date: 2021-07-15
description: "Guide to emoji usage in Hugo"
description: "Guide to emoji usage in Hugo."
tags: ["emoji"]
# thumbnail: img/dunes.jpg
thumbnail: https://picsum.photos/id/184/4288/2848.jpg

View File

@@ -0,0 +1,243 @@
---
author: Mark Dumay
title: Extra shortcodes
date: 2023-02-12
description: Use shortcodes to add common Bootstrap elements with ease.
tags: ["code"]
thumbnail: img/paper.jpg
photoCredits: <a href="https://www.pexels.com/@picjumbo-com-55570/">picjumbo.com</a>
photoSource: <a href="https://www.pexels.com/photo/blue-pen-beside-black-smartphone-on-white-paper-196646/">Pexels</a>
---
Hinode provides several shortcodes that wrap common Bootstrap components. Refer to the [official documentation]({{< param "links.hinode_docs" >}}) for more details.
## Accordion
As an example, the following shortcode displays an accordion with three elements, of which the first element is expanded.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* accordion */>}}
{{</* accordion-item header="Accordion Item #1" show="true" */>}}
This is the first item's accordion body. It supports HTML content. The item is shown by adding the value
<code>show</code> to the <code>class</code> argument.
{{</* /accordion-item */>}}
{{</* accordion-item header="Accordion Item #2" */>}}
This is the second item's accordion body. It too supports HTML content.
{{</* /accordion-item */>}}
{{</* accordion-item header="Accordion Item #3" */>}}
This is the third item's accordion body.
{{</* /accordion-item */>}}
{{</* /accordion */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Alert
As an example, the following shortcode displays a simple alert.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* alert color="danger" dismissible="true" */>}}
A simple danger alert—check it out!
{{</* /alert */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Badge
Use HTML code to display a badge for a heading. See the Bootstrap [documentation]({{< param "links.bs_badge_heading" >}}) for more options. The following example displays a badge for a heading of size four.
{{< example >}}
<h1>Example heading of size one <span class="badge bg-secondary">New</span></h1>
<h2>Example heading of size two <span class="badge bg-secondary">New</span></h2>
<h3>Example heading of size three <span class="badge bg-secondary">New</span></h3>
<h4>Example heading of size four <span class="badge bg-secondary">New</span></h4>
<h5>Example heading of size five <span class="badge bg-secondary">New</span></h5>
<h6>Example heading of size six <span class="badge bg-secondary">New</span></h6>
{{< /example >}}
## Breadcrumb
As an example, the following shortcode displays a breadcrumb for the current page.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* breadcrumb path="blog" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Button
As an example, the following shortcode displays a tooltip for a dark button with a badge.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button color="secondary" tooltip="Click on the inbox to view your unread messages" href="#" badge="99+" */>}}
Inbox
{{</* /button */>}}
{{< /example>}}
<!-- markdownlint-enable MD037 -->
## Button group
As an example, the following shortcode displays a group of three buttons.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button-group aria-label="Basic example" */>}}
{{</* button color="primary" href="#" */>}}Left{{</* /button */>}}
{{</* button color="primary" href="#" */>}}Middle{{</* /button */>}}
{{</* button color="primary" href="#" */>}}Right{{</* /button */>}}
{{</* /button-group */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Card
As an example, the following shortcode displays a stacked card with icon that links to the [about]({{< ref "about" >}}) page. It includes a custom header and footer.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* card path="about" padding="3" class="w-50" color="light" header="publication" footer="none" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Carousel
As an example, the following shortcode displays a centered carousel with three slides, 16x9 aspect ratio, and a relative width of 67% on large screens.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* carousel ratio="16x9" class="col-sm-12 col-lg-8 mx-auto" */>}}
{{</* img src="img/coffee.jpg" caption="slide 1" */>}}
{{</* img src="img/phone.jpg" caption="slide 2" */>}}
{{</* img src="img/dunes.jpg" caption="slide 3" */>}}
{{</* /carousel */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Collapse
As an example, the following shortcode displays a button that, when clicked, triggers a panel to appear or disappear.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button collapse="collapse-1" */>}}
Trigger panel
{{</* /button */>}}
{{</* collapse id="collapse-1" class="p-3 border rounded" */>}}
Some placeholder content for the collapse component. This panel is <i>hidden by default</i> but
revealed when the user activates the relevant trigger.
{{</* /collapse */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Command prompt
Use the `command` shortcode to generate a block with a default bash command prompt.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* command */>}}
export MY_VAR=123
{{</* /command */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
Specify `user` and `host` to add the user context to the prompt. In addition, use `(out)` to specify an output line and use `\` to denote a line continuation.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* command user="user" host="localhost" */>}}
export MY_VAR=123
echo "hello"
(out)hello
echo one \
two \
three
(out)one two three
echo "goodbye"
(out)goodbye
{{</* /command */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Docs
Use the `docs` shortcode to display the content of a `toml` or `scss` file:
{{< docs name="theme-colors" file="config/_default/params.toml" >}}
## Icon
As an example, the following shortcodes show a square check, a brand logo, and a circle check.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* fa square-check */>}}
{{</* fab linkedin */>}}
{{</* fas circle-check */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Image
As an example, the following shortcode displays an image with rounded corners and a 21x9 aspect ratio.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* image src="img/flowers.jpg" ratio="21x9" caption="Figure caption" class="rounded" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Navbar
As an example, the following shortcode displays a light navigation header.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* navbar path="about" color="primary" size="sm" search="false" menus="sample" title="Brand" */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Spinner
As an example, the following shortcode displays a centered spinner.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* spinner color="info" class="text-center" */>}}
Loading...
{{</* /spinner */>}}
{{< /example>}}
<!-- markdownlint-enable MD037 -->
## Toast
As an example, the following shortcode displays a button that, when clicked, triggers the toast message.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* button id="toastButton" */>}}
Show toast
{{</* /button */>}}
{{</* toast header="Custom title" */>}}
This is a toast message.
{{</* /toast */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->
## Tooltip
As an example, the following shortcode displays a tooltip for a colored hyperlink.
<!-- markdownlint-disable MD037 -->
{{< example lang="hugo" >}}
{{</* tooltip color="primary" title="Tooltip" href="#" */>}}
Tooltip demonstration
{{</* /tooltip */>}}
{{< /example >}}
<!-- markdownlint-enable MD037 -->

View File

@@ -1,7 +1,7 @@
---
author: "Hugo Authors"
title: "Markdown Syntax Guide"
description: "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
author: Hugo Authors
title: Markdown Syntax Guide
description: Use Markdown syntax and basic HTML elements to style your Hugo content files.
tags: ["markdown", "css", "html"]
date: 2022-01-14
thumbnail: img/phone.jpg # https://picsum.photos/id/160/3200/2119
@@ -88,7 +88,7 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>

View File

@@ -2,7 +2,7 @@
author: "Hugo Authors"
title: "Rich Content"
date: 2021-07-13
description: "A brief description of Hugo Shortcodes"
description: "A brief description of Hugo Shortcodes."
tags: ["shortcode", "privacy"]
thumbnail: img/flowers.jpg # https://picsum.photos/id/106/2592/1728
photoCredits: <a href="https://unsplash.com/@flutterhappy">Arvee Marie</a>

View File

@@ -1,8 +1,8 @@
---
author: "Hugo Authors"
title: "Another project"
author: Mark Dumay
title: Another project
date: 2021-07-15
description: "Another project"
description: Another project.
tags: ["javascript", "golang"]
thumbnail: img/coffee.jpg # https://picsum.photos/id/1060/5598/3732
photoCredits: <a href="https://unsplash.com/@kfred">Karl Fredrickson</a>

View File

@@ -1,8 +1,8 @@
---
author: "Hugo Authors"
title: "Sample project"
author: Hugo Authors
title: Sample project
date: 2021-07-15
description: "A sample project"
description: A sample project.
tags: ["html", "css"]
thumbnail: img/laptop.jpg # https://picsum.photos/id/0/5616/3744
photoCredits: <a href="https://unsplash.com/@alejandroescamilla">Alejandro Escamilla</a>

View File

@@ -1,3 +1,6 @@
---
author: "Hugo Authors"
author: Mark Dumay
title: Welkom bij Hinode!
---
Een documentatie en blog thema voor Hugo gebaseerd op Bootstrap 5.

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