<rss xmlns:source="http://source.scripting.com/" version="2.0">
  <channel>
    <title>The Lab</title>
    <link>https://ttscoff.micro.blog/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Sat, 12 Sep 2026 09:37:45 -0500</lastBuildDate>
    <item>
      <title></title>
      <link>https://ttscoff.micro.blog/2026/09/12/this-is-an-example-of.html</link>
      <pubDate>Sat, 12 Sep 2026 09:37:45 -0500</pubDate>
      
      <guid>http://ttscoff.micro.blog/2026/09/12/this-is-an-example-of.html</guid>
      <description>&lt;p&gt;This is an example of what a post can look like when shared on social media. Thanks to the new Open Graph generator, links get a nice &amp;ldquo;card&amp;rdquo; preview with the headline of the post in the image, and a summary in the description.&lt;/p&gt;
&lt;p&gt;Marked Share is meant for, well, sharing. So making your documents look as inviting as possible is an important part of that. Hopefully these new features will make both of us look good!&lt;/p&gt;
</description>
      <source:markdown>This is an example of what a post can look like when shared on social media. Thanks to the new Open Graph generator, links get a nice &#34;card&#34; preview with the headline of the post in the image, and a summary in the description.

Marked Share is meant for, well, sharing. So making your documents look as inviting as possible is an important part of that. Hopefully these new features will make both of us look good!
</source:markdown>
    </item>
    
    <item>
      <title>Development log: rich media, Apex fixes, and highlight cards</title>
      <link>https://ttscoff.micro.blog/2026/09/09/development-log-rich-media-apex.html</link>
      <pubDate>Wed, 09 Sep 2026 11:11:39 -0500</pubDate>
      
      <guid>http://ttscoff.micro.blog/2026/09/09/development-log-rich-media-apex.html</guid>
      <description>&lt;p&gt;A short tour of what just landed on Marked Share — with live examples in this post so you can see the plumbing instead of only reading about it.&lt;/p&gt;
&lt;h2 id=&#34;apex-1020&#34;&gt;Apex 1.0.20&lt;/h2&gt;
&lt;p&gt;Share renders with Apex. &lt;strong&gt;1.0.20&lt;/strong&gt; fixes two bugs that showed up on real documents:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Mermaid&lt;/strong&gt; fences with edge labels like &lt;code&gt;A --&amp;gt;|Yes| B&lt;/code&gt; no longer get a fake table separator injected into the diagram source.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Definition lists&lt;/strong&gt; next to fences and callouts keep their order — prose after a DL stays before the diagram, not after it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Older shares that were stored with broken HTML can heal on open via on-read refresh.&lt;/p&gt;
&lt;h2 id=&#34;definition-lists&#34;&gt;Definition lists&lt;/h2&gt;
&lt;p&gt;MultiMarkdown / Kramdown-style definition lists work as styled &lt;code&gt;&amp;lt;dl&amp;gt;&lt;/code&gt; blocks again:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Term&lt;/dt&gt;
&lt;dd&gt;The thing you are defining.&lt;/dd&gt;
&lt;dt&gt;Mermaid&lt;/dt&gt;
&lt;dd&gt;Diagrams from fenced &lt;code&gt;mermaid&lt;/code&gt; blocks, drawn in the browser.&lt;/dd&gt;
&lt;dt&gt;SVG&lt;/dt&gt;
&lt;dd&gt;Inline vector markup that survives sanitization.&lt;/dd&gt;
&lt;dt&gt;Math&lt;/dt&gt;
&lt;dd&gt;TeX hooks from Apex (&lt;code&gt;$…$&lt;/code&gt; / &lt;code&gt;$$…$$&lt;/code&gt;), typeset when MathJax is enabled on the page.&lt;/dd&gt;
&lt;dt&gt;Another term&lt;/dt&gt;
&lt;dd&gt;A second definition to show stacking.&lt;/dd&gt;
&lt;dd&gt;Yes, multiple definitions per term are fine.&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2 id=&#34;mermaid&#34;&gt;Mermaid&lt;/h2&gt;
&lt;p&gt;Labeled edges used to corrupt the fence. This graph should render cleanly:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-mermaid&#34; data-lang=&#34;mermaid&#34;&gt;graph TD
  Publish[Publish Markdown] --&amp;gt; Apex[Apex HTML]
  Apex --&amp;gt;|Yes| Mermaid[Client Mermaid]
  Apex --&amp;gt;|No| Plain[Plain pre block]
  Mermaid --&amp;gt; Share[Share page]
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;svg&#34;&gt;SVG&lt;/h2&gt;
&lt;p&gt;Inline SVG is allowed through sanitization (with dangerous bits scrubbed). A simple mark:&lt;/p&gt;
&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 120 48&#34; width=&#34;120&#34; height=&#34;48&#34; role=&#34;img&#34; aria-label=&#34;Marked Share mark&#34;&gt;
  &lt;rect x=&#34;1&#34; y=&#34;1&#34; width=&#34;118&#34; height=&#34;46&#34; rx=&#34;8&#34; fill=&#34;none&#34; stroke=&#34;#261B23&#34; stroke-width=&#34;2&#34;/&gt;
  &lt;circle cx=&#34;28&#34; cy=&#34;24&#34; r=&#34;10&#34; fill=&#34;#E07A5F&#34;/&gt;
  &lt;circle cx=&#34;52&#34; cy=&#34;24&#34; r=&#34;10&#34; fill=&#34;#6B2D7B&#34;/&gt;
  &lt;text x=&#34;72&#34; y=&#34;29&#34; font-family=&#34;system-ui, sans-serif&#34; font-size=&#34;14&#34; fill=&#34;#261B23&#34;&gt;MS&lt;/text&gt;
