この記事では、SublimeTextのマークダウン記法支援パッケージ「OmniMarkupPreviewer」のプレビュー機能が、404エラー表示になってしまう症状の解決方法を紹介します。
SublimeText3のマークダウン記法支援パッケージ「OmniMarkupPreviewer」は、マークダウン記法で書いた記事をリアルタイムでブラウザにプレビュー表示してくれる便利な機能です。このプレビュー機能が「Error:404」表示となり、プレヴューできなくなることがあります。
この症状は、以前から発見されていて、「打ち消し線機能」を削除するという対策方法も公開されていました。ところが、2020年3月のバージョンアップに伴う仕様変更で再発するようになりました。
原因は以前と同じ「打ち消し線機能」に関係するものです。修正コードの書き方を変更することで、正常にプレビューされるようになります。
もくじ
404エラー表示の症状
OmniMarkupPreviewer の最大の特徴は、レスポンスの良いリアルタイムプレビューが可能になること。プレビュー機能は、SublimeText3をマークダウン記法対応のブログエディタとして使うために必須の機能です。
通常であれば「Preview Markup in Browser」をクリックすると、自動的にブラウザが立ち上がりプレヴュー画面が現れます。ところが、ある時から404エラーが表示されるようになります。
Error: 404 Not Found
Sorry, the requested URL ‘http://127.0.0.1:51004/view/29’ caused an error:
‘buffer_id(29) is not valid (closed or unsupported file format)’
NOTE: If you run multiple instances of Sublime Text, you may want to adjust
the server_port option in order to get this plugin work again.
このエラーは、自動アップデートでバージョンが変わるタイミングで出始めることが多いようです。
対処方法
プレビュー機能の邪魔をしている「打ち消し線」機能を削除する方法で対応します。OmniMarkupPreviewerのユーザーセッティングにコードを記述することで上書き削除できます。
Sublime Text Preferences Package Settings OmniMarkupPreviewer Settings – User を開いて削除するためのコードを記述します。
開いたユーザーセッティングの画面に下記のコードを記述します。
{
"renderer_options-MarkdownRenderer": {
"extensions": [
"markdown.extensions.tables",
"markdown.extensions.fenced_code",
"markdown.extensions.codehilite"
]
}
}
コードを記述したら ⌘+ Sで保存して、SublimeTextを再起動すると反映されます。
2020年3月以前のバージョンまでは、こちらのコードを記述することで解決していました。
{
"renderer_options-MarkdownRenderer": {
"extensions": ["tables", "fenced_code", "codehilite"]
}
}
現行バージョンでは使えません。
本来 OmniMarkupPreviewer が備えている打ち消し線機能の本体ファイルを編集して”修復”する方法もありました。
/Users/ユーザー名/Library/Application Support/Sublime Text 3/Packages/OmniMarkupPreviewer/OmniMarkupLib/Renderers/libs/mdx_strikeout.py のファイルを編集する方法です。
ファイル内の最後の2行を下記のように編集します。
def makeExtension(*args, **kwargs):
return StrikeoutExtension(*args, **kwargs)
以前の環境ではこの方法でも復旧できましたが、本体ファイルを直接編集するのでおすすめできません。ユーザーセッティング画面へコードを追加する方法が安全でおすすめです。
まとめ
OmniMarkupPreviewerのアップデートだけでなくSublimeText本体のアップデートがあったときにも、不具合が発生することがあります。
以前この症状が出たのは、SublimeText本体のアップデート後でした。その時はアップデート自体も失敗していたようで対策方法を実行しただけでは復旧せず、SublimeTextを再インストールして対策方法を実行することで復旧しました。
パッケージ類は意識しなくても自動アップデートしますが、仕様変更には気をつける必要があります。