Hi, I'm trying to resolve citations inside attributes, i.e. something like

```{.c caption="nice piece, cf. [@FOO]"}
int main() {
    return 42;
}
```

Since Pandoc/Citeproc currently do not handle citations of this kind, I'm trying to resolve this manually with a Lua filter: Put this piece into a new temporary document, run Pandoc+Citeproc on this document using `pandoc.utils.run_json_filter`, retrieve the processed string and put back it in the original place, i.e. the caption.

However, this approach seems to be not working?

As a MWE I've tried this document `test.md`:

```markdown
---
references:
- author:
- family: Wuppie
id: FOO
title: Lorem Ipsum
---
see [@FOO]
```

Running `pandoc -t json --citeproc test.md` the result is 
```json
{"pandoc-api-version":[1,22],"meta":{"references":{"t":"MetaList","c":[{"t":"MetaMap","c":{"author":{"t":"MetaList","c":[{"t":"MetaMap","c":{"family":{"t":"MetaInlines","c":[{"t":"Str","c":"Wuppie"}]}}}]},"id":{"t":"MetaInlines","c":[{"t":"Str","c":"FOO"}]},"title":{"t":"MetaInlines","c":[{"t":"Str","c":"Lorem"},{"t":"Space"},{"t":"Str","c":"Ipsum"}]}}}]}},"blocks":[{"t":"Para","c":[{"t":"Str","c":"see"},{"t":"Space"},{"t":"Cite","c":[[{"citationId":"FOO","citationPrefix":[],"citationSuffix":[],"citationMode":{"t":"NormalCitation"},"citationNoteNum":1,"citationHash":0}],[{"t":"Str","c":"(Wuppie,"},{"t":"Space"},{"t":"Str","c":"n.d.)"}]]}]},{"t":"Div","c":[["refs",["references","csl-bib-body","hanging-indent"],[]],[{"t":"Div","c":[["ref-FOO",["csl-entry"],[]],[{"t":"Para","c":[{"t":"Str","c":"Wuppie."},{"t":"Space"},{"t":"Str","c":"n.d."},{"t":"Space"},{"t":"Span","c":[["",[],[]],[{"t":"Str","c":"“"},{"t":"Str","c":"Lorem"},{"t":"Space"},{"t":"Str","c":"Ipsum"},{"t":"Str","c":"."},{"t":"Str","c":"”"}]]}]}]]}]]}]}
```
, i.e. the citation is properly resolved (as expected).

However, using the Lua filter `codecite.lua` (for the sake of simplicity, I'll just replace the old block directly with a citation):

```lua
local meta

function render_blocks(b)
    local blocks = {pandoc.Para{pandoc.Str("see [@FOO]")}}

    local tmp = pandoc.utils.run_json_filter(
        pandoc.Pandoc(blocks, meta),
        'pandoc',
        {'--from=json', '--to=json', '--citeproc'}
    )
    return tmp.blocks
end

return {
    { Meta = function (m) meta = m end },
    { Block = render_blocks }
}
```

and running `pandoc -L codecite.lua test.md -t json` the result is just 

```json
{"pandoc-api-version":[1,22],"meta":{"references":{"t":"MetaList","c":[{"t":"MetaMap","c":{"author":{"t":"MetaList","c":[{"t":"MetaMap","c":{"family":{"t":"MetaInlines","c":[{"t":"Str","c":"Wuppie"}]}}}]},"id":{"t":"MetaInlines","c":[{"t":"Str","c":"FOO"}]},"title":{"t":"MetaInlines","c":[{"t":"Str","c":"Lorem"},{"t":"Space"},{"t":"Str","c":"Ipsum"}]}}}]}},"blocks":[{"t":"Para","c":[{"t":"Str","c":"see [@FOO]"}]}]}
```
, which is unexpected (citation is not resolved).

Clearly I'm missing something here. But what is it? Can you please advise?

`pandoc --version`: pandoc 2.14.2

Thanks! 
Carsten

--
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/bcb42d1a-cd9f-45f1-a1f4-5f21cb9ae46an%40googlegroups.com.