&lt;/svg&gt;
&lt;h2 id=&#34;math&#34;&gt;Math&lt;/h2&gt;
&lt;p&gt;Apex emits math hooks for inline and display TeX. With MathJax on the document page, these typeset; without it you still see the TeX source rather than nothing.&lt;/p&gt;
&lt;p&gt;Inline: the identity $e^{i\pi} + 1 = 0$ still hits.&lt;/p&gt;
&lt;p&gt;Display:&lt;/p&gt;
&lt;p&gt;$$
\int_{-\infty}^{\infty} e^{-x^{2}},dx = \sqrt{\pi}
$$&lt;/p&gt;
&lt;p&gt;Fenced math blocks are supported the same way Mermaid is (source in a &lt;code&gt;math&lt;/code&gt; fence until the client runtime picks them up):&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-math&#34; data-lang=&#34;math&#34;&gt;\sum_{n=1}^{\infty} \frac{1}{n^{2}} = \frac{\pi^{2}}{6}
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;callouts&#34;&gt;Callouts&lt;/h2&gt;
&lt;p&gt;GitHub-style callouts are enabled in the renderer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[!NOTE]
Front matter (YAML / MMD / Pandoc) is stripped from the &lt;strong&gt;HTML&lt;/strong&gt; view only. Raw download and TextBundle still include your source.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;[!TIP]
A paragraph that starts with &lt;code&gt;Note:&lt;/code&gt; under an H1 is &lt;strong&gt;not&lt;/strong&gt; MultiMarkdown metadata anymore — it stays on the page.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;front-matter-and-the-word-bug&#34;&gt;Front matter and the Word: bug&lt;/h2&gt;
&lt;p&gt;Two related fixes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Leading YAML no longer appears as a thematic break and key/value soup on the share page.&lt;/li&gt;
&lt;li&gt;Undelimited MultiMarkdown metadata stripping only treats conventional keys (&lt;code&gt;Title&lt;/code&gt;, &lt;code&gt;Author&lt;/code&gt;, …) as metadata. Prose like &lt;code&gt;Note: …&lt;/code&gt; or &lt;code&gt;First span: …&lt;/code&gt; under a heading stays visible. Existing shares that lost an H1 + colon paragraph can refresh on read.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;highlight-share-cards&#34;&gt;Highlight share cards&lt;/h2&gt;
&lt;p&gt;Click a text highlight → share icon on the floating bar → live PNG preview with &lt;strong&gt;Download&lt;/strong&gt; and &lt;strong&gt;Copy image&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The card is square (1080×1080): document title, gradient quote (coral → purple), attribution. Handy for pasting into Slack, Notes, or social without screenshot gymnastics. Open Graph images for &lt;code&gt;?hl=&lt;/code&gt; links are still a follow-up.&lt;/p&gt;
&lt;h2 id=&#34;what-else&#34;&gt;What else&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mermaid and callout/SVG styles on document and blog surfaces&lt;/li&gt;
&lt;li&gt;On-read HTML refresh when stored bodies are missing rich media or were corrupted by older Apex&lt;/li&gt;
&lt;li&gt;rubyzip bump for a known CVE&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If something still looks wrong on an old link, open it once (refresh heals many cases) or republish. Bugs with a Raw vs rendered diff are especially helpful on &lt;a href=&#34;https://support.markedapp.com&#34;&gt;support&lt;/a&gt;.&lt;/p&gt;
</description>
      <source:markdown>A short tour of what just landed on Marked Share — with live examples in this post so you can see the plumbing instead of only reading about it.

