Trying this, but it's just passing the text of the admonition block through:

local stringify = (require 'pandoc.utils').stringify

local admonitions = {
  warning   = {pandoc.Str("!!! warning")},
  note      = {pandoc.Str("!!! note")},
  tip       = {pandoc.Str("!!! tip")},
  important = {pandoc.Str("!!! important")},
  caution   = {pandoc.Str("!!! caution")}
  }

function Writer (doc, opts)
  local filter = {
    Div = function (el)
      local admonition_text = admonitions[el.classes[1]]
      if admonition_text then
        table.insert(el.content, 1,
            pandoc.Para{ pandoc.Str(stringify(admonition_text)) })
        local md = pandoc.write(pandoc.Pandoc(el.content), 'markdown')
        return pandoc.RawBlock('markdown', md):gsub('\n', '    \n')
      end
    end
  }
  return pandoc.write(doc:walk(filter), 'markdown', opts)
end


On Thu, Nov 3, 2022 at 9:03 PM Albert Krewinkel <albert+pandoc@zeitkraut.de> wrote:
You could try with `pandoc.write`. Probably something along the lines of

``` lua
local md = pandoc.write(pandoc.Pandoc(div.contents), 'markdown')
return md:gsub('\n', '    \n')
```

(untested)

Aidan Reilly <aireilly-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> writes:

> Something like this copied from https://jmablog.com/post/
> pandoc-filters/? My problem is understanding how to add the required
> indent to every line in the `elem` - If I stringify, I lose the
> markup (backticks, etc) in the content.
>
> function Div (elem)
>   if FORMAT:match 'latex' then
>     if elem.classes[1] == "notes" then
>       return {
>         pandoc.RawBlock('latex', '\\begin{tcolorbox}[colframe=Apricot!20!white, colback=Apricot!8!white]'),
>         elem,
>         pandoc.RawBlock('latex', '\\end{tcolorbox}')
>       }
>     else
>       return elem
>     end
>   end
> end
>
>
> On Thu, Nov 3, 2022 at 8:40 PM Aidan Reilly <aireilly-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> wrote:
>
>     Hi John, sorry - yes I am targeting markdown. Ok I’ll try that
>     thanks. 
>   
>     Aidan 
>   
>     On Thu 3 Nov 2022 at 20:09, John MacFarlane <
>     fiddlosopher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>   
>         I assume you’re targeting markdown?
>       
>         You could then just create a RawBlock with format “markdown”,
>         and put this content in it with whatever indentation you
>         like.
>       
>       
>         > On Nov 3, 2022, at 9:14 AM, Aidan Reilly <
>         aireilly-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> wrote:
>         >
>         > Hello!
>         >
>         > Trying to figure out how to use pandoc +fenced_div with a
>         filter to transform this:
>         >
>         > ::: note
>         > Here is the first line of this note.
>         >
>         > And the second,
>         >
>         > And the third!
>         > :::
>         >
>         > into this:
>         >
>         > !!! note
>         >     Here is the first line of this note.
>         >
>         >     And the second,
>         >
>         >     And the third!
>         >
>         > Struggling to understand if it is possible to "indent"
>         elements using pandoc. The mkdocs markdown spec requires the
>         body of notes to be indented by 4 spaces.  Is there a way to
>         apply indents without stringifying the content?
>         >
>         > Thanks!
>         > 
>         >
>         > --
>         > 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@googlegroups.com.
>         > To view this discussion on the web visit https://
>         groups.google.com/d/msgid/pandoc-discuss/
>         ddc82450-b82b-4b8f-9d5f-30c6a28c206fn%40googlegroups.com.
>       
>         --
>         You received this message because you are subscribed to a
>         topic in the Google Groups "pandoc-discuss" group.
>         To unsubscribe from this topic, visit https://
>         groups.google.com/d/topic/pandoc-discuss/65G0Kuih1wA/
>         unsubscribe.
>         To unsubscribe from this group and all its topics, 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/
>         7AF275BD-12EB-4424-84E5-1A45FF675520%40gmail.com.
>       
>   
>     --
>   
>     Aidan Reilly
>   
>     He/Him/His
>   
>     Senior Technical Writer, Telco (Cork, Ireland)
>   
>     aireilly-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
>   
>     IM/GitHub: aireilly
>   
>     TEL: +353851261126
>   
>     [logo]       
>   
>
>
> --
> Aidan


--
Albert Krewinkel
GPG: 8eed e3e2 e8c5 6f18 81fe  e836 388d c0b2 1f63 1124

--
You received this message because you are subscribed to a topic in the Google Groups "pandoc-discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pandoc-discuss/65G0Kuih1wA/unsubscribe.
To unsubscribe from this group and all its topics, 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/87h6zf698z.fsf%40zeitkraut.de.



--
Aidan

--
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/CAM4RMshtHUuFSHryQqAgquMduCd5xSM7c2CKnvR0H1%3Dzsg2xQQ%40mail.gmail.com.