defuss-markdown 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# defuss-markdown
|
|
2
2
|
|
|
3
|
-
Incremental Markdown rendering for Defuss, using Incremark as the parser core.
|
|
3
|
+
Incremental Markdown rendering for Defuss, using Incremark as the parser core. It also supports custom JSX / component rendering.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -61,16 +61,18 @@ async function updateWithMarkdown(
|
|
|
61
61
|
|
|
62
62
|
### `FALL_THROUGH`
|
|
63
63
|
|
|
64
|
-
A sentinel symbol exported alongside `updateWithMarkdown`. Return it from a custom `nodeRenderer` to fall back to the built-in renderer for that node
|
|
64
|
+
A sentinel symbol exported alongside `updateWithMarkdown`. Return it from a custom `nodeRenderer` to fall back to the built-in renderer for that node.
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
The second argument `context` exposes `renderChildren(node.children, context)` and `renderNode(node, context)` so you can recursively render a node's children inside your custom wrapper:
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
67
69
|
import { updateWithMarkdown, FALL_THROUGH } from "defuss-markdown";
|
|
68
70
|
|
|
69
71
|
await updateWithMarkdown(target, markdown, {
|
|
70
|
-
nodeRenderer: (node) => {
|
|
72
|
+
nodeRenderer: (node, context) => {
|
|
71
73
|
if (node.type === "paragraph") {
|
|
72
|
-
//
|
|
73
|
-
return
|
|
74
|
+
// Wrap paragraphs in a custom <div>, but still render their children
|
|
75
|
+
return <div class="custom-p">{...context.renderChildren(node.children, context)}</div>;
|
|
74
76
|
}
|
|
75
77
|
return FALL_THROUGH; // default rendering for everything else
|
|
76
78
|
},
|
package/dist/index.d.ts
CHANGED
|
@@ -60,9 +60,11 @@ interface RenderContext {
|
|
|
60
60
|
allowDangerousHtml: boolean;
|
|
61
61
|
nodeRenderer?: UpdateWithMarkdownOptions["nodeRenderer"];
|
|
62
62
|
cellTag?: "td" | "th";
|
|
63
|
+
renderNode: (node: MarkdownAstNode, context: RenderContext) => VNodeChild;
|
|
64
|
+
renderChildren: (children: MarkdownAstNode[] | undefined, context: RenderContext) => VNodeChild[];
|
|
63
65
|
}
|
|
64
66
|
declare function updateWithMarkdown(target: Element | Ref, input: string | Promise<string> | AsyncIterable<string> | AsyncIterator<string>, options?: UpdateWithMarkdownOptions): Promise<void>;
|
|
65
67
|
|
|
66
68
|
export { FALL_THROUGH, updateWithMarkdown };
|
|
67
|
-
export type { DefussPrimitive, MarkdownAstNode, MarkdownBlockLike, ParserLike, UpdateWithMarkdownOptions };
|
|
69
|
+
export type { DefussPrimitive, MarkdownAstNode, MarkdownBlockLike, ParserLike, RenderContext, UpdateWithMarkdownOptions };
|
|
68
70
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../src/index.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../src/index.ts"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -93,7 +93,9 @@ async function renderIntoElement(target, jsx, options) {
|
|
|
93
93
|
function renderBlocks(blocks, options) {
|
|
94
94
|
const context = {
|
|
95
95
|
allowDangerousHtml: Boolean(options.allowDangerousHtml),
|
|
96
|
-
nodeRenderer: options.nodeRenderer
|
|
96
|
+
nodeRenderer: options.nodeRenderer,
|
|
97
|
+
renderNode,
|
|
98
|
+
renderChildren
|
|
97
99
|
};
|
|
98
100
|
return blocks.map((block) => {
|
|
99
101
|
const rendered = applyBlockKey(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "defuss-markdown",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Incremental Markdown -> Defuss JSX bridge built on Incremark core.",
|
|
6
6
|
"keywords": [
|
|
@@ -37,8 +37,10 @@
|
|
|
37
37
|
"README.md",
|
|
38
38
|
"LICENSE"
|
|
39
39
|
],
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@incremark/core": "^1.0.2"
|
|
42
|
+
},
|
|
40
43
|
"peerDependencies": {
|
|
41
|
-
"@incremark/core": "^1.0.2",
|
|
42
44
|
"defuss": "^3.4.5"
|
|
43
45
|
},
|
|
44
46
|
"scripts": {
|