From fc995412d7a53993b7144b4b1f02045578c6a377 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sun, 21 Jun 2020 21:52:27 +0200 Subject: Add markdown support to descriptions using the 'marked' js library for rendering. --- .gitmodules | 3 +++ src/http.cc | 3 ++- src/ws/Makefile.am | 3 ++- src/ws/marked | 1 + src/ws/munia.html | 1 + src/ws/node.js | 21 +++++++-------------- 6 files changed, 16 insertions(+), 16 deletions(-) create mode 160000 src/ws/marked diff --git a/.gitmodules b/.gitmodules index d98be27..49cc647 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "hugin"] path = hugin url = http://git.drumgizmo.org/hugin.git +[submodule "src/ws/marked"] + path = src/ws/marked + url = https://github.com/markedjs/marked.git diff --git a/src/http.cc b/src/http.cc index ffd7912..e184114 100644 --- a/src/http.cc +++ b/src/http.cc @@ -101,7 +101,8 @@ int callback_http(struct lws *wsi, if(file == "proto.js" || file == "handler.js" || file == "node.js" || - file == "view.js") + file == "view.js" || + file == "marked.min.js") { return serveFile(wsi, file,"text/javascript"); } diff --git a/src/ws/Makefile.am b/src/ws/Makefile.am index 64d0540..c7252e5 100644 --- a/src/ws/Makefile.am +++ b/src/ws/Makefile.am @@ -11,4 +11,5 @@ ws_DATA = \ munia.html \ node.js \ proto.js \ - view.js + view.js \ + marked/marked.min.js diff --git a/src/ws/marked b/src/ws/marked new file mode 160000 index 0000000..b198b55 --- /dev/null +++ b/src/ws/marked @@ -0,0 +1 @@ +Subproject commit b198b55eb0bd02ba6209051c9c85a95e297353fd diff --git a/src/ws/munia.html b/src/ws/munia.html index 4406afa..98ce8bd 100644 --- a/src/ws/munia.html +++ b/src/ws/munia.html @@ -29,6 +29,7 @@ + diff --git a/src/ws/node.js b/src/ws/node.js index 5ecfdac..16eb9cc 100644 --- a/src/ws/node.js +++ b/src/ws/node.js @@ -298,10 +298,12 @@ function makeClickthrough(e) var elements = e.getElementsByTagName("*"); for(let element of elements) { - if(element.tagName != "A") + if(element.tagName == "A") { - element.style.pointerEvents = "none"; // enable clickthrough to parent + element.style.pointerEvents = "initial"; // enable links + continue; } + element.style.pointerEvents = "none"; // enable clickthrough to parent } } @@ -325,18 +327,9 @@ Node.prototype.setAttribute = function(name, value) { this.description_element.removeChild(this.description_element.firstChild); } - if(checkHTML(value)) - { - // Insert as HTML - this.description_element.innerHTML = value; - makeClickthrough(this.description_element); - } - else - { - // Not valid HTML, insert as plain text to avoid breaking things - var description_txt = document.createTextNode(value); - this.description_element.appendChild(description_txt); - } + + this.description_element.innerHTML = marked(value); + makeClickthrough(this.description_element); } if(name == "dragged") -- cgit v1.2.3