adjust for using a subdomain instead.
This commit is contained in:
1 parent
0703c7a1fc
commit
df49bb41b1
5 files changed
+14
-16
No files matched your search
@@ -4,7 +4,7 @@ Recovered threads and submerged records.
|
|||||||
|
|
||||||
An [Obsidian](https://obsidian.md) vault published with [Quartz 5](https://quartz.jzhao.xyz) to GitHub Pages. The site is a convenient host for Twitter/X threads and other material that is not reliably web-indexed.
|
An [Obsidian](https://obsidian.md) vault published with [Quartz 5](https://quartz.jzhao.xyz) to GitHub Pages. The site is a convenient host for Twitter/X threads and other material that is not reliably web-indexed.
|
||||||
|
|
||||||
Live (after Pages is enabled): https://ed94.github.io/Threadwell
|
Live (after Pages is enabled): [threadwell.edsabode.dev](https://threadwell.edsabode.dev)
|
||||||
|
|
||||||
## Post an issue for an inaccuracy
|
## Post an issue for an inaccuracy
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ Open http://localhost:8080
|
|||||||
1. Repo Settings → Pages → Source: **GitHub Actions**
|
1. Repo Settings → Pages → Source: **GitHub Actions**
|
||||||
2. If an old `github-pages` environment blocks the first deploy, delete it under Settings → Environments. The workflow recreates it.
|
2. If an old `github-pages` environment blocks the first deploy, delete it under Settings → Environments. The workflow recreates it.
|
||||||
3. Push `main`. CI clones Quartz into `site/`, applies `publish/quartz.config.yaml`, builds with `-d ..`.
|
3. Push `main`. CI clones Quartz into `site/`, applies `publish/quartz.config.yaml`, builds with `-d ..`.
|
||||||
4. Site: `https://ed94.github.io/Threadwell`
|
4. Site: `https://threadwell.edsabode.dev`
|
||||||
|
|
||||||
`baseUrl` lives in `publish/quartz.config.yaml`. Change it if you attach a custom domain.
|
`baseUrl` lives in `publish/quartz.config.yaml`. Change it if you attach a custom domain.
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ description: Recovered threads and submerged records.
|
|||||||
tags: []
|
tags: []
|
||||||
---
|
---
|
||||||
|
|
||||||
<script>if(location.pathname==="/Threadwell")location.replace("/Threadwell/")</script>
|
|
||||||
|
|
||||||
An archive of material that is not reliably web-indexed: Twitter/X threads, talks, and other primary sources, plus the notes distilled from them.
|
An archive of material that is not reliably web-indexed: Twitter/X threads, talks, and other primary sources, plus the notes distilled from them.
|
||||||
|
|
||||||
- [[archive/index|Archive]] — objective records of threads and other sources
|
- [[archive/index|Archive]] — objective records of threads and other sources
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"""Keep in-site links under the /Threadwell/ path.
|
"""Keep in-site links under the path from `baseUrl`.
|
||||||
|
|
||||||
Two stages:
|
Two stages:
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ def read_base_url() -> tuple[str, str]:
|
|||||||
if stripped.startswith("baseUrl:"):
|
if stripped.startswith("baseUrl:"):
|
||||||
host = stripped.split(":", 1)[1].strip()
|
host = stripped.split(":", 1)[1].strip()
|
||||||
break
|
break
|
||||||
if not host or "/" not in host:
|
if not host:
|
||||||
raise SystemExit(f"missing baseUrl in {OVERLAY}")
|
raise SystemExit(f"missing baseUrl in {OVERLAY}")
|
||||||
if host.startswith("http://"):
|
if host.startswith("http://"):
|
||||||
scheme = "http://"
|
scheme = "http://"
|
||||||
@@ -134,8 +134,8 @@ def patch_spa() -> bool:
|
|||||||
def page_dir_href(html_path: Path, public: Path, rel_base: str) -> str:
|
def page_dir_href(html_path: Path, public: Path, rel_base: str) -> str:
|
||||||
"""Return the path-absolute directory of a built HTML file.
|
"""Return the path-absolute directory of a built HTML file.
|
||||||
|
|
||||||
`public/archive/threads/h/slug/index.html` with rel_base `/Threadwell/`
|
`public/archive/threads/h/slug/index.html` with rel_base `/`
|
||||||
becomes `/Threadwell/archive/threads/h/slug/`.
|
becomes `/archive/threads/h/slug/`.
|
||||||
"""
|
"""
|
||||||
rel = html_path.relative_to(public).as_posix()
|
rel = html_path.relative_to(public).as_posix()
|
||||||
if rel.endswith("/index.html"):
|
if rel.endswith("/index.html"):
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ DEEP_SLUG: str = (
|
|||||||
"archive/threads/notimothylottes/2025-02-04-gelatinous-pixel-soup/index.html"
|
"archive/threads/notimothylottes/2025-02-04-gelatinous-pixel-soup/index.html"
|
||||||
)
|
)
|
||||||
PAGE_BASE: str = (
|
PAGE_BASE: str = (
|
||||||
"/Threadwell/archive/threads/notimothylottes/2025-02-04-gelatinous-pixel-soup/"
|
f"{apply.REL_BASE.rstrip('/')}/archive/threads/"
|
||||||
|
"notimothylottes/2025-02-04-gelatinous-pixel-soup/"
|
||||||
)
|
)
|
||||||
SAMPLE: str = (
|
SAMPLE: str = (
|
||||||
"<html><head></head><body>"
|
"<html><head></head><body>"
|
||||||
@@ -57,24 +58,24 @@ class ApplyBaseTests(unittest.TestCase):
|
|||||||
match = re.search(r'<base href="([^"]+)">', text)
|
match = re.search(r'<base href="([^"]+)">', text)
|
||||||
self.assertIsNotNone(match)
|
self.assertIsNotNone(match)
|
||||||
assert match is not None
|
assert match is not None
|
||||||
resolved = urljoin("https://edsabode.dev" + match.group(1), DEEP_REL)
|
resolved = urljoin(urljoin(apply.ABS_BASE, match.group(1)), DEEP_REL)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
resolved,
|
resolved,
|
||||||
"https://edsabode.dev/Threadwell/archive/threads/notimothylottes/",
|
urljoin(apply.ABS_BASE, "archive/threads/notimothylottes/"),
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_homepage_base_is_site_path(self) -> None:
|
def test_homepage_base_is_site_path(self) -> None:
|
||||||
path = _write_public(self.public, "index.html", SAMPLE)
|
path = _write_public(self.public, "index.html", SAMPLE)
|
||||||
apply.rewrite_html(path)
|
apply.rewrite_html(path)
|
||||||
text = path.read_text(encoding="utf-8")
|
text = path.read_text(encoding="utf-8")
|
||||||
self.assertIn('<base href="/Threadwell/">', text)
|
self.assertIn(f'<base href="{apply.REL_BASE}">', text)
|
||||||
|
|
||||||
def test_title_link_is_site_path_not_domain_root(self) -> None:
|
def test_title_link_is_site_path_not_domain_root(self) -> None:
|
||||||
path = _write_public(self.public, DEEP_SLUG, SAMPLE)
|
path = _write_public(self.public, DEEP_SLUG, SAMPLE)
|
||||||
apply.rewrite_html(path)
|
apply.rewrite_html(path)
|
||||||
text = path.read_text(encoding="utf-8")
|
text = path.read_text(encoding="utf-8")
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
'<h2 class="page-title"><a href="/Threadwell/">',
|
f'<h2 class="page-title"><a href="{apply.REL_BASE}">',
|
||||||
text,
|
text,
|
||||||
)
|
)
|
||||||
self.assertNotIn('href="https://edsabode.dev/Threadwell/"', text)
|
self.assertNotIn('href="https://edsabode.dev/Threadwell/"', text)
|
||||||
|
|||||||
@@ -6,9 +6,8 @@ configuration:
|
|||||||
enablePopovers: true
|
enablePopovers: true
|
||||||
analytics: null
|
analytics: null
|
||||||
locale: en-US
|
locale: en-US
|
||||||
# Site is served at /Threadwell/ (project Pages + custom domain).
|
# Site is served at the host root (project Pages custom domain).
|
||||||
# Without the path, ./archive/ from /Threadwell (no slash) becomes /archive/.
|
baseUrl: threadwell.edsabode.dev
|
||||||
baseUrl: edsabode.dev/Threadwell/
|
|
||||||
ignorePatterns:
|
ignorePatterns:
|
||||||
- site
|
- site
|
||||||
- .github
|
- .github
|
||||||
|
|||||||
Reference in new issue
Block a user