Commit Graph

99 Commits

Author SHA1 Message Date
streamdown-github-app[bot] b7f4b0cb0b Version Packages (#232)
Co-authored-by: streamdown-bot[bot] <streamdown-bot[bot]@users.noreply.github.com>
2025-11-21 20:04:56 -08:00
Hayden Bleasel 093cd5cb76 Create lemon-parents-peel.md 2025-11-21 15:44:57 -08:00
Hayden Bleasel 090c82e39a Create quick-pans-juggle.md 2025-11-21 15:17:50 -08:00
Hayden Bleasel 606209d10c Fix Code Blocks (#240)
* Display fallback html

* Rebuild code blocks on codeToTokens

* Remove unused code

* Fix flashing during re-rendering

* Remove useRef

* Switch back to JS Regex engine

* Create single highlighter

* Create container

* Restore singleton cache for highlighters

* Update static.tsx

* Fix tests

* Reapply memoization, consolidate effects, etc.

* Remove Static Code Block

* Run Ultracite

* Fix rendering flashes

* Add token highlight cache

* Update settings.json

* Create flat-gifts-fix.md
2025-11-21 14:55:50 -08:00
Hayden Bleasel 4e12df6209 Performance optimizations (#237)
* Merge contexts

* Fix unit tests

* Enhanced memoization

* Add caching layer to markdown parser

* Fix TS / lint errors

* Fix act() warnings in tests

* Add LRU cache to Markdown processor

* Syntax HighlightManager optimizations

* Switch to single highlighting instance

* Update global.css

* Shift light/dark mode syntax highlighting to CSS

* Fix Fumadocs affecting code blocks

* Fix code block static mode

* Run Ultracite

* Fix tests

* Ultracite fixes

* Cleanup code block implementation

* Update packages/streamdown/index.tsx

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* Create every-cats-clean.md

---------

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
2025-11-20 15:17:41 -08:00
Hayden Bleasel 6f19ee03e7 Remove dependency on react-markdown 2025-11-19 18:31:53 -08:00
Hayden Bleasel 872da1afd1 197 feature request custom error component for mermaid rendering errors (#235)
* Add MermaidErrorComponent support

* Update docs

* Merge mermaid props

* Merge mermaid contexts

* Run Ultracite

* Update index.tsx

* Create favicon.ico

* Update cjk-support.mdx

* Create plain-singers-clean.md

* Update mermaid.tsx
2025-11-19 14:52:29 -08:00
Hayden Bleasel b55cbdc954 Fix security issues, improve performance (#233)
* Resolves https://github.com/vercel/streamdown/security/code-scanning/9

* Resolves https://github.com/vercel/streamdown/security/code-scanning/7

* Resolves https://github.com/vercel/streamdown/security/code-scanning/6

* Resolves https://github.com/vercel/streamdown/security/code-scanning/3

* Resolves https://github.com/vercel/streamdown/security/code-scanning/1

* Bump deps, resolves https://github.com/vercel/streamdown/security/dependabot/10

* Run Ultracite

* Create major-spoons-do.md

* Update parse-incomplete-markdown.ts

* Update packages/streamdown/lib/parse-incomplete-markdown.ts

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* Update parse-incomplete-markdown.test.ts

---------

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
2025-11-19 13:57:04 -08:00
Hayden Bleasel 936af5b40e Create sharp-ads-give.md 2025-11-19 09:30:06 -08:00
Hazem Abdennadher 22cbaeb055 feat: add support for exporting mermaid diagram to svg and png (#229)
* feat: add support for exporting mermaid diagram to svg and png

Implemented the ability to export Mermaid diagrams in SVG, PNG, and MMD formats. Updated the Mermaid component to include a download dropdown for selecting the desired format. Enhanced tests to cover the new download features.

* fix: trigger download callback after exporting diagram in PNG format
2025-11-19 09:28:36 -08:00
Hayden Bleasel 28ab339d18 Create lucky-cobras-fold.md 2025-11-19 09:27:21 -08:00
Hayden Bleasel 52db013a3b Static Mode (#231)
* Implement mode

* Add tests

* Create static test page

* Split up code block files

* Load static / streaming code block dynamically

* Extract highlighting from highlight manager

* Remove abort controller from static

* Add static fallback

* Split header

* Update docs

* Create soft-dragons-type.md

* Fix tests
2025-11-19 08:57:58 -08:00
streamdown-github-app[bot] a76c45052e Version Packages (#224)
Co-authored-by: streamdown-bot[bot] <streamdown-bot[bot]@users.noreply.github.com>
2025-11-16 09:23:56 -08:00
Hayden Bleasel 40fe4c61f0 For #222 2025-11-16 09:21:05 -08:00
Hayden Bleasel 19da935e94 Resolves #223 2025-11-16 09:07:30 -08:00
streamdown-github-app[bot] d4fb21f42b Version Packages (#181)
Co-authored-by: streamdown-bot[bot] <streamdown-bot[bot]@users.noreply.github.com>
2025-11-15 22:32:25 -08:00
Hayden Bleasel 7041497ff4 Resolves #189 2025-11-15 21:58:59 -08:00
Hayden Bleasel f7568e5002 Resolves #192 2025-11-15 21:40:08 -08:00
Hayden Bleasel f941fd6f53 Resolves #185 2025-11-15 21:20:02 -08:00
Hayden Bleasel ed0154a7fd Resolves #214 2025-11-15 21:02:03 -08:00
David Roeca 2ebd8868d6 fix: code block streaming performance (#205)
* Add tests for large code block

* Code block optimizations

* Update biome.jsonc

* Update good-wolves-greet.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-11-15 20:51:18 -08:00
Hayden Bleasel 75e9d401b9 Linting / Formatting / Documentation fixes (#220)
* Bump deps

* Update biome.jsonc

* Remove duplicate Biome config

* Run Ultracite

* Resolves #217

* For #198

* Update biome.jsonc

* For #198

* For #198

* For #198

* For #198

* Update node-attribute-removed.test.tsx

* Resolves #198

* Update README.md

* Add changeset files

* Create tidy-lemons-win.md
2025-11-15 20:23:36 -08:00
Francisco Moretti 5363a514c7 Stabilize Streamdown contexts (#207)
* make contexts stable

* Create cold-zoos-design.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-11-12 22:52:46 -08:00
Francisco Moretti f4c9c1e82a Add block-level customization hooks (#208)
* A few changes to make streamdown more flexible

* Create every-poems-chew.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-11-12 22:52:07 -08:00
Alex Page 5c4ad8bedb Fullscreen mermaid (#212)
* Fullscreen for Mermaid Diagrams

* changeset

* Implement reference counting for body scroll lock in fullscreen
2025-11-12 22:49:31 -08:00
Brendan Dash e17bf80015 fix: add overflow-hidden (#215)
* fix: add overflow-hidden

* chore: add changeset
2025-11-12 22:40:10 -08:00
Brendan Dash fbdec4dc6c fix: update border styling for code blocks (#216)
* fix: update border styling for code blocks

* chore: add changeset
2025-11-12 22:39:36 -08:00
2hu 8a3fc5acff feat: Dynamically load katex.min.css (#187) 2025-10-28 21:34:49 -07:00
2hu 171a824004 fix: base64 images (#188) 2025-10-28 21:33:21 -07:00
streamdown-github-app[bot] dc5bd12e57 Version Packages (#166)
Co-authored-by: streamdown-bot[bot] <streamdown-bot[bot]@users.noreply.github.com>
2025-10-10 11:32:45 -07:00
Hayden Bleasel 0bfca42774 1.4 fixes (#180)
* Run Ultracite

* Remove test logging

* Fix props passthrough

* Update index.tsx

* Remove bad tests

* Improve mermaid tests

* Create funny-moments-jump.md
2025-10-10 11:28:45 -07:00
Hayden Bleasel 3c780b4827 fix: footnotes are blocked by default (#179)
* Update rehype-harden

* Fix footnotes rendering

* Update footnotes.test.tsx

* Create tender-readers-shave.md
2025-10-10 11:04:50 -07:00
Hayden Bleasel 699622fd51 Allow base64 images (#175)
* Update index.tsx

* Create ripe-stars-jam.md

* Bump rehype-harden

* Update pnpm-lock.yaml
2025-10-10 10:11:09 -07:00
Hayden Bleasel 6c0672b1e9 Fix footnotes (#174)
* Fix footnotes in markdown parsing

* Create footnotes.test.tsx

* Create light-beers-peel.md

* Bump rehype-harden

* Update gfm.tsx

* Update parse-blocks.tsx

* Update pnpm-lock.yaml
2025-10-10 10:08:51 -07:00
Hayden Bleasel f5d6cd6668 Remove options props, make plugins fully customizable (#177)
* Remove options props, make plugins fully customizable

* Update docs

* Create puny-turkeys-press.md

* Remove harden options

* Make defaults easily overridable

* Simplify keys

* Update hardened.tsx

* Remove unused unit tests

* Add missing props
2025-10-10 09:39:40 -07:00
Hayden Bleasel 21a7031bd5 fix: streamdown doesnt render background for code blocks (#176)
* Restore original themed backgrounds

* Create stupid-plants-cross.md
2025-10-09 19:17:53 -07:00
Hayden Bleasel d0444a38f2 Add isStreaming prop (#173)
* Add support for isAnimating

* Update props

* Update code-block.test.tsx

* Update useChat implementation code

* Create all-queens-follow.md
2025-10-09 18:26:51 -07:00
Hayden Bleasel 04f6f3aaba fix: hydration error while rendering image (#172)
* Extract images from paragraph tags

* Create image-hydration.test.tsx

* Create tangy-taxis-hammer.md

* Fix linting and formatting commands
2025-10-09 17:22:40 -07:00
Hayden Bleasel 7cd5048e21 Add support for remarkMathOptions and remarkGfmOptions props (#171)
* Add support for remarkMathOptions and remarkGfmOptions props

* Create remark-options.test.tsx

* Create odd-falcons-heal.md

* Add to website
2025-10-09 17:15:45 -07:00
Hayden Bleasel 6c6f507e21 Replace harden-react-markdown with rehype-harden (#170)
* replace harden-react-markdown with rehype-harden

* Improve docs

* Add hardenOptions prop to allow for full props

* Improve unit tests for hardenOptions

* Create cute-deer-cut.md

* Update hardened.tsx
2025-10-09 17:02:04 -07:00
Hayden Bleasel 20ca02db5c 160 email addresses rendered as blocked link (#169)
* Update harden-react-markdown and add unit tests

* Create three-candles-create.md
2025-10-09 16:05:53 -07:00
Hayden Bleasel 239e41db4d fix: Block-level Markdown escapes <details> containers when paragraphs/blank lines are present (#168)
* fix block-level markdown escaping details container

* Create new-pants-leave.md
2025-10-09 15:24:27 -07:00
Hayden Bleasel c68ebd6a33 165 support incomplete url parsing for links (#167)
* Replace the URLs of unterminated links to prevent clicks

* Create full-mirrors-lead.md
2025-10-09 15:18:44 -07:00
Jamie Taylor 38ad1ed7fe Fix: issue with node object being passed to HTML element attributes (#161)
* updated to use htmlProps instead of props & created test for elements

* fix: fixed node objects being passed as HTML attributes.

* fix: fixed node objects being passed as HTML attributes

* Revert name change

* Update slimy-groups-love.md

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-10-09 14:05:15 -07:00
Robert Sun 7a7464fe30 fix: pass in remarkRehypeOptions (#148)
* fix: pass in remarkRehypeOptions

* changeset
2025-10-09 13:58:02 -07:00
streamdown-github-app[bot] c0d45ca15a Version Packages (#126)
Co-authored-by: streamdown-bot[bot] <streamdown-bot[bot]@users.noreply.github.com>
2025-09-15 21:02:49 -07:00
Hayden Bleasel f34c039d40 fix: 121 br in markdown tables from gpt oss seem encoded or printed to output (#146)
* Add rehype-raw to allow HTML elements in markdown

* Create angry-crews-beg.md
2025-09-15 20:47:51 -07:00
Hayden Bleasel 0ebf67db1d 1.3 changes (#145)
* Bump deps

* Run Ultracite

* Update code-block.tsx

* Update parse-blocks.tsx

* Create great-pants-trade.md
2025-09-15 20:35:31 -07:00
Francisco Moretti 64b5afa904 feat: memoize components to prevent child re-renders (#45)
* chore(markdown): memoize components to prevent child re-renders

This PR memoizes Markdown components to prevent re-renders in children. I'll include a video.

Start as draft.

Note: This fix doesn't solve `anchor` because of how `hardern-react-markdown` works.

* changeset

* Draft section

* Revert "Draft section"

This reverts commit df4c3aca05.

* fix: remove unused 'node' prop from MemoLi component

* fix imports

* feat: add ImageComponent to components export and update memoization for Markdown elements

- Introduced `ImageComponent` for handling images in Markdown.
- Updated memoization for various Markdown elements to improve performance.
- Cleaned up import statements for consistency.

* fix: update image component to use MemoImg for improved performance

- Replaced `ImageComponent` with `MemoImg` in the components export.
- This change enhances memoization for image handling in Markdown.

* Change streamdown version and memoize components

Updated streamdown version from patch to minor and added feature to memoize components.

---------

Co-authored-by: Hayden Bleasel <hello@haydenbleasel.com>
2025-09-15 13:13:40 -07:00
2hu 20330ba822 feat: add table text/html copy (#130) 2025-09-15 12:12:40 -07:00