Open Guts opened 8 months ago
Perhaps I'm too late to answer, but I tested the following code I adapted from this answer at stackoverflow with your input markdown and it seems to work.
import frontmatter
import yaml
class MyDumper(yaml.Dumper):
def increase_indent(self, flow=False, indentless=False):
return super(MyDumper, self).increase_indent(flow, False)
# code to read input here goes here
# write new version
with open(mode="w", encoding="UTF-8") as out_file:
out_file.write(
frontmatter.dumps(content, sort_keys=False, width=5000, Dumper=MyDumper, default_flow_style=False, indent=4)
)
(The width=5000
is a nice trick you may find useful if some of your yaml values are longer than the default line width, resulting in them being undesirably wrapped to multiple lines, but that's another story.)
Also, I don't know why, but out of curiosity I tried changing indent=4
to something extreme like indent=20
and it goes back to the default(?) value of indenting 2 spaces, so perhaps the above code has some bugs hidden somewhere.
Thanks for this useful package!
I'm using it to homogenize YAML frontmatter through thousands of Markdown files but I can't figure out how to keep the source file indentation (to 4):
Input Markdown:
Script:
Output Markdown: