feat(docs): GitHub mirror icon, README-sourced doc sections, auto-generated TOC #129
@@ -146,9 +146,12 @@ Contributing to the docs? There are two sources, split by content type:
|
||||
above each function in `functions/*.fish`. Edit the function; the entry
|
||||
and its site page are generated from the header.
|
||||
- **Everything else** lives under `docs/manual/**`.
|
||||
- **Testing, Contributing, Attribution, and License** are pulled straight
|
||||
from this README (the sections below) rather than authored twice — edit
|
||||
them here and the manual, man page, and site all pick up the change.
|
||||
|
||||
Never edit the generated `docs/fish-config.md` — it's rebuilt from both
|
||||
sources and any hand-edits are discarded.
|
||||
Never edit the generated `docs/fish-config.md` — it's rebuilt from all
|
||||
three sources and any hand-edits are discarded.
|
||||
|
||||
To browse the docs from the terminal:
|
||||
|
||||
@@ -348,6 +351,14 @@ Interested in contributing? See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the
|
||||
branching/PR workflow, commit conventions, fish coding standards, and the
|
||||
docs/testing pipeline this repo follows.
|
||||
|
||||
**Preferred forge:** [git.rootiest.dev/rootiest/fish-config](https://git.rootiest.dev/rootiest/fish-config)
|
||||
is the base repository. [github.com/rootiest/fish-config](https://github.com/rootiest/fish-config)
|
||||
is a push-mirror of it — identical content, but one-way and read-only from a
|
||||
contributor's perspective. Branches, forks, and merges made on the GitHub
|
||||
side aren't fed back upstream, so they risk being silently overwritten by
|
||||
the next mirror push. Until two-way sync exists, please fork, branch, and
|
||||
open issues/PRs from the Gitea repository rather than the GitHub mirror.
|
||||
|
||||
---
|
||||
|
||||
## Attribution
|
||||
|
||||
+100
-1
@@ -23,6 +23,8 @@ DOCS = Path(__file__).parent
|
||||
MANUAL = DOCS / "manual"
|
||||
FUNCTIONS = DOCS.parent / "functions"
|
||||
COMPLETIONS = DOCS.parent / "completions"
|
||||
README = DOCS.parent / "README.md"
|
||||
REPO_BLOB_BASE = "https://git.rootiest.dev/rootiest/fish-config/src/branch/main/"
|
||||
SLUG_DIR = "reference"
|
||||
|
||||
# File-tree branches whose real directory contents get listed inline on the
|
||||
@@ -80,10 +82,104 @@ def _with_abbreviations(body: str, abbrs: dict[str, list[dict]]) -> str:
|
||||
for cat, table in rendered_abbrs.items():
|
||||
placeholder = f"<!-- GENERATED: {cat} -->"
|
||||
body = body.replace(placeholder, table)
|
||||
|
||||
|
||||
return body
|
||||
|
||||
|
||||
TOC_PLACEHOLDER = "<!-- GENERATED: toc -->"
|
||||
TOC_SKIP_STEMS = {"index"}
|
||||
|
||||
|
||||
def _build_toc(root: Path) -> str:
|
||||
"""Render the section list for docs/manual/00-table-of-contents.md.
|
||||
|
||||
Walks the same tree `build_concat` does, so it can never drift from the
|
||||
man page's actual section order. `index.md` and the `00-*` front-matter
|
||||
pages (Name, Synopsis, this page) sit before section 1 and are excluded,
|
||||
same as any `man: false` page (currently only 404).
|
||||
"""
|
||||
lines: list[str] = []
|
||||
n = 0
|
||||
for path, depth in mt.walk(root):
|
||||
rel = path.relative_to(root)
|
||||
# len(rel.parts) == 1 means a root-level file, not a directory's own
|
||||
# index page (e.g. 04-abbreviations/index.md), which must keep its
|
||||
# own numbered line even though its stem is also "index".
|
||||
if depth == 0 and len(rel.parts) == 1 and (rel.stem in TOC_SKIP_STEMS or rel.stem.startswith("00-")):
|
||||
continue
|
||||
fm, _ = mt.parse(path)
|
||||
if not fm.get("man", True):
|
||||
continue
|
||||
title = fm.get("title", path.stem)
|
||||
if depth == 0:
|
||||
n += 1
|
||||
lines.append(f" {n}. {title}")
|
||||
else:
|
||||
lines.append(f" - {title}")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def _with_toc(body: str, root: Path) -> str:
|
||||
"""Inject the `<!-- GENERATED: toc -->` placeholder with the built section list."""
|
||||
return body.replace(TOC_PLACEHOLDER, _build_toc(root)) if TOC_PLACEHOLDER in body else body
|
||||
|
||||
|
||||
README_LINK_RE = re.compile(r"\]\((?!https?://|#|mailto:)([^)]+)\)")
|
||||
README_FENCE_RE = re.compile(r"```[^\n]*\n(.*?)```\n?", re.DOTALL)
|
||||
README_PLACEHOLDER_RE = re.compile(r"<!-- README: (.+?) -->")
|
||||
|
||||
|
||||
def _rewrite_repo_links(text: str) -> str:
|
||||
"""Point a README-relative link (`CONTRIBUTING.md`, `LICENSE`) at its file on Gitea."""
|
||||
return README_LINK_RE.sub(lambda m: f"]({REPO_BLOB_BASE}{m.group(1)})", text)
|
||||
|
||||
|
||||
def _defence(text: str) -> str:
|
||||
"""Rewind a README fenced code block into the manual's indented-block form.
|
||||
|
||||
`docs/manual` bodies are authored man-page style (4-space indent), never
|
||||
fenced: `codespans`/pandoc pair backticks per line, and a fence line's
|
||||
triple backtick throws that count off. README.md is ordinary markdown
|
||||
and fences its examples, so an injected section is converted back.
|
||||
"""
|
||||
def repl(m: re.Match) -> str:
|
||||
block = m.group(1).rstrip("\n")
|
||||
return "\n".join(" " + line for line in block.split("\n")) + "\n"
|
||||
|
||||
return README_FENCE_RE.sub(repl, text)
|
||||
|
||||
|
||||
@functools.lru_cache(maxsize=1)
|
||||
def _readme_sections() -> dict[str, str]:
|
||||
"""Split README.md into {H2 heading: body}, links rewritten to point at the repo.
|
||||
|
||||
Lets a manual stub pull one README section in verbatim via a
|
||||
`<!-- README: <Heading> -->` placeholder, so the README stays the single
|
||||
source of truth for sections that describe the repo itself rather than
|
||||
the shell config (Testing, Contributing, Attribution, License).
|
||||
"""
|
||||
sections: dict[str, str] = {}
|
||||
heading: str | None = None
|
||||
lines: list[str] = []
|
||||
for line in README.read_text().split("\n") + ["## "]:
|
||||
if line.startswith("## "):
|
||||
if heading is not None:
|
||||
body = "\n".join(lines).strip()
|
||||
if body.endswith("---"):
|
||||
body = body[:-3].rstrip()
|
||||
sections[heading] = _defence(_rewrite_repo_links(body))
|
||||
heading = line[3:].strip()
|
||||
lines = []
|
||||
else:
|
||||
lines.append(line)
|
||||
return sections
|
||||
|
||||
|
||||
def _with_readme(body: str) -> str:
|
||||
"""Inject `<!-- README: Heading -->` placeholders with that README section's body."""
|
||||
return README_PLACEHOLDER_RE.sub(lambda m: _readme_sections().get(m.group(1), ""), body)
|
||||
|
||||
|
||||
def build_concat(root: Path) -> str:
|
||||
"""Concatenate the manual into one ordered markdown document.
|
||||
|
||||
@@ -123,6 +219,8 @@ def build_concat(root: Path) -> str:
|
||||
elif "04-abbreviations" in path.parts:
|
||||
abbrs = mt.parse_abbreviations(DOCS.parent / "conf.d")
|
||||
body = _with_abbreviations(body, abbrs)
|
||||
body = _with_readme(body)
|
||||
body = _with_toc(body, root)
|
||||
if body:
|
||||
body = re.sub(r"<LinkButton.*?</LinkButton>\n*", "", body, flags=re.DOTALL)
|
||||
body = re.sub(r"<CardGrid.*?</CardGrid>\n*", "", body, flags=re.DOTALL)
|
||||
@@ -749,6 +847,7 @@ def build_site(root: Path, out: Path) -> list[dict]:
|
||||
if "04-abbreviations" in path.parts:
|
||||
abbrs = mt.parse_abbreviations(DOCS.parent / "conf.d")
|
||||
body = _with_abbreviations(body, abbrs)
|
||||
body = _with_readme(body)
|
||||
target.parent.mkdir(parents=True, exist_ok=True)
|
||||
body = _inject_subheading_cards(body)
|
||||
_write_prettified(target, _page_fm(fm), prettify(body))
|
||||
|
||||
+2169
-2546
File diff suppressed because it is too large
Load Diff
@@ -403,4 +403,23 @@ site=## The documentation website
|
||||
source=## Reading the source directly
|
||||
raw-source=## Reading the source directly
|
||||
|
||||
# ── Section 14: Testing ───────────────────────────────────────
|
||||
testing=# 14. TESTING
|
||||
tests=# 14. TESTING
|
||||
|
||||
# ── Section 15: Contributing ──────────────────────────────────
|
||||
contributing=# 15. CONTRIBUTING
|
||||
contribute=# 15. CONTRIBUTING
|
||||
forge=# 15. CONTRIBUTING
|
||||
|
||||
# ── Section 16: Attribution ───────────────────────────────────
|
||||
attribution=# 16. ATTRIBUTION
|
||||
credits=# 16. ATTRIBUTION
|
||||
|
||||
# ── Section 17: License ───────────────────────────────────────
|
||||
license=# 17. LICENSE
|
||||
licensing=# 17. LICENSE
|
||||
agpl=# 17. LICENSE
|
||||
copyright=# 17. LICENSE
|
||||
|
||||
|
||||
|
||||
+79
-46
@@ -82,52 +82,54 @@ The configuration uses a structured file tree:
|
||||
|
||||
# TABLE OF CONTENTS
|
||||
|
||||
1. Configuration Variables
|
||||
2. PATH Setup
|
||||
3. Key Bindings
|
||||
4. Abbreviations
|
||||
4.1 Editors
|
||||
4.2 Navigation and Listing
|
||||
4.3 Git
|
||||
4.4 Terminal Windows, Tabs, and Panes
|
||||
4.5 Chezmoi
|
||||
4.6 Docker
|
||||
4.7 Systemctl
|
||||
4.8 AI Assistants
|
||||
4.9 History Expansion
|
||||
4.10 Miscellaneous
|
||||
4.11 Shell Aliases
|
||||
5. Functions Reference
|
||||
5.1 File and Directory
|
||||
5.2 Navigation
|
||||
5.3 Editors and Viewers
|
||||
5.4 Git and Version Control
|
||||
5.5 Package Management
|
||||
5.6 Dependency Management
|
||||
5.7 System and Monitoring
|
||||
5.8 Terminal Management
|
||||
5.9 Clipboard
|
||||
5.10 Network
|
||||
5.11 Pager and Logging
|
||||
5.12 AI and Developer Tools
|
||||
5.13 Media and Utilities
|
||||
5.14 Miscellaneous
|
||||
6. Dependency Catalog
|
||||
7. Customization
|
||||
8. Fisher Plugins
|
||||
9. Installation
|
||||
10. Personalization
|
||||
11. Troubleshooting
|
||||
11.1 Uninstalling and Reverting to Backup
|
||||
11.2 Fish Version Requirement
|
||||
11.3 Enable or Disable Session Logging
|
||||
11.4 Change or Disable the Greeting
|
||||
11.5 Secrets and Machine-Local Configuration
|
||||
11.6 Tool Init Does Nothing (Return Sentinel)
|
||||
11.7 Missing Dependencies
|
||||
11.8 Vi Mode Keybindings
|
||||
11.9 What's with the C1-C6 stuff?
|
||||
12. Viewing This Manual
|
||||
1. Configuration Variables
|
||||
2. PATH Setup
|
||||
3. Key Bindings
|
||||
4. Abbreviations
|
||||
- Editors
|
||||
- Navigation and Listing
|
||||
- Git
|
||||
- Terminal Windows, Tabs, and Panes
|
||||
- Chezmoi
|
||||
- Docker
|
||||
- Systemctl
|
||||
- AI Assistants
|
||||
- History Expansion
|
||||
- Miscellaneous
|
||||
- Shell Aliases
|
||||
5. Functions Reference
|
||||
- File and Directory
|
||||
- Navigation
|
||||
- Editors and Viewers
|
||||
- Git and Version Control
|
||||
- Package Management
|
||||
- Dependency Management
|
||||
- System and Monitoring
|
||||
- Terminal Management
|
||||
- Clipboard
|
||||
- Network
|
||||
- Pager and Logging
|
||||
- AI and Developer Tools
|
||||
- Media and Utilities
|
||||
- Miscellaneous
|
||||
6. Dependency Catalog
|
||||
7. Customization
|
||||
8. Components Reference
|
||||
- C1 — Command Shadows
|
||||
- C2 — Startup Side-Effects
|
||||
- C3 — Key and Environment Overrides
|
||||
- C4 — Terminal and Tool Integration
|
||||
- C5 — Logging and Capture
|
||||
- C6 — Greeting and First-Run UI
|
||||
9. Fisher Plugins
|
||||
10. Installation
|
||||
11. Personalization
|
||||
12. Troubleshooting
|
||||
13. Viewing This Manual
|
||||
14. Testing
|
||||
15. Contributing
|
||||
16. Attribution
|
||||
17. License
|
||||
|
||||
---
|
||||
|
||||
@@ -4309,3 +4311,34 @@ to correct its documentation, open the function itself:
|
||||
|
||||
The files under `docs/manual/05-functions/` carry only the category
|
||||
titles, ordering, and search keywords.
|
||||
|
||||
# 14. TESTING
|
||||
|
||||
fish tests/run-tests.fish
|
||||
|
||||
Runs before every push (and gates the [documentation build](https://git.rootiest.dev/rootiest/fish-config/src/branch/main/.github/workflows/ci.yml) in CI, so a broken config can't get published): syntax-lints every `.fish` file, then loads the config in an isolated `HOME`/XDG sandbox — never this checkout itself, since it doubles as a real `~/.config/fish` — and runs functional checks against foundational behavior (XDG/PATH/CDPATH setup, key bindings, abbreviations, core functions, the opinionated-component registry, and more).
|
||||
|
||||
# 15. CONTRIBUTING
|
||||
|
||||
Interested in contributing? See [`CONTRIBUTING.md`](https://git.rootiest.dev/rootiest/fish-config/src/branch/main/CONTRIBUTING.md) for the
|
||||
branching/PR workflow, commit conventions, fish coding standards, and the
|
||||
docs/testing pipeline this repo follows.
|
||||
|
||||
**Preferred forge:** [git.rootiest.dev/rootiest/fish-config](https://git.rootiest.dev/rootiest/fish-config)
|
||||
is the base repository. [github.com/rootiest/fish-config](https://github.com/rootiest/fish-config)
|
||||
is a push-mirror of it — identical content, but one-way and read-only from a
|
||||
contributor's perspective. Branches, forks, and merges made on the GitHub
|
||||
side aren't fed back upstream, so they risk being silently overwritten by
|
||||
the next mirror push. Until two-way sync exists, please fork, branch, and
|
||||
open issues/PRs from the Gitea repository rather than the GitHub mirror.
|
||||
|
||||
# 16. ATTRIBUTION
|
||||
|
||||
The core of the [Zoxide integration](https://fish.rootiest.fyi/02-path-setup/) in this repository was originally adapted from the [icezyclon/zoxide.fish](https://github.com/icezyclon/zoxide.fish) plugin (MIT Licensed) and has since been heavily customized for performance and Fish 4.x compatibility.
|
||||
|
||||
# 17. LICENSE
|
||||
|
||||
Copyright (C) 2026 Rootiest
|
||||
|
||||
This project is licensed under the **GNU Affero General Public License v3.0 or later** (AGPLv3+).
|
||||
See the [LICENSE](https://git.rootiest.dev/rootiest/fish-config/src/branch/main/LICENSE) file for the full license text.
|
||||
|
||||
@@ -7,51 +7,6 @@ sidebar:
|
||||
order: 4
|
||||
---
|
||||
|
||||
1. Configuration Variables
|
||||
2. PATH Setup
|
||||
3. Key Bindings
|
||||
4. Abbreviations
|
||||
4.1 Editors
|
||||
4.2 Navigation and Listing
|
||||
4.3 Git
|
||||
4.4 Terminal Windows, Tabs, and Panes
|
||||
4.5 Chezmoi
|
||||
4.6 Docker
|
||||
4.7 Systemctl
|
||||
4.8 AI Assistants
|
||||
4.9 History Expansion
|
||||
4.10 Miscellaneous
|
||||
4.11 Shell Aliases
|
||||
5. Functions Reference
|
||||
5.1 File and Directory
|
||||
5.2 Navigation
|
||||
5.3 Editors and Viewers
|
||||
5.4 Git and Version Control
|
||||
5.5 Package Management
|
||||
5.6 Dependency Management
|
||||
5.7 System and Monitoring
|
||||
5.8 Terminal Management
|
||||
5.9 Clipboard
|
||||
5.10 Network
|
||||
5.11 Pager and Logging
|
||||
5.12 AI and Developer Tools
|
||||
5.13 Media and Utilities
|
||||
5.14 Miscellaneous
|
||||
6. Dependency Catalog
|
||||
7. Customization
|
||||
8. Fisher Plugins
|
||||
9. Installation
|
||||
10. Personalization
|
||||
11. Troubleshooting
|
||||
11.1 Uninstalling and Reverting to Backup
|
||||
11.2 Fish Version Requirement
|
||||
11.3 Enable or Disable Session Logging
|
||||
11.4 Change or Disable the Greeting
|
||||
11.5 Secrets and Machine-Local Configuration
|
||||
11.6 Tool Init Does Nothing (Return Sentinel)
|
||||
11.7 Missing Dependencies
|
||||
11.8 Vi Mode Keybindings
|
||||
11.9 What's with the C1-C6 stuff?
|
||||
12. Viewing This Manual
|
||||
<!-- GENERATED: toc -->
|
||||
|
||||
---
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Testing
|
||||
manTitle: 14. TESTING
|
||||
sidebar:
|
||||
order: 18
|
||||
helpKeywords:
|
||||
- testing
|
||||
- tests
|
||||
- test-suite
|
||||
- run-tests
|
||||
---
|
||||
|
||||
<!-- README: Testing -->
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Contributing
|
||||
manTitle: 15. CONTRIBUTING
|
||||
sidebar:
|
||||
order: 19
|
||||
helpKeywords:
|
||||
- contributing
|
||||
- contribute
|
||||
- pull-request
|
||||
- fork
|
||||
- issues
|
||||
- forge
|
||||
---
|
||||
|
||||
<!-- README: Contributing -->
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Attribution
|
||||
manTitle: 16. ATTRIBUTION
|
||||
sidebar:
|
||||
order: 20
|
||||
helpKeywords:
|
||||
- attribution
|
||||
- credits
|
||||
- zoxide
|
||||
---
|
||||
|
||||
<!-- README: Attribution -->
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: License
|
||||
manTitle: 17. LICENSE
|
||||
sidebar:
|
||||
order: 21
|
||||
helpKeywords:
|
||||
- license
|
||||
- licensing
|
||||
- agpl
|
||||
- copyright
|
||||
---
|
||||
|
||||
<!-- README: License -->
|
||||
@@ -28,6 +28,11 @@ export default defineConfig({
|
||||
label: 'Gitea',
|
||||
href: 'https://git.rootiest.dev/rootiest/fish-config',
|
||||
},
|
||||
{
|
||||
icon: 'github',
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/rootiest/fish-config',
|
||||
},
|
||||
],
|
||||
components: {
|
||||
SocialIcons: './src/components/starlight/SocialIcons.astro',
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
<defs>
|
||||
<style id="current-color-scheme" type="text/css">
|
||||
.ColorScheme-Accent{color:#ff004c}
|
||||
.ColorScheme-Text{color:#ff004c}
|
||||
</style>
|
||||
</defs>
|
||||
<path fill="currentColor" d="M1595.4 0c2.1 3.3 7.6 2 11 2 184 1.9 408.1 39.6 576.4 115.6 21.9 9.9 41.4 24.3 62.6 35.4 7.5 3.9 31.4 10.3 32.1 18.1.3 3.1-1.4 6.6-4.1 8-4.9 2.5-41.8-13-50.4-15.6-43.5-13.4-89.2-27.2-133.1-38.9-37.5-10-79-23.5-117.6-16.7-6.4 15 20.6 16.7 24.2 22.1s2.5 6.9-1.8 5.9c-25.1-5.8-61.6-32.7-87.9-44.1-181.7-79.1-436.4-32-621.8 18.9-62.2 17.1-134.7 38.6-193.5 64.5-6.5 2.8-26.5 11.6-30.8 15.2-5.8 4.7-6.3 15.3 0 19.6s21.8 1.6 29.8 2.2c60.4 4.1 109.5-1.3 169.9 14.1 32.2 8.2 75.3 25 99 49 13.2 13.4-9.9 11.2-18.8 10.8-26.4-1.1-53.4-6.9-79.9-8.1-359.5-15.3-709.4 225.7-883.4 528.7-39.7 69.1-86 168.1-104.7 245.3-2.5 10.2-4.8 30.5 11.9 28.1 4.1-.6 27.2-26.6 32.1-32 19-21 35.6-44.5 54.9-65.1 49.2-52.5 133-106.5 200.7-131.3 9.8-3.6 21.1-7.4 29.3 1.5 1.2 5.4-65.6 70-75 80.8-150.4 171.5-255.6 462.1-269.1 688.9-2 33.9-3.9 58.7-7.7 92.3-5 45.3.9 103.6 6 149.5 15.1 137.1 41.9 256.6 107.4 378.5 31.1 57.9 71.4 117.9 123.4 158.6.2-44.3-9.3-88.7-13-133-11.8-142 20.4-314.7 69.5-448.5.6-1.7-.2-6.2 3.5-4.4 8.6 4.1 6.2 25.5 7 33 5.2 43.5 4.9 86.4 8 130 21.2 296.4 113.7 587.3 363.3 766.6 117.3 84.3 282 143.6 422.6 175.4 48.2 10.9 110.9 26.2 159.3 30.7 9.9.9 28.4 2.4 16.8-10.8s-51.6-26.9-68.1-35.9c-81.7-45-140-102.4-203.9-168.1-5.7-5.8-36.5-28.3-30-36.9 82.5 57.3 163.1 113.7 258.4 148.5 234.9 85.7 522.2 75 731-70.1 81.2-56.5 139.1-110 198.5-189.5 11.7-15.6 43.6-53 17-66.9-81.7 3.4-160.6-6.1-238-32-32.1-10.8-72.2-25.3-102.9-39.1s-40.9-19.2-27.1-20.9c80.7 2.5 170.3-9.8 242.3-47.6 13-6.8 58-35.1 63.1-46.8 8.7-20-12.2-13.7-21.5-13.5-67 1.2-135.7 14-202 12-87.1-2.7-190.5-19.5-271-53-96.7-40.3-177.4-108.6-256.2-175.9-4.2-6.2 4.1-14.8 11-13 36.7 14.2 75.8 21.2 114.5 27.7 86.4 14.3 178 24.9 264.3 5 5-1.2 29.6-6.3 30.4-9.7-8.6-15.9-21.4-20.4-37.9-24-81.9-18-164.5-27.7-246.9-49.1-154.8-40.2-344-122.2-426-267.9-5.7-10.2-18.2-35.6 5.6-23.6 14.8 7.5 37.4 29 54.7 39.3 117.7 70.4 312.2 80.7 444.7 55.4 13-2.5 64.8-9.1 41-29.1s-56.3-29.3-71.7-36.3c-179.8-82-393.1-100.3-578.4-165.6-233-82.1-413.3-209.7-545.8-420.2-26.4-41.9-48-87.4-65.2-133.8 10.7.2 11 12 16 19 14.5 20.1 69.2 63.3 91 81 281.1 227.1 683.7 237.1 1020.9 333 80.4 22.9 187.3 55.5 261.4 92.6 16.9 8.4 32 20.5 48.6 29.4 58.2 31 104.9 55.4 158.7 95.3 35.2 26.1 64.9 60.7 106.9 75.1 97.7 33.4 169.4 16.3 265.5 24.5 37.3 3.2 11.7 26.7 3.2 45.3-48.7 106.4-25.7 198.6 32.9 294.6 38.9 63.7 125.6 144.1 206.9 129.2 74.9-13.7 115.4-158 88.3-220.5s-28-33.5-46.2-25.4c-26.8 11.9-51.8 78.2-53.2 106.8-1.8 3-5.6 5.6-9.1 3.1-2.1-3-3.2-6.7-3.7-10.3-6.5-46.6 1.8-85.2 3.9-129.7.9-19.5-2.9-24.7-23.1-23.1-14 1.1-49.1 22.9-50.4.7 32.1-101.4 57-212.9 120.9-300.1 57.4-78.4 218.2-105.9 308.9-139 40.5-14.8 81.1-31.5 120.2-49.8 7.4-3.4 34.8-19.9 39.4-18.9s4.4 3.2 5.9 5.2v8c-26.1 37.3-53.7 70.8-76.3 110.6-52.8 92.8-89.8 196.9-140.6 291.4-35.6 66.1-51.1 76.5-59 157-31.1 314.5-173.9 594.9-419.1 794.8-212.4 173.2-477.4 270.8-750 298l-133 10c-35.9-.9-72.1 1.2-108 0-397.6-12.9-799.2-153.9-1100.9-414C4.9 2277.1-145.4 1511.2 147.7 877.2 251.2 653.3 437.2 437.1 640 297.5 932.6 96.1 1223.4 8.1 1579.4 0z" class="ColorScheme-Accent"/>
|
||||
<path fill="currentColor" class="ColorScheme-Accent" d="M1595.4 0c2.1 3.3 7.6 2 11 2 184 1.9 408.1 39.6 576.4 115.6 21.9 9.9 41.4 24.3 62.6 35.4 7.5 3.9 31.4 10.3 32.1 18.1.3 3.1-1.4 6.6-4.1 8-4.9 2.5-41.8-13-50.4-15.6-43.5-13.4-89.2-27.2-133.1-38.9-37.5-10-79-23.5-117.6-16.7-6.4 15 20.6 16.7 24.2 22.1s2.5 6.9-1.8 5.9c-25.1-5.8-61.6-32.7-87.9-44.1-181.7-79.1-436.4-32-621.8 18.9-62.2 17.1-134.7 38.6-193.5 64.5-6.5 2.8-26.5 11.6-30.8 15.2-5.8 4.7-6.3 15.3 0 19.6s21.8 1.6 29.8 2.2c60.4 4.1 109.5-1.3 169.9 14.1 32.2 8.2 75.3 25 99 49 13.2 13.4-9.9 11.2-18.8 10.8-26.4-1.1-53.4-6.9-79.9-8.1-359.5-15.3-709.4 225.7-883.4 528.7-39.7 69.1-86 168.1-104.7 245.3-2.5 10.2-4.8 30.5 11.9 28.1 4.1-.6 27.2-26.6 32.1-32 19-21 35.6-44.5 54.9-65.1 49.2-52.5 133-106.5 200.7-131.3 9.8-3.6 21.1-7.4 29.3 1.5 1.2 5.4-65.6 70-75 80.8-150.4 171.5-255.6 462.1-269.1 688.9-2 33.9-3.9 58.7-7.7 92.3-5 45.3.9 103.6 6 149.5 15.1 137.1 41.9 256.6 107.4 378.5 31.1 57.9 71.4 117.9 123.4 158.6.2-44.3-9.3-88.7-13-133-11.8-142 20.4-314.7 69.5-448.5.6-1.7-.2-6.2 3.5-4.4 8.6 4.1 6.2 25.5 7 33 5.2 43.5 4.9 86.4 8 130 21.2 296.4 113.7 587.3 363.3 766.6 117.3 84.3 282 143.6 422.6 175.4 48.2 10.9 110.9 26.2 159.3 30.7 9.9.9 28.4 2.4 16.8-10.8s-51.6-26.9-68.1-35.9c-81.7-45-140-102.4-203.9-168.1-5.7-5.8-36.5-28.3-30-36.9 82.5 57.3 163.1 113.7 258.4 148.5 234.9 85.7 522.2 75 731-70.1 81.2-56.5 139.1-110 198.5-189.5 11.7-15.6 43.6-53 17-66.9-81.7 3.4-160.6-6.1-238-32-32.1-10.8-72.2-25.3-102.9-39.1s-40.9-19.2-27.1-20.9c80.7 2.5 170.3-9.8 242.3-47.6 13-6.8 58-35.1 63.1-46.8 8.7-20-12.2-13.7-21.5-13.5-67 1.2-135.7 14-202 12-87.1-2.7-190.5-19.5-271-53-96.7-40.3-177.4-108.6-256.2-175.9-4.2-6.2 4.1-14.8 11-13 36.7 14.2 75.8 21.2 114.5 27.7 86.4 14.3 178 24.9 264.3 5 5-1.2 29.6-6.3 30.4-9.7-8.6-15.9-21.4-20.4-37.9-24-81.9-18-164.5-27.7-246.9-49.1-154.8-40.2-344-122.2-426-267.9-5.7-10.2-18.2-35.6 5.6-23.6 14.8 7.5 37.4 29 54.7 39.3 117.7 70.4 312.2 80.7 444.7 55.4 13-2.5 64.8-9.1 41-29.1s-56.3-29.3-71.7-36.3c-179.8-82-393.1-100.3-578.4-165.6-233-82.1-413.3-209.7-545.8-420.2-26.4-41.9-48-87.4-65.2-133.8 10.7.2 11 12 16 19 14.5 20.1 69.2 63.3 91 81 281.1 227.1 683.7 237.1 1020.9 333 80.4 22.9 187.3 55.5 261.4 92.6 16.9 8.4 32 20.5 48.6 29.4 58.2 31 104.9 55.4 158.7 95.3 35.2 26.1 64.9 60.7 106.9 75.1 97.7 33.4 169.4 16.3 265.5 24.5 37.3 3.2 11.7 26.7 3.2 45.3-48.7 106.4-25.7 198.6 32.9 294.6 38.9 63.7 125.6 144.1 206.9 129.2 74.9-13.7 115.4-158 88.3-220.5s-28-33.5-46.2-25.4c-26.8 11.9-51.8 78.2-53.2 106.8-1.8 3-5.6 5.6-9.1 3.1-2.1-3-3.2-6.7-3.7-10.3-6.5-46.6 1.8-85.2 3.9-129.7.9-19.5-2.9-24.7-23.1-23.1-14 1.1-49.1 22.9-50.4.7 32.1-101.4 57-212.9 120.9-300.1 57.4-78.4 218.2-105.9 308.9-139 40.5-14.8 81.1-31.5 120.2-49.8 7.4-3.4 34.8-19.9 39.4-18.9s4.4 3.2 5.9 5.2v8c-26.1 37.3-53.7 70.8-76.3 110.6-52.8 92.8-89.8 196.9-140.6 291.4-35.6 66.1-51.1 76.5-59 157-31.1 314.5-173.9 594.9-419.1 794.8-212.4 173.2-477.4 270.8-750 298l-133 10c-35.9-.9-72.1 1.2-108 0-397.6-12.9-799.2-153.9-1100.9-414C4.9 2277.1-145.4 1511.2 147.7 877.2 251.2 653.3 437.2 437.1 640 297.5 932.6 96.1 1223.4 8.1 1579.4 0z"/>
|
||||
<g transform="translate(907.9791817150754, 326.150186646207) scale(105.39115723844282, 105.39115723844282)">
|
||||
<path fill="currentColor" class="ColorScheme-Text" d="M9.366 2.085C9.773 2.973 10 3.96 10 5s-.227 2.027-.634 2.915C12.104 7.567 14 6.215 14 5s-1.896-2.567-4.634-2.915zM15 2.577c1.052-1.184 2.851-2.074 5-2.42v9.685c-2.149-.345-3.948-1.235-5-2.42C13.635 8.96 11.012 10 8 10c-4.418 0-8-2.239-8-5s3.582-5 8-5c3.012 0 5.635 1.04 7 2.577zM18 7V3c-1.15.23-2 1.038-2 2s.85 1.77 2 2zM2 5c0 1.27 2.077 2.696 5.032 2.958A4.973 4.973 0 0 0 8 5a4.973 4.973 0 0 0-.968-2.958C4.077 2.304 2 3.73 2 5zm3 1a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.9 KiB |
@@ -20,7 +20,7 @@ const links = config.social || [];
|
||||
return (
|
||||
<a href={href} rel="me" class="sl-flex">
|
||||
<span class="sr-only">{label}</span>
|
||||
{customIcon ? <span class={`social-icon ${customIcon}`} aria-hidden="true" /> : <Icon name={icon} />}
|
||||
{customIcon ? <span class={`social-icon ${customIcon}`} aria-hidden="true" /> : <Icon name={icon} size="1.5em" />}
|
||||
</a>
|
||||
);
|
||||
})}
|
||||
@@ -39,8 +39,12 @@ const links = config.social || [];
|
||||
color: var(--sl-color-white);
|
||||
}
|
||||
.social-icon {
|
||||
width: 1.5rem;
|
||||
height: 1.5rem;
|
||||
/* !important: the i-pajamas:* class comes from UnoCSS, which emits
|
||||
unlayered CSS. Unlayered rules always win over anything in a
|
||||
@layer regardless of specificity or source order, so a plain
|
||||
override here is silently ignored no matter how it's written. */
|
||||
width: 1.5rem !important;
|
||||
height: 1.5rem !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user