Merge pull request #417 from nunocoracao/dev

🔖 Release v2.25.0
This commit is contained in:
Nuno Coração 2023-01-15 00:41:21 +00:00 committed by GitHub
commit 7df0184621
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
78 changed files with 1254 additions and 325 deletions

View file

@ -31,5 +31,5 @@ jobs:
repoToken: '${{ secrets.GITHUB_TOKEN }}' repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_BLOWFISH_21FFF }}' firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_BLOWFISH_21FFF }}'
expires: 30d expires: 30d
channelId: preview channelId: preview-${GITHUB_REF##*/}
projectId: blowfish-21fff projectId: blowfish-21fff

View file

@ -33,6 +33,9 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
- Support for multiple authors - Support for multiple authors
- Support for series of articles - Support for series of articles
- Flexible with any content types, taxonomies and menus - Flexible with any content types, taxonomies and menus
- Support for header and footer menus
- Support for nested menus
- Support for sub-navigation menu
- Multilingual content support inlcuding support for RTL languages - Multilingual content support inlcuding support for RTL languages
- Ability to link to posts on third-party websites - Ability to link to posts on third-party websites
- Buymeacoffee integration - Buymeacoffee integration

View file

@ -684,6 +684,11 @@ select {
max-width: 65ch; max-width: 65ch;
} }
.prose :where(p):not(:where([class~="not-prose"] *)) {
margin-top: 1.25em;
margin-bottom: 1.25em;
}
.prose :where([class~="lead"]):not(:where([class~="not-prose"] *)) { .prose :where([class~="lead"]):not(:where([class~="not-prose"] *)) {
color: var(--tw-prose-lead); color: var(--tw-prose-lead);
font-size: 1.25em; font-size: 1.25em;
@ -1051,11 +1056,6 @@ select {
line-height: 1.75; 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"] *)) { .prose :where(video):not(:where([class~="not-prose"] *)) {
margin-top: 2em; margin-top: 2em;
margin-bottom: 2em; margin-bottom: 2em;
@ -1175,6 +1175,22 @@ select {
display: none; display: none;
} }
.prose :where(a.active):not(:where([class~="not-prose"] *)) {
text-decoration-color: rgba(var(--color-primary-600), 1);
}
.prose :where(p.active):not(:where([class~="not-prose"] *)) {
text-decoration-color: rgba(var(--color-primary-600), 1);
}
.prose-invert :where(a.active):not(:where([class~="not-prose"] *)) {
text-decoration-color: rgba(var(--color-primary-400), 1);
}
.prose-invert :where(p.active):not(:where([class~="not-prose"] *)) {
text-decoration-color: rgba(var(--color-primary-400), 1);
}
.sr-only { .sr-only {
position: absolute; position: absolute;
width: 1px; width: 1px;
@ -1271,14 +1287,14 @@ select {
margin: 0.25rem; margin: 0.25rem;
} }
.m-2 {
margin: 0.5rem;
}
.m-0 { .m-0 {
margin: 0px; margin: 0px;
} }
.m-2 {
margin: 0.5rem;
}
.-mx-2 { .-mx-2 {
margin-left: -0.5rem; margin-left: -0.5rem;
margin-right: -0.5rem; margin-right: -0.5rem;
@ -1409,6 +1425,14 @@ select {
margin-bottom: 2.5rem; margin-bottom: 2.5rem;
} }
.mr-1 {
margin-right: 0.25rem;
}
.mr-5 {
margin-right: 1.25rem;
}
.\!mb-9 { .\!mb-9 {
margin-bottom: 2.25rem !important; margin-bottom: 2.25rem !important;
} }
@ -1485,6 +1509,10 @@ select {
height: 2rem; height: 2rem;
} }
.h-3 {
height: 0.75rem;
}
.h-full { .h-full {
height: 100%; height: 100%;
} }
@ -1545,6 +1573,10 @@ select {
width: 2rem; width: 2rem;
} }
.w-3 {
width: 0.75rem;
}
.w-6 { .w-6 {
width: 1.5rem; width: 1.5rem;
} }
@ -1657,6 +1689,10 @@ select {
flex-wrap: wrap; flex-wrap: wrap;
} }
.items-end {
align-items: flex-end;
}
.items-center { .items-center {
align-items: center; align-items: center;
} }
@ -1691,6 +1727,18 @@ select {
margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse)));
} }
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.place-self-center { .place-self-center {
place-self: center; place-self: center;
} }
@ -1858,6 +1906,10 @@ select {
--tw-gradient-to: transparent; --tw-gradient-to: transparent;
} }
.to-neutral-100 {
--tw-gradient-to: rgba(var(--color-neutral-100), 1);
}
.to-neutral { .to-neutral {
--tw-gradient-to: rgba(var(--color-neutral), 1); --tw-gradient-to: rgba(var(--color-neutral), 1);
} }
@ -1893,6 +1945,10 @@ select {
padding: 0.25rem; padding: 0.25rem;
} }
.p-5 {
padding: 1.25rem;
}
.p-0 { .p-0 {
padding: 0px; padding: 0px;
} }
@ -2001,6 +2057,10 @@ select {
padding-left: 0.5rem; padding-left: 0.5rem;
} }
.pb-3 {
padding-bottom: 0.75rem;
}
.pl-\[24px\] { .pl-\[24px\] {
padding-left: 24px; padding-left: 24px;
} }
@ -2009,6 +2069,10 @@ select {
padding-right: 24px; padding-right: 24px;
} }
.pt-2 {
padding-top: 0.5rem;
}
.pt-16 { .pt-16 {
padding-top: 4rem; padding-top: 4rem;
} }
@ -2096,6 +2160,10 @@ select {
font-weight: 500; font-weight: 500;
} }
.font-light {
font-weight: 300;
}
.uppercase { .uppercase {
text-transform: uppercase; text-transform: uppercase;
} }
@ -2202,8 +2270,8 @@ select {
opacity: 0; opacity: 0;
} }
.opacity-70 { .opacity-60 {
opacity: 0.7; opacity: 0.6;
} }
.opacity-30 { .opacity-30 {
@ -3013,6 +3081,31 @@ body:has(#menu-controller:checked) {
z-index: 100; z-index: 100;
} }
.nested-menu:hover + .menuhide {
visibility: visible;
opacity: 1;
transition: visibility 0.3s, opacity 0.3s ease-in-out ;
}
.menuhide:hover {
visibility: visible;
opacity: 1;
transition: visibility 0.3s, opacity 0.3s ease-in-out ;
}
.menuhide {
visibility: hidden;
opacity: 0;
transition: visibility 0.3s, opacity 0.3s ease-in-out ;
z-index: 1000;
}
.active {
text-decoration-line: underline;
text-decoration-thickness: 3px;
text-underline-offset: 4px;
}
.first\:mt-8:first-child { .first\:mt-8:first-child {
margin-top: 2rem; margin-top: 2rem;
} }
@ -3355,6 +3448,14 @@ body:has(#menu-controller:checked) {
background-color: rgba(var(--color-neutral-700), 1); background-color: rgba(var(--color-neutral-700), 1);
} }
.dark .dark\:prose-invert :where(a.active):not(:where([class~="not-prose"] *)) {
text-decoration-color: rgba(var(--color-primary-400), 1);
}
.dark .dark\:prose-invert :where(p.active):not(:where([class~="not-prose"] *)) {
text-decoration-color: rgba(var(--color-primary-400), 1);
}
.dark .dark\:text-neutral-500 { .dark .dark\:text-neutral-500 {
--tw-text-opacity: 1; --tw-text-opacity: 1;
color: rgba(var(--color-neutral-500), var(--tw-text-opacity)); color: rgba(var(--color-neutral-500), var(--tw-text-opacity));
@ -3493,20 +3594,11 @@ body:has(#menu-controller:checked) {
padding-right: 1.5rem; padding-right: 1.5rem;
} }
.sm\:py-10 {
padding-top: 2.5rem;
padding-bottom: 2.5rem;
}
.sm\:py-24 { .sm\:py-24 {
padding-top: 6rem; padding-top: 6rem;
padding-bottom: 6rem; padding-bottom: 6rem;
} }
.sm\:pt-10 {
padding-top: 2.5rem;
}
.sm\:pl-6 { .sm\:pl-6 {
padding-left: 1.5rem; padding-left: 1.5rem;
} }

View file

@ -419,7 +419,31 @@ body:has(#menu-controller:checked) {
} }
} }
.medium-zoom-image--opened { .medium-zoom-image--opened {
z-index: 100; z-index: 100;
}
.nested-menu:hover + .menuhide {
visibility: visible;
opacity: 1;
transition: visibility 0.3s, opacity 0.3s ease-in-out ;
}
.menuhide:hover {
visibility: visible;
opacity: 1;
transition: visibility 0.3s, opacity 0.3s ease-in-out ;
}
.menuhide {
visibility: hidden;
opacity: 0;
transition: visibility 0.3s, opacity 0.3s ease-in-out ;
z-index: 1000;
}
.active {
text-decoration-line: underline;
text-decoration-thickness: 3px;
text-underline-offset: 4px;
} }

