DEV: implements parseAsync in discourse/lib/text (#17899)
`parseAsync` allows to parse a block of markdown into tokens. Usage: ```javascript import { parseAsync } from "discourse/lib/text"; // ... await parseAsync("**test**").then((tokens) => { console.log(tokens); }) ```
This commit is contained in:
parent
3dac4fe075
commit
7476c22324
|
@ -68,6 +68,12 @@ export function sanitizeAsync(text, options) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function parseAsync(md, options) {
|
||||||
|
return loadMarkdownIt().then(() => {
|
||||||
|
return createPrettyText(options).opts.engine.parse(md);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function loadMarkdownIt() {
|
function loadMarkdownIt() {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
let markdownItURL = Session.currentProp("markdownItURL");
|
let markdownItURL = Session.currentProp("markdownItURL");
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
import { module, test } from "qunit";
|
||||||
|
import { parseAsync } from "discourse/lib/text";
|
||||||
|
|
||||||
|
module("Unit | Utility | text", function () {
|
||||||
|
test("parseAsync", async function (assert) {
|
||||||
|
await parseAsync("**test**").then((tokens) => {
|
||||||
|
assert.strictEqual(
|
||||||
|
tokens[1].children[1].type,
|
||||||
|
"strong_open",
|
||||||
|
"it parses the raw markdown"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue