* How to write a filter that modifies existing Pandoc output for a given format @ 2017-01-26 18:36 Guillermo Rodriguez Garcia [not found] ` <057183b6-1f28-402c-b5be-2abd63bf9e16-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Guillermo Rodriguez Garcia @ 2017-01-26 18:36 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 1344 bytes --] Hello all, I have written simple Pandoc filters that do some modifications on Pandoc's AST -- for example, to generate certain LaTeX environments/constructs when a Div with certain classes is used in the input file. This worked fine. However I am not sure how to write a filter that will only make some minor changes to the output for a given writer. Here's an example: I would like to write a filter so that if an image link contains a ".framed" class, then if generating LaTeX output, the \includegraphics command should include a [frame] option (this requires the adjustbox package to work). I am not sure how to do this without replicating all the code Pandoc already uses to write out an image link in LaTeX. Is there a way to do this? Best, Guillermo -- 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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/057183b6-1f28-402c-b5be-2abd63bf9e16%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 1941 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <057183b6-1f28-402c-b5be-2abd63bf9e16-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* How to write a filter that modifies existing Pandoc output for a given format [not found] ` <057183b6-1f28-402c-b5be-2abd63bf9e16-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2017-01-27 8:02 ` Kolen Cheung [not found] ` <87384a6a-0d44-4c37-889f-2336df472b5d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Kolen Cheung @ 2017-01-27 8:02 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1: Type: text/plain, Size: 1040 bytes --] I think your filter need to output raw LaTeX, i.e. to convert that element into LaTeX code by your code, and put it in a raw element. Or you can try to think of some LaTeX magic to do it. I think you still need a filter to capture the difference between a normal image to the one with class, and may be some LaTeX def in the preamble together with a command inserted by your filter could do it. After all, LaTeX is Turning Complete so it might be possible. -- 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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/87384a6a-0d44-4c37-889f-2336df472b5d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <87384a6a-0d44-4c37-889f-2336df472b5d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: How to write a filter that modifies existing Pandoc output for a given format [not found] ` <87384a6a-0d44-4c37-889f-2336df472b5d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2017-01-27 8:12 ` Guillermo Rodriguez Garcia [not found] ` <CABDcavaTvmTwhO8ZxLALO-m5XpmHQ7e_KC1C2eEQm+hVBzTKcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Guillermo Rodriguez Garcia @ 2017-01-27 8:12 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw Hello, Thank you for your answer. 2017-01-27 9:02 GMT+01:00 Kolen Cheung <christian.kolen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>: > I think your filter need to output raw LaTeX, i.e. to convert that element into LaTeX code by your code, and put it in a raw element. Yes. I know how to do that but then I need to replicate everything Pandoc already does for image links (which is doable, but no the best way) Other cases are more difficult; for example tweaking the way tables are generated just to add horizontal lines between rows would require that I replicate all the code Pandoc already has for writing out tables. That's quite a bit of work, and also a fragile approach. > > Or you can try to think of some LaTeX magic to do it. I think you still need a filter to capture the difference between a normal image to the one with class, and may be some LaTeX def in the preamble together with a command inserted by your filter could do it. After all, LaTeX is Turning Complete so it might be possible. So I guess it is not possible to "modify" Pandoc output, only replace it. It would be great if a filter could retrieve the output Pandoc intends to generate for a given node, as a string, then modify that locally. Best, Guillermo Rodriguez Garcia guille.rodriguez-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org -- 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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CABDcavaTvmTwhO8ZxLALO-m5XpmHQ7e_KC1C2eEQm%2BhVBzTKcQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <CABDcavaTvmTwhO8ZxLALO-m5XpmHQ7e_KC1C2eEQm+hVBzTKcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: How to write a filter that modifies existing Pandoc output for a given format [not found] ` <CABDcavaTvmTwhO8ZxLALO-m5XpmHQ7e_KC1C2eEQm+hVBzTKcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-01-27 8:59 ` Kolen Cheung [not found] ` <13e970b8-19e5-4cce-a72e-00e8d74f878c-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Kolen Cheung @ 2017-01-27 8:59 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1: Type: text/plain, Size: 947 bytes --] Ah, yes, it is actually possible to do that. e.g. if you use panflute, it has a function convert_text that call pandoc to make the conversion. So you could convert that element from "panflute AST" to LaTeX, then use the re module to regex it to your liking. A potential issue is if a certain conversion is context-dependent (I can't name any example for the moment). -- 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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/13e970b8-19e5-4cce-a72e-00e8d74f878c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <13e970b8-19e5-4cce-a72e-00e8d74f878c-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: How to write a filter that modifies existing Pandoc output for a given format [not found] ` <13e970b8-19e5-4cce-a72e-00e8d74f878c-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2017-01-27 9:07 ` Guillermo Rodriguez Garcia [not found] ` <CABDcavbj898MDS1s02ZP_sakG_vgnW7eEyKDXUmPExeF1evhUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Guillermo Rodriguez Garcia @ 2017-01-27 9:07 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw I think the use case I described is a good example of a context-dependent conversion. Pandoc handles image links differently depending on whether they are the only thing in a paragraph (in LaTeX this results in a float) or whether they are inline in the text. This is (a simplified example of) the kind of logic I don't want to duplicate... 2017-01-27 9:59 GMT+01:00 Kolen Cheung <christian.kolen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>: > Ah, yes, it is actually possible to do that. e.g. if you use panflute, it has a function convert_text that call pandoc to make the conversion. So you could convert that element from "panflute AST" to LaTeX, then use the re module to regex it to your liking. A potential issue is if a certain conversion is context-dependent (I can't name any example for the moment). Guillermo Rodriguez Garcia guille.rodriguez-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org -- 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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CABDcavbj898MDS1s02ZP_sakG_vgnW7eEyKDXUmPExeF1evhUA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout. ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <CABDcavbj898MDS1s02ZP_sakG_vgnW7eEyKDXUmPExeF1evhUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: How to write a filter that modifies existing Pandoc output for a given format [not found] ` <CABDcavbj898MDS1s02ZP_sakG_vgnW7eEyKDXUmPExeF1evhUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-01-27 17:33 ` Kolen Cheung 0 siblings, 0 replies; 6+ messages in thread From: Kolen Cheung @ 2017-01-27 17:33 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1: Type: text/plain, Size: 115 bytes --] I think you can sent the whole block to convert_text and it should know it is "in its own line" in the conversion. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-01-27 17:33 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-26 18:36 How to write a filter that modifies existing Pandoc output for a given format Guillermo Rodriguez Garcia [not found] ` <057183b6-1f28-402c-b5be-2abd63bf9e16-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2017-01-27 8:02 ` Kolen Cheung [not found] ` <87384a6a-0d44-4c37-889f-2336df472b5d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2017-01-27 8:12 ` Guillermo Rodriguez Garcia [not found] ` <CABDcavaTvmTwhO8ZxLALO-m5XpmHQ7e_KC1C2eEQm+hVBzTKcQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-27 8:59 ` Kolen Cheung [not found] ` <13e970b8-19e5-4cce-a72e-00e8d74f878c-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2017-01-27 9:07 ` Guillermo Rodriguez Garcia [not found] ` <CABDcavbj898MDS1s02ZP_sakG_vgnW7eEyKDXUmPExeF1evhUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-01-27 17:33 ` Kolen Cheung
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).