แท็ก HTML ใน Rmarkdown เป็นเอกสารคำ
มีความเป็นไปได้ที่จะใช้แท็ก HTML ในเอกสาร Rmarkdown ที่แสดงผลเป็น word หรือไม่?
ตัวอย่างเช่น:
---
output: word_document
---
# This is rendered as heading
<h1> But this is not </h1>
ทำงานได้อย่างสมบูรณ์เมื่อแสดงผลเป็น html_document แต่ไม่ใช่เมื่อแสดงผลเป็น word_document
มีการถามคำถามที่เฉพาะเจาะจงมากขึ้นเกี่ยวกับแท็กที่นี่ แต่ไม่มีวิธีแก้ไข: ขีดเส้นใต้ใน RMarkdown เป็น Microsoft Word
คำตอบ
ได้เลยไปเลย:
---
output:
word_document:
md_extensions: +raw_html-markdown_in_html_blocks
pandoc_args: ['--lua-filter', 'read_html.lua']
---
# This is rendered as heading
<h1> And this is one, too </h1>
โดยที่read_html.luaต้องเป็นไฟล์ในไดเร็กทอรีเดียวกันกับเนื้อหานี้:
function RawBlock (raw)
if raw.format:match 'html' and not FORMAT:match 'html' then
return pandoc.read(raw.text, raw.format).blocks
end
end
มาแกะกล่องด้านบนเพื่อดูวิธีการทำงาน word_documentสิ่งแรกที่คุณจะสังเกตเห็นเป็นพารามิเตอร์เพิ่มเติมเพื่อ การmd_extensionsแก้ไขวิธีการแยกวิเคราะห์ข้อความของ pandoc ดูที่นี่สำหรับรายการทั้งหมด (หรือเรียกใช้pandoc --list-extensions=markdown) ในเทอร์มินัลของคุณ เราเปิดใช้งานraw_htmlเพื่อให้แน่ใจว่า pandoc ไม่ทิ้งแท็ก HTML ดิบและปิดใช้งานmarkdown_in_html_blocksเพื่อให้แน่ใจว่าเราได้รับแท็ก HTML ทั้งหมดเป็นบล็อกเดียวในรูปแบบภายในของ pandoc
การตั้งค่าถัดไปคือpandoc_argsที่เราบอกให้ pandoc ใช้ตัวกรอง Luaเพื่อแก้ไขเอกสารระหว่างการแปลง ตัวกรองจะเลือกบล็อก HTML ทั้งหมดแยกวิเคราะห์เป็น HTML แทน Markdown และแทนที่ HTML ดิบด้วยผลการแยกวิเคราะห์
ดังนั้นหากคุณใช้ HTML ดิบที่ pandoc สามารถอ่านได้คุณก็สบายดี หากคุณใช้คำแนะนำพิเศษที่ pandoc ไม่สามารถอ่านได้การตั้งค่าที่อธิบายไว้ข้างต้นจะไม่ช่วยเช่นกัน คุณต้องเขียนมาร์กอัปใหม่ใน OOXML ซึ่งเป็นรูปแบบ XML ที่ใช้ใน docx