Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
9e81930
add MarkdownRenderable with remark-based table alignment
remorses Dec 19, 2025
5380957
use marked
remorses Dec 19, 2025
34ad30c
Create markdown-demo.ts
remorses Dec 19, 2025
06d8d5e
use marked for real
remorses Dec 19, 2025
13079d6
Update markdown-demo.ts
remorses Dec 19, 2025
cfd1fad
render markdown tables using flexbox columns with box borders
remorses Dec 19, 2025
629dfd4
fix conceal toggle by including it in cache key
remorses Dec 19, 2025
6236321
format
remorses Dec 19, 2025
ef97c6f
remove excessive jsdoc comments and fix any cast
remorses Dec 20, 2025
9c5575a
move markdown tests to renderables folder and add more cases, add mar…
remorses Dec 20, 2025
ef8a9a2
simplify code rendering, add custom renderNode tests
remorses Dec 20, 2025
5905d49
remove line numbers from markdown demo
remorses Dec 20, 2025
a9846c0
remove dead code: renderTableChunks, countConcealedChars, getCellDisp…
remorses Dec 20, 2025
886be27
Update markdown-demo.ts
remorses Dec 20, 2025
8046127
fix clearTableCache -> clearCache in demo docs, add incomplete markdo…
remorses Dec 20, 2025
3ef4c61
Merge branch 'main' into markdown-renderable
kommander Dec 22, 2025
7c99258
add examples to index
kommander Dec 22, 2025
7ae9f1e
pin marked version
kommander Dec 22, 2025
0471f1e
reduce recalcs
kommander Dec 22, 2025
4807d6d
add missing registrations
remorses Dec 22, 2025
9c79532
fix test
remorses Dec 22, 2025
c89a3da
streaming markdown support
remorses Dec 22, 2025
bc06339
optimize table rendering during streaming
remorses Dec 22, 2025
71b12c1
clean up comments
remorses Dec 22, 2025
d558a40
fix formatting
remorses Dec 22, 2025
6cfa2f4
raw fallback for incomplete rows
kommander Dec 22, 2025
89c548d
streaming in demo
kommander Dec 22, 2025
b1d4bfd
demo stream speed control
kommander Dec 22, 2025
0d800bf
demo sticky scroll for stream
kommander Dec 22, 2025
7b84b78
fix conceal and syntaxStyle changes not updating rendered content
remorses Dec 22, 2025
6be878f
improve table border joins at top and bottom edges
remorses Dec 22, 2025
756b85f
perf: defer style/conceal re-rendering to renderSelf
remorses Dec 23, 2025
816b7d6
focus scrollbox in demo
remorses Dec 23, 2025
b06925e
fix: format Markdown.ts with prettier
remorses Dec 23, 2025
602c91a
update tables in-place
kommander Dec 27, 2025
99daa83
demo endless stream
kommander Dec 27, 2025
f92de6d
no need to reset
kommander Dec 27, 2025
1ef2376
Merge branch 'main' into markdown-renderable
remorses Jan 2, 2026
c966950
Merge branch 'main' into markdown-renderable
kommander Jan 5, 2026
5c6ae8b
Merge branch 'main' into markdown-renderable
remorses Jan 7, 2026
513921d
Merge upstream/main
remorses Jan 11, 2026
cf245be
Merge branch 'main' into markdown-renderable
remorses Jan 14, 2026
51f13a5
fix(ci): fix pkg-pr-new workflow for native binary packages
remorses Jan 14, 2026
add884e
Merge fix-pkg-pr-new
remorses Jan 15, 2026
203f75b
Merge branch 'main' into markdown-renderable
remorses Jan 15, 2026
16a4b54
use conceal for tables border
remorses Jan 16, 2026
a79c0c5
Merge branch 'markdown-renderable' of https://github.com/remorses/ope…
remorses Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions bun.lock
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"bun-ffi-structs": "0.1.2",
"diff": "8.0.2",
"jimp": "1.6.0",
"marked": "17.0.1",
"yoga-layout": "3.2.1",
},
"devDependencies": {
Expand Down Expand Up @@ -220,6 +221,18 @@

"@opentui/core": ["@opentui/core@workspace:packages/core"],

"@opentui/core-darwin-arm64": ["@opentui/[email protected]", "", { "os": "darwin", "cpu": "arm64" }, "sha512-IohPhCkD/DbZEH4M5ft1/o1pI6Vvw2pdxdyoouW/TO1g21W5G8usaWTSRDXO+16BT115Nfb9/DT69H5pzAc2Eg=="],

"@opentui/core-darwin-x64": ["@opentui/[email protected]", "", { "os": "darwin", "cpu": "x64" }, "sha512-BqbjQl2sLYrJ1Pq1b3H1I2CFedRiMz0QtZX08IMbyZ5kok+J0A8eQS5tmlbfqoS/VH0de9XiEbuHjG09/nSj1A=="],

"@opentui/core-linux-arm64": ["@opentui/[email protected]", "", { "os": "linux", "cpu": "arm64" }, "sha512-P5FleF+W8O4uGubqBvV8DB1AK0+fJhJS8HvfmTZQ2DhSSJJH9Af/WXqitD7ILQY9ltlaUP7l38BC5cVdxnWzCQ=="],

"@opentui/core-linux-x64": ["@opentui/[email protected]", "", { "os": "linux", "cpu": "x64" }, "sha512-l9ab5tgOGcdf8k3NU4TzK/3C8UC0+QuMxgLA/j60BhB1e9bwJleFeYJc+wLIktTUu9QwqCsU4YcuGHL+C2lCzA=="],

"@opentui/core-win32-arm64": ["@opentui/[email protected]", "", { "os": "win32", "cpu": "arm64" }, "sha512-U1zsOpQl3EGhs8BwoehKAwwVONe+XOXRnXTxMhXw8huF0WWXDWOUL5psjBvfSWPm1rLmagxkQsH84jTSWA/vLA=="],

"@opentui/core-win32-x64": ["@opentui/[email protected]", "", { "os": "win32", "cpu": "x64" }, "sha512-JgLZXSaE4q7gUIQb9x6fLWFF3BYlMod2VBhOT1qGBdeveZxsM6ZAno/g+CL9IDUydWfLFadOIBjdYFDVWV2Z2w=="],

"@opentui/react": ["@opentui/react@workspace:packages/react"],

"@opentui/solid": ["@opentui/solid@workspace:packages/solid"],
Expand Down Expand Up @@ -360,6 +373,10 @@

"lru-cache": ["[email protected]", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],

"magic-string": ["[email protected]", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],

"marked": ["[email protected]", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg=="],

"meshoptimizer": ["[email protected]", "", {}, "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw=="],

"mime": ["[email protected]", "", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="],
Expand Down
1 change: 1 addition & 0 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"bun-ffi-structs": "0.1.2",
"diff": "8.0.2",
"jimp": "1.6.0",
"marked": "17.0.1",
"yoga-layout": "3.2.1"
},
"peerDependencies": {
Expand Down
21 changes: 20 additions & 1 deletion packages/core/src/examples/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,9 @@ import * as sliderDemo from "./slider-demo"
import * as terminalDemo from "./terminal"
import * as diffDemo from "./diff-demo"
import * as keypressDebugDemo from "./keypress-debug-demo"
import * as linkDemo from "./link-demo"
import * as extmarksDemo from "./extmarks-demo"
import * as markdownDemo from "./markdown-demo"
import * as linkDemo from "./link-demo"
import * as opacityExample from "./opacity-example"
import * as scrollboxOverlayHitTest from "./scrollbox-overlay-hit-test"
import * as scrollboxMouseTest from "./scrollbox-mouse-test"
Expand Down Expand Up @@ -157,6 +158,12 @@ const examples: Example[] = [
run: diffDemo.run,
destroy: diffDemo.destroy,
},
{
name: "Markdown Demo",
description: "Markdown rendering with table alignment, syntax highlighting, and theme switching",
run: markdownDemo.run,
destroy: markdownDemo.destroy,
},
{
name: "Live State Management Demo",
description: "Test automatic renderer lifecycle management with live renderables",
Expand Down Expand Up @@ -205,6 +212,12 @@ const examples: Example[] = [
run: transparencyDemo.run,
destroy: transparencyDemo.destroy,
},
{
name: "Opacity Demo",
description: "Interactive opacity/alpha demonstration with animated boxes",
run: opacityExample.run,
destroy: opacityExample.destroy,
},
{
name: "Static Sprite",
description: "Static sprite rendering demo",
Expand Down Expand Up @@ -325,6 +338,12 @@ const examples: Example[] = [
run: editorDemo.run,
destroy: editorDemo.destroy,
},
{
name: "Extmarks Demo",
description: "Virtual extmarks - text ranges that the cursor jumps over, with deletion handling",
run: extmarksDemo.run,
destroy: extmarksDemo.destroy,
},
{
name: "Slider Demo",
description: "Interactive slider components with various orientations and configurations",
Expand Down
Loading
Loading