feat(cards): add 'note' card type for readable markdown content
New card type renders body as styled markdown with no copy/fill/run affordance. Glyph: ¶, color: --note. Migration uses transaction to safely rebuild table constraint. Checks both 'note' presence and modified_at column to catch partial migration state.
This commit is contained in:
+3
-3
@@ -4,14 +4,14 @@
|
||||
const GLYPHS = {
|
||||
note: '—', todo: '○', event: '◇', reminder: '△',
|
||||
snippet: '◆', template: '◈', checklist: '☐',
|
||||
decision: '⚖', link: '↗',
|
||||
decision: '⚖', link: '↗', note: '¶',
|
||||
};
|
||||
|
||||
const GLYPH_CLASSES = {
|
||||
note: 'glyph-note', todo: 'glyph-todo', event: 'glyph-event', reminder: 'glyph-reminder',
|
||||
snippet: 'glyph-snippet', template: 'glyph-template',
|
||||
checklist: 'glyph-checklist', decision: 'glyph-decision',
|
||||
link: 'glyph-link',
|
||||
link: 'glyph-link', note: 'glyph-note',
|
||||
};
|
||||
|
||||
const PAGE_SIZE = 50;
|
||||
@@ -121,7 +121,7 @@
|
||||
|
||||
// ========== Grammar parser (mirrors Go parser) ==========
|
||||
|
||||
const VALID_CARDS = { card: 'snippet', c: 'snippet', snippet: 'snippet', template: 'template', checklist: 'checklist', decision: 'decision', link: 'link' };
|
||||
const VALID_CARDS = { card: 'snippet', c: 'snippet', snippet: 'snippet', template: 'template', checklist: 'checklist', decision: 'decision', link: 'link', note: 'note', n: 'note' };
|
||||
|
||||
function validateTime(s) {
|
||||
const parts = s.split(':');
|
||||
|
||||
Reference in New Issue
Block a user