Jimmy
Jimmy

Reputation: 12487

Stripping out Babel in Flask Jinja Template

I’m working with this tutorial which has the following lines:

            {% set user_link %}
                <span class="user_popup">
                    <a href="{{ url_for('main.user', username=post.author.username) }}">
                        {{ post.author.username }}
                    </a>
                </span>
            {% endset %}
            {{ _('%(username)s said %(when)s',
                    username=user_link, when=moment(post.timestamp).fromNow())  }}

It looks this was specifically because he uses Babel translate, which he talks about on his blog.

My question is, how can I make this work when I strip all the Babel code out, because I don’t need any translation, specifically the bit after end set.

This is the sort of thing I tried but could never get the replacement correct:

{{username, username=user_link }} said {{when,when=moment(post.timestamp).fromNow())}}

Upvotes: 0

Views: 49

Answers (1)

β.εηοιτ.βε
β.εηοιτ.βε

Reputation: 39159

{{ user_link }} said {{ moment(post.timestamp).fromNow() }}

The arguments after the string define the replacement map for the different keywords, so:

  • %(username)s will be replaced by user_link, because username=user_link
  • $(when)s will be replaced by moment(post.timestamp).fromNow(), because when=moment(post.timestamp).fromNow()

The s ending the $(placeholder)s is there to indicate that the placeholder should be considered as a string.

Upvotes: 1

Related Questions