Use html formatting for quotes

main
Bob Mottram 2020-08-02 18:01:12 +01:00
parent 73b8f67f61
commit 3c86717fc6
3 changed files with 46 additions and 1 deletions

View File

@ -14,6 +14,33 @@ from utils import fileLastModified
from utils import getLinkPrefixes
def htmlReplaceQuoteMarks(content: str) -> str:
"""Replaces quotes with html formatting
"hello" becomes <q>hello</q>
"""
if '"' not in content:
return content
sections = content.split('"')
if len(sections) <= 2:
return content
newContent = ''
openQuote = True
noOfSections = len(sections)
ctr = 0
for s in sections:
newContent += s
if ctr < noOfSections - 1:
if openQuote:
newContent += '<q>'
else:
newContent += '</q>'
openQuote = not openQuote
ctr += 1
return newContent
def dangerousMarkup(content: str) -> bool:
"""Returns true if the given content contains dangerous html markup
"""
@ -433,6 +460,7 @@ def removeHtml(content: str) -> str:
if '<' not in content:
return content
removing = False
content = content.replace('<q>', '"').replace('</q>', '"')
result = ''
for ch in content:
if ch == '<':
@ -608,7 +636,7 @@ def addHtmlTags(baseDir: str, httpPrefix: str,
if longWordsList:
content = removeLongWords(content, maxWordLength, longWordsList)
content = content.replace(' --linebreak-- ', '</p><p>')
return '<p>' + content + '</p>'
return '<p>' + htmlReplaceQuoteMarks(content) + '</p>'
def getMentionsFromHtml(htmlText: str,

Binary file not shown.

View File

@ -64,6 +64,7 @@ from media import getAttachmentMediaType
from delete import sendDeleteViaServer
from inbox import validInbox
from inbox import validInboxFilenames
from content import htmlReplaceQuoteMarks
from content import dangerousMarkup
from content import removeHtml
from content import addWebLinks
@ -1923,8 +1924,24 @@ def testDangerousMarkup():
assert(not dangerousMarkup(content))
def runHtmlReplaceQuoteMarks():
print('htmlReplaceQuoteMarks')
testStr = 'The "cat" "sat" on the mat'
result = htmlReplaceQuoteMarks(testStr)
assert result == 'The <q>cat</q> <q>sat</q> on the mat'
testStr = 'The cat sat on the mat'
result = htmlReplaceQuoteMarks(testStr)
assert result == 'The cat sat on the mat'
testStr = '"hello"'
result = htmlReplaceQuoteMarks(testStr)
assert result == '<q>hello</q>'
def runAllTests():
print('Running tests...')
runHtmlReplaceQuoteMarks()
testDangerousMarkup()
testRemoveHtml()
testSiteIsActive()