overengineeringstudio / overengineeringstudio/effect-utils
notion-react/markdown: centralize block spellings with pull-side renderer when second consumer lands
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 82
- Forks
- 2
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 121
Description
Follow-up from #1097 (decision 0001, option Q1-C).
The new renderToNotionMarkdown projector (@overeng/notion-react/markdown) owns a dedicated JSX→Markdown spelling table that deliberately aligns with — but does not share code with — the pull-side wire renderer (NotionMarkdown.treeToMarkdown in @overeng/notion-effect-client). Delegation was rejected because the pull-side renderer lacks a diagnostics channel and modifying it for review-artifact needs risks .nmd wire-format drift.
Trigger to revisit: a second real consumer of the Markdown projection, or a stable compatibility requirement, per the #1097 demand gate.
Then: evaluate extracting shared spelling constants (or a dialect module) consumed by both serializers, with golden tests on both sides preventing drift.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Revisit this only after a second Markdown projection consumer or stable compatibility requirement exists. Compare renderToNotionMarkdown with NotionMarkdown.treeToMarkdown in @overeng/notion-effect-client, then evaluate shared spelling constants or a dialect module; done means both serializers use the agreed spellings and golden tests prevent drift.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100