From 64bdf6df72c0542aac4297d37088f78b06485e04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nuno=20Cora=C3=A7=C3=A3o?= Date: Fri, 30 Sep 2022 11:01:30 +0100 Subject: [PATCH] fixed bug --- assets/css/compiled/main.css | 25 ++----- docs/404.html | 2 +- docs/categories/index.html | 2 +- ...941bc6508f23dfc38526f47c6d94165fa6dd34.css | 1 + docs/docs/advanced-customisation/index.html | 6 +- docs/docs/configuration/index.html | 5 +- docs/docs/content-examples/index.html | 5 +- docs/docs/firebase-views/index.html | 6 +- docs/docs/front-matter/index.html | 6 +- docs/docs/getting-started/index.html | 5 +- docs/docs/homepage-layout/index.html | 6 +- docs/docs/hosting-deployment/index.html | 9 ++- docs/docs/index.html | 71 +++++++++++++++---- docs/docs/installation/index.html | 5 +- docs/docs/partials/index.html | 10 ++- docs/docs/shortcodes/index.html | 12 ++-- docs/docs/thumbnails/index.html | 6 +- docs/docs/welcome/index.html | 5 +- docs/index.html | 2 +- docs/posts/index.html | 2 +- docs/samples/charts/index.html | 14 ++-- docs/samples/diagrams-flowcharts/index.html | 16 +++-- docs/samples/emoji/index.html | 11 +-- docs/samples/external/index.html | 4 +- docs/samples/icons/index.html | 15 ++-- docs/samples/index.html | 54 ++++++++++---- docs/samples/markdown/index.html | 16 +++-- docs/samples/mathematical-notation/index.html | 16 +++-- docs/samples/rich-content/index.html | 19 +++-- docs/samples/thumbnail_sample/index.html | 11 +-- docs/tags/advanced/index.html | 7 +- docs/tags/analytics/index.html | 11 ++- docs/tags/chart/index.html | 8 ++- docs/tags/comments/index.html | 11 ++- docs/tags/config/index.html | 16 +++-- docs/tags/content/index.html | 6 +- docs/tags/css/index.html | 13 +++- docs/tags/deployment/index.html | 10 ++- docs/tags/diagram/index.html | 10 ++- docs/tags/docs/index.html | 62 ++++++++++++---- docs/tags/emoji/index.html | 8 ++- docs/tags/example/index.html | 6 +- docs/tags/favicons/index.html | 11 ++- docs/tags/firebase/index.html | 7 +- docs/tags/front-matter/index.html | 7 +- docs/tags/gist/index.html | 13 +++- docs/tags/github/index.html | 10 ++- docs/tags/graph/index.html | 8 ++- docs/tags/homepage/index.html | 7 +- docs/tags/hosting/index.html | 10 ++- docs/tags/html/index.html | 10 ++- docs/tags/icon/index.html | 18 ++++- docs/tags/icons/index.html | 9 ++- docs/tags/index.html | 2 +- docs/tags/installation/index.html | 10 ++- docs/tags/katex/index.html | 10 ++- docs/tags/layouts/index.html | 7 +- docs/tags/lead/index.html | 9 ++- docs/tags/likes/index.html | 7 +- docs/tags/markdown/index.html | 10 ++- docs/tags/maths/index.html | 10 ++- docs/tags/mermaid/index.html | 17 +++-- docs/tags/netlify/index.html | 10 ++- docs/tags/new/index.html | 6 +- docs/tags/partials/index.html | 11 ++- docs/tags/privacy/index.html | 22 ++++-- docs/tags/render/index.html | 10 ++- docs/tags/sample/index.html | 56 +++++++++++---- docs/tags/shortcodes/index.html | 45 +++++++++--- docs/tags/thumbnail/index.html | 13 ++-- docs/tags/twitter/index.html | 13 +++- docs/tags/users/index.html | 6 +- docs/tags/views/index.html | 7 +- docs/tags/vimeo/index.html | 13 +++- docs/tags/youtube/index.html | 13 +++- docs/users/index.html | 6 +- exampleSite/config/_default/params.toml | 4 +- layouts/partials/article-meta.html | 29 ++++---- 78 files changed, 704 insertions(+), 287 deletions(-) create mode 100644 docs/css/main.bundle.min.5db56dedf7b8844a84303b5861655ff2e297cdcd686337eb22bfacd8b5ad48eddaf2b14289b0bd98892de0d26a941bc6508f23dfc38526f47c6d94165fa6dd34.css diff --git a/assets/css/compiled/main.css b/assets/css/compiled/main.css index c1d30449..0fc96e7a 100644 --- a/assets/css/compiled/main.css +++ b/assets/css/compiled/main.css @@ -1449,11 +1449,6 @@ select { margin-bottom: 0.75rem; } -.my-1 { - margin-top: 0.25rem; - margin-bottom: 0.25rem; -} - .mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; @@ -1838,11 +1833,6 @@ select { border-color: rgba(var(--color-neutral-300), var(--tw-border-opacity)); } -.border-neutral-200 { - --tw-border-opacity: 1; - border-color: rgba(var(--color-neutral-200), var(--tw-border-opacity)); -} - .border-primary-400 { --tw-border-opacity: 1; border-color: rgba(var(--color-primary-400), var(--tw-border-opacity)); @@ -1853,6 +1843,11 @@ select { border-color: rgba(var(--color-primary-500), var(--tw-border-opacity)); } +.border-neutral-200 { + --tw-border-opacity: 1; + border-color: rgba(var(--color-neutral-200), var(--tw-border-opacity)); +} + .bg-neutral { --tw-bg-opacity: 1; background-color: rgba(var(--color-neutral), var(--tw-bg-opacity)); @@ -2894,11 +2889,6 @@ body:has(#menu-controller:checked) { margin-top: 2rem; } -.hover\:border-primary-300:hover { - --tw-border-opacity: 1; - border-color: rgba(var(--color-primary-300), var(--tw-border-opacity)); -} - .hover\:border-transparent:hover { border-color: transparent; } @@ -3256,11 +3246,6 @@ body:has(#menu-controller:checked) { color: rgba(var(--color-neutral-100), var(--tw-text-opacity)); } -.dark .dark\:hover\:border-primary-600:hover { - --tw-border-opacity: 1; - border-color: rgba(var(--color-primary-600), var(--tw-border-opacity)); -} - .dark .dark\:hover\:bg-primary-900:hover { --tw-bg-opacity: 1; background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity)); diff --git a/docs/404.html b/docs/404.html index fb9d84bd..7d663051 100644 --- a/docs/404.html +++ b/docs/404.html @@ -1,4 +1,4 @@ -404 Page not found · Blowfish +404 Page not found · Blowfish diff --git a/docs/categories/index.html b/docs/categories/index.html index d606d1d4..7522dc72 100644 --- a/docs/categories/index.html +++ b/docs/categories/index.html @@ -1,4 +1,4 @@ -Categories · Blowfish +Categories · Blowfish diff --git a/docs/css/main.bundle.min.5db56dedf7b8844a84303b5861655ff2e297cdcd686337eb22bfacd8b5ad48eddaf2b14289b0bd98892de0d26a941bc6508f23dfc38526f47c6d94165fa6dd34.css b/docs/css/main.bundle.min.5db56dedf7b8844a84303b5861655ff2e297cdcd686337eb22bfacd8b5ad48eddaf2b14289b0bd98892de0d26a941bc6508f23dfc38526f47c6d94165fa6dd34.css new file mode 100644 index 00000000..983ae814 --- /dev/null +++ b/docs/css/main.bundle.min.5db56dedf7b8844a84303b5861655ff2e297cdcd686337eb22bfacd8b5ad48eddaf2b14289b0bd98892de0d26a941bc6508f23dfc38526f47c6d94165fa6dd34.css @@ -0,0 +1 @@ +:root{--color-neutral:255, 255, 255;--color-neutral-50:248, 250, 252;--color-neutral-100:241, 245, 249;--color-neutral-200:226, 232, 240;--color-neutral-300:203, 213, 225;--color-neutral-400:148, 163, 184;--color-neutral-500:100, 116, 139;--color-neutral-600:71, 85, 105;--color-neutral-700:51, 65, 85;--color-neutral-800:30, 41, 59;--color-neutral-900:15, 23, 42;--color-primary-50:239, 246, 255;--color-primary-100:219, 234, 254;--color-primary-200:191, 219, 254;--color-primary-300:147, 197, 253;--color-primary-400:96, 165, 250;--color-primary-500:59, 130, 246;--color-primary-600:37, 99, 235;--color-primary-700:29, 78, 216;--color-primary-800:30, 64, 175;--color-primary-900:30, 58, 138;--color-secondary-50:236, 254, 255;--color-secondary-100:207, 250, 254;--color-secondary-200:165, 243, 252;--color-secondary-300:103, 232, 249;--color-secondary-400:34, 211, 238;--color-secondary-500:6, 182, 212;--color-secondary-600:8, 145, 178;--color-secondary-700:14, 116, 144;--color-secondary-800:21, 94, 117;--color-secondary-900:22, 78, 99}/*!Blowfish v0.0.1 | MIT License | https://github.com/nunocoracao/blowfish*//*!tailwindcss v3.1.8 | MIT License | https://tailwindcss.com*/*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:initial}::before,::after{--tw-content:''}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding-top:.5rem;padding-right:.75rem;padding-bottom:.5rem;padding-left:.75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:none;font-weight:500;-webkit-text-decoration-color:rgba(var(--color-primary-300),1);text-decoration-color:rgba(var(--color-primary-300),1)}.prose :where(a):not(:where([class~=not-prose] *)):hover{color:rgba(var(--color-neutral),1);text-decoration:none;background-color:rgba(var(--color-primary-600),1);border-radius:.09rem}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=As]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=as]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=Is]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=is]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *))::before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *))::after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose] *))::before{content:"`"}.prose :where(code):not(:where([class~=not-prose] *))::after{content:"`"}.prose :where(a code):not(:where([class~=not-prose] *)){color:var(--tw-prose-code)}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-right:1.1428571em;padding-bottom:.8571429em;padding-left:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose] *))::before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *))::after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body:rgba(var(--color-neutral-700), 1);--tw-prose-headings:rgba(var(--color-neutral-800), 1);--tw-prose-lead:rgba(var(--color-neutral-500), 1);--tw-prose-links:rgba(var(--color-primary-700), 1);--tw-prose-bold:rgba(var(--color-neutral-900), 1);--tw-prose-counters:rgba(var(--color-neutral-800), 1);--tw-prose-bullets:rgba(var(--color-neutral-500), 1);--tw-prose-hr:rgba(var(--color-neutral-200), 1);--tw-prose-quotes:rgba(var(--color-neutral-700), 1);--tw-prose-quote-borders:rgba(var(--color-primary-200), 1);--tw-prose-captions:rgba(var(--color-neutral-500), 1);--tw-prose-code:rgba(var(--color-secondary-700), 1);--tw-prose-pre-code:rgba(var(--color-neutral-700), 1);--tw-prose-pre-bg:rgba(var(--color-neutral-50), 1);--tw-prose-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-td-borders:rgba(var(--color-neutral-300), 1);--tw-prose-invert-body:rgba(var(--color-neutral-300), 1);--tw-prose-invert-headings:rgba(var(--color-neutral-50), 1);--tw-prose-invert-lead:rgba(var(--color-neutral-500), 1);--tw-prose-invert-links:rgba(var(--color-primary-400), 1);--tw-prose-invert-bold:rgba(var(--color-neutral), 1);--tw-prose-invert-counters:rgba(var(--color-neutral-400), 1);--tw-prose-invert-bullets:rgba(var(--color-neutral-600), 1);--tw-prose-invert-hr:rgba(var(--color-neutral-500), 1);--tw-prose-invert-quotes:rgba(var(--color-neutral-200), 1);--tw-prose-invert-quote-borders:rgba(var(--color-primary-900), 1);--tw-prose-invert-captions:rgba(var(--color-neutral-400), 1);--tw-prose-invert-code:rgba(var(--color-secondary-400), 1);--tw-prose-invert-pre-code:rgba(var(--color-neutral-200), 1);--tw-prose-invert-pre-bg:rgba(var(--color-neutral-700), 1);--tw-prose-invert-th-borders:rgba(var(--color-neutral-500), 1);--tw-prose-invert-td-borders:rgba(var(--color-neutral-700), 1);font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding-top:.5714286em;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose :where(kbd):not(:where([class~=not-prose] *)){background-color:rgba(var(--color-neutral-200),1);padding:.1rem .4rem;border-radius:.25rem;font-size:.9rem;font-weight:600}.prose :where(mark):not(:where([class~=not-prose] *)){color:rgba(var(--color-neutral-800),1);background-color:rgba(var(--color-secondary-200),1);padding:.1rem .2rem;border-radius:.12rem}.prose-sm :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-base :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose-base :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose-base :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose-base :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-base :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-lg :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.8em;margin-bottom:.8em}.prose-xl :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.2em}.prose-xl :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.2em}.prose-xl :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-xl :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-2xl :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.8333333em;margin-bottom:.8333333em}.prose-2xl :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-2xl :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-2xl :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.3333333em}.prose-2xl :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.3333333em}.prose-2xl :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose-2xl :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.top-\[100vh\]{top:100vh}.bottom-0{bottom:0}.top-\[calc\(100vh-5\.5rem\)\]{top:calc(100vh - 5.5rem)}.top-20{top:5rem}.top-0{top:0}.z-50{z-index:50}.z-10{z-index:10}.z-30{z-index:30}.order-first{order:-9999}.m-auto{margin:auto}.m-1{margin:.25rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mb-3{margin-bottom:.75rem}.mt-8{margin-top:2rem}.mb-12{margin-bottom:3rem}.mt-0{margin-top:0}.mt-12{margin-top:3rem}.mt-10{margin-top:2.5rem}.mt-6{margin-top:1.5rem}.mb-10{margin-bottom:2.5rem}.mb-5{margin-bottom:1.25rem}.mb-\[5rem\]{margin-bottom:5rem}.mr-3{margin-right:.75rem}.ml-3{margin-left:.75rem}.mt-\[0\.1rem\]{margin-top:.1rem}.\!mt-0{margin-top:0!important}.\!mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.-mb-1{margin-bottom:-.25rem}.ml-2{margin-left:.5rem}.mr-2{margin-right:.5rem}.\!mb-9{margin-bottom:2.25rem!important}.-mr-2{margin-right:-.5rem}.mt-1{margin-top:.25rem}.mb-\[2px\]{margin-bottom:2px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.hidden{display:none}.h-screen{height:100vh}.h-12{height:3rem}.h-32{height:8rem}.h-24{height:6rem}.h-8{height:2rem}.h-full{height:100%}.h-36{height:9rem}.max-h-\[5rem\]{max-height:5rem}.min-h-0{min-height:0}.w-12{width:3rem}.w-36{width:9rem}.w-full{width:100%}.w-24{width:6rem}.w-screen{width:100vw}.w-8{width:2rem}.w-6{width:1.5rem}.min-w-0{min-width:0}.min-w-\[1\.8rem\]{min-width:1.8rem}.min-w-\[2\.4rem\]{min-width:2.4rem}.max-w-7xl{max-width:80rem}.max-w-full{max-width:100%}.max-w-prose{max-width:65ch}.max-w-3xl{max-width:48rem}.max-w-\[5rem\]{max-width:5rem}.flex-none{flex:none}.flex-auto{flex:auto}.flex-1{flex:1}.grow{flex-grow:1}.-translate-y-8{--tw-translate-y:-2rem;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))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.place-self-center{place-self:center}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.scroll-smooth{scroll-behavior:smooth}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.\!rounded-md{border-radius:.375rem!important}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-dotted{border-style:dotted}.border-neutral-400{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-400),var(--tw-border-opacity))}.border-neutral-300{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-300),var(--tw-border-opacity))}.border-primary-400{--tw-border-opacity:1;border-color:rgba(var(--color-primary-400),var(--tw-border-opacity))}.border-primary-500{--tw-border-opacity:1;border-color:rgba(var(--color-primary-500),var(--tw-border-opacity))}.border-neutral-200{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-200),var(--tw-border-opacity))}.bg-neutral{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral),var(--tw-bg-opacity))}.bg-primary-200{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-200),var(--tw-bg-opacity))}.bg-neutral\/50{background-color:rgba(var(--color-neutral),.5)}.bg-transparent{background-color:transparent}.bg-neutral-500\/50{background-color:rgba(var(--color-neutral-500),.5)}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-100),var(--tw-bg-opacity))}.bg-neutral-300{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-300),var(--tw-bg-opacity))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.bg-neutral-100\/50{background-color:rgba(var(--color-neutral-100),.5)}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.object-left{-o-object-position:left;object-position:left}.p-4{padding:1rem}.p-1{padding:.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-0{padding-left:0;padding-right:0}.py-8{padding-top:2rem;padding-bottom:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pt-8{padding-top:2rem}.pt-3{padding-top:.75rem}.pl-2{padding-left:.5rem}.pb-4{padding-bottom:1rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-text-bottom{vertical-align:text-bottom}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[0\.6rem\]{font-size:.6rem}.font-extrabold{font-weight:800}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-7{line-height:1.75rem}.leading-6{line-height:1.5rem}.leading-3{line-height:.75rem}.text-neutral-400{--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.text-neutral-900{--tw-text-opacity:1;color:rgba(var(--color-neutral-900),var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.text-primary-500{--tw-text-opacity:1;color:rgba(var(--color-primary-500),var(--tw-text-opacity))}.text-neutral-800{--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgba(var(--color-primary-700),var(--tw-text-opacity))}.text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.\!text-neutral{--tw-text-opacity:1 !important;color:rgba(var(--color-neutral),var(--tw-text-opacity))!important}.\!no-underline{-webkit-text-decoration-line:none!important;text-decoration-line:none!important}.decoration-primary-500{-webkit-text-decoration-color:rgba(var(--color-primary-500),1);text-decoration-color:rgba(var(--color-primary-500),1)}.decoration-neutral-300{-webkit-text-decoration-color:rgba(var(--color-neutral-300),1);text-decoration-color:rgba(var(--color-neutral-300),1)}.opacity-0{opacity:0}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}body a,body button{transition-property:color,background-color,border-color,fill,stroke,-webkit-text-decoration-color;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,-webkit-text-decoration-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.icon svg{height:1em;width:1em}#search-query::-webkit-search-cancel-button,#search-query::-webkit-search-decoration,#search-query::-webkit-search-results-button,#search-query::-webkit-search-results-decoration{display:none}body:has(#menu-controller:checked){overflow-y:hidden}#menu-button:has(#menu-controller:checked){visibility:hidden}#menu-controller:checked~#menu-wrapper{visibility:visible;opacity:1}[dir=rtl] .prose blockquote{border-left-width:0;border-right-width:4px;padding-right:1rem}[dir=rtl] .prose ul>li,[dir=rtl] .prose ol>li{margin-right:1.75rem;padding-left:0;padding-right:.5rem}[dir=rtl] .prose ol>li:before,[dir=rtl] .prose ul>li:before{left:auto;right:.25rem}[dir=rtl] .prose thead td:first-child,[dir=rtl] .prose thead th:first-child{padding-right:0}[dir=rtl] .prose thead td:last-child,[dir=rtl] .prose thead th:last-child{padding-left:0}.prose div.min-w-0.max-w-prose>*:first-child{margin-top:.75rem}.toc ul,.toc li{list-style-type:none;padding-left:0;padding-right:0;line-height:1.375}[dir=ltr] .toc ul ul{padding-left:1rem}[dir=rtl] .toc ul ul{padding-right:1rem}.toc a{font-weight:400;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.dark .toc a{--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}[dir=rtl] .toc ul>li{margin-right:0}.highlight-wrapper{display:block}.highlight{position:relative;z-index:0}.highlight:hover>.copy-button{visibility:visible}.copy-button{visibility:hidden;position:absolute;top:0;right:0;z-index:10;width:5rem;cursor:pointer;white-space:nowrap;border-bottom-left-radius:.375rem;border-top-right-radius:.375rem;--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-200),var(--tw-bg-opacity));padding-top:.25rem;padding-bottom:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,liberation mono,courier new,monospace;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity));opacity:.9}.dark .copy-button{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-600),var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--color-neutral-200),var(--tw-text-opacity))}.copy-button:hover,.copy-button:focus,.copy-button:active,.copy-button:active:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.dark .copy-button:hover,.dark .copy-button:focus,.dark .copy-button:active,.dark .copy-button:active:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.copy-textarea{position:absolute;z-index:-10;opacity:.05}.prose .chroma{position:static;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-50),var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}.dark .prose .chroma{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-700),var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(var(--color-neutral-200),var(--tw-text-opacity))}.chroma .lntd,.chroma .lntd pre{margin:0;border-style:none;padding:0;vertical-align:top}.chroma .lntable{display:block;width:auto;overflow:hidden;padding-left:1rem;padding-right:1rem;padding-top:.75rem;padding-bottom:.75rem;font-size:1rem;line-height:1.5rem;border-spacing:0}.chroma .hl{margin-left:-1rem;margin-right:-1rem;display:block;width:auto;--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity));padding-left:1rem;padding-right:1rem}.dark .chroma .hl{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.chroma .lntd .hl{margin:0;padding:0}.chroma .lnt,.chroma .ln{margin-right:.4em;padding-left:.4em;padding-right:.4em;padding-top:0;padding-bottom:0;--tw-text-opacity:1;color:rgba(var(--color-neutral-600),var(--tw-text-opacity))}.dark .chroma .lnt,.dark .chroma .ln{--tw-text-opacity:1;color:rgba(var(--color-neutral-300),var(--tw-text-opacity))}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .nc,.chroma .fm,.chroma .nn,.chroma .vc,.chroma .o{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.dark .chroma .k,.dark .chroma .kd,.dark .chroma .kn,.dark .chroma .kp,.dark .chroma .kr,.dark .chroma .nc,.dark .chroma .fm,.dark .chroma .nn,.dark .chroma .vc,.dark .chroma .o{--tw-text-opacity:1;color:rgba(var(--color-primary-300),var(--tw-text-opacity))}.chroma .kc{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.dark .chroma .kc{--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .kt,.chroma .nv,.chroma .vi,.chroma .vm,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.dark .chroma .kt,.dark .chroma .nv,.dark .chroma .vi,.dark .chroma .vm,.dark .chroma .m,.dark .chroma .mb,.dark .chroma .mf,.dark .chroma .mh,.dark .chroma .mi,.dark .chroma .il,.dark .chroma .mo{--tw-text-opacity:1;color:rgba(var(--color-secondary-600),var(--tw-text-opacity))}.chroma .n,.chroma .nd,.chroma .ni,.chroma .nl{--tw-text-opacity:1;color:rgba(var(--color-secondary-900),var(--tw-text-opacity))}.dark .chroma .n,.dark .chroma .nd,.dark .chroma .ni,.dark .chroma .nl{--tw-text-opacity:1;color:rgba(var(--color-secondary-200),var(--tw-text-opacity))}.chroma .na,.chroma .nb,.chroma .bp,.chroma .nx,.chroma .py,.chroma .nt{--tw-text-opacity:1;color:rgba(var(--color-secondary-800),var(--tw-text-opacity))}.dark .chroma .na,.dark .chroma .nb,.dark .chroma .bp,.dark .chroma .nx,.dark .chroma .py,.dark .chroma .nt{--tw-text-opacity:1;color:rgba(var(--color-secondary-300),var(--tw-text-opacity))}.chroma .no,.chroma .ne,.chroma .vg{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.dark .chroma .no,.dark .chroma .ne,.dark .chroma .vg{--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .nf{--tw-text-opacity:1;color:rgba(var(--color-secondary-600),var(--tw-text-opacity))}.dark .chroma .nf{--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .l,.chroma .ld,.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .sh,.chroma .si,.chroma .sx,.chroma .s1,.chroma .gi,.chroma .go,.chroma .gp{--tw-text-opacity:1;color:rgba(var(--color-primary-800),var(--tw-text-opacity))}.dark .chroma .l,.dark .chroma .ld,.dark .chroma .s,.dark .chroma .sa,.dark .chroma .sb,.dark .chroma .sc,.dark .chroma .dl,.dark .chroma .sd,.dark .chroma .s2,.dark .chroma .sh,.dark .chroma .si,.dark .chroma .sx,.dark .chroma .s1,.dark .chroma .gi,.dark .chroma .go,.dark .chroma .gp{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.chroma .se{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-secondary-400),var(--tw-text-opacity))}.dark .chroma .se{--tw-text-opacity:1;color:rgba(var(--color-secondary-500),var(--tw-text-opacity))}.chroma .sr,.chroma .ss{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-primary-800),var(--tw-text-opacity))}.dark .chroma .sr,.dark .chroma .ss{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.chroma .ow{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.dark .chroma .ow{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.chroma .c,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{font-style:italic;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.dark .chroma .c,.dark .chroma .cm,.dark .chroma .c1,.dark .chroma .cs,.dark .chroma .cp,.dark .chroma .cpf{--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.chroma .ch{font-weight:600;font-style:italic;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.dark .chroma .ch{--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.chroma .ge{font-style:italic}.chroma .gh{font-weight:600;--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .gs{font-weight:600}.chroma .gu,.chroma .gt{--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.chroma .gl{-webkit-text-decoration-line:underline;text-decoration-line:underline}.thumbnail{min-width:300px;height:180px;background-repeat:no-repeat;background-size:cover;background-position:50%;box-shadow:10px 10px 30px 2px rgba(0,0,0,.6)}@media(min-width:640px){.thumbnail{min-width:100%;height:180px}.article{flex-wrap:wrap}}@media(min-width:853px){.thumbnail{min-width:300px;height:180px}.article{flex-wrap:nowrap}}.first\:mt-8:first-child{margin-top:2rem}.hover\:border-transparent:hover{border-color:transparent}.hover\:bg-primary-600:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-600),var(--tw-bg-opacity))}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.hover\:bg-primary-500:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-500),var(--tw-bg-opacity))}.hover\:\!bg-primary-500:hover{--tw-bg-opacity:1 !important;background-color:rgba(var(--color-primary-500),var(--tw-bg-opacity))!important}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-700),var(--tw-text-opacity))}.hover\:text-primary-500:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-500),var(--tw-text-opacity))}.hover\:text-neutral:hover{--tw-text-opacity:1;color:rgba(var(--color-neutral),var(--tw-text-opacity))}.hover\:underline:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}.hover\:decoration-primary-400:hover{-webkit-text-decoration-color:rgba(var(--color-primary-400),1);text-decoration-color:rgba(var(--color-primary-400),1)}.hover\:decoration-2:hover{text-decoration-thickness:2px}.hover\:underline-offset-2:hover{text-underline-offset:2px}.focus\:translate-y-0:focus{--tw-translate-y:0px;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))}.focus\:bg-primary-100:focus{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-100),var(--tw-bg-opacity))}.focus\:outline-dotted:focus{outline-style:dotted}.focus\:outline-2:focus{outline-width:2px}.focus\:outline-transparent:focus{outline-color:transparent}.group:hover .group-hover\:text-primary-600{--tw-text-opacity:1;color:rgba(var(--color-primary-600),var(--tw-text-opacity))}.group:hover .group-hover\:text-primary-300{--tw-text-opacity:1;color:rgba(var(--color-primary-300),var(--tw-text-opacity))}.group:hover .group-hover\:underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.group:hover .group-hover\:decoration-primary-500{-webkit-text-decoration-color:rgba(var(--color-primary-500),1);text-decoration-color:rgba(var(--color-primary-500),1)}.group:hover .group-hover\:opacity-100{opacity:1}[dir=ltr] .ltr\:right-0{right:0}[dir=ltr] .ltr\:-left-6{left:-1.5rem}[dir=ltr] .ltr\:ml-2{margin-left:.5rem}[dir=ltr] .ltr\:mr-4{margin-right:1rem}[dir=ltr] .ltr\:ml-1{margin-left:.25rem}[dir=ltr] .ltr\:-ml-5{margin-left:-1.25rem}[dir=ltr] .ltr\:mr-14{margin-right:3.5rem}[dir=ltr] .ltr\:block{display:block}[dir=ltr] .ltr\:inline{display:inline}[dir=ltr] .ltr\:hidden{display:none}[dir=ltr] .ltr\:border-l{border-left-width:1px}[dir=ltr] .ltr\:pr-2{padding-right:.5rem}[dir=ltr] .ltr\:pl-5{padding-left:1.25rem}[dir=ltr] .ltr\:pr-3{padding-right:.75rem}[dir=ltr] .ltr\:text-right{text-align:right}[dir=rtl] .rtl\:left-0{left:0}[dir=rtl] .rtl\:-right-6{right:-1.5rem}[dir=rtl] .rtl\:mr-2{margin-right:.5rem}[dir=rtl] .rtl\:ml-4{margin-left:1rem}[dir=rtl] .rtl\:mr-1{margin-right:.25rem}[dir=rtl] .rtl\:-mr-5{margin-right:-1.25rem}[dir=rtl] .rtl\:ml-14{margin-left:3.5rem}[dir=rtl] .rtl\:block{display:block}[dir=rtl] .rtl\:inline{display:inline}[dir=rtl] .rtl\:hidden{display:none}[dir=rtl] .rtl\:border-r{border-right-width:1px}[dir=rtl] .rtl\:pl-2{padding-left:.5rem}[dir=rtl] .rtl\:pr-5{padding-right:1.25rem}[dir=rtl] .rtl\:pl-3{padding-left:.75rem}[dir=rtl] .rtl\:text-left{text-align:left}.dark .dark\:prose-invert{--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.dark .dark\:prose-invert :where(a):not(:where([class~=not-prose] *)){-webkit-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] *)){color:rgba(var(--color-neutral-200),1);background-color:rgba(var(--color-neutral-700),1)}.dark .dark\:prose-invert :where(mark):not(:where([class~=not-prose] *)){background-color:rgba(var(--color-secondary-400),1)}.dark .dark\:flex{display:flex}.dark .dark\:hidden{display:none}.dark .dark\:border-neutral-600{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-600),var(--tw-border-opacity))}.dark .dark\:border-primary-600{--tw-border-opacity:1;border-color:rgba(var(--color-primary-600),var(--tw-border-opacity))}.dark .dark\:border-neutral-700{--tw-border-opacity:1;border-color:rgba(var(--color-neutral-700),var(--tw-border-opacity))}.dark .dark\:bg-neutral-800{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-800),var(--tw-bg-opacity))}.dark .dark\:bg-neutral-600{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-600),var(--tw-bg-opacity))}.dark .dark\:bg-neutral-800\/50{background-color:rgba(var(--color-neutral-800),.5)}.dark .dark\:bg-primary-400{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400),var(--tw-bg-opacity))}.dark .dark\:bg-neutral-900\/50{background-color:rgba(var(--color-neutral-900),.5)}.dark .dark\:bg-neutral-700{--tw-bg-opacity:1;background-color:rgba(var(--color-neutral-700),var(--tw-bg-opacity))}.dark .dark\:bg-primary-900{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.dark .dark\:bg-primary-800{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-800),var(--tw-bg-opacity))}.dark .dark\:text-neutral-500{--tw-text-opacity:1;color:rgba(var(--color-neutral-500),var(--tw-text-opacity))}.dark .dark\:text-neutral{--tw-text-opacity:1;color:rgba(var(--color-neutral),var(--tw-text-opacity))}.dark .dark\:text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.dark .dark\:text-neutral-300{--tw-text-opacity:1;color:rgba(var(--color-neutral-300),var(--tw-text-opacity))}.dark .dark\:text-neutral-400{--tw-text-opacity:1;color:rgba(var(--color-neutral-400),var(--tw-text-opacity))}.dark .dark\:text-neutral-800{--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}.dark .dark\:text-neutral-100{--tw-text-opacity:1;color:rgba(var(--color-neutral-100),var(--tw-text-opacity))}.dark .dark\:hover\:bg-primary-900:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.dark .dark\:hover\:bg-primary-400:hover{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-400),var(--tw-bg-opacity))}.dark .dark\:hover\:\!bg-primary-700:hover{--tw-bg-opacity:1 !important;background-color:rgba(var(--color-primary-700),var(--tw-bg-opacity))!important}.dark .dark\:hover\:text-primary-400:hover{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.dark .dark\:hover\:text-neutral-800:hover{--tw-text-opacity:1;color:rgba(var(--color-neutral-800),var(--tw-text-opacity))}.dark .dark\:focus\:bg-primary-900:focus{--tw-bg-opacity:1;background-color:rgba(var(--color-primary-900),var(--tw-bg-opacity))}.dark .group:hover .dark\:group-hover\:text-primary-400{--tw-text-opacity:1;color:rgba(var(--color-primary-400),var(--tw-text-opacity))}.dark .group:hover .dark\:group-hover\:text-neutral-700{--tw-text-opacity:1;color:rgba(var(--color-neutral-700),var(--tw-text-opacity))}@media print{.print\:hidden{display:none}}@media(min-width:640px){.sm\:mr-7{margin-right:1.75rem}.sm\:mb-0{margin-bottom:0}.sm\:flex{display:flex}.sm\:w-1\/2{width:50%}.sm\:w-32{width:8rem}.sm\:flex-row{flex-direction:row}.sm\:p-6{padding:1.5rem}.sm\:px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:pt-10{padding-top:2.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}[dir=ltr] .ltr\:sm\:mr-7{margin-right:1.75rem}[dir=ltr] .ltr\:sm\:last\:mr-0:last-child{margin-right:0}[dir=rtl] .rtl\:sm\:ml-7{margin-left:1.75rem}[dir=rtl] .rtl\:sm\:last\:ml-0:last-child{margin-left:0}}@media(min-width:853px){.md\:mb-0{margin-bottom:0}.md\:ml-12{margin-left:3rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/3{width:33.333333%}.md\:justify-start{justify-content:flex-start}.md\:p-\[10vh\]{padding:10vh}.md\:px-24{padding-left:6rem;padding-right:6rem}}@media(min-width:1024px){.lg\:sticky{position:-webkit-sticky;position:sticky}.lg\:top-10{top:2.5rem}.lg\:order-last{order:9999}.lg\:hidden{display:none}.lg\:w-1\/4{width:25%}.lg\:max-w-xs{max-width:20rem}.lg\:flex-row{flex-direction:row}.lg\:p-\[12vh\]{padding:12vh}.lg\:px-32{padding-left:8rem;padding-right:8rem}[dir=ltr] .ltr\:lg\:pl-8{padding-left:2rem}[dir=rtl] .rtl\:lg\:pr-8{padding-right:2rem}}@media(min-width:1280px){.xl\:w-1\/5{width:20%}} \ No newline at end of file diff --git a/docs/docs/advanced-customisation/index.html b/docs/docs/advanced-customisation/index.html index 88ac2d9e..2acd9436 100644 --- a/docs/docs/advanced-customisation/index.html +++ b/docs/docs/advanced-customisation/index.html @@ -1,4 +1,4 @@ -Advanced Customisation · Blowfish +Advanced Customisation · Blowfish @@ -23,7 +23,9 @@ · -

There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.

If you need further advice, post your questions on GitHub Discussions.

Hugo project structure #

Before leaping into it, first a quick note about Hugo project structure and best practices for managing your content and theme customisations.

In summary: Never directly edit the theme files. Only make customisations in your Hugo project’s sub-directories, not in the themes directory itself.

Blowfish is built to take advantage of all the standard Hugo practices. It is designed to allow all aspects of the theme to be customised and overriden without changing any of the core theme files. This allows for a seamless upgrade experience while giving you total control over the look and feel of your website.

In order to achieve this, you should never manually adjust any of the theme files directly. Whether you install using Hugo modules, as a git submodule or manually include the theme in your themes/ directory, you should always leave these files intact.

The correct way to adjust any theme behaviour is by overriding files using Hugo’s powerful file lookup order. In summary, the lookup order ensures any files you include in your project directory will automatically take precedence over any theme files.

For example, if you wanted to override the main article template in Blowfish, you can simply create your own layouts/_default/single.html file and place it in the root of your project. This file will then override the single.html from the theme without ever changing the theme itself. This works for any theme files - HTML templates, partials, shortcodes, config files, data, assets, etc.

As long as you follow this simple practice, you will always be able to update the theme (or test different theme versions) without worrying that you will lose any of your custom changes.

Colour schemes #

Blowfish ships with a number of colour schemes out of the box. To change the basic colour scheme, you can set the colorScheme theme parameter. Refer to the Getting Started section to learn more about the built-in schemes.

In addition to the default schemes, you can also create your own and re-style the entire website to your liking. Schemes are created by by placing a <scheme-name>.css file in the assets/css/schemes/ folder. Once the file is created, simply refer to it by name in the theme configuration.

Blowfish defines a three-colour palette that is used throughout the theme. The three colours are defined as neutral, primary and secondary variants, each containing ten shades of colour.

Due to the way Tailwind CSS 3.0 calculates colour values with opacity, the colours specified in the scheme need to conform to a particular format by providing the red, green and blue colour values.

:root {
+advanced
+css
+docs

There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.

If you need further advice, post your questions on GitHub Discussions.

Hugo project structure #

Before leaping into it, first a quick note about Hugo project structure and best practices for managing your content and theme customisations.

In summary: Never directly edit the theme files. Only make customisations in your Hugo project’s sub-directories, not in the themes directory itself.

Blowfish is built to take advantage of all the standard Hugo practices. It is designed to allow all aspects of the theme to be customised and overriden without changing any of the core theme files. This allows for a seamless upgrade experience while giving you total control over the look and feel of your website.

In order to achieve this, you should never manually adjust any of the theme files directly. Whether you install using Hugo modules, as a git submodule or manually include the theme in your themes/ directory, you should always leave these files intact.

The correct way to adjust any theme behaviour is by overriding files using Hugo’s powerful file lookup order. In summary, the lookup order ensures any files you include in your project directory will automatically take precedence over any theme files.

For example, if you wanted to override the main article template in Blowfish, you can simply create your own layouts/_default/single.html file and place it in the root of your project. This file will then override the single.html from the theme without ever changing the theme itself. This works for any theme files - HTML templates, partials, shortcodes, config files, data, assets, etc.

As long as you follow this simple practice, you will always be able to update the theme (or test different theme versions) without worrying that you will lose any of your custom changes.

Colour schemes #

Blowfish ships with a number of colour schemes out of the box. To change the basic colour scheme, you can set the colorScheme theme parameter. Refer to the Getting Started section to learn more about the built-in schemes.

In addition to the default schemes, you can also create your own and re-style the entire website to your liking. Schemes are created by by placing a <scheme-name>.css file in the assets/css/schemes/ folder. Once the file is created, simply refer to it by name in the theme configuration.

Blowfish defines a three-colour palette that is used throughout the theme. The three colours are defined as neutral, primary and secondary variants, each containing ten shades of colour.

Due to the way Tailwind CSS 3.0 calculates colour values with opacity, the colours specified in the scheme need to conform to a particular format by providing the red, green and blue colour values.

:root {
   --color-primary-500: 139, 92, 246;
 }
 

This example defines a CSS variable for the primary-500 colour with a red value of 139, green value of 92 and blue value of 246.

Use one of the existing theme stylesheets as a template. You are free to define your own colours, but for some inspiration, check out the official Tailwind colour palette reference.

Overriding the stylesheet #

Sometimes you need to add a custom style to style your own HTML elements. Blowfish provides for this scenario by allowing you to override the default styles in your own CSS stylesheet. Simply create a custom.css file in your project’s assets/css/ folder.

The custom.css file will be minified by Hugo and loaded automatically after all the other theme styles which means anything in your custom file will take precedence over the defaults.

Adjusting the font size #

Changing the font size of your website is one example of overriding the default stylesheet. Blowfish makes this simple as it uses scaled font sizes throughout the theme which are derived from the base HTML font size. By default, Tailwind sets the default size to 12pt, but it can be changed to whatever value you prefer.

Create a custom.css file using the instructions above and add the following CSS declaration:

/* Increase the default font size */
diff --git a/docs/docs/configuration/index.html b/docs/docs/configuration/index.html
index 7f57f23d..02258b9d 100644
--- a/docs/docs/configuration/index.html
+++ b/docs/docs/configuration/index.html
@@ -1,4 +1,4 @@
-Configuration · Blowfish
+Configuration · Blowfish
 
 
 
@@ -23,7 +23,8 @@
 
 ·
-

Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured.

The theme ships with a default configuration that gets you up and running with a basic blog or static website.

Configuration files bundled with the theme are provided in TOML format as this is the default Hugo syntax. Feel free to convert your config to YAML or JSON if you wish.

The default theme configuration is documented in each file so you can freely adjust the settings to meet your needs.

As outlined in the installation instructions, you should adjust your theme configuration by modifying the files in the config/_default/ folder of your Hugo project and delete the config.toml file in your project root.

Site configuration #

Standard Hugo configuration variables are respected throughout the theme, however there are some specific things that should be configured for the best experience.

The site configuration is managed through the config/_default/config.toml file. The table below outlines all the settings that the Blowfish takes advantage of.

Note that the variable names provided in this table use dot notation to simplify the TOML data structure (ie. outputs.home refers to [outputs] home).

NameDefaultDescription
theme"blowfish"When using Hugo Modules this config value should be removed. For all other installation types, this must be set to blowfish for the theme to function.
baseURLNot setThe URL to the root of the website.
defaultContentLanguage"en"This value determines the default language of theme components and content. Refer to the language and i18n section below for supported language codes.
enableRobotsTXTtrueWhen enabled, a robots.txt file will be created in the site root that allows search engines to crawl the entire site. If you prefer to provide your own pre-made robots.txt, set to false and place your file in the static directory. For complete control, you may provide a custom layout to generate this file.
paginate10The number of articles listed on each page of the article listing.
summaryLength0The number of words that are used to generate the article summary when one is not provided in the front matter. A value of 0 will use the first sentence. This value has no effect when summaries are hidden.
outputs.home["HTML", "RSS", "JSON"]The output formats that are generated for the site. Blowfish requires HTML, RSS and JSON for all theme components to work correctly.
permalinksNot setRefer to the Hugo docs for permalink configuration.
taxonomiesNot setRefer to the Organising content section for taxonomy configuration.

Thumbnails #

Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article strucutre, you just need to place an image file (almost all formats are supported bue we recommend .png or .jpg) that starts with feature* inside your article folder. And that’s it, Blowfish will then able to both use the image as a thumbnail within your website as well as for oEmbed cards across social platforms.

Here is also a guide with more info and a sample if you want to see how you can do it.

Language and i18n #

Blowfish is optimised for full multilingual websites and theme assets are translated into several languages out of the box. The language configuration allows you to generate multiple versions of your content to provide a customised experience to your visitors in their native language.

The theme currently supports the following languages by default:

LanguageCode
🇬🇧 Englishen
🇧🇩 Bengalibn
🇨🇳 Simplified Chinese (China)zh-cn
🇹🇼 Traditional Chinese (Taiwan)zh-tw
🇫🇮 Finnishfi
🇫🇷 Frenchfr
🇩🇪 Germande
🇮🇱 Hebrewhe
🇭🇺 Hungarianhu
🇮🇹 Italianit
🇯🇵 Japaneseja
🇧🇷 Portuguese (Brazil)pt-br
🇵🇹 Portuguese (Portugal)pt-pt
🇷🇴 Romanianro
🇪🇸 Spanish (Spain)es
🇹🇷 Turkishtr

The default translations can be overridden by creating a custom file in i18n/[code].yaml that contains the translation strings. You can also use this method to add new languages. If you’d like to share a new translation with the community, please open a pull request.

Configuration #

In order to be as flexible as possible, a language configuration file needs to be created for each language on the website. By default Blowfish includes an English language configuration at config/_default/languages.en.toml.

The default file can be used as a template to create additional languages, or renamed if you wish to author your website in a language other than English. Simply name the file using the format languages.[language-code].toml.

Note: Ensure the defaultContentLanguage parameter in the site configuration matches the language code in your language config filename.
NameDefaultDescription
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.
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).
weight1The weight determines the order of languages when building multilingual sites.
rtlfalseWhether or not this is a RTL language. Set to true to reflow content from right-to-left. Blowfish fully supports using RTL and LTR languages at the same time and will dynamically adjust to both.
dateFormat"2 January 2006"How dates are formatted in this language. Refer to the Hugo docs for acceptable formats.
title"Blowfish"The title of the website. This will be displayed in the site header and footer.
descriptionNot setThe website description. This will be used in the site metadata.
copyrightNot setA Markdown string containing the copyright message to be displayed in the site footer. If none is provided, Blowfish will automatically generate a copyright string using the site title.
author.nameNot setThe author’s name. This will be displayed in article footers, and on the homepage when the profile layout is used.
author.imageNot setPath 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.headlineNot setA Markdown string containing the author’s headline. It will be displayed on the profile homepage under the author’s name.
author.bioNot setA Markdown string containing the author’s bio. It will be displayed in article footers.
author.linksNot setThe links to display alongside the author’s details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in assets/icons/.

Blowfish also supports language-specific menu configurations. Menu config files follow the same naming format as the languages file. Simply provide the language code in the file name to tell Hugo which language the file relates to.

Menu config files are named with the format menus.[language-code].toml. Always ensure that the language code used in the menus configuration matches the languages configuration.

The Getting Started section explains more about the structure of this file. You can also refer to the Hugo menu docs for more configuration examples.

Theme parameters #

Blowfish provides a large number of configuration parameters that control how the theme functions. The table below outlines every available parameter in the config/_default/params.toml file.

Many of the article defaults here can be overridden on a per article basis by specifying it in the front matter. Refer to the Front Matter section for further details.

NameDefaultDescription
colorScheme"blowfish"The theme colour scheme to use. Valid values are blowfish (default), avocado, ocean, fire and slate. Refer to the Colour Schemes section for more details.
defaultAppearance"light"The default theme appearance, either light or dark.
autoSwitchAppearancetrueWhether the theme appearance automatically switches based upon the visitor’s operating system preference. Set to false to force the site to always use the defaultAppearance.
enableSearchfalseWhether 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 being set correctly.
enableCodeCopyfalseWhether 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 below.
logoNot setThe 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.
mainSectionsNot setThe sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used.
robotsNot setString that indicates how robots should handle your site. If set, it will be output in the page head. Refer to Google’s docs for valid values.
header.layout"basic"The layout of the page header and menu. Valid values are basic, hamburger or custom. When set to custom, you must provide your own layout by creating a /layouts/partials/header/custom.html file.
footer.showCopyrighttrueWhether 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.
footer.showThemeAttributiontrueWhether 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.showAppearanceSwitcherfalseWhether or not to show the appearance switcher in the site footer. The browser’s local storage is used to persist the visitor’s preference.
footer.showScrollToToptrueWhen set to true the scroll to top arrow is displayed.
homepage.layout"page"The layout of the homepage. Valid values are page, profile or custom. When set to custom, you must provide your own layout by creating a /layouts/partials/home/custom.html file. Refer to the Homepage Layout section for more details.
homepage.showRecentfalseWhether or not to display the recent articles list on the homepage.
homepage.showRecentItems5How many articles to display if showRecent is true. If variable is set to 0 or if it isn’t defined the system will default to 5 articles.
homepage.showMoreLink‘false’Wether or not to display a show more link at the end of your posts that takes the user to a predefined place.
homepage.showMoreLinkDest‘/posts’The destination of the show more button.
article.showDatetrueWhether or not article dates are displayed.
article.showViewsfalseWhether or not article views are displayed. This requires firebase integrations to be enabled, look below.
article.showLikesfalseWhether or not article likes are displayed. This requires firebase integrations to be enabled, look below.
article.showDateUpdatedfalseWhether or not the dates articles were updated are displayed.
article.showAuthortrueWhether or not the author box is displayed in the article footer.
article.showBreadcrumbsfalseWhether or not breadcrumbs are displayed in the article header.
article.showDraftLabeltrueWhether or not the draft indicator is shown next to articles when site is built with --buildDrafts.
article.showEditfalseWhether or not the link to edit the article content should be displayed.
article.editURLNot setWhen article.showEdit is active, the URL for the edit link.
article.editAppendPathtrueWhen article.showEdit is active, whether or not the path to the current article should be appended to the URL set at article.editURL.
article.showHeadingAnchorstrueWhether or not heading anchor links are displayed alongside headings within articles.
article.showPaginationtrueWhether or not the next/previous article links are displayed in the article footer.
article.invertPaginationfalseWhether or not to flip the direction of the next/previous article links.
article.showReadingTimetrueWhether or not article reading times are displayed.
article.showTableOfContentsfalseWhether or not the table of contents is displayed on articles.
article.showTaxonomiesfalseWhether or not the taxonomies related to this article are displayed.
article.showWordCountfalseWhether or not article word counts are displayed.
article.showCommentsfalseWhether or not the comments partial is included after the article footer.
article.sharingLinksNot setWhich sharing links to display at the end of each article. When not provided, or set to false no links will be displayed.
list.showBreadcrumbsfalseWhether or not breadcrumbs are displayed in the header on list pages.
list.showTableOfContentsfalseWhether or not the table of contents is displayed on list pages.
list.showSummaryfalseWhether or not article summaries are displayed on list pages. If a summary is not provided in the front matter, one will be auto generated using the summaryLength parameter in the site configuration.
list.groupByYeartrueWhether or not articles are grouped by year on list pages.
sitemap.excludedKinds["taxonomy", "term"]Kinds of content that should be excluded from the generated /sitemap.xml file. Refer to the Hugo docs for acceptable values.
taxonomy.showTermCounttrueWhether or not the number of articles within a taxonomy term is displayed on the taxonomy listing.
firebase.apiKeyNot setFirebase apiKey, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.authDomainNot setFirebase authDomain, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.projectIdNot setFirebase projectId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.storageBucketNot setFirebase storageBucket, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.messagingSenderIdNot setFirebase messagingSenderId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.appIdNot setFirebase appId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.measurementIdNot setFirebase measurementId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
fathomAnalytics.siteNot setThe site code generated by Fathom Analytics for the website. Refer to the Analytics docs for more details.
fathomAnalytics.domainNot setIf using a custom domain with Fathom Analytics, provide it here to serve script.js from the custom domain.
verification.googleNot setThe site verification string provided by Google to be included in the site metadata.
verification.bingNot setThe site verification string provided by Bing to be included in the site metadata.
verification.pinterestNot setThe site verification string provided by Pinterest to be included in the site metadata.
verification.yandexNot setThe site verification string provided by Yandex to be included in the site metadata.

Other configuration files #

The theme also includes a markup.toml configuration file. This file contains some important parameters that ensure that Hugo is correctly configured to generate sites built with Blowfish.

Always ensure this file is present in the config directory and that the required values are set. Failure to do so may cause certain features to fucntion incorrectly and could result in unintended behaviour.


+config +docs

Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured.

The theme ships with a default configuration that gets you up and running with a basic blog or static website.

Configuration files bundled with the theme are provided in TOML format as this is the default Hugo syntax. Feel free to convert your config to YAML or JSON if you wish.

The default theme configuration is documented in each file so you can freely adjust the settings to meet your needs.

As outlined in the installation instructions, you should adjust your theme configuration by modifying the files in the config/_default/ folder of your Hugo project and delete the config.toml file in your project root.

Site configuration #

Standard Hugo configuration variables are respected throughout the theme, however there are some specific things that should be configured for the best experience.

The site configuration is managed through the config/_default/config.toml file. The table below outlines all the settings that the Blowfish takes advantage of.

Note that the variable names provided in this table use dot notation to simplify the TOML data structure (ie. outputs.home refers to [outputs] home).

NameDefaultDescription
theme"blowfish"When using Hugo Modules this config value should be removed. For all other installation types, this must be set to blowfish for the theme to function.
baseURLNot setThe URL to the root of the website.
defaultContentLanguage"en"This value determines the default language of theme components and content. Refer to the language and i18n section below for supported language codes.
enableRobotsTXTtrueWhen enabled, a robots.txt file will be created in the site root that allows search engines to crawl the entire site. If you prefer to provide your own pre-made robots.txt, set to false and place your file in the static directory. For complete control, you may provide a custom layout to generate this file.
paginate10The number of articles listed on each page of the article listing.
summaryLength0The number of words that are used to generate the article summary when one is not provided in the front matter. A value of 0 will use the first sentence. This value has no effect when summaries are hidden.
outputs.home["HTML", "RSS", "JSON"]The output formats that are generated for the site. Blowfish requires HTML, RSS and JSON for all theme components to work correctly.
permalinksNot setRefer to the Hugo docs for permalink configuration.
taxonomiesNot setRefer to the Organising content section for taxonomy configuration.

Thumbnails #

Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article strucutre, you just need to place an image file (almost all formats are supported bue we recommend .png or .jpg) that starts with feature* inside your article folder. And that’s it, Blowfish will then able to both use the image as a thumbnail within your website as well as for oEmbed cards across social platforms.

Here is also a guide with more info and a sample if you want to see how you can do it.

Language and i18n #

Blowfish is optimised for full multilingual websites and theme assets are translated into several languages out of the box. The language configuration allows you to generate multiple versions of your content to provide a customised experience to your visitors in their native language.

The theme currently supports the following languages by default:

LanguageCode
🇬🇧 Englishen
🇧🇩 Bengalibn
🇨🇳 Simplified Chinese (China)zh-cn
🇹🇼 Traditional Chinese (Taiwan)zh-tw
🇫🇮 Finnishfi
🇫🇷 Frenchfr
🇩🇪 Germande
🇮🇱 Hebrewhe
🇭🇺 Hungarianhu
🇮🇹 Italianit
🇯🇵 Japaneseja
🇧🇷 Portuguese (Brazil)pt-br
🇵🇹 Portuguese (Portugal)pt-pt
🇷🇴 Romanianro
🇪🇸 Spanish (Spain)es
🇹🇷 Turkishtr

The default translations can be overridden by creating a custom file in i18n/[code].yaml that contains the translation strings. You can also use this method to add new languages. If you’d like to share a new translation with the community, please open a pull request.

Configuration #

In order to be as flexible as possible, a language configuration file needs to be created for each language on the website. By default Blowfish includes an English language configuration at config/_default/languages.en.toml.

The default file can be used as a template to create additional languages, or renamed if you wish to author your website in a language other than English. Simply name the file using the format languages.[language-code].toml.

Note: Ensure the defaultContentLanguage parameter in the site configuration matches the language code in your language config filename.
NameDefaultDescription
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.
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).
weight1The weight determines the order of languages when building multilingual sites.
rtlfalseWhether or not this is a RTL language. Set to true to reflow content from right-to-left. Blowfish fully supports using RTL and LTR languages at the same time and will dynamically adjust to both.
dateFormat"2 January 2006"How dates are formatted in this language. Refer to the Hugo docs for acceptable formats.
title"Blowfish"The title of the website. This will be displayed in the site header and footer.
descriptionNot setThe website description. This will be used in the site metadata.
copyrightNot setA Markdown string containing the copyright message to be displayed in the site footer. If none is provided, Blowfish will automatically generate a copyright string using the site title.
author.nameNot setThe author’s name. This will be displayed in article footers, and on the homepage when the profile layout is used.
author.imageNot setPath 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.headlineNot setA Markdown string containing the author’s headline. It will be displayed on the profile homepage under the author’s name.
author.bioNot setA Markdown string containing the author’s bio. It will be displayed in article footers.
author.linksNot setThe links to display alongside the author’s details. The config file contains example links which can simply be uncommented to enable. The order that the links are displayed is determined by the order they appear in the array. Custom links can be added by providing corresponding SVG icon assets in assets/icons/.

Blowfish also supports language-specific menu configurations. Menu config files follow the same naming format as the languages file. Simply provide the language code in the file name to tell Hugo which language the file relates to.

Menu config files are named with the format menus.[language-code].toml. Always ensure that the language code used in the menus configuration matches the languages configuration.

The Getting Started section explains more about the structure of this file. You can also refer to the Hugo menu docs for more configuration examples.

Theme parameters #

Blowfish provides a large number of configuration parameters that control how the theme functions. The table below outlines every available parameter in the config/_default/params.toml file.

Many of the article defaults here can be overridden on a per article basis by specifying it in the front matter. Refer to the Front Matter section for further details.

NameDefaultDescription
colorScheme"blowfish"The theme colour scheme to use. Valid values are blowfish (default), avocado, ocean, fire and slate. Refer to the Colour Schemes section for more details.
defaultAppearance"light"The default theme appearance, either light or dark.
autoSwitchAppearancetrueWhether the theme appearance automatically switches based upon the visitor’s operating system preference. Set to false to force the site to always use the defaultAppearance.
enableSearchfalseWhether 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 being set correctly.
enableCodeCopyfalseWhether 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 below.
logoNot setThe 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.
mainSectionsNot setThe sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used.
robotsNot setString that indicates how robots should handle your site. If set, it will be output in the page head. Refer to Google’s docs for valid values.
header.layout"basic"The layout of the page header and menu. Valid values are basic, hamburger or custom. When set to custom, you must provide your own layout by creating a /layouts/partials/header/custom.html file.
footer.showCopyrighttrueWhether 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.
footer.showThemeAttributiontrueWhether 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.showAppearanceSwitcherfalseWhether or not to show the appearance switcher in the site footer. The browser’s local storage is used to persist the visitor’s preference.
footer.showScrollToToptrueWhen set to true the scroll to top arrow is displayed.
homepage.layout"page"The layout of the homepage. Valid values are page, profile or custom. When set to custom, you must provide your own layout by creating a /layouts/partials/home/custom.html file. Refer to the Homepage Layout section for more details.
homepage.showRecentfalseWhether or not to display the recent articles list on the homepage.
homepage.showRecentItems5How many articles to display if showRecent is true. If variable is set to 0 or if it isn’t defined the system will default to 5 articles.
homepage.showMoreLink‘false’Wether or not to display a show more link at the end of your posts that takes the user to a predefined place.
homepage.showMoreLinkDest‘/posts’The destination of the show more button.
article.showDatetrueWhether or not article dates are displayed.
article.showViewsfalseWhether or not article views are displayed. This requires firebase integrations to be enabled, look below.
article.showLikesfalseWhether or not article likes are displayed. This requires firebase integrations to be enabled, look below.
article.showDateUpdatedfalseWhether or not the dates articles were updated are displayed.
article.showAuthortrueWhether or not the author box is displayed in the article footer.
article.showBreadcrumbsfalseWhether or not breadcrumbs are displayed in the article header.
article.showDraftLabeltrueWhether or not the draft indicator is shown next to articles when site is built with --buildDrafts.
article.showEditfalseWhether or not the link to edit the article content should be displayed.
article.editURLNot setWhen article.showEdit is active, the URL for the edit link.
article.editAppendPathtrueWhen article.showEdit is active, whether or not the path to the current article should be appended to the URL set at article.editURL.
article.showHeadingAnchorstrueWhether or not heading anchor links are displayed alongside headings within articles.
article.showPaginationtrueWhether or not the next/previous article links are displayed in the article footer.
article.invertPaginationfalseWhether or not to flip the direction of the next/previous article links.
article.showReadingTimetrueWhether or not article reading times are displayed.
article.showTableOfContentsfalseWhether or not the table of contents is displayed on articles.
article.showTaxonomiesfalseWhether or not the taxonomies related to this article are displayed.
article.showWordCountfalseWhether or not article word counts are displayed.
article.showCommentsfalseWhether or not the comments partial is included after the article footer.
article.sharingLinksNot setWhich sharing links to display at the end of each article. When not provided, or set to false no links will be displayed.
list.showBreadcrumbsfalseWhether or not breadcrumbs are displayed in the header on list pages.
list.showTableOfContentsfalseWhether or not the table of contents is displayed on list pages.
list.showSummaryfalseWhether or not article summaries are displayed on list pages. If a summary is not provided in the front matter, one will be auto generated using the summaryLength parameter in the site configuration.
list.groupByYeartrueWhether or not articles are grouped by year on list pages.
sitemap.excludedKinds["taxonomy", "term"]Kinds of content that should be excluded from the generated /sitemap.xml file. Refer to the Hugo docs for acceptable values.
taxonomy.showTermCounttrueWhether or not the number of articles within a taxonomy term is displayed on the taxonomy listing.
firebase.apiKeyNot setFirebase apiKey, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.authDomainNot setFirebase authDomain, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.projectIdNot setFirebase projectId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.storageBucketNot setFirebase storageBucket, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.messagingSenderIdNot setFirebase messagingSenderId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.appIdNot setFirebase appId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
firebase.measurementIdNot setFirebase measurementId, required to integrate against Firebase. Check this page for a guide on how to integrate Firebase into Blowfish
fathomAnalytics.siteNot setThe site code generated by Fathom Analytics for the website. Refer to the Analytics docs for more details.
fathomAnalytics.domainNot setIf using a custom domain with Fathom Analytics, provide it here to serve script.js from the custom domain.
verification.googleNot setThe site verification string provided by Google to be included in the site metadata.
verification.bingNot setThe site verification string provided by Bing to be included in the site metadata.
verification.pinterestNot setThe site verification string provided by Pinterest to be included in the site metadata.
verification.yandexNot setThe site verification string provided by Yandex to be included in the site metadata.

Other configuration files #

The theme also includes a markup.toml configuration file. This file contains some important parameters that ensure that Hugo is correctly configured to generate sites built with Blowfish.

Always ensure this file is present in the config directory and that the required values are set. Failure to do so may cause certain features to fucntion incorrectly and could result in unintended behaviour.

If you’ve been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.

Tip: If you’re new to Hugo, be sure to check out the official docs to learn more about the concept of page bundles and resources.

The examples on this page can all be adapted to different scenarios but hopefully give you some ideas about how to approach formatting a particular content item for your individual project.

Branch pages #

Branch page bundles in Hugo cover items like the homepage, section listings, and taxonomy pages. The important thing to remember about branch bundles is that the filename for this content type is _index.md.

Blowfish will honour the front matter parameters specified in branch pages and these will override the default settings for that particular page. For example, setting the title parameter in a branch page will allow overriding the page title.

Homepage #

Layout:layouts/index.html
Content:content/_index.md

The homepage in Blowfish is special in that it’s overarching design is controlled by the homepage layout config parameter. You can learn more about this in the Homepage Layout section.

If you want to add custom content to this page, you simply need to create a content/_index.md file. Anything in this file will then be included in your homepage.

Example:

---
+content
+example

If you’ve been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.

Tip: If you’re new to Hugo, be sure to check out the official docs to learn more about the concept of page bundles and resources.

The examples on this page can all be adapted to different scenarios but hopefully give you some ideas about how to approach formatting a particular content item for your individual project.

Branch pages #

Branch page bundles in Hugo cover items like the homepage, section listings, and taxonomy pages. The important thing to remember about branch bundles is that the filename for this content type is _index.md.

Blowfish will honour the front matter parameters specified in branch pages and these will override the default settings for that particular page. For example, setting the title parameter in a branch page will allow overriding the page title.

Homepage #

Layout:layouts/index.html
Content:content/_index.md

The homepage in Blowfish is special in that it’s overarching design is controlled by the homepage layout config parameter. You can learn more about this in the Homepage Layout section.

If you want to add custom content to this page, you simply need to create a content/_index.md file. Anything in this file will then be included in your homepage.

Example:

---
 title: "Welcome to Blowfish!"
 description: "This is a demo of adding content to the homepage."
 ---
diff --git a/docs/docs/firebase-views/index.html b/docs/docs/firebase-views/index.html
index 00f50a32..b2b5e39b 100644
--- a/docs/docs/firebase-views/index.html
+++ b/docs/docs/firebase-views/index.html
@@ -1,4 +1,4 @@
-Firebase: Views & Likes · Blowfish
+Firebase: Views & Likes · Blowfish
 
 
 
@@ -24,7 +24,9 @@
 
 ·
-

In order to be able to support dynamic data across your website we’ve added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.

  1. Go to Firebase website and create an account for free
  2. Create a new project
  3. Select analytics location
  4. Setup firebase in Blowfish by getting the variables for your project and setting them inside params.toml file. More details can be found in this page. You can find an example of the file Firebase will provide below, notice the parameters within the FirebaseConfig object.
// Import the functions you need from the SDKs you need
+firebase
+views
+likes

In order to be able to support dynamic data across your website we’ve added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.

  1. Go to Firebase website and create an account for free
  2. Create a new project
  3. Select analytics location
  4. Setup firebase in Blowfish by getting the variables for your project and setting them inside params.toml file. More details can be found in this page. You can find an example of the file Firebase will provide below, notice the parameters within the FirebaseConfig object.
// Import the functions you need from the SDKs you need
 import { initializeApp } from "firebase/app";
 import { getAnalytics } from "firebase/analytics";
 // TODO: Add SDKs for Firebase products that you want to use
diff --git a/docs/docs/front-matter/index.html b/docs/docs/front-matter/index.html
index 0b27eec9..1077c4d1 100644
--- a/docs/docs/front-matter/index.html
+++ b/docs/docs/front-matter/index.html
@@ -1,4 +1,4 @@
-Front Matter · Blowfish
+Front Matter · Blowfish
 
 
 
@@ -23,7 +23,9 @@
 
 ·
-

In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.

Front matter parameter default values are inherited from the theme’s base configuration, so you only need to specify these parameters in your front matter when you want to override the default.

NameDefaultDescription
titleNot setThe name of the article.
descriptionNot setThe text description for the article. It is used in the HTML metadata.
externalUrlNot setIf this article is published on a third-party website, the URL to this article. Providing a URL will prevent a content page being generated and any references to this article will link directly to the third-party website.
editURLarticle.editURLWhen showEdit is active, the URL for the edit link.
editAppendPatharticle.editAppendPathWhen showEdit is active, whether or not the path to the current article should be appended to the URL set at editURL.
groupByYearlist.groupByYearWhether or not articles are grouped by year on list pages.
menuNot setWhen a value is provided, a link to this article will appear in the named menus. Valid values are main or footer.
robotsNot setString that indicates how robots should handle this article. If set, it will be output in the page head. Refer to Google’s docs for valid values.
sharingLinksarticle.sharingLinksWhich sharing links to display at the end of this article. When not provided, or set to false no links will be displayed.
showAuthorarticle.showAuthorWhether or not the author box is displayed in the article footer.
showBreadcrumbsarticle.showBreadcrumbs or list.showBreadcrumbsWhether the breadcrumbs are displayed in the article or list header.
showDatearticle.showDateWhether or not the article date is displayed. The date is set using the date parameter.
showDateUpdatedarticle.showDateUpdatedWhether or not the date the article was updated is displayed. The date is set using the lastmod parameter.
showEditarticle.showEditWhether or not the link to edit the article content should be displayed.
showHeadingAnchorsarticle.showHeadingAnchorsWhether or not heading anchor links are displayed alongside headings within this article.
showPaginationarticle.showPaginationWhether or not the next/previous article links are displayed in the article footer.
invertPaginationarticle.invertPaginationWhether or not to flip the direction of the next/previous article links.
showReadingTimearticle.showReadingTimeWhether or not the article reading time is displayed.
showTaxonomiesarticle.showTaxonomiesWhether or not the taxonomies that relate to this article are displayed.
showTableOfContentsarticle.showTableOfContentsWhether or not the table of contents is displayed on this article.
showWordCountarticle.showWordCountWhether or not the article word count is displayed.
showCommentsarticle.showCommentsWhether or not the comments partial is included after the article footer.
showSummarylist.showSummaryWhether or not the article summary should be displayed on list pages.
showViewsarticle.showViewsWhether or not the article views should be displayed in lists and detailed view. This requires a firebase integration. Check this page for a guide on how to integrate Firebase into Blowfish
showLikesarticle.showLikesWhether or not the article likes should be displayed in lists and detailed view. This requires a firebase integration. Check this page for a guide on how to integrate Firebase into Blowfish
summaryAuto generated using summaryLength (see site configuration)When showSummary is enabled, this is the Markdown string to be used as the summary for this article.
xmltrue unless excluded by sitemap.excludedKindsWhether or not this article is included in the generated /sitemap.xml file.

+front matter +config +docs

In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.

Front matter parameter default values are inherited from the theme’s base configuration, so you only need to specify these parameters in your front matter when you want to override the default.

NameDefaultDescription
titleNot setThe name of the article.
descriptionNot setThe text description for the article. It is used in the HTML metadata.
externalUrlNot setIf this article is published on a third-party website, the URL to this article. Providing a URL will prevent a content page being generated and any references to this article will link directly to the third-party website.
editURLarticle.editURLWhen showEdit is active, the URL for the edit link.
editAppendPatharticle.editAppendPathWhen showEdit is active, whether or not the path to the current article should be appended to the URL set at editURL.
groupByYearlist.groupByYearWhether or not articles are grouped by year on list pages.
menuNot setWhen a value is provided, a link to this article will appear in the named menus. Valid values are main or footer.
robotsNot setString that indicates how robots should handle this article. If set, it will be output in the page head. Refer to Google’s docs for valid values.
sharingLinksarticle.sharingLinksWhich sharing links to display at the end of this article. When not provided, or set to false no links will be displayed.
showAuthorarticle.showAuthorWhether or not the author box is displayed in the article footer.
showBreadcrumbsarticle.showBreadcrumbs or list.showBreadcrumbsWhether the breadcrumbs are displayed in the article or list header.
showDatearticle.showDateWhether or not the article date is displayed. The date is set using the date parameter.
showDateUpdatedarticle.showDateUpdatedWhether or not the date the article was updated is displayed. The date is set using the lastmod parameter.
showEditarticle.showEditWhether or not the link to edit the article content should be displayed.
showHeadingAnchorsarticle.showHeadingAnchorsWhether or not heading anchor links are displayed alongside headings within this article.
showPaginationarticle.showPaginationWhether or not the next/previous article links are displayed in the article footer.
invertPaginationarticle.invertPaginationWhether or not to flip the direction of the next/previous article links.
showReadingTimearticle.showReadingTimeWhether or not the article reading time is displayed.
showTaxonomiesarticle.showTaxonomiesWhether or not the taxonomies that relate to this article are displayed.
showTableOfContentsarticle.showTableOfContentsWhether or not the table of contents is displayed on this article.
showWordCountarticle.showWordCountWhether or not the article word count is displayed.
showCommentsarticle.showCommentsWhether or not the comments partial is included after the article footer.
showSummarylist.showSummaryWhether or not the article summary should be displayed on list pages.
showViewsarticle.showViewsWhether or not the article views should be displayed in lists and detailed view. This requires a firebase integration. Check this page for a guide on how to integrate Firebase into Blowfish
showLikesarticle.showLikesWhether or not the article likes should be displayed in lists and detailed view. This requires a firebase integration. Check this page for a guide on how to integrate Firebase into Blowfish
summaryAuto generated using summaryLength (see site configuration)When showSummary is enabled, this is the Markdown string to be used as the summary for this article.
xmltrue unless excluded by sitemap.excludedKindsWhether or not this article is included in the generated /sitemap.xml file.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/advanced/index.html b/docs/tags/advanced/index.html index 13731b1a..0c7ad710 100644 --- a/docs/tags/advanced/index.html +++ b/docs/tags/advanced/index.html @@ -1,4 +1,4 @@ -advanced · Blowfish +advanced · Blowfish @@ -18,7 +18,10 @@

advanced

This is the advanced tag. Just like other listing pages in Blowfish, you can add custom content to individual taxonomy terms and it will be displayed at the top of the term listing. 🚀

You can also use these content pages to define Hugo metadata like titles and descriptions that will be used for SEO and other purposes.

Advanced Customisation

8 mins·0 views· -0 likes
There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.

© +0 likes +advanced +css +docs

There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/analytics/index.html b/docs/tags/analytics/index.html index 7b9757fc..1f107d33 100644 --- a/docs/tags/analytics/index.html +++ b/docs/tags/analytics/index.html @@ -1,4 +1,4 @@ -analytics · Blowfish +analytics · Blowfish @@ -18,7 +18,14 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

Blowfish includes Chart.js for powerful charts and data visualisations.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/comments/index.html b/docs/tags/comments/index.html index 137356a0..87408464 100644 --- a/docs/tags/comments/index.html +++ b/docs/tags/comments/index.html @@ -1,4 +1,4 @@ -comments · Blowfish +comments · Blowfish @@ -18,7 +18,14 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

Thumbnails

1 min·0 views· -0 likes
Thumbnails # Blowfish was enhanced in order to make it easy to add visual support to your posts. To do so, you just need to place an image file (almost all formats are supported bue we recommend .

Front Matter

3 mins·0 views· -0 likes
In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.
\ No newline at end of file diff --git a/docs/tags/content/index.html b/docs/tags/content/index.html index c4d41726..a7088cd4 100644 --- a/docs/tags/content/index.html +++ b/docs/tags/content/index.html @@ -1,4 +1,4 @@ -content · Blowfish +content · Blowfish @@ -18,7 +18,9 @@
If you’ve been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/css/index.html b/docs/tags/css/index.html index b28dfb41..6b5aa7ce 100644 --- a/docs/tags/css/index.html +++ b/docs/tags/css/index.html @@ -1,4 +1,4 @@ -css · Blowfish +css · Blowfish @@ -18,8 +18,15 @@
There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.

Markdown

3 mins·0 views· +0 likes +markdown +css +html +sample

This article offers a sample of basic Markdown formatting that can be used in Blowfish, also it shows how some basic HTML elements are decorated.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/deployment/index.html b/docs/tags/deployment/index.html index acd015f6..6571dd2b 100644 --- a/docs/tags/deployment/index.html +++ b/docs/tags/deployment/index.html @@ -1,4 +1,4 @@ -deployment · Blowfish +deployment · Blowfish @@ -18,7 +18,13 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

diagram

Diagrams and Flowcharts

·2 mins·0 views· -0 likes
It’s easy to add diagrams and flowcharts to articles using Mermaid.

Installation

5 mins·0 views· +0 likes +installation +docs
Simply follow the standard Hugo Quick Start procedure to get up and running quickly. Detailed installation instructions can be found below. Instructions for updating the theme are also available. Installation # These instructions will get you up and running using Hugo and Blowfish from a completely blank state.

Getting Started

5 mins·0 views· -0 likes
This section assumes you have already installed the Blowfish theme. The config files that ship with Blowfish contain all of the possible settings that the theme recognises. By default, many of these are commented out but you can simply uncomment them to activate or change a specific feature.

Configuration

12 mins·0 views· -0 likes
Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured. +0 likes +installation +docs
This section assumes you have already installed the Blowfish theme. The config files that ship with Blowfish contain all of the possible settings that the theme recognises. By default, many of these are commented out but you can simply uncomment them to activate or change a specific feature.

Configuration

12 mins·0 views· +0 likes +config +docs
Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured. The theme ships with a default configuration that gets you up and running with a basic blog or static website.

Homepage Layout

3 mins·0 views· -0 likes
Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.

Thumbnails

1 min·0 views· -0 likes
Thumbnails # Blowfish was enhanced in order to make it easy to add visual support to your posts. To do so, you just need to place an image file (almost all formats are supported bue we recommend .

Front Matter

3 mins·0 views· -0 likes
In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.

Shortcodes

5 mins·0 views· -0 likes
In addition to all the default Hugo shortcodes, Blowfish adds a few extras for additional functionality. +0 likes +homepage +layouts +docs
Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.

Thumbnails

1 min·0 views· +0 likes +thumbnail +config +docs
Thumbnails # Blowfish was enhanced in order to make it easy to add visual support to your posts. To do so, you just need to place an image file (almost all formats are supported bue we recommend .

Front Matter

3 mins·0 views· +0 likes +front matter +config +docs
In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.

Shortcodes

5 mins·0 views· +0 likes +shortcodes +mermaid +icon +lead +docs
In addition to all the default Hugo shortcodes, Blowfish adds a few extras for additional functionality. Alert # alert outputs its contents as a stylised message box within your article. It’s useful for drawing attention to important information that you don’t want the reader to miss.

Partials

4 mins·0 views· -0 likes
Analytics # Blowfish provides built-in support for Fathom Analytics and Google Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy. +0 likes +partials +analytics +privacy +comments +favicons +icon +docs
Analytics # Blowfish provides built-in support for Fathom Analytics and Google Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy. Fathom Analytics # To enable Fathom Analytics support, simply provide your Fathom site code in the config/_default/params.

Advanced Customisation

8 mins·0 views· -0 likes
There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.

Hosting & Deployment

4 mins·0 views· -0 likes
There are many ways to deploy your Hugo website built with Blowfish. The theme is designed to be flexible in almost any deployment scenario. +0 likes +advanced +css +docs
There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.

Hosting & Deployment

4 mins·0 views· +0 likes +hosting +deployment +docs +github +netlify +render
There are many ways to deploy your Hugo website built with Blowfish. The theme is designed to be flexible in almost any deployment scenario. Blowfish is built using relative URLs throughout the theme.

© 2022 Blowfish

Powered by Hugo & Blowfish

emoji

Emoji 🪂

·1 min·0 views· -0 likes
📖🏞️🧗🏽🐉🧙🏽‍♂️🧚🏽👸
If you’ve been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/favicons/index.html b/docs/tags/favicons/index.html index 6c32b098..0dd97678 100644 --- a/docs/tags/favicons/index.html +++ b/docs/tags/favicons/index.html @@ -1,4 +1,4 @@ -favicons · Blowfish +favicons · Blowfish @@ -18,7 +18,14 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

In order to be able to support dynamic data across your website we’ve added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/front-matter/index.html b/docs/tags/front-matter/index.html index 63f4f079..5a0b3ae5 100644 --- a/docs/tags/front-matter/index.html +++ b/docs/tags/front-matter/index.html @@ -1,4 +1,4 @@ -front matter · Blowfish +front matter · Blowfish @@ -18,7 +18,10 @@
In addition to the default Hugo front matter parameters, Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/gist/index.html b/docs/tags/gist/index.html index 0fbd1329..ae2052cf 100644 --- a/docs/tags/gist/index.html +++ b/docs/tags/gist/index.html @@ -1,4 +1,4 @@ -gist · Blowfish +gist · Blowfish @@ -17,8 +17,15 @@

gist

Rich Content

·1 min·0 views· -0 likes
This is an example of a rich content summary.

© 2022 Blowfish

Powered by Hugo & Blowfish

Blowfish includes Chart.js for powerful charts and data visualisations.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/homepage/index.html b/docs/tags/homepage/index.html index f5b0183f..229489f3 100644 --- a/docs/tags/homepage/index.html +++ b/docs/tags/homepage/index.html @@ -1,4 +1,4 @@ -homepage · Blowfish +homepage · Blowfish @@ -18,7 +18,10 @@
Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/hosting/index.html b/docs/tags/hosting/index.html index 197e0e0e..fbb75e68 100644 --- a/docs/tags/hosting/index.html +++ b/docs/tags/hosting/index.html @@ -1,4 +1,4 @@ -hosting · Blowfish +hosting · Blowfish @@ -18,7 +18,13 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

html

Markdown

·3 mins·0 views· -0 likes

This article offers a sample of basic Markdown formatting that can be used in Blowfish, also it shows how some basic HTML elements are decorated.

Partials

4 mins·0 views· -0 likes
Analytics # Blowfish provides built-in support for Fathom Analytics and Google Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy. +0 likes +partials +analytics +privacy +comments +favicons +icon +docs
Analytics # Blowfish provides built-in support for Fathom Analytics and Google Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy. Fathom Analytics # To enable Fathom Analytics support, simply provide your Fathom site code in the config/_default/params.

© 2022 Blowfish

Powered by Hugo & Blowfish

icons

Icons

·1 min·0 views· -0 likes
Blowfish has built-in support for a number of FontAwesome 6 icons. These can be included in your website through either the icon partial or icon shortcode. +

icons

Icons

1 min·0 views· +0 likes +icons +sample +shortcodes
Blowfish has built-in support for a number of FontAwesome 6 icons. These can be included in your website through either the icon partial or icon shortcode. Additionally, custom icons are also fully supported.

© 2022 Blowfish

Powered by Hugo & Blowfish

Getting Started

5 mins·0 views· -0 likes
This section assumes you have already installed the Blowfish theme. The config files that ship with Blowfish contain all of the possible settings that the theme recognises. By default, many of these are commented out but you can simply uncomment them to activate or change a specific feature.

© +0 likes +installation +docs

This section assumes you have already installed the Blowfish theme. The config files that ship with Blowfish contain all of the possible settings that the theme recognises. By default, many of these are commented out but you can simply uncomment them to activate or change a specific feature.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/katex/index.html b/docs/tags/katex/index.html index 07d065a4..7b2a205d 100644 --- a/docs/tags/katex/index.html +++ b/docs/tags/katex/index.html @@ -1,4 +1,4 @@ -katex · Blowfish +katex · Blowfish @@ -17,8 +17,12 @@

katex

Mathematical notation

·1 min·0 views· -0 likes

KaTeX can be used to render mathematical notation within articles.

Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/lead/index.html b/docs/tags/lead/index.html index bd158a53..2d49c8f2 100644 --- a/docs/tags/lead/index.html +++ b/docs/tags/lead/index.html @@ -1,4 +1,4 @@ -lead · Blowfish +lead · Blowfish @@ -18,7 +18,12 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

In order to be able to support dynamic data across your website we’ve added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/markdown/index.html b/docs/tags/markdown/index.html index b9a439b9..fc307508 100644 --- a/docs/tags/markdown/index.html +++ b/docs/tags/markdown/index.html @@ -1,4 +1,4 @@ -markdown · Blowfish +markdown · Blowfish @@ -17,8 +17,12 @@

markdown

Markdown

·3 mins·0 views· -0 likes

This article offers a sample of basic Markdown formatting that can be used in Blowfish, also it shows how some basic HTML elements are decorated.

maths

Mathematical notation

·1 min·0 views· -0 likes

KaTeX can be used to render mathematical notation within articles.

In addition to all the default Hugo shortcodes, Blowfish adds a few extras for additional functionality. +Alert # alert outputs its contents as a stylised message box within your article. It’s useful for drawing attention to important information that you don’t want the reader to miss.

Diagrams and Flowcharts

2 mins·0 views· +0 likes +mermaid +sample +diagram +shortcodes
It’s easy to add diagrams and flowcharts to articles using Mermaid.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/netlify/index.html b/docs/tags/netlify/index.html index ed8cdc8c..d3c381ac 100644 --- a/docs/tags/netlify/index.html +++ b/docs/tags/netlify/index.html @@ -1,4 +1,4 @@ -netlify · Blowfish +netlify · Blowfish @@ -18,7 +18,13 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

Blowfish is packed with tons of features. The original aim of Blowfish was to develop a theme that was simple and lightweight. The theme is a fork of Congo and expands its initial vision.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/partials/index.html b/docs/tags/partials/index.html index 8b141490..2ab6e7d9 100644 --- a/docs/tags/partials/index.html +++ b/docs/tags/partials/index.html @@ -1,4 +1,4 @@ -partials · Blowfish +partials · Blowfish @@ -18,7 +18,14 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

Analytics # Blowfish provides built-in support for Fathom Analytics and Google Analytics. Fathom is a paid alternative to Google Analytics that respects user privacy. +Fathom Analytics # To enable Fathom Analytics support, simply provide your Fathom site code in the config/_default/params.

Rich Content

1 min·0 views· +0 likes +shortcodes +privacy +sample +gist +twitter +youtube +vimeo
This is an example of a rich content summary.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/render/index.html b/docs/tags/render/index.html index c2c9e659..43c6564f 100644 --- a/docs/tags/render/index.html +++ b/docs/tags/render/index.html @@ -1,4 +1,4 @@ -render · Blowfish +render · Blowfish @@ -18,7 +18,13 @@

© 2022 Blowfish

Powered by Hugo & Blowfish

sample

Thumbnails

·1 min·0 views· -0 likes
A quick example of how to start using Thumbnails in your artciles.

Users

0 views· -0 likes
Real websites that are built with Blowfish. Website Auth Details nunocoracao.com Nuno Personal site - Theme author Blowfish user? To add your site to this list, submit a pull request.

Icons

·1 min·0 views· -0 likes
Blowfish has built-in support for a number of FontAwesome 6 icons. These can be included in your website through either the icon partial or icon shortcode. -Additionally, custom icons are also fully supported.

Markdown

·3 mins·0 views· -0 likes

This article offers a sample of basic Markdown formatting that can be used in Blowfish, also it shows how some basic HTML elements are decorated.

Rich Content

·1 min·0 views· -0 likes
This is an example of a rich content summary.

Mathematical notation

·1 min·0 views· -0 likes

KaTeX can be used to render mathematical notation within articles.

Diagrams and Flowcharts

·2 mins·0 views· -0 likes
It’s easy to add diagrams and flowcharts to articles using Mermaid.

Charts

1 min·0 views· -0 likes
Blowfish includes Chart.js for powerful charts and data visualisations.

Emoji 🪂

·1 min·0 views· -0 likes
📖🏞️🧗🏽🐉🧙🏽‍♂️🧚🏽👸

shortcodes

Icons

·1 min·0 views· -0 likes
Blowfish has built-in support for a number of FontAwesome 6 icons. These can be included in your website through either the icon partial or icon shortcode. +
In addition to all the default Hugo shortcodes, Blowfish adds a few extras for additional functionality. +Alert # alert outputs its contents as a stylised message box within your article. It’s useful for drawing attention to important information that you don’t want the reader to miss.

Rich Content

1 min·0 views· +0 likes +shortcodes +privacy +sample +gist +twitter +youtube +vimeo
This is an example of a rich content summary.

Mathematical notation

1 min·0 views· +0 likes +sample +katex +maths +shortcodes

KaTeX can be used to render mathematical notation within articles.

Diagrams and Flowcharts

2 mins·0 views· +0 likes +mermaid +sample +diagram +shortcodes
It’s easy to add diagrams and flowcharts to articles using Mermaid.

Charts

1 min·0 views· +0 likes +chart +sample +graph +shortcodes
Blowfish includes Chart.js for powerful charts and data visualisations.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/thumbnail/index.html b/docs/tags/thumbnail/index.html index 917fb77c..143fdd7a 100644 --- a/docs/tags/thumbnail/index.html +++ b/docs/tags/thumbnail/index.html @@ -1,4 +1,4 @@ -thumbnail · Blowfish +thumbnail · Blowfish @@ -17,9 +17,14 @@

twitter

Rich Content

·1 min·0 views· -0 likes
This is an example of a rich content summary.
Real websites that are built with Blowfish. Website Auth Details nunocoracao.com Nuno Personal site - Theme author Blowfish user? To add your site to this list, submit a pull request.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/views/index.html b/docs/tags/views/index.html index 3f3a6209..6ad41220 100644 --- a/docs/tags/views/index.html +++ b/docs/tags/views/index.html @@ -1,4 +1,4 @@ -views · Blowfish +views · Blowfish @@ -18,7 +18,10 @@
In order to be able to support dynamic data across your website we’ve added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.

© 2022 Blowfish

Powered by Hugo & Blowfish

\ No newline at end of file diff --git a/docs/tags/vimeo/index.html b/docs/tags/vimeo/index.html index 88f454ce..3aa56b83 100644 --- a/docs/tags/vimeo/index.html +++ b/docs/tags/vimeo/index.html @@ -1,4 +1,4 @@ -vimeo · Blowfish +vimeo · Blowfish @@ -17,8 +17,15 @@

vimeo

Rich Content

·1 min·0 views· -0 likes
This is an example of a rich content summary.

youtube

Rich Content

·1 min·0 views· -0 likes
This is an example of a rich content summary.
Real websites that are built with Blowfish.
WebsiteAuthDetails
nunocoracao.comNunoPersonal site - Theme author

Blowfish user? To add your site to this list, submit a pull request.

Blowfish
Author
Blowfish
A powerful, lightweight theme for Hugo built with Tailwind CSS.