Skip to content

Add native Roam renderer for presentations - #15

Merged
mdroidian merged 10 commits into
mainfrom
codex/issue-6-native-renderer
Aug 16, 2026
Merged

Add native Roam renderer for presentations#15
mdroidian merged 10 commits into
mainfrom
codex/issue-6-native-renderer

Conversation

@mdroidian

@mdroidian mdroidian commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a parallel native renderer under presentation2 / slides2 while leaving the existing presentation / slides path available
  • delegate slide trees, layout source blocks, notes, and collapsible nodes to ui.react.Block, and formatted titles to ui.react.BlockString
  • preserve presentation orchestration including Reveal layouts, themes, notes, transitions, hiding, auto-animate, focus restoration, and progressive collapsibles
  • restore native bullets, suppress Roam indentation multibars, normalize title typography/alignment, and contain iframe/video media inside their configured layouts
  • add architecture notes, reproducible baseline/coverage fixtures, side-by-side screenshots, native-feature proof, and walkthrough videos

Why

The current renderer reconstructs Roam blocks as custom HTML. That loses native component behavior and lifecycle for code blocks, queries, search results, embeds, block view types, Excalidraw, Mermaid, tables, and other extension-owned renderers. The new path keeps Presentation-specific orchestration but lets Roam render the content itself.

Validation

  • npm run build:roam — source built with 0 errors
  • authenticated Roam baseline: 17 slides from each renderer, no page errors
  • post-fix comparison: native bullets present and zero visible .rm-multibar guides across all 17 slides
  • native feature deck: 2 code editors, 2 KaTeX renders, live query/search, page and block embeds, Document and Numbered views, Excalidraw rectangle drawing, Mermaid SVG, and native table
  • checked-in full-resolution comparisons, contact sheets, capture metrics, and both renderer walkthrough videos

WIP for #6

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 324291fe-4a67-4cb7-b9da-8f3e3808f3ee

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mdroidian
mdroidian marked this pull request as ready for review August 16, 2026 04:50

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1f54d905cf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/Presentation2.tsx

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

View 2 additional findings in Devin Review.

Open in Devin Review

Comment thread src/components/Presentation2.tsx Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 09c5b7ade2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/Presentation2.tsx Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2cf2708d7c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/Presentation2.tsx Outdated
Comment thread src/components/Presentation2.tsx Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dda92576ad

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/components/Presentation2.tsx Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3a05e91e31

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +224 to +228
root
.querySelectorAll(
`[data-uid="${escapedUid}"], [data-block-uid="${escapedUid}"]`,
)
.forEach((element) => {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restrict hidden UID matches to actual blocks

When a visible bullet contains a block reference to a UID in hiddenUids—including a hidden block, layout source, or note—Roam's reference span can also carry that UID in data-uid. This selector then matches the reference, and getBlockContainer resolves to and hides the visible bullet containing it. Match actual rendered block containers via data-block-uid, or otherwise exclude .rm-block-ref elements before hiding their containers.

Useful? React with 👍 / 👎.

@mdroidian
mdroidian merged commit 1cc89bb into main Aug 16, 2026
2 checks passed
@mdroidian
mdroidian deleted the codex/issue-6-native-renderer branch August 16, 2026 20:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant