You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift Markdown框架读写文件后格式变更,能否配置避免?

解决Swift-Markdown格式化时的格式变更问题

针对你遇到的标题后自动新增换行、列表缩进从4空格变为2空格的问题,完全可以通过配置框架的FormatOptions来调整格式化行为:

1. 恢复4空格的列表缩进

框架默认用2个空格作为列表嵌套缩进,只需修改FormatOptions的indentWidth属性为4,就能匹配你原始文件的缩进格式:

2. 保留标题后的原有换行(避免自动添加空行)

框架默认会遵循CommonMark规范在块元素(比如标题和列表)之间添加空行,开启preservesExistingLineBreaks选项后,就能保留你原始文件里标题后无空行的状态。

修改后的代码示例

let data = FileManager.default.contents(atPath: "myfile.md")!
var document = Document(parsing: String(data: data, encoding: .utf8)!)
// 初始化格式化选项并自定义配置
var formatOptions = FormatOptions()
formatOptions.indentWidth = 4 // 设置列表缩进为4个空格
formatOptions.preservesExistingLineBreaks = true // 保留块元素间的原始换行

let formattedData = try document.format(options: formatOptions).data(using: .utf8)!
let url = URL(filePath: "myfile.md")
try formattedData.write(to: url)

额外说明

如果需要保留行内的前后空格(比如某些文本开头/结尾的空格),可以再添加formatOptions.preservesWhitespace = true,一般场景下不需要这个配置。这些调整都是框架原生支持的,无需额外扩展。

内容的提问来源于stack exchange,提问作者swalkner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 23:54:32