From fe6a8336fa47f396cac2926b7ae21faf5e0e1ff5 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Sun, 6 Aug 2017 20:26:04 -0700 Subject: [PATCH] Support [spoiler] and [code] tags in 'Copy Text' menu item. --- src/Menu/CopyTextLink.coffee | 2 +- src/Posting/QR.coffee | 5 +---- src/classes/Post.coffee | 13 +++++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Menu/CopyTextLink.coffee b/src/Menu/CopyTextLink.coffee index f0efff265..2e3d379ab 100644 --- a/src/Menu/CopyTextLink.coffee +++ b/src/Menu/CopyTextLink.coffee @@ -12,7 +12,7 @@ CopyTextLink = el: a order: 12 open: (post) -> - CopyTextLink.text = post.info.comment + CopyTextLink.text = post.commentOrig() true copy: -> diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index 744c91973..db921e410 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -313,10 +313,7 @@ QR = $.replace node, $.tn '\n' for node in $$ 'br', frag $.replace node, $.tn '\n>' unless node is frag.lastChild - for node in $$ 's, .removed-spoiler', frag - $.replace node, [$.tn('[spoiler]'), node.childNodes..., $.tn '[/spoiler]'] - for node in $$ '.prettyprint', frag - $.replace node, [$.tn('[code]'), node.childNodes..., $.tn '[/code]'] + Post::insertTags frag for node in $$ '.linkify[data-original]', frag $.replace node, $.tn node.dataset.original for node in $$ '.embedder', frag diff --git a/src/classes/Post.coffee b/src/classes/Post.coffee index 8aecd9704..09f1109f0 100644 --- a/src/classes/Post.coffee +++ b/src/classes/Post.coffee @@ -129,6 +129,12 @@ class Post @cleanCommentDisplay bq @nodesToText(bq).trim().replace(/\s+$/gm, '') + commentOrig: -> + # Get the comment's text for reposting purposes. + bq = @nodes.commentClean.cloneNode true + @insertTags bq + @nodesToText bq + nodesToText: (bq) -> text = "" nodes = $.X './/br|.//text()', bq @@ -155,6 +161,13 @@ class Post $.rm b if (b = $ 'b', bq) and /^Rolled /.test(b.textContent) $.rm $('.fortune', bq) + insertTags: (bq) -> + for node in $$ 's, .removed-spoiler', bq + $.replace node, [$.tn('[spoiler]'), node.childNodes..., $.tn '[/spoiler]'] + for node in $$ '.prettyprint', bq + $.replace node, [$.tn('[code]'), node.childNodes..., $.tn '[/code]'] + return + parseQuotes: -> @quotes = [] # XXX https://github.com/4chan/4chan-JS/issues/77