def test_custom_renderer(): # custom paragraph p_plain = "@sh4nks is developing flaskbb." assert "/user/sh4nks" in markdown.render(p_plain) # custom block code with pygments highlighting (jus) b_plain = """ ``` print("Hello World") ``` """ b_plain_lang = """ ```python print("Hello World") ``` """ assert "<pre>" in markdown.render(b_plain) assert "highlight" in markdown.render(b_plain_lang) # typo in language bad_language = """ ```notpython print("Hello World") ``` """ bad_language_render = markdown.render(bad_language) assert "<pre>" in bad_language_render assert "highlight" not in bad_language_render
def test_custom_renderer(): # custom paragraph p_plain = "@sh4nks is :developing: :flaskbb:." assert "/user/sh4nks" in markdown.render(p_plain) assert "emoji/flaskbb.png" in markdown.render(p_plain) # custom block code with pygments highlighting (jus) b_plain = """ ``` print("Hello World") ``` """ b_plain_lang = """ ```python print("Hello World") ``` """ assert "<pre>" in markdown.render(b_plain) assert "highlight" in markdown.render(b_plain_lang)
def test_custom_renderer(): # custom paragraph p_expected = "<p><a href='/user/sh4nks'>@sh4nks</a> is :developing: <img class='emoji' alt='flaskbb' src='http://*****:*****@sh4nks is :developing: :flaskbb:." assert markdown.render(p_plain) == p_expected # custom block code with pygments highlighting b_expected = """\n<pre><code>print("Hello World")</code></pre>\n""" b_expected_lang = """<div class="highlight"><pre><span class="k">print</span><span class="p">(</span><span class="s">"Hello World"</span><span class="p">)</span>\n</pre></div>\n""" b_plain = """ ``` print("Hello World") ``` """ b_plain_lang = """ ```python print("Hello World") ``` """ assert markdown.render(b_plain) == b_expected assert markdown.render(b_plain_lang) == b_expected_lang
def rss(key): 'Personalized RSS feed' settings = SubscriptionSettings.query.filter( SubscriptionSettings.rss_key == key).first_or_404() user_id = settings.user_id user = User.query.get(user_id) categories = Category.get_all(user=real(user)) allowed_forums = [] for category, forums in categories: for forum, forumsread in forums: allowed_forums.append(forum.id) forums = [r.forum_id for r in Subscription.query.filter( (Subscription.user_id == user_id) & Subscription.forum_id.in_(allowed_forums)).all()] tracked = [] if settings.tracked_topics: tracked = [r.topic_id for r in db.session.query(topictracker).filter( text('topictracker.user_id == ' + str(user_id))).all()] url_root = (request.url_root[:-1] if request.url_root[-1] == '/' else request.url_root) feed = AtomFeed(_('Recent posts'), feed_url=request.url, url=url_root) posts = (Post.query.filter(Post.user_id != user_id) .join(Topic, Post.topic) .filter(Topic.id.in_(tracked) | Topic.forum_id.in_(forums)) .order_by(Post.date_created.desc()) .limit(20) .all()) for post in posts: feed.add(_('{title} by {user}').format(title=post.topic.title, user=post.username), markdown.render(post.content), content_type='html', author=post.username, url=url_root + post.url, updated=post.date_modified or post.date_created, published=post.date_created) return feed.get_response()
def render_markup(text): """Renders the given text as markdown :param text: The text that should be rendered as markdown """ return Markup(markdown.render(text))