View file

@ -0,0 +1,12 @@
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 20 20"
fill="currentColor"
aria-hidden="true"
>
<path
fill-rule="evenodd"
d="M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z"
clip-rule="evenodd"
/>
</svg>

After

Width:  |  Height:  |  Size: 317 B

1
assets/icons/fork.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z"/></svg>

After

Width:  |  Height:  |  Size: 691 B

1
assets/icons/star.svg Normal file
View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/></svg>

After

Width:  |  Height:  |  Size: 889 B

View file

2
assets/lib/jquery/jquery.slim.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -15,6 +15,33 @@
# pageRef = "posts" # pageRef = "posts"
# weight = 10 # weight = 10
#[[main]]
# name = "Parent"
# weight = 20
#[[main]]
# name = "example sub-menu 1"
# parent = "Parent"
# pageRef = "posts"
# weight = 20
#[[main]]
# name = "example sub-menu 2"
# parent = "Parent"
# pageRef = "posts"
# weight = 20
#[[subnavigation]]
# name = "An interesting topic"
# pageRef = "tags/interesting-topic"
# weight = 10
#[[subnavigation]]
# name = "My Awesome Category"
# pre = "github"
# pageRef = "categories/awesome"
# weight = 20
#[[main]] #[[main]]
# name = "Categories" # name = "Categories"
# pageRef = "categories" # pageRef = "categories"

View file

@ -19,6 +19,10 @@ enableCodeCopy = true
# defaultBackgroundImage = "IMAGE.jpg" # used as default for background images # defaultBackgroundImage = "IMAGE.jpg" # used as default for background images
# highlightCurrentMenuArea = true
# smartTOC = true
# smartTOCHideUnfocusedChildren = true
[header] [header]
layout = "basic" # valid options: basic, fixed layout = "basic" # valid options: basic, fixed

533
data/githubColors.json Normal file
View file

