Add method for <code> tag

Add method and tests for inline tag <code>.
This commit is contained in:
Andrew Richards
2020-11-23 16:16:10 +00:00
parent 25d68b4265
commit 3354f143d8
3 changed files with 41 additions and 0 deletions

View File

@@ -143,6 +143,18 @@ class MarkdownConverter(object):
return ''
return '%s*%s*%s' % (prefix, text, suffix)
def convert_code(self, el, text):
prefix, suffix, text = chomp(text)
if not text:
return ''
return '%s`%s`%s' % (prefix, text, suffix)
def convert_samp(self, el, text):
return self.convert_code(el, text)
def convert_kbd(self, el, text):
return self.convert_code(el, text)
def convert_hn(self, n, el, text):
style = self.options['heading_style']
text = text.rstrip()

View File

@@ -4,3 +4,11 @@ from markdownify import markdownify as md
def test_nested():
text = md('<p>This is an <a href="http://example.com/">example link</a>.</p>')
assert text == 'This is an [example link](http://example.com/).\n\n'
def test_code_with_tricky_content():
assert md('<code>></code>') == "`>`"
assert md('<code>/home/</code><b>username</b>') == "`/home/`**username**"
# convert_br() adds trailing spaces (why?); ignore them by using 2 tests,
assert md('<code>Line1<br />Line2</code>').startswith("`Line1")
assert md('<code>Line1<br />Line2</code>').endswith("\nLine2`")

View File

@@ -94,6 +94,27 @@ def test_em_spaces():
assert md('foo <em></em> bar') == 'foo bar'
def code_samp_kbd_tests(tag):
# Basically re-use test_em() and test_em_spaces(),
assert md(f'<{tag}>Hello</{tag}>') == '`Hello`'
assert md(f'foo <{tag}>Hello</{tag}> bar') == 'foo `Hello` bar'
assert md(f'foo<{tag}> Hello</{tag}> bar') == 'foo `Hello` bar'
assert md(f'foo <{tag}>Hello </{tag}>bar') == 'foo `Hello` bar'
assert md(f'foo <{tag}></{tag}> bar') in ['foo bar', 'foo bar'] # Either is OK
def test_code():
code_samp_kbd_tests('code')
def test_samp():
code_samp_kbd_tests('samp')
def test_kbd():
code_samp_kbd_tests('kbd')
def test_h1():
assert md('<h1>Hello</h1>') == 'Hello\n=====\n\n'