From ac68c53a7d0ca894d5a2fc6b819a0394b01f4a8d Mon Sep 17 00:00:00 2001 From: Umberto Grando Date: Mon, 1 Nov 2021 21:19:35 +0100 Subject: [PATCH 1/3] added language for multiline code --- .gitignore | 1 + markdownify/__init__.py | 6 +++++- tests/test_conversions.py | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8817941..100084d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /MANIFEST /venv build/ +.vscode/settings.json diff --git a/markdownify/__init__.py b/markdownify/__init__.py index 4d36bd6..82e7fbd 100644 --- a/markdownify/__init__.py +++ b/markdownify/__init__.py @@ -76,6 +76,7 @@ class MarkdownConverter(object): strong_em_symbol = ASTERISK sub_symbol = '' sup_symbol = '' + language = None class Options(DefaultOptions): pass @@ -324,7 +325,10 @@ class MarkdownConverter(object): def convert_pre(self, el, text, convert_as_inline): if not text: return '' - return '\n```\n%s\n```\n' % text + if not self.options['language']: + return '\n```\n%s\n```\n' % text + else: + return f'\n```{self.options["language"]}\n%s\n```\n' % text convert_s = convert_del diff --git a/tests/test_conversions.py b/tests/test_conversions.py index 0a5fba8..9b0d0f1 100644 --- a/tests/test_conversions.py +++ b/tests/test_conversions.py @@ -210,3 +210,7 @@ def test_sub(): def test_sup(): assert md('foo') == 'foo' assert md('foo', sup_symbol='^') == '^foo^' + +def test_lang(): + assert md('
test\n    foo\nbar
',language='python') == '\n```python\ntest\n foo\nbar\n```\n' + assert md('
test\n    foo\nbar
',language='javascript') == '\n```javascript\ntest\n foo\nbar\n```\n' From 9692b5e7140fa9092e001fd1f094573ba7aa59c1 Mon Sep 17 00:00:00 2001 From: AlexVonB Date: Wed, 17 Nov 2021 16:55:00 +0100 Subject: [PATCH 2/3] satisfy linter --- tests/test_conversions.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/test_conversions.py b/tests/test_conversions.py index 9b0d0f1..fd97234 100644 --- a/tests/test_conversions.py +++ b/tests/test_conversions.py @@ -211,6 +211,7 @@ def test_sup(): assert md('foo') == 'foo' assert md('foo', sup_symbol='^') == '^foo^' + def test_lang(): - assert md('
test\n    foo\nbar
',language='python') == '\n```python\ntest\n foo\nbar\n```\n' - assert md('
test\n    foo\nbar
',language='javascript') == '\n```javascript\ntest\n foo\nbar\n```\n' + assert md('
test\n    foo\nbar
', language='python') == '\n```python\ntest\n foo\nbar\n```\n' + assert md('
test\n    foo\nbar
', language='javascript') == '\n```javascript\ntest\n foo\nbar\n```\n' From cb2646cd937c947c68a206f6d9071e2c848483c3 Mon Sep 17 00:00:00 2001 From: AlexVonB Date: Wed, 17 Nov 2021 17:03:31 +0100 Subject: [PATCH 3/3] differentiated between text and code language --- markdownify/__init__.py | 7 ++----- tests/test_conversions.py | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/markdownify/__init__.py b/markdownify/__init__.py index 82e7fbd..a9572c8 100644 --- a/markdownify/__init__.py +++ b/markdownify/__init__.py @@ -76,7 +76,7 @@ class MarkdownConverter(object): strong_em_symbol = ASTERISK sub_symbol = '' sup_symbol = '' - language = None + code_language = '' class Options(DefaultOptions): pass @@ -325,10 +325,7 @@ class MarkdownConverter(object): def convert_pre(self, el, text, convert_as_inline): if not text: return '' - if not self.options['language']: - return '\n```\n%s\n```\n' % text - else: - return f'\n```{self.options["language"]}\n%s\n```\n' % text + return '\n```%s\n%s\n```\n' % (self.options['code_language'], text) convert_s = convert_del diff --git a/tests/test_conversions.py b/tests/test_conversions.py index fd97234..6cf39ac 100644 --- a/tests/test_conversions.py +++ b/tests/test_conversions.py @@ -213,5 +213,5 @@ def test_sup(): def test_lang(): - assert md('
test\n    foo\nbar
', language='python') == '\n```python\ntest\n foo\nbar\n```\n' - assert md('
test\n    foo\nbar
', language='javascript') == '\n```javascript\ntest\n foo\nbar\n```\n' + 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'