@ -0,0 +1,533 @@
{
"1C Enterprise": "#814CCC",
"4D": "#004289",
"ABAP": "#E8274B",
"ABAP CDS": "#555e25",
"ActionScript": "#882B0F",
"Ada": "#02f88c",
"Adobe Font Metrics": "#fa0f00",
"Agda": "#315665",
"AGS Script": "#B9D9FF",
"AIDL": "#34EB6B",
"AL": "#3AA2B5",
"Alloy": "#64C800",
"Alpine Abuild": "#0D597F",
"Altium Designer": "#A89663",
"AMPL": "#E6EFBB",
"AngelScript": "#C7D7DC",
"Ant Build System": "#A9157E",
"ANTLR": "#9DC3FF",
"ApacheConf": "#d12127",
"Apex": "#1797c0",
"API Blueprint": "#2ACCA8",
"APL": "#5A8164",
"Apollo Guidance Computer": "#0B3D91",
"AppleScript": "#101F1F",
"Arc": "#aa2afe",
"AsciiDoc": "#73a0c5",
"ASL": null,
"ASP.NET": "#9400ff",
"AspectJ": "#a957b0",
"Assembly": "#6E4C13",
"Astro": "#ff5a03",
"Asymptote": "#ff0000",
"ATS": "#1ac620",
"Augeas": "#9CC134",
"AutoHotkey": "#6594b9",
"AutoIt": "#1C3552",
"Avro IDL": "#0040FF",
"Awk": "#c30e9b",
"Ballerina": "#FF5000",
"BASIC": "#ff0000",
"Batchfile": "#C1F12E",
"Beef": "#a52f4e",
"Befunge": null,
"BibTeX": "#778899",
"Bicep": "#519aba",
"Bison": "#6A463F",
"BitBake": "#00bce4",
"Blade": "#f7523f",
"BlitzBasic": "#00FFAE",
"BlitzMax": "#cd6400",
"Bluespec": "#12223c",
"Boo": "#d4bec1",
"Boogie": "#c80fa0",
"Brainfuck": "#2F2530",
"Brightscript": "#662D91",
"Browserslist": "#ffd539",
"C": "#555555",
"C#": "#178600",
"C++": "#f34b7d",
"C2hs Haskell": null,
"Cabal Config": "#483465",
"Cap'n Proto": "#c42727",
"CartoCSS": null,
"Ceylon": "#dfa535",
"Chapel": "#8dc63f",
"Charity": null,
"ChucK": "#3f8000",
"Cirru": "#ccccff",
"Clarion": "#db901e",
"Classic ASP": "#6a40fd",
"Clean": "#3F85AF",
"Click": "#E4E6F3",
"CLIPS": "#00A300",
"Clojure": "#db5855",
"Closure Templates": "#0d948f",
"Cloud Firestore Security Rules": "#FFA000",
"CMake": "#DA3434",
"COBOL": null,
"CodeQL": "#140f46",
"CoffeeScript": "#244776",
"ColdFusion": "#ed2cd6",
"ColdFusion CFC": "#ed2cd6",
"COLLADA": "#F1A42B",
"Common Lisp": "#3fb68b",
"Common Workflow Language": "#B5314C",
"Component Pascal": "#B0CE4E",
"Cool": null,
"Coq": "#d0b68c",
"Crystal": "#000100",
"CSON": "#244776",
"Csound": "#1a1a1a",
"Csound Document": "#1a1a1a",
"Csound Score": "#1a1a1a",
"CSS": "#563d7c",
"CSV": "#237346",
"Cuda": "#3A4E3A",
"CUE": "#5886E1",
"CWeb": "#00007a",
"Cycript": null,
"Cython": "#fedf5b",
"D": "#ba595e",
"Dafny": "#FFEC25",
"Darcs Patch": "#8eff23",
"Dart": "#00B4AB",
"DataWeave": "#003a52",
"Dhall": "#dfafff",
"DIGITAL Command Language": null,
"DirectX 3D File": "#aace60",
"DM": "#447265",
"Dockerfile": "#384d54",
"Dogescript": "#cca760",
"DTrace": null,
"Dylan": "#6c616e",
"E": "#ccce35",
"Easybuild": "#069406",
"eC": "#913960",
"Ecere Projects": "#913960",
"ECL": "#8a1267",
"ECLiPSe": "#001d9d",
"EditorConfig": "#fff1f2",
"Eiffel": "#4d6977",
"EJS": "#a91e50",
"Elixir": "#6e4a7e",
"Elm": "#60B5CC",
"Emacs Lisp": "#c065db",
"EmberScript": "#FFF4F3",
"EQ": "#a78649",
"Erlang": "#B83998",
"F#": "#b845fc",
"F*": "#572e30",
"Factor": "#636746",
"Fancy": "#7b9db4",
"Fantom": "#14253c",
"Faust": "#c37240",
"Fennel": "#fff3d7",
"FIGlet Font": "#FFDDBB",
"Filebench WML": "#F6B900",
"Filterscript": null,
"fish": "#4aae47",
"Fluent": "#ffcc33",
"FLUX": "#88ccff",
"Forth": "#341708",
"Fortran": "#4d41b1",
"Fortran Free Form": "#4d41b1",
"FreeBasic": "#867db1",
"FreeMarker": "#0050b2",
"Frege": "#00cafe",
"Futhark": "#5f021f",
"G-code": "#D08CF2",
"Game Maker Language": "#71b417",
"GAML": "#FFC766",
"GAMS": "#f49a22",
"GAP": "#0000cc",
"GCC Machine Description": "#FFCFAB",
"GDB": null,
"GDScript": "#355570",
"GEDCOM": "#003058",
"Gemfile.lock": "#701516",
"Genie": "#fb855d",
"Genshi": "#951531",
"Gentoo Ebuild": "#9400ff",
"Gentoo Eclass": "#9400ff",
"Gerber Image": "#d20b00",
"Gherkin": "#5B2063",
"Git Attributes": "#F44D27",
"Git Config": "#F44D27",
"GLSL": "#5686a5",
"Glyph": "#c1ac7f",
"Gnuplot": "#f0a9f0",
"Go": "#00ADD8",
"Go Checksums": "#00ADD8",
"Go Module": "#00ADD8",
"Golo": "#88562A",
"Gosu": "#82937f",
"Grace": "#615f8b",
"Gradle": "#02303a",
"Grammatical Framework": "#ff0000",
"GraphQL": "#e10098",
"Graphviz (DOT)": "#2596be",
"Groovy": "#4298b8",
"Groovy Server Pages": "#4298b8",
"Hack": "#878787",
"Haml": "#ece2a9",
"Handlebars": "#f7931e",
"HAProxy": "#106da9",
"Harbour": "#0e60e3",
"Haskell": "#5e5086",
"Haxe": "#df7900",
"HCL": null,
"HiveQL": "#dce200",
"HLSL": "#aace60",
"HolyC": "#ffefaf",
"HTML": "#e34c26",
"HTML+ECR": "#2e1052",
"HTML+EEX": "#6e4a7e",
"HTML+ERB": "#701516",
"HTML+PHP": "#4f5d95",
"HTML+Razor": "#512be4",
"HTTP": "#005C9C",
"HXML": "#f68712",
"Hy": "#7790B2",
"HyPhy": null,
"IDL": "#a3522f",
"Idris": "#b30000",
"Ignore List": "#000000",
"IGOR Pro": "#0000cc",
"ImageJ Macro": "#99AAFF",
"Inform 7": null,
"INI": "#d1dbe0",
"Inno Setup": "#264b99",
"Io": "#a9188d",
"Ioke": "#078193",
"Isabelle": "#FEFE00",
"Isabelle ROOT": "#FEFE00",
"J": "#9EEDFF",
"JAR Manifest": "#b07219",
"Jasmin": "#d03600",
"Java": "#b07219",
"Java Properties": "#2A6277",
"Java Server Pages": "#2A6277",
"JavaScript": "#f1e05a",
"JavaScript+ERB": "#f1e05a",
"Jest Snapshot": "#15c213",
"JFlex": "#DBCA00",
"Jinja": "#a52a22",
"Jison": "#56b3cb",
"Jison Lex": "#56b3cb",
"Jolie": "#843179",
"jq": "#c7254e",
"JSON": "#292929",
"JSON with Comments": "#292929",
"JSON5": "#267CB9",
"JSONiq": "#40d47e",
"JSONLD": "#0c479c",
"Jsonnet": "#0064bd",
"Julia": "#a270ba",
"Jupyter Notebook": "#DA5B0B",
"Kaitai Struct": "#773b37",
"KakouneScript": "#6f8042",
"KiCad Layout": "#2f4aab",
"KiCad Legacy Layout": "#2f4aab",
"KiCad Schematic": "#2f4aab",
"Kotlin": "#A97BFF",
"KRL": "#28430A",
"LabVIEW": "#fede06",
"Lark": "#2980B9",
"Lasso": "#999999",
"Latte": "#f2a542",
"Lean": null,
"Less": "#1d365d",
"Lex": "#DBCA00",
"LFE": "#4C3023",
"LilyPond": "#9ccc7c",
"Limbo": null,
"Liquid": "#67b8de",
"Literate Agda": "#315665",
"Literate CoffeeScript": "#244776",
"Literate Haskell": "#5e5086",
"LiveScript": "#499886",
"LLVM": "#185619",
"Logos": null,
"Logtalk": "#295b9a",
"LOLCODE": "#cc9900",
"LookML": "#652B81",
"LoomScript": null,
"LSL": "#3d9970",
"Lua": "#000080",
"M": null,
"M4": null,
"M4Sugar": null,
"Macaulay2": "#d8ffff",
"Makefile": "#427819",
"Mako": "#7e858d",
"Markdown": "#083fa1",
"Marko": "#42bff2",
"Mask": "#f97732",
"Mathematica": "#dd1100",
"MATLAB": "#e16737",
"Max": "#c4a79c",
"MAXScript": "#00a6a6",
"mcfunction": "#E22837",
"Mercury": "#ff2b2b",
"Meson": "#007800",
"Metal": "#8f14e9",
"MiniD": null,
"Mirah": "#c7a938",
"mIRC Script": "#3d57c3",
"MLIR": "#5EC8DB",
"Modelica": "#de1d31",
"Modula-2": "#10253f",
"Modula-3": "#223388",
"Module Management System": null,
"Monkey": null,
"Moocode": null,
"MoonScript": "#ff4585",
"Motorola 68K Assembly": "#005daa",
"MQL4": "#62A8D6",
"MQL5": "#4A76B8",
"MTML": "#b7e1f4",
"MUF": null,
"mupad": "#244963",
"Mustache": "#724b3b",
"Myghty": null,
"nanorc": "#2d004d",
"NASL": null,
"NCL": "#28431f",
"Nearley": "#990000",
"Nemerle": "#3d3c6e",
"nesC": "#94B0C7",
"NetLinx": "#0aa0ff",
"NetLinx+ERB": "#747faa",
"NetLogo": "#ff6375",
"NewLisp": "#87AED7",
"Nextflow": "#3ac486",
"Nginx": "#009639",
"Nim": "#ffc200",
"Nit": "#009917",
"Nix": "#7e7eff",
"NPM Config": "#cb3837",
"NSIS": null,
"Nu": "#c9df40",
"NumPy": "#9C8AF9",
"Nunjucks": "#3d8137",
"NWScript": "#111522",
"Objective-C": "#438eff",
"Objective-C++": "#6866fb",
"Objective-J": "#ff0c5a",
"ObjectScript": "#424893",
"OCaml": "#3be133",
"Odin": "#60AFFE",
"Omgrofl": "#cabbff",
"ooc": "#b0b77e",
"Opa": null,
"Opal": "#f7ede0",
"Open Policy Agent": "#7d9199",
"OpenCL": "#ed2e2d",
"OpenEdge ABL": "#5ce600",
"OpenQASM": "#AA70FF",
"OpenRC runscript": null,
"OpenSCAD": "#e5cd45",
"Org": "#77aa99",
"Ox": null,
"Oxygene": "#cdd0e3",
"Oz": "#fab738",
"P4": "#7055b5",
"Pan": "#cc0000",
"Papyrus": "#6600cc",
"Parrot": "#f3ca0a",
"Parrot Assembly": null,
"Parrot Internal Representation": null,
"Pascal": "#E3F171",
"Pawn": "#dbb284",
"PEG.js": "#234d6b",
"Pep8": "#C76F5B",
"Perl": "#0298c3",
"PHP": "#4F5D95",
"PicoLisp": "#6067af",
"PigLatin": "#fcd7de",
"Pike": "#005390",
"PLpgSQL": "#336790",
"PLSQL": "#dad8d8",
"PogoScript": "#d80074",
"Pony": null,
"PostCSS": "#dc3a0c",
"PostScript": "#da291c",
"POV-Ray SDL": "#6bac65",
"PowerBuilder": "#8f0f8d",
"PowerShell": "#012456",
"Prisma": "#0c344b",
"Processing": "#0096D8",
"Prolog": "#74283c",
"Propeller Spin": "#7fa2a7",
"Pug": "#a86454",
"Puppet": "#302B6D",
"PureBasic": "#5a6986",
"PureScript": "#1D222D",
"Python": "#3572A5",
"Python console": "#3572A5",
"Python traceback": "#3572A5",
"q": "#0040cd",
"Q#": "#fed659",
"QMake": null,
"QML": "#44a51c",
"Qt Script": "#00b841",
"Quake": "#882233",
"R": "#198CE7",
"Racket": "#3c5caa",
"Ragel": "#9d5200",
"Raku": "#0000fb",
"RAML": "#77d9fb",
"Rascal": "#fffaa0",
"RDoc": "#701516",
"REALbasic": null,
"Reason": "#ff5847",
"Rebol": "#358a5b",
"Record Jar": "#0673ba",
"Red": "#f50000",
"Redcode": null,
"Regular Expression": "#009a00",
"Ren'Py": "#ff7f7f",
"RenderScript": null,
"ReScript": "#ed5051",
"reStructuredText": "#141414",
"REXX": "#d90e09",
"Ring": "#2D54CB",
"Riot": "#A71E49",
"RMarkdown": "#198ce7",
"RobotFramework": "#00c0b5",
"Roff": "#ecdebe",
"Roff Manpage": "#ecdebe",
"Rouge": "#cc0088",
"RPC": null,
"Ruby": "#701516",
"RUNOFF": "#665a4e",
"Rust": "#dea584",
"Sage": null,
"SaltStack": "#646464",
"SAS": "#B34936",
"Sass": "#a53b70",
"Scala": "#c22d40",
"Scaml": "#bd181a",
"Scheme": "#1e4aec",
"Scilab": "#ca0f21",
"SCSS": "#c6538c",
"sed": "#64b970",
"Self": "#0579aa",
"ShaderLab": "#222c37",
"Shell": "#89e051",
"ShellSession": null,
"Shen": "#120F14",
"Sieve": null,
"Singularity": "#64E6AD",
"Slash": "#007eff",
"Slice": "#003fa2",
"Slim": "#2b2b2b",
"Smali": null,
"Smalltalk": "#596706",
"Smarty": "#f0c040",
"SmPL": "#c94949",
"SMT": null,
"Solidity": "#AA6746",
"SourcePawn": "#f69e1d",
"SPARQL": "#0C4597",
"SQF": "#3F3F3F",
"SQL": "#e38c00",
"SQLPL": "#e38c00",
"Squirrel": "#800000",
"SRecode Template": "#348a34",
"Stan": "#b2011d",
"Standard ML": "#dc566d",
"Starlark": "#76d275",
"Stata": "#1a5f91",
"StringTemplate": "#3fb34f",
"Stylus": "#ff6347",
"SubRip Text": "#9e0101",
"SugarSS": "#2fcc9f",
"SuperCollider": "#46390b",
"Svelte": "#ff3e00",
"SVG": "#ff9900",
"Swift": "#F05138",
"SWIG": null,
"SystemVerilog": "#DAE1C2",
"Tcl": "#e4cc98",
"Tcsh": null,
"Terra": "#00004c",
"TeX": "#3D6117",
"Textile": "#ffe7ac",
"TextMate Properties": "#df66e4",
"Thrift": "#D12127",
"TI Program": "#A0AA87",
"TLA": "#4b0079",
"TOML": "#9c4221",
"TSQL": "#e38c00",
"TSV": "#237346",
"TSX": "#2b7489",
"Turing": "#cf142b",
"Twig": "#c1d026",
"TXL": "#0178b8",
"TypeScript": "#2b7489",
"Unified Parallel C": "#4e3617",
"Unity3D Asset": "#222c37",
"Unix Assembly": null,
"Uno": "#9933cc",
"UnrealScript": "#a54c4d",
"UrWeb": "#ccccee",
"V": "#4f87c4",
"Vala": "#fbe5cd",
"Valve Data Format": "#f26025",
"VBA": "#867db1",
"VBScript": "#15dcdc",
"VCL": "#148AA8",
"Verilog": "#b2b7f8",
"VHDL": "#adb2cb",
"Vim Help File": "#199f4b",
"Vim Script": "#199f4b",
"Vim Snippet": "#199f4b",
"Visual Basic .NET": "#945db7",
"Volt": "#1F1F1F",
"Vue": "#41b883",
"wdl": "#42f1f4",
"Web Ontology Language": "#5b70bd",
"WebAssembly": "#04133b",
"WebIDL": null,
"Wikitext": "#fc5757",
"Windows Registry Entries": "#52d5ff",
"wisp": "#7582D1",
"Wollok": "#a23738",
"World of Warcraft Addon Data": "#f7e43f",
"X10": "#4B6BEF",
"xBase": "#403a40",
"XC": "#99DA07",
"XML": "#0060ac",
"XML Property List": "#0060ac",
"Xojo": "#81bd41",
"Xonsh": "#285EEF",
"XProc": null,
"XQuery": "#5232e7",
"XS": null,
"XSLT": "#EB8CEB",
"Xtend": "#24255d",
"Yacc": "#4B6C4B",
"YAML": "#cb171e",
"YARA": "#220000",
"YASnippet": "#32AB90",
"ZAP": "#0d665e",
"Zeek": null,
"ZenScript": "#00BCD1",
"Zephir": "#118f9e",
"Zig": "#ec915c",
"ZIL": "#dc75e5",
"Zimpl": "#d67711"
}