## Apex 1.0.20

Share renders with Apex. **1.0.20** fixes two bugs that showed up on real documents:

1. **Mermaid** fences with edge labels like `A --&gt;|Yes| B` no longer get a fake table separator injected into the diagram source.
2. **Definition lists** next to fences and callouts keep their order — prose after a DL stays before the diagram, not after it.

Older shares that were stored with broken HTML can heal on open via on-read refresh.

## Definition lists

MultiMarkdown / Kramdown-style definition lists work as styled `&lt;dl&gt;` blocks again:

Term
: The thing you are defining.

Mermaid
: Diagrams from fenced `mermaid` blocks, drawn in the browser.

SVG
: Inline vector markup that survives sanitization.

Math
: TeX hooks from Apex (`$…$` / `$$…$$`), typeset when MathJax is enabled on the page.

Another term
: A second definition to show stacking.
: Yes, multiple definitions per term are fine.

## Mermaid

Labeled edges used to corrupt the fence. This graph should render cleanly:

```mermaid
graph TD
  Publish[Publish Markdown] --&gt; Apex[Apex HTML]
  Apex --&gt;|Yes| Mermaid[Client Mermaid]
  Apex --&gt;|No| Plain[Plain pre block]
  Mermaid --&gt; Share[Share page]
```

## SVG

Inline SVG is allowed through sanitization (with dangerous bits scrubbed). A simple mark:

&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 120 48&#34; width=&#34;120&#34; height=&#34;48&#34; role=&#34;img&#34; aria-label=&#34;Marked Share mark&#34;&gt;
  &lt;rect x=&#34;1&#34; y=&#34;1&#34; width=&#34;118&#34; height=&#34;46&#34; rx=&#34;8&#34; fill=&#34;none&#34; stroke=&#34;#261B23&#34; stroke-width=&#34;2&#34;/&gt;
  &lt;circle cx=&#34;28&#34; cy=&#34;24&#34; r=&#34;10&#34; fill=&#34;#E07A5F&#34;/&gt;
  &lt;circle cx=&#34;52&#34; cy=&#34;24&#34; r=&#34;10&#34; fill=&#34;#6B2D7B&#34;/&gt;
  &lt;text x=&#34;72&#34; y=&#34;29&#34; font-family=&#34;system-ui, sans-serif&#34; font-size=&#34;14&#34; fill=&#34;#261B23&#34;&gt;MS&lt;/text&gt;
&lt;/svg&gt;

## Math

Apex emits math hooks for inline and display TeX. With MathJax on the document page, these typeset; without it you still see the TeX source rather than nothing.

Inline: the identity $e^{i\pi} + 1 = 0$ still hits.

