format_front_matter() and
write_front_matter() now infer the delimiter automatically
when delimiter = NULL (the new default). If x
was returned by parse_front_matter() or
read_front_matter(), the original fence style is preserved;
otherwise write_front_matter() falls back to the file
extension of path, and finally to "yaml"
(#8).
Added support for shebang lines (#!) at the start of
files. When a file begins with a shebang, the parser now recognizes
front matter in comment-wrapped formats (# ---,
#' ---) and PEP 723 (# /// script) immediately
following the shebang (with zero or one blank lines in between). The
shebang line is included in the returned body.
format_front_matter() and write_front_matter()
also move a leading shebang line above the front matter block when
writing (#5).
Added SQL front matter support with two comment styles: line
comments (-- ---/-- +++) and block comments in
compact (/* --- … --- */) and expanded
(/* + --- … --- +
*/) forms. Six new delimiter shortcuts are available for
write_front_matter(): yaml_sql_line,
toml_sql_line, yaml_sql_block_compact,
toml_sql_block_compact,
yaml_sql_block_expanded, and
toml_sql_block_expanded (#4).
New format_front_matter() and
write_front_matter() functions for serializing documents
with YAML or TOML front matter. These are the inverse of
parse_front_matter() and read_front_matter(),
enabling full roundtrip support. Supports all delimiter formats
including standard (---, +++), comment-wrapped
(# ---, #' ---), and PEP 723. Note that the
roundtrip is not perfect; comments and formatting within the front
matter content may not be preserved.
parse_front_matter() and
read_front_matter() now attach format and
fence_type as attributes to the returned list, making it
easier to preserve the original format when rewriting
documents.
Fixed an issue with parsing front matter in comment-prefixed formats (e.g., R and Python files) where the body content was not preserved correctly. The body is now retained as-is, after stripping any leading comment-prefixed empty lines.
Initial CRAN release.
Extract and parse YAML or TOML front matter from text documents
with read_front_matter() or
parse_front_matter().
Support for multiple front matter formats:
---
delimiters) and TOML (+++
delimiters)# and
#' prefixes)Fast C++ parsing with graceful handling of incomplete front matter.
Flexible parser integration: by default uses
yaml12::parse_yaml() and
tomledit::parse_toml() or you can provide custom
parsers.