View file

Before

Width:  |  Height:  |  Size: 1.5 MiB

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View file

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View file

@ -15,13 +15,25 @@
pageRef = "docs" pageRef = "docs"
weight = 10 weight = 10
[[main]]
name = "Examples"
weight = 20
[[main]]
name = "Recipes"
parent = "Examples"
pageRef = "guides"
weight = 10
[[main]] [[main]]
name = "Samples" name = "Samples"
parent = "Examples"
pageRef = "samples" pageRef = "samples"
weight = 20 weight = 20
[[main]] [[main]]
name = "Showcase" name = "Showcase"
parent = "Examples"
pageRef = "examples" pageRef = "examples"
weight = 30 weight = 30

View file

@ -17,7 +17,11 @@ mainSections = ["docs"]
disableImageOptimization = true disableImageOptimization = true
defaultBackgroundImage = "/img/iceland.jpg" defaultBackgroundImage = "/img/bg.jpg"
highlightCurrentMenuArea = true
smartTOC = true
smartTOCHideUnfocusedChildren = false
[header] [header]
layout = "fixed" # valid options: basic, fixed layout = "fixed" # valid options: basic, fixed
@ -31,7 +35,7 @@ defaultBackgroundImage = "/img/iceland.jpg"
[homepage] [homepage]
layout = "custom" # valid options: page, profile, hero, card, background, custom layout = "custom" # valid options: page, profile, hero, card, background, custom
homepageImage = "/img/iceland.jpg" # used in: hero, and card # homepageImage = "/img/iceland.jpg" # used in: hero, and card
showRecent = false showRecent = false
showRecentItems = 10 showRecentItems = 10
showMoreLink = true showMoreLink = true
@ -76,7 +80,7 @@ defaultBackgroundImage = "/img/iceland.jpg"
showViews = true showViews = true
showLikes = true showLikes = true
showTableOfContents = true showTableOfContents = true
showCards = false showCards = true
groupByYear = false groupByYear = false
cardView = true cardView = true
cardViewScreenWidth = false cardViewScreenWidth = false

View file

