chore: remove rich editor plans
This commit is contained in:
@@ -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 |
|
||||
|
||||
@@ -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`
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user