public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
* How to manipulate with Block elements with Lua filters
@ 2022-01-10 14:32 Tomáš Kruliš
       [not found] ` <590abdf0-6bc5-4f37-a978-a46ad5cff5a8n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Tomáš Kruliš @ 2022-01-10 14:32 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 1600 bytes --]

Hello,

I would like to ask how you should, in general, detect and manipulate with 
Pandoc `block` elements. Currently, I am trying to replace `<div 
class='replace-me'>` tag with `<note>` tag in similar (highly simplified) 
HTML file:

```.{html}
<html>
<body>
<p> First line. </p>
<div class="replace-me another-class"> This should carry on to converted 
document. </div>
<p>End.</p>
</body>
</html>
```

I have tried to detect the `<div>` tag, use `walk_block` to get the `<div>` 
content and put it in `<note>` tag, I also found a code using `:walk` 
method. Lastly, I tried to convert `<div>` content to simple string and 
concatenate that in `RawInline` type:

```.{lua}
  if elem.t == 'Div' and elem.classes[1] == "replace-me" then
    content = pandoc.utils.stringify(elem.content)
    return pandoc.RawInline('html', '<note>' .. content.. '</note>')
  else
    return elem
  end
```

But none of that is working. I would like to ask you, how to work in 
general with `pandoc_walk` or `:walk` (are they the same?) and how to deal 
with my specific situation?
Thank you very much for any help, I ope that afterwards I will be able to 
help myself a little bit more :)
Regards Tomas

-- 
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/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 2287 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found] ` <590abdf0-6bc5-4f37-a978-a46ad5cff5a8n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
@ 2022-01-10 18:46   ` BPJ
       [not found]     ` <CADAJKhAzeK-kPd7yHWbtGX=363VvcgFUj8gt_vEMUXfGkBd+ug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: BPJ @ 2022-01-10 18:46 UTC (permalink / raw)
  To: pandoc-discuss

[-- Attachment #1: Type: text/plain, Size: 2976 bytes --]

It is neither possible nor needed to convert the whole block to HTML within
the filter; rather you should just inject the start and end tags:

``````lua
-- Create these only once, for speed and resources saving!
local pre = pandoc.RawBlock('html', '<note>')
local post = pandoc.RawBlock('html', '</note>')

function Div (div)
  -- The order of the classes shouldn't matter!
  if div.classes:includes('replace-me') then
    local content = div.content
    table.insert(content, 1, pre)
    table.insert(content, post)
    return content
  end
  return nil
end
``````

Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas.krulis@integromat.com> skrev:

> Hello,
>
> I would like to ask how you should, in general, detect and manipulate with
> Pandoc `block` elements. Currently, I am trying to replace `<div
> class='replace-me'>` tag with `<note>` tag in similar (highly simplified)
> HTML file:
>
> ```.{html}
> <html>
> <body>
> <p> First line. </p>
> <div class="replace-me another-class"> This should carry on to converted
> document. </div>
> <p>End.</p>
> </body>
> </html>
> ```
>
> I have tried to detect the `<div>` tag, use `walk_block` to get the
> `<div>` content and put it in `<note>` tag, I also found a code using
> `:walk` method. Lastly, I tried to convert `<div>` content to simple string
> and concatenate that in `RawInline` type:
>
> ```.{lua}
>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>     content = pandoc.utils.stringify(elem.content)
>     return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>   else
>     return elem
>   end
> ```
>
> But none of that is working. I would like to ask you, how to work in
> general with `pandoc_walk` or `:walk` (are they the same?) and how to deal
> with my specific situation?
> Thank you very much for any help, I ope that afterwards I will be able to
> help myself a little bit more :)
> Regards Tomas
>
> --
> 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/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com
> <https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CADAJKhAzeK-kPd7yHWbtGX%3D363VvcgFUj8gt_vEMUXfGkBd%2Bug%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 4523 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found]     ` <CADAJKhAzeK-kPd7yHWbtGX=363VvcgFUj8gt_vEMUXfGkBd+ug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2022-01-11 14:07       ` Tomáš Kruliš
       [not found]         ` <aea85ef4-af50-46e5-8e21-d677801cb971n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  2023-06-26 19:12       ` Ioan Muntean
  1 sibling, 1 reply; 9+ messages in thread
From: Tomáš Kruliš @ 2022-01-11 14:07 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 4259 bytes --]

Oh, so the `div` content is a `table` in lua terms? That didn't occured to 
me, even though it probably should ... I actually managed to replace it not 
as a `RawInline`, but `RawBlock`, like so:

 ```.{lua}
  if elem.t == 'Div' and elem.classes[1] == "replace-me" then
    content = pandoc.utils.stringify(elem.content)
    return pandoc.RawBlock('html', '<note>' .. content.. '</note>')
  else
    return elem
  end
```

