You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 456c3d5
Browse filesBrowse the repository at this point in the historyBrowse files
@@ -70,6 +70,35 @@ Every component is a block directive and must close:
70
70
71
71
Do not put the directive inside a code fence when it should render. Do not treat a code fence as a component when parsing or exporting.
72
72
73
+
### Authoring errors and repairs
74
+
75
+
Unknown props produce `prop-unknown`, with the component name, source line and
76
+
registered props. For example, `colour="red"` on `bm-bars` is rejected; it is
77
+
never silently discarded. The reader and rich editor show the affected block in
78
+
its own warning frame with the original directive and data. The rest of the note
79
+
continues rendering, and editing nearby prose preserves the malformed source.
80
+
Remove the unknown prop or replace it with a registered one in Markdown source.
81
+
A closed malformed component also supports a reviewed component replacement and
82
+
undo through the agent tools.
83
+
84
+
A block with a body but no closing `::` produces `directive-unclosed` near its
85
+
opener. Its warning preserves the opener and any leading YAML properties while
86
+
following headings, lists and prose stay visible outside the frame. Repair the
87
+
source by adding `::` at the intended boundary; the editor never guesses where
88
+
the block ends. Agent component replacements cannot safely claim the rest of an
89
+
unclosed block, so use source editing for this repair.
90
+
91
+
Existing standalone leaf directives with no body remain valid, though new
92
+
components should use the closed block form above. Nested blocks each need their
93
+
own close. Directive lookalikes inside code fences and escaped literals remain
94
+
literal Markdown.
95
+
96
+
These diagnostics use the same shared parser in browser rendering, WebMCP and
97
+
the Cloud Comark analyzer. Canonical validation and strict Wiki export reject
98
+
malformed source until repaired. Warning frames are recovery behavior, not a
99
+
new authored vocabulary: never write `bm-problem` or other internal transport
100
+
nodes in a note.
101
+
73
102
### Two attribute forms
74
103
75
104
Inline braces are the compact form. A leading YAML property block, fenced by `---` lines, is the equivalent long form and is required for structured array data.
Copy file name to clipboardExpand all lines: src/basic_memory/man/man7/comark(7).md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,6 +103,8 @@ message.
103
103
| --- | --- |
104
104
|`unknown-element`| The name is not a registered component |
105
105
|`invalid-attribute`| An attribute the component does not accept |
106
+
|`prop-unknown`| An unknown prop; the warning preserves source and lists registered props |
107
+
|`directive-unclosed`| A block with a body has no closing `::`; repair its source boundary |
106
108
|`invalid-attribute-value`| A value outside the attribute's closed set or range |
107
109
|`missing-attribute`| A required attribute is absent |
108
110
|`invalid-chart-body`| The body does not fit the chart; see the `chart-body-*` code |
@@ -118,6 +120,15 @@ message.
118
120
Other `chart-body-*` and `query-*` codes follow the same pattern: the suffix
119
121
names the part of the body or pipeline that is wrong.
120
122
123
+
Unknown props preserve the original directive and data in their warning frame,
124
+
including through nearby rich edits. Missing-close warnings preserve the opener
125
+
and YAML properties while following Markdown stays visible. Add the close at
126
+
the intended boundary in source; the editor never inserts a guessed close.
127
+
Reviewed agent replacements and undo can repair closed malformed components;
128
+
an unclosed block requires source editing. Canonical validation and strict
129
+
export reject malformed source. Internal recovery nodes such as `bm-problem`
130
+
are never authored.
131
+
121
132
## CHECKING YOUR WORK
122
133
123
134
In Basic Memory Cloud:
@@ -146,7 +157,7 @@ The queue rewrite more than doubled steady-state throughput.
146
157
147
158
## GOTCHAS
148
159
149
-
-[gotcha] An unclosed component swallows the rest of the note into its body.
160
+
-[gotcha] An unclosed block with a body shows `directive-unclosed`; following Markdown stays visible. Standalone leaves with no body remain valid, but author new components with explicit closes.
150
161
-[gotcha] A component inside a code fence is literal code and is not drawn.
151
162
-[gotcha] The rich editor normalizes attribute order and formatting; values survive.
152
163
-[gotcha] A query over a field no note has renders an empty view, not an error.
0 commit comments