From dbb598880285d6e3f9489f7d53f95fdebb6281ac Mon Sep 17 00:00:00 2001 From: Chris Papademetrious Date: Tue, 21 Jan 2025 11:01:11 -0500 Subject: [PATCH] add blank line before/after preformatted block (#179) Signed-off-by: chrispy --- markdownify/__init__.py | 2 +- tests/test_conversions.py | 52 +++++++++++++++++++++------------------ 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/markdownify/__init__.py b/markdownify/__init__.py index 776e75e..ef4e7ca 100644 --- a/markdownify/__init__.py +++ b/markdownify/__init__.py @@ -481,7 +481,7 @@ class MarkdownConverter(object): if self.options['code_language_callback']: code_language = self.options['code_language_callback'](el) or code_language - return '\n```%s\n%s\n```\n' % (code_language, text) + return '\n\n```%s\n%s\n```\n\n' % (code_language, text) def convert_script(self, el, text, convert_as_inline): return '' diff --git a/tests/test_conversions.py b/tests/test_conversions.py index ba8fcd8..05c6cd4 100644 --- a/tests/test_conversions.py +++ b/tests/test_conversions.py @@ -41,7 +41,7 @@ def test_a_no_autolinks(): def test_a_in_code(): assert md('Google') == '`Google`' - assert md('
Google
') == '\n```\nGoogle\n```\n' + assert md('
Google
') == '\n\n```\nGoogle\n```\n\n' def test_b(): @@ -256,23 +256,27 @@ def test_p(): def test_pre(): - assert md('
test\n    foo\nbar
') == '\n```\ntest\n foo\nbar\n```\n' - assert md('
test\n    foo\nbar
') == '\n```\ntest\n foo\nbar\n```\n' - assert md('
*this_should_not_escape*
') == '\n```\n*this_should_not_escape*\n```\n' - assert md('
*this_should_not_escape*
') == '\n```\n*this_should_not_escape*\n```\n' - assert md('
\t\tthis  should\t\tnot  normalize
') == '\n```\n\t\tthis should\t\tnot normalize\n```\n' - assert md('
\t\tthis  should\t\tnot  normalize
') == '\n```\n\t\tthis should\t\tnot normalize\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbaz
') == '\n```\nfoo\nbaz\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
', sup_symbol='^') == '\n```\nfoo\nbar\nbaz\n```\n' - assert md('
foo\nbar\nbaz
', sub_symbol='^') == '\n```\nfoo\nbar\nbaz\n```\n' + assert md('
test\n    foo\nbar
') == '\n\n```\ntest\n foo\nbar\n```\n\n' + assert md('
test\n    foo\nbar
') == '\n\n```\ntest\n foo\nbar\n```\n\n' + assert md('
*this_should_not_escape*
') == '\n\n```\n*this_should_not_escape*\n```\n\n' + assert md('
*this_should_not_escape*
') == '\n\n```\n*this_should_not_escape*\n```\n\n' + assert md('
\t\tthis  should\t\tnot  normalize
') == '\n\n```\n\t\tthis should\t\tnot normalize\n```\n\n' + assert md('
\t\tthis  should\t\tnot  normalize
') == '\n\n```\n\t\tthis should\t\tnot normalize\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbaz
') == '\n\n```\nfoo\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
', sup_symbol='^') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
', sub_symbol='^') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + assert md('
foo\nbar\nbaz
', sub_symbol='^') == '\n\n```\nfoo\nbar\nbaz\n```\n\n' + + assert md('foo
bar
baz', sub_symbol='^') == 'foo\n\n```\nbar\n```\n\nbaz' + assert md("

foo

\n
bar
\n

baz

", sub_symbol="^") == "\n\nfoo\n\n```\nbar\n```\n\nbaz" def test_script(): @@ -315,17 +319,17 @@ def test_sup(): def test_lang(): - assert md('
test\n    foo\nbar
', code_language='python') == '\n```python\ntest\n foo\nbar\n```\n' - assert md('
test\n    foo\nbar
', code_language='javascript') == '\n```javascript\ntest\n foo\nbar\n```\n' + assert md('
test\n    foo\nbar
', code_language='python') == '\n\n```python\ntest\n foo\nbar\n```\n\n' + assert md('
test\n    foo\nbar
', code_language='javascript') == '\n\n```javascript\ntest\n foo\nbar\n```\n\n' def test_lang_callback(): def callback(el): return el['class'][0] if el.has_attr('class') else None - assert md('
test\n    foo\nbar
', code_language_callback=callback) == '\n```python\ntest\n foo\nbar\n```\n' - assert md('
test\n    foo\nbar
', code_language_callback=callback) == '\n```javascript\ntest\n foo\nbar\n```\n' - assert md('
test\n    foo\nbar
', code_language_callback=callback) == '\n```javascript\ntest\n foo\nbar\n```\n' + assert md('
test\n    foo\nbar
', code_language_callback=callback) == '\n\n```python\ntest\n foo\nbar\n```\n\n' + assert md('
test\n    foo\nbar
', code_language_callback=callback) == '\n\n```javascript\ntest\n foo\nbar\n```\n\n' + assert md('
test\n    foo\nbar
', code_language_callback=callback) == '\n\n```javascript\ntest\n foo\nbar\n```\n\n' def test_spaces(): @@ -335,4 +339,4 @@ def test_spaces(): assert md('test
text
after') == 'test\n> text\n\nafter' assert md('
  1. x
  2. y
') == '\n\n1. x\n2. y\n' assert md('