{% if article.contributions_set.all %}
{% for contributions in article.contributions_set.all|dictsort:"id" %}
{% if forloop.counter0 and not contributions.role %}, {% endif %}
{% if contributions.role %}
{% if forloop.counter0 %}<br />{% endif %}
<span class="highlight">{{ contributions.role }}</span>
{% endif %}
{% if contributions.author %}<a href="/authors/{{ contributions.author.name }}/">{% endif %}
{% if not contributions.alias %}{{ contributions.author.name }}{% else %}{{ contributions.alias }}{% endif %}
{% if contributions.author %}</a>{% endif %}
{% endfor %}
{% endif %}
Pretty! Just pretend that the indents were preserved into LJ. The first line looks a bit clunky yet but it does seem to work. (contributions is an intermediate manytomany model with null=True on author_id.)
ETA: I replaced the anteantepenultimate line with the simpler {{ contributions.author }}. It's such a common request that I thought it might as well be the __unicode__.