var bricks = window.bricks || {}; /* reply on "https://github.com/markedjs/marked" add following lines before 'bricks.js' */ bricks.MdWidget = class extends bricks.JsWidget { /* options { "mdtext": "md_url": "method":"GET" "params":{} } */ constructor(options){ super(options); if (this.mdtext){ this.md_content = this.mdtext; this._build1(); } else { var f = this.build.bind(this); this.load_event = new Event('loaded'); this.dom_element.style.overFlow='auto'; window.addEventListener('scroll', this.show_scroll.bind(this)); schedule_once(f, 0.01); } } set_content(content){ this.md_content = content; this._build1(); } show_scroll(event){ bricks.debug('scrollY=', window.scrollY); } async build(){ if (! this.opts.md_url){ return; } this._build(this.opts.md_url); } async _build(md_url){ var md_content = await (bricks.tget(md_url)); this.md_content = md_content; this._build1(); this.dispatch('loaded', {'url':md_url}); } _build1(){ this.dom_element.innerHTML = marked.parse(this.md_content); /* change links in markdown to a bricks action */ var links = this.dom_element.getElementsByTagName('a'); for (var i=0; i