使用 jekyll-feed
所產生的 feed.xml
出現 PCDATA invalid Char value 8 錯誤,造成解析失敗。
原因
使用 RSS
消息來源訂閱文章時,來源要產生一個描述檔,讓訂閱器可以知道來源的資訊,這個描述檔使用 XML version 1.0 的格式寫成,你會看到類似下面這樣的內容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" > <generator uri="https://jekyllrb.com/" version="3.8.5">Jekyll</generator> <link href="https://peterhpchen.github.io/feed.xml" rel="self" type="application/atom+xml" /> <link href="https://peterhpchen.github.io/" rel="alternate" type="text/html" /> <updated>2020-03-16T12:38:36+08:00</updated> <id>https://peterhpchen.github.io/feed.xml</id> <title type="html">Limitless Ping</title> <subtitle>Personal GitHub Page</subtitle> <entry> <title type="html">從 Blogger 遷移至 jekyll</title> <link href="https://peterhpchen.github.io/2020/03/15/jekyll-blogger-import.html" rel="alternate" type="text html" title="從 Blogger 遷移至 jekyll" /> <published>2020-03-15T00:00:00+08:00</published> <updated>2020-03-15T00:00:00+08:00</updated> <id>https://peterhpchen.github.io/2020/03/15/jekyll-blogger-import</id> <content type="html" xml:base="https://peterhpchen.github.io/2020/03/15/jekyll-blogger-import.html"> ... </content> <author> <name></name> </author> <category term="jekyll" /> <category term="blogger" /> <category term="github-page" /> <summary type="html">最近在遷移 Blogger 中的舊文章到 jekyll 的 GitHub page 上,本文紀錄如何輸出 Blogger 的文章並輸入至 jekyll 中,並將原本 Blogger 的頁面導至新的 jekyll 頁面。</summary> </entry> ... </feed>
|
可以看到描述檔中包含文章的內容,jekyll-feed
會自動由文章產生這個描述檔,但是有些字元在 XML 中是非法的,像是這個錯誤中的 value 8 指的就是 U+0008
這個控制字元 Backspace 。
解法
只要把非法字元刪除即可解決此問題,使用 Visual Studio Code 的 Search 功能將 Backspace 刪去:
參考資料