diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 000000000..ffd2870b7 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +nodejs 16.18.0 diff --git a/.vale.ini b/.vale.ini index 7bb50a433..5d3c4edfa 100644 --- a/.vale.ini +++ b/.vale.ini @@ -1,4 +1,21 @@ StylesPath = ".vale/styles" +Packages = Google, proselint, write-good, Readability +Vocab = Awesome +MinAlertLevel = suggestion [*.{rst,md}] -BasedOnStyles = Google, 18F, proselint, Awesome +BasedOnStyles = Vale, Google, write-good, proselint + +# Track readability scores +Readability.FleschKincaid = YES +Readability.AutomatedReadability = YES + +# Duplicate of `Google.Passive` +write-good.Passive = NO +write-good.E-Prime = NO + +# Ignore MysT reference labels +BlockIgnores = (?:\(.+\)=) + +# Ignore MyST inline roles (\x60 = `) +TokenIgnores = ({\w+}\x60.+\x60) diff --git a/.vale/styles/18F/Abbreviations.yml b/.vale/styles/18F/Abbreviations.yml deleted file mode 100644 index ec73eca9f..000000000 --- a/.vale/styles/18F/Abbreviations.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -extends: substitution -message: "Use '%s' instead of '%s'." -link: https://content-guide.18f.gov/specific-words-and-phrases/ -ignorecase: false -level: error -nonword: true -swap: - '\beg\b': e.g., - '\bie\b': i.e., - 'e\.g\.(?:[^,]|$)': e.g., - 'i\.e\.(?:[^,]|$)': i.e., - '(?:i)\d{1,2} ?[ap]m': a.m. or p.m. - 'D\.C\.': DC - '\bUSA?\b': U.S. diff --git a/.vale/styles/18F/Ages.yml b/.vale/styles/18F/Ages.yml deleted file mode 100644 index 0705ee3a9..000000000 --- a/.vale/styles/18F/Ages.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -extends: existence -message: Avoid hyphens in ages unless it clarifies the text. -link: https://content-guide.18f.gov/specific-words-and-phrases/ -level: warning -tokens: - - '\d{1,3}-year-old' diff --git a/.vale/styles/18F/Brands.yml b/.vale/styles/18F/Brands.yml deleted file mode 100644 index fad6ff745..000000000 --- a/.vale/styles/18F/Brands.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -extends: substitution -message: "Use '%s' instead of '%s'." -link: https://content-guide.18f.gov/trademarks-and-brands/ -level: warning -ignorecase: true -swap: - Band-Aid: bandage - Bubble Wrap: packaging bubbles - Chapstick: lip balm - Crayola: crayons - Dumpster: waste container - Hi-Liter: highlighting marker - iPod: MP3 player - Kleenex: tissue - Plexiglas: plastic glass - Post-it note: adhesive note - Q-Tips: cotton swabs - Scotch tape: transparent tape - Styrofoam: plastic foam - Taser: stun gun - Xerox: photocopy diff --git a/.vale/styles/18F/Clarity.yml b/.vale/styles/18F/Clarity.yml deleted file mode 100644 index 29d95271a..000000000 --- a/.vale/styles/18F/Clarity.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -extends: substitution -message: '%s' -link: https://content-guide.18f.gov/plain-language/#words-to-avoid -level: warning -ignorecase: true -swap: - (?:commit|pledge): > - Be more specific — we’re either doing something or we’re not. - advancing: Avoid using 'advancing.' - agenda: Avoid using 'agenda' (unless you’re talking about a meeting). - deploy: > - Avoid using 'deploy', unless you’re talking about the military or - software. - disincentivize: Avoid using 'disincentivize.' - empower: Avoid using 'empower.' - focusing: Avoid using 'focusing.' - foster: Avoid using 'foster' (unless it’s children). - impact(?:ful)?: Avoid using impact or impactful. - incentivize: Avoid using 'incentivize.' - innovative: Use words that describe the positive outcome of the innovation. - leverage: > - Avoid using 'leverage' (unless you're using it in the financial sense). - progress: What are you actually doing? - promote: Avoid using 'promote' (unless you’re talking about an ad campaign). - streamline: Avoid using 'streamline.' - strengthening: > - Avoid using 'strengthening' (unless you’re referring to bridges or other - structures). - tackling: > - Avoid using 'tackling' (unless you’re referring to football or another - contact sport). - touchpoint: Mention specific system components. - transforming: What are you actually doing to change it? diff --git a/.vale/styles/18F/Contractions.yml b/.vale/styles/18F/Contractions.yml deleted file mode 100644 index 875b73a12..000000000 --- a/.vale/styles/18F/Contractions.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- -extends: substitution -message: 'Use "%s" instead of "%s".' -link: https://content-guide.18f.gov/voice-and-tone/#use-contractions -level: error -ignorecase: true -swap: - are not: aren't - cannot: can't - could not: couldn't - did not: didn't - do not: don't - does not: doesn't - has not: hasn't - have not: haven't - how is: how's - how will: how'll - is not: isn't - it is: it's - it will: it'll - should not: shouldn't - that is: that's - that will: that'll - they are: they're - they will: they'll - was not: wasn't - we are: we're - we have: we've - we will: we'll - were not: weren't - what is: what's - what will: what'll - when is: when's - when will: when'll - where is: where's - where will: where'll - who is: who's - who will: who'll - why is: why's - why will: why'll - will not: won't diff --git a/.vale/styles/18F/DropDown.yml b/.vale/styles/18F/DropDown.yml deleted file mode 100644 index 14856fae5..000000000 --- a/.vale/styles/18F/DropDown.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -extends: substitution -message: "Use %s instead of '%s'." -link: https://content-guide.18f.gov/specific-words-and-phrases/ -level: error -# 'drop-down' when used as an adjective. For example, drop-down menu. -# 'drop down' when used as a noun. For example, an option from the drop down. -# Never dropdown. -pos: 'drop/\w+ down/RP|dropdown/\w+|drop-down/NN' -ignorecase: true -swap: - drop down: "'drop-down'" - drop-down: "'drop down'" - dropdown: "'drop-down' or 'drop down'" diff --git a/.vale/styles/18F/Quotes.yml b/.vale/styles/18F/Quotes.yml deleted file mode 100644 index 24d6d4fe8..000000000 --- a/.vale/styles/18F/Quotes.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -extends: existence -message: Punctuation should be inside the quotes. -link: https://content-guide.18f.gov/punctuation/#quotes -level: error -nonword: true -tokens: - - '"[^"]+"[.,?]' diff --git a/.vale/styles/18F/README.md b/.vale/styles/18F/README.md deleted file mode 100644 index f73ef55e9..000000000 --- a/.vale/styles/18F/README.md +++ /dev/null @@ -1,7 +0,0 @@ -Based on [18F](https://pages.18f.gov/content-guide/). - -> This project is in the worldwide [public domain](LICENSE.md). - -> As a work of the United States government, this project is in the public domain within the United States. - -> Additionally, we waive copyright and related rights in the work worldwide through the CC0 1.0 Universal public domain dedication. diff --git a/.vale/styles/18F/Reading.yml b/.vale/styles/18F/Reading.yml deleted file mode 100644 index fe560bc5c..000000000 --- a/.vale/styles/18F/Reading.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -message: Craft sentences at 25 words or fewer, whenever possible. -link: 'https://content-guide.18f.gov/be-concise/#keep-sentences-short-and-sweet' -extends: occurrence -scope: sentence -level: warning -max: 25 -token: '\b(\w+)\b' diff --git a/.vale/styles/18F/SentenceLength.yml b/.vale/styles/18F/SentenceLength.yml deleted file mode 100644 index fe560bc5c..000000000 --- a/.vale/styles/18F/SentenceLength.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -message: Craft sentences at 25 words or fewer, whenever possible. -link: 'https://content-guide.18f.gov/be-concise/#keep-sentences-short-and-sweet' -extends: occurrence -scope: sentence -level: warning -max: 25 -token: '\b(\w+)\b' diff --git a/.vale/styles/18F/Spacing.yml b/.vale/styles/18F/Spacing.yml deleted file mode 100644 index c66189d33..000000000 --- a/.vale/styles/18F/Spacing.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -extends: existence -message: "'%s' should have one space." -link: https://content-guide.18f.gov/punctuation/#spaces -level: error -nonword: true -tokens: - - '[.?!] {2,}[A-Z]' - - '[.?!][A-Z]' diff --git a/.vale/styles/18F/Terms.yml b/.vale/styles/18F/Terms.yml deleted file mode 100644 index db506ef47..000000000 --- a/.vale/styles/18F/Terms.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -extends: substitution -message: "Prefer %s over '%s'." -level: warning -ignorecase: false -swap: - 'e(?:-| )mail': email - (?:illegals|illegal aliens): "'undocumented immigrants'" - back-end: "'back end'" - citizen: "'people' or 'The public'" - combating: "'working against' or 'fighting'" - countering: "'answering' or 'responding'" - dialogue: "'speaking(ing)'" - dropdown: "'drop-down' or 'drop down'" - execute: "'run' or 'do'" - open-source: "'open source'" - simple: "'straightforward', 'uncomplicated', or 'clear'" - user testing: "'usability testing'" diff --git a/.vale/styles/18F/ToDo.yml b/.vale/styles/18F/ToDo.yml deleted file mode 100644 index 6c2aa7ecd..000000000 --- a/.vale/styles/18F/ToDo.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -extends: substitution -message: "Use '%s' instead of '%s'." -link: https://content-guide.18f.gov/specific-words-and-phrases/ -level: error -# 'to do' (noun) and 'to-do' (adjective). For example, your to dos or your -# to-do list. -pos: 'to/TO do/VB' -ignorecase: true -swap: - to do: to-do diff --git a/.vale/styles/18F/UnexpandedAcronyms.yml b/.vale/styles/18F/UnexpandedAcronyms.yml deleted file mode 100644 index cdd4aa7c9..000000000 --- a/.vale/styles/18F/UnexpandedAcronyms.yml +++ /dev/null @@ -1,65 +0,0 @@ ---- -extends: conditional -message: "'%s' should be parenthetically defined." -link: https://content-guide.18f.gov/abbreviations-and-acronyms/ -level: warning -first: '\b([A-Z]{3,5})\b' -second: '(?:\b[A-Z][a-z]+['']? )+\(([A-Z]{3,5})\)' -exceptions: - - ABC - - ADD - - ADHD - - AIDS - - APA - - API - - CBS - - CIA - - CSI - - CSS - - CST - - ESPN - - EST - - FAQ - - FBI - - FBI - - FIXME - - GNU - - GOV - - HIV - - HR - - HTML - - HTTP - - HTTPS - - JSON - - LAN - - MIT - - MLA - - MLB - - MTV - - NAACP - - NAACP - - NASA - - NASA - - NATO - - NBA - - NBC - - NCAA - - NCAAB - - NCAAF - - NFL - - NHL - - NOTE - - PDF - - PGA - - PPV - - PST - - SGML - - SSN - - SVG - - TNT - - TODO - - URL - - USA - - USSR - - XML - - XXX diff --git a/.vale/styles/Awesome/Flesch-Kincaid.yml b/.vale/styles/Awesome/Flesch-Kincaid.yml deleted file mode 100644 index 4324ba88f..000000000 --- a/.vale/styles/Awesome/Flesch-Kincaid.yml +++ /dev/null @@ -1,9 +0,0 @@ -extends: metric -message: "Try to keep the Flesch-Kincaid grade level (%s) below 10." -link: https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests - -formula: | - (0.39 * words / sentences) + (11.8 * syllables / words) - 15.59 - -condition: ">10" - diff --git a/.vale/styles/Awesome/Smog.yml b/.vale/styles/Awesome/Smog.yml deleted file mode 100644 index 77f897870..000000000 --- a/.vale/styles/Awesome/Smog.yml +++ /dev/null @@ -1,9 +0,0 @@ -extends: metric -message: "Try to keep the SMOG grade level (%s) below 10." -link: https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests - -formula: | - 1.0430 * math.sqrt(polysyllabic_words + (30 / sentences)) + 3.1291 - -condition: ">10" - diff --git a/.vale/styles/Awesome/SpellCheck.yml b/.vale/styles/Awesome/SpellCheck.yml deleted file mode 100644 index 2de69054d..000000000 --- a/.vale/styles/Awesome/SpellCheck.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -extends: spelling -message: Did you really mean '%s' -level: error -ignorecase: true -filters: - - 'confval|Samp|samp|toctree|linenos' -ignore: - - Awesome/ignore/allow.txt diff --git a/.vale/styles/Awesome/ignore/allow.txt b/.vale/styles/Awesome/ignore/allow.txt deleted file mode 100644 index 2c8f6e1b3..000000000 --- a/.vale/styles/Awesome/ignore/allow.txt +++ /dev/null @@ -1,19 +0,0 @@ -Algolia -bugfixes -callouts -deps -docsearch -docutils -gh -headerlink -headerlinks -monospace -netlify -nox -npm -pipx -postprocessing -pygments -toolchain -tooltips -webpack diff --git a/.vale/styles/Google/AMPM.yml b/.vale/styles/Google/AMPM.yml index 5f5c5cce3..fbdc6e4f8 100644 --- a/.vale/styles/Google/AMPM.yml +++ b/.vale/styles/Google/AMPM.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Use 'AM' or 'PM' (preceded by a space)." link: 'https://developers.google.com/style/word-list' diff --git a/.vale/styles/Google/Acronyms.yml b/.vale/styles/Google/Acronyms.yml index 10b484d36..f41af0189 100644 --- a/.vale/styles/Google/Acronyms.yml +++ b/.vale/styles/Google/Acronyms.yml @@ -1,4 +1,3 @@ ---- extends: conditional message: "Spell out '%s', if it's unfamiliar to the audience." link: 'https://developers.google.com/style/abbreviations' diff --git a/.vale/styles/Google/Colons.yml b/.vale/styles/Google/Colons.yml index f45e50dc4..99363fbd4 100644 --- a/.vale/styles/Google/Colons.yml +++ b/.vale/styles/Google/Colons.yml @@ -1,8 +1,8 @@ ---- extends: existence message: "'%s' should be in lowercase." link: 'https://developers.google.com/style/colons' nonword: true level: warning +scope: sentence tokens: - ':\s[A-Z]' diff --git a/.vale/styles/Google/Contractions.yml b/.vale/styles/Google/Contractions.yml index 9b808475d..95234987b 100644 --- a/.vale/styles/Google/Contractions.yml +++ b/.vale/styles/Google/Contractions.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: "Feel free to use '%s' instead of '%s'." link: 'https://developers.google.com/style/contractions' diff --git a/.vale/styles/Google/DateFormat.yml b/.vale/styles/Google/DateFormat.yml index b3adf69b8..e9d227fa1 100644 --- a/.vale/styles/Google/DateFormat.yml +++ b/.vale/styles/Google/DateFormat.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Use 'July 31, 2016' format, not '%s'." link: 'https://developers.google.com/style/dates-times' @@ -7,6 +6,4 @@ level: error nonword: true tokens: - '\d{1,2}(?:\.|/)\d{1,2}(?:\.|/)\d{4}' - - '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?| - Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)| - Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}' + - '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}' diff --git a/.vale/styles/Google/Ellipses.yml b/.vale/styles/Google/Ellipses.yml index f1e28b2f6..1e070517b 100644 --- a/.vale/styles/Google/Ellipses.yml +++ b/.vale/styles/Google/Ellipses.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "In general, don't use an ellipsis." link: 'https://developers.google.com/style/ellipses' diff --git a/.vale/styles/Google/EmDash.yml b/.vale/styles/Google/EmDash.yml index c7de07b98..1befe72aa 100644 --- a/.vale/styles/Google/EmDash.yml +++ b/.vale/styles/Google/EmDash.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Don't put a space before or after a dash." link: 'https://developers.google.com/style/dashes' diff --git a/.vale/styles/Google/EnDash.yml b/.vale/styles/Google/EnDash.yml index b56b826b6..b314dc4e9 100644 --- a/.vale/styles/Google/EnDash.yml +++ b/.vale/styles/Google/EnDash.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Use an em dash ('—') instead of '–'." link: 'https://developers.google.com/style/dashes' diff --git a/.vale/styles/Google/Exclamation.yml b/.vale/styles/Google/Exclamation.yml index fa8f91b46..3e15181b2 100644 --- a/.vale/styles/Google/Exclamation.yml +++ b/.vale/styles/Google/Exclamation.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Don't use exclamation points in text." link: 'https://developers.google.com/style/exclamation-points' diff --git a/.vale/styles/Google/FirstPerson.yml b/.vale/styles/Google/FirstPerson.yml index 186057d4b..0b7b8828c 100644 --- a/.vale/styles/Google/FirstPerson.yml +++ b/.vale/styles/Google/FirstPerson.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Avoid first-person pronouns such as '%s'." link: 'https://developers.google.com/style/pronouns#personal-pronouns' diff --git a/.vale/styles/Google/Gender.yml b/.vale/styles/Google/Gender.yml index ba647c2d8..c8486181d 100644 --- a/.vale/styles/Google/Gender.yml +++ b/.vale/styles/Google/Gender.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Don't use '%s' as a gender-neutral pronoun." link: 'https://developers.google.com/style/pronouns#gender-neutral-pronouns' diff --git a/.vale/styles/Google/GenderBias.yml b/.vale/styles/Google/GenderBias.yml index f2d4fd9e3..261cfb666 100644 --- a/.vale/styles/Google/GenderBias.yml +++ b/.vale/styles/Google/GenderBias.yml @@ -1,46 +1,45 @@ ---- extends: substitution message: "Consider using '%s' instead of '%s'." link: 'https://developers.google.com/style/inclusive-documentation' ignorecase: true level: error swap: - (?:alumna|alumnus): graduate - (?:alumnae|alumni): graduates - air(?:m[ae]n|wom[ae]n): pilot(s) - anchor(?:m[ae]n|wom[ae]n): anchor(s) - authoress: author - camera(?:m[ae]n|wom[ae]n): camera operator(s) - chair(?:m[ae]n|wom[ae]n): chair(s) + (?:alumna|alumnus): graduate + (?:alumnae|alumni): graduates + air(?:m[ae]n|wom[ae]n): pilot(s) + anchor(?:m[ae]n|wom[ae]n): anchor(s) + authoress: author + camera(?:m[ae]n|wom[ae]n): camera operator(s) + chair(?:m[ae]n|wom[ae]n): chair(s) congress(?:m[ae]n|wom[ae]n): member(s) of congress - door(?:m[ae]|wom[ae]n): concierge(s) - draft(?:m[ae]n|wom[ae]n): drafter(s) - fire(?:m[ae]n|wom[ae]n): firefighter(s) - fisher(?:m[ae]n|wom[ae]n): fisher(s) - fresh(?:m[ae]n|wom[ae]n): first-year student(s) - garbage(?:m[ae]n|wom[ae]n): waste collector(s) - lady lawyer: lawyer - ladylike: courteous - landlord: building manager - mail(?:m[ae]n|wom[ae]n): mail carriers - man and wife: husband and wife - man enough: strong enough - mankind: human kind - manmade: manufactured - manpower: personnel - men and girls: men and women - middle(?:m[ae]n|wom[ae]n): intermediary - news(?:m[ae]n|wom[ae]n): journalist(s) - ombuds(?:man|woman): ombuds - oneupmanship: upstaging - poetess: poet - police(?:m[ae]n|wom[ae]n): police officer(s) - repair(?:m[ae]n|wom[ae]n): technician(s) - sales(?:m[ae]n|wom[ae]n): salesperson or sales people - service(?:m[ae]n|wom[ae]n): soldier(s) - steward(?:ess)?: flight attendant - tribes(?:m[ae]n|wom[ae]n): tribe member(s) - waitress: waiter - woman doctor: doctor - woman scientist[s]?: scientist(s) - work(?:m[ae]n|wom[ae]n): worker(s) + door(?:m[ae]|wom[ae]n): concierge(s) + draft(?:m[ae]n|wom[ae]n): drafter(s) + fire(?:m[ae]n|wom[ae]n): firefighter(s) + fisher(?:m[ae]n|wom[ae]n): fisher(s) + fresh(?:m[ae]n|wom[ae]n): first-year student(s) + garbage(?:m[ae]n|wom[ae]n): waste collector(s) + lady lawyer: lawyer + ladylike: courteous + landlord: building manager + mail(?:m[ae]n|wom[ae]n): mail carriers + man and wife: husband and wife + man enough: strong enough + mankind: human kind + manmade: manufactured + manpower: personnel + men and girls: men and women + middle(?:m[ae]n|wom[ae]n): intermediary + news(?:m[ae]n|wom[ae]n): journalist(s) + ombuds(?:man|woman): ombuds + oneupmanship: upstaging + poetess: poet + police(?:m[ae]n|wom[ae]n): police officer(s) + repair(?:m[ae]n|wom[ae]n): technician(s) + sales(?:m[ae]n|wom[ae]n): salesperson or sales people + service(?:m[ae]n|wom[ae]n): soldier(s) + steward(?:ess)?: flight attendant + tribes(?:m[ae]n|wom[ae]n): tribe member(s) + waitress: waiter + woman doctor: doctor + woman scientist[s]?: scientist(s) + work(?:m[ae]n|wom[ae]n): worker(s) diff --git a/.vale/styles/Google/HeadingPunctuation.yml b/.vale/styles/Google/HeadingPunctuation.yml index a5c290554..b538be5b4 100644 --- a/.vale/styles/Google/HeadingPunctuation.yml +++ b/.vale/styles/Google/HeadingPunctuation.yml @@ -1,9 +1,6 @@ ---- extends: existence message: "Don't put a period at the end of a heading." -link: > - "https://developers.google.com/style/ - capitalization#capitalization-in-titles-and-headings" +link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings' nonword: true level: warning scope: heading @@ -13,4 +10,4 @@ action: - remove - '.' tokens: - - '[a-z0-9][.](?:\s|$)' + - '[a-z0-9][.]\s*$' diff --git a/.vale/styles/Google/Headings.yml b/.vale/styles/Google/Headings.yml index 135fb6d65..a53301338 100644 --- a/.vale/styles/Google/Headings.yml +++ b/.vale/styles/Google/Headings.yml @@ -1,28 +1,29 @@ ---- extends: capitalization message: "'%s' should use sentence-style capitalization." -link: > - "https://developers.google.com/style/ - capitalization#capitalization-in-titles-and-headings" +link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings' level: warning scope: heading match: $sentence +indicators: + - ':' exceptions: - Azure - CLI + - Code - Cosmos - Docker - Emmet - gRPC - I - - JavaScript - Kubernetes - Linux - macOS + - Marketplace - MongoDB - - Python - REPL + - Studio - TypeScript - URLs + - Visual - VS - Windows diff --git a/.vale/styles/Google/Latin.yml b/.vale/styles/Google/Latin.yml index f6d73f5f7..d91700de3 100644 --- a/.vale/styles/Google/Latin.yml +++ b/.vale/styles/Google/Latin.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: "Use '%s' instead of '%s'." link: 'https://developers.google.com/style/abbreviations' diff --git a/.vale/styles/Google/LyHyphens.yml b/.vale/styles/Google/LyHyphens.yml index 618159d6c..ac8f557a4 100644 --- a/.vale/styles/Google/LyHyphens.yml +++ b/.vale/styles/Google/LyHyphens.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' doesn't need a hyphen." link: 'https://developers.google.com/style/hyphens' diff --git a/.vale/styles/Google/OptionalPlurals.yml b/.vale/styles/Google/OptionalPlurals.yml index fe80044e2..f858ea6fe 100644 --- a/.vale/styles/Google/OptionalPlurals.yml +++ b/.vale/styles/Google/OptionalPlurals.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Don't use plurals in parentheses such as in '%s'." link: 'https://developers.google.com/style/plurals-parentheses' diff --git a/.vale/styles/Google/Ordinal.yml b/.vale/styles/Google/Ordinal.yml index 2d872f8a6..d1ac7d27e 100644 --- a/.vale/styles/Google/Ordinal.yml +++ b/.vale/styles/Google/Ordinal.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Spell out all ordinal numbers ('%s') in text." link: 'https://developers.google.com/style/numbers' diff --git a/.vale/styles/Google/OxfordComma.yml b/.vale/styles/Google/OxfordComma.yml index 77fdace76..b9ba21ebb 100644 --- a/.vale/styles/Google/OxfordComma.yml +++ b/.vale/styles/Google/OxfordComma.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Use the Oxford comma in '%s'." link: 'https://developers.google.com/style/commas' diff --git a/.vale/styles/Google/Parens.yml b/.vale/styles/Google/Parens.yml index 79e17528e..3b8711d0c 100644 --- a/.vale/styles/Google/Parens.yml +++ b/.vale/styles/Google/Parens.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Use parentheses judiciously." link: 'https://developers.google.com/style/parentheses' diff --git a/.vale/styles/Google/Passive.yml b/.vale/styles/Google/Passive.yml index b534603c3..3265890e5 100644 --- a/.vale/styles/Google/Passive.yml +++ b/.vale/styles/Google/Passive.yml @@ -1,4 +1,3 @@ ---- extends: existence link: 'https://developers.google.com/style/voice' message: "In general, use active voice instead of passive voice ('%s')." diff --git a/.vale/styles/Google/Periods.yml b/.vale/styles/Google/Periods.yml index fba528f41..d24a6a6c0 100644 --- a/.vale/styles/Google/Periods.yml +++ b/.vale/styles/Google/Periods.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Don't use periods with acronyms or initialisms such as '%s'." link: 'https://developers.google.com/style/abbreviations' diff --git a/.vale/styles/Google/Quotes.yml b/.vale/styles/Google/Quotes.yml index c597062f6..3cb6f1abd 100644 --- a/.vale/styles/Google/Quotes.yml +++ b/.vale/styles/Google/Quotes.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Commas and periods go inside quotation marks." link: 'https://developers.google.com/style/quotation-marks' diff --git a/.vale/styles/Google/Ranges.yml b/.vale/styles/Google/Ranges.yml index 434a02563..3ec045e77 100644 --- a/.vale/styles/Google/Ranges.yml +++ b/.vale/styles/Google/Ranges.yml @@ -1,7 +1,5 @@ ---- extends: existence -message: > - "Don't add words such as 'from' or 'between' to describe a range of numbers." +message: "Don't add words such as 'from' or 'between' to describe a range of numbers." link: 'https://developers.google.com/style/hyphens' nonword: true level: warning diff --git a/.vale/styles/Google/Semicolons.yml b/.vale/styles/Google/Semicolons.yml index 8758017c6..bb8b85b42 100644 --- a/.vale/styles/Google/Semicolons.yml +++ b/.vale/styles/Google/Semicolons.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Use semicolons judiciously." link: 'https://developers.google.com/style/semicolons' diff --git a/.vale/styles/Google/Slang.yml b/.vale/styles/Google/Slang.yml index 8ba5711b1..63f4c248a 100644 --- a/.vale/styles/Google/Slang.yml +++ b/.vale/styles/Google/Slang.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Don't use internet slang abbreviations such as '%s'." link: 'https://developers.google.com/style/abbreviations' diff --git a/.vale/styles/Google/Spacing.yml b/.vale/styles/Google/Spacing.yml index 70201e5ae..27f7ca2bd 100644 --- a/.vale/styles/Google/Spacing.yml +++ b/.vale/styles/Google/Spacing.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' should have one space." link: 'https://developers.google.com/style/sentence-spacing' diff --git a/.vale/styles/Google/Spelling.yml b/.vale/styles/Google/Spelling.yml index 1b5768f72..57acb8841 100644 --- a/.vale/styles/Google/Spelling.yml +++ b/.vale/styles/Google/Spelling.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "In general, use American spelling instead of '%s'." link: 'https://developers.google.com/style/spelling' diff --git a/.vale/styles/Google/Units.yml b/.vale/styles/Google/Units.yml index 6559669ac..379fad6b8 100644 --- a/.vale/styles/Google/Units.yml +++ b/.vale/styles/Google/Units.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Put a nonbreaking space between the number and the unit in '%s'." link: 'https://developers.google.com/style/units-of-measure' diff --git a/.vale/styles/Google/We.yml b/.vale/styles/Google/We.yml index 9726d3b0a..c7ac7d362 100644 --- a/.vale/styles/Google/We.yml +++ b/.vale/styles/Google/We.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Try to avoid using first-person plural like '%s'." link: 'https://developers.google.com/style/pronouns#personal-pronouns' diff --git a/.vale/styles/Google/Will.yml b/.vale/styles/Google/Will.yml index 67fd9f9c7..128a91836 100644 --- a/.vale/styles/Google/Will.yml +++ b/.vale/styles/Google/Will.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Avoid using '%s'." link: 'https://developers.google.com/style/tense' diff --git a/.vale/styles/Google/WordList.yml b/.vale/styles/Google/WordList.yml index 05f7b083e..bb711517e 100644 --- a/.vale/styles/Google/WordList.yml +++ b/.vale/styles/Google/WordList.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: "Use '%s' instead of '%s'." link: 'https://developers.google.com/style/word-list' @@ -76,6 +75,6 @@ swap: tablename: table name tablet: device touch: tap - url: URL + url: URL vs\.: versus World Wide Web: web diff --git a/.vale/styles/Google/meta.json b/.vale/styles/Google/meta.json new file mode 100644 index 000000000..a5da2a848 --- /dev/null +++ b/.vale/styles/Google/meta.json @@ -0,0 +1,4 @@ +{ + "feed": "https://github.com/errata-ai/Google/releases.atom", + "vale_version": ">=1.0.0" +} diff --git a/.vale/styles/Readability/AutomatedReadability.yml b/.vale/styles/Readability/AutomatedReadability.yml new file mode 100644 index 000000000..dd9fe6697 --- /dev/null +++ b/.vale/styles/Readability/AutomatedReadability.yml @@ -0,0 +1,8 @@ +extends: metric +message: "Try to keep the Automated Readability Index (%s) below 8." +link: https://en.wikipedia.org/wiki/Automated_readability_index + +formula: | + (4.71 * (characters / words)) + (0.5 * (words / sentences)) - 21.43 + +condition: "> 8" diff --git a/.vale/styles/Readability/ColemanLiau.yml b/.vale/styles/Readability/ColemanLiau.yml new file mode 100644 index 000000000..d478303c2 --- /dev/null +++ b/.vale/styles/Readability/ColemanLiau.yml @@ -0,0 +1,8 @@ +extends: metric +message: "Try to keep the Coleman–Liau Index grade (%s) below 9." +link: https://en.wikipedia.org/wiki/Coleman%E2%80%93Liau_index + +formula: | + (0.0588 * (characters / words) * 100) - (0.296 * (sentences / words) * 100) - 15.8 + +condition: "> 9" diff --git a/.vale/styles/Readability/FleschKincaid.yml b/.vale/styles/Readability/FleschKincaid.yml new file mode 100644 index 000000000..3f60f205d --- /dev/null +++ b/.vale/styles/Readability/FleschKincaid.yml @@ -0,0 +1,8 @@ +extends: metric +message: "Try to keep the Flesch–Kincaid grade level (%s) below 8." +link: https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests + +formula: | + (0.39 * (words / sentences)) + (11.8 * (syllables / words)) - 15.59 + +condition: "> 8" diff --git a/.vale/styles/Readability/FleschReadingEase.yml b/.vale/styles/Readability/FleschReadingEase.yml new file mode 100644 index 000000000..617976671 --- /dev/null +++ b/.vale/styles/Readability/FleschReadingEase.yml @@ -0,0 +1,8 @@ +extends: metric +message: "Try to keep the Flesch reading ease score (%s) above 70." +link: https://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests + +formula: | + 206.835 - (1.015 * (words / sentences)) - (84.6 * (syllables / words)) + +condition: "< 70" diff --git a/.vale/styles/Readability/GunningFog.yml b/.vale/styles/Readability/GunningFog.yml new file mode 100644 index 000000000..302c0eeb0 --- /dev/null +++ b/.vale/styles/Readability/GunningFog.yml @@ -0,0 +1,8 @@ +extends: metric +message: "Try to keep the Gunning-Fog index (%s) below 10." +link: https://en.wikipedia.org/wiki/Gunning_fog_index + +formula: | + 0.4 * ((words / sentences) + 100 * (complex_words / words)) + +condition: "> 10" diff --git a/.vale/styles/Readability/LIX.yml b/.vale/styles/Readability/LIX.yml new file mode 100644 index 000000000..f5b0f4e8b --- /dev/null +++ b/.vale/styles/Readability/LIX.yml @@ -0,0 +1,17 @@ +extends: metric +message: "Try to keep the LIX score (%s) below 35." + +link: https://en.wikipedia.org/wiki/Lix_(readability_test) +# Very Easy: 20 - 25 +# +# Easy: 30 - 35 +# +# Medium: 40 - 45 +# +# Difficult: 50 - 55 +# +# Very Difficult: 60+ +formula: | + (words / sentences) + ((long_words * 100) / words) + +condition: "> 35" diff --git a/.vale/styles/Readability/SMOG.yml b/.vale/styles/Readability/SMOG.yml new file mode 100644 index 000000000..e7f5913bc --- /dev/null +++ b/.vale/styles/Readability/SMOG.yml @@ -0,0 +1,8 @@ +extends: metric +message: "Try to keep the SMOG grade (%s) below 10." +link: https://en.wikipedia.org/wiki/SMOG + +formula: | + 1.0430 * math.sqrt((polysyllabic_words * 30.0) / sentences) + 3.1291 + +condition: "> 10" diff --git a/.vale/styles/Readability/meta.json b/.vale/styles/Readability/meta.json new file mode 100644 index 000000000..0ff71c302 --- /dev/null +++ b/.vale/styles/Readability/meta.json @@ -0,0 +1,4 @@ +{ + "feed": "https://github.com/errata-ai/Readability/releases.atom", + "vale_version": ">=2.13.0" +} \ No newline at end of file diff --git a/.vale/styles/Vocab/Awesome/accept.txt b/.vale/styles/Vocab/Awesome/accept.txt new file mode 100644 index 000000000..548d9b6d1 --- /dev/null +++ b/.vale/styles/Vocab/Awesome/accept.txt @@ -0,0 +1,15 @@ +Algolia +DocSearch +[Dd]ocutils +headerlinks? +Entypo +JavaScript +Netlify +[Nn]ox +[Pp]ipx +[Pp]ygments +Roboto +Schoger +[Tt]ooltips +webpack +Zondicons diff --git a/.vale/styles/proselint/Airlinese.yml b/.vale/styles/proselint/Airlinese.yml index d95ae2bfe..a6ae9c193 100644 --- a/.vale/styles/proselint/Airlinese.yml +++ b/.vale/styles/proselint/Airlinese.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is airlinese." ignorecase: true diff --git a/.vale/styles/proselint/AnimalLabels.yml b/.vale/styles/proselint/AnimalLabels.yml index 84aadfc12..b92e06fcb 100644 --- a/.vale/styles/proselint/AnimalLabels.yml +++ b/.vale/styles/proselint/AnimalLabels.yml @@ -1,49 +1,48 @@ ---- extends: substitution message: "Consider using '%s' instead of '%s'." level: error action: name: replace swap: - (?:bull|ox)-like: taurine + (?:bull|ox)-like: taurine (?:calf|veal)-like: vituline (?:crow|raven)-like: corvine (?:leopard|panther)-like: pardine - bird-like: avine - centipede-like: scolopendrine - crab-like: cancrine - crocodile-like: crocodiline - deer-like: damine - eagle-like: aquiline - earthworm-like: lumbricine - falcon-like: falconine - ferine: wild animal-like - fish-like: piscine - fox-like: vulpine - frog-like: ranine - goat-like: hircine - goose-like: anserine - gull-like: laridine - hare-like: leporine - hawk-like: accipitrine - hippopotamus-like: hippopotamine - lizard-like: lacertine - mongoose-like: viverrine - mouse-like: murine - ostrich-like: struthionine - peacock-like: pavonine - porcupine-like: hystricine - rattlesnake-like: crotaline - sable-like: zibeline - sheep-like: ovine - shrew-like: soricine - sparrow-like: passerine - swallow-like: hirundine - swine-like: suilline - tiger-like: tigrine - viper-like: viperine - vulture-like: vulturine - wasp-like: vespine - wolf-like: lupine - woodpecker-like: picine - zebra-like: zebrine + bird-like: avine + centipede-like: scolopendrine + crab-like: cancrine + crocodile-like: crocodiline + deer-like: damine + eagle-like: aquiline + earthworm-like: lumbricine + falcon-like: falconine + ferine: wild animal-like + fish-like: piscine + fox-like: vulpine + frog-like: ranine + goat-like: hircine + goose-like: anserine + gull-like: laridine + hare-like: leporine + hawk-like: accipitrine + hippopotamus-like: hippopotamine + lizard-like: lacertine + mongoose-like: viverrine + mouse-like: murine + ostrich-like: struthionine + peacock-like: pavonine + porcupine-like: hystricine + rattlesnake-like: crotaline + sable-like: zibeline + sheep-like: ovine + shrew-like: soricine + sparrow-like: passerine + swallow-like: hirundine + swine-like: suilline + tiger-like: tigrine + viper-like: viperine + vulture-like: vulturine + wasp-like: vespine + wolf-like: lupine + woodpecker-like: picine + zebra-like: zebrine diff --git a/.vale/styles/proselint/Annotations.yml b/.vale/styles/proselint/Annotations.yml index 70e98c60b..dcb24f41b 100644 --- a/.vale/styles/proselint/Annotations.yml +++ b/.vale/styles/proselint/Annotations.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' left in text." ignorecase: false diff --git a/.vale/styles/proselint/Apologizing.yml b/.vale/styles/proselint/Apologizing.yml index b04292997..11088aaa8 100644 --- a/.vale/styles/proselint/Apologizing.yml +++ b/.vale/styles/proselint/Apologizing.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Excessive apologizing: '%s'" ignorecase: true diff --git a/.vale/styles/proselint/Archaisms.yml b/.vale/styles/proselint/Archaisms.yml index 553011883..c8df9abc9 100644 --- a/.vale/styles/proselint/Archaisms.yml +++ b/.vale/styles/proselint/Archaisms.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is archaic." ignorecase: true diff --git a/.vale/styles/proselint/But.yml b/.vale/styles/proselint/But.yml index 218cbec7c..0e2c32b93 100644 --- a/.vale/styles/proselint/But.yml +++ b/.vale/styles/proselint/But.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Do not start a paragraph with a 'but'." level: error diff --git a/.vale/styles/proselint/Cliches.yml b/.vale/styles/proselint/Cliches.yml index 1fdb9a7f4..c56183c51 100644 --- a/.vale/styles/proselint/Cliches.yml +++ b/.vale/styles/proselint/Cliches.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is a cliche." level: error diff --git a/.vale/styles/proselint/CorporateSpeak.yml b/.vale/styles/proselint/CorporateSpeak.yml index 04129b34a..4de8ee3f8 100644 --- a/.vale/styles/proselint/CorporateSpeak.yml +++ b/.vale/styles/proselint/CorporateSpeak.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is corporate speak." ignorecase: true diff --git a/.vale/styles/proselint/Currency.yml b/.vale/styles/proselint/Currency.yml index 222cf601d..ebd4b7d3e 100644 --- a/.vale/styles/proselint/Currency.yml +++ b/.vale/styles/proselint/Currency.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Incorrect use of symbols in '%s'." ignorecase: true diff --git a/.vale/styles/proselint/Cursing.yml b/.vale/styles/proselint/Cursing.yml index feb0b2675..e65070a91 100644 --- a/.vale/styles/proselint/Cursing.yml +++ b/.vale/styles/proselint/Cursing.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Consider replacing '%s'." level: error diff --git a/.vale/styles/proselint/DateCase.yml b/.vale/styles/proselint/DateCase.yml index eae58c339..9aa1bd991 100644 --- a/.vale/styles/proselint/DateCase.yml +++ b/.vale/styles/proselint/DateCase.yml @@ -1,8 +1,7 @@ ---- extends: existence message: With lowercase letters, the periods are standard. -ignorecase: true +ignorecase: false level: error nonword: true tokens: - - '\d{1,2} ?[ap]m' + - '\d{1,2} ?[ap]m\b' diff --git a/.vale/styles/proselint/DateMidnight.yml b/.vale/styles/proselint/DateMidnight.yml index c8f539b84..0130e1aef 100644 --- a/.vale/styles/proselint/DateMidnight.yml +++ b/.vale/styles/proselint/DateMidnight.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Use 'midnight' or 'noon'." ignorecase: true diff --git a/.vale/styles/proselint/DateRedundancy.yml b/.vale/styles/proselint/DateRedundancy.yml index 403c00f13..b1f653ea5 100644 --- a/.vale/styles/proselint/DateRedundancy.yml +++ b/.vale/styles/proselint/DateRedundancy.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'a.m.' is always morning; 'p.m.' is always night." ignorecase: true diff --git a/.vale/styles/proselint/DateSpacing.yml b/.vale/styles/proselint/DateSpacing.yml index 6d48a01d3..b7a2fd33b 100644 --- a/.vale/styles/proselint/DateSpacing.yml +++ b/.vale/styles/proselint/DateSpacing.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "It's standard to put a space before '%s'" ignorecase: true diff --git a/.vale/styles/proselint/DenizenLabels.yml b/.vale/styles/proselint/DenizenLabels.yml index b290f1944..bc3dd8abb 100644 --- a/.vale/styles/proselint/DenizenLabels.yml +++ b/.vale/styles/proselint/DenizenLabels.yml @@ -1,53 +1,52 @@ ---- extends: substitution message: Did you mean '%s'? ignorecase: false action: name: replace swap: - (?:Afrikaaner|Afrikander): Afrikaner - (?:Hong Kongite|Hong Kongian): Hong Konger - (?:Indianan|Indianian): Hoosier - (?:Michiganite|Michiganian): Michigander + (?:Afrikaaner|Afrikander): Afrikaner + (?:Hong Kongite|Hong Kongian): Hong Konger + (?:Indianan|Indianian): Hoosier + (?:Michiganite|Michiganian): Michigander (?:New Hampshireite|New Hampshireman): New Hampshirite - (?:Newcastlite|Newcastleite): Novocastrian - (?:Providencian|Providencer): Providentian - (?:Trentian|Trentonian): Tridentine - (?:Warsawer|Warsawian): Varsovian + (?:Newcastlite|Newcastleite): Novocastrian + (?:Providencian|Providencer): Providentian + (?:Trentian|Trentonian): Tridentine + (?:Warsawer|Warsawian): Varsovian (?:Wolverhamptonite|Wolverhamptonian): Wulfrunian - Alabaman: Alabamian - Albuquerquian: Albuquerquean - Anchoragite: Anchorageite - Arizonian: Arizonan - Arkansawyer: Arkansan - Belarusan: Belarusian - Cayman Islander: Caymanian - Coloradoan: Coloradan - Connecticuter: Nutmegger - Fairbanksian: Fairbanksan - Fort Worther: Fort Worthian - Grenadian: Grenadan - Halifaxer: Haligonian - Hartlepoolian: Hartlepudlian - Illinoisian: Illinoisan - Iowegian: Iowan - Leedsian: Leodenisian - Liverpoolian: Liverpudlian - Los Angelean: Angeleno - Manchesterian: Mancunian - Minneapolisian: Minneapolitan - Missouran: Missourian - Monacan: Monegasque - Neopolitan: Neapolitan - New Jerseyite: New Jerseyan - New Orleansian: New Orleanian - Oklahoma Citian: Oklahoma Cityan - Oklahomian: Oklahoman - Saudi Arabian: Saudi - Seattlite: Seattleite - Surinamer: Surinamese - Tallahassean: Tallahasseean - Tennesseean: Tennessean - Trois-Rivièrester: Trifluvian - Utahan: Utahn - Valladolidian: Vallisoletano + Alabaman: Alabamian + Albuquerquian: Albuquerquean + Anchoragite: Anchorageite + Arizonian: Arizonan + Arkansawyer: Arkansan + Belarusan: Belarusian + Cayman Islander: Caymanian + Coloradoan: Coloradan + Connecticuter: Nutmegger + Fairbanksian: Fairbanksan + Fort Worther: Fort Worthian + Grenadian: Grenadan + Halifaxer: Haligonian + Hartlepoolian: Hartlepudlian + Illinoisian: Illinoisan + Iowegian: Iowan + Leedsian: Leodenisian + Liverpoolian: Liverpudlian + Los Angelean: Angeleno + Manchesterian: Mancunian + Minneapolisian: Minneapolitan + Missouran: Missourian + Monacan: Monegasque + Neopolitan: Neapolitan + New Jerseyite: New Jerseyan + New Orleansian: New Orleanian + Oklahoma Citian: Oklahoma Cityan + Oklahomian: Oklahoman + Saudi Arabian: Saudi + Seattlite: Seattleite + Surinamer: Surinamese + Tallahassean: Tallahasseean + Tennesseean: Tennessean + Trois-Rivièrester: Trifluvian + Utahan: Utahn + Valladolidian: Vallisoletano diff --git a/.vale/styles/proselint/Diacritical.yml b/.vale/styles/proselint/Diacritical.yml index fd8a5e42f..2416cf28b 100644 --- a/.vale/styles/proselint/Diacritical.yml +++ b/.vale/styles/proselint/Diacritical.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: Consider using '%s' instead of '%s'. ignorecase: true diff --git a/.vale/styles/proselint/GenderBias.yml b/.vale/styles/proselint/GenderBias.yml index 3177c915c..d98d3cf45 100644 --- a/.vale/styles/proselint/GenderBias.yml +++ b/.vale/styles/proselint/GenderBias.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: Consider using '%s' instead of '%s'. ignorecase: true @@ -6,41 +5,41 @@ level: error action: name: replace swap: - (?:alumnae|alumni): graduates - (?:alumna|alumnus): graduate - air(?:m[ae]n|wom[ae]n): pilot(s) - anchor(?:m[ae]n|wom[ae]n): anchor(s) - authoress: author - camera(?:m[ae]n|wom[ae]n): camera operator(s) - chair(?:m[ae]n|wom[ae]n): chair(s) + (?:alumnae|alumni): graduates + (?:alumna|alumnus): graduate + air(?:m[ae]n|wom[ae]n): pilot(s) + anchor(?:m[ae]n|wom[ae]n): anchor(s) + authoress: author + camera(?:m[ae]n|wom[ae]n): camera operator(s) + chair(?:m[ae]n|wom[ae]n): chair(s) congress(?:m[ae]n|wom[ae]n): member(s) of congress - door(?:m[ae]|wom[ae]n): concierge(s) - draft(?:m[ae]n|wom[ae]n): drafter(s) - fire(?:m[ae]n|wom[ae]n): firefighter(s) - fisher(?:m[ae]n|wom[ae]n): fisher(s) - fresh(?:m[ae]n|wom[ae]n): first-year student(s) - garbage(?:m[ae]n|wom[ae]n): waste collector(s) - lady lawyer: lawyer - ladylike: courteous - landlord: building manager - mail(?:m[ae]n|wom[ae]n): mail carriers - man and wife: husband and wife - man enough: strong enough - mankind: human kind - manmade: manufactured - men and girls: men and women - middle(?:m[ae]n|wom[ae]n): intermediary - news(?:m[ae]n|wom[ae]n): journalist(s) - ombuds(?:man|woman): ombuds - oneupmanship: upstaging - poetess: poet - police(?:m[ae]n|wom[ae]n): police officer(s) - repair(?:m[ae]n|wom[ae]n): technician(s) - sales(?:m[ae]n|wom[ae]n): salesperson or sales people - service(?:m[ae]n|wom[ae]n): soldier(s) - steward(?:ess)?: flight attendant - tribes(?:m[ae]n|wom[ae]n): tribe member(s) - waitress: waiter - woman doctor: doctor - woman scientist[s]?: scientist(s) - work(?:m[ae]n|wom[ae]n): worker(s) + door(?:m[ae]|wom[ae]n): concierge(s) + draft(?:m[ae]n|wom[ae]n): drafter(s) + fire(?:m[ae]n|wom[ae]n): firefighter(s) + fisher(?:m[ae]n|wom[ae]n): fisher(s) + fresh(?:m[ae]n|wom[ae]n): first-year student(s) + garbage(?:m[ae]n|wom[ae]n): waste collector(s) + lady lawyer: lawyer + ladylike: courteous + landlord: building manager + mail(?:m[ae]n|wom[ae]n): mail carriers + man and wife: husband and wife + man enough: strong enough + mankind: human kind + manmade: manufactured + men and girls: men and women + middle(?:m[ae]n|wom[ae]n): intermediary + news(?:m[ae]n|wom[ae]n): journalist(s) + ombuds(?:man|woman): ombuds + oneupmanship: upstaging + poetess: poet + police(?:m[ae]n|wom[ae]n): police officer(s) + repair(?:m[ae]n|wom[ae]n): technician(s) + sales(?:m[ae]n|wom[ae]n): salesperson or sales people + service(?:m[ae]n|wom[ae]n): soldier(s) + steward(?:ess)?: flight attendant + tribes(?:m[ae]n|wom[ae]n): tribe member(s) + waitress: waiter + woman doctor: doctor + woman scientist[s]?: scientist(s) + work(?:m[ae]n|wom[ae]n): worker(s) diff --git a/.vale/styles/proselint/GroupTerms.yml b/.vale/styles/proselint/GroupTerms.yml index 8b2a97cd3..7a59fa48a 100644 --- a/.vale/styles/proselint/GroupTerms.yml +++ b/.vale/styles/proselint/GroupTerms.yml @@ -1,40 +1,39 @@ ---- extends: substitution message: Consider using '%s' instead of '%s'. ignorecase: true action: name: replace swap: - (?:bunch|group|pack|flock) of chickens: brood of chickens - (?:bunch|group|pack|flock) of crows: murder of crows - (?:bunch|group|pack|flock) of hawks: cast of hawks - (?:bunch|group|pack|flock) of parrots: pandemonium of parrots - (?:bunch|group|pack|flock) of peacocks: muster of peacocks - (?:bunch|group|pack|flock) of penguins: muster of penguins - (?:bunch|group|pack|flock) of sparrows: host of sparrows - (?:bunch|group|pack|flock) of turkeys: rafter of turkeys + (?:bunch|group|pack|flock) of chickens: brood of chickens + (?:bunch|group|pack|flock) of crows: murder of crows + (?:bunch|group|pack|flock) of hawks: cast of hawks + (?:bunch|group|pack|flock) of parrots: pandemonium of parrots + (?:bunch|group|pack|flock) of peacocks: muster of peacocks + (?:bunch|group|pack|flock) of penguins: muster of penguins + (?:bunch|group|pack|flock) of sparrows: host of sparrows + (?:bunch|group|pack|flock) of turkeys: rafter of turkeys (?:bunch|group|pack|flock) of woodpeckers: descent of woodpeckers - (?:bunch|group|pack|herd) of apes: shrewdness of apes - (?:bunch|group|pack|herd) of baboons: troop of baboons - (?:bunch|group|pack|herd) of badgers: cete of badgers - (?:bunch|group|pack|herd) of bears: sloth of bears - (?:bunch|group|pack|herd) of bullfinches: bellowing of bullfinches - (?:bunch|group|pack|herd) of bullocks: drove of bullocks + (?:bunch|group|pack|herd) of apes: shrewdness of apes + (?:bunch|group|pack|herd) of baboons: troop of baboons + (?:bunch|group|pack|herd) of badgers: cete of badgers + (?:bunch|group|pack|herd) of bears: sloth of bears + (?:bunch|group|pack|herd) of bullfinches: bellowing of bullfinches + (?:bunch|group|pack|herd) of bullocks: drove of bullocks (?:bunch|group|pack|herd) of caterpillars: army of caterpillars - (?:bunch|group|pack|herd) of cats: clowder of cats - (?:bunch|group|pack|herd) of colts: rag of colts - (?:bunch|group|pack|herd) of crocodiles: bask of crocodiles - (?:bunch|group|pack|herd) of dolphins: school of dolphins - (?:bunch|group|pack|herd) of foxes: skulk of foxes - (?:bunch|group|pack|herd) of gorillas: band of gorillas - (?:bunch|group|pack|herd) of hippopotami: bloat of hippopotami - (?:bunch|group|pack|herd) of horses: drove of horses - (?:bunch|group|pack|herd) of jellyfish: fluther of jellyfish - (?:bunch|group|pack|herd) of kangeroos: mob of kangeroos - (?:bunch|group|pack|herd) of monkeys: troop of monkeys - (?:bunch|group|pack|herd) of oxen: yoke of oxen - (?:bunch|group|pack|herd) of rhinoceros: crash of rhinoceros - (?:bunch|group|pack|herd) of wild boar: sounder of wild boar - (?:bunch|group|pack|herd) of wild pigs: drift of wild pigs - (?:bunch|group|pack|herd) of zebras: zeal of wild pigs - (?:bunch|group|pack|school) of trout: hover of trout + (?:bunch|group|pack|herd) of cats: clowder of cats + (?:bunch|group|pack|herd) of colts: rag of colts + (?:bunch|group|pack|herd) of crocodiles: bask of crocodiles + (?:bunch|group|pack|herd) of dolphins: school of dolphins + (?:bunch|group|pack|herd) of foxes: skulk of foxes + (?:bunch|group|pack|herd) of gorillas: band of gorillas + (?:bunch|group|pack|herd) of hippopotami: bloat of hippopotami + (?:bunch|group|pack|herd) of horses: drove of horses + (?:bunch|group|pack|herd) of jellyfish: fluther of jellyfish + (?:bunch|group|pack|herd) of kangeroos: mob of kangeroos + (?:bunch|group|pack|herd) of monkeys: troop of monkeys + (?:bunch|group|pack|herd) of oxen: yoke of oxen + (?:bunch|group|pack|herd) of rhinoceros: crash of rhinoceros + (?:bunch|group|pack|herd) of wild boar: sounder of wild boar + (?:bunch|group|pack|herd) of wild pigs: drift of wild pigs + (?:bunch|group|pack|herd) of zebras: zeal of wild pigs + (?:bunch|group|pack|school) of trout: hover of trout diff --git a/.vale/styles/proselint/Hedging.yml b/.vale/styles/proselint/Hedging.yml index a4967c5c1..a8615f8bb 100644 --- a/.vale/styles/proselint/Hedging.yml +++ b/.vale/styles/proselint/Hedging.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is hedging." ignorecase: true diff --git a/.vale/styles/proselint/Hyperbole.yml b/.vale/styles/proselint/Hyperbole.yml index e6422c87d..0361772ce 100644 --- a/.vale/styles/proselint/Hyperbole.yml +++ b/.vale/styles/proselint/Hyperbole.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is hyperbolic." level: error diff --git a/.vale/styles/proselint/Jargon.yml b/.vale/styles/proselint/Jargon.yml index d27dd9ee5..2454a9c34 100644 --- a/.vale/styles/proselint/Jargon.yml +++ b/.vale/styles/proselint/Jargon.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is jargon." ignorecase: true diff --git a/.vale/styles/proselint/LGBTOffensive.yml b/.vale/styles/proselint/LGBTOffensive.yml index d6399e397..eaf5a84a1 100644 --- a/.vale/styles/proselint/LGBTOffensive.yml +++ b/.vale/styles/proselint/LGBTOffensive.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is offensive. Remove it or consider the context." ignorecase: true diff --git a/.vale/styles/proselint/LGBTTerms.yml b/.vale/styles/proselint/LGBTTerms.yml index 08631b27d..efdf26886 100644 --- a/.vale/styles/proselint/LGBTTerms.yml +++ b/.vale/styles/proselint/LGBTTerms.yml @@ -1,16 +1,15 @@ ---- extends: substitution message: "Consider using '%s' instead of '%s'." ignorecase: true action: name: replace swap: - homosexual man: gay man - homosexual men: gay men - homosexual woman: lesbian - homosexual women: lesbians - homosexual people: gay people - homosexual couple: gay couple - sexual preference: sexual orientation + homosexual man: gay man + homosexual men: gay men + homosexual woman: lesbian + homosexual women: lesbians + homosexual people: gay people + homosexual couple: gay couple + sexual preference: sexual orientation (?:admitted homosexual|avowed homosexual): openly gay - special rights: equal rights + special rights: equal rights diff --git a/.vale/styles/proselint/Malapropisms.yml b/.vale/styles/proselint/Malapropisms.yml index 2365ec343..96997787a 100644 --- a/.vale/styles/proselint/Malapropisms.yml +++ b/.vale/styles/proselint/Malapropisms.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is a malapropism." ignorecase: true diff --git a/.vale/styles/proselint/Needless.yml b/.vale/styles/proselint/Needless.yml index a0ab201d9..1f2732e17 100644 --- a/.vale/styles/proselint/Needless.yml +++ b/.vale/styles/proselint/Needless.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: Prefer '%s' over '%s' ignorecase: true diff --git a/.vale/styles/proselint/Nonwords.yml b/.vale/styles/proselint/Nonwords.yml index f92a68689..57e7b9e42 100644 --- a/.vale/styles/proselint/Nonwords.yml +++ b/.vale/styles/proselint/Nonwords.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: "Consider using '%s' instead of '%s'." ignorecase: true diff --git a/.vale/styles/proselint/Oxymorons.yml b/.vale/styles/proselint/Oxymorons.yml index abf3f6e1f..25fd2aa5d 100644 --- a/.vale/styles/proselint/Oxymorons.yml +++ b/.vale/styles/proselint/Oxymorons.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is an oxymoron." ignorecase: true diff --git a/.vale/styles/proselint/P-Value.yml b/.vale/styles/proselint/P-Value.yml index 645b03006..82309386f 100644 --- a/.vale/styles/proselint/P-Value.yml +++ b/.vale/styles/proselint/P-Value.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "You should use more decimal places, unless '%s' is really true." ignorecase: true diff --git a/.vale/styles/proselint/RASSyndrome.yml b/.vale/styles/proselint/RASSyndrome.yml index bada6b81d..deae9c7d3 100644 --- a/.vale/styles/proselint/RASSyndrome.yml +++ b/.vale/styles/proselint/RASSyndrome.yml @@ -1,13 +1,12 @@ ---- extends: existence message: "'%s' is redundant." level: error action: name: edit params: - - split - - ' ' - - '0' + - split + - ' ' + - '0' tokens: - ABM missile - ACT test diff --git a/.vale/styles/proselint/Skunked.yml b/.vale/styles/proselint/Skunked.yml index 7e1a522c0..96a1f690e 100644 --- a/.vale/styles/proselint/Skunked.yml +++ b/.vale/styles/proselint/Skunked.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is a bit of a skunked term — impossible to use without issue." ignorecase: true diff --git a/.vale/styles/proselint/Spelling.yml b/.vale/styles/proselint/Spelling.yml index b6ca06fd7..d3c9be7b7 100644 --- a/.vale/styles/proselint/Spelling.yml +++ b/.vale/styles/proselint/Spelling.yml @@ -1,4 +1,3 @@ ---- extends: consistency message: "Inconsistent spelling of '%s'." level: error diff --git a/.vale/styles/proselint/Typography.yml b/.vale/styles/proselint/Typography.yml index dfd54b6d9..60283ebf0 100644 --- a/.vale/styles/proselint/Typography.yml +++ b/.vale/styles/proselint/Typography.yml @@ -1,4 +1,3 @@ ---- extends: substitution message: Consider using the '%s' symbol instead of '%s'. level: error diff --git a/.vale/styles/proselint/Uncomparables.yml b/.vale/styles/proselint/Uncomparables.yml index 9679920b1..9b96f42b0 100644 --- a/.vale/styles/proselint/Uncomparables.yml +++ b/.vale/styles/proselint/Uncomparables.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "'%s' is not comparable" ignorecase: true @@ -6,9 +5,9 @@ level: error action: name: edit params: - - split - - ' ' - - '1' + - split + - ' ' + - '1' raw: - \b(?:absolutely|most|more|less|least|very|quite|largely|extremely|increasingly|kind of|mildy|hardly|greatly|sort of)\b\s* tokens: diff --git a/.vale/styles/proselint/Very.yml b/.vale/styles/proselint/Very.yml index c6c01e922..e4077f792 100644 --- a/.vale/styles/proselint/Very.yml +++ b/.vale/styles/proselint/Very.yml @@ -1,4 +1,3 @@ ---- extends: existence message: "Remove '%s'." ignorecase: true diff --git a/.vale/styles/write-good/Cliches.yml b/.vale/styles/write-good/Cliches.yml new file mode 100644 index 000000000..c95314387 --- /dev/null +++ b/.vale/styles/write-good/Cliches.yml @@ -0,0 +1,702 @@ +extends: existence +message: "Try to avoid using clichés like '%s'." +ignorecase: true +level: warning +tokens: + - a chip off the old block + - a clean slate + - a dark and stormy night + - a far cry + - a fine kettle of fish + - a loose cannon + - a penny saved is a penny earned + - a tough row to hoe + - a word to the wise + - ace in the hole + - acid test + - add insult to injury + - against all odds + - air your dirty laundry + - all fun and games + - all in a day's work + - all talk, no action + - all thumbs + - all your eggs in one basket + - all's fair in love and war + - all's well that ends well + - almighty dollar + - American as apple pie + - an axe to grind + - another day, another dollar + - armed to the teeth + - as luck would have it + - as old as time + - as the crow flies + - at loose ends + - at my wits end + - avoid like the plague + - babe in the woods + - back against the wall + - back in the saddle + - back to square one + - back to the drawing board + - bad to the bone + - badge of honor + - bald faced liar + - ballpark figure + - banging your head against a brick wall + - baptism by fire + - barking up the wrong tree + - bat out of hell + - be all and end all + - beat a dead horse + - beat around the bush + - been there, done that + - beggars can't be choosers + - behind the eight ball + - bend over backwards + - benefit of the doubt + - bent out of shape + - best thing since sliced bread + - bet your bottom dollar + - better half + - better late than never + - better mousetrap + - better safe than sorry + - between a rock and a hard place + - beyond the pale + - bide your time + - big as life + - big cheese + - big fish in a small pond + - big man on campus + - bigger they are the harder they fall + - bird in the hand + - bird's eye view + - birds and the bees + - birds of a feather flock together + - bit the hand that feeds you + - bite the bullet + - bite the dust + - bitten off more than he can chew + - black as coal + - black as pitch + - black as the ace of spades + - blast from the past + - bleeding heart + - blessing in disguise + - blind ambition + - blind as a bat + - blind leading the blind + - blood is thicker than water + - blood sweat and tears + - blow off steam + - blow your own horn + - blushing bride + - boils down to + - bolt from the blue + - bone to pick + - bored stiff + - bored to tears + - bottomless pit + - boys will be boys + - bright and early + - brings home the bacon + - broad across the beam + - broken record + - brought back to reality + - bull by the horns + - bull in a china shop + - burn the midnight oil + - burning question + - burning the candle at both ends + - burst your bubble + - bury the hatchet + - busy as a bee + - by hook or by crook + - call a spade a spade + - called onto the carpet + - calm before the storm + - can of worms + - can't cut the mustard + - can't hold a candle to + - case of mistaken identity + - cat got your tongue + - cat's meow + - caught in the crossfire + - caught red-handed + - checkered past + - chomping at the bit + - cleanliness is next to godliness + - clear as a bell + - clear as mud + - close to the vest + - cock and bull story + - cold shoulder + - come hell or high water + - cool as a cucumber + - cool, calm, and collected + - cost a king's ransom + - count your blessings + - crack of dawn + - crash course + - creature comforts + - cross that bridge when you come to it + - crushing blow + - cry like a baby + - cry me a river + - cry over spilt milk + - crystal clear + - curiosity killed the cat + - cut and dried + - cut through the red tape + - cut to the chase + - cute as a bugs ear + - cute as a button + - cute as a puppy + - cuts to the quick + - dark before the dawn + - day in, day out + - dead as a doornail + - devil is in the details + - dime a dozen + - divide and conquer + - dog and pony show + - dog days + - dog eat dog + - dog tired + - don't burn your bridges + - don't count your chickens + - don't look a gift horse in the mouth + - don't rock the boat + - don't step on anyone's toes + - don't take any wooden nickels + - down and out + - down at the heels + - down in the dumps + - down the hatch + - down to earth + - draw the line + - dressed to kill + - dressed to the nines + - drives me up the wall + - dull as dishwater + - dyed in the wool + - eagle eye + - ear to the ground + - early bird catches the worm + - easier said than done + - easy as pie + - eat your heart out + - eat your words + - eleventh hour + - even the playing field + - every dog has its day + - every fiber of my being + - everything but the kitchen sink + - eye for an eye + - face the music + - facts of life + - fair weather friend + - fall by the wayside + - fan the flames + - feast or famine + - feather your nest + - feathered friends + - few and far between + - fifteen minutes of fame + - filthy vermin + - fine kettle of fish + - fish out of water + - fishing for a compliment + - fit as a fiddle + - fit the bill + - fit to be tied + - flash in the pan + - flat as a pancake + - flip your lid + - flog a dead horse + - fly by night + - fly the coop + - follow your heart + - for all intents and purposes + - for the birds + - for what it's worth + - force of nature + - force to be reckoned with + - forgive and forget + - fox in the henhouse + - free and easy + - free as a bird + - fresh as a daisy + - full steam ahead + - fun in the sun + - garbage in, garbage out + - gentle as a lamb + - get a kick out of + - get a leg up + - get down and dirty + - get the lead out + - get to the bottom of + - get your feet wet + - gets my goat + - gilding the lily + - give and take + - go against the grain + - go at it tooth and nail + - go for broke + - go him one better + - go the extra mile + - go with the flow + - goes without saying + - good as gold + - good deed for the day + - good things come to those who wait + - good time was had by all + - good times were had by all + - greased lightning + - greek to me + - green thumb + - green-eyed monster + - grist for the mill + - growing like a weed + - hair of the dog + - hand to mouth + - happy as a clam + - happy as a lark + - hasn't a clue + - have a nice day + - have high hopes + - have the last laugh + - haven't got a row to hoe + - head honcho + - head over heels + - hear a pin drop + - heard it through the grapevine + - heart's content + - heavy as lead + - hem and haw + - high and dry + - high and mighty + - high as a kite + - hit paydirt + - hold your head up high + - hold your horses + - hold your own + - hold your tongue + - honest as the day is long + - horns of a dilemma + - horse of a different color + - hot under the collar + - hour of need + - I beg to differ + - icing on the cake + - if the shoe fits + - if the shoe were on the other foot + - in a jam + - in a jiffy + - in a nutshell + - in a pig's eye + - in a pinch + - in a word + - in hot water + - in the gutter + - in the nick of time + - in the thick of it + - in your dreams + - it ain't over till the fat lady sings + - it goes without saying + - it takes all kinds + - it takes one to know one + - it's a small world + - it's only a matter of time + - ivory tower + - Jack of all trades + - jockey for position + - jog your memory + - joined at the hip + - judge a book by its cover + - jump down your throat + - jump in with both feet + - jump on the bandwagon + - jump the gun + - jump to conclusions + - just a hop, skip, and a jump + - just the ticket + - justice is blind + - keep a stiff upper lip + - keep an eye on + - keep it simple, stupid + - keep the home fires burning + - keep up with the Joneses + - keep your chin up + - keep your fingers crossed + - kick the bucket + - kick up your heels + - kick your feet up + - kid in a candy store + - kill two birds with one stone + - kiss of death + - knock it out of the park + - knock on wood + - knock your socks off + - know him from Adam + - know the ropes + - know the score + - knuckle down + - knuckle sandwich + - knuckle under + - labor of love + - ladder of success + - land on your feet + - lap of luxury + - last but not least + - last hurrah + - last-ditch effort + - law of the jungle + - law of the land + - lay down the law + - leaps and bounds + - let sleeping dogs lie + - let the cat out of the bag + - let the good times roll + - let your hair down + - let's talk turkey + - letter perfect + - lick your wounds + - lies like a rug + - life's a bitch + - life's a grind + - light at the end of the tunnel + - lighter than a feather + - lighter than air + - like clockwork + - like father like son + - like taking candy from a baby + - like there's no tomorrow + - lion's share + - live and learn + - live and let live + - long and short of it + - long lost love + - look before you leap + - look down your nose + - look what the cat dragged in + - looking a gift horse in the mouth + - looks like death warmed over + - loose cannon + - lose your head + - lose your temper + - loud as a horn + - lounge lizard + - loved and lost + - low man on the totem pole + - luck of the draw + - luck of the Irish + - make hay while the sun shines + - make money hand over fist + - make my day + - make the best of a bad situation + - make the best of it + - make your blood boil + - man of few words + - man's best friend + - mark my words + - meaningful dialogue + - missed the boat on that one + - moment in the sun + - moment of glory + - moment of truth + - money to burn + - more power to you + - more than one way to skin a cat + - movers and shakers + - moving experience + - naked as a jaybird + - naked truth + - neat as a pin + - needle in a haystack + - needless to say + - neither here nor there + - never look back + - never say never + - nip and tuck + - nip it in the bud + - no guts, no glory + - no love lost + - no pain, no gain + - no skin off my back + - no stone unturned + - no time like the present + - no use crying over spilled milk + - nose to the grindstone + - not a hope in hell + - not a minute's peace + - not in my backyard + - not playing with a full deck + - not the end of the world + - not written in stone + - nothing to sneeze at + - nothing ventured nothing gained + - now we're cooking + - off the top of my head + - off the wagon + - off the wall + - old hat + - older and wiser + - older than dirt + - older than Methuselah + - on a roll + - on cloud nine + - on pins and needles + - on the bandwagon + - on the money + - on the nose + - on the rocks + - on the spot + - on the tip of my tongue + - on the wagon + - on thin ice + - once bitten, twice shy + - one bad apple doesn't spoil the bushel + - one born every minute + - one brick short + - one foot in the grave + - one in a million + - one red cent + - only game in town + - open a can of worms + - open and shut case + - open the flood gates + - opportunity doesn't knock twice + - out of pocket + - out of sight, out of mind + - out of the frying pan into the fire + - out of the woods + - out on a limb + - over a barrel + - over the hump + - pain and suffering + - pain in the + - panic button + - par for the course + - part and parcel + - party pooper + - pass the buck + - patience is a virtue + - pay through the nose + - penny pincher + - perfect storm + - pig in a poke + - pile it on + - pillar of the community + - pin your hopes on + - pitter patter of little feet + - plain as day + - plain as the nose on your face + - play by the rules + - play your cards right + - playing the field + - playing with fire + - pleased as punch + - plenty of fish in the sea + - point with pride + - poor as a church mouse + - pot calling the kettle black + - pretty as a picture + - pull a fast one + - pull your punches + - pulling your leg + - pure as the driven snow + - put it in a nutshell + - put one over on you + - put the cart before the horse + - put the pedal to the metal + - put your best foot forward + - put your foot down + - quick as a bunny + - quick as a lick + - quick as a wink + - quick as lightning + - quiet as a dormouse + - rags to riches + - raining buckets + - raining cats and dogs + - rank and file + - rat race + - reap what you sow + - red as a beet + - red herring + - reinvent the wheel + - rich and famous + - rings a bell + - ripe old age + - ripped me off + - rise and shine + - road to hell is paved with good intentions + - rob Peter to pay Paul + - roll over in the grave + - rub the wrong way + - ruled the roost + - running in circles + - sad but true + - sadder but wiser + - salt of the earth + - scared stiff + - scared to death + - sealed with a kiss + - second to none + - see eye to eye + - seen the light + - seize the day + - set the record straight + - set the world on fire + - set your teeth on edge + - sharp as a tack + - shoot for the moon + - shoot the breeze + - shot in the dark + - shoulder to the wheel + - sick as a dog + - sigh of relief + - signed, sealed, and delivered + - sink or swim + - six of one, half a dozen of another + - skating on thin ice + - slept like a log + - slinging mud + - slippery as an eel + - slow as molasses + - smart as a whip + - smooth as a baby's bottom + - sneaking suspicion + - snug as a bug in a rug + - sow wild oats + - spare the rod, spoil the child + - speak of the devil + - spilled the beans + - spinning your wheels + - spitting image of + - spoke with relish + - spread like wildfire + - spring to life + - squeaky wheel gets the grease + - stands out like a sore thumb + - start from scratch + - stick in the mud + - still waters run deep + - stitch in time + - stop and smell the roses + - straight as an arrow + - straw that broke the camel's back + - strong as an ox + - stubborn as a mule + - stuff that dreams are made of + - stuffed shirt + - sweating blood + - sweating bullets + - take a load off + - take one for the team + - take the bait + - take the bull by the horns + - take the plunge + - takes one to know one + - takes two to tango + - the more the merrier + - the real deal + - the real McCoy + - the red carpet treatment + - the same old story + - there is no accounting for taste + - thick as a brick + - thick as thieves + - thin as a rail + - think outside of the box + - third time's the charm + - this day and age + - this hurts me worse than it hurts you + - this point in time + - three sheets to the wind + - through thick and thin + - throw in the towel + - tie one on + - tighter than a drum + - time and time again + - time is of the essence + - tip of the iceberg + - tired but happy + - to coin a phrase + - to each his own + - to make a long story short + - to the best of my knowledge + - toe the line + - tongue in cheek + - too good to be true + - too hot to handle + - too numerous to mention + - touch with a ten foot pole + - tough as nails + - trial and error + - trials and tribulations + - tried and true + - trip down memory lane + - twist of fate + - two cents worth + - two peas in a pod + - ugly as sin + - under the counter + - under the gun + - under the same roof + - under the weather + - until the cows come home + - unvarnished truth + - up the creek + - uphill battle + - upper crust + - upset the applecart + - vain attempt + - vain effort + - vanquish the enemy + - vested interest + - waiting for the other shoe to drop + - wakeup call + - warm welcome + - watch your p's and q's + - watch your tongue + - watching the clock + - water under the bridge + - weather the storm + - weed them out + - week of Sundays + - went belly up + - wet behind the ears + - what goes around comes around + - what you see is what you get + - when it rains, it pours + - when push comes to shove + - when the cat's away + - when the going gets tough, the tough get going + - white as a sheet + - whole ball of wax + - whole hog + - whole nine yards + - wild goose chase + - will wonders never cease? + - wisdom of the ages + - wise as an owl + - wolf at the door + - words fail me + - work like a dog + - world weary + - worst nightmare + - worth its weight in gold + - wrong side of the bed + - yanking your chain + - yappy as a dog + - years young + - you are what you eat + - you can run but you can't hide + - you only live once + - you're the boss + - young and foolish + - young and vibrant diff --git a/.vale/styles/write-good/E-Prime.yml b/.vale/styles/write-good/E-Prime.yml new file mode 100644 index 000000000..074a102b2 --- /dev/null +++ b/.vale/styles/write-good/E-Prime.yml @@ -0,0 +1,32 @@ +extends: existence +message: "Try to avoid using '%s'." +ignorecase: true +level: suggestion +tokens: + - am + - are + - aren't + - be + - been + - being + - he's + - here's + - here's + - how's + - i'm + - is + - isn't + - it's + - she's + - that's + - there's + - they're + - was + - wasn't + - we're + - were + - weren't + - what's + - where's + - who's + - you're diff --git a/.vale/styles/write-good/Illusions.yml b/.vale/styles/write-good/Illusions.yml new file mode 100644 index 000000000..b4f132185 --- /dev/null +++ b/.vale/styles/write-good/Illusions.yml @@ -0,0 +1,11 @@ +extends: repetition +message: "'%s' is repeated!" +level: warning +alpha: true +action: + name: edit + params: + - truncate + - " " +tokens: + - '[^\s]+' diff --git a/.vale/styles/write-good/Passive.yml b/.vale/styles/write-good/Passive.yml new file mode 100644 index 000000000..f472cb904 --- /dev/null +++ b/.vale/styles/write-good/Passive.yml @@ -0,0 +1,183 @@ +extends: existence +message: "'%s' may be passive voice. Use active voice if you can." +ignorecase: true +level: warning +raw: + - \b(am|are|were|being|is|been|was|be)\b\s* +tokens: + - '[\w]+ed' + - awoken + - beat + - become + - been + - begun + - bent + - beset + - bet + - bid + - bidden + - bitten + - bled + - blown + - born + - bought + - bound + - bred + - broadcast + - broken + - brought + - built + - burnt + - burst + - cast + - caught + - chosen + - clung + - come + - cost + - crept + - cut + - dealt + - dived + - done + - drawn + - dreamt + - driven + - drunk + - dug + - eaten + - fallen + - fed + - felt + - fit + - fled + - flown + - flung + - forbidden + - foregone + - forgiven + - forgotten + - forsaken + - fought + - found + - frozen + - given + - gone + - gotten + - ground + - grown + - heard + - held + - hidden + - hit + - hung + - hurt + - kept + - knelt + - knit + - known + - laid + - lain + - leapt + - learnt + - led + - left + - lent + - let + - lighted + - lost + - made + - meant + - met + - misspelt + - mistaken + - mown + - overcome + - overdone + - overtaken + - overthrown + - paid + - pled + - proven + - put + - quit + - read + - rid + - ridden + - risen + - run + - rung + - said + - sat + - sawn + - seen + - sent + - set + - sewn + - shaken + - shaven + - shed + - shod + - shone + - shorn + - shot + - shown + - shrunk + - shut + - slain + - slept + - slid + - slit + - slung + - smitten + - sold + - sought + - sown + - sped + - spent + - spilt + - spit + - split + - spoken + - spread + - sprung + - spun + - stolen + - stood + - stridden + - striven + - struck + - strung + - stuck + - stung + - stunk + - sung + - sunk + - swept + - swollen + - sworn + - swum + - swung + - taken + - taught + - thought + - thrived + - thrown + - thrust + - told + - torn + - trodden + - understood + - upheld + - upset + - wed + - wept + - withheld + - withstood + - woken + - won + - worn + - wound + - woven + - written + - wrung diff --git a/.vale/styles/write-good/README.md b/.vale/styles/write-good/README.md new file mode 100644 index 000000000..3edcc9b37 --- /dev/null +++ b/.vale/styles/write-good/README.md @@ -0,0 +1,27 @@ +Based on [write-good](https://github.com/btford/write-good). + +> Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too. + +``` +The MIT License (MIT) + +Copyright (c) 2014 Brian Ford + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` diff --git a/.vale/styles/write-good/So.yml b/.vale/styles/write-good/So.yml new file mode 100644 index 000000000..e57f099dc --- /dev/null +++ b/.vale/styles/write-good/So.yml @@ -0,0 +1,5 @@ +extends: existence +message: "Don't start a sentence with '%s'." +level: error +raw: + - '(?:[;-]\s)so[\s,]|\bSo[\s,]' diff --git a/.vale/styles/write-good/ThereIs.yml b/.vale/styles/write-good/ThereIs.yml new file mode 100644 index 000000000..8b82e8f6c --- /dev/null +++ b/.vale/styles/write-good/ThereIs.yml @@ -0,0 +1,6 @@ +extends: existence +message: "Don't start a sentence with '%s'." +ignorecase: false +level: error +raw: + - '(?:[;-]\s)There\s(is|are)|\bThere\s(is|are)\b' diff --git a/.vale/styles/write-good/TooWordy.yml b/.vale/styles/write-good/TooWordy.yml new file mode 100644 index 000000000..275701b19 --- /dev/null +++ b/.vale/styles/write-good/TooWordy.yml @@ -0,0 +1,221 @@ +extends: existence +message: "'%s' is too wordy." +ignorecase: true +level: warning +tokens: + - a number of + - abundance + - accede to + - accelerate + - accentuate + - accompany + - accomplish + - accorded + - accrue + - acquiesce + - acquire + - additional + - adjacent to + - adjustment + - admissible + - advantageous + - adversely impact + - advise + - aforementioned + - aggregate + - aircraft + - all of + - all things considered + - alleviate + - allocate + - along the lines of + - already existing + - alternatively + - amazing + - ameliorate + - anticipate + - apparent + - appreciable + - as a matter of fact + - as a means of + - as far as I'm concerned + - as of yet + - as to + - as yet + - ascertain + - assistance + - at the present time + - at this time + - attain + - attributable to + - authorize + - because of the fact that + - belated + - benefit from + - bestow + - by means of + - by virtue of + - by virtue of the fact that + - cease + - close proximity + - commence + - comply with + - concerning + - consequently + - consolidate + - constitutes + - demonstrate + - depart + - designate + - discontinue + - due to the fact that + - each and every + - economical + - eliminate + - elucidate + - employ + - endeavor + - enumerate + - equitable + - equivalent + - evaluate + - evidenced + - exclusively + - expedite + - expend + - expiration + - facilitate + - factual evidence + - feasible + - finalize + - first and foremost + - for all intents and purposes + - for the most part + - for the purpose of + - forfeit + - formulate + - have a tendency to + - honest truth + - however + - if and when + - impacted + - implement + - in a manner of speaking + - in a timely manner + - in a very real sense + - in accordance with + - in addition + - in all likelihood + - in an effort to + - in between + - in excess of + - in lieu of + - in light of the fact that + - in many cases + - in my opinion + - in order to + - in regard to + - in some instances + - in terms of + - in the case of + - in the event that + - in the final analysis + - in the nature of + - in the near future + - in the process of + - inception + - incumbent upon + - indicate + - indication + - initiate + - irregardless + - is applicable to + - is authorized to + - is responsible for + - it is + - it is essential + - it seems that + - it was + - magnitude + - maximum + - methodology + - minimize + - minimum + - modify + - monitor + - multiple + - necessitate + - nevertheless + - not certain + - not many + - not often + - not unless + - not unlike + - notwithstanding + - null and void + - numerous + - objective + - obligate + - obtain + - on the contrary + - on the other hand + - one particular + - optimum + - overall + - owing to the fact that + - participate + - particulars + - pass away + - pertaining to + - point in time + - portion + - possess + - preclude + - previously + - prior to + - prioritize + - procure + - proficiency + - provided that + - purchase + - put simply + - readily apparent + - refer back + - regarding + - relocate + - remainder + - remuneration + - requirement + - reside + - residence + - retain + - satisfy + - shall + - should you wish + - similar to + - solicit + - span across + - strategize + - subsequent + - substantial + - successfully complete + - sufficient + - terminate + - the month of + - the point I am trying to make + - therefore + - time period + - took advantage of + - transmit + - transpire + - type of + - until such time as + - utilization + - utilize + - validate + - various different + - what I mean to say is + - whether or not + - with respect to + - with the exception of + - witnessed diff --git a/.vale/styles/write-good/Weasel.yml b/.vale/styles/write-good/Weasel.yml new file mode 100644 index 000000000..e29391444 --- /dev/null +++ b/.vale/styles/write-good/Weasel.yml @@ -0,0 +1,207 @@ +extends: existence +message: "'%s' is a weasel word!" +ignorecase: true +level: warning +tokens: + - absolutely + - accidentally + - additionally + - allegedly + - alternatively + - angrily + - anxiously + - approximately + - awkwardly + - badly + - barely + - beautifully + - blindly + - boldly + - bravely + - brightly + - briskly + - bristly + - bubbly + - busily + - calmly + - carefully + - carelessly + - cautiously + - cheerfully + - clearly + - closely + - coldly + - completely + - consequently + - correctly + - courageously + - crinkly + - cruelly + - crumbly + - cuddly + - currently + - daily + - daringly + - deadly + - definitely + - deliberately + - doubtfully + - dumbly + - eagerly + - early + - easily + - elegantly + - enormously + - enthusiastically + - equally + - especially + - eventually + - exactly + - exceedingly + - exclusively + - extremely + - fairly + - faithfully + - fatally + - fiercely + - finally + - fondly + - few + - foolishly + - fortunately + - frankly + - frantically + - generously + - gently + - giggly + - gladly + - gracefully + - greedily + - happily + - hardly + - hastily + - healthily + - heartily + - helpfully + - honestly + - hourly + - hungrily + - hurriedly + - immediately + - impatiently + - inadequately + - ingeniously + - innocently + - inquisitively + - interestingly + - irritably + - jiggly + - joyously + - justly + - kindly + - largely + - lately + - lazily + - likely + - literally + - lonely + - loosely + - loudly + - loudly + - luckily + - madly + - many + - mentally + - mildly + - monthly + - mortally + - mostly + - mysteriously + - neatly + - nervously + - nightly + - noisily + - normally + - obediently + - occasionally + - only + - openly + - painfully + - particularly + - patiently + - perfectly + - politely + - poorly + - powerfully + - presumably + - previously + - promptly + - punctually + - quarterly + - quickly + - quietly + - rapidly + - rarely + - really + - recently + - recklessly + - regularly + - remarkably + - relatively + - reluctantly + - repeatedly + - rightfully + - roughly + - rudely + - sadly + - safely + - selfishly + - sensibly + - seriously + - sharply + - shortly + - shyly + - significantly + - silently + - simply + - sleepily + - slowly + - smartly + - smelly + - smoothly + - softly + - solemnly + - sparkly + - speedily + - stealthily + - sternly + - stupidly + - substantially + - successfully + - suddenly + - surprisingly + - suspiciously + - swiftly + - tenderly + - tensely + - thoughtfully + - tightly + - timely + - truthfully + - unexpectedly + - unfortunately + - usually + - very + - victoriously + - violently + - vivaciously + - warmly + - waverly + - weakly + - wearily + - weekly + - wildly + - wisely + - worldly + - wrinkly + - yearly diff --git a/.vale/styles/write-good/meta.json b/.vale/styles/write-good/meta.json new file mode 100644 index 000000000..a115d2886 --- /dev/null +++ b/.vale/styles/write-good/meta.json @@ -0,0 +1,4 @@ +{ + "feed": "https://github.com/errata-ai/write-good/releases.atom", + "vale_version": ">=1.0.0" +} diff --git a/README.md b/README.md index 98e6198a7..5e5e03f8f 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ ## Get started -To use this theme for your documentation, install it via `pip` and add it to your -Sphinx configuration. +To use this theme in your project, +install it via `pip` and add it to your Sphinx configuration. 1. Install the theme as a Python package: @@ -23,62 +23,48 @@ Sphinx configuration. pip install sphinxawesome-theme ``` - See [How to install the theme](https://sphinxawesome.xyz/how-to/install/) for more information. + For more information, see [How to install the theme](https://sphinxawesome.xyz/how-to/install/). -1. Set `html_theme` in the Sphinx configuration file `conf.py`: +1. Add `sphinxawesome_theme` as an extension and HTML theme in your Sphinx configuration file `conf.py`: ```python html_theme = "sphinxawesome_theme" - ``` - -1. Add the theme as an extension in the Sphinx configuration file `conf.py`: - - ```python extensions = ["sphinxawesome_theme"] ``` - See [How to load the theme](https://sphinxawesome.xyz/how-to/load/) for more information. - -For more information about configuring the theme for your use case, -see [How to configure the theme](https://sphinxawesome.xyz/how-to/options/). + For more information, see [How to load the theme](https://sphinxawesome.xyz/how-to/load/) for more information. ## Features With the Awesome Theme, you can build readable, functional, and beautiful documentation websites. -These features enhance the user experience: +These features make your documentation awesome: ### Awesome code blocks -The code block shows the language of the code in a header. +Code blocks show the language of the code in a header. Each code block has a **Copy** button for easy copying. -This theme enhances Sphinx's `code-block` directive with: +This theme enhances Sphinx's `code-block` directive with these options: -- `emphasize-added`: highlight lines that should be added to code -- `emphasize-removed`: highlight lines that should be removed from the code -- `emphasize-text: TEXT`: highlight `TEXT` in the code block to emphasize placeholder text the user should replace. +- `emphasize-added`. Highlight lines that should be added to code +- `emphasize-removed`. Highlight lines that should be removed from the code +- `emphasize-text: TEXT`. Highlight `TEXT` in the code block to emphasize placeholder text the user should replace. ### Collapsible elements Nested navigation links allow you to reach all pages from all other pages. -You can make code object definitions, like methods, classes, or modules, -collapsible as well, to focus on one item at a time. - - +You can make code object definitions like methods, classes, or modules collapsible as well. ### Better headerlinks -Clicking the link icon after a header or caption automatically copies the URL to the clipboard. - - +Clicking the link icon after headers or captions automatically copies the URL to the clipboard. ### DocSearch -If you have an Algolia DocSearch account for your documentation (it's free for open source projects), +If you have an Algolia DocSearch account for your documentation, you can use DocSearch for a search-as-you-type experience with autocomplete. +Algolia DocSearch is free for open source documentation projects. ### Better keyboard navigation - - -Use the `Tab` key to quickly skip through all sections on the page. +Use the `Tab` key to skip through all sections on the page. Use the `Space` key to expand or collapse items in the navigation menu or in code definitions. diff --git a/docs/about.md b/docs/about.md index e58bf24fb..b790cfc7a 100644 --- a/docs/about.md +++ b/docs/about.md @@ -21,9 +21,6 @@ To see the full list of dependencies, see these files: - {gh}`pyproject.toml` for Python dependencies - {gh}`package.json ` for JavaScript dependencies - - - | Feature | Name/Website | License | | ----------------------------------------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- | | CSS framework | [Tailwind](https://tailwindcss.com/) | [MIT License](https://github.com/tailwindlabs/tailwindcss/blob/master/LICENSE) | @@ -36,8 +33,5 @@ To see the full list of dependencies, see these files: | | [Zondicons](http://www.zondicons.com) by Steve Schoger | ? | | Illustrations | [undraw.co](https://undraw.co) | [custom](https://undraw.co/license) | - - - [creative commons attribution-sharealike 4.0]: https://creativecommons.org/licenses/by-sa/4.0/legalcode [apache license, version 2.0]: https://www.apache.org/licenses/LICENSE-2.0.html diff --git a/docs/demo/auto.rst b/docs/demo/auto.rst index 91dea6db5..5f8573648 100644 --- a/docs/demo/auto.rst +++ b/docs/demo/auto.rst @@ -9,32 +9,32 @@ Module documentation See how automatically generated documentation from Python source code looks like with the |product|. -.. vale Awesome.SpellCheck = NO +.. vale Vale.Spelling = NO Automodule example ------------------ -.. vale Awesome.SpellCheck = YES +.. vale Vale.Spelling = YES .. automodule:: docutils :members: -.. vale Awesome.SpellCheck = NO +.. vale Vale.Spelling = NO Autoclass example ----------------- -.. vale Awesome.SpellCheck = YES +.. vale Vale.Spelling = YES .. autoclass:: docutils.nodes.Node :members: walk -.. vale Awesome.SpellCheck = NO +.. vale Vale.Spelling = NO Autofunction example -------------------- -.. vale Awesome.SpellCheck = YES +.. vale Vale.Spelling = YES .. autofunction:: docutils.nodes.serial_escape diff --git a/docs/demo/lists.rst b/docs/demo/lists.rst index d174b7d8b..f4aacd1e1 100644 --- a/docs/demo/lists.rst +++ b/docs/demo/lists.rst @@ -13,7 +13,7 @@ Unordered lists Choose an unordered, or bulleted, list, when the order of items doesn't matter. -.. vale Awesome.SpellCheck = NO +.. vale Vale.Spelling = NO - item a - item b @@ -40,7 +40,7 @@ For example, use ordered lists in step-by-step instructions. #. Step 3 -.. vale Awesome.SpellCheck = YES +.. vale Vale.Spelling = YES Definition lists ---------------- diff --git a/docs/demo/text.rst b/docs/demo/text.rst index 41db2b322..0c4843ac7 100644 --- a/docs/demo/text.rst +++ b/docs/demo/text.rst @@ -23,7 +23,7 @@ statement. Level 2 heading --------------- -.. vale Awesome.SpellCheck = NO +.. vale Vale.Spelling = NO Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vehicula lectus est, ac volutpat odio fringilla quis. Integer vitae molestie eros, ac eleifend nisi. Proin sit @@ -49,12 +49,10 @@ amet odio non turpis mattis laoreet finibus vitae nisi. Nam vehicula sapien vel facilisis. Duis bibendum tortor sit amet sollicitudin gravida. Donec ut ante mattis, faucibus nulla cursus, dictum dolor. -.. vale Awesome.SpellCheck = YES +.. vale Vale.Spelling = YES .. rubric:: Rubric heading -.. vale 18F.UnexpandedAcronyms = NO - A :sphinxdocs:`rubric ` is a special type of paragraph heading that doesn't appear in the table of contents. You can generate it using the :samp:`.. rubric:: {TITLE}` directive. diff --git a/docs/how-to/customize.md b/docs/how-to/customize.md index ac0c9c0cf..2d4f8b6ce 100644 --- a/docs/how-to/customize.md +++ b/docs/how-to/customize.md @@ -22,21 +22,24 @@ backlinks: none --- ``` -For the methods listed on this page, it's better to use traditional classes to style -your templates. Extra files aren't processed by webpack, so you can't use Tailwind's -`@apply` directive. See {ref}`sec:modify`, if you want to modify the -existing templates and use Tailwind CSS. +For the methods listed on this page, +it's better to use traditional classes to style your templates. +Extra files aren't processed by webpack, +so you can't use Tailwind's `@apply` directive. +See {ref}`sec:modify`, +if you want to modify the existing templates and use Tailwind CSS. (sec:override-styles)= ## Add or override styles -To add extra CSS files, use the {confval}`sphinx:html_css_files` configuration option. -To add extra JavaScript files, use the {confval}`sphinx:html_js_files` configuration -option. +To add extra CSS files, +use the {confval}`sphinx:html_css_files` configuration option. +To add extra JavaScript files, +use the {confval}`sphinx:html_js_files` configuration option. -For example, place additional styles in a file `_static/custom.css` and add the -following options to your Sphinx configuration in `conf.py`: +For example, place custom styles in a file `_static/custom.css` and +add the following options to your Sphinx configuration in `conf.py`: ```{code-block} python --- @@ -77,14 +80,14 @@ new values. For example, change the link color to green: (sec:additional-layouts)= -## Add additional page layouts +## Add page layouts Sometimes, you want to add a custom page to your documentation, for example, a custom homepage for the documentation project. These pages often have a different layout than the documentation pages themselves. An example is the [homepage of the Sphinx documentation](https://www.sphinx-doc.org/en/master/). -To add additional page layouts to your Sphinx documentation: +To add page layouts to your Sphinx documentation: 1. Create a directory in your Sphinx project, for example, `_templates/` and add it to your Sphinx configuration: @@ -127,7 +130,7 @@ To add additional page layouts to your Sphinx documentation: you can {ref}`sec:override-layouts-globally`. For example, you can override the `page` template and use the `extra-layout` - template defined previously: + template: ```{code-block} html+jinja --- @@ -180,19 +183,23 @@ The main templates you can override are: This page **must** contain the `{{ body }}` expression to render the contents of your documentation. The `page` template extends the layout `with-sidebar` or `without-sidebar` depending on the context. + + `without-sidebar.html` : Template for a page without navigation sidebar. This template is used when the option {confval}`show_nav` is set to `False`, or when you set `layout: "without-sidebar"` in the front matter of your Markdown document. This template extends the main template `layout`. + + `with-sidebar.html` : Template with navigation sidebar on the left. This is the default template for all documentation pages. It extends from the main template `layout`. `layout.html` -: Main template defining the overall structure of the page, including the HTML `` with all imported CSS and JavaScript files. +: Main template defining the structure of the page, including the HTML `` with all imported CSS and JavaScript files. @@ -211,13 +218,9 @@ using the [`myst-parser`](https://myst-parser.readthedocs.io/en/latest/index.htm The {{ product }} has two page layouts. The default layout shows a sidebar with all navigation links on the left side. - - If you want to override the layout _on one page_, you can use the `layout` option in the YAML front matter. - - For example, the {ref}`sec:about` page uses a layout without a sidebar: ```{code-block} markdown diff --git a/docs/how-to/install.md b/docs/how-to/install.md index 20b0f62ae..7f210afe8 100644 --- a/docs/how-to/install.md +++ b/docs/how-to/install.md @@ -51,7 +51,7 @@ see {ref}`customize the theme `. ## Install the theme from a local directory -If you want to modify the theme, +If you want to customize the theme, you can clone the repository and install the cloned version as a [local Python package](https://packaging.python.org/en/latest/tutorials/installing-packages/#installing-from-a-local-src-tree). @@ -77,7 +77,7 @@ The project has both Python and JavaScript dependencies. If you want to write documentation or modify the Python extensions, {ref}`install the Python dependencies `. -If you want to modify the Jinja2 templates, the CSS, or the JavaScript files, +If you want to edit the Jinja2 templates, the CSS, or the JavaScript files, you also need to {ref}`install the JavaScript dependencies `. ```{note} @@ -121,12 +121,16 @@ even if you just want to edit the HTML templates. (sec:install-python-deps)= + + ### Install Python dependencies + + The {{ product }} uses these Python tools: - [Poetry](https://python-poetry.org/) to manage the Python dependencies and building the package -- [Nox](https://nox.thea.codes/en/stable/) to test and lint the Python code, as well as to build the docs +- [Nox](https://nox.thea.codes/en/stable/) to test and lint the Python code, and to build the docs - [Pipx](https://pypa.github.io/pipx/) to install Python applications in isolated environments and making them available globally ```{note} diff --git a/docs/how-to/load.md b/docs/how-to/load.md index d60cc9092..d7f5b1df9 100644 --- a/docs/how-to/load.md +++ b/docs/how-to/load.md @@ -27,12 +27,12 @@ To use the {{ product }} in your documentation: 1. {ref}`sec:install-python-package` 1. Add the `html_theme` configuration option to your Sphinx configuration file `conf.py`: - ```{code-block} python - --- - caption: "File: conf.py" - --- - html_theme = "sphinxawesome_theme" - ``` + ```{code-block} python + --- + caption: "File: conf.py" + --- + html_theme = "sphinxawesome_theme" + ``` 1. Add the `sphinxawesome_theme` as an extension to your Sphinx configuration: @@ -43,7 +43,7 @@ To use the {{ product }} in your documentation: extensions = ["sphinxawesome_theme"] ``` - Loading the {{ product }} as an extension activates a few Sphinx extensions + Loading the {{ product }} as an extension activates the internal Sphinx extensions that enhance the user experience. ```{seealso} @@ -54,7 +54,7 @@ To use the {{ product }} in your documentation: If you want to keep your documentation and theme as a single project, you can load the {{ product }} from a local directory. -This can be useful, if you want to modify the theme. +This can be useful if you want to customize the theme. :::{note} When loading the theme from a local directory, you need to manage the dependencies diff --git a/docs/how-to/options.md b/docs/how-to/options.md index b5b7d8e9a..a89f6df5b 100644 --- a/docs/how-to/options.md +++ b/docs/how-to/options.md @@ -35,16 +35,16 @@ It's a technical distinction due to the way Sphinx builds a project. You can configure the theme by modifying the `html_theme_options` dictionary in the Sphinx configuration file `conf.py`. - + :::{confval} nav_include_hidden - - If you don't want to include entries from a _hidden_ {sphinxdocs}`toctree ` directive in the sidebar, set `nav_include_hidden` to `False`. + + ```{code-block} python --- caption: "File: conf.py" @@ -59,11 +59,11 @@ but no links are printed in the main content area. ::: - + :::{confval} show_nav - + The {{ product }} shows links to all your documentation pages in sidebar on the left side. @@ -79,11 +79,11 @@ html_theme_options = {"show_nav": False} ::: - + :::{confval} show_breadcrumbs - + The {{ product }} shows [breadcrumbs](https://en.wikipedia.org/wiki/Breadcrumb_navigation) @@ -100,11 +100,11 @@ html_theme_options = {"show_breadcrumbs": False} ::: - + :::{confval} breadcrumbs_separator - + To select a different separator for the breadcrumbs navigation links, set: @@ -121,11 +121,11 @@ html_theme_options = {"breadcrumbs_separator": "CHAR"} Replace {samp}`{CHAR}` with a character or HTML entity of your choice. ::: - + :::{confval} show_prev_next - + To show links to the previous and next pages, set this option to `True`: @@ -138,11 +138,11 @@ html_theme_options = {"show_prev_next": True} ::: - + :::{confval} show_scrolltop - + To show a button that scrolls to the top of the page when clicked, set this option to `True`: @@ -156,11 +156,11 @@ html_theme_options = {"show_scrolltop": True} ::: - + :::{confval} extra_header_links - + To add extra links to the header of your documentation, set the following option: @@ -192,15 +192,15 @@ in your Sphinx configuration: `extensions = ["sphinxawesome_theme"]` ``` -The {{ product }} enables a few internal extensions that enhance the user experience. +The {{ product }} enables several internal extensions that enhance the user experience. The following configuration values are set at the top level in the Sphinx configuration file `conf.py`: - + :::{confval} html_collapsible_definitions - + Set this option to `True` to make code references, such as classes, methods, and other objects, collapsible and expandable. @@ -214,14 +214,14 @@ html_collapsible_definitions = True ::: - + :::{confval} html_awesome_headerlinks - + Set this option to `False` to restore Sphinx's default behavior for headerlinks. -In the {{ product }}, clicking a headerlink immediately copies the URL to the clipboard. +In the {{ product }}, clicking a headerlink copies the URL to the clipboard. ```{code-block} python :caption: "File: conf.py" @@ -232,11 +232,11 @@ html_awesome_headerlinks = False ::: - + :::{confval} html_awesome_code_headers - + By default, the {{ product }} shows the programming language of a code block in its header. @@ -251,11 +251,11 @@ html_awesome_code_headers = False ::: - + :::{confval} html_awesome_docsearch - + Set this option to `True` to use [Algolia DocSearch](https://docsearch.algolia.com/) instead of the built-in search. @@ -283,11 +283,11 @@ To configure DocSearch, add these environment variables: -You can write them in a `.env` file in your Sphinx project directory -or provide them on the command line. +You can add environment variables with one of these options: -Alternatively, you can also configure DocSearch via a `docsearch_config` dictionary in -your Sphinx configuration file `conf.py`: +- Add them to a `.env` file in your Sphinx project directory +- Add them on the command line before building your documentation +- Add them to the `docsearch_config` dictionary in your Sphinx configuration file `conf.py`: ```{code-block} python --- @@ -302,8 +302,8 @@ docsearch_config = { ``` ```{note} -Algolia DocSearch is an external web service. You need to apply and receive your -credentials before you can use it. +Algolia DocSearch is an external web service. +You need to apply and receive your credentials before you can use it. ``` ::: diff --git a/docs/how-to/update.md b/docs/how-to/update.md index 062b64748..cb1c73e78 100644 --- a/docs/how-to/update.md +++ b/docs/how-to/update.md @@ -40,7 +40,7 @@ Require Sphinx 4 or newer : Sphinx 4 depends on docutils 0.17, which creates more semantic HTML by default. This allows to reduce the amount of custom transformations. -Restructure a few templates +Restructure several templates : The layout use [CSS grid](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout). This leads to fewer container elements in the templates. diff --git a/src/sphinxawesome_theme/static/manifest.json b/src/sphinxawesome_theme/static/manifest.json index 2cec65e2a..97c1b53b4 100644 --- a/src/sphinxawesome_theme/static/manifest.json +++ b/src/sphinxawesome_theme/static/manifest.json @@ -1,5 +1,5 @@ { - "_static/theme.css": "_static/theme.7db9a85a1ccb93231eb8.css", + "_static/theme.css": "_static/theme.c7339fcb961ca3b6b2ab.css", "_static/theme.js": "_static/theme.16bae0618b4691c11f2d.js", "_static/docsearch.css": "_static/docsearch.242cb97ca074267b80a2.css", "_static/docsearch.js": "_static/docsearch.d7832547e16381bc1d9c.js", diff --git a/src/sphinxawesome_theme/static/theme.7db9a85a1ccb93231eb8.css b/src/sphinxawesome_theme/static/theme.7db9a85a1ccb93231eb8.css deleted file mode 100644 index 94722d16b..000000000 --- a/src/sphinxawesome_theme/static/theme.7db9a85a1ccb93231eb8.css +++ /dev/null @@ -1,10 +0,0 @@ -/*! tailwindcss v3.2.2 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:Roboto,sans-serif;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline;-webkit-text-decoration:underline dotted currentColor;text-decoration:underline dotted currentColor}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains\ Mono,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}button,input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}main footer,main section{max-width:760px}section>section{padding-bottom:3rem;padding-top:3rem}@media print{section>section{padding-bottom:0;padding-top:0}}section>p{margin-bottom:1.5rem;margin-top:1.5rem}hr{border-top-width:1px;margin-bottom:3rem}strong{font-weight:500}svg{display:inline}h1{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-size:2.5rem;letter-spacing:-.025em;line-height:1.2;margin-top:5rem}@media print{h1{margin-top:0}}h2{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-size:1.5rem;letter-spacing:-.025em;line-height:1.2;line-height:1.5rem;margin-bottom:2rem}@media (min-width:640px){h2{font-size:1.75rem;line-height:1.2}}h3{font-size:1.375rem;line-height:1.2}h3,h4{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}h4{font-weight:500}article ol{list-style-type:decimal}article ol,article ol ol{margin-bottom:1rem;margin-top:1rem;padding-left:1.25rem}article ol ol{list-style-type:lower-latin}article ol li{margin-bottom:1rem;margin-top:1rem;padding-left:.25rem}article ol li::marker{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500}article ol li p{margin-bottom:.5rem;margin-top:.5rem}article ul{list-style-type:disc;padding-left:1.25rem}article ul,article ul li{margin-bottom:1rem;margin-top:1rem}article ul li{padding-left:.25rem}@media print{article ul li{margin-bottom:0;margin-top:0}}article ul li::marker{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity))}article ul li p{margin-bottom:.5rem;margin-top:.5rem}article dt{font-weight:500;margin-bottom:1rem;margin-top:1rem}article dd{padding-left:1.25rem}article dd p{margin-bottom:1rem;margin-top:1rem}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14,165,233,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14,165,233,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:400px){.container{max-width:400px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}:root{--sidebar-width:300px;--fluid-margin:7.5vw;--color-brand:#0ea5e9;--color-link:#0369a1}.contents.local{border-bottom-width:1px;display:block;margin-top:3rem;padding-bottom:3rem}@media print{.contents.local{display:none}}.contents.local .topic-title{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace;font-size:.875rem;font-weight:500;line-height:1.5;margin-bottom:.5rem;margin-top:0;text-transform:uppercase}.contents.local ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:0;padding-top:.5rem}.contents.local ul ul{margin-left:1rem}.contents.local li{padding-bottom:.5rem;padding-left:0;padding-top:.5rem}.contents.local li,.contents.local li p{margin-bottom:0;margin-top:0}.contents.local a{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));display:block}.contents.local a:focus,.contents.local a:hover{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}.nav-toc .caption{--tw-text-opacity:1;color:rgba(66,66,66,var(--tw-text-opacity));font-size:1.125rem;font-weight:500;letter-spacing:.025em;line-height:1.5;padding-bottom:.75rem;padding-top:2.5rem}.nav-toc p:first-of-type,.nav-toc>ul:first-child{padding-top:1rem}.nav-toc .expand{fill:currentColor;cursor:pointer;display:inline;height:1.2rem;margin-left:-.4rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-toc .expand:focus,.nav-toc .expand:hover{color:#0ea5e9;color:var(--color-brand)}.nav-toc li>ul{max-height:0;overflow-y:hidden;padding-left:1rem}.nav-toc .expanded>div>.expand{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nav-toc .expanded>ul{max-height:100%}.nav-toc .expanded>ul a.current{color:#0ea5e9;color:var(--color-brand)}.nav-toc a{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));display:inline-block;padding-bottom:.25rem;padding-top:.25rem}.nav-toc a:focus,.nav-toc a:hover{color:#0ea5e9;color:var(--color-brand)}.nav-toc a.current{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500}.nav-toc ul+ul{margin-top:2rem}.toctree-wrapper .caption{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace;font-size:.875rem;font-weight:500;line-height:1.5;padding-bottom:1.5rem;text-transform:uppercase}.toctree-wrapper{border-top-width:1px;margin-bottom:3rem;margin-top:3rem;padding-top:3rem}.toctree-wrapper li li{padding-left:1rem}.toctree-wrapper a{color:#0369a1;color:var(--color-link);display:block;padding-bottom:.25rem;padding-top:.25rem}.toctree-wrapper a:focus,.toctree-wrapper a:hover{color:#0ea5e9;color:var(--color-brand)}.nav-link{font-size:.95rem;letter-spacing:.2px}.headerlink{font-size:1em;line-height:1.2em;margin-left:.25rem;vertical-align:middle}.headerlink:focus,.headerlink:hover{color:#0ea5e9;color:var(--color-brand)}.headerlink>*{fill:currentColor;height:1em;visibility:hidden}.headerlink:focus>*{visibility:visible}h1 .headerlink,h2 .headerlink,h3 .headerlink{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}h1 .headerlink:focus,h1 .headerlink:hover,h2 .headerlink:focus,h2 .headerlink:hover,h3 .headerlink:focus,h3 .headerlink:hover{color:#0ea5e9;color:var(--color-brand)}h1 .headerlink{font-size:.65em;line-height:1.2}h2 .headerlink{font-size:.75em;line-height:1.2}.code-header .headerlink{margin-right:.5rem}.admonition-title:hover .headerlink,.admonition-title:hover .headerlink>*,.code-header:hover .headerlink,.code-header:hover .headerlink>*,dt:hover .headerlink,dt:hover .headerlink>*,figure:hover .headerlink,figure:hover .headerlink>*,h1:hover .headerlink,h1:hover .headerlink>*,h2:hover .headerlink,h2:hover .headerlink>*,h3:hover .headerlink,h3:hover .headerlink>*,h4:hover .headerlink,h4:hover .headerlink>*,table:hover .headerlink,table:hover .headerlink>*{visibility:visible}.search a,p:not(.admonition-title) a{color:#0369a1;color:var(--color-link)}.search a:focus,.search a:hover,p:not(.admonition-title) a:focus,p:not(.admonition-title) a:hover{color:#0ea5e9;color:var(--color-brand)}ul.search{list-style-type:none;padding-left:0}.search li{border-top-width:1px;margin-bottom:1rem;margin-top:1rem;padding-bottom:1rem;padding-left:0;padding-top:1rem}.search li a{font-size:1.375rem;line-height:1.2}.search .context{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity));font-size:.875rem;line-height:1.5}.highlighted{--tw-bg-opacity:1;background-color:rgba(254,249,195,var(--tw-bg-opacity));font-weight:500;padding-bottom:1px;padding-top:1px}.highlight-link{display:none}article p a:focus,article p a:hover{text-decoration-line:underline}.footnote-reference{font-size:.75rem;line-height:1.5;vertical-align:super}.external-link-icon{fill:currentColor;height:.875rem;margin-bottom:2px;margin-left:1px}.viewcode-link{color:#0369a1;color:var(--color-link);margin-left:1rem}.viewcode-link:focus,.viewcode-link:hover{color:#0ea5e9;color:var(--color-brand)}.viewcode-back{color:#0369a1;color:var(--color-link);position:absolute;right:1rem}.viewcode-back:focus,.viewcode-back:hover{color:#0ea5e9;color:var(--color-brand)}:not(pre)>code{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity));border-width:1px;font-weight:500;padding-left:.25rem;padding-right:.25rem}@media (min-width:640px){:not(pre)>code{font-size:.9375em;line-height:1.5}}:not(pre)>code.highlight{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}main kbd:not(.compound){--tw-border-opacity:1;border-color:rgba(33,33,33,var(--tw-border-opacity));display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem}main kbd:not(.compound),pre{border-radius:.125rem;border-width:1px;line-height:1.5}pre{margin-bottom:1.5rem;overflow-x:hidden;position:relative}pre code,pre.literal-block{overflow-x:auto;padding-bottom:1rem;padding-left:1rem;padding-top:1rem}pre code{display:block}pre .copy{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity));border-radius:.125rem;border-width:1px;color:rgba(55,65,81,var(--tw-text-opacity));font-size:.75rem;letter-spacing:.025em;line-height:1.5;opacity:0;padding:.25rem;position:absolute;right:.375rem;text-transform:uppercase;top:.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.5s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}pre .copy:focus{opacity:1}pre .copy:active{--tw-translate-x:0.125rem;--tw-translate-y:0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}pre:hover .copy{opacity:1}.code-wrapper{margin-bottom:1.5rem;margin-top:1.5rem}.code-wrapper .caption-text{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));letter-spacing:.025em}.code-wrapper pre{border-top-left-radius:0;border-top-right-radius:0}.code-wrapper del,.code-wrapper ins,.code-wrapper mark{display:block;margin-left:-1rem;padding-bottom:1px;padding-left:1rem;padding-top:1px;position:relative}.code-wrapper mark{background-color:rgba(186,230,253,.7)}.code-wrapper ins{background-color:rgba(187,247,208,.7);text-decoration-line:none}.code-wrapper ins:before{--tw-text-opacity:1;color:rgba(20,83,45,var(--tw-text-opacity));content:"\002b";left:2px;position:absolute}.code-wrapper del{background-color:hsla(0,96%,89%,.7);text-decoration-line:none}.code-wrapper del:before{--tw-text-opacity:1;color:rgba(127,29,29,var(--tw-text-opacity));content:"\2212";left:2px;position:absolute}.code-wrapper .linenos{--tw-text-opacity:1;background-color:transparent;color:rgba(55,65,81,var(--tw-text-opacity));padding:0 1.5rem 0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-wrapper .code-line{display:block}span.gd{background-color:rgba(254,202,202,var(--tw-bg-opacity))}span.gd,span.gi{--tw-bg-opacity:1;display:inline-block;padding-bottom:1px;padding-top:1px;width:100%}span.gi{background-color:rgba(187,247,208,var(--tw-bg-opacity))}.code-header{--tw-bg-opacity:1;align-items:center;background-color:rgba(249,250,251,var(--tw-bg-opacity));border-left-width:1px;border-right-width:1px;border-top-left-radius:.125rem;border-top-right-radius:.125rem;border-top-width:1px;display:flex;font-size:.875rem;justify-content:space-between;line-height:1.5;padding-bottom:.25rem;padding-top:.25rem}.code-lang{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));display:inline-block;font-family:JetBrains\ Mono,monospace;letter-spacing:.05em;margin-left:.5rem;margin-right:auto;text-transform:uppercase}.gp{font-weight:500;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}var{--tw-text-opacity:1;color:rgba(107,33,168,var(--tw-text-opacity));font-style:italic}.guilabel,.menuselection{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500;letter-spacing:.025em}dl.code-definition,dl.option-list{border-top-width:1px;margin-bottom:3rem;margin-top:1.5rem;padding-top:1.5rem}dl.code-definition dt,dl.option-list dt{font-weight:400}dl.code-definition dt>code,dl.code-definition dt>kbd,dl.option-list dt>code,dl.option-list dt>kbd{--tw-text-opacity:1;background-color:transparent;border-style:none;color:rgba(33,33,33,var(--tw-text-opacity));font-size:16px;font-weight:600;line-height:1.5;padding-left:0;padding-right:0}dl.code-definition .property,dl.option-list .property{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace;font-weight:500}dl.code-definition .sig-param,dl.option-list .sig-param{--tw-text-opacity:1;color:rgba(12,74,110,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace}dl.code-definition .sig-paren,dl.option-list .sig-paren{margin-left:.25rem;margin-right:.25rem}dl.footnote{display:grid;font-size:.875rem;grid-template-columns:max-content auto;line-height:1.5}dl.footnote dt{color:#0369a1;color:var(--color-link)}dl.footnote span.brackets:before{content:"["}dl.footnote span.brackets:after{content:"]"}table caption{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;letter-spacing:.025em;line-height:1.5;margin-bottom:1rem;text-align:left}table:not(.highlighttable){font-size:.875rem;line-height:1.5;margin-bottom:3rem;margin-top:3rem}table:not(.highlighttable) p+p{margin-top:1rem}table:not(.highlighttable) tbody tr{border-top-width:1px}table:not(.highlighttable) th{font-weight:500;letter-spacing:.025em;padding-bottom:.75rem;padding-top:.75rem;text-align:left;vertical-align:top}table:not(.highlighttable) td{padding-bottom:.5rem;padding-top:.5rem;text-align:left;vertical-align:top}.caption-number{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;font-weight:500;line-height:1.5}figure{margin-bottom:3rem;margin-top:3rem}figure .legend{--tw-text-opacity:1;border-bottom-width:1px;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;line-height:1.5;padding-bottom:2rem}figure .legend p{margin-bottom:1rem;margin-top:1rem}figure img{display:inline-block}main :not(figure)>img{margin-bottom:3rem;margin-top:3rem}figcaption{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;letter-spacing:.025em;line-height:1.25;margin-top:1rem}.align-center{margin-left:auto;margin-right:auto;text-align:center}.align-right{margin-left:auto;text-align:right}blockquote{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(249,250,251,.3);border-left-width:4px;border-radius:.125rem;box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow);font-size:.875rem;line-height:1.5;margin-bottom:1.5rem;margin-top:1.5rem;padding:1rem}blockquote .attribution{font-style:italic}.admonition{--tw-border-opacity:1;--tw-bg-opacity:0.02;--tw-text-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(56,189,248,var(--tw-bg-opacity));border-color:rgba(56,189,248,var(--tw-border-opacity));border-left-width:4px;border-radius:.125rem;box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow);color:rgba(12,74,110,var(--tw-text-opacity));font-size:.875rem;line-height:1.5;margin-bottom:1.5rem;margin-top:1.5rem;padding:1rem}.admonition p:not(.admonition-title){margin-bottom:1rem;margin-top:1rem}.admonition p:last-child{margin-bottom:0}.admonition .headerlink{color:currentColor}.seealso{--tw-text-opacity:1;background-color:transparent;border-style:none;color:rgba(97,97,97,var(--tw-text-opacity));padding:.5rem}.seealso .admonition-title{padding-left:.5rem;padding-right:.5rem}.seealso a{background-color:rgba(249,250,251,.4);display:inline-block;padding:.5rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.seealso a.internal:after{content:"\2192";margin-left:.5rem;opacity:0;transition-duration:.15s}.seealso a:hover{background-color:#0ea5e9;background-color:var(--color-brand);color:#fff!important;text-decoration:none!important}.seealso a:hover:after{opacity:1}.seealso a code{background-color:transparent;border-style:none}.hint,.tip{background-color:rgba(74,222,128,var(--tw-bg-opacity));border-color:rgba(74,222,128,var(--tw-border-opacity));color:rgba(20,83,45,var(--tw-text-opacity))}.danger,.error,.hint,.tip,.warning{--tw-border-opacity:1;--tw-bg-opacity:0.02;--tw-text-opacity:1}.danger,.error,.warning{background-color:rgba(248,113,113,var(--tw-bg-opacity));border-color:rgba(248,113,113,var(--tw-border-opacity));color:rgba(127,29,29,var(--tw-text-opacity))}.caution,.important{--tw-border-opacity:1;--tw-bg-opacity:0.02;--tw-text-opacity:1;background-color:rgba(250,204,21,var(--tw-bg-opacity));border-color:rgba(250,204,21,var(--tw-border-opacity));color:rgba(113,63,18,var(--tw-text-opacity))}.admonition-title{font-weight:500;letter-spacing:.025em;margin-bottom:1rem;margin-top:0}@media print{p{orphans:2;widows:2}h2,h3,h4{-moz-column-break-after:avoid;break-after:avoid;page-break-after:avoid}a,h2,h3,h4{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}section[role=contentinfo]{-moz-column-break-before:avoid;break-before:avoid;page-break-before:avoid}table{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}code,pre{white-space:pre-wrap!important}.seealso a.internal:after,main a:after{content:" (" attr(href) ")"}}.tooltipped{position:relative}.tooltipped:after{-webkit-font-smoothing:subpixel-antialiased;word-wrap:break-word;--tw-bg-opacity:0.75;--tw-text-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity));border-radius:.125rem;color:rgba(255,255,255,var(--tw-text-opacity));content:attr(aria-label);display:none;font-size:.75rem;font-weight:400;letter-spacing:normal;letter-spacing:.025em;line-height:1.5;opacity:0;padding:.25rem .5rem;pointer-events:none;position:absolute;text-align:center;text-decoration-line:none;text-shadow:none;text-transform:none;white-space:pre;z-index:1000000}@keyframes tooltip-appear{0%{opacity:0}to{opacity:1}}.tooltipped:focus:after,.tooltipped:focus:before,.tooltipped:hover:after,.tooltipped:hover:before{animation-delay:.2s;animation-duration:.4s;animation-fill-mode:forwards;animation-name:tooltip-appear;animation-timing-function:ease-in;display:inline-block;text-decoration:none}.tooltipped-no-delay:focus:after,.tooltipped-no-delay:focus:before,.tooltipped-no-delay:hover:after,.tooltipped-no-delay:hover:before{animation-delay:0s}.tooltipped-multiline:focus:after,.tooltipped-multiline:hover:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{margin-top:6px;right:50%;top:100%}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{border-bottom-color:#1a202c;bottom:-7px;margin-right:-6px;right:50%;top:auto}.tooltipped-se:after{left:50%;margin-left:-16px;right:auto}.tooltipped-sw:after{margin-right:-16px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{bottom:100%;margin-bottom:6px;right:50%}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{border-top-color:#1a202c;bottom:auto;margin-right:-6px;right:50%;top:-7px}.tooltipped-ne:after{left:50%;margin-left:-16px;right:auto}.tooltipped-nw:after{margin-right:-16px}.tooltipped-n:after,.tooltipped-s:after{transform:translateX(50%)}.tooltipped-w:after{bottom:50%;margin-right:6px;right:100%;transform:translateY(50%)}.tooltipped-w:before{border-left-color:#1a202c;bottom:50%;left:-7px;margin-top:-6px;top:50%}.tooltipped-e:after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%)}.tooltipped-e:before{border-right-color:#1a202c;bottom:50%;margin-top:-6px;right:-7px;top:50%}.tooltipped-align-right-1:after,.tooltipped-align-right-2:after{margin-right:0;right:0}.tooltipped-align-right-1:before{right:10px}.tooltipped-align-right-2:before{right:15px}.tooltipped-align-left-1:after,.tooltipped-align-left-2:after{left:0;margin-left:0}.tooltipped-align-left-1:before{left:5px}.tooltipped-align-left-2:before{left:10px}.tooltipped-multiline:after{word-wrap:break-word;border-collapse:separate;max-width:250px;white-space:pre-line;width:-moz-max-content;width:max-content}.tooltipped-multiline.tooltipped-n:after,.tooltipped-multiline.tooltipped-s:after{left:50%;right:auto;transform:translateX(-50%)}.tooltipped-multiline.tooltipped-e:after,.tooltipped-multiline.tooltipped-w:after{right:100%}@media screen and (min-width:0\0){.tooltipped-multiline:after{width:250px}}.tooltipped-sticky:after,.tooltipped-sticky:before{display:inline-block}.tooltipped-sticky.tooltipped-multiline:after{display:table-cell}button.expand-more{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity));float:right;margin-left:.5rem}button.expand-more:focus,button.expand-more:hover{color:#0ea5e9;color:var(--color-brand)}button.expand-more>svg{--tw-rotate:0deg;fill:currentColor;height:1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.1s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);width:1.5rem}.accordion:hover .expand-more{color:#0ea5e9;color:var(--color-brand)}.active .expand-more>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.panel{max-height:0;opacity:0;overflow-y:hidden;transition-duration:.5s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);visibility:hidden}.active+.panel{max-height:-moz-fit-content;max-height:fit-content;opacity:1;overflow-y:visible;visibility:visible}:root{--docsearch-searchbox-background:transparent;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--color-brand);--docsearch-key-gradient:transparent;--docsearch-primary-color:#1c75b0;--docsearch-modal-width:960px}.DocSearch-Button{border-radius:0;height:3.5rem;line-height:3.5rem;padding-right:1rem}.DocSearch-Button-Key{font-family:Roboto,sans-serif;font-size:.875rem;height:1.25rem;line-height:1.5;padding:1rem}.DocSearch-Button:hover .DocSearch-Button-Key{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgba(33,33,33,var(--tw-border-opacity));color:rgba(33,33,33,var(--tw-text-opacity))}.DocSearch-Button .DocSearch-Search-Icon{--tw-text-opacity:1;stroke-width:2.5;color:rgba(243,244,246,var(--tw-text-opacity))}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{padding-left:.75rem}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{left:0;right:0}.inset-0,.inset-y-0{bottom:0;top:0}.top-0{top:0}.bottom-0{bottom:0}.right-0{right:0}.left-0{left:0}.z-10{z-index:10}.z-20{z-index:20}.col-span-full{grid-column:1/-1}.m-4{margin:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-8{margin-bottom:2rem;margin-top:2rem}.mx-0{margin-left:0;margin-right:0}.mx-auto{margin-left:auto;margin-right:auto}.mr-1{margin-right:.25rem}.mt-12{margin-top:3rem}.mt-20{margin-top:5rem}.mb-4{margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.mt-16{margin-top:4rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.hidden{display:none}.h-14{height:3.5rem}.h-8{height:2rem}.h-full{height:100%}.h-6{height:1.5rem}.min-h-screen{min-height:100vh}.w-14{width:3.5rem}.w-8{width:2rem}.w-full{width:100%}.w-0{width:0}.w-6{width:1.5rem}.max-w-prose{max-width:760px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.translate-y-full{--tw-translate-y:100%}.-translate-x-full,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.self-center{align-self:center}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-full{border-radius:9999px}.border-b-4{border-bottom-width:4px}.border-brand{border-color:#0ea5e9;border-color:var(--color-brand)}.bg-gray-700{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-gray-dark{--tw-bg-opacity:1;background-color:rgba(33,33,33,var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity:0.5}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.p-3{padding:.75rem}.p-4{padding:1rem}.p-2{padding:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.pl-2{padding-left:.5rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pr-2{padding-right:.5rem}.pt-8{padding-top:2rem}.pl-6{padding-left:1.5rem}.pt-14{padding-top:3.5rem}.text-right{text-align:right}.text-sm{font-size:.875rem;line-height:1.5}.text-3xl{font-size:2.5rem;line-height:1.2}.text-xs{font-size:.75rem;line-height:1.5}.text-4xl{font-size:3rem;line-height:1.2}.text-xl{font-size:1.5rem;line-height:1.2}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.leading-14{line-height:3.5rem}.tracking-wider{letter-spacing:.05em}.tracking-wide{letter-spacing:.025em}.text-gray-light{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(243,244,246,var(--tw-text-opacity))}.text-gray{--tw-text-opacity:1;color:rgba(66,66,66,var(--tw-text-opacity))}.text-link{color:#0369a1;color:var(--color-link)}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgba(185,28,28,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.text-inherit{color:inherit}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.duration-1000{transition-duration:1s}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.lead{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-size:1.125rem;line-height:1.5;margin-bottom:4rem;margin-top:1rem}.centered{text-align:center}p.rubric{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500;margin-bottom:0;margin-top:3rem}.grid-area-header{grid-area:header}.grid-area-sidebar{grid-area:sidebar}.grid-area-main{grid-area:main}#page.isShown{overflow:hidden}[data-sidebar-target=sidebar].isShown{--tw-translate-x:0px;max-width:90%;opacity:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:100%}[data-scroll-target=scrollToTop].isShown{opacity:1;pointer-events:auto}[data-sidebar-target=screen].isShown{display:block}[data-search-target=snackbar].isShown{--tw-translate-y:0px;opacity:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.5s;transition-timing-function:cubic-bezier(0,0,.2,1)}.focus-within\:absolute:focus-within{position:absolute}.focus-within\:inset-x-0:focus-within{left:0;right:0}.focus-within\:top-0:focus-within{top:0}.focus-within\:bg-gray-50:focus-within{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.focus-within\:text-gray-800:focus-within{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgba(209,213,219,var(--tw-bg-opacity))}.hover\:text-gray-dark:hover{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}.hover\:text-brand:hover{color:#0ea5e9;color:var(--color-brand)}.hover\:text-link:hover{color:#0369a1;color:var(--color-link)}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.focus\:w-full:focus{width:100%}.focus\:translate-x-0:focus{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.focus\:bg-gray-700:focus{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.focus\:bg-gray-200:focus{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.focus\:text-gray-dark:focus{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}.focus\:text-brand:focus{color:#0ea5e9;color:var(--color-brand)}.focus\:text-link:focus{color:#0369a1;color:var(--color-link)}.focus\:underline:focus{text-decoration-line:underline}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(2,132,199,var(--tw-ring-opacity))}@media (min-width:640px){.sm\:px-4{padding-left:1rem;padding-right:1rem}}@media (min-width:768px){.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:ml-4{margin-left:1rem}.md\:w-auto{width:auto}.md\:focus-within\:static:focus-within{position:static}.md\:focus-within\:w-full:focus-within{width:100%}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}}@media (min-width:1280px){.xl\:relative{position:relative}.xl\:z-0{z-index:0}.xl\:ml-fluid{margin-left:7.5vw;margin-left:var(--fluid-margin)}.xl\:mr-0{margin-right:0}.xl\:grid{display:grid}.xl\:hidden{display:none}.xl\:h-screen{height:100vh}.xl\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.xl\:px-2{padding-left:.5rem;padding-right:.5rem}.xl\:opacity-100{opacity:1}.xl\:grid-layout{grid-template-areas:"header header" "sidebar main";grid-template-columns:max(300px,17%) 1fr;grid-template-columns:max(var(--sidebar-width),17%) 1fr;grid-template-rows:min-content 1fr}}@media print{.print\:mt-4{margin-top:1rem}.print\:block{display:block}.print\:hidden{display:none}.print\:h-auto{height:auto}} -@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(b009a76ad6afe4ebd301.woff2) format("woff2"),url(f1e2a76794cb86b2aa8e.woff) format("woff")} -@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:400;src:url(e10742dbb1d4a0864ba8.woff2) format("woff2"),url(d037cb4792991826de7d.woff) format("woff")} -@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(f25d774ecfe0996f8eb5.woff2) format("woff2"),url(48af7707fe9e6494d6a5.woff) format("woff")} -@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:500;src:url(3a43b67e5bbdfb3ab0a6.woff2) format("woff2"),url(9ac5da2442b734abc516.woff) format("woff")} -@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400;src:url(d0b41bd1d599bc0a52b7.woff2) format("woff2"),url(6f04107ce68d524ebe69.woff) format("woff")} -@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:400;src:url(ff058b7e238adc5cba09.woff2) format("woff2"),url(ad463ea60cc8b68792f4.woff) format("woff")} -@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:500;src:url(ec416b97881f4a422686.woff2) format("woff2"),url(46830c334f8112fa510a.woff) format("woff")} -@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:500;src:url(31f64b9c465158bd6066.woff2) format("woff2"),url(09be83022f2ac2ce16b0.woff) format("woff")} -@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:600;src:url(a49e53c029ef019e7422.woff2) format("woff2"),url(42ba3027499c19034257.woff) format("woff")} diff --git a/src/sphinxawesome_theme/static/theme.c7339fcb961ca3b6b2ab.css b/src/sphinxawesome_theme/static/theme.c7339fcb961ca3b6b2ab.css new file mode 100644 index 000000000..2b06ff894 --- /dev/null +++ b/src/sphinxawesome_theme/static/theme.c7339fcb961ca3b6b2ab.css @@ -0,0 +1,10 @@ +/*! tailwindcss v3.2.2 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:Roboto,sans-serif;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline;-webkit-text-decoration:underline dotted currentColor;text-decoration:underline dotted currentColor}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains\ Mono,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}button,input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}main footer,main section{max-width:760px}section>section{padding-bottom:1.5rem;padding-top:1.5rem}@media print{section>section{padding-bottom:0;padding-top:0}}section>p{margin-bottom:1.5rem;margin-top:1.5rem}hr{border-top-width:1px;margin-bottom:3rem}strong{font-weight:500}svg{display:inline}h1{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-size:2.5rem;letter-spacing:-.025em;line-height:1.2;margin-top:5rem}@media print{h1{margin-top:0}}h2{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-size:1.5rem;letter-spacing:-.025em;line-height:1.2;line-height:1.5rem;margin-bottom:2rem}@media (min-width:640px){h2{font-size:1.75rem;line-height:1.2}}h3{font-size:1.375rem;line-height:1.2}h3,h4{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}h4{font-weight:500}article ol{list-style-type:decimal}article ol,article ol ol{margin-bottom:1rem;margin-top:1rem;padding-left:1.25rem}article ol ol{list-style-type:lower-latin}article ol li{margin-bottom:1rem;margin-top:1rem;padding-left:.25rem}article ol li::marker{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500}article ol li p{margin-bottom:.5rem;margin-top:.5rem}article ul{list-style-type:disc;padding-left:1.25rem}article ul,article ul li{margin-bottom:1rem;margin-top:1rem}article ul li{padding-left:.25rem}@media print{article ul li{margin-bottom:0;margin-top:0}}article ul li::marker{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity))}article ul li p{margin-bottom:.5rem;margin-top:.5rem}article dt{font-weight:500;margin-bottom:1rem;margin-top:1rem}article dd{padding-left:1.25rem}article dd p{margin-bottom:1rem;margin-top:1rem}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14,165,233,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14,165,233,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:400px){.container{max-width:400px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}:root{--sidebar-width:300px;--fluid-margin:7.5vw;--color-brand:#0ea5e9;--color-link:#0369a1}.contents.local{border-bottom-width:1px;display:block;margin-top:3rem;padding-bottom:3rem}@media print{.contents.local{display:none}}.contents.local .topic-title{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace;font-size:.875rem;font-weight:500;line-height:1.5;margin-bottom:.5rem;margin-top:0;text-transform:uppercase}.contents.local ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:0;padding-top:.5rem}.contents.local ul ul{margin-left:1rem}.contents.local li{padding-bottom:.5rem;padding-left:0;padding-top:.5rem}.contents.local li,.contents.local li p{margin-bottom:0;margin-top:0}.contents.local a{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));display:block}.contents.local a:focus,.contents.local a:hover{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}.nav-toc .caption{--tw-text-opacity:1;color:rgba(66,66,66,var(--tw-text-opacity));font-size:1.125rem;font-weight:500;letter-spacing:.025em;line-height:1.5;padding-bottom:.75rem;padding-top:2.5rem}.nav-toc p:first-of-type,.nav-toc>ul:first-child{padding-top:1rem}.nav-toc .expand{fill:currentColor;cursor:pointer;display:inline;height:1.2rem;margin-left:-.4rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-toc .expand:focus,.nav-toc .expand:hover{color:#0ea5e9;color:var(--color-brand)}.nav-toc li>ul{max-height:0;overflow-y:hidden;padding-left:1rem}.nav-toc .expanded>div>.expand{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nav-toc .expanded>ul{max-height:100%}.nav-toc .expanded>ul a.current{color:#0ea5e9;color:var(--color-brand)}.nav-toc a{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));display:inline-block;padding-bottom:.25rem;padding-top:.25rem}.nav-toc a:focus,.nav-toc a:hover{color:#0ea5e9;color:var(--color-brand)}.nav-toc a.current{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500}.nav-toc ul+ul{margin-top:2rem}.toctree-wrapper .caption{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace;font-size:.875rem;font-weight:500;line-height:1.5;padding-bottom:1.5rem;text-transform:uppercase}.toctree-wrapper{border-top-width:1px;margin-bottom:3rem;margin-top:3rem;padding-top:3rem}.toctree-wrapper li li{padding-left:1rem}.toctree-wrapper a{color:#0369a1;color:var(--color-link);display:block;padding-bottom:.25rem;padding-top:.25rem}.toctree-wrapper a:focus,.toctree-wrapper a:hover{color:#0ea5e9;color:var(--color-brand)}.nav-link{font-size:.95rem;letter-spacing:.2px}.headerlink{font-size:1em;line-height:1.2em;margin-left:.25rem;vertical-align:middle}.headerlink:focus,.headerlink:hover{color:#0ea5e9;color:var(--color-brand)}.headerlink>*{fill:currentColor;height:1em;visibility:hidden}.headerlink:focus>*{visibility:visible}h1 .headerlink,h2 .headerlink,h3 .headerlink{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}h1 .headerlink:focus,h1 .headerlink:hover,h2 .headerlink:focus,h2 .headerlink:hover,h3 .headerlink:focus,h3 .headerlink:hover{color:#0ea5e9;color:var(--color-brand)}h1 .headerlink{font-size:.65em;line-height:1.2}h2 .headerlink{font-size:.75em;line-height:1.2}.code-header .headerlink{margin-right:.5rem}.admonition-title:hover .headerlink,.admonition-title:hover .headerlink>*,.code-header:hover .headerlink,.code-header:hover .headerlink>*,dt:hover .headerlink,dt:hover .headerlink>*,figure:hover .headerlink,figure:hover .headerlink>*,h1:hover .headerlink,h1:hover .headerlink>*,h2:hover .headerlink,h2:hover .headerlink>*,h3:hover .headerlink,h3:hover .headerlink>*,h4:hover .headerlink,h4:hover .headerlink>*,table:hover .headerlink,table:hover .headerlink>*{visibility:visible}.search a,p:not(.admonition-title) a{color:#0369a1;color:var(--color-link)}.search a:focus,.search a:hover,p:not(.admonition-title) a:focus,p:not(.admonition-title) a:hover{color:#0ea5e9;color:var(--color-brand)}ul.search{list-style-type:none;padding-left:0}.search li{border-top-width:1px;margin-bottom:1rem;margin-top:1rem;padding-bottom:1rem;padding-left:0;padding-top:1rem}.search li a{font-size:1.375rem;line-height:1.2}.search .context{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity));font-size:.875rem;line-height:1.5}.highlighted{--tw-bg-opacity:1;background-color:rgba(254,249,195,var(--tw-bg-opacity));font-weight:500;padding-bottom:1px;padding-top:1px}.highlight-link{display:none}article p a:focus,article p a:hover{text-decoration-line:underline}.footnote-reference{font-size:.75rem;line-height:1.5;vertical-align:super}.external-link-icon{fill:currentColor;height:.875rem;margin-bottom:2px;margin-left:1px}.viewcode-link{color:#0369a1;color:var(--color-link);margin-left:1rem}.viewcode-link:focus,.viewcode-link:hover{color:#0ea5e9;color:var(--color-brand)}.viewcode-back{color:#0369a1;color:var(--color-link);position:absolute;right:1rem}.viewcode-back:focus,.viewcode-back:hover{color:#0ea5e9;color:var(--color-brand)}:not(pre)>code{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity));border-width:1px;font-weight:500;padding-left:.25rem;padding-right:.25rem}@media (min-width:640px){:not(pre)>code{font-size:.9375em;line-height:1.5}}:not(pre)>code.highlight{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}main kbd:not(.compound){--tw-border-opacity:1;border-color:rgba(33,33,33,var(--tw-border-opacity));display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem}main kbd:not(.compound),pre{border-radius:.125rem;border-width:1px;line-height:1.5}pre{margin-bottom:1.5rem;overflow-x:hidden;position:relative}pre code,pre.literal-block{overflow-x:auto;padding-bottom:1rem;padding-left:1rem;padding-top:1rem}pre code{display:block}pre .copy{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity));border-radius:.125rem;border-width:1px;color:rgba(55,65,81,var(--tw-text-opacity));font-size:.75rem;letter-spacing:.025em;line-height:1.5;opacity:0;padding:.25rem;position:absolute;right:.375rem;text-transform:uppercase;top:.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.5s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none}pre .copy:focus{opacity:1}pre .copy:active{--tw-translate-x:0.125rem;--tw-translate-y:0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}pre:hover .copy{opacity:1}.code-wrapper{margin-bottom:1.5rem;margin-top:1.5rem}.code-wrapper .caption-text{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));letter-spacing:.025em}.code-wrapper pre{border-top-left-radius:0;border-top-right-radius:0}.code-wrapper del,.code-wrapper ins,.code-wrapper mark{display:block;margin-left:-1rem;padding-bottom:1px;padding-left:1rem;padding-top:1px;position:relative}.code-wrapper mark{background-color:rgba(186,230,253,.7)}.code-wrapper ins{background-color:rgba(187,247,208,.7);text-decoration-line:none}.code-wrapper ins:before{--tw-text-opacity:1;color:rgba(20,83,45,var(--tw-text-opacity));content:"\002b";left:2px;position:absolute}.code-wrapper del{background-color:hsla(0,96%,89%,.7);text-decoration-line:none}.code-wrapper del:before{--tw-text-opacity:1;color:rgba(127,29,29,var(--tw-text-opacity));content:"\2212";left:2px;position:absolute}.code-wrapper .linenos{--tw-text-opacity:1;background-color:transparent;color:rgba(55,65,81,var(--tw-text-opacity));padding:0 1.5rem 0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-wrapper .code-line{display:block}span.gd{background-color:rgba(254,202,202,var(--tw-bg-opacity))}span.gd,span.gi{--tw-bg-opacity:1;display:inline-block;padding-bottom:1px;padding-top:1px;width:100%}span.gi{background-color:rgba(187,247,208,var(--tw-bg-opacity))}.code-header{--tw-bg-opacity:1;align-items:center;background-color:rgba(249,250,251,var(--tw-bg-opacity));border-left-width:1px;border-right-width:1px;border-top-left-radius:.125rem;border-top-right-radius:.125rem;border-top-width:1px;display:flex;font-size:.875rem;justify-content:space-between;line-height:1.5;padding-bottom:.25rem;padding-top:.25rem}.code-lang{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));display:inline-block;font-family:JetBrains\ Mono,monospace;letter-spacing:.05em;margin-left:.5rem;margin-right:auto;text-transform:uppercase}.gp{font-weight:500;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}var{--tw-text-opacity:1;color:rgba(107,33,168,var(--tw-text-opacity));font-style:italic}.guilabel,.menuselection{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500;letter-spacing:.025em}dl.code-definition,dl.option-list{border-top-width:1px;margin-bottom:3rem;margin-top:1.5rem;padding-top:1.5rem}dl.code-definition dt,dl.option-list dt{font-weight:400}dl.code-definition dt>code,dl.code-definition dt>kbd,dl.option-list dt>code,dl.option-list dt>kbd{--tw-text-opacity:1;background-color:transparent;border-style:none;color:rgba(33,33,33,var(--tw-text-opacity));font-size:16px;font-weight:600;line-height:1.5;padding-left:0;padding-right:0}dl.code-definition .property,dl.option-list .property{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace;font-weight:500}dl.code-definition .sig-param,dl.option-list .sig-param{--tw-text-opacity:1;color:rgba(12,74,110,var(--tw-text-opacity));font-family:JetBrains\ Mono,monospace}dl.code-definition .sig-paren,dl.option-list .sig-paren{margin-left:.25rem;margin-right:.25rem}dl.footnote{display:grid;font-size:.875rem;grid-template-columns:max-content auto;line-height:1.5}dl.footnote dt{color:#0369a1;color:var(--color-link)}dl.footnote span.brackets:before{content:"["}dl.footnote span.brackets:after{content:"]"}table caption{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;letter-spacing:.025em;line-height:1.5;margin-bottom:1rem;text-align:left}table:not(.highlighttable){font-size:.875rem;line-height:1.5;margin-bottom:3rem;margin-top:3rem}table:not(.highlighttable) p+p{margin-top:1rem}table:not(.highlighttable) tbody tr{border-top-width:1px}table:not(.highlighttable) th{font-weight:500;letter-spacing:.025em;padding-bottom:.75rem;padding-top:.75rem;text-align:left;vertical-align:top}table:not(.highlighttable) td{padding-bottom:.5rem;padding-top:.5rem;text-align:left;vertical-align:top}.caption-number{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;font-weight:500;line-height:1.5}figure{margin-bottom:3rem;margin-top:3rem}figure .legend{--tw-text-opacity:1;border-bottom-width:1px;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;line-height:1.5;padding-bottom:2rem}figure .legend p{margin-bottom:1rem;margin-top:1rem}figure img{display:inline-block}main :not(figure)>img{margin-bottom:3rem;margin-top:3rem}figcaption{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity));font-size:.875rem;letter-spacing:.025em;line-height:1.25;margin-top:1rem}.align-center{margin-left:auto;margin-right:auto;text-align:center}.align-right{margin-left:auto;text-align:right}blockquote{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(249,250,251,.3);border-left-width:4px;border-radius:.125rem;box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow);font-size:.875rem;line-height:1.5;margin-bottom:1.5rem;margin-top:1.5rem;padding:1rem}blockquote .attribution{font-style:italic}.admonition{--tw-border-opacity:1;--tw-bg-opacity:0.02;--tw-text-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgba(56,189,248,var(--tw-bg-opacity));border-color:rgba(56,189,248,var(--tw-border-opacity));border-left-width:4px;border-radius:.125rem;box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow);color:rgba(12,74,110,var(--tw-text-opacity));font-size:.875rem;line-height:1.5;margin-bottom:1.5rem;margin-top:1.5rem;padding:1rem}.admonition p:not(.admonition-title){margin-bottom:1rem;margin-top:1rem}.admonition p:last-child{margin-bottom:0}.admonition .headerlink{color:currentColor}.seealso{--tw-text-opacity:1;background-color:transparent;border-style:none;color:rgba(97,97,97,var(--tw-text-opacity));padding:.5rem}.seealso .admonition-title{padding-left:.5rem;padding-right:.5rem}.seealso a{background-color:rgba(249,250,251,.4);display:inline-block;padding:.5rem;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.seealso a.internal:after{content:"\2192";margin-left:.5rem;opacity:0;transition-duration:.15s}.seealso a:hover{background-color:#0ea5e9;background-color:var(--color-brand);color:#fff!important;text-decoration:none!important}.seealso a:hover:after{opacity:1}.seealso a code{background-color:transparent;border-style:none}.hint,.tip{background-color:rgba(74,222,128,var(--tw-bg-opacity));border-color:rgba(74,222,128,var(--tw-border-opacity));color:rgba(20,83,45,var(--tw-text-opacity))}.danger,.error,.hint,.tip,.warning{--tw-border-opacity:1;--tw-bg-opacity:0.02;--tw-text-opacity:1}.danger,.error,.warning{background-color:rgba(248,113,113,var(--tw-bg-opacity));border-color:rgba(248,113,113,var(--tw-border-opacity));color:rgba(127,29,29,var(--tw-text-opacity))}.caution,.important{--tw-border-opacity:1;--tw-bg-opacity:0.02;--tw-text-opacity:1;background-color:rgba(250,204,21,var(--tw-bg-opacity));border-color:rgba(250,204,21,var(--tw-border-opacity));color:rgba(113,63,18,var(--tw-text-opacity))}.admonition-title{font-weight:500;letter-spacing:.025em;margin-bottom:1rem;margin-top:0}@media print{p{orphans:2;widows:2}h2,h3,h4{-moz-column-break-after:avoid;break-after:avoid;page-break-after:avoid}a,h2,h3,h4{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}section[role=contentinfo]{-moz-column-break-before:avoid;break-before:avoid;page-break-before:avoid}table{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}code,pre{white-space:pre-wrap!important}.seealso a.internal:after,main a:after{content:" (" attr(href) ")"}}.tooltipped{position:relative}.tooltipped:after{-webkit-font-smoothing:subpixel-antialiased;word-wrap:break-word;--tw-bg-opacity:0.75;--tw-text-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity));border-radius:.125rem;color:rgba(255,255,255,var(--tw-text-opacity));content:attr(aria-label);display:none;font-size:.75rem;font-weight:400;letter-spacing:normal;letter-spacing:.025em;line-height:1.5;opacity:0;padding:.25rem .5rem;pointer-events:none;position:absolute;text-align:center;text-decoration-line:none;text-shadow:none;text-transform:none;white-space:pre;z-index:1000000}@keyframes tooltip-appear{0%{opacity:0}to{opacity:1}}.tooltipped:focus:after,.tooltipped:focus:before,.tooltipped:hover:after,.tooltipped:hover:before{animation-delay:.2s;animation-duration:.4s;animation-fill-mode:forwards;animation-name:tooltip-appear;animation-timing-function:ease-in;display:inline-block;text-decoration:none}.tooltipped-no-delay:focus:after,.tooltipped-no-delay:focus:before,.tooltipped-no-delay:hover:after,.tooltipped-no-delay:hover:before{animation-delay:0s}.tooltipped-multiline:focus:after,.tooltipped-multiline:hover:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{margin-top:6px;right:50%;top:100%}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{border-bottom-color:#1a202c;bottom:-7px;margin-right:-6px;right:50%;top:auto}.tooltipped-se:after{left:50%;margin-left:-16px;right:auto}.tooltipped-sw:after{margin-right:-16px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{bottom:100%;margin-bottom:6px;right:50%}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{border-top-color:#1a202c;bottom:auto;margin-right:-6px;right:50%;top:-7px}.tooltipped-ne:after{left:50%;margin-left:-16px;right:auto}.tooltipped-nw:after{margin-right:-16px}.tooltipped-n:after,.tooltipped-s:after{transform:translateX(50%)}.tooltipped-w:after{bottom:50%;margin-right:6px;right:100%;transform:translateY(50%)}.tooltipped-w:before{border-left-color:#1a202c;bottom:50%;left:-7px;margin-top:-6px;top:50%}.tooltipped-e:after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%)}.tooltipped-e:before{border-right-color:#1a202c;bottom:50%;margin-top:-6px;right:-7px;top:50%}.tooltipped-align-right-1:after,.tooltipped-align-right-2:after{margin-right:0;right:0}.tooltipped-align-right-1:before{right:10px}.tooltipped-align-right-2:before{right:15px}.tooltipped-align-left-1:after,.tooltipped-align-left-2:after{left:0;margin-left:0}.tooltipped-align-left-1:before{left:5px}.tooltipped-align-left-2:before{left:10px}.tooltipped-multiline:after{word-wrap:break-word;border-collapse:separate;max-width:250px;white-space:pre-line;width:-moz-max-content;width:max-content}.tooltipped-multiline.tooltipped-n:after,.tooltipped-multiline.tooltipped-s:after{left:50%;right:auto;transform:translateX(-50%)}.tooltipped-multiline.tooltipped-e:after,.tooltipped-multiline.tooltipped-w:after{right:100%}@media screen and (min-width:0\0){.tooltipped-multiline:after{width:250px}}.tooltipped-sticky:after,.tooltipped-sticky:before{display:inline-block}.tooltipped-sticky.tooltipped-multiline:after{display:table-cell}button.expand-more{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity));float:right;margin-left:.5rem}button.expand-more:focus,button.expand-more:hover{color:#0ea5e9;color:var(--color-brand)}button.expand-more>svg{--tw-rotate:0deg;fill:currentColor;height:1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.1s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);width:1.5rem}.accordion:hover .expand-more{color:#0ea5e9;color:var(--color-brand)}.active .expand-more>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.panel{max-height:0;opacity:0;overflow-y:hidden;transition-duration:.5s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);visibility:hidden}.active+.panel{max-height:-moz-fit-content;max-height:fit-content;opacity:1;overflow-y:visible;visibility:visible}:root{--docsearch-searchbox-background:transparent;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--color-brand);--docsearch-key-gradient:transparent;--docsearch-primary-color:#1c75b0;--docsearch-modal-width:960px}.DocSearch-Button{border-radius:0;height:3.5rem;line-height:3.5rem;padding-right:1rem}.DocSearch-Button-Key{font-family:Roboto,sans-serif;font-size:.875rem;height:1.25rem;line-height:1.5;padding:1rem}.DocSearch-Button:hover .DocSearch-Button-Key{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgba(33,33,33,var(--tw-border-opacity));color:rgba(33,33,33,var(--tw-text-opacity))}.DocSearch-Button .DocSearch-Search-Icon{--tw-text-opacity:1;stroke-width:2.5;color:rgba(243,244,246,var(--tw-text-opacity))}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{padding-left:.75rem}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{left:0;right:0}.inset-0,.inset-y-0{bottom:0;top:0}.top-0{top:0}.bottom-0{bottom:0}.right-0{right:0}.left-0{left:0}.z-10{z-index:10}.z-20{z-index:20}.col-span-full{grid-column:1/-1}.m-4{margin:1rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.my-8{margin-bottom:2rem;margin-top:2rem}.mx-0{margin-left:0;margin-right:0}.mx-auto{margin-left:auto;margin-right:auto}.mr-1{margin-right:.25rem}.mt-12{margin-top:3rem}.mt-20{margin-top:5rem}.mb-4{margin-bottom:1rem}.mb-2{margin-bottom:.5rem}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.mt-16{margin-top:4rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.hidden{display:none}.h-14{height:3.5rem}.h-8{height:2rem}.h-full{height:100%}.h-6{height:1.5rem}.min-h-screen{min-height:100vh}.w-14{width:3.5rem}.w-8{width:2rem}.w-full{width:100%}.w-0{width:0}.w-6{width:1.5rem}.max-w-prose{max-width:760px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.translate-y-full{--tw-translate-y:100%}.-translate-x-full,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x:-100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.self-center{align-self:center}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded-full{border-radius:9999px}.border-b-4{border-bottom-width:4px}.border-brand{border-color:#0ea5e9;border-color:var(--color-brand)}.bg-gray-700{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-gray-dark{--tw-bg-opacity:1;background-color:rgba(33,33,33,var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgba(17,24,39,var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity:0.5}.fill-current{fill:currentColor}.stroke-current{stroke:currentColor}.p-3{padding:.75rem}.p-4{padding:1rem}.p-2{padding:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.pl-2{padding-left:.5rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pr-2{padding-right:.5rem}.pt-8{padding-top:2rem}.pl-6{padding-left:1.5rem}.pt-14{padding-top:3.5rem}.text-right{text-align:right}.text-sm{font-size:.875rem;line-height:1.5}.text-3xl{font-size:2.5rem;line-height:1.2}.text-xs{font-size:.75rem;line-height:1.5}.text-4xl{font-size:3rem;line-height:1.2}.text-xl{font-size:1.5rem;line-height:1.2}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.leading-14{line-height:3.5rem}.tracking-wider{letter-spacing:.05em}.tracking-wide{letter-spacing:.025em}.text-gray-light{--tw-text-opacity:1;color:rgba(97,97,97,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(243,244,246,var(--tw-text-opacity))}.text-gray{--tw-text-opacity:1;color:rgba(66,66,66,var(--tw-text-opacity))}.text-link{color:#0369a1;color:var(--color-link)}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgba(185,28,28,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(209,213,219,var(--tw-text-opacity))}.text-inherit{color:inherit}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.duration-1000{transition-duration:1s}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.lead{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-size:1.125rem;line-height:1.5;margin-bottom:4rem;margin-top:1rem}.centered{text-align:center}p.rubric{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity));font-weight:500;margin-bottom:0;margin-top:3rem}.grid-area-header{grid-area:header}.grid-area-sidebar{grid-area:sidebar}.grid-area-main{grid-area:main}#page.isShown{overflow:hidden}[data-sidebar-target=sidebar].isShown{--tw-translate-x:0px;max-width:90%;opacity:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:100%}[data-scroll-target=scrollToTop].isShown{opacity:1;pointer-events:auto}[data-sidebar-target=screen].isShown{display:block}[data-search-target=snackbar].isShown{--tw-translate-y:0px;opacity:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.5s;transition-timing-function:cubic-bezier(0,0,.2,1)}.focus-within\:absolute:focus-within{position:absolute}.focus-within\:inset-x-0:focus-within{left:0;right:0}.focus-within\:top-0:focus-within{top:0}.focus-within\:bg-gray-50:focus-within{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.focus-within\:text-gray-800:focus-within{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgba(209,213,219,var(--tw-bg-opacity))}.hover\:text-gray-dark:hover{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}.hover\:text-brand:hover{color:#0ea5e9;color:var(--color-brand)}.hover\:text-link:hover{color:#0369a1;color:var(--color-link)}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.focus\:w-full:focus{width:100%}.focus\:translate-x-0:focus{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.focus\:bg-gray-700:focus{--tw-bg-opacity:1;background-color:rgba(55,65,81,var(--tw-bg-opacity))}.focus\:bg-gray-200:focus{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.focus\:text-gray-dark:focus{--tw-text-opacity:1;color:rgba(33,33,33,var(--tw-text-opacity))}.focus\:text-brand:focus{color:#0ea5e9;color:var(--color-brand)}.focus\:text-link:focus{color:#0369a1;color:var(--color-link)}.focus\:underline:focus{text-decoration-line:underline}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(2,132,199,var(--tw-ring-opacity))}@media (min-width:640px){.sm\:px-4{padding-left:1rem;padding-right:1rem}}@media (min-width:768px){.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:ml-4{margin-left:1rem}.md\:w-auto{width:auto}.md\:focus-within\:static:focus-within{position:static}.md\:focus-within\:w-full:focus-within{width:100%}}@media (min-width:1024px){.lg\:inline-block{display:inline-block}}@media (min-width:1280px){.xl\:relative{position:relative}.xl\:z-0{z-index:0}.xl\:ml-fluid{margin-left:7.5vw;margin-left:var(--fluid-margin)}.xl\:mr-0{margin-right:0}.xl\:grid{display:grid}.xl\:hidden{display:none}.xl\:h-screen{height:100vh}.xl\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.xl\:px-2{padding-left:.5rem;padding-right:.5rem}.xl\:opacity-100{opacity:1}.xl\:grid-layout{grid-template-areas:"header header" "sidebar main";grid-template-columns:max(300px,17%) 1fr;grid-template-columns:max(var(--sidebar-width),17%) 1fr;grid-template-rows:min-content 1fr}}@media print{.print\:mt-4{margin-top:1rem}.print\:block{display:block}.print\:hidden{display:none}.print\:h-auto{height:auto}} +@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:400;src:url(b009a76ad6afe4ebd301.woff2) format("woff2"),url(f1e2a76794cb86b2aa8e.woff) format("woff")} +@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:400;src:url(e10742dbb1d4a0864ba8.woff2) format("woff2"),url(d037cb4792991826de7d.woff) format("woff")} +@font-face{font-display:swap;font-family:Roboto;font-style:normal;font-weight:500;src:url(f25d774ecfe0996f8eb5.woff2) format("woff2"),url(48af7707fe9e6494d6a5.woff) format("woff")} +@font-face{font-display:swap;font-family:Roboto;font-style:italic;font-weight:500;src:url(3a43b67e5bbdfb3ab0a6.woff2) format("woff2"),url(9ac5da2442b734abc516.woff) format("woff")} +@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400;src:url(d0b41bd1d599bc0a52b7.woff2) format("woff2"),url(6f04107ce68d524ebe69.woff) format("woff")} +@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:400;src:url(ff058b7e238adc5cba09.woff2) format("woff2"),url(ad463ea60cc8b68792f4.woff) format("woff")} +@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:500;src:url(ec416b97881f4a422686.woff2) format("woff2"),url(46830c334f8112fa510a.woff) format("woff")} +@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:500;src:url(31f64b9c465158bd6066.woff2) format("woff2"),url(09be83022f2ac2ce16b0.woff) format("woff")} +@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:600;src:url(a49e53c029ef019e7422.woff2) format("woff2"),url(42ba3027499c19034257.woff) format("woff")} diff --git a/src/theme-src/css/base.css b/src/theme-src/css/base.css index 1203f1d1c..4fe5300be 100644 --- a/src/theme-src/css/base.css +++ b/src/theme-src/css/base.css @@ -26,7 +26,7 @@ } section > section { - @apply py-12 print:py-0; + @apply py-6 print:py-0; } section > p { diff --git a/src/theme-src/package.json b/src/theme-src/package.json index c293f6615..548efa5cf 100644 --- a/src/theme-src/package.json +++ b/src/theme-src/package.json @@ -16,7 +16,6 @@ "dependencies": { "@docsearch/js": "^3.2.2", "@hotwired/stimulus": "^3.1.1", - "@hotwired/stimulus-webpack-helpers": "^1.0.1", "clipboard": "^2.0.11" }, "devDependencies": { @@ -25,6 +24,7 @@ "@fontsource/jetbrains-mono": "^4.5.10", "@fontsource/roboto": "^4.5.8", "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", + "@hotwired/stimulus-webpack-helpers": "^1.0.1", "autoprefixer": "^10.4.8", "babel-loader": "^9.0.0", "clean-webpack-plugin": "^4.0.0",