« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/language.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things/language.js')
-rw-r--r--src/data/things/language.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/data/things/language.js b/src/data/things/language.js
index 91774761..43f69f3d 100644
--- a/src/data/things/language.js
+++ b/src/data/things/language.js
@@ -354,13 +354,19 @@ export class Language extends Thing {
 
       partInProgress += template.slice(lastIndex, match.index);
 
-      for (const insertionItem of html.smush(insertion).content) {
+      const insertionItems = html.smush(insertion).content;
+      if (insertionItems.length === 1 && typeof insertionItems[0] !== 'string') {
+        // Push the insertion exactly as it is, rather than manipulating.
+        if (partInProgress) outputParts.push(partInProgress);
+        outputParts.push(insertion);
+        partInProgress = '';
+      } else for (const insertionItem of insertionItems) {
         if (typeof insertionItem === 'string') {
           // Join consecutive strings together.
           partInProgress += insertionItem;
         } else {
           // Push the string part in progress, then the insertion as-is.
-          outputParts.push(partInProgress);
+          if (partInProgress) outputParts.push(partInProgress);
           outputParts.push(insertionItem);
           partInProgress = '';
         }