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}')