But thank you for your solution, for me it was very educational!
Another thing that I struggle with is to wrap my head around `walk_block` 
function. From the examples in the pandoc official page it is not much 
clearer to me. I think I now understand that they are used to 
iterate/filter over the contents of the block that is being walked over. 
But if the block element contains only String elements (paragraph with 
simple text), then also Str-filter functions are applied to it?
Maybe my confusion can be voiced like this: When should I use 
`pandoc.walk_block` function to get what I want and cannot use something 
else? Explained not only with code, but also with commentary ...
Dne pondělí 10. ledna 2022 v 19:46:37 UTC+1 uživatel BPJ napsal:

> It is neither possible nor needed to convert the whole block to HTML 
> within the filter; rather you should just inject the start and end tags:
>
> ``````lua
> -- Create these only once, for speed and resources saving!
> local pre = pandoc.RawBlock('html', '<note>')
> local post = pandoc.RawBlock('html', '</note>')
>
> function Div (div)
>   -- The order of the classes shouldn't matter!
>   if div.classes:includes('replace-me') then
>     local content = div.content
>     table.insert(content, 1, pre)
>     table.insert(content, post)
>     return content
>   end
>   return nil
> end
> ``````
>
> Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas....@integromat.com> skrev:
>
>> Hello,
>>
>> I would like to ask how you should, in general, detect and manipulate 
>> with Pandoc `block` elements. Currently, I am trying to replace `<div 
>> class='replace-me'>` tag with `<note>` tag in similar (highly simplified) 
>> HTML file:
>>
>> ```.{html}
>> <html>
>> <body>
>> <p> First line. </p>
>> <div class="replace-me another-class"> This should carry on to converted 
>> document. </div>
>> <p>End.</p>
>> </body>
>> </html>
>> ```
>>
>> I have tried to detect the `<div>` tag, use `walk_block` to get the 
>> `<div>` content and put it in `<note>` tag, I also found a code using 
>> `:walk` method. Lastly, I tried to convert `<div>` content to simple string 
>> and concatenate that in `RawInline` type:
>>
>> ```.{lua}
>>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>>     content = pandoc.utils.stringify(elem.content)
>>     return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>>   else
>>     return elem
>>   end
>> ```
>>
>> But none of that is working. I would like to ask you, how to work in 
>> general with `pandoc_walk` or `:walk` (are they the same?) and how to deal 
>> with my specific situation?
>> Thank you very much for any help, I ope that afterwards I will be able to 
>> help myself a little bit more :)
>> Regards Tomas
>>
>> -- 
>> 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com 
>> <https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 6401 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found]         ` <aea85ef4-af50-46e5-8e21-d677801cb971n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
@ 2022-01-11 20:56           ` Bastien DUMONT
  2022-01-11 21:25           ` Bastien DUMONT
  2022-01-12  9:45           ` BPJ
  2 siblings, 0 replies; 9+ messages in thread
From: Bastien DUMONT @ 2022-01-11 20:56 UTC (permalink / raw)
  To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw

You should use it when you want to apply a filter inside specific blocs only. The applied filter is a table of key-value pairs, where the key is one of Pandoc's types and the value a function.

Whith this input file:

```.md

Here emphasis is _italics_.

::: {.change-emphasis}

Here emphasized and **bold** strings are _underlined_.

:::

It's _normal_ again.

```

And this filter:

```.lua

-- The filter to be applied inside "change-emphasis" divs.
-- Notice that as we are in a table, entries are separated by a comma.
local to_underline = {

  Emph = function(el)
    return pandoc.Underline(el.content)
  end,

  Strong = function(el)
    return pandoc.Underline(el.content)
  end

}

function Div(div)
  if div.classes:includes('change-emphasis', 1) then
    -- We return the transformed div.
    return pandoc.walk_block(div, to_underline)
  end
end

```

you will get:

pandoc -L test.lua test.md
<p>Here emphasis is <em>italics</em>.</p>
<div class="change-emphasis">
<p>Here emphasized and <u>bold</u> strings are <u>underlined</u>.</p>
</div>
<p>It’s <em>normal</em> again.</p>


