fixed text item children not getting rendered correctly

feature/settings-window
Michael Ochmann 3 years ago
parent e9ffdc8119
commit 4a6be06cbb
  1. 19
      src/Parser.js
  2. 2
      src/ui/src/components/SlideItem.js

@ -1,6 +1,18 @@
"use strict"; "use strict";
const {lexer} = require("marked"); const {Lexer, marked} = require("marked");
const util = require("util");
const tokenizer = {
list : (source) => {
console.log(source);
return false;
}
};
marked.use({tokenizer});
class Slide { class Slide {
title; title;
@ -17,7 +29,8 @@ class Slide {
} }
const tokenize = string => { const tokenize = string => {
return lexer(string); //console.log(util.inspect(marked.Lexer.rules.block.listItemStart, true, null, true));
return new Lexer({gfm : true}).lex(string);
}; };
const injectTitle = (deck, meta) => { const injectTitle = (deck, meta) => {
@ -71,7 +84,7 @@ const parser = string => {
let metaData = null; let metaData = null;
for (const token of tokenStream) { for (const token of tokenStream) {
if ( token.type === "space" || (token.type === "heading" && token.depth === 1) || token.type === "html") { if (token.type === "space" || (token.type === "heading" && token.depth === 1) || token.type === "html") {
if (currentSlide.content.length > 0) { if (currentSlide.content.length > 0) {
slideDeck.push(currentSlide); slideDeck.push(currentSlide);
currentSlide = new Slide(); currentSlide = new Slide();

@ -61,7 +61,7 @@ const SlideItem = ({item}) => {
case "em": case "em":
return <i><Children items={item.tokens} /></i> return <i><Children items={item.tokens} /></i>
case "text": case "text":
return <>{item.text}</> return <>{item.tokens ? <Children items={item.tokens} /> : item.text}</>
default: default:
return JSON.stringify(item); return JSON.stringify(item);
} }

Loading…
Cancel
Save