Hexagonify™ a String Block
Charcoal, score 235 168

→ＷＳ⊞υιＦυＦ
«Ｐ↙ιＭ²←»Ｆ
Ｍ⊖⌈ＥυＬκ↙Ｆ
Ｆυ«Ｐ↖κ↗»Ｆ
Ｍ⊖⌈ＥυＬκ↖Ｆ
Ｆυ«Ｐ⪫κ ↘»


Try it online! Takes input as a newline-terminated list. Charcoal's problem here is that a newline is a command, so I can't just throw newlines in arbitrarily. Instead, I'm passing them as arguments to the For command, which loops over each character in the string, which here is just the one character, therefore not modifying the behaviour of the program (except to change the implicit loop variables). As such, these dummy For instructions are not included in the explanation. Explanation:

→


Another no-op, just to make the code exactly rectangular.

ＷＳ⊞υι


Input the list.

Ｆυ«Ｐ↙ιＭ²←»


Print the lower right diagonal side.

Ｍ⊖⌈ＥυＬκ↙


Move to the bottom.

Ｆυ«Ｐ↖κ↗»


Print the lower left diagonal side.

Ｍ⊖⌈ＥυＬκ↖


Move to the top left.

Ｆυ«Ｐ⪫κ ↘»


Print the top side.