@ -38,12 +38,12 @@ Hugo has various builtin methods to resize, crop and optimize images.
As an example - in `layouts/partials/article-link/card.html`, you have the following code: As an example - in `layouts/partials/article-link/card.html`, you have the following code:
```go ```go
{{ with .Fill "600x600" }} {{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
``` ```
The default behavior of Hugo here is to use Smartcrop to dynamically set the anchor point (crop placement) on the image and resize it to fill 600x600px. The default behavior of Hugo here is to resize the image to 600px keeping the ratio.
It is worth noting here that default image configurations such as [anchor point](https://gohugo.io/content-management/image-processing/#anchor) can also be set in your [site configuration](https://gohugo.io/content-management/image-processing/#processing-options) as well as in the template itself. It is worth noting here that default image configurations such as [anchor point](https://gohugo.io/content-management/image-processing/#anchor) can also be set in your [site configuration](https://gohugo.io/content-management/image-processing/#processing-options) as well as in the template itself.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

View file

@ -128,21 +128,24 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Global ### Global
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `colorScheme` | `"blowfish"` | The theme colour scheme to use. Valid values are `blowfish` (default), `avocado`, `ocean`, `fire` and `slate`. Refer to the [Colour Schemes]({{< ref "getting-started#colour-schemes" >}}) section for more details. | | `colorScheme` | `"blowfish"` | The theme colour scheme to use. Valid values are `blowfish` (default), `avocado`, `ocean`, `fire` and `slate`. Refer to the [Colour Schemes]({{< ref "getting-started#colour-schemes" >}}) section for more details. |
| `defaultAppearance` | `"light"` | The default theme appearance, either `light` or `dark`. | | `defaultAppearance` | `"light"` | The default theme appearance, either `light` or `dark`. |
| `autoSwitchAppearance` | `true` | Whether 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`. | | `autoSwitchAppearance` | `true` | Whether 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`. |
| `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. | | `enableSearch` | `false` | Whether site search is enabled. Set to `true` to enable search functionality. Note that the search feature depends on the `outputs.home` setting in the [site configuration](#site-configuration) being set correctly. |
| `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. | | `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. |
| `logo` | _Not set_ | The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. | | `logo` | _Not set_ | The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. |
| `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. | | `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. |
| `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. | | `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. |
| `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. | | `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `robots` | _Not set_ | String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. | | `robots` | _Not set_ | String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. |
| `disableImageZoom` | `false` | Disables image zoom feature across all the images in the site. | | `disableImageZoom` | `false` | Disables image zoom feature across all the images in the site. |
| `disableImageOptimization` | `false` | Disables image resize and optimization features across all the images in the site. | | `disableImageOptimization` | `false` | Disables image resize and optimization features across all the images in the site. |
| `defaultBackgroundImage` | _Not set_ | Default background image for both `background` homepage layout and `background` hero style | | `defaultBackgroundImage` | _Not set_ | Default background image for both `background` homepage layout and `background` hero style |
| `defaultBackgroundImage` | _Not set_ | Marks menu entries in the main manu when selected |
| `smartTOC` | _Not set_ | Activate smart Table of Contents, items in view will be highlighted. |
| `smartTOCHideUnfocusedChildren` | _Not set_ | When smart Table of Contents is turned on, this will hide deeper levels of the table when they are not in focus. |
### Header ### Header

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 MiB

View file

@ -189,12 +189,63 @@ The `name` parameter specifies the text that is used in the menu link. You can a
The `pageRef` parameter allows you to easily reference Hugo content pages and taxonomies. It is the quickest way to configure the menu as you can simply refer to any Hugo content item and it will automatically build the correct link. To link to external URLs, the `url` parameter can be used. The `pageRef` parameter allows you to easily reference Hugo content pages and taxonomies. It is the quickest way to configure the menu as you can simply refer to any Hugo content item and it will automatically build the correct link. To link to external URLs, the `url` parameter can be used.
The `pre` parameter allows you to place an icon from [Blowfish's icon set](http://localhost:1313/samples/icons/) on the menu entry. This parameter can be used with `name` parameter or by itself. If you want to use multiple menu entries with just icons please set the `identifier`parameter otherwise Hugo will default to the naming tag as the id and probably not display all the menu entries. The `pre` parameter allows you to place an icon from [Blowfish's icon set]({{< ref "samples/icons" >}}) on the menu entry. This parameter can be used with `name` parameter or by itself. If you want to use multiple menu entries with just icons please set the `identifier`parameter otherwise Hugo will default to the naming tag as the id and probably not display all the menu entries.
Menu links will be sorted from lowest to highest `weight`, and then alphabetically by `name`. Menu links will be sorted from lowest to highest `weight`, and then alphabetically by `name`.
Both menus are completely optional and can be commented out if not required. Use the template provided in the file as a guide. Both menus are completely optional and can be commented out if not required. Use the template provided in the file as a guide.
### Nested menus
The theme also supports nested menus. In order to use them you just need to define a parent entry in `menu.toml` and its sub-menus using the `parent` parameter to reference the parent. All properties can be used for sub-menus. Note that `pageRef` and `url` will be ignored for the parent entry. Nested menus is only available in the main menu not for the footer.
```toml
# config/_default/menus.toml
[[main]]
name = "Parent"
weight = 20
[[main]]
name = "sub-menu 1"
parent = "Parent"
pageRef = "samples"
weight = 20
[[main]]
name = "sub-menu 2"
parent = "Parent"
pageRef = "samples"
weight = 20
[[main]]
name = "sub-menu 3"
parent = "Parent"
pre = "github"
pageRef = "samples"
weight = 20
```
### Sub-Navigation menu
Additionally, you can also configure a sub-navigation menu. Just define new menu entries as `subnavigation` in `menu.toml`. This will render a second line with caregories below the main header menu.
```toml
# config/_default/menus.toml
[[subnavigation]]
name = "An interesting topic"
pageRef = "tags/interesting-topic"
weight = 10
[[subnavigation]]
name = "My Awesome Category"
pageRef = "categories/awesome"
weight = 20
```
## Thumbnails & Backgrounds ## Thumbnails & Backgrounds
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 <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms. 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 <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.

View file

@ -365,3 +365,27 @@ consectetur adipiscing elit.
"I'm gonna make him an offer he can't refuse." The Godfather (1972) "I'm gonna make him an offer he can't refuse." The Godfather (1972)
"Toto, I've a feeling we're not in Kansas anymore." The Wizard of Oz (1939) "Toto, I've a feeling we're not in Kansas anymore." The Wizard of Oz (1939)
{{< /typeit >}} {{< /typeit >}}
## GitHub Card
[TypeIt](https://www.typeitjs.com) is the most versatile JavaScript tool for creating typewriter effects on the planet. With a straightforward configuration, it allows you to type single or multiple strings that break lines, delete & replace each other, and it even handles strings that contain complex HTML.
Blowfish implements a sub-set of TypeIt features using a `shortcode`. Write your text within the `typeit` shortcode and use the following parameters to configure the behavior you want.
<!-- prettier-ignore-start -->
| Parameter | Description |
| --------- | ------------------------ |
| `repor` | [String] github repo in the format of `username/repo` |
<!-- prettier-ignore-end -->
**Example 1:**
```md
{{</* github repo="nunocoracao/blowfish" */>}}
```
{{< github repo="nunocoracao/blowfish" >}}

View file

@ -0,0 +1,19 @@
---
title: "Recipes"
description: "Recipes, guides, and tutorials for Blowfish"
cascade:
showDate: false
showAuthor: false
invertPagination: true
---
{{< lead >}}
Recipes, guides, and tutorials for Blowfish
{{< /lead >}}
**Blowfish user?** To add your guide to this list, [check the template](/guides/template/).
This section contains guides for a variety of scnearios on how to configure your theme. If you're new, check out the [Installation]({{< ref "docs/installation" >}}) guide to begin or visit the [Samples]({{< ref "samples" >}}) section to see what Blowfish can do.
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

View file

@ -0,0 +1,36 @@
---
title: "Recipe Template"
date: 1987-12-22
draft: false
description: "Template for creating a recipe for Blowfish theme"
tags: ["template"]
---
Thank you for wanting to contribute to Blowfish's community.
## How to start?
This is a template article that will explain how to create a new article for Blowfish's guide section.
## Clone Blowfish
Clone this repo with the following command:
```bash
git clone https://github.com/nunocoracao/blowfish.git
```
## Setup your files
Copy and paste the entire folder where this `.md` file is.
Name it using the following convention `YYYYMM-title`, no white spaces are allowed.
## Write your guide
Write your guide :)
Use the `img` folder to place your images and use them:
![]()
![Example](img/example.jpg "Image caption")
## Open a PR
Open a PR and thanks in advance for your contribution.

View file

@ -1,5 +1,5 @@
--- ---
title: "Content Samples" title: "Samples"
description: "See what's possible with Blowfish." description: "See what's possible with Blowfish."
cascade: cascade:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 MiB

View file

@ -40,6 +40,7 @@ The full list of built-in icons and their corresponding names can referenced bel
| facebook | {{< icon facebook >}} | | facebook | {{< icon facebook >}} |
| fire | {{< icon fire >}} | | fire | {{< icon fire >}} |
| flickr | {{< icon flickr >}} | | flickr | {{< icon flickr >}} |
| fork | {{< icon fork >}} |
| foursquare | {{< icon foursquare >}} | | foursquare | {{< icon foursquare >}} |
| ghost | {{< icon ghost >}} | | ghost | {{< icon ghost >}} |
| github | {{< icon github >}} | | github | {{< icon github >}} |
@ -87,6 +88,7 @@ The full list of built-in icons and their corresponding names can referenced bel
| snapchat | {{< icon snapchat >}} | | snapchat | {{< icon snapchat >}} |
| soundcloud | {{< icon soundcloud >}} | | soundcloud | {{< icon soundcloud >}} |
| stack-overflow | {{< icon stack-overflow >}} | | stack-overflow | {{< icon stack-overflow >}} |
| star | {{< icon star >}} |
| steam | {{< icon steam >}} | | steam | {{< icon steam >}} |
| stripe | {{< icon stripe >}} | | stripe | {{< icon stripe >}} |
| sun | {{< icon sun >}} | | sun | {{< icon sun >}} |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 MiB

View file

@ -60,6 +60,7 @@ Real websites that are built with Blowfish.
| [dizzytech.de](https://dizzytech.de) | Personal site | | [dizzytech.de](https://dizzytech.de) | Personal site |
| [blog.rotrixx.eu](https://blog.rotrixx.eu) | Personal site | | [blog.rotrixx.eu](https://blog.rotrixx.eu) | Personal site |
| [hexwiki.cz](https://hexwiki.cz/) | Personal site | | [hexwiki.cz](https://hexwiki.cz/) | Personal site |
| [alejandro-ao.com](https://alejandro-ao.com/) | Personal site |

View file

@ -19,7 +19,7 @@
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ else }} {{ else }}
{{ with .Fill "600x600" }} {{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ end }} {{ end }}

View file

@ -46,7 +46,7 @@
<div class="{{ $articleImageClasses }}" style="background-image:url({{ .RelPermalink }});"></div> <div class="{{ $articleImageClasses }}" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ else }} {{ else }}
{{ with .Fill "600x400" }} {{ with .Resize "600x" }}
<div class="{{ $articleImageClasses }}" style="background-image:url({{ .RelPermalink }});"></div> <div class="{{ $articleImageClasses }}" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ end }} {{ end }}

View file

@ -65,7 +65,7 @@
{{ if (eq $taxonomy "authors")}} {{ if (eq $taxonomy "authors")}}
{{ if (gt (len ($context.GetTerms $taxonomy)) 0) }} {{ if (gt (len ($context.GetTerms $taxonomy)) 0) }}
{{ range $i, $a := $context.GetTerms $taxonomy }} {{ range $i, $a := $context.GetTerms $taxonomy }}
{{ if not (eq $i 0) }} ,&nbsp; {{ end }} <div style="cursor: pointer;" onclick="window.open({{ $a.RelPermalink }})">{{ $a.LinkTitle }}</div> {{ if not (eq $i 0) }} ,&nbsp; {{ end }} <div style="cursor: pointer;" onclick="window.open({{ $a.RelPermalink }},'_self')">{{ $a.LinkTitle }}</div>
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ end }} {{ end }}
@ -80,7 +80,7 @@
{{ if and (not (eq $taxonomy "authors")) (not (eq $taxonomy "series"))}} {{ if and (not (eq $taxonomy "authors")) (not (eq $taxonomy "series"))}}
{{ if (gt (len ($context.GetTerms $taxonomy)) 0) }} {{ if (gt (len ($context.GetTerms $taxonomy)) 0) }}
{{ range $context.GetTerms $taxonomy }} {{ range $context.GetTerms $taxonomy }}
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open({{ .RelPermalink }});"> <span style="margin-top:0.5rem" class="mr-2" onclick="window.open({{ .RelPermalink }},'_self');">
{{ partial "badge.html" .LinkTitle }} {{ partial "badge.html" .LinkTitle }}
</span> </span>
{{ end }} {{ end }}

View file

@ -13,7 +13,7 @@
<div class="text-[0.6rem] uppercase leading-3 text-neutral-500 dark:text-neutral-400"> <div class="text-[0.6rem] uppercase leading-3 text-neutral-500 dark:text-neutral-400">
{{ i18n "author.byline_title" | markdownify | emojify }} {{ i18n "author.byline_title" | markdownify | emojify }}
</div> </div>
<a {{ if $link }} href="{{ $link }}" target="_blank" {{ end }} class="font-semibold leading-6 text-neutral-800 dark:text-neutral-300"> <a {{ if $link }} href="{{ $link }}" {{ end }} class="font-semibold leading-6 text-neutral-800 dark:text-neutral-300">
{{ . }} {{ . }}
</a> </a>
{{ end }} {{ end }}

View file

@ -49,9 +49,6 @@
"sha512" }} "sha512" }}
<link type="text/css" rel="stylesheet" href="{{ $bundleCSS.RelPermalink }}" <link type="text/css" rel="stylesheet" href="{{ $bundleCSS.RelPermalink }}"
integrity="{{ $bundleCSS.Data.Integrity }}" /> integrity="{{ $bundleCSS.Data.Integrity }}" />
{{ $jsMain := resources.Get "js/main.js" }}
{{ $jsMain = $jsMain | resources.Minify | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $jsMain.RelPermalink }}" integrity="{{ $jsMain.Data.Integrity }}"></script>
{{ $jsAppearance := resources.Get "js/appearance.js" }} {{ $jsAppearance := resources.Get "js/appearance.js" }}
{{ $jsAppearance = $jsAppearance | resources.Minify | resources.Fingerprint "sha512" }} {{ $jsAppearance = $jsAppearance | resources.Minify | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}" <script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}"

View file

@ -1,6 +1,6 @@
<div style="padding-left:0;padding-right:0;padding-top:2px;padding-bottom:3px" <div style="padding-left:0;padding-right:0;padding-top:2px;padding-bottom:3px"
class="flex items-center justify-between px-4 py-6 sm:px-6 md:justify-start space-x-3"> class="main-menu flex items-center justify-between px-4 py-6 sm:px-6 md:justify-start space-x-3">
{{ if .Site.Params.Logo -}} {{ if .Site.Params.Logo }}
{{ $logo := resources.Get .Site.Params.Logo }} {{ $logo := resources.Get .Site.Params.Logo }}
{{ if $logo }} {{ if $logo }}
<div> <div>
@ -17,20 +17,17 @@
<div class="flex flex-1 items-center justify-between"> <div class="flex flex-1 items-center justify-between">
<nav class="flex space-x-3"> <nav class="flex space-x-3">
<a href="{{ "" | relLangURL }}" class="text-base font-medium text-gray-500 hover:text-gray-900">{{ .Site.Title | markdownify <a href="{{ "" | relLangURL }}" class="text-base font-medium text-gray-500 hover:text-gray-900">{{
.Site.Title | markdownify
| emojify }}</a> | emojify }}</a>
</nav> </nav>
<div class="hidden md:flex items-center space-x-5 md:ml-12"> <nav class="hidden md:flex items-center space-x-5 md:ml-12">
{{ if .Site.Menus.main }} {{ if .Site.Menus.main }}
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:") (strings.HasPrefix .URL "https:") }} target="_blank"{{ end }} class="text-base font-medium text-gray-500 hover:text-gray-900" title="{{ .Title }}"> {{ partial "header/header-option.html" . }}
{{ partial "icon.html" .Pre }}
{{ if and .Pre .Name }} &nbsp; {{ end }}
{{ .Name | markdownify | emojify }}
</a>
{{ end }} {{ end }}
{{ end }} {{ end }}
@ -38,7 +35,7 @@
{{ if .Site.Params.enableSearch | default false }} {{ if .Site.Params.enableSearch | default false }}
<button id="search-button" class="text-base hover:text-primary-600 dark:hover:text-primary-400" <button id="search-button" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="{{ i18n "search.open_button_title" }}"> title="{{ i18n " search.open_button_title" }}">
{{ partial "icon.html" "search" }} {{ partial "icon.html" "search" }}
</button> </button>
{{ end }} {{ end }}
@ -59,7 +56,7 @@
</div> </div>
{{ end }} {{ end }}
</div> </nav>
<div class="flex md:hidden items-center space-x-5 md:ml-12"> <div class="flex md:hidden items-center space-x-5 md:ml-12">
<span></span> <span></span>
@ -68,7 +65,7 @@
{{ if .Site.Params.enableSearch | default false }} {{ if .Site.Params.enableSearch | default false }}
<button id="search-button-mobile" class="text-base hover:text-primary-600 dark:hover:text-primary-400" <button id="search-button-mobile" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="{{ i18n "search.open_button_title" }}"> title="{{ i18n " search.open_button_title" }}">
{{ partial "icon.html" "search" }} {{ partial "icon.html" "search" }}
</button> </button>
{{ end }} {{ end }}
@ -97,28 +94,84 @@
<div id="menu-wrapper" style="padding-top:5px;" <div id="menu-wrapper" style="padding-top:5px;"
class="fixed inset-0 z-30 invisible w-screen h-screen m-auto overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50"> class="fixed inset-0 z-30 invisible w-screen h-screen m-auto overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50">
<ul <ul
class="flex movedown flex-col w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl sm:px-14 md:px-24 lg:px-32 sm:py-10 sm:pt-10"> class="flex space-y-2 mt-3 flex-col items-end w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl">
<li class="mb-1">
<span class="cursor-pointer inline-block align-text-bottom hover:text-primary-600 dark:hover:text-primary-400">{{ partial <li>
<span
class="cursor-pointer inline-block align-text-bottom hover:text-primary-600 dark:hover:text-primary-400">{{
partial
"icon.html" "icon.html"
"xmark" }}</span> "xmark" }}</span>
</li> </li>
{{ if .Site.Menus.main }} {{ if .Site.Menus.main }}
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
<li class="mb-1">
<a {{ if or (strings.HasPrefix .URL "http:") (strings.HasPrefix .URL "https:") }} target="_blank"{{ end }} class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2" {{ partial "header/header-mobile-option.html" . }}
href="{{ .URL }}" title="{{ .Title }}">
<span class="inline-block align-text-bottom">{{ partial "icon.html" .Pre }}</span>
{{ if and .Pre .Name }} &nbsp; {{ end }}
{{ .Name | markdownify | emojify }}
</a>
</li>
{{ end }} {{ end }}
{{ end }} {{ end }}
</ul> </ul>
{{ if .Site.Menus.subnavigation }}
<hr>
<ul
class="flex mt-4 flex-col items-end w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl">
{{ range .Site.Menus.subnavigation }}
<li class="mb-1">
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:"
) }} target="_blank" {{ end }} class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-3" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-sm font-sm text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</p>
</a>
</li>
{{ end }}
</ul>
{{ end }}
</div> </div>
</label> </label>
</div> </div>
</div> </div>
{{ if .Site.Menus.subnavigation }}
<div class="main-menu flex pb-3 flex-col items-end justify-between md:justify-start space-x-3" {{ if .Site.Params.Logo
}} style="margin-top:-15px" {{ end }}>
<div class="hidden md:flex items-center space-x-5">
{{ range .Site.Menus.subnavigation }}
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:" ) }}
target="_blank" {{ end }} class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-xs font-light text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</p>
</a>
{{ end }}
</div>
</div>
{{ end }}
{{ if .Site.Params.highlightCurrentMenuArea }}
<script>
(function () {
var $mainmenu = $('.main-menu');
var path = window.location.pathname;
$mainmenu.find('a[href="' + path + '"]').each(function (i, e) {
$(e).children('p').addClass('active');
});
})();
</script>
{{ end }}

View file

@ -0,0 +1,31 @@
<li class="mt-1">
<a class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-bg font-bg text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</p>
<span>
{{ partial "icon.html" "chevron-down" }}
</span>
</a>
</li>
{{ range .Children }}
<li class="mt-1">
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:"
) }} target="_blank" {{ end }} class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-sm font-small text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</p>
</a>
</li>
{{ end }}
<li class="mb-2"></li>

View file

@ -0,0 +1,13 @@
<li class="mt-1">
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:"
) }} target="_blank" {{ end }} class="flex items-center">
{{ if .Pre }}
<div {{ if and .Pre .Name}} class="mr-2" {{ end }}>
{{ partial "icon.html" .Pre }}
</div>
{{ end }}
<p class="text-bg font-bg text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</p>
</a>
</li>

View file

@ -0,0 +1,5 @@
{{ if .HasChildren }}
{{ partial "header/header-mobile-option-nested.html" . }}
{{ else }}
{{ partial "header/header-mobile-option-simple.html" . }}
{{ end }}

View file

@ -0,0 +1,34 @@
<div>
<div class="cursor-pointer flex items-center nested-menu">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<a class="text-base font-medium text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</a>
<span>
{{ partial "icon.html" "chevron-down" }}
</span>
</div>
<div class="absolute menuhide">
<div class="pt-2 p-5 mt-2 rounded-xl backdrop-blur shadow-2xl">
<div class="flex flex-col space-y-3">
{{ range .Children }}
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:" ) }}
target="_blank" {{ end }} class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-sm font-sm text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</p>
</a>
{{ end }}
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,11 @@
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:" ) (strings.HasPrefix .URL "https:" ) }} target="_blank" {{
end }} class="flex items-center">
{{ if .Pre }}
<span {{ if and .Pre .Name}} class="mr-1" {{ end }}>
{{ partial "icon.html" .Pre }}
</span>
{{ end }}
<p class="text-base font-medium text-gray-500 hover:text-gray-900" title="{{ .Title }}">
{{ .Name | markdownify | emojify }}
</p>
</a>

View file

@ -0,0 +1,5 @@
{{ if .HasChildren }}
{{ partial "header/header-option-nested.html" . }}
{{ else }}
{{ partial "header/header-option-simple.html" . }}
{{ end }}

View file

@ -33,7 +33,7 @@
<div class="absolute inset-0 bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal"> <div class="absolute inset-0 bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal">
</div> </div>
<div <div
class="absolute inset-0 opacity-70 bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral dark:to-neutral-800 mix-blend-normal"> class="absolute inset-0 opacity-60 bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral-100 dark:to-neutral-800 mix-blend-normal">
</div> </div>
</div> </div>
{{ if $shouldBlur | default false }} {{ if $shouldBlur | default false }}

View file

@ -13,7 +13,7 @@
class="absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal"> class="absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal">
</div> </div>
<div <div
class="opacity-70 absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral dark:to-neutral-800 mix-blend-normal"> class="opacity-60 absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral-100 dark:to-neutral-800 mix-blend-normal">
</div> </div>
{{ end }} {{ end }}
</div> </div>

View file

@ -17,7 +17,7 @@
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ else }} {{ else }}
{{ with .Fill "600x600" }} {{ with .Resize "600x" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ end }} {{ end }}

View file

@ -1,24 +1,65 @@
<details open class="mt-0 overflow-hidden rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 hidden lg:block"> <details open class="mt-0 overflow-hidden rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 hidden lg:block">
<summary <summary
class="block py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden" class="block py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden">
>
{{ i18n "article.table_of_contents" }} {{ i18n "article.table_of_contents" }}
</summary> </summary>
<div <div
class="min-w-[220px] py-2 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600" class="min-w-[220px] py-2 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600">
>
{{ .TableOfContents | emojify }} {{ .TableOfContents | emojify }}
</div> </div>
</details> </details>
<details class="mt-0 overflow-hidden rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 lg:hidden"> <details class="mt-0 overflow-hidden rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 lg:hidden">
<summary <summary
class="py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden" class="py-1 text-lg font-semibold cursor-pointer bg-neutral-100 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-neutral-700 dark:text-neutral-100 lg:hidden">
>
{{ i18n "article.table_of_contents" }} {{ i18n "article.table_of_contents" }}
</summary> </summary>
<div <div
class="py-2 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600" class="py-2 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600">
>
{{ .TableOfContents | emojify }} {{ .TableOfContents | emojify }}
</div> </div>
</details> </details>
{{ if .Site.Params.smartTOC }}
<script>
(function () {
var $toc = $('#TableOfContents');
if ($toc.length > 0) {
var $window = $(window);
function onScroll() {
var currentScroll = $window.scrollTop();
var h = $('.anchor');
var id = "";
h.each(function (i, e) {
e = $(e);
if (e.offset().top - $(window).height()/3 <= currentScroll) {
id = e.attr('id');
}
});
var active = $toc.find('a.active');
if (active.length == 1 && active.eq(0).attr('href') == '#' + id) return true;
active.each(function (i, e) {
{{ if .Site.Params.smartTOCHideUnfocusedChildren }}
$(e).removeClass('active').siblings('ul').hide();
{{ else }}
$(e).removeClass('active');
{{ end }}
});
$toc.find('a[href="#' + id + '"]').addClass('active')
$toc.find('a[href="#' + id + '"]').parentsUntil('#TableOfContents').each(function (i, e) {
$(e).children('a').parents('ul').show();
});
}
$window.on('scroll', onScroll);
$(document).ready(function () {
{{ if .Site.Params.smartTOCHideUnfocusedChildren }}
$toc.find('a').parent('li').find('ul').hide();
{{ end }}
onScroll();
});
}
})();
</script>
{{ end }}

View file

@ -1,3 +1,7 @@
{{/* jQuery */}}
{{ $jqueryLib := resources.Get "lib/jquery/jquery.slim.min.js" }}
<script src="{{ $jqueryLib.RelPermalink }}" integrity="{{ $jqueryLib.Data.Integrity }}"></script>
{{/* Mermaid */}} {{/* Mermaid */}}
{{ if .Page.HasShortcode "mermaid" }} {{ if .Page.HasShortcode "mermaid" }}
{{ $mermaidLib := resources.Get "lib/mermaid/mermaid.min.js" }} {{ $mermaidLib := resources.Get "lib/mermaid/mermaid.min.js" }}
@ -40,6 +44,5 @@
{{/* TypeIt */}} {{/* TypeIt */}}
{{ if .Page.HasShortcode "typeit" }} {{ if .Page.HasShortcode "typeit" }}
{{ $typeitLib := resources.Get "lib/typeit/typeit.umd.js" }} {{ $typeitLib := resources.Get "lib/typeit/typeit.umd.js" }}
<script defer src="{{ $typeitLib.RelPermalink }}" integrity="{{ $typeitLib.Data.Integrity }}" <script defer src="{{ $typeitLib.RelPermalink }}" integrity="{{ $typeitLib.Data.Integrity }}"></script>
onload="renderTypeItElements();"></script>
{{ end }} {{ end }}

View file

@ -0,0 +1,46 @@
{{- $githubData := getJSON (print "https://api.github.com/repos/" (.Get "repo")) -}}
{{- $githubColors := .Site.Data.githubColors -}}
{{- with $githubData -}}
<a target="_blank" href="{{ .html_url }}" class="cursor-pointer">
<div class="w-full md:w-auto pt-3 p-5 border border-neutral-200 dark:border-neutral-700 border-2 rounded-md backdrop-blur shadow-2xl">
<div class="flex items-center">
<span class="text-2xl text-neutral-800 dark:text-neutral" style="margin-right:10px;">
{{ partial "icon.html" "github" }}
</span>
<div class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
{{ .full_name | markdownify | emojify }}
</div>
</div>
<p class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral">
{{ .description | markdownify | emojify }}
</p>
<div class="m-0 mt-2 flex items-center">
<span class="mr-1 inline-block h-3 w-3 rounded-full" style="background-color: {{- index $githubColors .language -}}"></span>
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
{{ .language }}
</div>
<span class="text-md mr-1 text-neutral-800 dark:text-neutral">
{{ partial "icon.html" "star" }}
</span>
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
{{ .stargazers_count }}
</div>
<span class="text-md mr-1 text-neutral-800 dark:text-neutral">
{{ partial "icon.html" "fork" }}
</span>
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
{{ .forks }}
</div>
</div>
</div>
</a>
{{- end -}}

274
package-lock.json generated
View file

@ -1,30 +1,31 @@
{ {
"name": "hugo-blowfish-theme", "name": "hugo-blowfish-theme",
"version": "2.23.1", "version": "2.24.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "hugo-blowfish-theme", "name": "hugo-blowfish-theme",
"version": "2.23.1", "version": "2.24.0",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@headlessui/react": "^1.7.7", "@headlessui/react": "^1.7.7",
"@heroicons/react": "^2.0.13", "@heroicons/react": "^2.0.13",
"@tailwindcss/forms": "^0.5.3", "@tailwindcss/forms": "^0.5.3",
"commander": "^9.4.1" "commander": "^9.5.0"
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.8", "@tailwindcss/typography": "^0.5.9",
"chart.js": "^4.1.2", "chart.js": "^4.1.2",
"fuse.js": "^6.6.2", "fuse.js": "^6.6.2",
"jquery": "^3.6.3",
"katex": "^0.16.4", "katex": "^0.16.4",
"mermaid": "^9.3.0", "mermaid": "^9.3.0",
"prettier": "^2.8.1", "prettier": "^2.8.2",
"prettier-plugin-go-template": "^0.0.13", "prettier-plugin-go-template": "^0.0.13",
"prettier-plugin-tailwindcss": "^0.2.1", "prettier-plugin-tailwindcss": "^0.2.1",
"rimraf": "^3.0.2", "rimraf": "^4.0.4",
"tailwindcss": "^3.2.4", "tailwindcss": "^3.2.4",
"typeit": "^8.7.1", "typeit": "^8.7.1",
"vendor-copy": "^3.0.1" "vendor-copy": "^3.0.1"
@ -109,9 +110,9 @@
} }
}, },
"node_modules/@tailwindcss/typography": { "node_modules/@tailwindcss/typography": {
"version": "0.5.8", "version": "0.5.9",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.8.tgz", "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz",
"integrity": "sha512-xGQEp8KXN8Sd8m6R4xYmwxghmswrd0cPnNI2Lc6fmrC3OojysTBJJGSIVwPV56q4t6THFUK3HJ0EaWwpglSxWw==", "integrity": "sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"lodash.castarray": "^4.4.0", "lodash.castarray": "^4.4.0",
@ -169,12 +170,6 @@
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
}, },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"node_modules/binary-extensions": { "node_modules/binary-extensions": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@ -183,16 +178,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"node_modules/braces": { "node_modules/braces": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@ -272,19 +257,13 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
}, },
"node_modules/commander": { "node_modules/commander": {
"version": "9.4.1", "version": "9.5.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
"integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
"engines": { "engines": {
"node": "^12.20.0 || >=14" "node": "^12.20.0 || >=14"
} }
}, },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/cssesc": { "node_modules/cssesc": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@ -807,12 +786,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"node_modules/fsevents": { "node_modules/fsevents": {
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@ -840,26 +813,6 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
"engines": {
"node": "*"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/glob-parent": { "node_modules/glob-parent": {
"version": "6.0.2", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@ -894,22 +847,6 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"node_modules/internmap": { "node_modules/internmap": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
@ -968,6 +905,12 @@
"node": ">=0.12.0" "node": ">=0.12.0"
} }
}, },
"node_modules/jquery": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz",
"integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==",
"dev": true
},
"node_modules/js-tokens": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@ -1095,18 +1038,6 @@
"mini-svg-data-uri": "cli.js" "mini-svg-data-uri": "cli.js"
} }
}, },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
"node_modules/minimist": { "node_modules/minimist": {
"version": "1.2.6", "version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
@ -1160,24 +1091,6 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": {
"wrappy": "1"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-parse": { "node_modules/path-parse": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@ -1328,9 +1241,9 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "2.8.1", "version": "2.8.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
"integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", "integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin-prettier.js" "prettier": "bin-prettier.js"
@ -1469,15 +1382,15 @@
} }
}, },
"node_modules/rimraf": { "node_modules/rimraf": {
"version": "3.0.2", "version": "4.0.4",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.4.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "integrity": "sha512-R0hoVr9xTwemarQjoWlNt/nb5dEGVTBhVdkRmEX2zEkT8T6onH0XKiGjuaC7rNNj/gYzY2p4NVRJ3sjO1ascHQ==",
"dev": true, "dev": true,
"dependencies": {
"glob": "^7.1.3"
},
"bin": { "bin": {
"rimraf": "bin.js" "rimraf": "dist/cjs/src/bin.js"
},
"engines": {
"node": ">=14"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/isaacs" "url": "https://github.com/sponsors/isaacs"
@ -1653,12 +1566,6 @@
"node": ">=12" "node": ">=12"
} }
}, },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"node_modules/xtend": { "node_modules/xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@ -1735,9 +1642,9 @@
} }
}, },
"@tailwindcss/typography": { "@tailwindcss/typography": {
"version": "0.5.8", "version": "0.5.9",
"resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.8.tgz", "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz",
"integrity": "sha512-xGQEp8KXN8Sd8m6R4xYmwxghmswrd0cPnNI2Lc6fmrC3OojysTBJJGSIVwPV56q4t6THFUK3HJ0EaWwpglSxWw==", "integrity": "sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==",
"dev": true, "dev": true,
"requires": { "requires": {
"lodash.castarray": "^4.4.0", "lodash.castarray": "^4.4.0",
@ -1780,27 +1687,11 @@
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
}, },
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"binary-extensions": { "binary-extensions": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
}, },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"braces": { "braces": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
@ -1859,15 +1750,9 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
}, },
"commander": { "commander": {
"version": "9.4.1", "version": "9.5.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
"integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==" "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ=="
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
}, },
"cssesc": { "cssesc": {
"version": "3.0.0", "version": "3.0.0",
@ -2264,12 +2149,6 @@
"to-regex-range": "^5.0.1" "to-regex-range": "^5.0.1"
} }
}, },
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"fsevents": { "fsevents": {
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@ -2287,20 +2166,6 @@
"integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==",
"dev": true "dev": true
}, },
"glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"glob-parent": { "glob-parent": {
"version": "6.0.2", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
@ -2326,22 +2191,6 @@
"safer-buffer": ">= 2.1.2 < 3.0.0" "safer-buffer": ">= 2.1.2 < 3.0.0"
} }
}, },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"internmap": { "internmap": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
@ -2382,6 +2231,12 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
}, },
"jquery": {
"version": "3.6.3",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz",
"integrity": "sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg==",
"dev": true
},
"js-tokens": { "js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@ -2486,15 +2341,6 @@
"resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
"integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==" "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg=="
}, },
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": { "minimist": {
"version": "1.2.6", "version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
@ -2533,21 +2379,6 @@
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
}, },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"requires": {
"wrappy": "1"
}
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true
},
"path-parse": { "path-parse": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
@ -2628,9 +2459,9 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
}, },
"prettier": { "prettier": {
"version": "2.8.1", "version": "2.8.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz",
"integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", "integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==",
"dev": true "dev": true
}, },
"prettier-plugin-go-template": { "prettier-plugin-go-template": {
@ -2710,13 +2541,10 @@
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
}, },
"rimraf": { "rimraf": {
"version": "3.0.2", "version": "4.0.4",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.0.4.tgz",
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "integrity": "sha512-R0hoVr9xTwemarQjoWlNt/nb5dEGVTBhVdkRmEX2zEkT8T6onH0XKiGjuaC7rNNj/gYzY2p4NVRJ3sjO1ascHQ==",
"dev": true, "dev": true
"requires": {
"glob": "^7.1.3"
}
}, },
"robust-predicates": { "robust-predicates": {
"version": "3.0.1", "version": "3.0.1",
@ -2839,12 +2667,6 @@
"ncp": "^2.0.0" "ncp": "^2.0.0"
} }
}, },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"xtend": { "xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",

View file

@ -1,6 +1,6 @@
{ {
"name": "hugo-blowfish-theme", "name": "hugo-blowfish-theme",
"version": "2.24.0", "version": "2.25.0",
"description": "Blowfish theme for Hugo", "description": "Blowfish theme for Hugo",
"scripts": { "scripts": {
"fullinstall": "npm run preinstall && npm install && npm run postinstall", "fullinstall": "npm run preinstall && npm install && npm run postinstall",
@ -34,15 +34,16 @@
}, },
"homepage": "https://github.com/nunocoracao/blowfish#readme", "homepage": "https://github.com/nunocoracao/blowfish#readme",
"devDependencies": { "devDependencies": {
"@tailwindcss/typography": "^0.5.8", "@tailwindcss/typography": "^0.5.9",
"chart.js": "^4.1.2", "chart.js": "^4.1.2",
"fuse.js": "^6.6.2", "fuse.js": "^6.6.2",
"jquery": "^3.6.3",
"katex": "^0.16.4", "katex": "^0.16.4",
"mermaid": "^9.3.0", "mermaid": "^9.3.0",
"prettier": "^2.8.1", "prettier": "^2.8.2",
"prettier-plugin-go-template": "^0.0.13", "prettier-plugin-go-template": "^0.0.13",
"prettier-plugin-tailwindcss": "^0.2.1", "prettier-plugin-tailwindcss": "^0.2.1",
"rimraf": "^3.0.2", "rimraf": "^4.0.4",
"tailwindcss": "^3.2.4", "tailwindcss": "^3.2.4",
"typeit": "^8.7.1", "typeit": "^8.7.1",
"vendor-copy": "^3.0.1" "vendor-copy": "^3.0.1"
@ -80,12 +81,16 @@
{ {
"from": "node_modules/typeit/dist/index.umd.js", "from": "node_modules/typeit/dist/index.umd.js",
"to": "assets/lib/typeit/typeit.umd.js" "to": "assets/lib/typeit/typeit.umd.js"
},
{
"from": "node_modules/jquery/dist/jquery.slim.min.js",
"to": "assets/lib/jquery/jquery.slim.min.js"
} }
], ],
"dependencies": { "dependencies": {
"@headlessui/react": "^1.7.7", "@headlessui/react": "^1.7.7",
"@heroicons/react": "^2.0.13", "@heroicons/react": "^2.0.13",
"@tailwindcss/forms": "^0.5.3", "@tailwindcss/forms": "^0.5.3",
"commander": "^9.4.1" "commander": "^9.5.0"
} }
} }

View file

@ -136,6 +136,12 @@ module.exports = {
'p::after': { 'p::after': {
display: 'none' display: 'none'
}, },
'a.active': {
"text-decoration-color": theme("colors.primary.600 / 1"),
},
'p.active': {
"text-decoration-color": theme("colors.primary.600 / 1"),
}
}, },
}, },
invert: { invert: {
@ -153,6 +159,12 @@ module.exports = {
code:{ code:{
backgroundColor: theme("colors.neutral.700 / 1"), backgroundColor: theme("colors.neutral.700 / 1"),
}, },
'a.active': {
"text-decoration-color": theme("colors.primary.400 / 1")
},
'p.active': {
"text-decoration-color": theme("colors.primary.400 / 1")
}
}, },
}, },
}), }),