Skip to content

Commit 63973f7

Browse files
authored
Ensure existing marked renderer code runs with customization (#4078)
* Ensure existing marked renderer code runs with customization * Use noopener / noreferrer for marked links
1 parent fc7fc35 commit 63973f7

File tree

2 files changed

+22
-26
lines changed

2 files changed

+22
-26
lines changed

angular/core/config/marked.coffee

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
1-
angular.module('loomioApp').config (markedProvider, renderProvider) ->
2-
markedProvider.setOptions
3-
gfm: true
4-
sanitize: true
5-
breaks: true
6-
markedProvider.setRenderer(renderProvider.$get(0).createRenderer())
1+
angular.module('loomioApp').config (markedProvider) ->
2+
customRenderer = (opts) ->
3+
_super = new marked.Renderer(opts)
4+
renderer = _.clone(_super)
5+
cook = (text) ->
6+
text = emojione.shortnameToImage(text)
7+
text = text.replace(/\[\[@([a-zA-Z0-9]+)\]\]/g, "<a class='lmo-user-mention' href='/u/$1'>@$1</a>")
8+
text
9+
10+
renderer.paragraph = (text) -> _super.paragraph cook(text)
11+
renderer.listitem = (text) -> _super.listitem cook(text)
12+
renderer.tablecell = (text) -> _super.tablecell cook(text)
13+
14+
renderer.heading = (text, level) ->
15+
_super.heading(emojione.shortnameToImage(text), level, text)
16+
17+
renderer.link = (href, title, text) ->
18+
_super.link(href, title, text).replace('<a ', '<a rel="noopener noreferrer" target="_blank" ')
19+
20+
renderer
21+
22+
markedProvider.setRenderer customRenderer(gfm: true, sanitize: true, breaks: true)

angular/core/services/render_service.coffee

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)