Le Tuesday 11 January 2022 à 06:07:32AM, Tomáš Kruliš a écrit :
> Oh, so the `div` content is a `table` in lua terms? That didn't occured to me,
> even though it probably should ... I actually managed to replace it not as a
> `RawInline`, but `RawBlock`, like so:
> 
>  ```.{lua}
>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>     content = pandoc.utils.stringify(elem.content)
>     return pandoc.RawBlock('html', '<note>' .. content.. '</note>')
>   else
>     return elem
>   end
> ```
> 
> But thank you for your solution, for me it was very educational!
> Another thing that I struggle with is to wrap my head around `walk_block`
> function. From the examples in the pandoc official page it is not much clearer
> to me. I think I now understand that they are used to iterate/filter over the
> contents of the block that is being walked over. But if the block element
> contains only String elements (paragraph with simple text), then also
> Str-filter functions are applied to it?
> Maybe my confusion can be voiced like this: When should I use
> `pandoc.walk_block` function to get what I want and cannot use something else?
> Explained not only with code, but also with commentary ...
> Dne pondělí 10. ledna 2022 v 19:46:37 UTC+1 uživatel BPJ napsal:
> 
>     It is neither possible nor needed to convert the whole block to HTML within
>     the filter; rather you should just inject the start and end tags:
> 
>     ``````lua
>     -- Create these only once, for speed and resources saving!
>     local pre = pandoc.RawBlock('html', '<note>')
>     local post = pandoc.RawBlock('html', '</note>')
> 
>     function Div (div)
>       -- The order of the classes shouldn't matter!
>       if div.classes:includes('replace-me') then
>         local content = div.content
>         table.insert(content, 1, pre)
>         table.insert(content, post)
>         return content
>       end
>       return nil
>     end
>     ``````
> 
>     Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas....@integromat.com> skrev:
> 
>         Hello,
> 
>         I would like to ask how you should, in general, detect and manipulate
>         with Pandoc `block` elements. Currently, I am trying to replace `<div
>         class='replace-me'>` tag with `<note>` tag in similar (highly
>         simplified) HTML file:
> 
>         ```.{html}
>         <html>
>         <body>
>         <p> First line. </p>
>         <div class="replace-me another-class"> This should carry on to
>         converted document. </div>
>         <p>End.</p>
>         </body>
>         </html>
>         ```
> 
>         I have tried to detect the `<div>` tag, use `walk_block` to get the
>         `<div>` content and put it in `<note>` tag, I also found a code using
>         `:walk` method. Lastly, I tried to convert `<div>` content to simple
>         string and concatenate that in `RawInline` type:
> 
>         ```.{lua}
>           if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>             content = pandoc.utils.stringify(elem.content)
>             return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>           else
>             return elem
>           end
>         ```
> 
>         But none of that is working. I would like to ask you, how to work in
>         general with `pandoc_walk` or `:walk` (are they the same?) and how to
>         deal with my specific situation?
>         Thank you very much for any help, I ope that afterwards I will be able
>         to help myself a little bit more :)
>         Regards Tomas
> 
>         --
>         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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>         To view this discussion on the web visit [1]https://groups.google.com/d
>         /msgid/pandoc-discuss/
>         590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com.
> 
> --
> 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 [2]pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit [3]https://groups.google.com/d/msgid/
> pandoc-discuss/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com.
> 
> References:
> 
> [1] https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer
> [2] mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
> [3] https://groups.google.com/d/msgid/pandoc-discuss/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com?utm_medium=email&utm_source=footer

-- 
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/Yd3vEifRjimcUHBI%40localhost.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found]         ` <aea85ef4-af50-46e5-8e21-d677801cb971n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  2022-01-11 20:56           ` Bastien DUMONT
@ 2022-01-11 21:25           ` Bastien DUMONT
  2022-01-12  9:45           ` BPJ
  2 siblings, 0 replies; 9+ messages in thread
From: Bastien DUMONT @ 2022-01-11 21:25 UTC (permalink / raw)
  To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw

And yes, top-level functions for Str will apply inside the block too. If you wan't to "protect" strings in this block, I would suggest the following:

```.md
All this will be changed.

::: {.protected}

Here not.

:::

All this will be changed.

```

```.lua
function Str(el)
  el.text = 'changed'
  return el
end

local protect = {

  Str = function(el)
    return pandoc.RawInline('protected', el.text)
  end

}

local function protect_protected(div)
  if div.classes:includes('protected', 1) then
    return pandoc.walk_block(div, protect)
  end
end

local function Str(str)
  str.text = 'changed'
  return str
end

local function to_str_again(rawinline)
  if rawinline.format == 'protected' then
    return pandoc.Str(rawinline.text)
  end
end

-- Here we change the execution order of the functions
return {
  { Div = protect_protected },
  { Str = Str },
  { RawInline = to_str_again }
}

```

pandoc -L test.lua test.md
<p>changed changed changed changed changed</p>
<div class="protected">
<p>Here not.</p>
</div>
<p>changed changed changed changed changed</p>

