{%- comment -%}

package_shortener

when threshold=2:
  turns foo.bar.bat     into: foo.b.bat
  turns foo.bar.bat.Baz into: foo.b.b.Baz
  turns foo.Qix         into: foo.Qix

params:

package="foo.bar.Baz"
threshold=2 (optional, defaults to 2)

{%- endcomment -%}

{%- comment -%}push prior state{%- endcomment -%} {%- assign __t = t -%} {%- assign __pkg_long = pkg_long -%} {%- assign __pkg_abbr = pkg_abbr -%} {%- assign __p = p -%}

{%- assign t = include.threshold | default: 2 -%} {%- assign pkg_long = include.package | split: '.' -%} {%- if pkg_long.size > t -%}

{%- assign pkg_abbr = pkg_long.first -%}
{%- for pkg in pkg_long offset: 1 -%}
  {%- unless forloop.last -%}
    {%- assign p = pkg | truncate: 1, "" | downcase -%}
    {%- assign pkg_abbr = pkg_abbr | append: "." | append: p -%}
  {%- endunless -%}
  {%- if forloop.last -%}
    {%- assign pkg_abbr = pkg_abbr | append: "." | append: pkg -%}
  {%- endif -%}
{%- endfor -%}

{%- else -%}

{%- assign pkg_abbr = include.package -%}

{%- endif -%}{{- pkg_abbr -}}

{%- comment -%}pop prior state{%- endcomment -%} {%- assign p = __p -%} {%- assign pkg_abbr = __pkg_abbr -%} {%- assign pkg_long = __pkg_long -%} {%- assign t = __t -%}