Land the maintainer's two decisions: the reader's home and the claim code's name
CI / gate (push) Successful in 6s
CI / gate (push) Successful in 6s
This commit is contained in:
@@ -82,8 +82,9 @@ closed list a consumer may switch exhaustively, the message free text, the path
|
|||||||
from the document root. Adding, removing or renaming a code is breaking, so a milestone meeting a
|
from the document root. Adding, removing or renaming a code is breaking, so a milestone meeting a
|
||||||
new failure cause reuses a code where one fits; the list is complete at `0.1.0`. A code names the
|
new failure cause reuses a code where one fits; the list is complete at `0.1.0`. A code names the
|
||||||
cause; where one cause recurs across node types, one code covers them all and `path` and `message`
|
cause; where one cause recurs across node types, one code covers them all and `path` and `message`
|
||||||
say which. A cause the carry answers gets no code: a mark no spelling writes rides the carry with
|
say which. A claim code names the spelling claimed, never the node that spelling would have built:
|
||||||
its node.
|
a malformed `:::table` is a `malformed-directive`. A cause the carry answers gets no code: a mark no
|
||||||
|
spelling writes rides the carry with its node.
|
||||||
|
|
||||||
## 9. Release automation
|
## 9. Release automation
|
||||||
|
|
||||||
@@ -139,7 +140,8 @@ live Atlassian APIs; property-generated ADF trees; the CommonMark spec suite aga
|
|||||||
unrepresentable.
|
unrepresentable.
|
||||||
- `src/adf/` holds ADF's own knowledge and imports no format. Each format directory (`markdown/`,
|
- `src/adf/` holds ADF's own knowledge and imports no format. Each format directory (`markdown/`,
|
||||||
`html/`) parts into `emit/` (ADF→format) and `parse/` (format→ADF), its root holding what both
|
`html/`) parts into `emit/` (ADF→format) and `parse/` (format→ADF), its root holding what both
|
||||||
directions read.
|
directions read. A construct's reader lives in that root beside the regex the emitter escapes
|
||||||
|
against, so the two cannot drift; a reader with no emit counterpart goes in `parse/`.
|
||||||
- The attribute vocabulary is ADF's: `adf/` walks it and narrows each value to its kind, and a
|
- The attribute vocabulary is ADF's: `adf/` walks it and narrows each value to its kind, and a
|
||||||
format spells the narrowed value. A spelling that re-checks the type is the check's second copy.
|
format spells the narrowed value. A spelling that re-checks the type is the check's second copy.
|
||||||
- Explicit over implicit; descriptive names; no catch-all files (`utils`, `helpers`, `misc`); a
|
- Explicit over implicit; descriptive names; no catch-all files (`utils`, `helpers`, `misc`); a
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ test('keeps the link reference definitions a paragraph gives up, the first of a
|
|||||||
|
|
||||||
test('leaves the paragraph a line no definition spells', () => {
|
test('leaves the paragraph a line no definition spells', () => {
|
||||||
assert.deepEqual(definitions('[]: /url\n'), [])
|
assert.deepEqual(definitions('[]: /url\n'), [])
|
||||||
|
assert.deepEqual(definitions('[ ]: /url\n'), [])
|
||||||
assert.deepEqual(definitions('[a]: <un>closed>\n'), [])
|
assert.deepEqual(definitions('[a]: <un>closed>\n'), [])
|
||||||
assert.deepEqual(definitions('[a]: <unclosed\n'), [])
|
assert.deepEqual(definitions('[a]: <unclosed\n'), [])
|
||||||
assert.deepEqual(definitions('[a]: /url)x\n'), [])
|
assert.deepEqual(definitions('[a]: /url)x\n'), [])
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ function readDefinition(text: string): ReadDefinition | undefined {
|
|||||||
return { definition: { destination: destination.value }, label: name, length: plain }
|
return { definition: { destination: destination.value }, label: name, length: plain }
|
||||||
}
|
}
|
||||||
|
|
||||||
// CommonMark's label matching: the whitespace a label holds collapses, and its case folds.
|
|
||||||
function normalizeLabel(raw: string): string {
|
function normalizeLabel(raw: string): string {
|
||||||
return raw
|
return raw
|
||||||
.replace(/^[ \t\n]+|[ \t\n]+$/g, '')
|
.replace(/^[ \t\n]+|[ \t\n]+$/g, '')
|
||||||
|
|||||||
Reference in New Issue
Block a user