Le Tuesday 11 January 2022 à 06:07:32AM, Tomáš Kruliš a écrit :
> Oh, so the `div` content is a `table` in lua terms? That didn't occured to me,
> even though it probably should ... I actually managed to replace it not as a
> `RawInline`, but `RawBlock`, like so:
> 
>  ```.{lua}
>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>     content = pandoc.utils.stringify(elem.content)
>     return pandoc.RawBlock('html', '<note>' .. content.. '</note>')
>   else
>     return elem
>   end
> ```
> 
> But thank you for your solution, for me it was very educational!
> Another thing that I struggle with is to wrap my head around `walk_block`
> function. From the examples in the pandoc official page it is not much clearer
> to me. I think I now understand that they are used to iterate/filter over the
> contents of the block that is being walked over. But if the block element
> contains only String elements (paragraph with simple text), then also
> Str-filter functions are applied to it?
> Maybe my confusion can be voiced like this: When should I use
> `pandoc.walk_block` function to get what I want and cannot use something else?
> Explained not only with code, but also with commentary ...
> Dne pondělí 10. ledna 2022 v 19:46:37 UTC+1 uživatel BPJ napsal:
> 
>     It is neither possible nor needed to convert the whole block to HTML within
>     the filter; rather you should just inject the start and end tags:
> 
>     ``````lua
>     -- Create these only once, for speed and resources saving!
>     local pre = pandoc.RawBlock('html', '<note>')
>     local post = pandoc.RawBlock('html', '</note>')
> 
>     function Div (div)
>       -- The order of the classes shouldn't matter!
>       if div.classes:includes('replace-me') then
>         local content = div.content
>         table.insert(content, 1, pre)
>         table.insert(content, post)
>         return content
>       end
>       return nil
>     end
>     ``````
> 
>     Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas....@integromat.com> skrev:
> 
>         Hello,
> 
>         I would like to ask how you should, in general, detect and manipulate
>         with Pandoc `block` elements. Currently, I am trying to replace `<div
>         class='replace-me'>` tag with `<note>` tag in similar (highly
>         simplified) HTML file:
> 
>         ```.{html}
>         <html>
>         <body>
>         <p> First line. </p>
>         <div class="replace-me another-class"> This should carry on to
>         converted document. </div>
>         <p>End.</p>
>         </body>
>         </html>
>         ```
> 
>         I have tried to detect the `<div>` tag, use `walk_block` to get the
>         `<div>` content and put it in `<note>` tag, I also found a code using
>         `:walk` method. Lastly, I tried to convert `<div>` content to simple
>         string and concatenate that in `RawInline` type:
> 
>         ```.{lua}
>           if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>             content = pandoc.utils.stringify(elem.content)
>             return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>           else
>             return elem
>           end
>         ```
> 
>         But none of that is working. I would like to ask you, how to work in
>         general with `pandoc_walk` or `:walk` (are they the same?) and how to
>         deal with my specific situation?
>         Thank you very much for any help, I ope that afterwards I will be able
>         to help myself a little bit more :)
>         Regards Tomas
> 
>         --
>         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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>         To view this discussion on the web visit [1]https://groups.google.com/d
>         /msgid/pandoc-discuss/
>         590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com.
> 
> --
> 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 [2]pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit [3]https://groups.google.com/d/msgid/
> pandoc-discuss/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com.
> 
> References:
> 
> [1] https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer
> [2] mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
> [3] https://groups.google.com/d/msgid/pandoc-discuss/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com?utm_medium=email&utm_source=footer

