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'