donnikitos/vite-plugin-html-inject

Argument replacement happens only once

rshekhtm opened this issue · 2 comments

Hi there - really useful plugin! Running into a small issue, however. I am trying to pass a title argument to an HTML snippet, which needs to it in two place (one in <title> tag, and also in an og:title meta tag), However the plugin currently replaces only the first instance. I could specify two identical title arguments, but that's ugly. I assume this is because replace is doing basic string substitution and per docs, "A regexp with the g flag is the only case where replace() replaces more than once."

@donnikitos привет!
Спасибо за плагин!
Нашел два бага и исправил локально. Возможно ты найдешь время внести изменения в код библиотеки. Это не займет много времени.

  1. В регулярном выражении attrMatcher присутствует вот такой кусочек (?:s)?, из-за этого если имя передаваемого аттрибута начинает на 's', например 'secondItem', то первая буква s вырезается. Не очень понял зачем это правило, я его удалил и все стало работать ок.
  2. Вторая проблема указано выше Романом и она легко исправляется заменой replace на replaceAll в этой строке data = data.replace({=$${attr[1]}}, attr[2]);

Удачи!

Thank you guys for submitting and notifying me about the bugs.
The new and fixed version of the plugin is already online and fully working.