Dav*_*nan 2 git markdown github
我在 GitHub markdown、VSCode markdown 扩展和其他地方也注意到了一个问题。它在 GitHub 上和使用 git 时的表现尤其异常。
\n\n当我输入诸如# heading或 之类的标题时## sub-heading,标题经常无法正确呈现。以下是 Markdown 文件的提交示例:
来源差异:
\n\n\n\n丰富的差异:
\n\n\n\n正如您所看到的,丰富的差异无法正确呈现,因此当我进入“浏览文件”时,文件也不是正确的(无论我使用什么计算机/设备):
\n\n\n\n不知何故,删除后面的空格字符###并重新键入后,需要提交更改。据我所知,这不应该发生(因为实际上没有任何改变,我只是重新输入了空格字符)。但我还是提交了它并得到了以下差异:
正如您所看到的,空格字符被突出显示。现在我神奇地得到了以下丰富的差异,它现在显示标题:
\n\n\n\n现在,当我“浏览文件”时,标题会显示在我使用的每台计算机上:
\n\n\n\n这种情况在我身上经常发生,我想知道为什么会发生这种情况,git 如何能够不提交任何更改,以及是否有办法解决这个问题?
\n\n这绝对不仅仅是我,因为过去其他人也向我提到过这一点。
\n\n注意:我的 GitHub 存储库是私有的,因此我无法共享链接,但它应该很容易复制。
\n\n更新
\n\n我打开了 HxD 中存在问题的修订版本,并得到以下十六进制输出:
\n\n\n\n然后我替换了 VSCode 中的空格字符并得到以下十六进制输出:
\n\n\n\n有一个额外的\xc3\x82字符未在 VSCode 中显示并且我没有输入。我在 Windows 和 Mac 操作系统上都遇到过这个问题。
更新2
\n\nascii 和 utf-8 都将字符定义为,\xc3\x82所以我无法弄清楚为什么它没有显示在 VSCode 或 GitHub 文本编辑器中。
字节序列0xC2 0xA0是字符U+00A0NO-BREAK SPACE的 UTF-8 序列。因此,它是一个不间断的空格字符,这解释了为什么它在编辑器中看起来像空格,并且与简单空格相比显示为差异。
它在十六进制编辑器中显示的事实\xc3\x82很简单,因为十六进制编辑器只在文本表示中显示 ASCII,因为它们一次只查看一个字节。因此,它们不\xe2\x80\x99t 寻找这样的字符序列,这是 UTF-8 对 ASCII 空间之外的字符进行编码所需的。
至于为什么不间断空格会破坏 Markdown 解析器,如果解析器符合CommonMark 规范,这是预料之中的。根据它,ATX 标题后面需要跟一个空格,其中空格被明确定义为U+0020SPACE 字符。
| 归档时间: |
|
| 查看次数: |
3661 次 |
| 最近记录: |