Update dynamic storybook templates to reflect new story requirements

This commit is contained in:
Gabe Kangas
2026-01-13 16:45:53 -08:00
parent d80a7246e1
commit 04b9ae755e
14 changed files with 71 additions and 64 deletions

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="owncast/Documentation/Design" parameters={{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}}/>

View File

@@ -1,28 +1,8 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="owncast/Documentation/Get Started with Owncast Development" parameters={{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}}/>
---
title: "How to work on Owncast"
description: The technical details for those wishing to take part in Owncast development.
tags:
[
development,
contribute,
open-source,
github,
git,
go,
react,
typescript,
contributing,
]
aliases: [/docs/building]
type: toc
toc: true
---
<meta http-equiv="refresh" content="0; url=https://docs.owncast.dev/development" />
<meta http-equiv="refresh" content="0; url=https://owncast.dev/owncast/Development-e9dda43167c048968a308c4dadac66c4" />
Click <a href="https://owncast.dev/owncast/Development-e9dda43167c048968a308c4dadac66c4">here</a> if you are not redirected.
Click <a href="https://docs.owncast.dev/development">here</a> if you are not redirected.

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story, IconGallery, IconItem } from '@storybook/addon-docs/blocks';
import { Meta, IconGallery, IconItem } from '@storybook/addon-docs/blocks';
import { Image, ImageRow } from './ImageAsset';
<Meta title="owncast/Frontend Assets/Emoji" parameters={{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}} />
@@ -147,6 +147,19 @@ import { Image, ImageRow } from './ImageAsset';
</IconGallery>
## Fediverse
<a href="img/emoji/fediverse/LICENSE.md" target="_blank">
LICENSE
</a>
<IconGallery>
<IconItem name="fedi_spin.gif">
<img src="img/emoji/fediverse/fedi_spin.gif" />
</IconItem>
</IconGallery>
## Mutant
<a href="img/emoji/mutant/LICENSE.md" target="_blank">

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story, IconItem, IconGallery } from '@storybook/addon-docs/blocks';
import { Meta, IconItem, IconGallery } from '@storybook/addon-docs/blocks';
<Meta title="owncast/Frontend Assets/Images" parameters={{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}} />

View File

