Improve metadata expansion of sequence data
diff --git a/content/foundation/index.ezmd b/content/foundation/index.ezmd
index ccb8d4e..d34c158 100644
--- a/content/foundation/index.ezmd
+++ b/content/foundation/index.ezmd
@@ -82,9 +82,9 @@
| | | |
|-----------|-------------|-------------|
-| {{ board.0.name }} | {{ board.1.name }} | {{ board.2.name }} |
-| {{ board.3.name }} | {{ board.4.name }} | {{ board.5.name }} |
-| {{ board.6.name }} | {{ board.7.name }} | {{ board.8.name }} |
+| {{ board(0).name }} | {{ board(1).name }} | {{ board(2).name }} |
+| {{ board(3).name }} | {{ board(4).name }} | {{ board(5).name }} |
+| {{ board(6).name }} | {{ board(7).name }} | {{ board(8).name }} |
#### Officers ####
diff --git a/theme/plugins/asfgenid.py b/theme/plugins/asfgenid.py
index 1c49973..e20a9ff 100644
--- a/theme/plugins/asfgenid.py
+++ b/theme/plugins/asfgenid.py
@@ -41,7 +41,9 @@
ELEMENTID_RE = re.compile(r'(?:[ \t]*[{\[][ \t]*(?P<type>[#.])(?P<id>[-._:a-zA-Z0-9 ]+)[}\]])(\n|$)')
# Find {{ metadata }}
-METADATA_RE = re.compile(r'{{\s*(?P<meta>[-._:a-zA-Z0-9]+)\s*}}')
+METADATA_RE = re.compile(r'{{\s*(?P<meta>[-._:a-zA-Z0-9\(\)]+)\s*}}')
+LEFTPAREN_RE = re.compile(r'\(')
+RIGHTPAREN_RE = re.compile(r'\)')
# Find table tags
TABLE_RE = re.compile(r'^table')
@@ -180,18 +182,19 @@
m = METADATA_RE.search(this_string)
if m:
this_data = m.group(1).strip()
+ this_data = re.sub(LEFTPAREN_RE, '[', this_data)
+ this_data = re.sub(RIGHTPAREN_RE, ']', this_data)
format_string = '{{{0}}}'.format(this_data)
parts = this_data.split('.')
+ subs = parts[0].split('[')
try:
# should refactor this to be more general
- if isinstance(metadata[parts[0]], dict):
+ if len(subs) == 1 and isinstance(metadata[parts[0]], dict):
ref = metadata
for part in parts:
ref = ref[part]
new_string = ref
else:
- if len(parts) == 3:
- this_data = f'{parts[0]}[{parts[1]}].{parts[2]}'
format_string = '{{{0}}}'.format(this_data)
new_string = format_string.format(**metadata)
print(f'{{{{{m.group(1)}}}}} -> {new_string}')