Display:

$$
\int_{-\infty}^{\infty} e^{-x^{2}}\,dx = \sqrt{\pi}
$$

Fenced math blocks are supported the same way Mermaid is (source in a `math` fence until the client runtime picks them up):

```math
\sum_{n=1}^{\infty} \frac{1}{n^{2}} = \frac{\pi^{2}}{6}
```

## Callouts

GitHub-style callouts are enabled in the renderer:

&gt; [!NOTE]
&gt; Front matter (YAML / MMD / Pandoc) is stripped from the **HTML** view only. Raw download and TextBundle still include your source.

&gt; [!TIP]
&gt; A paragraph that starts with `Note:` under an H1 is **not** MultiMarkdown metadata anymore — it stays on the page.

## Front matter and the Word: bug

Two related fixes:

- Leading YAML no longer appears as a thematic break and key/value soup on the share page.
- Undelimited MultiMarkdown metadata stripping only treats conventional keys (`Title`, `Author`, …) as metadata. Prose like `Note: …` or `First span: …` under a heading stays visible. Existing shares that lost an H1 + colon paragraph can refresh on read.

## Highlight share cards

Click a text highlight → share icon on the floating bar → live PNG preview with **Download** and **Copy image**.

The card is square (1080×1080): document title, gradient quote (coral → purple), attribution. Handy for pasting into Slack, Notes, or social without screenshot gymnastics. Open Graph images for `?hl=` links are still a follow-up.

## What else

- Mermaid and callout/SVG styles on document and blog surfaces
- On-read HTML refresh when stored bodies are missing rich media or were corrupted by older Apex
- rubyzip bump for a known CVE

If something still looks wrong on an old link, open it once (refresh heals many cases) or republish. Bugs with a Raw vs rendered diff are especially helpful on [support](https://support.markedapp.com).
</source:markdown>
    </item>
    
    <item>
      <title>Third Test Post</title>
      <link>https://ttscoff.micro.blog/2026/01/31/this-is-a-weird-one.html</link>
      <pubDate>Sat, 31 Jan 2026 11:05:58 -0500</pubDate>
      
      <guid>http://ttscoff.micro.blog/2026/01/31/this-is-a-weird-one.html</guid>
      <description>&lt;p&gt;This is a weird one. Where do the titles come from?&lt;/p&gt;
</description>
      <source:markdown>This is a weird one. Where do the titles come from?
</source:markdown>
    </item>
    
    <item>
      <title>Test Post 2</title>
      <link>https://ttscoff.micro.blog/2026/01/31/test-post.html</link>
      <pubDate>Sat, 31 Jan 2026 09:45:43 -0500</pubDate>
      
      <guid>http://ttscoff.micro.blog/2026/01/31/test-post.html</guid>
      <description>&lt;p&gt;How about one with categories? Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;/p&gt;
&lt;img src=&#34;https://ttscoff.micro.blog/uploads/2026/blogbook-ios-default-256x2561x.png&#34; width=&#34;256&#34; height=&#34;256&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>How about one with categories? Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.



&lt;img src=&#34;https://ttscoff.micro.blog/uploads/2026/blogbook-ios-default-256x2561x.png&#34; width=&#34;256&#34; height=&#34;256&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://ttscoff.micro.blog/2026/01/31/this-is-just-a-test.html</link>
      <pubDate>Sat, 31 Jan 2026 09:42:29 -0500</pubDate>
      
      <guid>http://ttscoff.micro.blog/2026/01/31/this-is-just-a-test.html</guid>
      <description>&lt;p&gt;This is just a test post. I want to add Micro.blog support to &lt;a href=&#34;https://blogbook.my&#34;&gt;BlogBook&lt;/a&gt;, so I need some posts to test with.&lt;/p&gt;
</description>
      <source:markdown>This is just a test post. I want to add Micro.blog support to [BlogBook](https://blogbook.my), so I need some posts to test with.
</source:markdown>
    </item>
    
  </channel>
</rss>
