🔖 Release v2.6.0

pull/775/head v2.6.0
James Panther 2023-05-25 14:37:49 +10:00
commit 3dd7fe455d
No known key found for this signature in database
GPG Key ID: D36F789E45745D17
49 changed files with 4489 additions and 2217 deletions

View File

@ -10,7 +10,7 @@ jobs:
issues: write issues: write
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/stale@v7 - uses: actions/stale@v8
with: with:
days-before-stale: 30 days-before-stale: 30
days-before-close: 14 days-before-close: 14

View File

@ -6,6 +6,35 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased] ## [Unreleased]
## [2.6.0] - 2023-05-25
### Added
- Support for Hugo v0.112.0
- Ability to specify an alternate logo image when dark appearance is active (\[#533], ([#521](https://github.com/jpanther/congo/pull/521))(https://github.com/jpanther/congo/pull/533), [#543](https://github.com/jpanther/congo/pull/543))
- Ability to specify the hashing algorithm that is used when fingerprinting assets ([#478](https://github.com/jpanther/congo/issues/478))
- Arabic translation ([#521](https://github.com/jpanther/congo/pull/521))
- Slovak translation ([#541](https://github.com/jpanther/congo/pull/541))
- Czech translation ([#541](https://github.com/jpanther/congo/pull/541))
### Changed
- ⚠️ Some parameters in the root of the Languages config file have been nested under the `params` block
- Search results now respect `showDate` value when displaying article metadata ([#511](https://github.com/jpanther/congo/pull/511))
- Adopted new Tailwind logical properties for RTL styling
- Article sharing links now open in a new tab/window
- Updated Dutch translation ([#544](https://github.com/jpanther/congo/pull/544))
- Upgrade to Tailwind v3.3.1 ([#523](https://github.com/jpanther/congo/pull/523))
- Upgrade to KaTeX v0.16.7 ([#538](https://github.com/jpanther/congo/pull/538), [#549](https://github.com/jpanther/congo/pull/549))
- Upgrade to Chart.js v4.3.0 ([#551](https://github.com/jpanther/congo/pull/551))
- Upgrade to Mermaid v10.2.0 ([#563](https://github.com/jpanther/congo/pull/563))
### Fixed
- Some `srcset` values are broken when using Hugo `--minify` option ([#508](https://github.com/jpanther/congo/pull/508))
- Author images are cropped off-centre during image processing ([#527](https://github.com/jpanther/congo/pull/527))
- Site doesn't build when using Hugo v0.112.0 ([#561](https://github.com/jpanther/congo/pull/561))
## [2.5.4] - 2023-03-20 ## [2.5.4] - 2023-03-20
### Added ### Added
@ -659,7 +688,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Advanced customisation using simple Tailwind colour definitions and styles - Advanced customisation using simple Tailwind colour definitions and styles
- Fully documented - Fully documented
[Unreleased]: https://github.com/jpanther/congo/compare/v2.5.4...HEAD [Unreleased]: https://github.com/jpanther/congo/compare/v2.6.0...HEAD
[2.6.0]: https://github.com/jpanther/congo/compare/v2.5.4...v2.6.0
[2.5.4]: https://github.com/jpanther/congo/compare/v2.5.3...v2.5.4 [2.5.4]: https://github.com/jpanther/congo/compare/v2.5.3...v2.5.4
[2.5.3]: https://github.com/jpanther/congo/compare/v2.5.2...v2.5.3 [2.5.3]: https://github.com/jpanther/congo/compare/v2.5.2...v2.5.3
[2.5.2]: https://github.com/jpanther/congo/compare/v2.5.1...v2.5.2 [2.5.2]: https://github.com/jpanther/congo/compare/v2.5.1...v2.5.2

View File

@ -1,6 +1,6 @@
/*! Congo v2.5.4 | MIT License | https://github.com/jpanther/congo */ /*! Congo v2.6.0 | MIT License | https://github.com/jpanther/congo */
/*! tailwindcss v3.2.7 | MIT License | https://tailwindcss.com */ /*! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com */
/* /*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
@ -31,6 +31,7 @@
3. Use a more readable tab size. 3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default. 4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default. 5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
*/ */
html { html {
@ -47,6 +48,8 @@ html {
/* 4 */ /* 4 */
font-feature-settings: normal; font-feature-settings: normal;
/* 5 */ /* 5 */
font-variation-settings: normal;
/* 6 */
} }
/* /*
@ -433,6 +436,9 @@ video {
--tw-pan-y: ; --tw-pan-y: ;
--tw-pinch-zoom: ; --tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity; --tw-scroll-snap-strictness: proximity;
--tw-gradient-from-position: ;
--tw-gradient-via-position: ;
--tw-gradient-to-position: ;
--tw-ordinal: ; --tw-ordinal: ;
--tw-slashed-zero: ; --tw-slashed-zero: ;
--tw-numeric-figure: ; --tw-numeric-figure: ;
@ -480,6 +486,9 @@ video {
--tw-pan-y: ; --tw-pan-y: ;
--tw-pinch-zoom: ; --tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity; --tw-scroll-snap-strictness: proximity;
--tw-gradient-from-position: ;
--tw-gradient-via-position: ;
--tw-gradient-to-position: ;
--tw-ordinal: ; --tw-ordinal: ;
--tw-slashed-zero: ; --tw-slashed-zero: ;
--tw-numeric-figure: ; --tw-numeric-figure: ;
@ -1035,32 +1044,32 @@ body:has(#menu-controller:checked) {
/* RTL support */ /* RTL support */
[dir="rtl"] .prose blockquote { :is([dir="rtl"] .prose blockquote) {
border-left-width: 0px; border-left-width: 0px;
border-right-width: 4px; border-right-width: 4px;
padding-right: 1rem; padding-right: 1rem;
} }
[dir="rtl"] .prose ul > li,[dir="rtl"] :is([dir="rtl"] .prose ul > li),:is([dir="rtl"]
.prose ol > li { .prose ol > li) {
margin-right: 1.75rem; margin-right: 1.75rem;
padding-left: 0px; padding-left: 0px;
padding-right: 0.5rem; padding-right: 0.5rem;
} }
[dir="rtl"] .prose ol > li:before,[dir="rtl"] :is([dir="rtl"] .prose ol > li):before,:is([dir="rtl"]
.prose ul > li:before { .prose ul > li):before {
left: auto; left: auto;
right: 0.25rem; right: 0.25rem;
} }
[dir="rtl"] .prose thead td:first-child,[dir="rtl"] :is([dir="rtl"] .prose thead td:first-child),:is([dir="rtl"]
.prose thead th:first-child { .prose thead th:first-child) {
padding-right: 0px; padding-right: 0px;
} }
[dir="rtl"] .prose thead td:last-child,[dir="rtl"] :is([dir="rtl"] .prose thead td:last-child),:is([dir="rtl"]
.prose thead th:last-child { .prose thead th:last-child) {
padding-left: 0px; padding-left: 0px;
} }
@ -1080,12 +1089,9 @@ body:has(#menu-controller:checked) {
line-height: 1.375; line-height: 1.375;
} }
[dir="ltr"] .toc ul ul { .toc ul ul {
padding-left: 1rem; -webkit-padding-start: 1rem;
} padding-inline-start: 1rem;
[dir="rtl"] .toc ul ul {
padding-right: 1rem;
} }
.toc a { .toc a {
@ -1094,12 +1100,12 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-neutral-700), var(--tw-text-opacity)); color: rgba(var(--color-neutral-700), var(--tw-text-opacity));
} }
.dark .toc a { :is(.dark .toc a) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-400), var(--tw-text-opacity)); color: rgba(var(--color-neutral-400), var(--tw-text-opacity));
} }
[dir="rtl"] .toc ul > li { :is([dir="rtl"] .toc ul > li) {
margin-right: 0px; margin-right: 0px;
} }
@ -1121,8 +1127,8 @@ body:has(#menu-controller:checked) {
.copy-button { .copy-button {
visibility: hidden; visibility: hidden;
position: absolute; position: absolute;
top: 0px;
right: 0px; right: 0px;
top: 0px;
z-index: 10; z-index: 10;
width: 5rem; width: 5rem;
cursor: pointer; cursor: pointer;
@ -1141,7 +1147,7 @@ body:has(#menu-controller:checked) {
opacity: 0.9; opacity: 0.9;
} }
.dark .copy-button { :is(.dark .copy-button) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-neutral-600), var(--tw-bg-opacity)); background-color: rgba(var(--color-neutral-600), var(--tw-bg-opacity));
--tw-text-opacity: 1; --tw-text-opacity: 1;
@ -1156,10 +1162,10 @@ body:has(#menu-controller:checked) {
background-color: rgba(var(--color-primary-100), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-100), var(--tw-bg-opacity));
} }
.dark .copy-button:hover,.dark :is(.dark .copy-button:hover),:is(.dark
.copy-button:focus,.dark .copy-button:focus),:is(.dark
.copy-button:active,.dark .copy-button:active),:is(.dark
.copy-button:active:hover { .copy-button:active:hover) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-600), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-600), var(--tw-bg-opacity));
} }
@ -1184,7 +1190,7 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-neutral-700), var(--tw-text-opacity)); color: rgba(var(--color-neutral-700), var(--tw-text-opacity));
} }
.dark .chroma { :is(.dark .chroma) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-neutral-700), var(--tw-bg-opacity)); background-color: rgba(var(--color-neutral-700), var(--tw-bg-opacity));
--tw-text-opacity: 1; --tw-text-opacity: 1;
@ -1220,8 +1226,8 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-neutral-600), var(--tw-text-opacity)); color: rgba(var(--color-neutral-600), var(--tw-text-opacity));
} }
.dark .chroma .lnt,.dark :is(.dark .chroma .lnt),:is(.dark
.chroma .ln { .chroma .ln) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-300), var(--tw-text-opacity)); color: rgba(var(--color-neutral-300), var(--tw-text-opacity));
} }
@ -1244,7 +1250,7 @@ body:has(#menu-controller:checked) {
background-color: rgba(var(--color-primary-100), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-100), var(--tw-bg-opacity));
} }
.dark .chroma .hl { :is(.dark .chroma .hl) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity));
} }
@ -1283,16 +1289,16 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-primary-600), var(--tw-text-opacity)); color: rgba(var(--color-primary-600), var(--tw-text-opacity));
} }
.dark .chroma .k,.dark :is(.dark .chroma .k),:is(.dark
.chroma .kd,.dark .chroma .kd),:is(.dark
.chroma .kn,.dark .chroma .kn),:is(.dark
.chroma .kp,.dark .chroma .kp),:is(.dark
.chroma .kr,.dark .chroma .kr),:is(.dark
.chroma .nc,.dark .chroma .nc),:is(.dark
.chroma .fm,.dark .chroma .fm),:is(.dark
.chroma .nn,.dark .chroma .nn),:is(.dark
.chroma .vc,.dark .chroma .vc),:is(.dark
.chroma .o { .chroma .o) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-300), var(--tw-text-opacity)); color: rgba(var(--color-primary-300), var(--tw-text-opacity));
} }
@ -1305,7 +1311,7 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-secondary-400), var(--tw-text-opacity)); color: rgba(var(--color-secondary-400), var(--tw-text-opacity));
} }
.dark .chroma .kc { :is(.dark .chroma .kc) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-secondary-500), var(--tw-text-opacity)); color: rgba(var(--color-secondary-500), var(--tw-text-opacity));
} }
@ -1347,17 +1353,17 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-secondary-400), var(--tw-text-opacity)); color: rgba(var(--color-secondary-400), var(--tw-text-opacity));
} }
.dark .chroma .kt,.dark :is(.dark .chroma .kt),:is(.dark
.chroma .nv,.dark .chroma .nv),:is(.dark
.chroma .vi,.dark .chroma .vi),:is(.dark
.chroma .vm,.dark .chroma .vm),:is(.dark
.chroma .m,.dark .chroma .m),:is(.dark
.chroma .mb,.dark .chroma .mb),:is(.dark
.chroma .mf,.dark .chroma .mf),:is(.dark
.chroma .mh,.dark .chroma .mh),:is(.dark
.chroma .mi,.dark .chroma .mi),:is(.dark
.chroma .il,.dark .chroma .il),:is(.dark
.chroma .mo { .chroma .mo) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-secondary-600), var(--tw-text-opacity)); color: rgba(var(--color-secondary-600), var(--tw-text-opacity));
} }
@ -1378,10 +1384,10 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-secondary-900), var(--tw-text-opacity)); color: rgba(var(--color-secondary-900), var(--tw-text-opacity));
} }
.dark .chroma .n,.dark :is(.dark .chroma .n),:is(.dark
.chroma .nd,.dark .chroma .nd),:is(.dark
.chroma .ni,.dark .chroma .ni),:is(.dark
.chroma .nl { .chroma .nl) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-secondary-200), var(--tw-text-opacity)); color: rgba(var(--color-secondary-200), var(--tw-text-opacity));
} }
@ -1408,12 +1414,12 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-secondary-800), var(--tw-text-opacity)); color: rgba(var(--color-secondary-800), var(--tw-text-opacity));
} }
.dark .chroma .na,.dark :is(.dark .chroma .na),:is(.dark
.chroma .nb,.dark .chroma .nb),:is(.dark
.chroma .bp,.dark .chroma .bp),:is(.dark
.chroma .nx,.dark .chroma .nx),:is(.dark
.chroma .py,.dark .chroma .py),:is(.dark
.chroma .nt { .chroma .nt) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-secondary-300), var(--tw-text-opacity)); color: rgba(var(--color-secondary-300), var(--tw-text-opacity));
} }
@ -1432,9 +1438,9 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-secondary-400), var(--tw-text-opacity)); color: rgba(var(--color-secondary-400), var(--tw-text-opacity));
} }
.dark .chroma .no,.dark :is(.dark .chroma .no),:is(.dark
.chroma .ne,.dark .chroma .ne),:is(.dark
.chroma .vg { .chroma .vg) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-secondary-500), var(--tw-text-opacity)); color: rgba(var(--color-secondary-500), var(--tw-text-opacity));
} }
@ -1446,7 +1452,7 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-secondary-600), var(--tw-text-opacity)); color: rgba(var(--color-secondary-600), var(--tw-text-opacity));
} }
.dark .chroma .nf { :is(.dark .chroma .nf) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-secondary-500), var(--tw-text-opacity)); color: rgba(var(--color-secondary-500), var(--tw-text-opacity));
} }
@ -1503,22 +1509,22 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-primary-800), var(--tw-text-opacity)); color: rgba(var(--color-primary-800), var(--tw-text-opacity));
} }
.dark .chroma .l,.dark :is(.dark .chroma .l),:is(.dark
.chroma .ld,.dark .chroma .ld),:is(.dark
.chroma .s,.dark .chroma .s),:is(.dark
.chroma .sa,.dark .chroma .sa),:is(.dark
.chroma .sb,.dark .chroma .sb),:is(.dark
.chroma .sc,.dark .chroma .sc),:is(.dark
.chroma .dl,.dark .chroma .dl),:is(.dark
.chroma .sd,.dark .chroma .sd),:is(.dark
.chroma .s2,.dark .chroma .s2),:is(.dark
.chroma .sh,.dark .chroma .sh),:is(.dark
.chroma .si,.dark .chroma .si),:is(.dark
.chroma .sx,.dark .chroma .sx),:is(.dark
.chroma .s1,.dark .chroma .s1),:is(.dark
.chroma .gi,.dark .chroma .gi),:is(.dark
.chroma .go,.dark .chroma .go),:is(.dark
.chroma .gp { .chroma .gp) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-400), var(--tw-text-opacity)); color: rgba(var(--color-primary-400), var(--tw-text-opacity));
} }
@ -1531,7 +1537,7 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-secondary-400), var(--tw-text-opacity)); color: rgba(var(--color-secondary-400), var(--tw-text-opacity));
} }
.dark .chroma .se { :is(.dark .chroma .se) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-secondary-500), var(--tw-text-opacity)); color: rgba(var(--color-secondary-500), var(--tw-text-opacity));
} }
@ -1547,8 +1553,8 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-primary-800), var(--tw-text-opacity)); color: rgba(var(--color-primary-800), var(--tw-text-opacity));
} }
.dark .chroma .sr,.dark :is(.dark .chroma .sr),:is(.dark
.chroma .ss { .chroma .ss) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-400), var(--tw-text-opacity)); color: rgba(var(--color-primary-400), var(--tw-text-opacity));
} }
@ -1561,7 +1567,7 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-primary-400), var(--tw-text-opacity)); color: rgba(var(--color-primary-400), var(--tw-text-opacity));
} }
.dark .chroma .ow { :is(.dark .chroma .ow) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-600), var(--tw-text-opacity)); color: rgba(var(--color-primary-600), var(--tw-text-opacity));
} }
@ -1589,12 +1595,12 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-neutral-500), var(--tw-text-opacity)); color: rgba(var(--color-neutral-500), var(--tw-text-opacity));
} }
.dark .chroma .c,.dark :is(.dark .chroma .c),:is(.dark
.chroma .cm,.dark .chroma .cm),:is(.dark
.chroma .c1,.dark .chroma .c1),:is(.dark
.chroma .cs,.dark .chroma .cs),:is(.dark
.chroma .cp,.dark .chroma .cp),:is(.dark
.chroma .cpf { .chroma .cpf) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-400), var(--tw-text-opacity)); color: rgba(var(--color-neutral-400), var(--tw-text-opacity));
} }
@ -1608,7 +1614,7 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-neutral-500), var(--tw-text-opacity)); color: rgba(var(--color-neutral-500), var(--tw-text-opacity));
} }
.dark .chroma .ch { :is(.dark .chroma .ch) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-400), var(--tw-text-opacity)); color: rgba(var(--color-neutral-400), var(--tw-text-opacity));
} }
@ -1678,16 +1684,21 @@ body:has(#menu-controller:checked) {
} }
.inset-0 { .inset-0 {
top: 0px; inset: 0px;
right: 0px; }
bottom: 0px;
left: 0px; .-start-6 {
inset-inline-start: -1.5rem;
} }
.bottom-0 { .bottom-0 {
bottom: 0px; bottom: 0px;
} }
.end-0 {
inset-inline-end: 0px;
}
.top-0 { .top-0 {
top: 0px; top: 0px;
} }
@ -1778,6 +1789,11 @@ body:has(#menu-controller:checked) {
margin-bottom: -0.25rem; margin-bottom: -0.25rem;
} }
.-ms-5 {
-webkit-margin-start: -1.25rem;
margin-inline-start: -1.25rem;
}
.-mt-3 { .-mt-3 {
margin-top: -0.75rem; margin-top: -0.75rem;
} }
@ -1810,6 +1826,21 @@ body:has(#menu-controller:checked) {
margin-bottom: 2px; margin-bottom: 2px;
} }
.me-14 {
-webkit-margin-end: 3.5rem;
margin-inline-end: 3.5rem;
}
.me-2 {
-webkit-margin-end: 0.5rem;
margin-inline-end: 0.5rem;
}
.me-4 {
-webkit-margin-end: 1rem;
margin-inline-end: 1rem;
}
.ml-2 { .ml-2 {
margin-left: 0.5rem; margin-left: 0.5rem;
} }
@ -1818,6 +1849,16 @@ body:has(#menu-controller:checked) {
margin-right: 0.5rem; margin-right: 0.5rem;
} }
.ms-1 {
-webkit-margin-start: 0.25rem;
margin-inline-start: 0.25rem;
}
.ms-2 {
-webkit-margin-start: 0.5rem;
margin-inline-start: 0.5rem;
}
.mt-0 { .mt-0 {
margin-top: 0px; margin-top: 0px;
} }
@ -2082,6 +2123,10 @@ body:has(#menu-controller:checked) {
border-width: 1px; border-width: 1px;
} }
.border-s {
border-inline-start-width: 1px;
}
.border-t { .border-t {
border-top-width: 1px; border-top-width: 1px;
} }
@ -2243,12 +2288,34 @@ body:has(#menu-controller:checked) {
padding-bottom: 1rem; padding-bottom: 1rem;
} }
.pl-2 { .pe-2 {
padding-left: 0.5rem; -webkit-padding-end: 0.5rem;
padding-inline-end: 0.5rem;
} }
.pr-4 { .pe-3 {
padding-right: 1rem; -webkit-padding-end: 0.75rem;
padding-inline-end: 0.75rem;
}
.pe-4 {
-webkit-padding-end: 1rem;
padding-inline-end: 1rem;
}
.pe-5 {
-webkit-padding-end: 1.25rem;
padding-inline-end: 1.25rem;
}
.ps-2 {
-webkit-padding-start: 0.5rem;
padding-inline-start: 0.5rem;
}
.ps-5 {
-webkit-padding-start: 1.25rem;
padding-inline-start: 1.25rem;
} }
.pt-3 { .pt-3 {
@ -2464,7 +2531,7 @@ body:has(#menu-controller:checked) {
transition-duration: 150ms; transition-duration: 150ms;
} }
.dark .dark\:prose-invert { :is(.dark .dark\:prose-invert) {
--tw-prose-body: var(--tw-prose-invert-body); --tw-prose-body: var(--tw-prose-invert-body);
--tw-prose-headings: var(--tw-prose-invert-headings); --tw-prose-headings: var(--tw-prose-invert-headings);
--tw-prose-lead: var(--tw-prose-invert-lead); --tw-prose-lead: var(--tw-prose-invert-lead);
@ -2483,16 +2550,16 @@ body:has(#menu-controller:checked) {
--tw-prose-td-borders: var(--tw-prose-invert-td-borders); --tw-prose-td-borders: var(--tw-prose-invert-td-borders);
} }
.dark .dark\:prose-invert :where(a):not(:where([class~="not-prose"] *)) { :is(.dark .dark\:prose-invert) :where(a):not(:where([class~="not-prose"] *)) {
text-decoration-color: rgba(var(--color-neutral-600), 1); text-decoration-color: rgba(var(--color-neutral-600), 1);
} }
.dark .dark\:prose-invert :where(kbd):not(:where([class~="not-prose"] *)) { :is(.dark .dark\:prose-invert) :where(kbd):not(:where([class~="not-prose"] *)) {
color: rgba(var(--color-neutral-200), 1); color: rgba(var(--color-neutral-200), 1);
background-color: rgba(var(--color-neutral-700), 1); background-color: rgba(var(--color-neutral-700), 1);
} }
.dark .dark\:prose-invert :where(mark):not(:where([class~="not-prose"] *)) { :is(.dark .dark\:prose-invert) :where(mark):not(:where([class~="not-prose"] *)) {
background-color: rgba(var(--color-secondary-400), 1); background-color: rgba(var(--color-secondary-400), 1);
} }
@ -2594,11 +2661,6 @@ body:has(#menu-controller:checked) {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
} }
.group:hover .group-hover\:translate-x-\[2px\] {
--tw-translate-x: 2px;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:text-primary-300 { .group:hover .group-hover\:text-primary-300 {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-300), var(--tw-text-opacity)); color: rgba(var(--color-primary-300), var(--tw-text-opacity));
@ -2629,267 +2691,179 @@ body:has(#menu-controller:checked) {
opacity: 1; opacity: 1;
} }
[dir="ltr"] .ltr\:-left-6 { :is([dir="ltr"] .ltr\:block) {
left: -1.5rem;
}
[dir="ltr"] .ltr\:right-0 {
right: 0px;
}
[dir="ltr"] .ltr\:-ml-5 {
margin-left: -1.25rem;
}
[dir="ltr"] .ltr\:ml-1 {
margin-left: 0.25rem;
}
[dir="ltr"] .ltr\:ml-2 {
margin-left: 0.5rem;
}
[dir="ltr"] .ltr\:mr-14 {
margin-right: 3.5rem;
}
[dir="ltr"] .ltr\:mr-4 {
margin-right: 1rem;
}
[dir="ltr"] .ltr\:block {
display: block; display: block;
} }
[dir="ltr"] .ltr\:inline { :is([dir="ltr"] .ltr\:inline) {
display: inline; display: inline;
} }
[dir="ltr"] .ltr\:hidden { :is([dir="ltr"] .ltr\:hidden) {
display: none; display: none;
} }
[dir="ltr"] .ltr\:border-l { :is([dir="ltr"] .ltr\:text-right) {
border-left-width: 1px;
}
[dir="ltr"] .ltr\:pl-5 {
padding-left: 1.25rem;
}
[dir="ltr"] .ltr\:pr-2 {
padding-right: 0.5rem;
}
[dir="ltr"] .ltr\:pr-3 {
padding-right: 0.75rem;
}
[dir="ltr"] .ltr\:text-right {
text-align: right; text-align: right;
} }
[dir="rtl"] .rtl\:-right-6 { :is([dir="rtl"] .rtl\:block) {
right: -1.5rem;
}
[dir="rtl"] .rtl\:left-0 {
left: 0px;
}
[dir="rtl"] .rtl\:-mr-5 {
margin-right: -1.25rem;
}
[dir="rtl"] .rtl\:ml-14 {
margin-left: 3.5rem;
}
[dir="rtl"] .rtl\:ml-4 {
margin-left: 1rem;
}
[dir="rtl"] .rtl\:mr-1 {
margin-right: 0.25rem;
}
[dir="rtl"] .rtl\:mr-2 {
margin-right: 0.5rem;
}
[dir="rtl"] .rtl\:block {
display: block; display: block;
} }
[dir="rtl"] .rtl\:inline { :is([dir="rtl"] .rtl\:inline) {
display: inline; display: inline;
} }
[dir="rtl"] .rtl\:hidden { :is([dir="rtl"] .rtl\:hidden) {
display: none; display: none;
} }
[dir="rtl"] .rtl\:border-r { :is([dir="rtl"] .rtl\:text-left) {
border-right-width: 1px;
}
[dir="rtl"] .rtl\:pl-2 {
padding-left: 0.5rem;
}
[dir="rtl"] .rtl\:pl-3 {
padding-left: 0.75rem;
}
[dir="rtl"] .rtl\:pr-5 {
padding-right: 1.25rem;
}
[dir="rtl"] .rtl\:text-left {
text-align: left; text-align: left;
} }
.dark .dark\:inline { :is(.dark .dark\:inline) {
display: inline; display: inline;
} }
.dark .dark\:flex { :is(.dark .dark\:flex) {
display: flex; display: flex;
} }
.dark .dark\:hidden { :is(.dark .dark\:hidden) {
display: none; display: none;
} }
.dark .dark\:border-neutral-600 { :is(.dark .dark\:border-neutral-600) {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgba(var(--color-neutral-600), var(--tw-border-opacity)); border-color: rgba(var(--color-neutral-600), var(--tw-border-opacity));
} }
.dark .dark\:border-neutral-700 { :is(.dark .dark\:border-neutral-700) {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgba(var(--color-neutral-700), var(--tw-border-opacity)); border-color: rgba(var(--color-neutral-700), var(--tw-border-opacity));
} }
.dark .dark\:border-primary-600 { :is(.dark .dark\:border-primary-600) {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgba(var(--color-primary-600), var(--tw-border-opacity)); border-color: rgba(var(--color-primary-600), var(--tw-border-opacity));
} }
.dark .dark\:bg-neutral-600 { :is(.dark .dark\:bg-neutral-600) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-neutral-600), var(--tw-bg-opacity)); background-color: rgba(var(--color-neutral-600), var(--tw-bg-opacity));
} }
.dark .dark\:bg-neutral-700 { :is(.dark .dark\:bg-neutral-700) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-neutral-700), var(--tw-bg-opacity)); background-color: rgba(var(--color-neutral-700), var(--tw-bg-opacity));
} }
.dark .dark\:bg-neutral-800 { :is(.dark .dark\:bg-neutral-800) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-neutral-800), var(--tw-bg-opacity)); background-color: rgba(var(--color-neutral-800), var(--tw-bg-opacity));
} }
.dark .dark\:bg-neutral-800\/50 { :is(.dark .dark\:bg-neutral-800\/50) {
background-color: rgba(var(--color-neutral-800), 0.5); background-color: rgba(var(--color-neutral-800), 0.5);
} }
.dark .dark\:bg-neutral-900\/50 { :is(.dark .dark\:bg-neutral-900\/50) {
background-color: rgba(var(--color-neutral-900), 0.5); background-color: rgba(var(--color-neutral-900), 0.5);
} }
.dark .dark\:bg-primary-400 { :is(.dark .dark\:bg-primary-400) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-400), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-400), var(--tw-bg-opacity));
} }
.dark .dark\:bg-primary-800 { :is(.dark .dark\:bg-primary-800) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-800), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-800), var(--tw-bg-opacity));
} }
.dark .dark\:bg-primary-900 { :is(.dark .dark\:bg-primary-900) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity));
} }
.dark .dark\:text-neutral { :is(.dark .dark\:text-neutral) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral), var(--tw-text-opacity)); color: rgba(var(--color-neutral), var(--tw-text-opacity));
} }
.dark .dark\:text-neutral-100 { :is(.dark .dark\:text-neutral-100) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-100), var(--tw-text-opacity)); color: rgba(var(--color-neutral-100), var(--tw-text-opacity));
} }
.dark .dark\:text-neutral-300 { :is(.dark .dark\:text-neutral-300) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-300), var(--tw-text-opacity)); color: rgba(var(--color-neutral-300), var(--tw-text-opacity));
} }
.dark .dark\:text-neutral-400 { :is(.dark .dark\:text-neutral-400) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-400), var(--tw-text-opacity)); color: rgba(var(--color-neutral-400), var(--tw-text-opacity));
} }
.dark .dark\:text-neutral-500 { :is(.dark .dark\:text-neutral-500) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-500), var(--tw-text-opacity)); color: rgba(var(--color-neutral-500), var(--tw-text-opacity));
} }
.dark .dark\:text-neutral-800 { :is(.dark .dark\:text-neutral-800) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-800), var(--tw-text-opacity)); color: rgba(var(--color-neutral-800), var(--tw-text-opacity));
} }
.dark .dark\:text-primary-400 { :is(.dark .dark\:text-primary-400) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-400), var(--tw-text-opacity)); color: rgba(var(--color-primary-400), var(--tw-text-opacity));
} }
.dark .dark\:hover\:border-primary-600:hover { :is(.dark .dark\:hover\:border-primary-600:hover) {
--tw-border-opacity: 1; --tw-border-opacity: 1;
border-color: rgba(var(--color-primary-600), var(--tw-border-opacity)); border-color: rgba(var(--color-primary-600), var(--tw-border-opacity));
} }
.dark .dark\:hover\:\!bg-primary-700:hover { :is(.dark .dark\:hover\:\!bg-primary-700:hover) {
--tw-bg-opacity: 1 !important; --tw-bg-opacity: 1 !important;
background-color: rgba(var(--color-primary-700), var(--tw-bg-opacity)) !important; background-color: rgba(var(--color-primary-700), var(--tw-bg-opacity)) !important;
} }
.dark .dark\:hover\:bg-primary-400:hover { :is(.dark .dark\:hover\:bg-primary-400:hover) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-400), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-400), var(--tw-bg-opacity));
} }
.dark .dark\:hover\:bg-primary-900:hover { :is(.dark .dark\:hover\:bg-primary-900:hover) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity));
} }
.dark .dark\:hover\:text-neutral-800:hover { :is(.dark .dark\:hover\:text-neutral-800:hover) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-800), var(--tw-text-opacity)); color: rgba(var(--color-neutral-800), var(--tw-text-opacity));
} }
.dark .dark\:hover\:text-primary-400:hover { :is(.dark .dark\:hover\:text-primary-400:hover) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-400), var(--tw-text-opacity)); color: rgba(var(--color-primary-400), var(--tw-text-opacity));
} }
.dark .dark\:focus\:bg-primary-900:focus { :is(.dark .dark\:focus\:bg-primary-900:focus) {
--tw-bg-opacity: 1; --tw-bg-opacity: 1;
background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity)); background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity));
} }
.dark .group:hover .dark\:group-hover\:text-neutral-700 { :is(.dark .group:hover .dark\:group-hover\:text-neutral-700) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-700), var(--tw-text-opacity)); color: rgba(var(--color-neutral-700), var(--tw-text-opacity));
} }
.dark .group:hover .dark\:group-hover\:text-primary-400 { :is(.dark .group:hover .dark\:group-hover\:text-primary-400) {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-primary-400), var(--tw-text-opacity)); color: rgba(var(--color-primary-400), var(--tw-text-opacity));
} }
@ -2905,6 +2879,11 @@ body:has(#menu-controller:checked) {
margin-bottom: 0px; margin-bottom: 0px;
} }
.sm\:me-7 {
-webkit-margin-end: 1.75rem;
margin-inline-end: 1.75rem;
}
.sm\:flex { .sm\:flex {
display: flex; display: flex;
} }
@ -2951,8 +2930,9 @@ body:has(#menu-controller:checked) {
padding-bottom: 2.5rem; padding-bottom: 2.5rem;
} }
.sm\:pr-6 { .sm\:pe-6 {
padding-right: 1.5rem; -webkit-padding-end: 1.5rem;
padding-inline-end: 1.5rem;
} }
.sm\:pt-10 { .sm\:pt-10 {
@ -2964,20 +2944,14 @@ body:has(#menu-controller:checked) {
line-height: 1.75rem; line-height: 1.75rem;
} }
[dir="ltr"] .ltr\:sm\:mr-7 { .sm\:last\:me-0:last-child {
margin-right: 1.75rem; -webkit-margin-end: 0px;
margin-inline-end: 0px;
} }
[dir="ltr"] .ltr\:sm\:last\:mr-0:last-child { .sm\:last\:me-0\.5:last-child {
margin-right: 0px; -webkit-margin-end: 0.125rem;
} margin-inline-end: 0.125rem;
[dir="rtl"] .rtl\:sm\:ml-7 {
margin-left: 1.75rem;
}
[dir="rtl"] .rtl\:sm\:last\:ml-0:last-child {
margin-left: 0px;
} }
} }
@ -3034,12 +3008,9 @@ body:has(#menu-controller:checked) {
padding-right: 8rem; padding-right: 8rem;
} }
[dir="ltr"] .ltr\:lg\:pl-8 { .lg\:ps-8 {
padding-left: 2rem; -webkit-padding-start: 2rem;
} padding-inline-start: 2rem;
[dir="rtl"] .rtl\:lg\:pr-8 {
padding-right: 2rem;
} }
} }

