<!-- -*- mode: markdown -*- -->

Somwhere thers a transition pandoc meta -> general meta, for some meta

# Pagestate data

This is for *arg-for-fripost*

* 002 1 early
   * Meta according to wiki tags: title, titlesort
   * No tags seen at all

* 002 4 return
   * most 'pandoc_*' available
   * meta 'tag' and 'pandoc_tag' set according to pandoc meta
   * meta 'abstract' and 'pandoc_abstract' empty
   * meta 'num_authors' is 2, 'author' content as string,
     'pandoc_author' content as list

* 007 1 early
   * Meta overwritten according to wiki tags: title, titlesort, author, etc
   * Otherwise unchanged from 002 4

* 007 4 return
   * Back to 002 4

* 013 1 early
   * Back to 007 1

* 013 4--027 4 continues

# Working template variables

The sytanx is e.g. `<TMPL_VAR TITLE>`. Compare template
*nonempty.tmpl* with resulting HTML:

 * TITLE -- pandoc meta
 * DATE -- fallback to default `<TMPL_VAR DATE DEFAULT="1970-01-01">`
 * TITLESORT -- nothing
 * AUTHOR -- pandoc meta, 002 4, content as string
 * ABSTRACT -- noting
 * PANDOC_DATE -- pandoc meta
 * PANDOC_PRIMARY_AUTHOR -- pandoc meta
 * NUM_AUTHORS -- nothing
 * TAG -- nothing
 * PANDOC_TAG -- pandoc meta
 * PANDOC_TITLESORT -- pandoc meta
 * PANDOC_ABSTRACT -- nothing
 * PANDOC_TITLE -- pandoc meta
 * tags again with loop: ikiwiki meta

tags again with loop:

```
<TMPL_IF TAGS>
 |
  <TMPL_LOOP TAGS>
    <TMPL_VAR LINK>|
  </TMPL_LOOP>
      </TMPL_IF>
<BR/>
```
# Page template data

This is for *arg-for-fripost*

 * identifies

There is a need to also put things in subroutine *pagetemplate* to make
them available as variables:

```
foreach my $k (keys %{$pagestate{$page}{meta}}) {
    next unless $k =~ /^(pandoc_|fripost_)/;
    $template->param($k => $pagestate{$page}{meta}{$k});
}
$template->param('date' => $pagestate{$page}{meta}{date});
```

Things that comes populated in page template data (*pagetemplate*)
that are not available in page state data (*htmlize*) include the
following:

 * tags
 * parent links

Parent links as `$template->{param_map}->{parentlinks}` (loopable) and
`$template->{param_map}->{has_parentlinks}` (variable bolean). The
loop scope makes *page* and *url* available.

Tags as `$template->{param_map}->{tags}` (loopable). The loop scope
makes *link* available.

# Between title and sort in htmlize

Author fields filled forcefully. Title fields not.

# Structure of various meta variables

It is clear that scalar (*MetaInline*) are added and some list
elements (*MetaList*). Most list, plain, and maps are not. Read code
around "Try to add other keys as scalars, with pandoc_ prefix only."

Inspect *content look for type (`t`) of meta block elements.

*MetaInlines*
  :  
    ```
    title: Argumentera för Fripost
    ```

*MetaList* with 2 x *MetaInlines*
  :  
    ```
    author:
     - Fripost genom arrangörer
     - Fler
    ```

*MetaBlocks* with one *Plain*
  :  
    ```
    abstract: >
     gräv ner dig
     du glade
    ```

*MetaBlocks* with one *Plain*
  :  
    ```
    fripost_debug_inner: |
      tillagd i dokument arg-for-fripost
    ```

*MetaMap* with keys pointing at *MetaInlines*
  :  
    ```
    experiment:
     key_first: Värde
     key_second: värde
    ```

*MetaList* with 2 x *MetaMap* with keys pointing to *MetaInlines*
  :  
    ```
    references:
     - id: refone
       title: Ref-MetaInlines-in-MetaList
     - id: reftwo
       title: Ref-MetaInlines-in-MetaList
    ```