* Conditional compilation - How to? @ 2019-04-06 16:43 pbeltran [not found] ` <61bdaf46-d88a-4ef1-b145-71ad5900fed8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: pbeltran @ 2019-04-06 16:43 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 1141 bytes --] My purpose is to generate two versions from the same markdown file. Think in a worksheet or a set of reveal slides with and without solutions. If I use gpp, like suggested here, <https://randomdeterminism.wordpress.com/2012/06/01/how-i-stopped-worring-and-started-using-markdown-like-tex/>the math expressions in my .md (mathjax) get messed, since \ are escaped. Is there a way out of the box? For instance, by using custom fenced_divs and them telling pandoc to remove that specific div? I've taken a look at custom filters but I don't know haskell... Thanks -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/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/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 1641 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <61bdaf46-d88a-4ef1-b145-71ad5900fed8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <61bdaf46-d88a-4ef1-b145-71ad5900fed8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2019-04-06 18:16 ` BPJ [not found] ` <CADAJKhBNWpmcKAAaNw_xo_EeT-JWKVPcnFo9EdDfzyA0+Fpydw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: BPJ @ 2019-04-06 18:16 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw [-- Attachment #1: Type: text/plain, Size: 2342 bytes --] I use a div with a class and a filter which removes divs with that class like this: ````markdown :::answer **Answer:** 42. ::: ```` ````lua function Div (elem) if elem.classes:includes('answer') then return {} -- delete it else return elem end end ```` HTH, /bpj Den lör 6 apr. 2019 18:44pbeltran <pabelpe-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev: > My purpose is to generate two versions from the same markdown file. Think > in a worksheet or a set of reveal slides with and without solutions. > > If I use gpp, like suggested here, > <https://randomdeterminism.wordpress.com/2012/06/01/how-i-stopped-worring-and-started-using-markdown-like-tex/>the > math expressions in my .md (mathjax) get messed, since \ are escaped. > > Is there a way out of the box? For instance, by using custom fenced_divs > and them telling pandoc to remove that specific div? I've taken a look at > custom filters but I don't know haskell... > > Thanks > > -- > You received this message because you are subscribed to the Google Groups > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to pandoc-discuss+unsubscribe-/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/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com > <https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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/CADAJKhBNWpmcKAAaNw_xo_EeT-JWKVPcnFo9EdDfzyA0%2BFpydw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #2: Type: text/html, Size: 3905 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <CADAJKhBNWpmcKAAaNw_xo_EeT-JWKVPcnFo9EdDfzyA0+Fpydw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <CADAJKhBNWpmcKAAaNw_xo_EeT-JWKVPcnFo9EdDfzyA0+Fpydw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2019-04-06 18:36 ` pbeltran [not found] ` <44645f9a-1670-4f4e-93cc-e24394fa10f4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: pbeltran @ 2019-04-06 18:36 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 3397 bytes --] Thanks. Using your script, what I can't do is to include a heading inside the fenced div, can't I? The reason is that I need solution to be presented in a different slide. I had just found a kind of solution, using heading identifiers (although when compiling to beamer it spits a warning (as several sections share the same identifier): local looking_at_section = false local lvl = 0 local remove = {} -- delete line if 'remove' array not needed function Block (elem) if elem.t == "Header" then -- if elem.classes:includes('remove',1) then if elem.identifier == 'answer' then looking_at_section = true lvl = elem. level else looking_at_section = looking_at_section and elem.level > lvl end end if looking_at_section then remove[#remove + 1] = elem -- delete line if 'remove' array not needed return {} end end El sábado, 6 de abril de 2019, 20:17:02 (UTC+2), BP escribió: > > I use a div with a class and a filter which removes divs with that class > like this: > > ````markdown > :::answer > **Answer:** 42. > ::: > ```` > > ````lua > function Div (elem) > if elem.classes:includes('answer') then > return {} -- delete it > else > return elem > end > end > ```` > > HTH, > > /bpj > > Den lör 6 apr. 2019 18:44pbeltran <pab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <javascript:>> skrev: > >> My purpose is to generate two versions from the same markdown file. Think >> in a worksheet or a set of reveal slides with and without solutions. >> >> If I use gpp, like suggested here, >> <https://randomdeterminism.wordpress.com/2012/06/01/how-i-stopped-worring-and-started-using-markdown-like-tex/>the >> math expressions in my .md (mathjax) get messed, since \ are escaped. >> >> Is there a way out of the box? For instance, by using custom fenced_divs >> and them telling pandoc to remove that specific div? I've taken a look at >> custom filters but I don't know haskell... >> >> Thanks >> >> -- >> You received this message because you are subscribed to the Google Groups >> "pandoc-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <javascript:>. >> To post to this group, send email to pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com >> <https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- 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/44645f9a-1670-4f4e-93cc-e24394fa10f4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 7565 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <44645f9a-1670-4f4e-93cc-e24394fa10f4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <44645f9a-1670-4f4e-93cc-e24394fa10f4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2019-04-07 5:49 ` BPJ [not found] ` <CADAJKhAL7JGQyMS7A8eYhN7vQLdk7ccVm8=VEwz1keeuY_LVBA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: BPJ @ 2019-04-07 5:49 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw [-- Attachment #1: Type: text/plain, Size: 4668 bytes --] You can use any attributes on headings, including classes: ````markdown ## The heading {.class} ```` The problem with headings inside divs is that pandoc sometimes ignores them, i.e. in the auto-generated table of contents and apparently also when identifying slides, probably because slides themselves need to be top level divs. Den lör 6 apr. 2019 20:36pbeltran <pabelpe-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev: > Thanks. Using your script, what I can't do is to include a heading inside > the fenced div, can't I? The reason is that I need solution to be presented > in a different slide. I had just found a kind of solution, using heading > identifiers (although when compiling to beamer it spits a warning (as > several sections share the same identifier): > > local looking_at_section = false > local lvl = 0 > local remove = {} -- delete line if 'remove' array not needed > > function Block (elem) > if elem.t == "Header" then > -- if elem.classes:includes('remove',1) then > > if elem.identifier == 'answer' then > looking_at_section = true > lvl = elem. > level > else > > looking_at_section = looking_at_section and elem.level > > lvl > end > end > if looking_at_section then > remove[#remove + 1] = elem -- delete line if 'remove' array not needed > return {} > end > end > > > > > > El sábado, 6 de abril de 2019, 20:17:02 (UTC+2), BP escribió: >> >> I use a div with a class and a filter which removes divs with that class >> like this: >> >> ````markdown >> :::answer >> **Answer:** 42. >> ::: >> ```` >> >> ````lua >> function Div (elem) >> if elem.classes:includes('answer') then >> return {} -- delete it >> else >> return elem >> end >> end >> ```` >> >> HTH, >> >> /bpj >> >> Den lör 6 apr. 2019 18:44pbeltran <pab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev: >> >>> My purpose is to generate two versions from the same markdown file. >>> Think in a worksheet or a set of reveal slides with and without solutions. >>> >>> If I use gpp, like suggested here, >>> <https://randomdeterminism.wordpress.com/2012/06/01/how-i-stopped-worring-and-started-using-markdown-like-tex/>the >>> math expressions in my .md (mathjax) get messed, since \ are escaped. >>> >>> Is there a way out of the box? For instance, by using custom fenced_divs >>> and them telling pandoc to remove that specific div? I've taken a look at >>> custom filters but I don't know haskell... >>> >>> Thanks >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "pandoc-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to pandoc-...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >>> To post to this group, send email to pandoc-...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com >>> <https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > 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/44645f9a-1670-4f4e-93cc-e24394fa10f4%40googlegroups.com > <https://groups.google.com/d/msgid/pandoc-discuss/44645f9a-1670-4f4e-93cc-e24394fa10f4%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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/CADAJKhAL7JGQyMS7A8eYhN7vQLdk7ccVm8%3DVEwz1keeuY_LVBA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #2: Type: text/html, Size: 8412 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <CADAJKhAL7JGQyMS7A8eYhN7vQLdk7ccVm8=VEwz1keeuY_LVBA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <CADAJKhAL7JGQyMS7A8eYhN7vQLdk7ccVm8=VEwz1keeuY_LVBA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2019-04-07 6:46 ` pbeltran [not found] ` <5fc2de0f-82db-4d02-9dc9-ff5db8a8b9b4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: pbeltran @ 2019-04-07 6:46 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 4896 bytes --] Ok, thanks. El domingo, 7 de abril de 2019, 7:49:36 (UTC+2), BP escribió: > > You can use any attributes on headings, including classes: > > ````markdown > ## The heading {.class} > ```` > > The problem with headings inside divs is that pandoc sometimes ignores > them, i.e. in the auto-generated table of contents and apparently also when > identifying slides, probably because slides themselves need to be top level > divs. > > > Den lör 6 apr. 2019 20:36pbeltran <pab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <javascript:>> skrev: > >> Thanks. Using your script, what I can't do is to include a heading inside >> the fenced div, can't I? The reason is that I need solution to be presented >> in a different slide. I had just found a kind of solution, using heading >> identifiers (although when compiling to beamer it spits a warning (as >> several sections share the same identifier): >> >> local looking_at_section = false >> local lvl = 0 >> local remove = {} -- delete line if 'remove' array not needed >> >> function Block (elem) >> if elem.t == "Header" then >> -- if elem.classes:includes('remove',1) then >> >> if elem.identifier == 'answer' then >> looking_at_section = true >> lvl = elem. >> level >> else >> >> looking_at_section = looking_at_section and elem.level > >> lvl >> end >> end >> if looking_at_section then >> remove[#remove + 1] = elem -- delete line if 'remove' array not >> needed >> return {} >> end >> end >> >> >> >> >> >> El sábado, 6 de abril de 2019, 20:17:02 (UTC+2), BP escribió: >>> >>> I use a div with a class and a filter which removes divs with that class >>> like this: >>> >>> ````markdown >>> :::answer >>> **Answer:** 42. >>> ::: >>> ```` >>> >>> ````lua >>> function Div (elem) >>> if elem.classes:includes('answer') then >>> return {} -- delete it >>> else >>> return elem >>> end >>> end >>> ```` >>> >>> HTH, >>> >>> /bpj >>> >>> Den lör 6 apr. 2019 18:44pbeltran <pab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev: >>> >>>> My purpose is to generate two versions from the same markdown file. >>>> Think in a worksheet or a set of reveal slides with and without solutions. >>>> >>>> If I use gpp, like suggested here, >>>> <https://randomdeterminism.wordpress.com/2012/06/01/how-i-stopped-worring-and-started-using-markdown-like-tex/>the >>>> math expressions in my .md (mathjax) get messed, since \ are escaped. >>>> >>>> Is there a way out of the box? For instance, by using custom >>>> fenced_divs and them telling pandoc to remove that specific div? I've taken >>>> a look at custom filters but I don't know haskell... >>>> >>>> Thanks >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "pandoc-discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to pandoc-...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >>>> To post to this group, send email to pandoc-...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com >>>> <https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> 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-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <javascript:>. >> To post to this group, send email to pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/pandoc-discuss/44645f9a-1670-4f4e-93cc-e24394fa10f4%40googlegroups.com >> <https://groups.google.com/d/msgid/pandoc-discuss/44645f9a-1670-4f4e-93cc-e24394fa10f4%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- 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/5fc2de0f-82db-4d02-9dc9-ff5db8a8b9b4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 9425 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <5fc2de0f-82db-4d02-9dc9-ff5db8a8b9b4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <5fc2de0f-82db-4d02-9dc9-ff5db8a8b9b4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2019-04-07 12:03 ` BPJ [not found] ` <5a4d26a3-b9b7-dda1-d437-6e7cdd519dba-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: BPJ @ 2019-04-07 12:03 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw, pbeltran The filter will probably be more effective (faster) if you just visit Header and Div elements. You can do that by returning a table of tables from the filter script like this: ````lua local function remove_cond (elem) if elem.classes:includes('conditional') then return {} -- delete it else return elem end end return { { Header = remove_cond, Div = remove_cond }, } ```` although on second thought I would probably prefer to have the (unmarked) heading inside the div in the source, and use a filter to replace the div with its content instead of removing it when I want to include the conditional content. This does make the filter a bit more complicated, but makes the Markdown source cleaner. ````lua -- include.lua - include conditional content function Div (elem) if elem.classes:includes('conditional') then return elem.content -- replace div with its content else return elem end end ```` In fact my preference would probably be to use the same filter for both actions and set a metadata flag value to true when I want to keep rather than remove conditional content. This makes usage somewhat more complicated, but maintenance easier, since if you need to change the filter, you can do all the changes in one place, rather than having to keep two scripts in synch. This is IMHO always preferable. ````````lua --[========================================[ # conditional.lua - conditional content in Pandoc ## Usage ### In your Markdown source Put content which should be conditionally included inside a div with a class `conditional`: ````markdown :::conditional ## Answer to question 1 42 ::: ```` ### To remove conditional content Run the filter with `-M keep_cond=false` (the default): ````sh pandoc --lua-filter=conditional.lua -M keep_cond=false input.md ```` ### To keep conditional content Run the filter with `-M keep_cond=true`, to have the filter remove the wrapping divs around conditional content. This is important to get the table of contents and/or slides in a presentation right! ````sh pandoc --lua-filter=conditional.lua -M keep_cond=false input.md ```` ## Copyright and license | This software is Copyright (c) 2019 by Benct Philip Jonsson. | | This is free software, licensed under: | | The MIT (X11) License | See <http://www.opensource.org/licenses/mit-license.php>. --]========================================] local keep_cond = false local function get_meta (meta) local flag_value = meta.keep_cond if nil ~= flag_value then -- if not nil i.e. if explicitly set assert( 'boolean' == type(flag_value), 'expected value of metadata field keep_cond to be boolean (true or false)' ) keep_cond = flag_value end return meta end local function do_cond (elem) if elem.classes:includes('conditional') then if keep_cond then return elem.content -- replace with its content else -- if we're discarding conditional return {} -- remove from AST end else -- if not conditional return elem end end return { -- run first as separate filter to get metadata value { Meta = get_meta }, -- run as a second filter after metadata value has been checked { Div = do_cond }, } ```````` Den 2019-04-07 kl. 08:46, skrev pbeltran: > Ok, thanks. > > El domingo, 7 de abril de 2019, 7:49:36 (UTC+2), BP escribió: >> >> You can use any attributes on headings, including classes: >> >> ````markdown >> ## The heading {.class} >> ```` >> >> The problem with headings inside divs is that pandoc sometimes ignores >> them, i.e. in the auto-generated table of contents and apparently also when >> identifying slides, probably because slides themselves need to be top level >> divs. >> >> >> Den lör 6 apr. 2019 20:36pbeltran <pab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <javascript:>> skrev: >> >>> Thanks. Using your script, what I can't do is to include a heading inside >>> the fenced div, can't I? The reason is that I need solution to be presented >>> in a different slide. I had just found a kind of solution, using heading >>> identifiers (although when compiling to beamer it spits a warning (as >>> several sections share the same identifier): >>> >>> local looking_at_section = false >>> local lvl = 0 >>> local remove = {} -- delete line if 'remove' array not needed >>> >>> function Block (elem) >>> if elem.t == "Header" then >>> -- if elem.classes:includes('remove',1) then >>> >>> if elem.identifier == 'answer' then >>> looking_at_section = true >>> lvl = elem. >>> level >>> else >>> >>> looking_at_section = looking_at_section and elem.level > >>> lvl >>> end >>> end >>> if looking_at_section then >>> remove[#remove + 1] = elem -- delete line if 'remove' array not >>> needed >>> return {} >>> end >>> end >>> >>> >>> >>> >>> >>> El sábado, 6 de abril de 2019, 20:17:02 (UTC+2), BP escribió: >>>> >>>> I use a div with a class and a filter which removes divs with that class >>>> like this: >>>> >>>> ````markdown >>>> :::answer >>>> **Answer:** 42. >>>> ::: >>>> ```` >>>> >>>> ````lua >>>> function Div (elem) >>>> if elem.classes:includes('answer') then >>>> return {} -- delete it >>>> else >>>> return elem >>>> end >>>> end >>>> ```` >>>> >>>> HTH, >>>> >>>> /bpj >>>> >>>> Den lör 6 apr. 2019 18:44pbeltran <pab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev: >>>> >>>>> My purpose is to generate two versions from the same markdown file. >>>>> Think in a worksheet or a set of reveal slides with and without solutions. >>>>> >>>>> If I use gpp, like suggested here, >>>>> <https://randomdeterminism.wordpress.com/2012/06/01/how-i-stopped-worring-and-started-using-markdown-like-tex/>the >>>>> math expressions in my .md (mathjax) get messed, since \ are escaped. >>>>> >>>>> Is there a way out of the box? For instance, by using custom >>>>> fenced_divs and them telling pandoc to remove that specific div? I've taken >>>>> a look at custom filters but I don't know haskell... >>>>> >>>>> Thanks >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "pandoc-discuss" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to pandoc-...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >>>>> To post to this group, send email to pandoc-...-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/pandoc-discuss/61bdaf46-d88a-4ef1-b145-71ad5900fed8%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>> 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-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <javascript:>. >>> To post to this group, send email to pandoc-...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org >>> <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/pandoc-discuss/44645f9a-1670-4f4e-93cc-e24394fa10f4%40googlegroups.com >>> <https://groups.google.com/d/msgid/pandoc-discuss/44645f9a-1670-4f4e-93cc-e24394fa10f4%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> > -- 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/5a4d26a3-b9b7-dda1-d437-6e7cdd519dba%40gmail.com. For more options, visit https://groups.google.com/d/optout. ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <5a4d26a3-b9b7-dda1-d437-6e7cdd519dba-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <5a4d26a3-b9b7-dda1-d437-6e7cdd519dba-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2019-06-26 0:56 ` Hans Kunkell [not found] ` <1375b479-60d6-4514-8c72-db60f3355ab8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Hans Kunkell @ 2019-06-26 0:56 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 1333 bytes --] Hi! Perhaps you are satisfied with the way discussed earlier. I have an alternative solution for those who are interested. I also had the need to make two versions of a document where most of the contents are the same. My solution was to have single file and where needed write like this: <<< internal Contents here will be in *internal* version. You may include any valid markdown here. <<< external ... For external version ... >>> The attached bash script will parse the file and depending on targeting internal or external version (or whatever identifiers you prefer) two different intermediate files will be created and then processed by pandoc. This is the way I solved it and if you find it useful for your needs, please use it! Regards Hans -- 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/1375b479-60d6-4514-8c72-db60f3355ab8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 2243 bytes --] [-- Attachment #2: multi.sh.txt --] [-- Type: text/plain, Size: 1145 bytes --] #!/bin/bash SOURCESCRIPT="$0" SAVEINTERMEDIATE=true function prep() { OUTPUTFILE="$1" shift TARGET="$1" shift $SAVEINTERMEDIATE && INTERMEDIATEFILE="$OUTPUTFILE-intermediate.md" || INTERMEDIATEFILE="/dev/null" awk -f <(sed -e '/[B]EGIN_AWK1/,/[E]ND_AWK1/!d' "$SOURCESCRIPT") \ -v target="$TARGET" \ $@ | tee "$INTERMEDIATEFILE" | \ pandoc -f markdown \ --standalone \ --reference-doc=reference.odt \ -o "$OUTPUTFILE" return $? } prep "output-internal.odt" internal $@ prep "output-external.odt" external $@ exit #BEGIN_AWK1 /^<<</ { nextconditional = trim(substr($0, 4)) if (nextconditional == conditional) print "Already inside conditional. Please check source." > "/dev/stderr" conditional = nextconditional next } /^>>>/ { conditional = "" next } // { if (conditional) { if (conditional != target) next } print } # From: https://stackoverflow.com/questions/9985528/how-can-i-trim-white-space-from-a-variable-in-awk function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s } function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s } function trim(s) { return rtrim(ltrim(s)); } #END_AWK1 ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <1375b479-60d6-4514-8c72-db60f3355ab8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <1375b479-60d6-4514-8c72-db60f3355ab8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2019-06-26 8:25 ` pbeltran [not found] ` <9ab5d37d-74c0-4793-81fe-c6cdab9e253d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: pbeltran @ 2019-06-26 8:25 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 1595 bytes --] Thanks, I'm working with the solution via lua filters, as I need not two, but several versions. El miércoles, 26 de junio de 2019, 2:56:59 (UTC+2), Hans Kunkell escribió: > > Hi! > > Perhaps you are satisfied with the way discussed earlier. I have an > alternative solution for those who are interested. > > I also had the need to make two versions of a document where most of the > contents are the same. My solution was to have single file and where needed > write like this: > <<< internal > Contents here will be in *internal* version. You may include any valid > markdown here. > <<< external > ... For external version ... > >>> > > The attached bash script will parse the file and depending on targeting > internal or external version (or whatever identifiers you prefer) two > different intermediate files will be created and then processed by pandoc. > > This is the way I solved it and if you find it useful for your needs, > please use it! > > Regards > Hans > > -- 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/9ab5d37d-74c0-4793-81fe-c6cdab9e253d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 2446 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <9ab5d37d-74c0-4793-81fe-c6cdab9e253d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <9ab5d37d-74c0-4793-81fe-c6cdab9e253d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2019-06-26 8:31 ` Hans Kunkell [not found] ` <4f0d389c-c21c-4069-a344-ef6ce1efb113-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 0 siblings, 1 reply; 10+ messages in thread From: Hans Kunkell @ 2019-06-26 8:31 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 1990 bytes --] Hi pbeltran, ok, I understand. My script is not limited to 2 versions but any number. internal and external was just the choice I use. I guess a lua filter is better for your workflow, I just wanted to share another possible method, it may help some other. Have a nice day! Hans Den onsdag 26 juni 2019 kl. 17:25:02 UTC+9 skrev pbeltran: > > Thanks, I'm working with the solution via lua filters, as I need not two, > but several versions. > > El miércoles, 26 de junio de 2019, 2:56:59 (UTC+2), Hans Kunkell escribió: >> >> Hi! >> >> Perhaps you are satisfied with the way discussed earlier. I have an >> alternative solution for those who are interested. >> >> I also had the need to make two versions of a document where most of the >> contents are the same. My solution was to have single file and where needed >> write like this: >> <<< internal >> Contents here will be in *internal* version. You may include any valid >> markdown here. >> <<< external >> ... For external version ... >> >>> >> >> The attached bash script will parse the file and depending on targeting >> internal or external version (or whatever identifiers you prefer) two >> different intermediate files will be created and then processed by pandoc. >> >> This is the way I solved it and if you find it useful for your needs, >> please use it! >> >> Regards >> Hans >> >> -- 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/4f0d389c-c21c-4069-a344-ef6ce1efb113%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 3046 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <4f0d389c-c21c-4069-a344-ef6ce1efb113-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>]
* Re: Conditional compilation - How to? [not found] ` <4f0d389c-c21c-4069-a344-ef6ce1efb113-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> @ 2019-06-26 8:40 ` pbeltran 0 siblings, 0 replies; 10+ messages in thread From: pbeltran @ 2019-06-26 8:40 UTC (permalink / raw) To: pandoc-discuss [-- Attachment #1.1: Type: text/plain, Size: 2163 bytes --] Great! I'll take a look. Thanks! El miércoles, 26 de junio de 2019, 10:31:16 (UTC+2), Hans Kunkell escribió: > > Hi pbeltran, > > ok, I understand. My script is not limited to 2 versions but any number. > internal and external was just the choice I use. > > I guess a lua filter is better for your workflow, I just wanted to share > another possible method, it may help some other. > > Have a nice day! > > Hans > > Den onsdag 26 juni 2019 kl. 17:25:02 UTC+9 skrev pbeltran: >> >> Thanks, I'm working with the solution via lua filters, as I need not two, >> but several versions. >> >> El miércoles, 26 de junio de 2019, 2:56:59 (UTC+2), Hans Kunkell escribió: >>> >>> Hi! >>> >>> Perhaps you are satisfied with the way discussed earlier. I have an >>> alternative solution for those who are interested. >>> >>> I also had the need to make two versions of a document where most of the >>> contents are the same. My solution was to have single file and where needed >>> write like this: >>> <<< internal >>> Contents here will be in *internal* version. You may include any valid >>> markdown here. >>> <<< external >>> ... For external version ... >>> >>> >>> >>> The attached bash script will parse the file and depending on targeting >>> internal or external version (or whatever identifiers you prefer) two >>> different intermediate files will be created and then processed by pandoc. >>> >>> This is the way I solved it and if you find it useful for your needs, >>> please use it! >>> >>> Regards >>> Hans >>> >>> -- 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/695a09ca-b37a-4cee-a9bc-a321c0477d95%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. [-- Attachment #1.2: Type: text/html, Size: 3325 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-06-26 8:40 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-04-06 16:43 Conditional compilation - How to? pbeltran [not found] ` <61bdaf46-d88a-4ef1-b145-71ad5900fed8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2019-04-06 18:16 ` BPJ [not found] ` <CADAJKhBNWpmcKAAaNw_xo_EeT-JWKVPcnFo9EdDfzyA0+Fpydw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2019-04-06 18:36 ` pbeltran [not found] ` <44645f9a-1670-4f4e-93cc-e24394fa10f4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2019-04-07 5:49 ` BPJ [not found] ` <CADAJKhAL7JGQyMS7A8eYhN7vQLdk7ccVm8=VEwz1keeuY_LVBA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2019-04-07 6:46 ` pbeltran [not found] ` <5fc2de0f-82db-4d02-9dc9-ff5db8a8b9b4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2019-04-07 12:03 ` BPJ [not found] ` <5a4d26a3-b9b7-dda1-d437-6e7cdd519dba-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2019-06-26 0:56 ` Hans Kunkell [not found] ` <1375b479-60d6-4514-8c72-db60f3355ab8-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2019-06-26 8:25 ` pbeltran [not found] ` <9ab5d37d-74c0-4793-81fe-c6cdab9e253d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2019-06-26 8:31 ` Hans Kunkell [not found] ` <4f0d389c-c21c-4069-a344-ef6ce1efb113-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> 2019-06-26 8:40 ` pbeltran
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).