mirror of https://github.com/zulip/zulip.git
requirements: Upgrade markdown to 3.3.1.
Upstream has slightly changed the whitespace around stashes. Take this opportunity to clean up the extra blank lines we were outputting. Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
3e8e4b9cad
commit
d81a93cdf3
|
@ -184,7 +184,7 @@ stream_data.add_sub(amp_stream);
|
|||
run_test("fenced_block_defaults", () => {
|
||||
const input = "\n```\nfenced code\n```\n\nand then after\n";
|
||||
const expected =
|
||||
'\n\n<div class="codehilite"><pre><span></span><code>fenced code\n</code></pre></div>\n\n\n\nand then after\n\n';
|
||||
'\n\n<div class="codehilite"><pre><span></span><code>fenced code\n</code></pre></div>\n\n\nand then after\n\n';
|
||||
const output = fenced_code.process_fenced_code(input);
|
||||
assert.equal(output, expected);
|
||||
});
|
||||
|
@ -294,13 +294,13 @@ run_test("marked", () => {
|
|||
{
|
||||
input: "\n```\nfenced code\n```\n\nand then after\n",
|
||||
expected:
|
||||
'<div class="codehilite"><pre><span></span><code>fenced code\n</code></pre></div>\n\n\n<p>and then after</p>',
|
||||
'<div class="codehilite"><pre><span></span><code>fenced code\n</code></pre></div>\n<p>and then after</p>',
|
||||
},
|
||||
{
|
||||
input:
|
||||
"\n```\n fenced code trailing whitespace \n```\n\nand then after\n",
|
||||
expected:
|
||||
'<div class="codehilite"><pre><span></span><code> fenced code trailing whitespace\n</code></pre></div>\n\n\n<p>and then after</p>',
|
||||
'<div class="codehilite"><pre><span></span><code> fenced code trailing whitespace\n</code></pre></div>\n<p>and then after</p>',
|
||||
},
|
||||
{
|
||||
input: "* a\n* list \n* here",
|
||||
|
@ -309,12 +309,12 @@ run_test("marked", () => {
|
|||
{
|
||||
input: "\n```c#\nfenced code special\n```\n\nand then after\n",
|
||||
expected:
|
||||
'<div class="codehilite" data-code-language="C#"><pre><span></span><code>fenced code special\n</code></pre></div>\n\n\n<p>and then after</p>',
|
||||
'<div class="codehilite" data-code-language="C#"><pre><span></span><code>fenced code special\n</code></pre></div>\n<p>and then after</p>',
|
||||
},
|
||||
{
|
||||
input: "\n```vb.net\nfenced code dot\n```\n\nand then after\n",
|
||||
expected:
|
||||
'<div class="codehilite" data-code-language="VB.net"><pre><span></span><code>fenced code dot\n</code></pre></div>\n\n\n<p>and then after</p>',
|
||||
'<div class="codehilite" data-code-language="VB.net"><pre><span></span><code>fenced code dot\n</code></pre></div>\n<p>and then after</p>',
|
||||
},
|
||||
{
|
||||
input: "Some text first\n* a\n* list \n* here\n\nand then after",
|
||||
|
|
|
@ -578,9 +578,9 @@ lxml==4.5.2 \
|
|||
markdown-include==0.6.0 \
|
||||
--hash=sha256:6f5d680e36f7780c7f0f61dca53ca581bd50d1b56137ddcd6353efafa0c3e4a2 \
|
||||
# via -r requirements/common.in
|
||||
markdown==3.2.2 \
|
||||
--hash=sha256:1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17 \
|
||||
--hash=sha256:c467cd6233885534bf0fe96e62e3cf46cfc1605112356c4f9981512b8174de59 \
|
||||
markdown==3.3.1 \
|
||||
--hash=sha256:10db1204a6c4aff7c7cf3cf25cc02761703baea54b6fb5e2b9ce2c186d81116f \
|
||||
--hash=sha256:c3ce9ebb035c078cac0f2036068d054e7dc34354eeecc49c173c33c96b124af6 \
|
||||
# via -r requirements/common.in, markdown-include
|
||||
markupsafe==1.1.1 \
|
||||
--hash=sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473 \
|
||||
|
|
|
@ -407,9 +407,9 @@ lxml==4.5.2 \
|
|||
markdown-include==0.6.0 \
|
||||
--hash=sha256:6f5d680e36f7780c7f0f61dca53ca581bd50d1b56137ddcd6353efafa0c3e4a2 \
|
||||
# via -r requirements/common.in
|
||||
markdown==3.2.2 \
|
||||
--hash=sha256:1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17 \
|
||||
--hash=sha256:c467cd6233885534bf0fe96e62e3cf46cfc1605112356c4f9981512b8174de59 \
|
||||
markdown==3.3.1 \
|
||||
--hash=sha256:10db1204a6c4aff7c7cf3cf25cc02761703baea54b6fb5e2b9ce2c186d81116f \
|
||||
--hash=sha256:c3ce9ebb035c078cac0f2036068d054e7dc34354eeecc49c173c33c96b124af6 \
|
||||
# via -r requirements/common.in, markdown-include
|
||||
markupsafe==1.1.1 \
|
||||
--hash=sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473 \
|
||||
|
|
|
@ -51,7 +51,7 @@ export function wrap_code(code, lang) {
|
|||
}
|
||||
// Trim trailing \n until there's just one left
|
||||
// This mirrors how pygments handles code input
|
||||
return header + _.escape(code.replace(/^\n+|\n+$/g, "")) + "\n</code></pre></div>\n";
|
||||
return header + _.escape(code.replace(/^\n+|\n+$/g, "")) + "\n</code></pre></div>";
|
||||
}
|
||||
|
||||
function wrap_quote(text) {
|
||||
|
|
|
@ -1188,8 +1188,6 @@ Parser.prototype.parse = function(src) {
|
|||
safe = stash[2];
|
||||
if (!safe) {
|
||||
html = escape(html);
|
||||
} else {
|
||||
html += '\n';
|
||||
}
|
||||
output = output.replace('<p>' + key + '</p>', html)
|
||||
}
|
||||
|
|
|
@ -44,4 +44,4 @@ API_FEATURE_LEVEL = 34
|
|||
# historical commits sharing the same major version, in which case a
|
||||
# minor version bump suffices.
|
||||
|
||||
PROVISION_VERSION = '111.3'
|
||||
PROVISION_VERSION = '112.0'
|
||||
|
|
|
@ -391,7 +391,7 @@ class FencedBlockPreprocessor(markdown.preprocessors.Preprocessor):
|
|||
lang=(lang or None),
|
||||
noclasses=self.codehilite_conf['noclasses'][0])
|
||||
|
||||
code = highliter.hilite()
|
||||
code = highliter.hilite().rstrip('\n')
|
||||
else:
|
||||
code = CODE_WRAP.format(langclass, self._escape(text))
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
{
|
||||
"name": "ampampamp",
|
||||
"input": "& & &amp;\n~~~~\n& & &amp;\n~~~~\n & & &amp;",
|
||||
"expected_output": "<p>& & &amp;</p>\n<div class=\"codehilite\"><pre><span></span><code>& &amp; &amp;amp;\n</code></pre></div>\n\n\n<div class=\"codehilite\"><pre><span></span><code>& &amp; &amp;amp;\n</code></pre></div>"
|
||||
"expected_output": "<p>& & &amp;</p>\n<div class=\"codehilite\"><pre><span></span><code>& &amp; &amp;amp;\n</code></pre></div>\n<div class=\"codehilite\"><pre><span></span><code>& &amp; &amp;amp;\n</code></pre></div>"
|
||||
},
|
||||
{
|
||||
"name": "basic_paragraph",
|
||||
|
@ -34,8 +34,8 @@
|
|||
{
|
||||
"name": "codeblock_multiline",
|
||||
"input": "Hamlet once said\n~~~~\ndef func():\n x = 1\n\n y = 2\n\n z = 3\n~~~~\nAnd all was good.",
|
||||
"expected_output": "<p>Hamlet once said</p>\n<div class=\"codehilite\"><pre><span></span><code>def func():\n x = 1\n\n y = 2\n\n z = 3\n</code></pre></div>\n\n\n<p>And all was good.</p>",
|
||||
"text_content": "Hamlet once said\ndef func():\n x = 1\n\n y = 2\n\n z = 3\n\n\n\nAnd all was good."
|
||||
"expected_output": "<p>Hamlet once said</p>\n<div class=\"codehilite\"><pre><span></span><code>def func():\n x = 1\n\n y = 2\n\n z = 3\n</code></pre></div>\n<p>And all was good.</p>",
|
||||
"text_content": "Hamlet once said\ndef func():\n x = 1\n\n y = 2\n\n z = 3\n\nAnd all was good."
|
||||
},
|
||||
{
|
||||
"name": "test",
|
||||
|
@ -45,8 +45,8 @@
|
|||
{
|
||||
"name": "codeblock_trailing_whitespace",
|
||||
"input": "Hamlet once said\n~~~~\ndef func():\n x = 1\n\n y = 2\t\t\n\n z = 3 \n~~~~\nAnd all was good.",
|
||||
"expected_output": "<p>Hamlet once said</p>\n<div class=\"codehilite\"><pre><span></span><code>def func():\n x = 1\n\n y = 2\n\n z = 3\n</code></pre></div>\n\n\n<p>And all was good.</p>",
|
||||
"text_content": "Hamlet once said\ndef func():\n x = 1\n\n y = 2\n\n z = 3\n\n\n\nAnd all was good."
|
||||
"expected_output": "<p>Hamlet once said</p>\n<div class=\"codehilite\"><pre><span></span><code>def func():\n x = 1\n\n y = 2\n\n z = 3\n</code></pre></div>\n<p>And all was good.</p>",
|
||||
"text_content": "Hamlet once said\ndef func():\n x = 1\n\n y = 2\n\n z = 3\n\nAnd all was good."
|
||||
},
|
||||
{
|
||||
"name": "inline_code_spaces",
|
||||
|
@ -63,14 +63,14 @@
|
|||
{
|
||||
"name": "codeblock_backticks",
|
||||
"input": "\n```\nfenced code\n```\n\n```inline code```\n",
|
||||
"expected_output": "<div class=\"codehilite\"><pre><span></span><code>fenced code\n</code></pre></div>\n\n\n<p><code>inline code</code></p>",
|
||||
"text_content": "fenced code\n\n\n\ninline code"
|
||||
"expected_output": "<div class=\"codehilite\"><pre><span></span><code>fenced code\n</code></pre></div>\n<p><code>inline code</code></p>",
|
||||
"text_content": "fenced code\n\ninline code"
|
||||
},
|
||||
{
|
||||
"name": "hanging_multi_codeblock",
|
||||
"input": "Hamlet said:\n~~~~\ndef speak(self):\n x = 1\n# Comment to make this code block longer to test Trac #1162\n~~~~\n\nThen he mentioned ````y = 4 + x**2```` and\n~~~~\ndef foobar(self):\n return self.baz()",
|
||||
"expected_output": "<p>Hamlet said:</p>\n<div class=\"codehilite\"><pre><span></span><code>def speak(self):\n x = 1\n# Comment to make this code block longer to test Trac #1162\n</code></pre></div>\n\n\n<p>Then he mentioned <code>y = 4 + x**2</code> and</p>\n<div class=\"codehilite\"><pre><span></span><code>def foobar(self):\n return self.baz()\n</code></pre></div>",
|
||||
"text_content": "Hamlet said:\ndef speak(self):\n x = 1\n# Comment to make this code block longer to test Trac #1162\n\n\n\nThen he mentioned y = 4 + x**2 and\ndef foobar(self):\n return self.baz()\n"
|
||||
"expected_output": "<p>Hamlet said:</p>\n<div class=\"codehilite\"><pre><span></span><code>def speak(self):\n x = 1\n# Comment to make this code block longer to test Trac #1162\n</code></pre></div>\n<p>Then he mentioned <code>y = 4 + x**2</code> and</p>\n<div class=\"codehilite\"><pre><span></span><code>def foobar(self):\n return self.baz()\n</code></pre></div>",
|
||||
"text_content": "Hamlet said:\ndef speak(self):\n x = 1\n# Comment to make this code block longer to test Trac #1162\n\nThen he mentioned y = 4 + x**2 and\ndef foobar(self):\n return self.baz()\n"
|
||||
},
|
||||
{
|
||||
"name": "fenced_quote",
|
||||
|
@ -87,7 +87,7 @@
|
|||
{
|
||||
"name": "complexly_nested_quote",
|
||||
"input": "I heard about this second hand...\n~~~ quote\n\nHe said:\n~~~ quote\nThe customer is complaining.\n\nThey looked at this code:\n``` \ndef hello(): print 'hello\n```\nThey would prefer:\n~~~\ndef hello()\n puts 'hello'\nend\n~~~\n\nPlease advise.\n~~~\n\nShe said:\n~~~ quote\nJust send them this:\n```\necho \"hello\n\"\n```\n~~~",
|
||||
"expected_output": "<p>I heard about this second hand...</p>\n<blockquote>\n<p>He said:</p>\n<blockquote>\n<p>The customer is complaining.</p>\n<p>They looked at this code:</p>\n<div class=\"codehilite\"><pre><span></span><code>def hello(): print 'hello\n</code></pre></div>\n\n\n<p>They would prefer:</p>\n</blockquote>\n<p>def hello()<br>\n puts 'hello'<br>\nend</p>\n</blockquote>\n<p>Please advise.</p>\n<div class=\"codehilite\"><pre><span></span><code>She said:\n~~~ quote\nJust send them this:\n```\necho "hello\n"\n```\n</code></pre></div>",
|
||||
"expected_output": "<p>I heard about this second hand...</p>\n<blockquote>\n<p>He said:</p>\n<blockquote>\n<p>The customer is complaining.</p>\n<p>They looked at this code:</p>\n<div class=\"codehilite\"><pre><span></span><code>def hello(): print 'hello\n</code></pre></div>\n<p>They would prefer:</p>\n</blockquote>\n<p>def hello()<br>\n puts 'hello'<br>\nend</p>\n</blockquote>\n<p>Please advise.</p>\n<div class=\"codehilite\"><pre><span></span><code>She said:\n~~~ quote\nJust send them this:\n```\necho "hello\n"\n```\n</code></pre></div>",
|
||||
"text_content": "I heard about this second hand...\n> He said:\n> > The customer is complaining.\n> > They looked at this code:\n> > def hello(): print 'hello\n> > They would prefer:\n> def hello()\n> puts 'hello'\n> end\n\nPlease advise.\nShe said:\n~~~ quote\nJust send them this:\n```\necho \"hello\n\"\n```\n"
|
||||
},
|
||||
{
|
||||
|
@ -860,39 +860,39 @@
|
|||
{
|
||||
"name": "spoilers_fenced_spoiler",
|
||||
"input": "```spoiler header\ncontent\n```\noutside spoiler\n",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p>content</p>\n</div></div>\n\n<p>outside spoiler</p>",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p>content</p>\n</div></div>\n<p>outside spoiler</p>",
|
||||
"text_content": "header (…)\noutside spoiler"
|
||||
},
|
||||
{
|
||||
"name": "spoilers_empty_header",
|
||||
"input": "```spoiler\ncontent\n```\noutside spoiler\n",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p>content</p>\n</div></div>\n\n<p>outside spoiler</p>",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p>content</p>\n</div></div>\n<p>outside spoiler</p>",
|
||||
"text_content": "(…)\noutside spoiler"
|
||||
},
|
||||
{
|
||||
"name": "spoilers_script_tags",
|
||||
"input": "```spoiler <script>alert(1)</script>\n<script>alert(1)</script>\n```",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p><script>alert(1)</script></p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p><script>alert(1)</script></p>\n</div></div>",
|
||||
"marked_expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p><script>alert(1)</script>\n\n</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p><script>alert(1)</script>\n\n</p>\n</div></div>",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p><script>alert(1)</script></p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p><script>alert(1)</script></p>\n</div></div>",
|
||||
"marked_expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p><script>alert(1)</script>\n\n</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p><script>alert(1)</script>\n\n</p>\n</div></div>",
|
||||
"text_content": "<script>alert(1)</script> (…)\n"
|
||||
},
|
||||
{
|
||||
"name": "spoilers_block_quote",
|
||||
"input": "~~~quote\n```spoiler header\ncontent\n```\noutside spoiler\n~~~\noutside quote",
|
||||
"expected_output": "<blockquote>\n<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p>content</p>\n</div></div>\n\n<p>outside spoiler</p>\n</blockquote>\n<p>outside quote</p>",
|
||||
"expected_output": "<blockquote>\n<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p>content</p>\n</div></div>\n<p>outside spoiler</p>\n</blockquote>\n<p>outside quote</p>",
|
||||
"text_content": "> header (…)\n> outside spoiler\n\noutside quote"
|
||||
},
|
||||
{
|
||||
"name": "spoilers_with_header_markdown",
|
||||
"input": "```spoiler [Header](https://example.com) :smile:\ncontent\n```",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p><a href=\"https://example.com\">Header</a> <span aria-label=\"smile\" class=\"emoji emoji-1f642\" role=\"img\" title=\"smile\">:smile:</span></p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p>content</p>\n</div></div>",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p><a href=\"https://example.com\">Header</a> <span aria-label=\"smile\" class=\"emoji emoji-1f642\" role=\"img\" title=\"smile\">:smile:</span></p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p>content</p>\n</div></div>",
|
||||
"text_content": "Header 🙂 (…)\n"
|
||||
},
|
||||
{
|
||||
"name": "spoiler_with_inline_image",
|
||||
"input": "```spoiler header\nContent http://example.com/image.png\n```",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p>Content <a href=\"http://example.com/image.png\">http://example.com/image.png</a></p>\n<div class=\"message_inline_image\"><a href=\"http://example.com/image.png\"><img data-src-fullsize=\"/thumbnail?url=http%3A%2F%2Fexample.com%2Fimage.png&size=full\" src=\"/thumbnail?url=http%3A%2F%2Fexample.com%2Fimage.png&size=thumbnail\"></a></div></div></div>",
|
||||
"marked_expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p>Content <a href=\"http://example.com/image.png\">http://example.com/image.png</a></p>\n</div></div>",
|
||||
"expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p>Content <a href=\"http://example.com/image.png\">http://example.com/image.png</a></p>\n<div class=\"message_inline_image\"><a href=\"http://example.com/image.png\"><img data-src-fullsize=\"/thumbnail?url=http%3A%2F%2Fexample.com%2Fimage.png&size=full\" src=\"/thumbnail?url=http%3A%2F%2Fexample.com%2Fimage.png&size=thumbnail\"></a></div></div></div>",
|
||||
"marked_expected_output": "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p>header</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p>Content <a href=\"http://example.com/image.png\">http://example.com/image.png</a></p>\n</div></div>",
|
||||
"text_content": "header (…)\n"
|
||||
}
|
||||
],
|
||||
|
|
|
@ -990,7 +990,7 @@ class ImportExportTest(ZulipTestCase):
|
|||
original_msg = Message.objects.get(content=special_characters_message, sender__realm=original_realm)
|
||||
self.assertEqual(
|
||||
original_msg.rendered_content,
|
||||
'<div class="codehilite"><pre><span></span><code>'\n</code></pre></div>\n\n\n'
|
||||
'<div class="codehilite"><pre><span></span><code>'\n</code></pre></div>\n'
|
||||
f'<p><span class="user-mention" data-user-id="{orig_polonius_user.id}">@Polonius</span></p>',
|
||||
)
|
||||
imported_polonius_user = UserProfile.objects.get(delivery_email=self.example_email("polonius"),
|
||||
|
|
|
@ -725,7 +725,7 @@ class MarkdownTest(ZulipTestCase):
|
|||
msg = """\n```spoiler Check out this Pycon Video\nhttps://www.youtube.com/watch?v=0c46YHS3RY8\n```"""
|
||||
converted = markdown_convert_wrapper(msg)
|
||||
|
||||
self.assertEqual(converted, '<div class="spoiler-block"><div class="spoiler-header">\n\n<p>Check out this Pycon Video</p>\n</div><div class="spoiler-content" aria-hidden="true">\n\n<p><a href="https://www.youtube.com/watch?v=0c46YHS3RY8">https://www.youtube.com/watch?v=0c46YHS3RY8</a></p>\n<div class="youtube-video message_inline_image"><a data-id="0c46YHS3RY8" href="https://www.youtube.com/watch?v=0c46YHS3RY8"><img src="https://i.ytimg.com/vi/0c46YHS3RY8/default.jpg"></a></div></div></div>')
|
||||
self.assertEqual(converted, '<div class="spoiler-block"><div class="spoiler-header">\n<p>Check out this Pycon Video</p>\n</div><div class="spoiler-content" aria-hidden="true">\n<p><a href="https://www.youtube.com/watch?v=0c46YHS3RY8">https://www.youtube.com/watch?v=0c46YHS3RY8</a></p>\n<div class="youtube-video message_inline_image"><a data-id="0c46YHS3RY8" href="https://www.youtube.com/watch?v=0c46YHS3RY8"><img src="https://i.ytimg.com/vi/0c46YHS3RY8/default.jpg"></a></div></div></div>')
|
||||
|
||||
# Test youtube urls in normal messages.
|
||||
msg = '[Youtube link](https://www.youtube.com/watch?v=0c46YHS3RY8)'
|
||||
|
@ -896,7 +896,7 @@ class MarkdownTest(ZulipTestCase):
|
|||
msg = '```spoiler secret tweet\nTweet: http://twitter.com/wdaher/status/287977969287315456\n```'
|
||||
converted = markdown_convert_wrapper(msg)
|
||||
|
||||
rendered_spoiler = "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n\n<p>secret tweet</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n\n<p>Tweet: {}</p>\n{}</div></div>"
|
||||
rendered_spoiler = "<div class=\"spoiler-block\"><div class=\"spoiler-header\">\n<p>secret tweet</p>\n</div><div class=\"spoiler-content\" aria-hidden=\"true\">\n<p>Tweet: {}</p>\n{}</div></div>"
|
||||
self.assertEqual(converted, rendered_spoiler.format(
|
||||
make_link('http://twitter.com/wdaher/status/287977969287315456'),
|
||||
make_inline_twitter_preview('http://twitter.com/wdaher/status/287977969287315456', normal_tweet_html)))
|
||||
|
@ -2134,8 +2134,6 @@ class MarkdownTest(ZulipTestCase):
|
|||
<div class="codehilite"><pre><span></span><code>&copy;
|
||||
&copy;
|
||||
</code></pre></div>
|
||||
|
||||
|
||||
<p>Test quote:</p>
|
||||
<blockquote>
|
||||
<p>©</p>
|
||||
|
|
Loading…
Reference in New Issue