diff --git a/zerver/tests/test_bugdown.py b/zerver/tests/test_bugdown.py index be9685fdb7..cb3d63be9f 100644 --- a/zerver/tests/test_bugdown.py +++ b/zerver/tests/test_bugdown.py @@ -843,6 +843,19 @@ class BugdownApiTests(ZulipTestCase): self.assertEqual(data['rendered'], u'
That is a bold statement
') + def test_render_message_api(self): + # type: () -> None + content = 'This mentions #**Denmark** and @**King Hamlet**.' + result = self.client_get( + '/api/v1/messages/render', + dict(content=content), + **self.api_auth('othello@zulip.com') + ) + self.assert_json_success(result) + data = ujson.loads(result.content) + self.assertEqual(data['rendered'], + u'This mentions #Denmark and @King Hamlet.
') + class BugdownErrorTests(ZulipTestCase): def test_bugdown_error_handling(self): # type: () -> None diff --git a/zerver/views/messages.py b/zerver/views/messages.py index 2f5cb5d50b..4192e6726c 100644 --- a/zerver/views/messages.py +++ b/zerver/views/messages.py @@ -29,6 +29,7 @@ from zerver.lib.message import ( access_message, MessageDict, extract_message_dict, + render_markdown, stringify_message_dict, ) from zerver.lib.response import json_success, json_error @@ -940,7 +941,12 @@ def json_fetch_raw_message(request, user_profile, @has_request_variables def render_message_backend(request, user_profile, content=REQ()): # type: (HttpRequest, UserProfile, text_type) -> HttpResponse - rendered_content = bugdown.convert(content, user_profile.realm.domain) + message = Message() + message.sender = user_profile + message.content = content + message.sending_client = request.client + + rendered_content = render_markdown(message, content, domain=user_profile.realm.domain) return json_success({"rendered": rendered_content}) @authenticated_json_post_view