* YAML metadata block + HTML input file @ 2021-12-07 19:09 Gregory D. Weber [not found] ` <91104b9d67992600aa9acc26fa32b2cfcde60056.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: Gregory D. Weber @ 2021-12-07 19:09 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw I'm having trouble with an HTML to HTML conversion using a template and YAML metadata block. Pandoc does not seem to recognize the YAML block in the HTML input file, and then reports an error due to the missing $title$ variable. If the error is mine, I'd like to know what I did wrong here: $ pandoc --version pandoc 2.5 Compiled with pandoc-types 1.17.5.4, texmath 0.11.2.2, skylighting 0.7.7 ...... $ pandoc --template=template.html -o output.html input.html [WARNING] This document format requires a nonempty <title> element. Please specify either 'title' or 'pagetitle' in the metadata, e.g. by using --metadata pagetitle="..." on the command line. Falling back to 'input' A. These are my files: 1. template.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>$title$</title> </head> <body> <h1>$title$</h1> <div>$body$</div> </body> </html> 2. input.html --- title: Hello --- <form id="form1" <p>Salvete, sodales.</p> </form> 3. output.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title></title> </head> <body> <h1></h1> <div>--- title: Hello --- Salvete, sodales.</div> </body> </html> B. So far, I'm able to work around this by putting the metadata variables in their own file, *without* the "---" above and below, and using the --metadata- file option. And this seems to work also for ordinary template variables like $speaker$, which are not metadata variables like $title$ -- though I don't understand the distinction too clearly: $ pandoc --template=template.html -o output2.html --metadata-file=input3.yaml input2.html 1. template.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>$title$</title> </head> <body> <h1>$title$</h1> <div>Dixit $speaker$: $body$</div> </body> </html> 1. input3.html <form id="form1" <p>Salvete, sodales.</p> </form> 2. input3.yaml title: Hello speaker: Marcus 3. output2.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>Hello</title> </head> <body> <h1>Hello</h1> <div>Dixit Marcus: Salvete, sodales.</div> </body> </html> (This is the desired and actual output.) ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <91104b9d67992600aa9acc26fa32b2cfcde60056.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: YAML metadata block + HTML input file [not found] ` <91104b9d67992600aa9acc26fa32b2cfcde60056.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2021-12-07 20:19 ` John MacFarlane [not found] ` <yh480kczm82mn9.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org> 0 siblings, 1 reply; 5+ messages in thread From: John MacFarlane @ 2021-12-07 20:19 UTC (permalink / raw) To: Gregory D. Weber, pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw Since YAML metadata is a markdown extension, you can't include it in HTML input. Using an external metadata file is fine, or you can use the --metadata command line option. Note that template variables are set automatically from metadata when present. "Gregory D. Weber" <spottedmetal-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes: > I'm having trouble with an HTML to HTML conversion using a template and YAML > metadata block. Pandoc does not seem to recognize the YAML block in the HTML > input file, and then reports an error due to the missing $title$ variable. If > the error is mine, I'd like to know what I did wrong here: > > $ pandoc --version > pandoc 2.5 > Compiled with pandoc-types 1.17.5.4, texmath 0.11.2.2, skylighting 0.7.7 > ...... > > $ pandoc --template=template.html -o output.html input.html > [WARNING] This document format requires a nonempty <title> element. > Please specify either 'title' or 'pagetitle' in the metadata, > e.g. by using --metadata pagetitle="..." on the command line. > Falling back to 'input' > > A. These are my files: > > 1. template.html > > <!DOCTYPE html> > <html lang="en"> > <head> > <meta charset="UTF-8"/> > <title>$title$</title> > </head> > > <body> > <h1>$title$</h1> > <div>$body$</div> > </body> > </html> > > 2. input.html > > --- > title: Hello > --- > <form id="form1" > <p>Salvete, sodales.</p> > </form> > > 3. output.html > > <!DOCTYPE html> > <html lang="en"> > <head> > <meta charset="UTF-8"/> > <title></title> > </head> > > <body> > <h1></h1> > <div>--- title: Hello --- > Salvete, sodales.</div> > </body> > </html> > > B. So far, I'm able to work around this by putting the metadata variables in > their own file, *without* the "---" above and below, and using the --metadata- > file option. And this seems to work also for ordinary template variables like > $speaker$, which are not metadata variables like $title$ -- though I don't > understand the distinction too clearly: > > $ pandoc --template=template.html -o output2.html --metadata-file=input3.yaml > input2.html > > 1. template.html > > <!DOCTYPE html> > <html lang="en"> > <head> > <meta charset="UTF-8"/> > <title>$title$</title> > </head> > > <body> > <h1>$title$</h1> > <div>Dixit $speaker$: $body$</div> > </body> > </html> > > 1. input3.html > > <form id="form1" > <p>Salvete, sodales.</p> > </form> > > 2. input3.yaml > > title: Hello > speaker: Marcus > > 3. output2.html > > <!DOCTYPE html> > <html lang="en"> > <head> > <meta charset="UTF-8"/> > <title>Hello</title> > </head> > > <body> > <h1>Hello</h1> > <div>Dixit Marcus: Salvete, sodales.</div> > </body> > </html> > > (This is the desired and actual output.) > > > -- > 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/91104b9d67992600aa9acc26fa32b2cfcde60056.camel%40gmail.com. ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <yh480kczm82mn9.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>]
* Re: YAML metadata block + HTML input file [not found] ` <yh480kczm82mn9.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org> @ 2021-12-07 21:02 ` Martin Hepp [not found] ` <76E923B2-4D96-4654-8D11-B5B2A261C21F-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2021-12-07 23:57 ` Gregory D. Weber 1 sibling, 1 reply; 5+ messages in thread From: Martin Hepp @ 2021-12-07 21:02 UTC (permalink / raw) To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw; +Cc: Gregory D. Weber [-- Attachment #1: Type: text/plain, Size: 5265 bytes --] It would be possible, and actually pretty useful, to represent YAML meta-data in HTML, either directly as a JSON dictionary in a script element, or better, as JSON-LD, see https://json-ld.org/ As for the vocabulary, one could use https://schema.org/PropertyValue This would allow round-tripping meta-data at least between HTML and Markdown. Even better, JSON-LD meta-data from HTML documents (e.g. schema.org markup) could be represented as a YAML header block in Markdown. If anybody is willing to add respective support to the readers and writers involved, I can offer to craft respective JSON-LD templates and YAML renderings. Best wishes Martin --------------------------------------- martin hepp www: http://www.heppnetz.de/ email: mhepp-bdq14YP6qtRg9hUCZPvPmw@public.gmane.org > Am 07.12.2021 um 21:20 schrieb John MacFarlane <jgm-TVLZxgkOlNX2fBVCVOL8/A@public.gmane.org>: > > > Since YAML metadata is a markdown extension, you can't include > it in HTML input. > > Using an external metadata file is fine, or you can use the > --metadata command line option. > > Note that template variables are set automatically from > metadata when present. > > "Gregory D. Weber" <spottedmetal-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes: > >> I'm having trouble with an HTML to HTML conversion using a template and YAML >> metadata block. Pandoc does not seem to recognize the YAML block in the HTML >> input file, and then reports an error due to the missing $title$ variable. If >> the error is mine, I'd like to know what I did wrong here: >> >> $ pandoc --version >> pandoc 2.5 >> Compiled with pandoc-types 1.17.5.4, texmath 0.11.2.2, skylighting 0.7.7 >> ...... >> >> $ pandoc --template=template.html -o output.html input.html >> [WARNING] This document format requires a nonempty <title> element. >> Please specify either 'title' or 'pagetitle' in the metadata, >> e.g. by using --metadata pagetitle="..." on the command line. >> Falling back to 'input' >> >> A. These are my files: >> >> 1. template.html >> >> <!DOCTYPE html> >> <html lang="en"> >> <head> >> <meta charset="UTF-8"/> >> <title>$title$</title> >> </head> >> >> <body> >> <h1>$title$</h1> >> <div>$body$</div> >> </body> >> </html> >> >> 2. input.html >> >> --- >> title: Hello >> --- >> <form id="form1" >> <p>Salvete, sodales.</p> >> </form> >> >> 3. output.html >> >> <!DOCTYPE html> >> <html lang="en"> >> <head> >> <meta charset="UTF-8"/> >> <title></title> >> </head> >> >> <body> >> <h1></h1> >> <div>--- title: Hello --- >> Salvete, sodales.</div> >> </body> >> </html> >> >> B. So far, I'm able to work around this by putting the metadata variables in >> their own file, *without* the "---" above and below, and using the --metadata- >> file option. And this seems to work also for ordinary template variables like >> $speaker$, which are not metadata variables like $title$ -- though I don't >> understand the distinction too clearly: >> >> $ pandoc --template=template.html -o output2.html --metadata-file=input3.yaml >> input2.html >> >> 1. template.html >> >> <!DOCTYPE html> >> <html lang="en"> >> <head> >> <meta charset="UTF-8"/> >> <title>$title$</title> >> </head> >> >> <body> >> <h1>$title$</h1> >> <div>Dixit $speaker$: $body$</div> >> </body> >> </html> >> >> 1. input3.html >> >> <form id="form1" >> <p>Salvete, sodales.</p> >> </form> >> >> 2. input3.yaml >> >> title: Hello >> speaker: Marcus >> >> 3. output2.html >> >> <!DOCTYPE html> >> <html lang="en"> >> <head> >> <meta charset="UTF-8"/> >> <title>Hello</title> >> </head> >> >> <body> >> <h1>Hello</h1> >> <div>Dixit Marcus: Salvete, sodales.</div> >> </body> >> </html> >> >> (This is the desired and actual output.) >> >> >> -- >> 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/91104b9d67992600aa9acc26fa32b2cfcde60056.camel%40gmail.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 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/yh480kczm82mn9.fsf%40johnmacfarlane.net. -- 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/76E923B2-4D96-4654-8D11-B5B2A261C21F%40gmail.com. [-- Attachment #2: Type: text/html, Size: 13060 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <76E923B2-4D96-4654-8D11-B5B2A261C21F-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: YAML metadata block + HTML input file [not found] ` <76E923B2-4D96-4654-8D11-B5B2A261C21F-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2021-12-08 2:44 ` John MacFarlane 0 siblings, 0 replies; 5+ messages in thread From: John MacFarlane @ 2021-12-08 2:44 UTC (permalink / raw) To: Martin Hepp, pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw; +Cc: Gregory D. Weber Easy to do this already. A template variable `meta-json` gets set in all the writers, so you just need to put this somewhere in your HTML template. Martin Hepp <mfhepp-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes: > It would be possible, and actually pretty useful, to represent YAML meta-data in HTML, either directly as a JSON dictionary in a script element, or better, as JSON-LD, see > > https://json-ld.org/ > > As for the vocabulary, one could use > > https://schema.org/PropertyValue > > This would allow round-tripping meta-data at least between HTML and Markdown. > > Even better, JSON-LD meta-data from HTML documents (e.g. schema.org markup) could be represented as a YAML header block in Markdown. > > If anybody is willing to add respective support to the readers and writers involved, I can offer to craft respective JSON-LD templates and YAML renderings. > > Best wishes > Martin > > > --------------------------------------- > martin hepp > www: http://www.heppnetz.de/ > email: mhepp-bdq14YP6qtRg9hUCZPvPmw@public.gmane.org > > >> Am 07.12.2021 um 21:20 schrieb John MacFarlane <jgm-TVLZxgkOlNX2fBVCVOL8/A@public.gmane.org>: >> >> >> Since YAML metadata is a markdown extension, you can't include >> it in HTML input. >> >> Using an external metadata file is fine, or you can use the >> --metadata command line option. >> >> Note that template variables are set automatically from >> metadata when present. >> >> "Gregory D. Weber" <spottedmetal-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes: >> >>> I'm having trouble with an HTML to HTML conversion using a template and YAML >>> metadata block. Pandoc does not seem to recognize the YAML block in the HTML >>> input file, and then reports an error due to the missing $title$ variable. If >>> the error is mine, I'd like to know what I did wrong here: >>> >>> $ pandoc --version >>> pandoc 2.5 >>> Compiled with pandoc-types 1.17.5.4, texmath 0.11.2.2, skylighting 0.7.7 >>> ...... >>> >>> $ pandoc --template=template.html -o output.html input.html >>> [WARNING] This document format requires a nonempty <title> element. >>> Please specify either 'title' or 'pagetitle' in the metadata, >>> e.g. by using --metadata pagetitle="..." on the command line. >>> Falling back to 'input' >>> >>> A. These are my files: >>> >>> 1. template.html >>> >>> <!DOCTYPE html> >>> <html lang="en"> >>> <head> >>> <meta charset="UTF-8"/> >>> <title>$title$</title> >>> </head> >>> >>> <body> >>> <h1>$title$</h1> >>> <div>$body$</div> >>> </body> >>> </html> >>> >>> 2. input.html >>> >>> --- >>> title: Hello >>> --- >>> <form id="form1" >>> <p>Salvete, sodales.</p> >>> </form> >>> >>> 3. output.html >>> >>> <!DOCTYPE html> >>> <html lang="en"> >>> <head> >>> <meta charset="UTF-8"/> >>> <title></title> >>> </head> >>> >>> <body> >>> <h1></h1> >>> <div>--- title: Hello --- >>> Salvete, sodales.</div> >>> </body> >>> </html> >>> >>> B. So far, I'm able to work around this by putting the metadata variables in >>> their own file, *without* the "---" above and below, and using the --metadata- >>> file option. And this seems to work also for ordinary template variables like >>> $speaker$, which are not metadata variables like $title$ -- though I don't >>> understand the distinction too clearly: >>> >>> $ pandoc --template=template.html -o output2.html --metadata-file=input3.yaml >>> input2.html >>> >>> 1. template.html >>> >>> <!DOCTYPE html> >>> <html lang="en"> >>> <head> >>> <meta charset="UTF-8"/> >>> <title>$title$</title> >>> </head> >>> >>> <body> >>> <h1>$title$</h1> >>> <div>Dixit $speaker$: $body$</div> >>> </body> >>> </html> >>> >>> 1. input3.html >>> >>> <form id="form1" >>> <p>Salvete, sodales.</p> >>> </form> >>> >>> 2. input3.yaml >>> >>> title: Hello >>> speaker: Marcus >>> >>> 3. output2.html >>> >>> <!DOCTYPE html> >>> <html lang="en"> >>> <head> >>> <meta charset="UTF-8"/> >>> <title>Hello</title> >>> </head> >>> >>> <body> >>> <h1>Hello</h1> >>> <div>Dixit Marcus: Salvete, sodales.</div> >>> </body> >>> </html> >>> >>> (This is the desired and actual output.) >>> >>> >>> -- >>> 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/91104b9d67992600aa9acc26fa32b2cfcde60056.camel%40gmail.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 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/yh480kczm82mn9.fsf%40johnmacfarlane.net. > > -- > 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/76E923B2-4D96-4654-8D11-B5B2A261C21F%40gmail.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 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/m2czm7izmj.fsf%40MacBook-Pro-2.hsd1.ca.comcast.net. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: YAML metadata block + HTML input file [not found] ` <yh480kczm82mn9.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org> 2021-12-07 21:02 ` Martin Hepp @ 2021-12-07 23:57 ` Gregory D. Weber 1 sibling, 0 replies; 5+ messages in thread From: Gregory D. Weber @ 2021-12-07 23:57 UTC (permalink / raw) To: John MacFarlane, pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw On Tue, 2021-12-07 at 12:19 -0800, John MacFarlane wrote: > Since YAML metadata is a markdown extension, you can't include > it in HTML input. > Understood, thanks. I was trying to use HTML source because the file contained <form> and <canvas> elements, which, when the input file was turned into markdown, were rendered as formatted code instead of being copied straight through. However, I've been able to fix this with proper indenting, ```{=html5}, and --from=markdown-smart. It is working well now, with markdown source files, and I don't need the extra YAML files! ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-12-08 2:44 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-12-07 19:09 YAML metadata block + HTML input file Gregory D. Weber [not found] ` <91104b9d67992600aa9acc26fa32b2cfcde60056.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2021-12-07 20:19 ` John MacFarlane [not found] ` <yh480kczm82mn9.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org> 2021-12-07 21:02 ` Martin Hepp [not found] ` <76E923B2-4D96-4654-8D11-B5B2A261C21F-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2021-12-08 2:44 ` John MacFarlane 2021-12-07 23:57 ` Gregory D. Weber
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).