diff --git a/astro.config.ts b/astro.config.ts
index 2e22f5d..e14784d 100644
--- a/astro.config.ts
+++ b/astro.config.ts
@@ -40,6 +40,7 @@ export default defineConfig({
Head: "./src/components/NHead.astro",
PageTitle: "./src/components/PageTitle.astro",
PageFrame: "./src/components/PageFrame.astro",
+ Sidebar: "./src/components/Sidebar.astro"
},
plugins: [starlightImageZoom()],
tableOfContents: {
diff --git a/bin/og.sh b/bin/og.sh
new file mode 100755
index 0000000..78ff110
--- /dev/null
+++ b/bin/og.sh
@@ -0,0 +1,13 @@
+#! /bin/bash
+
+find dist -type f -name "*.html" -exec grep -H -o '"og:url" content="[^"]*"' {} \; | sed -e 's/:/ /' -e 's/=/ /' -e 's/"//g' -e 's|og:url content https://vtbag.dev||' > pages
+
+awk < pages '{print "test(\"" $2 "\", async ({ page }) => {await shoot(page, \"" $2 "\")});"; system("mkdir -p public/" $2);}' | sort
+
+awk < pages '{print $1, $2}' | while read -r file url ; do
+ cmd="s|||"
+ sed -i.bak -e "${cmd}" $file
+done
+
+
+
diff --git a/public/bag-og.png b/public/bag-og.png
new file mode 120000
index 0000000..f1e6648
--- /dev/null
+++ b/public/bag-og.png
@@ -0,0 +1 @@
+../src/assets/cards/bag.png
\ No newline at end of file
diff --git a/public/chamber-og.png b/public/chamber-og.png
new file mode 120000
index 0000000..18def45
--- /dev/null
+++ b/public/chamber-og.png
@@ -0,0 +1 @@
+../src/assets/cards/chamber.png
\ No newline at end of file
diff --git a/public/crossing-og.png b/public/crossing-og.png
new file mode 120000
index 0000000..142a88b
--- /dev/null
+++ b/public/crossing-og.png
@@ -0,0 +1 @@
+../src/assets/cards/crossing.png
\ No newline at end of file
diff --git a/public/shaft-og.png b/public/shaft-og.png
new file mode 120000
index 0000000..d2b71d8
--- /dev/null
+++ b/public/shaft-og.png
@@ -0,0 +1 @@
+../src/assets/cards/shaft.png
\ No newline at end of file
diff --git a/public/signal-og.png b/public/signal-og.png
new file mode 120000
index 0000000..ef604bc
--- /dev/null
+++ b/public/signal-og.png
@@ -0,0 +1 @@
+../src/assets/cards/signal.png
\ No newline at end of file
diff --git a/src/components/Bsky.astro b/src/components/Bsky.astro
index 20f6cfb..70295f0 100644
--- a/src/components/Bsky.astro
+++ b/src/components/Bsky.astro
@@ -1,9 +1,53 @@
---
-export interface Props {
- text: string;
-}
-const { text } = Astro.props;
+const choices = [
+ "Checking out [URL] and wanted to share ",
+ "On [URL] and thought I'd share ",
+ "Found something on [URL] ",
+ "Diving into [URL] I'm wondering ",
+ "Currently on [URL] and had to share my thoughts: ",
+ "Taking a look at [URL]. Let's talk about it. ",
+ "Here's what I think checking out [URL]: ",
+ "Just read [URL] and figured ",
+ "When exploring [URL], here's what comes to mind ",
+];
+const text =
+ choices[~~(Math.random() * choices.length)]?.replace(
+ "[URL]",
+ `vtbag.dev${Astro.url.pathname}`
+ ) ?? "";
const encodedText = encodeURIComponent(text);
---
-
+Discuss on 🦋
+
+
diff --git a/src/components/NHead.astro b/src/components/NHead.astro
index fc7159a..91930a7 100644
--- a/src/components/NHead.astro
+++ b/src/components/NHead.astro
@@ -3,11 +3,14 @@ import type { Props } from "@astrojs/starlight/props";
import StarlightHead from "@astrojs/starlight/components/Head.astro";
import turnSignal from "@vtbag/turn-signal?url";
import camShaft from "@vtbag/cam-shaft?url";
+import PagefindToTextFragments from "./PagefindToTextFragments.astro";
import "./vtbag-bar.css";
---
+
+
{ // @ts-ignore
}
diff --git a/src/components/PagefindToTextFragments.astro b/src/components/PagefindToTextFragments.astro
new file mode 100644
index 0000000..14b7509
--- /dev/null
+++ b/src/components/PagefindToTextFragments.astro
@@ -0,0 +1,80 @@
+---
+
+---
+
+
+
+
diff --git a/src/components/Sidebar.astro b/src/components/Sidebar.astro
new file mode 100644
index 0000000..01960bf
--- /dev/null
+++ b/src/components/Sidebar.astro
@@ -0,0 +1,8 @@
+---
+import type { Props } from '@astrojs/starlight/props';
+import Default from '@astrojs/starlight/components/Sidebar.astro';
+import Bsky from "./Bsky.astro";
+---
+
+{Astro.url.pathname !== "/" && }
+
\ No newline at end of file
diff --git a/src/content/docs/basics/api.mdx b/src/content/docs/basics/api.mdx
index 0ea8116..294e05e 100644
--- a/src/content/docs/basics/api.mdx
+++ b/src/content/docs/basics/api.mdx
@@ -12,6 +12,7 @@ I made a start with …
While I add more pages, I'm also happy that I can offer some links to previous work on the `astro-vtbot` package[^1].
+* [References](https://events-3bg.pages.dev/jotter/api/references/) to the specs and interesting articles beyond
* An [Overview](https://events-3bg.pages.dev/jotter/api/) and a [Details](https://events-3bg.pages.dev/jotter/api/details/) article on the API
* An in depth [same-document example](https://events-3bg.pages.dev/jotter/api/example/)
diff --git a/src/content/docs/index.mdx b/src/content/docs/index.mdx
index 32724a9..6a4437c 100644
--- a/src/content/docs/index.mdx
+++ b/src/content/docs/index.mdx
@@ -47,19 +47,20 @@ import Bsky from "../../components/Bsky.astro";
}
`}
-
If you're enjoying this site, please follow me and The Bag on 🦋 Bluesky!
And maybe you want to share something with your followers🦋 about this site?
+
Spark up a discussion on 🦋 Bluesky! Hit the buttons to share your thoughts and please stay connected with
+The Bag and me for all the latest!
-
-
-
-
-
- id:
-
-
-
- identifier
-
-
-
-
- space
-
-
-
- prop:
-
-
- class:
-
-
- style:
-
-
- anim:
-
-
-
- name
-
-
-
-
-
+
+
+
+
+
+
+
+ id:
+
+
+
+
+
+ identifier
+
+
+
+
+
+
+ space
+
+
+
+
+
+ prop:
+
+
+
+
+ class:
+
+
+
+
+ style:
+
+
+
+
+ anim:
+
+
+
+
+
+ name
+
+
+
+
+
+
-
#### id
+
The `id` expression is used to link elements between the old and new pages, allowing state to be transferred from the current HTML element to the target element with the same id on the subsequent page. If an id value appears exclusively on either the old or the new page, no state transfer occurs. It's important that id values remain unique on their respective pages. If the current HTML element already has an `id` attribute, the id expression within the `data-vtbag-x` string can be omitted.
#### prop
-The `prop` expression identifies a property of the current HTML element. The value of this property is then transferred to the corresponding property of the target element on the next page.
-
+The `prop` expression identifies a property of the current HTML element. The value of this property is then transferred to the corresponding property of the target element on the next page.
#### class
-The `class` expression specifies an entry in the current HTML element's `classList` property. If the class is present on the current element, it will be added to the target element's class list. Conversely, if the class is absent on the current element, it will be removed from the target element's class list.
+The `class` expression specifies an entry in the current HTML element's `classList` property. If the class is present on the current element, it will be added to the target element's class list. Conversely, if the class is absent on the current element, it will be removed from the target element's class list.
#### style
+
The style expression identifies an entry of the current HTML element's `style` property. The value of this entry is transferred to the `style` property off the target element on the next page. This does not give access to CSS properties only available in computed styles.
#### anim
+
The anim expression references a CSSAnimation of the current HTML element. If the target element on the next page has an animation with the same `animationName`, the current playback time is transferred. Note these current restrictions of the Element Crossing: The `animationName` values must be unique per HTML element, and only CSSAnimations are supported, not CSSTransitions.
The `anim` expression can also be used to persist SVG animation states. Using the special `anim:/svg` expression, it transfers the current animation playback time to the target element. The expression needs to be declared on the `