import { html, render } from 'https://cdn.jsdelivr.net/gh/lit/dist@3.3.3/core/lit-core.min.js';
-const re_directive = /^{(\w+):\s*([^}]+)}$/;
+// {name} or {name: argument}
+const re_directive = /^\{(\w+)(?::\s*(.*?))?\s*\}$/;
const el_song = document.getElementById('song');
const song = [];
if (line.startsWith('#'))
continue;
- let m;
- if ((m = re_directive.exec(line)) !== null) {
+ const m = re_directive.exec(line);
+ if (m) {
flushVerse();
- const [_, directive, value] = m;
+ const [, directive, value] = m;
const handler = directive_handlers[directive];
if (handler)
- handler(value);
+ handler(value ?? '');
else
console.warn('unknown directive:', line);
} else if (line === '') {