-- 
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/Yd31yvv71qtrABKF%40localhost.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found]         ` <aea85ef4-af50-46e5-8e21-d677801cb971n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  2022-01-11 20:56           ` Bastien DUMONT
  2022-01-11 21:25           ` Bastien DUMONT
@ 2022-01-12  9:45           ` BPJ
       [not found]             ` <CADAJKhD6WVs3UxD0Dt0bYLA8mE4-A4n=QyyKrwkT=MYO+QNaVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2 siblings, 1 reply; 9+ messages in thread
From: BPJ @ 2022-01-12  9:45 UTC (permalink / raw)
  To: pandoc-discuss

[-- Attachment #1: Type: text/plain, Size: 5498 bytes --]

The div content is an enhanced `pandoc.List` table with some useful methods:

https://pandoc.org/lua-filters.html#module-pandoc.list

The filter documentation notes where you will find List objects in the type
descriptions.

BTW you probably don't want to use the return value of
pandoc.utils.stringify the way you did because it strips all formatting. If
you just inject the HTML tags the way I showed formatting in the div
content will be preserved.

Den tis 11 jan. 2022 15:08Tomáš Kruliš <tomas.krulis@integromat.com> skrev:

> Oh, so the `div` content is a `table` in lua terms? That didn't occured to
> me, even though it probably should ... I actually managed to replace it not
> as a `RawInline`, but `RawBlock`, like so:
>
>  ```.{lua}
>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>     content = pandoc.utils.stringify(elem.content)
>     return pandoc.RawBlock('html', '<note>' .. content.. '</note>')
>   else
>     return elem
>   end
> ```
>
> But thank you for your solution, for me it was very educational!
> Another thing that I struggle with is to wrap my head around `walk_block`
> function. From the examples in the pandoc official page it is not much
> clearer to me. I think I now understand that they are used to
> iterate/filter over the contents of the block that is being walked over.
> But if the block element contains only String elements (paragraph with
> simple text), then also Str-filter functions are applied to it?
> Maybe my confusion can be voiced like this: When should I use
> `pandoc.walk_block` function to get what I want and cannot use something
> else? Explained not only with code, but also with commentary ...
> Dne pondělí 10. ledna 2022 v 19:46:37 UTC+1 uživatel BPJ napsal:
>
>> It is neither possible nor needed to convert the whole block to HTML
>> within the filter; rather you should just inject the start and end tags:
>>
>> ``````lua
>> -- Create these only once, for speed and resources saving!
>> local pre = pandoc.RawBlock('html', '<note>')
>> local post = pandoc.RawBlock('html', '</note>')
>>
>> function Div (div)
>>   -- The order of the classes shouldn't matter!
>>   if div.classes:includes('replace-me') then
>>     local content = div.content
>>     table.insert(content, 1, pre)
>>     table.insert(content, post)
>>     return content
>>   end
>>   return nil
>> end
>> ``````
>>
>> Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas....@integromat.com> skrev:
>>
>>> Hello,
>>>
>>> I would like to ask how you should, in general, detect and manipulate
>>> with Pandoc `block` elements. Currently, I am trying to replace `<div
>>> class='replace-me'>` tag with `<note>` tag in similar (highly simplified)
>>> HTML file:
>>>
>>> ```.{html}
>>> <html>
>>> <body>
>>> <p> First line. </p>
>>> <div class="replace-me another-class"> This should carry on to converted
>>> document. </div>
>>> <p>End.</p>
>>> </body>
>>> </html>
>>> ```
>>>
>>> I have tried to detect the `<div>` tag, use `walk_block` to get the
>>> `<div>` content and put it in `<note>` tag, I also found a code using
>>> `:walk` method. Lastly, I tried to convert `<div>` content to simple string
>>> and concatenate that in `RawInline` type:
>>>
>>> ```.{lua}
>>>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>>>     content = pandoc.utils.stringify(elem.content)
>>>     return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>>>   else
>>>     return elem
>>>   end
>>> ```
>>>
>>> But none of that is working. I would like to ask you, how to work in
>>> general with `pandoc_walk` or `:walk` (are they the same?) and how to deal
>>> with my specific situation?
>>> Thank you very much for any help, I ope that afterwards I will be able
>>> to help myself a little bit more :)
>>> Regards Tomas
>>>
>>> --
>>> 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> 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/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com
> <https://groups.google.com/d/msgid/pandoc-discuss/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CADAJKhD6WVs3UxD0Dt0bYLA8mE4-A4n%3DQyyKrwkT%3DMYO%2BQNaVg%40mail.gmail.com.

[-- Attachment #2: Type: text/html, Size: 7950 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found]             ` <CADAJKhD6WVs3UxD0Dt0bYLA8mE4-A4n=QyyKrwkT=MYO+QNaVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2022-01-13 14:40               ` Tomáš Kruliš
  0 siblings, 0 replies; 9+ messages in thread
From: Tomáš Kruliš @ 2022-01-13 14:40 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 6158 bytes --]

Thank you BPJ and Bastien for great examples and clarifications around the 
`walk_block` function and how to do the specific changes I was struggling 
with. In this specific case, I could omit the formatting, but at the same 
time, I didn't know that `pandoc.utils.stringify` does that.
About the string protecting, it is a great idea, but I have to study a 
little bit more because I am getting lost there :)
Thank you guys for your help!

Dne středa 12. ledna 2022 v 10:46:13 UTC+1 uživatel BPJ napsal:

> The div content is an enhanced `pandoc.List` table with some useful 
> methods:
>
> https://pandoc.org/lua-filters.html#module-pandoc.list
>
> The filter documentation notes where you will find List objects in the 
> type descriptions.
>
> BTW you probably don't want to use the return value of 
> pandoc.utils.stringify the way you did because it strips all formatting. If 
> you just inject the HTML tags the way I showed formatting in the div 
> content will be preserved.
>
> Den tis 11 jan. 2022 15:08Tomáš Kruliš <tomas....@integromat.com> skrev:
>
>> Oh, so the `div` content is a `table` in lua terms? That didn't occured 
>> to me, even though it probably should ... I actually managed to replace it 
>> not as a `RawInline`, but `RawBlock`, like so:
>>
>>  ```.{lua}
>>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>>     content = pandoc.utils.stringify(elem.content)
>>     return pandoc.RawBlock('html', '<note>' .. content.. '</note>')
>>   else
>>     return elem
>>   end
>> ```
>>
>> But thank you for your solution, for me it was very educational!
>> Another thing that I struggle with is to wrap my head around `walk_block` 
>> function. From the examples in the pandoc official page it is not much 
>> clearer to me. I think I now understand that they are used to 
>> iterate/filter over the contents of the block that is being walked over. 
>> But if the block element contains only String elements (paragraph with 
>> simple text), then also Str-filter functions are applied to it?
>> Maybe my confusion can be voiced like this: When should I use 
>> `pandoc.walk_block` function to get what I want and cannot use something 
>> else? Explained not only with code, but also with commentary ...
>> Dne pondělí 10. ledna 2022 v 19:46:37 UTC+1 uživatel BPJ napsal:
>>
>>> It is neither possible nor needed to convert the whole block to HTML 
>>> within the filter; rather you should just inject the start and end tags:
>>>
>>> ``````lua
>>> -- Create these only once, for speed and resources saving!
>>> local pre = pandoc.RawBlock('html', '<note>')
>>> local post = pandoc.RawBlock('html', '</note>')
>>>
>>> function Div (div)
>>>   -- The order of the classes shouldn't matter!
>>>   if div.classes:includes('replace-me') then
>>>     local content = div.content
>>>     table.insert(content, 1, pre)
>>>     table.insert(content, post)
>>>     return content
>>>   end
>>>   return nil
>>> end
>>> ``````
>>>
>>> Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas....@integromat.com> skrev:
>>>
>>>> Hello,
>>>>
>>>> I would like to ask how you should, in general, detect and manipulate 
>>>> with Pandoc `block` elements. Currently, I am trying to replace `<div 
>>>> class='replace-me'>` tag with `<note>` tag in similar (highly simplified) 
>>>> HTML file:
>>>>
>>>> ```.{html}
>>>> <html>
>>>> <body>
>>>> <p> First line. </p>
>>>> <div class="replace-me another-class"> This should carry on to 
>>>> converted document. </div>
>>>> <p>End.</p>
>>>> </body>
>>>> </html>
>>>> ```
>>>>
>>>> I have tried to detect the `<div>` tag, use `walk_block` to get the 
>>>> `<div>` content and put it in `<note>` tag, I also found a code using 
>>>> `:walk` method. Lastly, I tried to convert `<div>` content to simple string 
>>>> and concatenate that in `RawInline` type:
>>>>
>>>> ```.{lua}
>>>>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>>>>     content = pandoc.utils.stringify(elem.content)
>>>>     return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>>>>   else
>>>>     return elem
>>>>   end
>>>> ```
>>>>
>>>> But none of that is working. I would like to ask you, how to work in 
>>>> general with `pandoc_walk` or `:walk` (are they the same?) and how to deal 
>>>> with my specific situation?
>>>> Thank you very much for any help, I ope that afterwards I will be able 
>>>> to help myself a little bit more :)
>>>> Regards Tomas
>>>>
>>>> -- 
>>>> 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com 
>>>> <https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/pandoc-discuss/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com 
>> <https://groups.google.com/d/msgid/pandoc-discuss/aea85ef4-af50-46e5-8e21-d677801cb971n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/a56ac936-48ce-4cc8-9053-c28a9d66f6d1n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 9597 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found]     ` <CADAJKhAzeK-kPd7yHWbtGX=363VvcgFUj8gt_vEMUXfGkBd+ug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2022-01-11 14:07       ` Tomáš Kruliš
@ 2023-06-26 19:12       ` Ioan Muntean
       [not found]         ` <ae032a8d-4d0a-4608-b479-61965cee2793n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
  1 sibling, 1 reply; 9+ messages in thread
From: Ioan Muntean @ 2023-06-26 19:12 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 4697 bytes --]

Dear BPJ
I read this post and thank you for illuminating some aspects of walking a 
DIV element in pandoc. My story is different but I tried to achieve 
something simpler.
I have a docx document and I want to convert it to Latex to include some 
special styles. . I adapted your code and  all works well except that I get 
extra lines between the environment definition and content.
Here is my adapted code:

function Div(divclaims)

local preclaims = pandoc.RawInline('latex', '\\begin{claims}')
local postclaims = pandoc.RawInline('latex', '\\end{claims}')
local preissues = pandoc.RawInline('latex', '\\begin{issues}')
local postissues = pandoc.RawInline('latex', '\\end{issues}')

  divbe=tostring(divclaims.t)
styletobe=tostring(divclaims.attr)
  
  if (string.find(styletobe, "Claims") or string.find(styletobe, "Issues")) 
 then 
if (string.find(styletobe, "Claims")) then pre=preclaims post=postclaims 
print("Claim found") end
if (string.find(styletobe, "Issues")) then pre=preissues post=postissues 
print("Issue found") end

local content = divclaims.content

table.insert(content, 1, pre)
table.insert(content, post)


   
return content
  end
  return nil
end



The Latex looks cool, except that the table.insert adds some empty lines :

\begin{issues}

text with formatting....

\end{issues}

That baffles the Latex interpreter . My question is: how can I modify the 
code such that my latex output will have no extra empty lines?

\begin{issues} text text \end{issues}

Thank you in advance!
Ioan M.



On Monday, January 10, 2022 at 12:46:37 PM UTC-6 BPJ wrote:

> It is neither possible nor needed to convert the whole block to HTML 
> within the filter; rather you should just inject the start and end tags:
>
> ``````lua
> -- Create these only once, for speed and resources saving!
> local pre = pandoc.RawBlock('html', '<note>')
> local post = pandoc.RawBlock('html', '</note>')
>
> function Div (div)
>   -- The order of the classes shouldn't matter!
>   if div.classes:includes('replace-me') then
>     local content = div.content
>     table.insert(content, 1, pre)
>     table.insert(content, post)
>     return content
>   end
>   return nil
> end
> ``````
>
> Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas....@integromat.com> skrev:
>
>> Hello,
>>
>> I would like to ask how you should, in general, detect and manipulate 
>> with Pandoc `block` elements. Currently, I am trying to replace `<div 
>> class='replace-me'>` tag with `<note>` tag in similar (highly simplified) 
>> HTML file:
>>
>> ```.{html}
>> <html>
>> <body>
>> <p> First line. </p>
>> <div class="replace-me another-class"> This should carry on to converted 
>> document. </div>
>> <p>End.</p>
>> </body>
>> </html>
>> ```
>>
>> I have tried to detect the `<div>` tag, use `walk_block` to get the 
>> `<div>` content and put it in `<note>` tag, I also found a code using 
>> `:walk` method. Lastly, I tried to convert `<div>` content to simple string 
>> and concatenate that in `RawInline` type:
>>
>> ```.{lua}
>>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>>     content = pandoc.utils.stringify(elem.content)
>>     return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>>   else
>>     return elem
>>   end
>> ```
>>
>> But none of that is working. I would like to ask you, how to work in 
>> general with `pandoc_walk` or `:walk` (are they the same?) and how to deal 
>> with my specific situation?
>> Thank you very much for any help, I ope that afterwards I will be able to 
>> help myself a little bit more :)
>> Regards Tomas
>>
>> -- 
>> 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com 
>> <https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/ae032a8d-4d0a-4608-b479-61965cee2793n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 7449 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: How to manipulate with Block elements with Lua filters
       [not found]         ` <ae032a8d-4d0a-4608-b479-61965cee2793n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
