Capitalise names with apostrophes

Answered

1 Comments

  • Jason Littrell

    Hey Sal. Here's one way to can accomplish that (whitespace added for clarity):

    {% assign names = ticket.requester.name | split: ' ' %}
    {% for name in names %}
        {% if name contains "'" %}
            {% assign split_name = name | split: "'" %}
            {% for part in split_name %}
                {{part | capitalize}}{% unless forloop.last %}'{% endunless %}
            {% endfor %}
        {% else %}
            {{name | capitalize}}
        {% endif %}
        {% unless forloop.last %}{{' '}}{% endunless %}
    {% endfor %}

    Here it is without spaces:

    {% assign names = ticket.requester.name | split: ' ' %}{% for name in names %}{% if name contains "'" %}{% assign split_name = name | split: "'" %}{% for part in split_name %}{{part | capitalize}}{% unless forloop.last %}'{% endunless %}{% endfor %}{% else %}{{name | capitalize}}{% endif %}{% unless forloop.last %}{{' '}}{% endunless %}{% endfor %}

    That last `unless` block has a placeholder with a single space text string because a regular space kept getting collapsed when I applied the code with a macro. If you use the code in a dynamic content placeholder, a regular space should work fine and you could even use the first code block by adding a dash inside the opening or closing tags where you want whitespace to be removed (see here for more info).

    You'll probably need to test for edge cases, and the code doesn't account for user names formatted as "<last_name>, <first_name>", but hopefully it's enough to get you started.

    0

Please sign in to leave a comment.

Powered by Zendesk