View File

@ -1,4 +1,4 @@
/*! Congo v2.5.4 | MIT License | https://github.com/jpanther/congo */ /*! Congo v2.6.0 | MIT License | https://github.com/jpanther/congo */
@tailwind base; @tailwind base;
@tailwind components; @tailwind components;
@ -61,10 +61,10 @@ body:has(#menu-controller:checked) {
/* Table of Contents */ /* Table of Contents */
.toc ul, .toc ul,
.toc li { .toc li {
@apply px-0 leading-snug list-none; @apply list-none px-0 leading-snug;
} }
.toc ul ul { .toc ul ul {
@apply ltr:pl-4 rtl:pr-4; @apply ps-4;
} }
.toc a { .toc a {
@apply font-normal text-neutral-700 dark:text-neutral-400; @apply font-normal text-neutral-700 dark:text-neutral-400;
@ -84,7 +84,7 @@ body:has(#menu-controller:checked) {
@apply visible; @apply visible;
} }
.copy-button { .copy-button {
@apply absolute top-0 right-0 z-10 invisible w-20 py-1 font-mono text-sm cursor-pointer whitespace-nowrap rounded-bl-md rounded-tr-md bg-neutral-200 text-neutral-700 opacity-90 dark:bg-neutral-600 dark:text-neutral-200; @apply invisible absolute right-0 top-0 z-10 w-20 cursor-pointer whitespace-nowrap rounded-bl-md rounded-tr-md bg-neutral-200 py-1 font-mono text-sm text-neutral-700 opacity-90 dark:bg-neutral-600 dark:text-neutral-200;
} }
.copy-button:hover, .copy-button:hover,
.copy-button:focus, .copy-button:focus,
@ -99,20 +99,20 @@ body:has(#menu-controller:checked) {
/* -- Chroma Highlight -- */ /* -- Chroma Highlight -- */
/* Background */ /* Background */
.chroma { .chroma {
@apply py-3 rounded-md bg-neutral-50 text-neutral-700 dark:bg-neutral-700 dark:text-neutral-200; @apply rounded-md bg-neutral-50 py-3 text-neutral-700 dark:bg-neutral-700 dark:text-neutral-200;
} }
.chroma pre { .chroma pre {
@apply p-0 m-0; @apply m-0 p-0;
} }
/* LineTable */ /* LineTable */
.chroma .lntable { .chroma .lntable {
@apply block w-auto m-0 overflow-auto text-base; @apply m-0 block w-auto overflow-auto text-base;
} }
/* LineNumbersTable */ /* LineNumbersTable */
/* LineNumbers */ /* LineNumbers */
.chroma .lnt, .chroma .lnt,
.chroma .ln { .chroma .ln {
@apply px-2 mr-2 text-neutral-600 dark:text-neutral-300; @apply mr-2 px-2 text-neutral-600 dark:text-neutral-300;
} }
.chroma .lntd { .chroma .lntd {
@apply p-0 align-top; @apply p-0 align-top;
@ -274,7 +274,7 @@ body:has(#menu-controller:checked) {
} }
/* CommentHashbang */ /* CommentHashbang */
.chroma .ch { .chroma .ch {
@apply italic font-semibold text-neutral-500 dark:text-neutral-400; @apply font-semibold italic text-neutral-500 dark:text-neutral-400;
} }
/* GenericEmph */ /* GenericEmph */
.chroma .ge { .chroma .ge {

View File

@ -140,7 +140,7 @@ function executeQuery(term) {
<a class="flex items-center px-3 py-2 rounded-md appearance-none bg-neutral-100 dark:bg-neutral-700 focus:bg-primary-100 hover:bg-primary-100 dark:hover:bg-primary-900 dark:focus:bg-primary-900 focus:outline-dotted focus:outline-transparent focus:outline-2" href="${value.item.permalink}" tabindex="0"> <a class="flex items-center px-3 py-2 rounded-md appearance-none bg-neutral-100 dark:bg-neutral-700 focus:bg-primary-100 hover:bg-primary-100 dark:hover:bg-primary-900 dark:focus:bg-primary-900 focus:outline-dotted focus:outline-transparent focus:outline-2" href="${value.item.permalink}" tabindex="0">
<div class="grow"> <div class="grow">
<div class="-mb-1 text-lg font-bold">${value.item.title}</div> <div class="-mb-1 text-lg font-bold">${value.item.title}</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">${value.item.section}<span class="px-2 text-primary-500">&middot;</span>${value.item.date}</span></div> <div class="text-sm text-neutral-500 dark:text-neutral-400">${value.item.section}${value.item.date == null ? '' : `<span class="px-2 text-primary-500">&middot;</span>${value.item.date}</span>`}</div>
<div class="text-sm italic">${value.item.summary}</div> <div class="text-sm italic">${value.item.summary}</div>
</div> </div>
<div class="ml-2 ltr:block rtl:hidden text-neutral-500">&rarr;</div> <div class="ml-2 ltr:block rtl:hidden text-neutral-500">&rarr;</div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,18 +1,19 @@
languageCode = "en" languageCode = "en"
languageName = "English" languageName = "English"
displayName = "EN"
isoCode = "en"
weight = 1 weight = 1
rtl = false
title = "Congo" title = "Congo"
# description = "My awesome website"
# copyright = "Copy, _right?_ :thinking_face:" # copyright = "Copy, _right?_ :thinking_face:"
dateFormat = "2 January 2006"
[params] [params]
isoCode = "en"
displayName = "EN"
rtl = false
dateFormat = "2 January 2006"
# mainSections = ["section1", "section2"] # mainSections = ["section1", "section2"]
# description = "My awesome website"
[author] [author]
# name = "Your name here" # name = "Your name here"

View File

@ -13,10 +13,12 @@ enableSearch = false
enableCodeCopy = false enableCodeCopy = false
# robots = "" # robots = ""
fingerprintAlgorithm = "sha256"
[header] [header]
layout = "basic" # valid options: basic, hamburger, hybrid, custom layout = "basic" # valid options: basic, hamburger, hybrid, custom
# logo = "img/logo.jpg" # logo = "img/logo.jpg"
# logoDark = "img/dark-logo.jpg"
showTitle = true showTitle = true
[footer] [footer]

View File

@ -1,18 +1,19 @@
languageCode = "en-au" languageCode = "en-au"
languageName = "English (Australia)" languageName = "English (Australia)"
displayName = ":flag-au:"
isoCode = "en-AU"
weight = 1 weight = 1
rtl = false
title = "Congo" title = "Congo"
description = "A powerful, lightweight theme for Hugo built with Tailwind CSS."
copyright = "&copy; 2023 Congo contributors" copyright = "&copy; 2023 Congo contributors"
dateFormat = "2 January 2006"
[params] [params]
isoCode = "en-AU"
displayName = ":flag-au:"
rtl = false
dateFormat = "2 January 2006"
mainSections = ["samples"] mainSections = ["samples"]
description = "A powerful, lightweight theme for Hugo built with Tailwind CSS."
[author] [author]
name = "Congo" name = "Congo"

View File

@ -13,10 +13,12 @@ enableSearch = true
enableCodeCopy = true enableCodeCopy = true
# robots = "" # robots = ""
fingerprintAlgorithm = "sha256"
[header] [header]
layout = "basic" # valid options: basic, hamburger, hybrid, custom layout = "basic" # valid options: basic, hamburger, hybrid, custom
# logo = "img/logo.jpg" # logo = "img/logo.jpg"
# logoDark = "img/dark-logo.jpg"
showTitle = true showTitle = true
[footer] [footer]

View File

@ -10,7 +10,7 @@ A powerful, lightweight theme for Hugo built with Tailwind CSS.
This is a demo site built entirely using Congo. It also contains a complete set of [theme documentation]({{< ref "docs" >}}). Congo is flexible and is great for both static page-based content (like this demo) or a traditional blog with a feed of recent posts. This is a demo site built entirely using Congo. It also contains a complete set of [theme documentation]({{< ref "docs" >}}). Congo is flexible and is great for both static page-based content (like this demo) or a traditional blog with a feed of recent posts.
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900"> <div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
<span class="flex items-center ltr:pr-3 rtl:pl-3 text-primary-400"> <span class="flex items-center pe-3 text-primary-400">
{{< icon "triangle-exclamation" >}} {{< icon "triangle-exclamation" >}}
</span> </span>
<span class="flex items-center justify-between grow dark:text-neutral-300"> <span class="flex items-center justify-between grow dark:text-neutral-300">

View File

@ -51,9 +51,11 @@ The theme currently supports the following languages out of the box:
| Language | Code | | Language | Code |
| --------------------------------------- | ------- | | --------------------------------------- | ------- |
| :gb: **English (default)** | `en` | | :gb: **English (default)** | `en` |
| :egypt: Arabic | `ar` |
| :bangladesh: Bengali | `bn` | | :bangladesh: Bengali | `bn` |
| :cn: Chinese - Simplified (China) | `zh-cn` | | :cn: Chinese - Simplified (China) | `zh-cn` |
| :taiwan: Chinese - Traditional (Taiwan) | `zh-tw` | | :taiwan: Chinese - Traditional (Taiwan) | `zh-tw` |
| :flag-cz: Czech | `cs` |
| :netherlands: Dutch | `nl` | | :netherlands: Dutch | `nl` |
| :finland: Finnish | `fi` | | :finland: Finnish | `fi` |
| :fr: French | `fr` | | :fr: French | `fr` |
@ -68,6 +70,7 @@ The theme currently supports the following languages out of the box:
| :portugal: Portuguese (Portugal) | `pt-pt` | | :portugal: Portuguese (Portugal) | `pt-pt` |
| :romania: Romanian | `ro` | | :romania: Romanian | `ro` |
| :ru: Russian | `ru` | | :ru: Russian | `ru` |
| :slovakia: Slovak | `sk` |
| :es: Spanish (Spain) | `es` | | :es: Spanish (Spain) | `es` |
| :tr: Turkish | `tr` | | :tr: Turkish | `tr` |
@ -86,17 +89,17 @@ The default file can be used as a template to create additional languages, or re
<!-- prettier-ignore-start --> <!-- prettier-ignore-start -->
|Name|Default|Description| |Name|Default|Description|
|---|---|---| |---|---|---|
|`languageCode`|`"en"`|The Hugo language code for this file. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-au`) and should match the language code in the filename. Hugo expects this value to always be in lowercase. For proper HTML compliance, set the `isoCode` parameter which is case-sensitive.| |`languageCode`|`"en"`|The Hugo language code for this file. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-au`) and should match the language code in the filename. Hugo expects this value to always be in lowercase. For proper HTML compliance, set the `params.isoCode` parameter which is case-sensitive.|
|`languageName`|`"English"`|The name of the language.| |`languageName`|`"English"`|The name of the language.|
|`displayName`|`"EN"`|The name used when the language appears on the website.|
|`isoCode`|`"en"`|The ISO language code for HTML metadata purposes. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-AU`).|
|`weight`|`1`|The weight determines the order of languages when building multilingual sites.| |`weight`|`1`|The weight determines the order of languages when building multilingual sites.|
|`rtl`|`false`|Whether or not this is a RTL language. Set to `true` to reflow content from right-to-left. Congo fully supports using RTL and LTR languages at the same time and will dynamically adjust to both.|
|`title`|`"Congo"`|The title of the website. This will be displayed in the site header and footer.| |`title`|`"Congo"`|The title of the website. This will be displayed in the site header and footer.|
|`description`|_Not set_|The website description. This will be used in the site metadata.|
|`copyright`|_Not set_|A Markdown string containing the copyright message to be displayed in the site footer. If none is provided, Congo will automatically generate a copyright string using the site `title`.| |`copyright`|_Not set_|A Markdown string containing the copyright message to be displayed in the site footer. If none is provided, Congo will automatically generate a copyright string using the site `title`.|
|`dateFormat`|`"2 January 2006"`|How dates are formatted in this language. Refer to the [Hugo docs](https://gohugo.io/functions/format/#gos-layout-string) for acceptable formats.| |`params.isoCode`|`"en"`|The ISO language code for HTML metadata purposes. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-AU`).|
|`params.displayName`|`"EN"`|The name used when the language appears on the website.|
|`params.rtl`|`false`|Whether or not this is a RTL language. Set to `true` to reflow content from right-to-left. Congo fully supports using RTL and LTR languages at the same time and will dynamically adjust to both.|
|`params.dateFormat`|`"2 January 2006"`|How dates are formatted in this language. Refer to the [Hugo docs](https://gohugo.io/functions/format/#gos-layout-string) for acceptable formats.|
|`params.mainSections`|_Not set_|The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used.| |`params.mainSections`|_Not set_|The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used.|
|`params.description`|_Not set_|The website description. This will be used in the site metadata.|
|`author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.| |`author.name`|_Not set_|The author's name. This will be displayed in article footers, and on the homepage when the profile layout is used.|
|`author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.| |`author.image`|_Not set_|Path to the image file of the author. The image should be a 1:1 aspect ratio and placed in the site's `assets/` folder.|
|`author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.| |`author.headline`|_Not set_|A Markdown string containing the author's headline. It will be displayed on the profile homepage under the author's name.|
@ -127,8 +130,10 @@ Many of the article defaults here can be overridden on a per article basis by sp
|`enableSearch`|`false`|Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly.| |`enableSearch`|`false`|Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly.|
|`enableCodeCopy`|`false`|Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below.| |`enableCodeCopy`|`false`|Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below.|
|`robots`|_Not set_|String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values.| |`robots`|_Not set_|String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values.|
|`fingerprintAlgorithm`|`"sha256"`|String that indicates which hashing algorithm is used when fingerprinting assets. Valid options include `md5`, `sha256`, `sha384` and `sha512`.|
|`header.layout`|`"basic"`|The layout of the page header and menu. Valid values are `basic`, `hamburger`, `hybrid` or `custom`. When set to `custom`, you must provide your own layout by creating a `/layouts/partials/header/custom.html` file.| |`header.layout`|`"basic"`|The layout of the page header and menu. Valid values are `basic`, `hamburger`, `hybrid` or `custom`. When set to `custom`, you must provide your own layout by creating a `/layouts/partials/header/custom.html` file.|
|`header.logo`|_Not set_|The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions.| |`header.logo`|_Not set_|The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions.|
|`header.logoDark`|_Not set_|As per the `header.logo` parameter, however this image is used whenever dark mode is active.|
|`header.showTitle`|`true`|Whether the site title is displayed in the header.| |`header.showTitle`|`true`|Whether the site title is displayed in the header.|
|`footer.showCopyright`|`true`|Whether or not to show the copyright string in the site footer. Note that the string itself can be customised using the `copyright` parameter in the [languages configuration](#language-and-i18n).| |`footer.showCopyright`|`true`|Whether or not to show the copyright string in the site footer. Note that the string itself can be customised using the `copyright` parameter in the [languages configuration](#language-and-i18n).|
|`footer.showThemeAttribution`|`true`|Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page).| |`footer.showThemeAttribution`|`true`|Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page).|

View File

@ -96,15 +96,15 @@ Then in the root of your site repository, create a `netlify.toml` file:
[build.environment] [build.environment]
NODE_ENV = "production" NODE_ENV = "production"
GO_VERSION = "1.19" GO_VERSION = "1.20"
TZ = "UTC" # Set to preferred timezone TZ = "UTC" # Set to preferred timezone
[context.production.environment] [context.production.environment]
HUGO_VERSION = "0.110.0" HUGO_VERSION = "0.112.3"
HUGO_ENV = "production" HUGO_ENV = "production"
[context.deploy-preview.environment] [context.deploy-preview.environment]
HUGO_VERSION = "0.110.0" HUGO_VERSION = "0.112.3"
``` ```
This configuration assumes you are deploying Congo as a Hugo module. If you have installed the theme using another method, change the build command to simply `hugo --gc --minify -b $URL`. This configuration assumes you are deploying Congo as a Hugo module. If you have installed the theme using another method, change the build command to simply `hugo --gc --minify -b $URL`.

View File

@ -17,48 +17,53 @@ Real websites that have been built using Congo.
The list below is just a handful of the websites that are built using the Congo theme. Check them out to discover some great exampels of what the theme can do. The list below is just a handful of the websites that are built using the Congo theme. Check them out to discover some great exampels of what the theme can do.
| Website | Details | | Website | Details |
| ---------------------------------------------------------------------- | ----------------------------- | | ---------------------------------------------------------------------- | ------------------------------- |
| [jamespanther.com](https://jamespanther.com) | Personal site - Theme author | | [jamespanther.com](https://jamespanther.com) | Personal site - Theme author |
| [antoinesoetewey.com](https://antoinesoetewey.com/) | Personal site | | [antoinesoetewey.com](https://antoinesoetewey.com/) | Personal site |
| [leif.io](https://leif.io/) | Personal site and Tech blog | | [leif.io](https://leif.io/) | Personal site and Tech blog |
| [dr460nf1r3.org](https://dr460nf1r3.org/) | Personal site and Blog | | [dr460nf1r3.org](https://dr460nf1r3.org/) | Personal site and Blog |
| [OCram85.com](https://ocram85.com) | Personal site and Blog | | [OCram85.com](https://ocram85.com) | Personal site and Blog |
| [mackiser.github.io](https://mackiser.github.io) | Personal site and Blog | | [mackiser.github.io](https://mackiser.github.io) | Personal site and Blog |
| [jamesmillner.dev](https://jamesmillner.dev) | Personal site and Blog | | [jamesmillner.dev](https://jamesmillner.dev) | Personal site and Blog |
| [jeremic.ca](https://jeremic.ca) | Personal site and Blog | | [jeremic.ca](https://jeremic.ca) | Personal site and Blog |
| [rohn.tech](https://rohn.tech) | Personal site | | [rohn.tech](https://rohn.tech) | Personal site |
| [klimafreundlicher-kochen.de](https://www.klimafreundlicher-kochen.de) | Food blog (in German) | | [klimafreundlicher-kochen.de](https://www.klimafreundlicher-kochen.de) | Food blog (in German) |
| [seyslee.github.io](https://seyslee.github.io) | Tech blog (in Korean) | | [seyslee.github.io](https://seyslee.github.io) | Tech blog (in Korean) |
| [datanalyze.be](https://datanalyze.be/) | Professional site | | [datanalyze.be](https://datanalyze.be/) | Professional site |
| [sneaky-potato.github.io](https://sneaky-potato.github.io/) | Professional site and Blog | | [sneaky-potato.github.io](https://sneaky-potato.github.io/) | Professional site and Blog |
| [kelset.dev](https://kelset.dev) | Personal site | | [kelset.dev](https://kelset.dev) | Personal site |
| [docteurelsavancaster.com](https://docteurelsavancaster.com/) | Professional site | | [docteurelsavancaster.com](https://docteurelsavancaster.com/) | Professional site |
| [ruihao-li.github.io](https://ruihao-li.github.io/) | Personal site and Blog | | [ruihao-li.github.io](https://ruihao-li.github.io/) | Personal site and Blog |
| [phalanxhead.dev](https://phalanxhead.dev) | Personal site and Blog | | [phalanxhead.dev](https://phalanxhead.dev) | Personal site and Blog |
| [Bible Multi Apps](https://hotlittlewhitedog.gitlab.io/biblemulti) | Personal site and Blog | | [Bible Multi Apps](https://hotlittlewhitedog.gitlab.io/biblemulti) | Personal site and Blog |
| [Jh123x](https://jh123x.com/) | Personal site and Blog | | [Jh123x](https://jh123x.com/) | Personal site and Blog |
| [sforzando LLC. and Inc.](https://sfz.dev/) | Corporate site and Blog | | [sforzando LLC. and Inc.](https://sfz.dev/) | Corporate site and Blog |
| [aidansmith.me](https://aidansmith.me/) | Personal Site | | [aidansmith.me](https://aidansmith.me/) | Personal Site |
| [nunocoracao.com](https://nunocoracao.com) | Personal site and Blog | | [nunocoracao.com](https://nunocoracao.com) | Personal site and Blog |
| [szegedkungfu.hu](https://balance-se.github.io/) | Sports association site | | [szegedkungfu.hu](https://balance-se.github.io/) | Sports association site |
| [jcransom.com](https://www.jcransom.com/) | Personal Site and Blog | | [jcransom.com](https://www.jcransom.com/) | Personal Site and Blog |
| [cbrincoveanu.com](https://www.cbrincoveanu.com/) | Personal site and Blog | | [cbrincoveanu.com](https://www.cbrincoveanu.com/) | Personal site and Blog |
| [medical-humanities](https://medical-humanities.org) | Academic site | | [medical-humanities](https://medical-humanities.org) | Academic site |
| [boyersnet.com](https://boyersnet.com) | Personal site and Blog | | [boyersnet.com](https://boyersnet.com) | Personal site and Blog |
| [major.io](https://major.io) | Personal site and Blog | | [major.io](https://major.io) | Personal site and Blog |
| [bayas.dev](https://bayas.dev) | Personal site and Blog | | [bayas.dev](https://bayas.dev) | Personal site and Blog |
| [顾宇的博客](https://www.guyu.me/) | Personal Blog (in Chinese) | | [顾宇的博客](https://www.guyu.me/) | Personal Blog (in Chinese) |
| [cgutierr-zgz.github.io](https://cgutierr-zgz.github.io/) | Personal site and Tech blog | | [cgutierr-zgz.github.io](https://cgutierr-zgz.github.io/) | Personal site and Tech blog |
| [adam.sr](https://adam.sr) | Personal site and Blog | | [adam.sr](https://adam.sr) | Personal site and Blog |
| [datadi.murgi.org](https://datadi.murgi.org) | Personal site and Blog | | [datadi.murgi.org](https://datadi.murgi.org) | Personal site and Blog |
| [shim.web.id](https://shim.web.id) | Personal Blog (in Indonesian) | | [shim.web.id](https://shim.web.id) | Personal Blog (in Indonesian) |
| [kpavlov.me](https://kpavlov.me) | Personal site and Blog | | [kpavlov.me](https://kpavlov.me) | Personal site and Blog |
| [pfisterer.dev](https://pfisterer.dev) | Personal site and Blog | | [pfisterer.dev](https://pfisterer.dev) | Personal site and Blog |
| [davidrothera.me](https://davidrothera.me) | Personal site and Blog | | [davidrothera.me](https://davidrothera.me) | Personal site and Blog |
| [ethantroy.com](https://ethantroy.com) | Personal Site and Blog | | [ethantroy.com](https://ethantroy.com) | Personal Site and Blog |
| [sug.bitprism.net](https://sug.bitprism.net) | Personal Site and Blog | | [sug.bitprism.net](https://sug.bitprism.net) | Personal Site and Blog |
| [arjuns.me](https://arjuns.me) | Personal Site and Blog | | [arjuns.me](https://arjuns.me) | Personal Site and Blog |
| [statistix.be](https://statistix.be/) | Professional site | | [statistix.be](https://statistix.be/) | Professional site |
| [sathyabh.at](https://sathyabh.at) | Personal Site and Blog |
| [leonidasv.com](https://leonidasv.com/) | Personal site and Blog |
| [andrew-jones.com](https://andrew-jones.com/) | Personal site and tech blog |
| [nikita.computer](https://nikita.computer/) | Personal site and tech blog |
| [blog.dejavu.moe](https://blog.dejavu.moe/) | Personal blog and weekly issues |
**Congo user?** To add your site to this list, [submit a pull request](https://github.com/jpanther/congo/blob/dev/exampleSite/content/users/index.md). **Congo user?** To add your site to this list, [submit a pull request](https://github.com/jpanther/congo/blob/dev/exampleSite/content/users/index.md).

View File

@ -1,14 +1,14 @@
<div class="flex justify-between"> <div class="flex justify-between">
<span <span
class="w-full py-6 mr-2 rounded-md" class="mr-2 w-full rounded-md py-6"
{{ with .Get 0 }}style="background-color: {{ . }}"{{ end }} {{ with .Get 0 }}style="background-color: {{ . }}"{{ end }}
></span> ></span>
<span <span
class="w-full py-6 mr-2 rounded-md" class="mr-2 w-full rounded-md py-6"
{{ with .Get 1 }}style="background-color: {{ . }}"{{ end }} {{ with .Get 1 }}style="background-color: {{ . }}"{{ end }}
></span> ></span>
<span <span
class="w-full py-6 mr-2 rounded-md" class="mr-2 w-full rounded-md py-6"
{{ with .Get 2 }}style="background-color: {{ . }}"{{ end }} {{ with .Get 2 }}style="background-color: {{ . }}"{{ end }}
></span> ></span>
</div> </div>

56
i18n/ar.yaml 100644
View File

@ -0,0 +1,56 @@
article:
anchor_label: "رابط الصفحة"
date: "{{ .Date }}"
date_updated: "تاريخ التحديث: {{ .Date }}"
draft: "مسودة"
edit_title: "تعديل المحتوى"
reading_time:
one: "دقيقة واحدة"
other: "{{ .Count }} من الدقائق"
reading_time_title: "وقت القراءة"
table_of_contents: "قائمة المحتويات"
word_count:
one: "كلمة واحدة"
other: "{{ .Count }} من الكلمات"
author:
byline_title: "الكاتب"
code:
copy: "نسخ"
copied: "تم النسخ"
error:
404_title: "لم يتم العثور على الصفحة :confused:"
404_error: "خطأ 404"
404_description: "يبدو بأن الصفحة التي تحاول الوصول إليها غير موجودة."
footer:
dark_appearance: "حوّل إلى النمط الداكن"
light_appearance: "حوّل إلى النمط الفاتح"
powered_by: "مُمكن باستعمال {{ .Hugo }} &amp; {{ .Congo }}"
list:
externalurl_title: "رابط إلى صفحة خارجية"
no_articles: "لا يوجد أي مقالات هنا حتى الآن."
nav:
scroll_to_top_title: "اذهب إلى أعلى"
skip_to_main: "التخطي إلى المحتوى الرئيسي"
search:
open_button_title: "بحث (/)"
close_button_title: "إغلاق (Esc)"
input_placeholder: "بحث"
sharing:
email: "إرسال بواسطة البريد الإلكتروني"
facebook: "مشاركة على فيسبوك"
linkedin: "مشاركة على لينكد إن"
mastodon: "نشر تووت على ماستادون"
pinterest: "تثبيت على بينتريست"
reddit: "نشر على ريديت"
twitter: "تغريد على تويتر"
shortcode:
recent_articles: "حديثًا"

56
i18n/cs.yaml 100644
View File

@ -0,0 +1,56 @@
article:
anchor_label: "Kotva"
date: "{{ .Date }}"
date_updated: "Aktualizováno: {{ .Date }}"
draft: "Koncept"
edit_title: "Upravit obsah"
reading_time:
one: "{{ .Count }} min"
other: "{{ .Count }} min"
reading_time_title: "Doba čtení"
table_of_contents: "Obsah"
word_count:
one: "{{ .Count }} slovo"
other: "{{ .Count }} slova"
author:
byline_title: "Autor"
code:
copy: "Kopírovat"
copied: "Zkopírováno"
error:
404_title: "Stránka nenalezena :confused:"
404_error: "Chyba 404"
404_description: "Zdá se, že požadovaná stránka neexistuje."
footer:
dark_appearance: "Přepněte na tmavý vzhled"
light_appearance: "Přepněte na světlý vzhled"
powered_by: "Poháněno {{ .Hugo }} &amp; {{ .Congo }}"
list:
externalurl_title: "Odkaz na externí stránky"
no_articles: "Zde zatím nejsou k dispozici žádné články."
nav:
scroll_to_top_title: "Přejděte nahoru"
skip_to_main: "Přejít na hlavní obsah"
search:
open_button_title: "Vyhledávání (/)"
close_button_title: "Zavřít (Esc)"
input_placeholder: "Hledej"
sharing:
email: "Odeslat e-mailem"
facebook: "Sdílet na Facebook"
linkedin: "Sdílet na LinkedIn"
mastodon: "Toot na Mastodon"
pinterest: "Pin na Pinterest"
reddit: "Odeslat na Reddit"
twitter: "Tweet na Twitter"
shortcode:
recent_articles: "Nedávné"

View File

@ -47,7 +47,7 @@ sharing:
email: "Verstuur via email" email: "Verstuur via email"
facebook: "Deel op Facebook" facebook: "Deel op Facebook"
linkedin: "Deel op LinkedIn" linkedin: "Deel op LinkedIn"
# mastodon: "Toot on Mastodon" mastodon: "Toot met Mastodon"
pinterest: "Pin op Pinterest" pinterest: "Pin op Pinterest"
reddit: "Verzend naar Reddit" reddit: "Verzend naar Reddit"
twitter: "Tweet op Twitter" twitter: "Tweet op Twitter"

56
i18n/sk.yaml 100644
View File

@ -0,0 +1,56 @@
article:
anchor_label: "Kotva"
date: "{{ .Date }}"
date_updated: "Aktualizované: {{ .Date }}"
draft: "Koncept"
edit_title: "Upraviť obsah"
reading_time:
one: "{{ .Count }} min"
other: "{{ .Count }} min"
reading_time_title: "Čas čítania"
table_of_contents: "Obsah"
word_count:
one: "{{ .Count }} slovo"
other: "{{ .Count }} slov"
author:
byline_title: "Autor"
code:
copy: "Kopírovať"
copied: "Skopírované"
error:
404_title: "Stránka nenájdená :confused:"
404_error: "Chyba 404"
404_description: "Zdá sa, že požadovaná stránka neexistuje."
footer:
dark_appearance: "Prepnúť na tmavý vzhľad."
light_appearance: "Prepnúť na svetlý vzhľad."
powered_by: "Používa {{ .Hugo }} &amp; {{ .Congo }}"
list:
externalurl_title: "Odkaz na externú stránku"
no_articles: "Zatiaľ tu nie sú žiadne články."
nav:
scroll_to_top_title: "Prejdite na začiatok"
skip_to_main: "Preskočiť na hlavný obsah"
search:
open_button_title: "Vyhľadávanie (/)"
close_button_title: "Zavrieť (Esc)"
input_placeholder: "Hľadaj"
sharing:
email: "Odoslať e-mailom"
facebook: "Zdieľaj na Facebooku"
linkedin: "Zdieľaj na LinkedIn"
mastodon: "Toot na Mastodon"
pinterest: "Pin na Pinterest"
reddit: "Odoslať na Reddit"
twitter: "Tweet na Twitteri"
shortcode:
recent_articles: "Nedávne"

View File

@ -1 +1 @@
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="relative group">{{ .Text | safeHTML }} {{ if .Page.Params.showHeadingAnchors | default (.Page.Site.Params.article.showHeadingAnchors | default true) }}<span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#{{ .Anchor | safeURL }}" aria-label="{{ i18n "article.anchor_label" }}">#</a></span>{{ end }}</h{{ .Level }}> <h{{ .Level }} id="{{ .Anchor | safeURL }}" class="relative group">{{ .Text | safeHTML }} {{ if .Page.Params.showHeadingAnchors | default (.Page.Site.Params.article.showHeadingAnchors | default true) }}<span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#{{ .Anchor | safeURL }}" aria-label="{{ i18n "article.anchor_label" }}">#</a></span>{{ end }}</h{{ .Level }}>

View File

@ -24,10 +24,10 @@
src="{{ .RelPermalink }}" src="{{ .RelPermalink }}"
{{ else }} {{ else }}
srcset=" srcset="
{{ (.Resize "330x").RelPermalink }} 330w, {{- (.Resize "330x").RelPermalink }} 330w,
{{ (.Resize "660x").RelPermalink }} 660w, {{- (.Resize "660x").RelPermalink }} 660w,
{{ (.Resize "1024x").RelPermalink }} 1024w, {{- (.Resize "1024x").RelPermalink }} 1024w,
{{ (.Resize "1320x").RelPermalink }} 2x" {{- (.Resize "1320x").RelPermalink }} 2x"
src="{{ (.Resize "660x").RelPermalink }}" src="{{ (.Resize "660x").RelPermalink }}"
{{ end }} {{ end }}
{{ end }} {{ end }}

View File

@ -22,8 +22,7 @@
<a <a
class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600" class="px-3 py-1 text-sm -translate-y-8 rounded-b-lg bg-primary-200 focus:translate-y-0 dark:bg-neutral-600"
href="#main-content" href="#main-content"
><span class="font-bold text-primary-600 ltr:pr-2 rtl:pl-2 dark:text-primary-400" ><span class="font-bold pe-2 text-primary-600 dark:text-primary-400">&darr;</span
>&darr;</span
>{{ i18n "nav.skip_to_main" }}</a >{{ i18n "nav.skip_to_main" }}</a
> >
</div> </div>
@ -37,9 +36,7 @@
<main id="main-content" class="grow"> <main id="main-content" class="grow">
{{ block "main" . }}{{ end }} {{ block "main" . }}{{ end }}
{{ if and (.Site.Params.footer.showScrollToTop | default true) (gt .WordCount 200) }} {{ if and (.Site.Params.footer.showScrollToTop | default true) (gt .WordCount 200) }}
<div <div class="pointer-events-none absolute bottom-0 end-0 top-[100vh] w-12">
class="pointer-events-none absolute top-[100vh] bottom-0 w-12 ltr:right-0 rtl:left-0"
>
<a <a
href="#the-top" href="#the-top"
class="pointer-events-auto sticky top-[calc(100vh-5.5rem)] flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 backdrop-blur hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400" class="pointer-events-auto sticky top-[calc(100vh-5.5rem)] flex h-12 w-12 items-center justify-center rounded-full bg-neutral/50 text-xl text-neutral-700 backdrop-blur hover:text-primary-600 dark:bg-neutral-800/50 dark:text-neutral dark:hover:text-primary-400"

View File

@ -1,8 +1,9 @@
{{- $index := slice -}} {{- $index := slice -}}
{{- range .Site.Pages -}} {{- range .Site.Pages -}}
{{- $section := .Site.GetPage "section" .Section -}} {{- $section := .Site.GetPage "section" .Section -}}
{{- $showDate := .Params.showDate | default .Site.Params.article.showDate -}}
{{- $index = $index | append (dict {{- $index = $index | append (dict
"date" (.Date | time.Format (.Site.Language.Params.dateFormat | default ":date_long")) "date" (cond (and .IsPage $showDate) (.Date | time.Format (site.Params.dateFormat | default ":date_long")) nil)
"title" (.Title | emojify | safeJS) "title" (.Title | emojify | safeJS)
"section" ($section.Title | emojify | safeJS) "section" ($section.Title | emojify | safeJS)
"summary" (.Summary | emojify | safeJS) "summary" (.Summary | emojify | safeJS)

View File

@ -14,8 +14,8 @@
{{- end }} prose flex max-w-full flex-col dark:prose-invert lg:flex-row" {{- end }} prose flex max-w-full flex-col dark:prose-invert lg:flex-row"
> >
{{ if $toc }} {{ if $toc }}
<div class="order-first px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8"> <div class="order-first px-0 lg:order-last lg:max-w-xs lg:ps-8">
<div class="toc ltr:pl-5 rtl:pr-5 lg:sticky lg:top-10"> <div class="toc ps-5 lg:sticky lg:top-10">
{{ partial "toc.html" . }} {{ partial "toc.html" . }}
</div> </div>
</div> </div>

View File

@ -23,10 +23,11 @@
{{ if lt .Width 660 }} {{ if lt .Width 660 }}
src="{{ .RelPermalink }}" src="{{ .RelPermalink }}"
{{ else }} {{ else }}
srcset=" {{ (.Resize "330x").RelPermalink }} 330w, srcset="
{{ (.Resize "660x").RelPermalink }} 660w, {{ (.Resize "1024x").RelPermalink }} {{- (.Resize "330x").RelPermalink }} 330w,
1024w, {{ (.Resize "1320x").RelPermalink }} 2x" {{- (.Resize "660x").RelPermalink }} 660w,
src="{{ (.Resize "660x").RelPermalink }}" {{- (.Resize "1024x").RelPermalink }} 1024w,
{{- (.Resize "1320x").RelPermalink }} 2x"
{{ end }} {{ end }}
{{ end }} {{ end }}
alt="{{ $.Params.featureAlt | default $.Params.coverAlt | default "" }}" alt="{{ $.Params.featureAlt | default $.Params.coverAlt | default "" }}"
@ -39,8 +40,8 @@
</header> </header>
<section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row"> <section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row">
{{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in .TableOfContents "<ul") }} {{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in .TableOfContents "<ul") }}
<div class="order-first px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8"> <div class="order-first px-0 lg:order-last lg:max-w-xs lg:ps-8">
<div class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky lg:top-10"> <div class="toc pe-5 print:hidden lg:sticky lg:top-10">
{{ partial "toc.html" . }} {{ partial "toc.html" . }}
</div> </div>
</div> </div>

View File

@ -1,9 +1,9 @@
<article class="flex flex-row mt-6 max-w-prose"> <article class="mt-6 flex max-w-prose flex-row">
{{- $images := $.Resources.ByType "image" }} {{- $images := $.Resources.ByType "image" }}
{{- $thumbnail := $images.GetMatch (.Params.thumbnail | default "*thumb*") }} {{- $thumbnail := $images.GetMatch (.Params.thumbnail | default "*thumb*") }}
{{- $feature := $images.GetMatch (.Params.feature | default "*feature*") | default $thumbnail }} {{- $feature := $images.GetMatch (.Params.feature | default "*feature*") | default $thumbnail }}
{{- with $feature }} {{- with $feature }}
<div class="flex-none pr-4 sm:pr-6 "> <div class="flex-none pe-4 sm:pe-6 ">
<a <a
href="{{ with $.Params.externalUrl }} href="{{ with $.Params.externalUrl }}
{{ . }} {{ . }}
@ -39,7 +39,7 @@
>{{ $.Title | emojify }}</a >{{ $.Title | emojify }}</a
> >
<span <span
class="text-xs align-top cursor-default text-neutral-400 dark:text-neutral-500" class="cursor-default align-top text-xs text-neutral-400 dark:text-neutral-500"
title="{{ i18n "list.externalurl_title" }}" title="{{ i18n "list.externalurl_title" }}"
> >
<span class="rtl:hidden">&#8599;</span> <span class="rtl:hidden">&#8599;</span>
@ -54,7 +54,7 @@
> >
{{ end }} {{ end }}
{{ if and .Draft .Site.Params.article.showDraftLabel }} {{ if and .Draft .Site.Params.article.showDraftLabel }}
<div class=" ltr:ml-2 rtl:mr-2"> <div class="ms-2">
{{ partial "badge.html" (i18n "article.draft" | emojify) }} {{ partial "badge.html" (i18n "article.draft" | emojify) }}
</div> </div>
{{ end }} {{ end }}
@ -66,7 +66,7 @@
{{ partial "article-meta.html" . }} {{ partial "article-meta.html" . }}
</div> </div>
{{ if .Params.showSummary | default (.Site.Params.list.showSummary | default false) }} {{ if .Params.showSummary | default (.Site.Params.list.showSummary | default false) }}
<div class="py-1 prose dark:prose-invert"> <div class="prose py-1 dark:prose-invert">
{{ .Summary | emojify }} {{ .Summary | emojify }}
</div> </div>
{{ end }} {{ end }}

View File

@ -32,6 +32,7 @@
{{ $meta.Add "partials" (slice (partial "meta/edit.html" .)) }} {{ $meta.Add "partials" (slice (partial "meta/edit.html" .)) }}
{{ end }} {{ end }}
<div class="flex flex-row flex-wrap items-center"> <div class="flex flex-row flex-wrap items-center">
{{/* Output partials */}} {{/* Output partials */}}
{{ with ($meta.Get "partials") }} {{ with ($meta.Get "partials") }}
@ -40,7 +41,7 @@
{{/* Output draft label */}} {{/* Output draft label */}}
{{ if and (eq $scope "single") (and .Draft .Site.Params.article.showDraftLabel) }} {{ if and (eq $scope "single") (and .Draft .Site.Params.article.showDraftLabel) }}
<span class="pl-2">{{ partial "badge.html" (i18n "article.draft" | emojify) }}</span> <span class="ps-2">{{ partial "badge.html" (i18n "article.draft" | emojify) }}</span>
{{ end }} {{ end }}
</div> </div>

View File

@ -13,12 +13,9 @@
{{ if $prev }} {{ if $prev }}
<a class="group flex" href="{{ $prev.RelPermalink }}"> <a class="group flex" href="{{ $prev.RelPermalink }}">
<span <span
class="mr-2 text-neutral-700 transition-transform group-hover:-translate-x-[2px] group-hover:text-primary-600 ltr:inline rtl:hidden dark:text-neutral dark:group-hover:text-primary-400" class="me-2 text-neutral-700 transition-transform group-hover:-translate-x-[2px] group-hover:text-primary-600 dark:text-neutral dark:group-hover:text-primary-400"
>&larr;</span ><span class="ltr:inline rtl:hidden">&larr;</span
> ><span class="ltr:hidden rtl:inline">&rarr;</span></span
<span
class="ml-2 text-neutral-700 transition-transform group-hover:translate-x-[2px] group-hover:text-primary-600 ltr:hidden rtl:inline dark:text-neutral dark:group-hover:text-primary-400"
>&rarr;</span
> >
<span class="flex flex-col"> <span class="flex flex-col">
<span <span
@ -49,12 +46,9 @@
</span> </span>
</span> </span>
<span <span
class="ml-2 text-neutral-700 transition-transform group-hover:translate-x-[2px] group-hover:text-primary-600 ltr:inline rtl:hidden dark:text-neutral dark:group-hover:text-primary-400" class="ms-2 text-neutral-700 transition-transform group-hover:-translate-x-[2px] group-hover:text-primary-600 dark:text-neutral dark:group-hover:text-primary-400"
>&rarr;</span ><span class="ltr:inline rtl:hidden">&rarr;</span
> ><span class="ltr:hidden rtl:inline">&larr;</span></span
<span
class="mr-2 text-neutral-700 transition-transform group-hover:-translate-x-[2px] group-hover:text-primary-600 ltr:hidden rtl:inline dark:text-neutral dark:group-hover:text-primary-400"
>&larr;</span
> >
</a> </a>
{{ end }} {{ end }}

View File

@ -3,9 +3,9 @@
{{ with .Site.Author.image }} {{ with .Site.Author.image }}
{{ $authorImage := resources.Get . }} {{ $authorImage := resources.Get . }}
{{ if $authorImage }} {{ if $authorImage }}
{{ $authorImage := $authorImage.Fill "192x192" }} {{ $authorImage := $authorImage.Fill "192x192 Center" }}
<img <img
class="!mt-0 !mb-0 h-24 w-24 rounded-full ltr:mr-4 rtl:ml-4" class="!mb-0 !mt-0 me-4 h-24 w-24 rounded-full"
width="96" width="96"
height="96" height="96"
alt="{{ $.Site.Author.name | default "Author" }}" alt="{{ $.Site.Author.name | default "Author" }}"

View File

@ -1,6 +1,6 @@
<span class="flex"> <span class="flex">
<span <span
class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 ltr:ml-1 rtl:mr-1 dark:border-primary-600 dark:text-primary-400" class="ms-1 rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400"
> >
{{ . }} {{ . }}
</span> </span>

View File

@ -2,11 +2,9 @@
{{/* Footer menu */}} {{/* Footer menu */}}
{{ if .Site.Menus.footer }} {{ if .Site.Menus.footer }}
<nav class="pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400"> <nav class="pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400">
<ul class="flex flex-col list-none sm:flex-row"> <ul class="flex list-none flex-col sm:flex-row">
{{ range .Site.Menus.footer }} {{ range .Site.Menus.footer }}
<li <li class="group mb-1 ltr:text-right rtl:text-left sm:mb-0 sm:me-7 sm:last:me-0">
class="mb-1 group ltr:text-right rtl:text-left sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"
>
{{ if eq .Params.action "search" }} {{ if eq .Params.action "search" }}
{{ $.Scratch.Add "searchCount" 1 }} {{ $.Scratch.Add "searchCount" 1 }}
{{ if $.Site.Params.enableSearch | default false }} {{ if $.Site.Params.enableSearch | default false }}
@ -16,7 +14,7 @@
> >
{{ with .Params.icon }} {{ with .Params.icon }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -36,13 +34,13 @@
aria-label="appearance switcher" aria-label="appearance switcher"
> >
<span <span
class="inline transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:hidden" class="group-dark:hover:text-primary-400 inline transition-colors group-hover:text-primary-600 dark:hidden"
title="{{ i18n "footer.dark_appearance" }}" title="{{ i18n "footer.dark_appearance" }}"
> >
{{ partial "icon.html" "moon" }} {{ partial "icon.html" "moon" }}
</span> </span>
<span <span
class="hidden transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:inline" class="group-dark:hover:text-primary-400 hidden transition-colors group-hover:text-primary-600 dark:inline"
title="{{ i18n "footer.light_appearance" }}" title="{{ i18n "footer.light_appearance" }}"
> >
{{ partial "icon.html" "sun" }} {{ partial "icon.html" "sun" }}
@ -55,7 +53,7 @@
{{ with .Params.target }}target="{{ . }}"{{ end }} {{ with .Params.target }}target="{{ . }}"{{ end }}
>{{ with .Params.icon }} >{{ with .Params.icon }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -101,18 +99,18 @@
{{ if .Site.Params.footer.showAppearanceSwitcher | default false }} {{ if .Site.Params.footer.showAppearanceSwitcher | default false }}
<div <div
class="{{ if .Site.Params.footer.showScrollToTop | default true -}} class="{{ if .Site.Params.footer.showScrollToTop | default true -}}
ltr:mr-14 rtl:ml-14 me-14
{{- end }} cursor-pointer text-sm text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400" {{- end }} cursor-pointer text-sm text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400"
> >
<button id="appearance-switcher-0" type="button" aria-label="appearance switcher"> <button id="appearance-switcher-0" type="button" aria-label="appearance switcher">
<div <div
class="flex items-center justify-center w-12 h-12 dark:hidden" class="flex h-12 w-12 items-center justify-center dark:hidden"
title="{{ i18n "footer.dark_appearance" }}" title="{{ i18n "footer.dark_appearance" }}"
> >
{{ partial "icon.html" "moon" }} {{ partial "icon.html" "moon" }}
</div> </div>
<div <div
class="items-center justify-center hidden w-12 h-12 dark:flex" class="hidden h-12 w-12 items-center justify-center dark:flex"
title="{{ i18n "footer.light_appearance" }}" title="{{ i18n "footer.light_appearance" }}"
> >
{{ partial "icon.html" "sun" }} {{ partial "icon.html" "sun" }}

View File

@ -1 +1 @@
{{ return time.Format (site.Language.Params.dateFormat | default ":date_long") . }} {{ return time.Format (site.Params.dateFormat | default ":date_long") . }}

View File

@ -1,9 +1,9 @@
{{ if ne .Site.Params.showAppearanceSwitcher nil }} {{ if ne .Params.showAppearanceSwitcher nil }}
{{ warnf "[CONGO] Theme parameter `showAppearanceSwitcher` has been renamed to `footer.showAppearanceSwitcher`. Please update your site configuration." }} {{ warnf "[CONGO] Theme parameter `showAppearanceSwitcher` has been renamed to `footer.showAppearanceSwitcher`. Please update your site configuration." }}
{{ end }} {{ end }}
{{ if ne .Site.Params.showScrollToTop nil }} {{ if ne .Params.showScrollToTop nil }}
{{ warnf "[CONGO] Theme parameter `showScrollToTop` has been renamed to `footer.showScrollToTop`. Please update your site configuration." }} {{ warnf "[CONGO] Theme parameter `showScrollToTop` has been renamed to `footer.showScrollToTop`. Please update your site configuration." }}
{{ end }} {{ end }}
{{ if ne .Site.Params.logo nil }} {{ if ne .Params.logo nil }}
{{ warnf "[CONGO] Theme parameter `logo` has been renamed to `header.logo`. Please update your site configuration." }} {{ warnf "[CONGO] Theme parameter `logo` has been renamed to `header.logo`. Please update your site configuration." }}
{{ end }} {{ end }}

View File

@ -1,6 +1,6 @@
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
{{ with .Site.Language.Params.htmlCode | default .Site.LanguageCode }} {{ with site.Params.htmlCode | default .Site.LanguageCode }}
<meta http-equiv="content-language" content="{{ . }}" /> <meta http-equiv="content-language" content="{{ . }}" />
{{ end }} {{ end }}
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
@ -31,6 +31,7 @@
{{ end -}} {{ end -}}
{{/* Asset bundles */}} {{/* Asset bundles */}}
{{ $assets := newScratch }} {{ $assets := newScratch }}
{{ $algorithm := .Site.Params.fingerprintAlgorithm | default "sha256" }}
{{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (lower .Site.Params.colorScheme | default "congo")) }} {{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (lower .Site.Params.colorScheme | default "congo")) }}
{{ if not $cssScheme }} {{ if not $cssScheme }}
{{ $cssScheme = resources.Get "css/schemes/congo.css" }} {{ $cssScheme = resources.Get "css/schemes/congo.css" }}
@ -42,7 +43,7 @@
{{ if $cssCustom }} {{ if $cssCustom }}
{{ $assets.Add "css" (slice $cssCustom) }} {{ $assets.Add "css" (slice $cssCustom) }}
{{ end }} {{ end }}
{{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint "sha512" }} {{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint $algorithm }}
<link <link
type="text/css" type="text/css"
rel="stylesheet" rel="stylesheet"
@ -50,7 +51,7 @@
integrity="{{ $bundleCSS.Data.Integrity }}" integrity="{{ $bundleCSS.Data.Integrity }}"
/> />
{{ $jsAppearance := resources.Get "js/appearance.js" }} {{ $jsAppearance := resources.Get "js/appearance.js" }}
{{ $jsAppearance = $jsAppearance | resources.Minify | resources.Fingerprint "sha512" }} {{ $jsAppearance = $jsAppearance | resources.Minify | resources.Fingerprint $algorithm }}
<script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}" integrity="{{ $jsAppearance.Data.Integrity }}"></script> <script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}" integrity="{{ $jsAppearance.Data.Integrity }}"></script>
{{ if .Site.Params.enableSearch | default false }} {{ if .Site.Params.enableSearch | default false }}
{{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }} {{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }}
@ -66,7 +67,7 @@
{{ $assets.Add "js" (slice $jsRTL) }} {{ $assets.Add "js" (slice $jsRTL) }}
{{ end }} {{ end }}
{{ if $assets.Get "js" }} {{ if $assets.Get "js" }}
{{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint "sha512" }} {{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint $algorithm }}
<script defer type="text/javascript" id="script-bundle" src="{{ $bundleJS.RelPermalink }}" integrity="{{ $bundleJS.Data.Integrity }}" data-copy="{{ i18n "code.copy" }}" data-copied="{{ i18n "code.copied" }}"></script> <script defer type="text/javascript" id="script-bundle" src="{{ $bundleJS.RelPermalink }}" integrity="{{ $bundleJS.Data.Integrity }}" data-copy="{{ i18n "code.copy" }}" data-copied="{{ i18n "code.copied" }}"></script>
{{ end }} {{ end }}
{{/* Icons */}} {{/* Icons */}}
@ -111,4 +112,4 @@
{{ if templates.Exists "partials/extend-head.html" }} {{ if templates.Exists "partials/extend-head.html" }}
{{ partial "extend-head.html" .Site }} {{ partial "extend-head.html" .Site }}
{{ end }} {{ end }}
</head> </head>

View File

@ -7,12 +7,10 @@
</div> </div>
{{/* Main menu */}} {{/* Main menu */}}
{{ if or .Site.Menus.main (.Site.Params.enableSearch | default false) }} {{ if or .Site.Menus.main (.Site.Params.enableSearch | default false) }}
<ul class="flex flex-col list-none ltr:text-right rtl:text-left sm:flex-row"> <ul class="flex list-none flex-col ltr:text-right rtl:text-left sm:flex-row">
{{ if .Site.Menus.main }} {{ if .Site.Menus.main }}
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
<li <li class="group mb-1 sm:mb-0 sm:me-7 sm:last:me-0.5">
class="mb-1 group sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"
>
{{ if eq .Params.action "search" }} {{ if eq .Params.action "search" }}
{{ $.Scratch.Add "searchCount" 1 }} {{ $.Scratch.Add "searchCount" 1 }}
{{ if $.Site.Params.enableSearch | default false }} {{ if $.Site.Params.enableSearch | default false }}
@ -22,7 +20,7 @@
> >
{{ with .Params.icon | default "search" }} {{ with .Params.icon | default "search" }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -42,7 +40,7 @@
aria-label="appearance switcher" aria-label="appearance switcher"
> >
<span <span
class="inline transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:hidden" class="group-dark:hover:text-primary-400 inline transition-colors group-hover:text-primary-600 dark:hidden"
title="{{ i18n "footer.dark_appearance" }}" title="{{ i18n "footer.dark_appearance" }}"
> >
{{ with .Params.icon | default "moon" }} {{ with .Params.icon | default "moon" }}
@ -56,7 +54,7 @@
{{ end }} {{ end }}
</span> </span>
<span <span
class="hidden transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:inline" class="group-dark:hover:text-primary-400 hidden transition-colors group-hover:text-primary-600 dark:inline"
title="{{ i18n "footer.light_appearance" }}" title="{{ i18n "footer.light_appearance" }}"
> >
{{ with .Params.icon | default "sun" }} {{ with .Params.icon | default "sun" }}
@ -77,7 +75,7 @@
{{ with .Params.target }}target="{{ . }}"{{ end }} {{ with .Params.target }}target="{{ . }}"{{ end }}
>{{ with .Params.icon }} >{{ with .Params.icon }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -92,12 +90,10 @@
</li> </li>
{{ end }} {{ end }}
{{ if and ($.Site.Params.enableSearch | default false) (eq ($.Scratch.Get "searchCount") 0) }} {{ if and ($.Site.Params.enableSearch | default false) (eq ($.Scratch.Get "searchCount") 0) }}
<li <li class="group mb-1 sm:mb-0 sm:me-7 sm:last:me-0">
class="mb-1 group sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"
>
<button id="search-button-m0" title="{{ i18n "search.open_button_title" }}"> <button id="search-button-m0" title="{{ i18n "search.open_button_title" }}">
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" "search" }} {{ partial "icon.html" "search" }}
</span> </span>

View File

@ -14,10 +14,10 @@
</div> </div>
<div <div
id="menu-wrapper" id="menu-wrapper"
class="fixed inset-0 z-30 invisible w-full h-full m-auto overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50" class="invisible fixed inset-0 z-30 m-auto h-full w-full cursor-default overflow-auto bg-neutral-100/50 opacity-0 backdrop-blur-sm transition-opacity dark:bg-neutral-900/50"
> >
<ul <ul
class="flex flex-col w-full px-6 py-6 mx-auto overflow-visible list-none max-w-7xl ltr:text-right rtl:text-left sm:px-14 sm:py-10 sm:pt-10 md:px-24 lg:px-32" class="mx-auto flex w-full max-w-7xl list-none flex-col overflow-visible px-6 py-6 ltr:text-right rtl:text-left sm:px-14 sm:py-10 sm:pt-10 md:px-24 lg:px-32"
> >
<li class="mb-1"> <li class="mb-1">
<span class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400" <span class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400"
@ -26,7 +26,7 @@
</li> </li>
{{ if .Site.Menus.main }} {{ if .Site.Menus.main }}
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
<li class="mb-1 group"> <li class="group mb-1">
{{ if eq .Params.action "search" }} {{ if eq .Params.action "search" }}
{{ $.Scratch.Add "searchCount" 1 }} {{ $.Scratch.Add "searchCount" 1 }}
{{ if $.Site.Params.enableSearch | default false }} {{ if $.Site.Params.enableSearch | default false }}
@ -36,7 +36,7 @@
> >
{{ with .Params.icon | default "search" }} {{ with .Params.icon | default "search" }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -56,7 +56,7 @@
aria-label="appearance switcher" aria-label="appearance switcher"
> >
<span <span
class="inline transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:hidden" class="group-dark:hover:text-primary-400 inline transition-colors group-hover:text-primary-600 dark:hidden"
title="{{ i18n "footer.dark_appearance" }}" title="{{ i18n "footer.dark_appearance" }}"
> >
{{ with .Params.icon | default "moon" }} {{ with .Params.icon | default "moon" }}
@ -70,7 +70,7 @@
{{ end }} {{ end }}
</span> </span>
<span <span
class="hidden transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:inline" class="group-dark:hover:text-primary-400 hidden transition-colors group-hover:text-primary-600 dark:inline"
title="{{ i18n "footer.light_appearance" }}" title="{{ i18n "footer.light_appearance" }}"
> >
{{ with .Params.icon | default "sun" }} {{ with .Params.icon | default "sun" }}
@ -91,7 +91,7 @@
{{ with .Params.target }}target="{{ . }}"{{ end }} {{ with .Params.target }}target="{{ . }}"{{ end }}
>{{ with .Params.icon }} >{{ with .Params.icon }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -106,10 +106,10 @@
</li> </li>
{{ end }} {{ end }}
{{ if and ($.Site.Params.enableSearch | default false) (eq ($.Scratch.Get "searchCount") 0) }} {{ if and ($.Site.Params.enableSearch | default false) (eq ($.Scratch.Get "searchCount") 0) }}
<li class="mb-1 group"> <li class="group mb-1">
<button id="search-button-m0" title="{{ i18n "search.open_button_title" }}"> <button id="search-button-m0" title="{{ i18n "search.open_button_title" }}">
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" "search" }} {{ partial "icon.html" "search" }}
</span> </span>
@ -121,12 +121,10 @@
</div> </div>
</label> </label>
{{/* Basic menu */}} {{/* Basic menu */}}
<ul class="flex-row hidden list-none ltr:text-right rtl:text-left sm:flex"> <ul class="hidden list-none flex-row ltr:text-right rtl:text-left sm:flex">
{{ if .Site.Menus.main }} {{ if .Site.Menus.main }}
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
<li <li class="group mb-1 sm:mb-0 sm:me-7 sm:last:me-0">
class="mb-1 group sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"
>
{{ if eq .Params.action "search" }} {{ if eq .Params.action "search" }}
{{ $.Scratch.Add "searchCount" 1 }} {{ $.Scratch.Add "searchCount" 1 }}
{{ if $.Site.Params.enableSearch | default false }} {{ if $.Site.Params.enableSearch | default false }}
@ -136,7 +134,7 @@
> >
{{ with .Params.icon | default "search" }} {{ with .Params.icon | default "search" }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -156,7 +154,7 @@
aria-label="appearance switcher" aria-label="appearance switcher"
> >
<span <span
class="inline transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:hidden" class="group-dark:hover:text-primary-400 inline transition-colors group-hover:text-primary-600 dark:hidden"
title="{{ i18n "footer.dark_appearance" }}" title="{{ i18n "footer.dark_appearance" }}"
> >
{{ with .Params.icon | default "moon" }} {{ with .Params.icon | default "moon" }}
@ -170,7 +168,7 @@
{{ end }} {{ end }}
</span> </span>
<span <span
class="hidden transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600 dark:inline" class="group-dark:hover:text-primary-400 hidden transition-colors group-hover:text-primary-600 dark:inline"
title="{{ i18n "footer.light_appearance" }}" title="{{ i18n "footer.light_appearance" }}"
> >
{{ with .Params.icon | default "sun" }} {{ with .Params.icon | default "sun" }}
@ -191,7 +189,7 @@
{{ with .Params.target }}target="{{ . }}"{{ end }} {{ with .Params.target }}target="{{ . }}"{{ end }}
>{{ with .Params.icon }} >{{ with .Params.icon }}
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" . }} {{ partial "icon.html" . }}
</span> </span>
@ -206,12 +204,10 @@
</li> </li>
{{ end }} {{ end }}
{{ if and ($.Site.Params.enableSearch | default false) (eq ($.Scratch.Get "searchCount") 0) }} {{ if and ($.Site.Params.enableSearch | default false) (eq ($.Scratch.Get "searchCount") 0) }}
<li <li class="group mb-1 sm:mb-0 sm:me-7 sm:last:me-0">
class="mb-1 group sm:mb-0 ltr:sm:mr-7 ltr:sm:last:mr-0 rtl:sm:ml-7 rtl:sm:last:ml-0"
>
<button id="search-button-m1" title="{{ i18n "search.open_button_title" }}"> <button id="search-button-m1" title="{{ i18n "search.open_button_title" }}">
<span <span
class="transition-colors group-dark:hover:text-primary-400 group-hover:text-primary-600" class="group-dark:hover:text-primary-400 transition-colors group-hover:text-primary-600"
> >
{{ partial "icon.html" "search" }} {{ partial "icon.html" "search" }}
</span> </span>

View File

@ -7,7 +7,7 @@
{{ with .Site.Author.image }} {{ with .Site.Author.image }}
{{ $authorImage := resources.Get . }} {{ $authorImage := resources.Get . }}
{{ if $authorImage }} {{ if $authorImage }}
{{ $authorImage := $authorImage.Fill "288x288" }} {{ $authorImage := $authorImage.Fill "288x288 Center" }}
<img <img
class="mb-2 rounded-full h-36 w-36" class="mb-2 rounded-full h-36 w-36"
width="144" width="144"

View File

@ -1,14 +1,24 @@
{{- if .Site.Params.header.logo }} {{- if .Site.Params.header.logo }}
{{- $logo := resources.Get .Site.Params.header.logo }} {{- $logo := resources.Get .Site.Params.header.logo }}
{{- $logo_dark := resources.Get .Site.Params.header.logoDark }}
{{- if $logo }} {{- if $logo }}
<a href="{{ "" | relLangURL }}" class="mr-2"> <a href="{{ "" | relLangURL }}" class="mr-2">
<img <img
src="{{ $logo.RelPermalink }}" src="{{ $logo.RelPermalink }}"
width="{{ div $logo.Width 2 }}" width="{{ div $logo.Width 2 }}"
height="{{ div $logo.Height 2 }}" height="{{ div $logo.Height 2 }}"
class="max-h-[10rem] max-w-[10rem] object-scale-down object-left" class="max-h-[10rem] max-w-[10rem] object-scale-down object-left{{ if $logo_dark }} hidden dark:flex{{ end }}"
alt="{{ .Site.Title }}" alt="{{ .Site.Title }}"
/> />
{{- if $logo_dark }}
<img
src="{{ $logo_dark.RelPermalink }}"
width="{{ div $logo_dark.Width 2 }}"
height="{{ div $logo_dark.Height 2 }}"
class="max-h-[10rem] max-w-[10rem] object-scale-down object-left dark:hidden"
alt="{{ .Site.Title }}"
/>
{{- end}}
</a> </a>
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@ -8,6 +8,8 @@
href="{{ printf .url $.Permalink $.Title }}" href="{{ printf .url $.Permalink $.Title }}"
title="{{ i18n .title }}" title="{{ i18n .title }}"
aria-label="{{ i18n .title }}" aria-label="{{ i18n .title }}"
target="_blank"
rel="noopener noreferrer"
>{{ partial "icon.html" .icon }}</a >{{ partial "icon.html" .icon }}</a
> >
{{ end }} {{ end }}

View File

@ -1,12 +1,10 @@
<details open class="mt-0 overflow-hidden rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5"> <details open class="-ms-5 mt-0 overflow-hidden rounded-lg ps-5">
<summary <summary
class="block py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden" class="-ms-5 block cursor-pointer bg-neutral-100 py-1 ps-5 text-lg font-semibold text-neutral-800 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden"
> >
{{ i18n "article.table_of_contents" }} {{ i18n "article.table_of_contents" }}
</summary> </summary>
<div <div class="-ms-5 border-s border-dotted border-neutral-300 py-2 ps-5 dark:border-neutral-600">
class="py-2 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600"
>
{{ .TableOfContents | emojify }} {{ .TableOfContents | emojify }}
</div> </div>
</details> </details>

View File

@ -1,11 +1,11 @@
{{ if .IsTranslated }} {{ if .IsTranslated }}
<ul class="flex flex-row list-none"> <ul class="flex list-none flex-row">
{{ range .AllTranslations }} {{ range .AllTranslations }}
<li class="ml-2"> <li class="ml-2">
<a <a
href="{{ .RelPermalink }}" href="{{ .RelPermalink }}"
class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2" class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
>{{ .Language.Params.displayName | emojify }}</a >{{ site.Params.displayName | emojify }}</a
> >
</li> </li>
{{ end }} {{ end }}

View File

@ -1,5 +1,5 @@
<div class="flex px-4 py-3 rounded-md bg-primary-100 dark:bg-primary-900"> <div class="flex px-4 py-3 rounded-md bg-primary-100 dark:bg-primary-900">
<span class="text-primary-400 ltr:pr-3 rtl:pl-3"> <span class="pe-3 text-primary-400">
{{ partial "icon.html" (.Get 0 | default "triangle-exclamation") }} {{ partial "icon.html" (.Get 0 | default "triangle-exclamation") }}
</span> </span>
<span class="dark:text-neutral-300"> <span class="dark:text-neutral-300">

View File

@ -28,10 +28,10 @@
src="{{ .RelPermalink }}" src="{{ .RelPermalink }}"
{{ else }} {{ else }}
srcset=" srcset="
{{ (.Resize "330x").RelPermalink }} 330w, {{- (.Resize "330x").RelPermalink }} 330w,
{{ (.Resize "660x").RelPermalink }} 660w, {{- (.Resize "660x").RelPermalink }} 660w,
{{ (.Resize "1024x").RelPermalink }} 1024w, {{- (.Resize "1024x").RelPermalink }} 1024w,
{{ (.Resize "1320x").RelPermalink }} 2x" {{- (.Resize "1320x").RelPermalink }} 2x"
src="{{ (.Resize "660x").RelPermalink }}" src="{{ (.Resize "660x").RelPermalink }}"
{{ end }} {{ end }}
{{ end }} {{ end }}

View File

@ -8,17 +8,17 @@ HUGO_THEME = "repo"
TZ = "Australia/Melbourne" TZ = "Australia/Melbourne"
[context.production.environment] [context.production.environment]
HUGO_VERSION = "0.110.0" HUGO_VERSION = "0.112.3"
HUGO_ENV = "production" HUGO_ENV = "production"
[context.deploy-preview] [context.deploy-preview]
command = "cd exampleSite && hugo --gc --minify -D -b $DEPLOY_PRIME_URL" command = "cd exampleSite && hugo --gc --minify -D -b $DEPLOY_PRIME_URL"
[context.deploy-preview.environment] [context.deploy-preview.environment]
HUGO_VERSION = "0.110.0" HUGO_VERSION = "0.112.3"
[context.branch-deploy] [context.branch-deploy]
command = "cd exampleSite && hugo --gc --minify -D -b $DEPLOY_PRIME_URL" command = "cd exampleSite && hugo --gc --minify -D -b $DEPLOY_PRIME_URL"
[context.branch-deploy.environment] [context.branch-deploy.environment]
HUGO_VERSION = "0.110.0" HUGO_VERSION = "0.112.3"

2825
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "hugo-congo-theme", "name": "hugo-congo-theme",
"version": "2.5.4", "version": "2.6.0",
"description": "Congo theme for Hugo", "description": "Congo theme for Hugo",
"scripts": { "scripts": {
"preinstall": "rimraf assets/lib", "preinstall": "rimraf assets/lib",
@ -30,15 +30,15 @@
"homepage": "https://github.com/jpanther/congo#readme", "homepage": "https://github.com/jpanther/congo#readme",
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.9", "@tailwindcss/typography": "^0.5.9",
"chart.js": "^4.2.1", "chart.js": "^4.3.0",
"fuse.js": "^6.6.2", "fuse.js": "^6.6.2",
"katex": "^0.16.4", "katex": "^0.16.7",
"mermaid": "^9.4.0", "mermaid": "^10.2.0",
"prettier": "^2.8.4", "prettier": "^2.8.8",
"prettier-plugin-go-template": "^0.0.13", "prettier-plugin-go-template": "^0.0.13",
"prettier-plugin-tailwindcss": "^0.2.5", "prettier-plugin-tailwindcss": "^0.3.0",
"rimraf": "^4.4.0", "rimraf": "^5.0.1",
"tailwindcss": "^3.2.7", "tailwindcss": "^3.3.2",
"vendor-copy": "^3.0.1" "vendor-copy": "^3.0.1"
}, },
"vendorCopy": [], "vendorCopy": [],