@ 2023-07-05 15:44           ` BPJ
  0 siblings, 0 replies; 9+ messages in thread
From: BPJ @ 2023-07-05 15:44 UTC (permalink / raw)
  To: pandoc-discuss


[-- Attachment #1.1: Type: text/plain, Size: 6281 bytes --]

Den mån 26 juni 2023 21:12Ioan Muntean <imuntean-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev:

> Dear BPJ
> I read this post and thank you for illuminating some aspects of walking a
> DIV element in pandoc. My story is different but I tried to achieve
> something simpler.
> I have a docx document and I want to convert it to Latex to include some
> special styles. . I adapted your code and  all works well except that I get
> extra lines between the environment definition and content.
>

Sorry for the delay. At first I didn't notice your post and then I was very
busy.

The reason for the "extra" whitespace is that the raw text before and after
the div are separate blocks, and Pandoc inserts a blank space between
blocks because usually it is both wanted and necessary. The workaround for
that is to convert the div to latex while running the filter and
concatenate it with the prefix and postfix into a single raw latex block.
You can see how to do that in the attached filter, which maybe will work
for you as is. It is a slimmed-down version of an undocumented filter which
does the same for either classes or arbitrary attributes and for multiple
output formats, but with the whitespace-avoiding stuff added.


Here is my adapted code:
>
> function Div(divclaims)
>
> local preclaims = pandoc.RawInline('latex', '\\begin{claims}')
> local postclaims = pandoc.RawInline('latex', '\\end{claims}')
> local preissues = pandoc.RawInline('latex', '\\begin{issues}')
> local postissues = pandoc.RawInline('latex', '\\end{issues}')
>
>   divbe=tostring(divclaims.t)
> styletobe=tostring(divclaims.attr)
>
>   if (string.find(styletobe, "Claims") or string.find(styletobe,
> "Issues"))  then
> if (string.find(styletobe, "Claims")) then pre=preclaims post=postclaims
> print("Claim found") end
> if (string.find(styletobe, "Issues")) then pre=preissues post=postissues
> print("Issue found") end
>
> local content = divclaims.content
>
> table.insert(content, 1, pre)
> table.insert(content, post)
>
>
>
> return content
>   end
>   return nil
> end
>
>
>
> The Latex looks cool, except that the table.insert adds some empty lines :
>
> \begin{issues}
>
> text with formatting....
>
> \end{issues}
>
> That baffles the Latex interpreter . My question is: how can I modify the
> code such that my latex output will have no extra empty lines?
>
> \begin{issues} text text \end{issues}
>
> Thank you in advance!
> Ioan M.
>
>
>
> On Monday, January 10, 2022 at 12:46:37 PM UTC-6 BPJ wrote:
>
>> It is neither possible nor needed to convert the whole block to HTML
>> within the filter; rather you should just inject the start and end tags:
>>
>> ``````lua
>> -- Create these only once, for speed and resources saving!
>> local pre = pandoc.RawBlock('html', '<note>')
>> local post = pandoc.RawBlock('html', '</note>')
>>
>> function Div (div)
>>   -- The order of the classes shouldn't matter!
>>   if div.classes:includes('replace-me') then
>>     local content = div.content
>>     table.insert(content, 1, pre)
>>     table.insert(content, post)
>>     return content
>>   end
>>   return nil
>> end
>> ``````
>>
>> Den mån 10 jan. 2022 15:33Tomáš Kruliš <tomas....@integromat.com> skrev:
>>
>>> Hello,
>>>
>>> I would like to ask how you should, in general, detect and manipulate
>>> with Pandoc `block` elements. Currently, I am trying to replace `<div
>>> class='replace-me'>` tag with `<note>` tag in similar (highly simplified)
>>> HTML file:
>>>
>>> ```.{html}
>>> <html>
>>> <body>
>>> <p> First line. </p>
>>> <div class="replace-me another-class"> This should carry on to converted
>>> document. </div>
>>> <p>End.</p>
>>> </body>
>>> </html>
>>> ```
>>>
>>> I have tried to detect the `<div>` tag, use `walk_block` to get the
>>> `<div>` content and put it in `<note>` tag, I also found a code using
>>> `:walk` method. Lastly, I tried to convert `<div>` content to simple string
>>> and concatenate that in `RawInline` type:
>>>
>>> ```.{lua}
>>>   if elem.t == 'Div' and elem.classes[1] == "replace-me" then
>>>     content = pandoc.utils.stringify(elem.content)
>>>     return pandoc.RawInline('html', '<note>' .. content.. '</note>')
>>>   else
>>>     return elem
>>>   end
>>> ```
>>>
>>> But none of that is working. I would like to ask you, how to work in
>>> general with `pandoc_walk` or `:walk` (are they the same?) and how to deal
>>> with my specific situation?
>>> Thank you very much for any help, I ope that afterwards I will be able
>>> to help myself a little bit more :)
>>> Regards Tomas
>>>
>>> --
>>> 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-discus...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/pandoc-discuss/590abdf0-6bc5-4f37-a978-a46ad5cff5a8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> 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/ae032a8d-4d0a-4608-b479-61965cee2793n%40googlegroups.com
> <https://groups.google.com/d/msgid/pandoc-discuss/ae032a8d-4d0a-4608-b479-61965cee2793n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CADAJKhDnwx5VsAv4mzukcU6MDSqDZ%2BcKk_x0V4Gvsb%2BtwV7J1w%40mail.gmail.com.

[-- Attachment #1.2: Type: text/html, Size: 9594 bytes --]

[-- Attachment #2: custom-style2latex.zip --]
[-- Type: application/zip, Size: 20047 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-07-05 15:44 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-10 14:32 How to manipulate with Block elements with Lua filters Tomáš Kruliš
     [not found] ` <590abdf0-6bc5-4f37-a978-a46ad5cff5a8n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-01-10 18:46   ` BPJ
     [not found]     ` <CADAJKhAzeK-kPd7yHWbtGX=363VvcgFUj8gt_vEMUXfGkBd+ug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2022-01-11 14:07       ` Tomáš Kruliš
     [not found]         ` <aea85ef4-af50-46e5-8e21-d677801cb971n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2022-01-11 20:56           ` Bastien DUMONT
2022-01-11 21:25           ` Bastien DUMONT
2022-01-12  9:45           ` BPJ
     [not found]             ` <CADAJKhD6WVs3UxD0Dt0bYLA8mE4-A4n=QyyKrwkT=MYO+QNaVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2022-01-13 14:40               ` Tomáš Kruliš
2023-06-26 19:12       ` Ioan Muntean
     [not found]         ` <ae032a8d-4d0a-4608-b479-61965cee2793n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-07-05 15:44           ` BPJ

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).