
рдорд╛рд░реНрдХрдбрд╛рдЙрди рдЯреЗрдмрд▓ рдирд╛рд░рдХреАрдп рд╣реИрдВ:
- рдЖрдк рд╢рдмреНрджреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрд╛рда рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕реВрдЪреА рднреА рдХрдоред
- рдпрджрд┐ рдмреЛрд▓реА рдЕрдиреБрдЪреНрдЫреЗрдж 1 рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рд╛рд░реВрдкрдг рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
- рдпрджрд┐ рдХрдХреНрд╖ рд╕рдВрд░реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкрдврд╝рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рди рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд▓рд╛рдЗрди рдирдВрдмрд░рд┐рдВрдЧред
рдпрд╣ рдкрдВрдбреЛрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдЬреЛ рдкрдВрдХреНрддрд┐рдмрджреНрдз, рдХреНрд╖реИрддрд┐рдЬ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕, рдЧреНрд░рд╛рдл рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рд╕рдВрд░рдЪрд┐рдд YAML рд╕реЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реА рд╕рдордп рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рд▓реВрдЖ рдлрд┐рд▓реНрдЯрд░ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИред
рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ рдЧреНрд░рдВрде рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдкрдВрдбреЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реВрдВред рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЗ рдмреАрдЪ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реЗ рдЖрдк HTML, рдФрд░ рдПрдордбреА, рдФрд░ DOCX, рдФрд░ рдкреАрдбреАрдПрдл рдХреА рдПрдХ рдФрд░ рдмреЛрд▓реА (30 рд╕реЗ рдЕрдзрд┐рдХ рдЗрдирдкреБрдЯ рдФрд░ 50 рд╕реЗ рдЕрдзрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк) рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрдВрдбреЛрдХ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдореЗрдВ рд▓рд┐рдВрдХ, рдлреБрдЯрдиреЛрдЯ, рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рд╕реВрддреНрд░ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИрдВред
рдкрдВрдбреЛрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛): рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рд░реВрдк тЖТ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ тЖТ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдкред рд▓реБрдЖ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдлрд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдлреЙрд░реНрдореЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдорд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдХ рд╕рд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рд╕рд╢рд░реНрдд рднрд╛рд╖рд╛ table
рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рд░ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рдЦреЗрдЧрд╛, рдЙрдирдХреЗ рдЕрдВрджрд░ YAML рдкрдврд╝реЗрдВ рдФрд░ рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ рдЬреЛ рдкрдВрдбреЛрдХ рдЦреБрдж рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗред
pandoc --lua-filter table.lua input.md -o output.html
рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рд╡реЗ рдХреНрдпреЛрдВ рдмрджрддрд░ рд╣реИрдВ?
- HTML рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдХреЗрд╡рд▓ Markdown рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ HTML рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддреА рд╣реИрдВ; рдХреЗрд╡рд▓ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдореГрджреНрдз рд╕реНрд╡рд░реВрдкрдг рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред
- рдЯреЗрдмрд▓ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╣ рдЙрди рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ ( рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП )ред
- рд╕рдВрдкрд╛рджрдХреЛрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ ( Emacs рдСрд░реНрдЧ-рдореЛрдб , VIM рдкреНрд▓рдЧрдЗрдиреНрд╕ ) рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, pandoc-crossref
рдФрд░ рд╕рднреА рдкрдВрдбреЛрдХ рдмрдиреНрд╕ рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрдкрдпреБрдХреНрдд рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдорд╛рдирдХ рдорд╛рд░реНрдХрдбрд╛рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреБрдХрд╕рд╛рди рдХреА:
- рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛; рдкрдВрдбреЛрдХ рдЗрд╕ (рдЕрднреА рддрдХ) рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- рдХреНрд╖реИрддрд┐рдЬ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯрд╛рдЗрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рддреАрди рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛
рд░реЗрдЦрд╛рдВрдХрди рдХреА рдПрдХ рд╕реВрдЪреА (рдХреЙрд▓рдо):
- рдХрдо рд╕реЗ рдХрдо, рдХреЙрд▓рдо рдореЗрдВ рдПрдХ рд╢реАрд░реНрд╖рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдбреЗрдЯрд╛ рдХреЛ рдЫреВрдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рдо (
id
) рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд░рд┐рдХреЙрд░реНрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред - рд╡рд┐рд╢реЗрд╖ рдХреЙрд▓рдо рдореЗрдВ рдЖрдИрдбреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рднрд░рдирд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ (
special: number
) рдЪрд╛рд╣рд┐рдПред - рд╕реНрддрдВрдн рд╕рдВрд░реЗрдЦрдг (
align
)ред
рд╕рд╛рде рд╣реА, рддрд╛рд▓рд┐рдХрд╛ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдпрд╛ рдХреНрд╖реИрддрд┐рдЬ ( orientation
) рд╣реЛ рд╕рдХрддреА рд╣реИред рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░реЗрдЦрд╛рдВрдХрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред
рддрд╛рд▓рд┐рдХрд╛ рдЧреБрдг: рд▓рд┐рдВрдХ ( id
) рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ ( caption
) рдХреЗ рд▓рд┐рдП id
ред рдкрдВрдбреЛрдХ рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдХреЗ рдмреНрд▓реЙрдХ рдирд╣реАрдВред
YAML рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ ред
рд╕рдВрд░рдЪрдирд╛ рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рджреЛрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдмрд╛рд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рд╕рд╛рдордиреЗ-рдорд╛рдорд▓реЗ) рдореЗрдВ, рдФрд░ рдлрд┐рд░ рдирд╛рдорд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рджреЗрдЦреЗрдВред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛:
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕реЗ рд╣рдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рддреЗ рд╣реИрдВред
рд╡рд░реНрдЧ table
рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреЗ table
:
- рд╣рдо YAML рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред
- рдпрджрд┐ рдХреЛрдИ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╢рдмреНрджрдХреЛрд╢ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо YAML рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рднрд░рддреЗ рд╣реИрдВред
- рд╣рдо YAML рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧреБрдгреЛрдВ рдХреЛ рднрд░рддреЗ рд╣реИрдВред
- рд╣рдо YAML рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдмрдирд╛рддреЗ рд╣реИрдВ (рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдПрдХ рдирд┐рдпрдорд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдпрд╛ рдХреНрд╖реИрддрд┐рдЬ рдПрдХ рд╕реНрддрдВрдн рдореЗрдВ рд╣реИ)ред
- рд╣рдо рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдЧреБрдг рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВред
рдКрдкрд░реА рд╕реНрддрд░ рдХреЛ рд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╕рднреА рдХреЛрдб рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ):
function Pandoc(doc) local meta_templates = doc.meta['table-templates'] if meta_templates then for name, value in pairs(meta_templates) do templates[name] = parse_template(value) end end local blocks = pandoc.walk_block(pandoc.Div(doc.blocks), { CodeBlock = create_table }) return pandoc.Pandoc(blocks, doc.meta) end
parse_template()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдереЛрдбрд╝рд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдкрдВрдбреЛрдХ MetaBlock
рдФрд░ MetaInline
рд░реВрдк рдореЗрдВ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдпрд╛ рддреЛ рд╕рд░рд▓ рдкрдВрдХреНрддрд┐рдпрд╛рдБ pandoc.utils.stringify()
рдлрд╝рдВрдХреНрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрд░рд┐рдПрдВрдЯреЗрд╢рди), рдпрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрддрдВрдн рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдкрд╛рда рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ pandoc.utils.stringify()
рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдкрдВрдбреЛрдХ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд░ рдмрд╣реБрдд рд╡рд┐рд╕реНрддреГрдд рдирд╣реАрдВ рд╣реИрдВред рдбрд┐рдмрдЧрд┐рдВрдЧ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░ рдбрдВрдк рдлрд╝рдВрдХреНрд╢рди рд╣реЛрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЧрдВрднреАрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред
рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рддрддреНрд╡реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп local function to_inlines(content) if content == nil then return {} elseif type(content) == 'string' then return {pandoc.Str(content)} elseif type(content) == 'number' then return to_inlines(tostring(content)) elseif content.t == 'MetaInlines' then inlines = {} for i, item in ipairs(content) do inlines[i] = item end return inlines end end local function to_blocks(content) if (type(content) == 'table') and content.t == 'MetaBlocks' then return content else return {pandoc.Plain(to_inlines(content))} end end
create_table()
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЯреНрд░рд┐рдкрд▓ рдмреИрдХрдЯрд┐рдХреНрд╕ рдореЗрдВ рдХреЛрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рдХреЗрд╡рд▓ table
"рдмреНрд▓реЙрдХ" рднрд╛рд╖рд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:
if not contains('table', block.classes) then return block end
рдПрдХ рдХреЛрдб рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ YAML рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ YAML рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рдкрдВрдбреЛрдХ рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рдФрд░ рдХреЗрд╡рд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдЫреЛрдбрд╝ рджреЗрдВ:
local meta = pandoc.read('---\n' .. block.text .. '\n---').meta
рдЕрдЧрд▓рд╛, meta
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдпрд╛ рдЯреЗрдмрд▓ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд▓рд┐рдВрдХ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
fill_table()
рдлрд╝рдВрдХреНрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ meta
рдбреЗрдЯрд╛ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИред рдЙрд╕реА рдЪрд░рдг рдореЗрдВ, рдпрджрд┐ рд╕реНрддрдВрдн рд╡рд┐рд╢реЗрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ:
local data = {} for i, serie in ipairs(template.series) do if serie.special == 'number' then data[i] = to_blocks(#datum + 1) else data[i] = to_blocks(item[serie.id]) end end
format_table()
рдлрд╝рдВрдХреНрд╢рди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЙрдиреНрдореБрдЦреАрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрджрд┐ рдЪреМрдбрд╝рд╛рдИ рдпрд╛ рд╣реЗрдбрд░ рд╕рднреА рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдкрдВрдбреЛрдХ рдмрд╕ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ред
рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд╣реАрдВ рд╕реЗ рднреА рдирд╛рдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ~/.local/share/pandoc
( ~/.local/share/pandoc
рдбреЗрдЯрд╛ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА ) рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреБрдирд╢реНрдЪ
рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛рдВрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдкрдВрдбреЛрдХ рдореЗрдВ рд╕реНрдкреЙрдЗрд▓рд░ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ:
::: {.spoiler title=""} . :::
рдкрдВрдбреЛрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ рдореЗрдВ рдХреЛрдИ рд╕реНрдкреЙрдЗрд▓рд░ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрдЪреНрдЪреЗ рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмреЗрд╢рдХ, рдЕрд╕рд▓реА рдХреЛрдб ( spoiler.lua
) рдХреЛ FORMAT
рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрдВрддреНрд░рд╡рддреН рдирд╣реАрдВ: рдиреАрдЪреЗ рдХрд╛ рдЯреБрдХрдбрд╝рд╛ HTML рдореЗрдВ рдХрдЪреНрдЪреЗ рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдорд╛рд░реНрдХрд╛рдбрд╛рдЙрди рд╣реИред
function Div(el) if not el.attr or not contains('spoiler', el.attr.classes) then return el end local title = el.attr.attributes['title'] or '' table.insert(el.content, 1, pandoc.RawBlock('html', '<' .. 'spoiler title="' .. title .. '">', 'RawBlock')) table.insert(el.content, pandoc.RawBlock('html', '<' .. '/spoiler>', 'RawBlock')) return el.content end
рд╕рдВрджрд░реНрдн