chore: remove rich editor plans

This commit is contained in:
2026-07-18 19:16:56 +02:00
parent f96e6f1df4
commit e9d6c70eb0
5 changed files with 5 additions and 49 deletions

View File

@@ -73,7 +73,7 @@ Use this for compatibility-sensitive behaviors that are not a single persisted f
| rendering | built-in macros | JS server-side (gallery, youtube, vimeo, photo_archive, tag_cloud) | Rust-native in bds-core/render | implementation language changes, output must match | golden-generated-site comparisons | not-started | These are NOT Python macros |
| rendering | Liquid feature subset | liquidjs 10.25 (full spec available) | Rust Liquid (scoped to used subset) | implementation may differ for unused features | template compatibility suite | not-started | Only ~35% of spec used by default templates |
| slugs | slug generation | `transliteration` npm package | `deunicode` Rust crate | possible edge-case differences | slug corpus tests in M0 fixtures | not-started | Verify against real content |
| editor | content editing | rich editor (default) | plain-text syntax-highlighting editor (bds-editor: ropey + syntect + cosmic-text) + live preview | yes | n/a | approved-divergence | Rich editor deferred to extension Bucket I, builds on bds-editor foundation |
| editor | content editing | Markdown editor + rendered preview | syntax-highlighting Markdown editor (bds-editor: ropey + syntect + cosmic-text) + rendered preview | no | editor + preview integration tests | not-started | |
| preview | asset sourcing | local assets only | identical | no | HTML assertions | not-started | |
| runtime | JS dependency | Electron (Chromium + Node.js) | no JavaScript anywhere — pure Rust + native APIs | yes (intentional) | build verification: no JS in dependency tree | approved-divergence | Supply-chain security constraint |
| runtime | async executor | Node.js event loop | tokio | yes (internal) | n/a | approved-divergence | Used for preview server, publish, file watching |
@@ -95,4 +95,4 @@ Use this for compatibility-sensitive behaviors that are not a single persisted f
- every persisted field used by core is represented
- every approved divergence is explicit
- every row links to a fixture or test before release
- metadata diff, rebuild, and publish implications are filled in for all relevant rows
- metadata diff, rebuild, and publish implications are filled in for all relevant rows

View File

@@ -443,20 +443,6 @@ Code-vs-spec gaps from the 2026-07-18 spec sync. Each task names its authoritati
- external content capture workflow
### Bucket I: Rich Editor
#### `bds-editor` (evolution)
- inline bold/italic/header rendering via cosmic-text mixed font styles
- inline image preview via Iced image rendering within the custom widget
- macro block preview (render macro output inline)
- clickable links
#### `bds-ui`
- rich editor mode toggle
- image insert dialog from linked media
### Bucket J: A2UI Surfaces
#### `bds-ui`

View File

@@ -99,7 +99,7 @@ These map to extension Buckets G (CLI + events) and K/L (server, TUI) in RUST_PL
- **Custom editor widget (bds-editor crate)**: syntax-highlighting markdown/Liquid/Lua editor built on ropey (rope buffer), syntect (syntax highlighting), and cosmic-text (font shaping and text layout). This is the highest-risk custom component and gets a proof-of-concept in Wave 0.
- **Diesel + embedded migrations**: typed SQLite queries and generated schema, with migrations managed by `diesel_migrations`. Backend-only SQL is confined to connection setup and FTS5 operations.
- **tokio as the async runtime**: preview server (axum), SSH publishing, file watching, and rfd async dialogs all require an async executor. tokio is the standard choice and is used workspace-wide. Synchronous engine code in bds-core does not use tokio directly — it remains callable from both async (bds-ui) and sync (bds-cli) contexts.
- **Plain-text markdown editor first**: no WYSIWYG in core. Live preview is required. This is an intentional regression from the baseline app's rich editor. A rich editor can be added as an extension bucket after core ships — and the bds-editor widget provides a natural foundation for it.
- **Markdown editor with live preview**: bds-editor provides syntax-highlighted Markdown editing, paired with the rendered preview required by the baseline workflow.
- **Lua for user-authored scripting**: `mlua` with Lua 5.4. Only user-authored macros, transforms, and utility scripts run through Lua. Built-in macros are native Rust — see the macro architecture section below.
- **One-shot AI operations are core scope**: six operations use a simple OpenAI-compatible HTTP client (`reqwest` + `serde_json`): (1) translate post, (2) translate media metadata, (3) image description / alt text, (4) post analysis (title + excerpt + slug suggestion), (5) taxonomy analysis (tag + category suggestions), (6) language detection. Two configurable endpoints: one for online use, one for airplane/offline mode (local model). These are fire-and-forget request/response calls — no streaming, no tool use, no chat history. The AI chat UI, streaming responses, and tool execution remain in Extension Bucket C.
@@ -211,7 +211,6 @@ bds-rust/
- MCP and remote automation surfaces
- Blogmark transform service (external content capture pipeline)
- A2UI server-driven UI surfaces
- WYSIWYG / rich markdown editor (builds on bds-editor foundation)
## Cross-Cutting Requirements

View File

@@ -165,33 +165,6 @@ Secondary content-capture workflow. Not required for core authoring with existin
- external content can be captured and transformed into posts via the Blogmark pipeline
- transform scripts execute reliably
### Bucket I: Rich Markdown Editor
#### Scope
- WYSIWYG or hybrid markdown editing (comparable to the baseline app's rich editor)
- macro syntax preview in editor
- image insert dialog from linked media
#### Why extension
Core ships with the bds-editor syntax-highlighting plain-text editor and live preview. The baseline app defaults to a rich editor, so this is a user-facing regression that should be addressed after core stabilizes.
#### Architecture advantage
The bds-editor crate (ropey + syntect + cosmic-text) built during core provides the foundation for the rich editor. Incremental additions:
- inline rendering of bold/italic/headers via cosmic-text mixed font styles
- inline image preview via Iced image rendering within the custom widget
- macro block preview (render macro output inline in the editor)
- clickable links
This is an evolution of the existing editor widget, not a separate technology decision.
#### Done when
- users can edit content with a rich editor comparable to the baseline app's editing experience
### Bucket K: Headless Server Mode
#### Scope
@@ -264,8 +237,6 @@ Bucket G MCP + Automation
Bucket H Blogmark + Transforms
Bucket I Rich Editor (builds on bds-editor from core)
Bucket K Headless Server Mode
Bucket L Terminal UI (after Buckets G + K)
@@ -289,4 +260,4 @@ Every extension still inherits the core verification baseline plus extension-spe
## Out Of Scope For Now
- cross-platform packaging polish beyond what the core and extension work naturally require
- feature work that introduces new persistence formats before full parity is reached
- feature work that introduces new persistence formats before full parity is reached

View File

@@ -164,7 +164,7 @@ surface PostEditorSurface {
-- Markdown: code editor with markdown-with-macros language,
-- highlighting [[macro ...]] syntax. Word wrap on, minimap off, 14px font.
-- Preview: iframe showing rendered preview.
-- Note: visual/WYSIWYG mode not implemented; "visual" normalizes to markdown.
-- Markdown and Preview are the only editor modes.
@guarantee DragDropImages
-- Drop image file onto editor area triggers import chain.