예제 #1
0
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
예제 #2
0
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)
예제 #3
0
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">&quot;Hello World&quot;</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
예제 #4
0
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()
예제 #5
0
파일: helpers.py 프로젝트: zhy0313/hotface
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))
예제 #6
0
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))