Trim quoted text to be fully inside post. #1108

Also add multirange support because why not.
This commit is contained in:
ccd0 2017-08-06 22:06:57 -07:00
parent fe6a8336fa
commit c971496f51

View File

@ -297,9 +297,20 @@ QR =
return unless QR.postingIsEnabled
sel = d.getSelection()
post = Get.postFromNode @
{root} = post.nodes
postRange = new Range()
postRange.selectNode root
text = if post.board.ID is g.BOARD.ID then ">>#{post}\n" else ">>>/#{post.board}/#{post}\n"
if sel.toString().trim() and post is Get.postFromNode sel.anchorNode
range = sel.getRangeAt 0
for i in [0...sel.rangeCount]
range = sel.getRangeAt i
# Trim range to be fully inside post
if range.compareBoundaryPoints(Range.START_TO_START, postRange) < 0
range.setStartBefore root
if range.compareBoundaryPoints(Range.END_TO_END, postRange) > 0
range.setEndAfter root
continue unless range.toString().trim()
frag = range.cloneContents()
ancestor = range.commonAncestorContainer
# Quoting the insides of a spoiler/code tag.