* 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
[parent not found: <590abdf0-6bc5-4f37-a978-a46ad5cff5a8n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* 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
[parent not found: <CADAJKhAzeK-kPd7yHWbtGX=363VvcgFUj8gt_vEMUXfGkBd+ug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* 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
[parent not found: <aea85ef4-af50-46e5-8e21-d677801cb971n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* 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
[parent not found: <CADAJKhD6WVs3UxD0Dt0bYLA8mE4-A4n=QyyKrwkT=MYO+QNaVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* 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
[parent not found: <ae032a8d-4d0a-4608-b479-61965cee2793n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* 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).