@@ -1,35 +1,35 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
import { Meta } from '@storybook/addon-docs/blocks';
import { Image, ImageRow } from './ImageAsset';
<Meta
title="owncast/Project Assets/Logos &amp; Graphics"
parameters={{ chromatic: { disableSnapshot: true } }}
/>
<Meta title="owncast/Project Assets/Logos &amp; Graphics" parameters={{chromatic: { disableSnapshot: true }}} />
# Logos &amp; Graphics
<ImageRow images={[
{src: "project/header.png", name: "header.png"},
{src: "project/logo-glare-outlined.png", name: "logo-glare-outlined.png"},
{src: "project/logo-glare-vector.svg", name: "logo-glare-vector.svg"},
{src: "project/logo-noglare-vector.svg", name: "logo-noglare-vector.svg"},
{src: "project/logo-white.svg", name: "logo-white.svg"},
{src: "project/logo-black.svg", name: "logo-black.svg"},
<ImageRow images={[
{src: "project/apps-logo.png", name: "apps-logo.png"},
{src: "project/black-outlined.svg", name: "black-outlined.svg"},
{src: "project/header.png", name: "header.png"},
{src: "project/kiss-cut-stickers-5.5x5.5-default-60874a6c11849.png", name: "kiss-cut-stickers-5.5x5.5-default-60874a6c11849.png"},
{src: "project/logo-black.svg", name: "logo-black.svg"},
{src: "project/logo-glare-outlined.png", name: "logo-glare-outlined.png"},
{src: "project/logo-glare-vector.svg", name: "logo-glare-vector.svg"},
{src: "project/logo-noglare-vector.svg", name: "logo-noglare-vector.svg"},
{src: "project/logo-semisimple-black-outlined.svg", name: "logo-semisimple-black-outlined.svg"},
{src: "project/logo-semisimple-black.svg", name: "logo-semisimple-black.svg"},
{src: "project/logo-semisimple-white-outlined.svg", name: "logo-semisimple-white-outlined.svg"},
{src: "project/logo-semisimple-white.svg", name: "logo-semisimple-white.svg"},
{src: "project/logo-simple-black-outlined.svg", name: "logo-simple-black-outlined.svg"},
{src: "project/logo-simple-black.svg", name: "logo-simple-black.svg"},
{src: "project/logo-simple-white-outlined.svg", name: "logo-simple-white-outlined.svg"},
{src: "project/logo-simple-white.svg", name: "logo-simple-white.svg"},
{src: "project/logo-translucent-grey.svg", name: "logo-translucent-grey.svg"},
{src: "project/logo-white.svg", name: "logo-white.svg"},
{src: "project/owncast-background.png", name: "owncast-background.png"},
{src: "project/owncast-browser-mobile.png", name: "owncast-browser-mobile.png"},
{src: "project/owncast-directory.png", name: "owncast-directory.png"},
{src: "project/simple-black-outlined.svg", name: "simple-black-outlined.svg"},
{src: "project/simple-white-outlined.svg", name: "simple-white-outlined.svg"},
{src: "project/sticker-bigtech-alt.png", name: "sticker-bigtech-alt.png"},
{src: "project/tv-apps-icon.png", name: "tv-apps-icon.png"},
]}/>
{src: "project/logo-translucent-grey.svg", name: "logo-translucent-grey.svg"},
{src: "project/logo-semisimple-black.svg", name: "logo-semisimple-black.svg"},
{src: "project/logo-semisimple-white.svg", name: "logo-semisimple-white.svg"},
{src: "project/logo-simple-black.svg", name: "logo-simple-black.svg"},
{src: "project/logo-simple-white.svg", name: "logo-simple-white.svg"},
{src: "project/logo-semisimple-black-outlined.svg", name: "logo-semisimple-black-outlined.svg"},
{src: "project/logo-semisimple-white-outlined.svg", name: "logo-semisimple-white-outlined.svg"},
{src: "project/owncast-background.png", name: "owncast-background.png"},
{src: "project/owncast-browser-mobile.png", name: "owncast-browser-mobile.png"},
{src: "project/sticker-bigtech-alt.png", name: "sticker-bigtech-alt.png"},
{src: "project/apps-logo.png", name: "apps-logo.png"},
{src: "project/owncast-directory.png", name: "owncast-directory.png"},
{src: "project/tv-apps-icon.png", name: "tv-apps-icon.png"},
]}/>

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="owncast/Documentation/Product Definition" parameters={{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}}/>

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story, IconItem, IconGallery } from '@storybook/addon-docs/blocks';
import { Meta, IconItem, IconGallery } from '@storybook/addon-docs/blocks';
<Meta title="owncast/Frontend Assets/Social Platform Images" parameters={{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}} />
@@ -8,6 +8,9 @@ import { Canvas, Meta, Story, IconItem, IconGallery } from '@storybook/addon-doc
<IconItem name="bandcamp.svg">
<img src="img/platformlogos/bandcamp.svg" />
</IconItem>
<IconItem name="bluesky.svg">
<img src="img/platformlogos/bluesky.svg" />
</IconItem>
<IconItem name="default.svg">
<img src="img/platformlogos/default.svg" />
</IconItem>
@@ -71,6 +74,9 @@ import { Canvas, Meta, Story, IconItem, IconGallery } from '@storybook/addon-doc
<IconItem name="paypal.svg">
<img src="img/platformlogos/paypal.svg" />
</IconItem>
<IconItem name="peertube.svg">
<img src="img/platformlogos/peertube.svg" />
</IconItem>
<IconItem name="snapchat.svg">
<img src="img/platformlogos/snapchat.svg" />
</IconItem>

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
import { Meta } from '@storybook/addon-docs/blocks';
import { Image, ImageRow } from './ImageAsset';
<Meta title="owncast/Project Assets/T-Shirt" parameters={{chromatic: { disableSnapshot: true }}} />

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="owncast/Documentation/Building Frontend Components" parameters={{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}}/>

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="owncast/Documentation/{{title}}" parameters=\{{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}}/>

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story, IconGallery, IconItem } from '@storybook/addon-docs';
import { Meta, IconGallery, IconItem } from '@storybook/addon-docs/blocks';
import { Image, ImageRow } from './ImageAsset';
<Meta title="owncast/Frontend Assets/Emoji" parameters=\{{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}} />

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story, IconItem, IconGallery } from '@storybook/addon-docs';
import { Meta, IconItem, IconGallery } from '@storybook/addon-docs/blocks';
<Meta title="{{category}}" parameters=\{{previewTabs: { canvas: { hidden: true } }, chromatic: { disableSnapshot: true }}} />

View File

@@ -1,4 +1,4 @@
import { Canvas, Meta, Story } from '@storybook/addon-docs';
import { Meta } from '@storybook/addon-docs/blocks';
import { Image, ImageRow } from './ImageAsset';
<Meta title="{{category}}" parameters=\{{chromatic: { disableSnapshot: true }}} />

View File

@@ -4,6 +4,13 @@ import handlebars from 'handlebars';
const template = fs.readFileSync('./Document.template', 'utf8');
let t = handlebars.compile(template, { noEscape: true });
// Strip YAML front matter from markdown content
function stripFrontMatter(content) {
// Match YAML front matter: starts with ---, ends with ---
const frontMatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
return content.replace(frontMatterRegex, '');
}
const documents = [
{
title: 'Product Definition',
@@ -28,7 +35,8 @@ documents.forEach(doc => {
return;
}
const document = fs.readFileSync(doc.path, 'utf8');
let document = fs.readFileSync(doc.path, 'utf8');
document = stripFrontMatter(document);
const output = t({ name: doc.name, title: doc.title, content: document });
fs.writeFileSync(`../stories-category-doc-pages/${doc.name}.mdx`, output);
});