summaryrefslogtreecommitdiff
path: root/resources/test/parsers/code_block_no_language_result.html
diff options
context:
space:
mode:
Diffstat (limited to 'resources/test/parsers/code_block_no_language_result.html')
-rw-r--r--resources/test/parsers/code_block_no_language_result.html39
1 files changed, 39 insertions, 0 deletions
diff --git a/resources/test/parsers/code_block_no_language_result.html b/resources/test/parsers/code_block_no_language_result.html
new file mode 100644
index 0000000..0512d3e
--- /dev/null
+++ b/resources/test/parsers/code_block_no_language_result.html
@@ -0,0 +1,39 @@
+<pre><code>// Detect horizontal line block
+function isHorizontalLineBlock(block) {
+ return block === "***";
+}
+
+// Render horizontal line block
+function horizontalLineBlock(block) {
+ return `&lt;hr&gt;`;
+}
+
+// Compose an array of parsers
+const parsers = [{
+ matcher: isHorizontalLineBlock,
+ renderers: [horizontalLineBlock]
+}];
+
+// And finally, our parser itself
+function markdownToHTML(markdown) {
+ // Create blocks
+ const blocks = content.split(/\n\n/);
+
+ // Parse blocks
+ const parsedBlocks = blocks.map((block) =&gt; {
+ // Let's find a parser that has a matcher that matches
+ const parser = parsers.find((parser) =&gt; parser.matcher(block));
+
+ // If match was found, let's run our renderers over `block`
+ if (parser) {
+ for (const renderer of match.renderers) {
+ block = renderer(block);
+ }
+ }
+
+ return block;
+ });
+
+ // And at last, join the blocks together for one big block.
+ return parsedBlocks.join("");
+}</code></pre> \ No newline at end of file