要把 TXT 文件变成 Markdown,通常只需将扩展名从 .txt 改为 .md。Markdown 是纯文本,所以文本文件本身就是有效的 Markdown 文档。

纯文本中没有可以还原的标题、粗体或表格,转换器也不会凭空创造。在其他情况下,用 MD Factory 转换会有帮助:文件使用 Windows-1251 等旧编码,TXT 文件与 PDF 和 Word 文档在同一个文件夹中,或者给 AI 智能体用的文件库中的每个文件都需要统一的形式。

三张散放的横线纸,放在深色桌面上,旁边有一个淡紫色长尾夹和一支淡紫色铅笔。
纯文本离 Markdown 已经很近了。

何时改名就够了

当文字是 UTF-8 编码,并且没有其他程序需要用旧名称访问该文件时,改名就行。Markdown 的 CommonMark 规范 对 Markdown 的定义是:任何字符序列都是有效的文档。

要查看编码,请用记事本打开文件,看状态栏右下角。UTF-8 表示可以直接改名。其他任何编码,例如 ANSI 或 UTF-16,都必须先变成 UTF-8,下文各节会介绍方法。ANSI 指较旧的 Windows 编码,例如用于西里尔文的 Windows-1251,或用于西欧语言的 Windows-1252。

要重命名单个文件,请先在文件资源管理器中显示文件扩展名:查看,然后显示,再选文件扩展名。然后把名称末尾的 .txt 改为 .md,Windows 询问是否更改扩展名时予以确认。正如 Microsoft 所指出,新的扩展名只更改名称,不更改内容。

对于多个文件,请在它们所在的文件夹中打开 PowerShell。此命令只会列出它将要重命名的内容:

Get-ChildItem -Filter *.txt | Rename-Item -NewName { $_.BaseName + '.md' } -WhatIf

如果列表无误,请运行去掉最后一部分的同一条命令:

Get-ChildItem -Filter *.txt | Rename-Item -NewName { $_.BaseName + '.md' }

要包含子文件夹,请使用同样的两条命令,并多加一个参数:

Get-ChildItem -Filter *.txt -Recurse | Rename-Item -NewName { $_.BaseName + '.md' } -WhatIf
Get-ChildItem -Filter *.txt -Recurse | Rename-Item -NewName { $_.BaseName + '.md' }

如果其他程序按旧名称打开这些文件,请在重命名之前先复制一份。

何时值得转换

情形改名之后用 MD Factory 转换之后
文字是 Windows-1251 或其他旧编码文字仍保持该编码;按 UTF-8 读取该文件的应用会显示乱码文字以 UTF-8 保存,文件被标记为需要检查,方便你检查
TXT 文件与 PDF、Word 和其他文档在同一个文件夹中只有 TXT 文件会改变;其他文档需要用别的工具一次遍历文件夹及其子文件夹;每个文档旁边都会生成一个 Markdown 文件
原文件必须保持原样TXT 文件变成了 Markdown 文件TXT 文件保持不变,Markdown 文件出现在它旁边
脚本或 AI 智能体需要每个文件都是同样的形式每个文件保留自己的编码和换行符每个 Markdown 文件的编码和换行符都相同

如果文件夹中有多种格式,请参阅 如何批量将文档转为 Markdown。要为 AI 智能体整理结果,请参阅 如何为 AI 智能体准备文档.

MD Factory 如何处理 TXT 文件

点击添加文件或添加文件夹来添加 TXT 文件或它们所在的文件夹,也可以直接拖到窗口中。转换会立即开始,每个 Markdown 文件都保存在对应的 TXT 文件旁边。MD Factory 原样复制文字:不添加标题或列表,也不改写任何内容。

  • UTF-8 文字,或带字节顺序标记的文字,会原样读取。该文件的状态为已完成。
  • 较旧编码的文字会根据内容识别出来,并以 UTF-8 保存。这样的文件始终会被标记为需要检查,并提示“推断出文本编码。检查特殊字符。”
  • 如果无法确定编码,该文件会失败,并提示“无法可靠地读取文本编码。”
  • Markdown 文件始终是不带字节顺序标记的 UTF-8,换行符为 LF。
  • Markdown 会解读为格式的字符保持原样。以 # 加空格开头的行在 Markdown 查看器中会变成标题,星号之间的词会变成斜体。
  • 只转换以 .txt 结尾的文件。.log 或 .ini 之类的文件会显示为已跳过;请把它们改名为 .txt 再转换,或者直接改为 .md。
  • 超过 64 MB 的 TXT 文件会失败,并提示“该文档超出了当前的处理限制。”请将它拆分成较小的文件,或者直接改名。

检查编码是推断出来的文件

打开每个标记为需要检查的文件,查看英文字母以外的字符:西里尔字母、带重音的字母、弯引号和破折号。

Windows-1251、KOI8-R 或 DOS 866 编码的西里尔文字,只要文件中至少有一句话,通常都能被正确识别。

Windows-1252 编码的西欧文字是薄弱环节。MD Factory 常常把它当作中欧的 Windows-1250,有些字母会变:è 变成 č,ñ 变成 ń,ã 变成 ă。

如果这类字符在文件中很少见,例如英文文字中的几个带重音的名字或弯引号,它们会变成 � 符号。

TXT 文件本身不会被修改,所以你可以修正后再次转换。只有文字看起来正确时才保存文件:把乱码保存为 UTF-8 会使损坏无法挽回。如果文件很重要,请在副本上操作。

  1. 用记事本打开 TXT 文件。如果文字看起来正确,请依次选择文件、另存为,将编码设为 UTF-8 并保存。
  2. 如果文字在记事本中看起来也不对,请用 Visual Studio Code 打开文件。点击状态栏中的编码,选择“通过编码重新打开”,并选择正确的编码,例如西欧语言 (Windows 1252)。然后再次点击编码,将文件保存为 UTF-8。
  3. 在 MD Factory 中,点击清除清空列表,然后重新添加该文件。或者直接把它改名为 .md:UTF-8 的文件不再需要转换。

如果你没有编辑过 MD Factory 之前的结果,它会替换该结果。如果你编辑过,新结果会带编号保存,例如 notes (2).md.

自己添加标题和列表

纯文本不会说明哪一行是标题,所以结构由你决定。用任意文本编辑器打开 Markdown 文件,在行首输入这些标记:

要得到行首写
标题# 加空格;## 表示子标题,### 表示再下一级
项目符号列表项- 加空格
编号列表项1. 加空格
新段落前面加一个空行

段落内的单个换行可能显示为空格:CommonMark 规范允许两种处理方式。在换行有意义的地方,例如地址或诗歌,请在每行末尾加一个反斜杠,或在行与行之间留一个空行。

要防止某个字符变成格式标记,请在它前面加一个反斜杠:行首的 \# 会显示为普通的 #。GitHub 的 基本写作和格式语法指南 列出了其他标记。

AI 智能体可以替你添加结构。请让它保留原有文字,并写入一个新文件:

为 notes.md 添加 Markdown 标题和列表。
不要更改、添加或删除任何词语。
将结果保存为 notes-formatted.md,并保持 notes.md 不变。

在保留新文件之前,请对比这两个文件。要查看带格式的效果,请阅读 如何在 Windows 上打开 MD 文件.