Great, thanks. On Friday, May 12, 2023 at 7:41:50 PM UTC+2 Albert Krewinkel wrote: > > ThomasH writes: > > > I want to detect the types of the inline elements of a paragraph. I > > understand there is pandoc.utils.type() that basically does that, but > > when I run > > > > function Para(para) > > for i = 1,#para.content,1 do > > print(tostring(pandoc.utils.type(para.content[i]))) > > end > > end > > > > all that is printed is "Inline" for all elements, not specific types > > like Str, Span, Link or Image. How can I get at the specific types? > > The trick here is that we are using Haskell terminology: Inline is a > *type*, and Str, Span, Link, etc. are *constructors* for this type. In > Lua (and JSON) contexts, the property that identifies the name of the > constructor of a value is called a "tag". Try this: > > ``` lua > function Para(para) > for i = 1,#para.content do > print(para.content[i].tag)) > end > end > ``` > > The `.t` property is an alias for `.tag` and can be used as well. > > I have plans to change the behavior of `pandoc.utils.type` and to make > the function return two results. The first result would stay as-is, with > the second result containing the constructor name. But I need to run > more tests to ensure that this won't lead to performance degradation. > > > -- > Albert Krewinkel > GPG: 8eed e3e2 e8c5 6f18 81fe e836 388d c0b2 1f63 1124 > -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/f31b8b9b-f30e-45c6-91d5-caddb494f5b0n%40googlegroups.com.