add callouts and bidirectional links plugins

pyrox.dev 0fc5c208 659eee56

verified
Changed files
+192 -21
src
static
+37 -17
_config.ts
···
import lume from "lume/mod.ts";
import date from "lume/plugins/date.ts";
import picture from "lume/plugins/picture.ts";
+
import source_maps from "lume/plugins/source_maps.ts";
+
import toml from "lume/plugins/toml.ts";
+
+
// URL Management
import relations from "lume/plugins/relations.ts";
import slugify_urls from "lume/plugins/slugify_urls.ts";
-
import source_maps from "lume/plugins/source_maps.ts";
-
import toml from "lume/plugins/toml.ts";
+
import resolveUrls from "lume/plugins/resolve_urls.ts";
// File Generation
import feed from "lume/plugins/feed.ts";
···
// Markdown-it plugins
import { default as md_linenums } from "npm:markdown-it-inject-linenumbers@0.3.0";
+
import { BiDirectionalLinks } from "npm:@nolebase/markdown-it-bi-directional-links";
+
import { default as mdItObsidianCallouts } from "npm:markdown-it-obsidian-callouts";
// Additional external plugins
import toc from "https://deno.land/x/lume_markdown_plugins@v0.8.0/toc.ts";
···
// https://deno.land/x/lume_markdown_plugins@v0.8.0 (toc and footnotes plugins)
// https://deno.land/x/lume_shiki@0.0.16
-
const mdConfig = {
-
plugins: [md_linenums],
-
};
+
const site = lume({
+
src: "./src",
+
location: new URL("https://pyrox.dev"),
+
});
-
const site = lume(
-
{
-
src: "./src",
-
location: new URL("https://pyrox.dev"),
+
// site.hooks.addMarkdownItPlugin(md_linenums, {});
+
site.hooks.addMarkdownItPlugin(BiDirectionalLinks({
+
dir: Deno.cwd() + "/src/",
+
stillRenderNoMatched: false,
+
}));
+
site.hooks.addMarkdownItPlugin(mdItObsidianCallouts, {
+
icons: {
+
abstract: '<i class="bi bi-clipboard2-data"></i>',
+
bug: '<i class="bi bi-bug"></i>',
+
danger: '<i class="bi bi-lightning"></i>',
+
example: '<i class="bi bi-list-ul"></i>',
+
failure: '<i class="bi bi-x-lg"></i>',
+
info: '<i class="bi bi-info-circle"></i>',
+
note: '<i class="bi bi-pencil"></i>',
+
question: '<i class="bi bi-question-circle"></i>',
+
quote: '<i class="bi bi-quote"></i>',
+
success: '<i class="bi bi-check2"></i>',
+
tip: '<i class="bi bi-fire"></i>',
+
todo: '<i class="bi bi-check-circle"></i>',
+
warning: '<i class="bi bi-exclamation-triangle"></i>',
},
-
{ mdConfig },
-
);
+
});
// Copy Static Files
site.add(".css");
···
},
}),
);
-
site.use(toc())
-
+
site.use(toc());
+
site.use(resolveUrls());
// RSS/JSON Feed Generation
site.use(
···
options: {
minify: true,
bundle: false,
-
}
+
},
}));
// Source Map Generation
// Applies to CSS and JS
site.use(source_maps());
-
// Minify HTML Output
site.use(minify_html({
options: {
keep_html_and_head_opening_tags: true,
-
keep_spaces_between_attributes: true
-
}
+
keep_spaces_between_attributes: true,
+
},
}));
// robots.txt generation
+2
deno.json
···
"imports": {
"@catppuccin/tailwindcss": "npm:@catppuccin/tailwindcss@^0.1.6",
"@img/sharp-wasm32": "npm:@img/sharp-wasm32@0.33.5",
+
"@nolebase/markdown-it-bi-directional-links": "npm:@nolebase/markdown-it-bi-directional-links@^2.14.0",
"lume/": "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/",
+
"markdown-it-obsidian-callouts": "npm:markdown-it-obsidian-callouts@^0.3.1",
"sharp": "npm:sharp@0.33.5"
},
"tasks": {
+59 -4
deno.lock
···
"npm:@imagemagick/magick-wasm@0.0.31": "0.0.31",
"npm:@img/sharp-wasm32@0.33.5": "0.33.5",
"npm:@js-temporal/polyfill@0.4.4": "0.4.4",
+
"npm:@nolebase/markdown-it-bi-directional-links@*": "2.14.0_markdown-it@14.1.0",
+
"npm:@nolebase/markdown-it-bi-directional-links@^2.14.0": "2.14.0_markdown-it@14.1.0",
"npm:@tailwindcss/oxide@4.0.3": "4.0.3",
"npm:@tailwindcss/oxide@4.0.6": "4.0.6",
"npm:@types/estree@1.0.6": "1.0.6",
···
"npm:markdown-it-attrs@4.3.1": "4.3.1_markdown-it@14.1.0",
"npm:markdown-it-deflist@3.0.0": "3.0.0",
"npm:markdown-it-inject-linenumbers@0.3.0": "0.3.0",
+
"npm:markdown-it-obsidian-callouts@*": "0.3.1_markdown-it@14.1.0",
+
"npm:markdown-it-obsidian-callouts@~0.3.1": "0.3.1_markdown-it@14.1.0",
"npm:markdown-it@14.1.0": "14.1.0",
"npm:meriyah@6.0.5": "6.0.5",
"npm:pagefind@1.3.0": "1.3.0",
···
"fastq"
]
},
+
"@nolebase/markdown-it-bi-directional-links@2.14.0_markdown-it@14.1.0": {
+
"integrity": "sha512-AyWeMzGj8o90XYcEUcvM2DEuL3a+4vmZGZC+usGgOWrR3fArgEpQtYvZ7C51GopDfMLa/kD0mue/CxdJFK/ryw==",
+
"dependencies": [
+
"colorette",
+
"debug",
+
"markdown-it",
+
"tinyglobby"
+
]
+
},
"@pagefind/darwin-arm64@1.3.0": {
"integrity": "sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A=="
},
···
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dependencies": [
"normalize-path",
-
"picomatch"
+
"picomatch@2.3.1"
]
},
"arg@5.0.2": {
···
"color-string"
]
},
+
"colorette@2.0.20": {
+
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
+
},
"commander@12.1.0": {
"integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="
},
···
},
"date-fns@4.1.0": {
"integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="
+
},
+
"debug@4.4.0": {
+
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+
"dependencies": [
+
"ms"
+
]
},
"detect-libc@2.0.3": {
"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw=="
···
"reusify"
]
},
+
"fdir@6.4.3_picomatch@4.0.2": {
+
"integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+
"dependencies": [
+
"picomatch@4.0.2"
+
]
+
},
"fflate@0.7.4": {
"integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw=="
},
···
"markdown-it-inject-linenumbers@0.3.0": {
"integrity": "sha512-c9ymcXUunjCJ8vNBNrg3JMT5d94IxAy6KHJ891vuZf/go98opU77X5neiVIi9Rer3v+03WYk5913J1pVmJOV0g=="
},
+
"markdown-it-obsidian-callouts@0.3.1_markdown-it@14.1.0": {
+
"integrity": "sha512-MCvbHofaDxUD9hwrQg9+62Yq5Ev1K2glr5ogUxvFWm7WGG3SKqC90/ozWZ/ofqUvD5iw2KLElSWLHvL1crUeqA==",
+
"dependencies": [
+
"markdown-it"
+
]
+
},
"markdown-it@14.1.0": {
"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dependencies": [
···
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dependencies": [
"braces",
-
"picomatch"
+
"picomatch@2.3.1"
},
"micromatch@4.0.8": {
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dependencies": [
"braces",
-
"picomatch"
+
"picomatch@2.3.1"
},
"minimatch@10.0.1": {
···
"minipass@7.1.2": {
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
},
+
"ms@2.1.3": {
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+
},
"mz@2.7.0": {
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dependencies": [
···
},
"picomatch@2.3.1": {
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+
},
+
"picomatch@4.0.2": {
+
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="
},
"pify@2.3.0": {
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
···
"readdirp@3.6.0": {
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dependencies": [
-
"picomatch"
+
"picomatch@2.3.1"
},
"remove-markdown@0.6.0": {
···
"tiny-inflate@1.0.3": {
"integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
},
+
"tinyglobby@0.2.10_picomatch@4.0.2": {
+
"integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
+
"dependencies": [
+
"fdir",
+
"picomatch@4.0.2"
+
]
+
},
"to-regex-range@5.0.1": {
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dependencies": [
···
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/source.ts": "e89a5ff7081dfab56d8486599a37147bb16159c47df3fe55db041491059959d3",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/cli_options.ts": "ce8731a5e9c23b95217b6967dc4e5c434637a33d16806189acc6a87728b2e649",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/concurrent.ts": "cb0775b3d95f3faa356aa3a3e489dccef8807ed93cc4f84fcf5bc81e87c29504",
+
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/css_urls.ts": "74d7c468b790ca6c76d0ea1042336f423510d4f3ca2ba418922c847a2e10550a",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/data_values.ts": "ff6866d0c61bdca40c6ba98826ccc8626d8a553d4f8f4a7d320041eea21aa900",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/date.ts": "4972e6e43d9756a3858494004e1b45df3b947033abe68db02acfc0bbb7847ce1",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/digest.ts": "445b387983391af73269686292a65bb677119a25a327776885ff1242a9397ad8",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/dom.ts": "d406fb5c48ceb012286d0aff66ef635261eda666de2ce07538c0cf9366b8fecd",
+
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/dom_links.ts": "f4a197edd4a77b504e82d097613b02684fb5ba73cd415608b913bc658e6ddb28",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/env.ts": "d2440f14ad27e65b0a42b35a52f59ccce0430dd52950bd5df103bb1c9ba1a4a7",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/generator.ts": "1e664e9fd4c469e38a0acf5c94fd49dac4f38cb6334563ea4b7fc498b5958877",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/core/utils/log.ts": "371a419a167f3002e28fd3cb8d8409e210a844f5f1212f36e607417f77d65a8a",
···
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/markdown.ts": "7e82d897c1e35bf119dcd18b6aec7a6ba5aa06848897b34ff9cd161ec7c8757e",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/metas.ts": "ecaf7a634b2293442324afe4f5b378e1757784937af4a091710209b6cbebf399",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/minify_html.ts": "3a8b2037199cda2814e8c712086789b8be3646d7c29ea31c27f4fa5b03de5c41",
+
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/modify_urls.ts": "48ae054061500f8e05063d5f94c95627b0dde4ba591daacb35010f457ec24802",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/modules.ts": "4e177c0ffe972b9deef10db2bf0ae52b405418af4dbac03db9e7ffbd6a3ec6ae",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/paginate.ts": "6a1a9a24d0fabed2f722a6a6f29d98559219c69475685034181816e82d367f2e",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/picture.ts": "6e3a19d2e8fc464ea0139a8a784666924e55f98c4358a5f4e6348d56788cf8a8",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/purgecss.ts": "7d4906ea2415d8611b8af6947eaaaf56bc33040806e5b840410368f1b62fb86c",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/relations.ts": "0228745729a6361b6da6daee0df72ce4c1ebcd4e100d20e00778ff1e643c0a27",
+
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/resolve_urls.ts": "910dbccd25fcacacc72d577a3df37c5f3cc4adce0ec52b2fc8903863c2e2afae",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/robots.ts": "97bf9b5e0957f7229a1a3e6fc11d708af42b968ad35f0cf00b770ebf5eaa717f",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/search.ts": "5acb5be828bbbd012fb9226cb97ec3e370d43d05aa44d16e7e7d50bab368b442",
"https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/plugins/sitemap.ts": "57600034ce49e875a2658f86cb2668b634102db6db5583ddbfbadbec66a538ae",
···
"https://deno.land/x/lume_markdown_plugins@v0.8.0/toc/anchors.ts": "8a4a1c6b2c63156622695ceba57fa7100a6e5f109c9a383a1dcaf755233c8184",
"https://deno.land/x/lume_markdown_plugins@v0.8.0/toc/mod.ts": "8c7aa6e1dcfabda4264503495a3875388108cd9a5a94b54853b45a8e8cba9f78",
"https://deno.land/x/lume_markdown_plugins@v0.8.0/utils.ts": "6e6c3c394709eff39080562732c2dafe404f225253aaded937133ea694c4b735",
+
"https://deno.land/x/lume_markdown_plugins@v0.8.0/wikilinks.ts": "ec5421e67ef7ed6721b9e2e3dc43fb2117ce7d718cdf0a5be0ff87e53372ae1f",
+
"https://deno.land/x/lume_markdown_plugins@v0.8.0/wikilinks/mod.ts": "cdb967c026e9ade6fac17ea592351037aab35e6f06c47286d5f941adfea5425e",
"https://deno.land/x/lz4@v0.1.2/mod.ts": "4decfc1a3569d03fd1813bd39128b71c8f082850fe98ecfdde20025772916582",
"https://deno.land/x/lz4@v0.1.2/wasm.js": "b9c65605327ba273f0c76a6dc596ec534d4cda0f0225d7a94ebc606782319e46",
"https://deno.land/x/minify_html@0.15.0/mod.js": "0974387d0bee4646a9cb959c641c170442b0d2a6bddcb9857758636afd8676d5",
···
"dependencies": [
"npm:@catppuccin/tailwindcss@~0.1.6",
"npm:@img/sharp-wasm32@0.33.5",
+
"npm:@nolebase/markdown-it-bi-directional-links@^2.14.0",
+
"npm:markdown-it-obsidian-callouts@~0.3.1",
"npm:sharp@0.33.5"
+94
src/static/styles.css
···
--ctp-base: rgb(239 241 245);
--ctp-mantle: rgb(230 233 239);
--ctp-crust: rgb(220 224 232);
+
--callout-blend-mode: darken;
}
.mocha {
--ctp-rosewater: rgb(245 224 220);
···
--ctp-base: rgb(30 30 46);
--ctp-mantle: rgb(24 24 37);
--ctp-crust: rgb(17 17 27);
+
--callout-blend-mode: lighten;
}
@theme {
···
--font-sans: "Inter", "ui-sans-serif", "system-ui", "sans-serif";
--font-serif: "IBM Plex Serif", "ui-serif", "serif";
+
--text-inherit: inherit;
+
--p-callout: 12px 12px 12px 24px;
+
/* Flag Colors */
--color-trans-blue: #5bcffa;
--color-trans-pink: #f5abb9;
···
--color-mantle: var(--ctp-mantle);
--color-crust: var(--ctp-crust);
}
+
+
@utility h-entry {
+
a {
+
@apply text-blue underline;
+
}
+
}
+
+
@utility callout {
+
@apply border-1 rounded-sm py-2 pl-2 pr-4 border-solid overflow-hidden;
+
border-color: --alpha(var(--callout-color) / 50%);
+
margin: 1em 0;
+
mix-blend-mode: var(--callout-blend-mode);
+
background-color: --alpha(var(--callout-color) / 15%);
+
+
.callout-title {
+
@apply text-lg mb-1 flex gap-2 items-start font-semibold text-inherit;
+
color: rgb(var(--callout-color));
+
+
.callout-title-icon {
+
@apply flex items-center text-2xl;
+
flex: 0 0 auto;
+
}
+
+
.callout-fold {
+
@apply justify-self-end ml-auto;
+
font-family: "bootstrap-icons";
+
background-color: rgb(var(--callout-color));
+
}
+
}
+
+
.callout-content {
+
@apply overflow-x-auto pl-2;
+
}
+
&[data-callout="todo"],
+
&[data-callout="info"],
+
&[data-callout="note"] {
+
--callout-color: var(--ctp-blue);
+
}
+
+
&[data-callout="success"],
+
&[data-callout="check"],
+
&[data-callout="done"] {
+
--callout-color: var(--ctp-green);
+
}
+
+
&[data-callout="warning"],
+
&[data-callout="caution"],
+
&[data-callout="attention"] {
+
--callout-color: var(--ctp-yellow);
+
}
+
+
&[data-callout="danger"],
+
&[data-callout="error"] {
+
--callout-color: var(--ctp-red);
+
}
+
+
&[data-callout="tip"],
+
&[data-callout="hint"] {
+
--callout-color: var(--ctp-teal);
+
}
+
+
&[data-callout="example"] {
+
--callout-color: var(--ctp-mauve);
+
}
+
+
&[data-callout="abstract"],
+
&[data-callout="summary"],
+
&[data-callout="tldr"] {
+
--callout-color: var(--ctp-sky);
+
}
+
+
&[data-callout="quote"],
+
&[data-callout="cite"] {
+
--callout-color: var(--ctp-overlay0);
+
}
+
}
+
+
details.callout .callout-title {
+
margin: 0;
+
cursor: pointer;
+
}
+
+
details.callout > .callout-title > .callout-fold::after {
+
content: "\F285";
+
}
+
+
details[open].callout > .callout-title > .callout-fold::after {
+
content: "\F282";
+
}