豆腐メンタルは崩れない

小説家ワナビ視点で、主に執筆環境について書きます。

StackEditによるWordPress Publish時の注意点

上記の記事で書いた通り、目次生成を目的としてStackEditを利用した記事公開を行いました。一応成功はしたのですが、よく見たらWordPress側のソースがひどい有様になっていました。

覚書として、事故ったポイントをまとめることにします。

「more」タグが消される

WordPressでは、以下のような行を記述することで、いわゆる「続きを読む」として、残るコンテンツをトップページなどで非表示にすることができます。(More Tag — Support — WordPress.com

<!--more-->
<!--more But wait, there's more!-->

ところが、StackEditはPublishの際にこれを必ず削除します

StackEdit「コメントアウトだから削除しておきますね^^」

いやいや、それはWordPress側で解釈するべきでしょ。ソースは保全してくれないと困るでしょ。

じゃあ、HTMLエンコードしてみたらどうなるのか?

&lt;!--more--&gt;
&lt;!--more But wait, there's more!--&gt;

WordPress側ではこうなります。

<p>&lt;!–more–&gt;</p>
<p>&lt;!--more But wait, there's more!--&gt;</p>

ですよねーーーー!!!

というわけで、MoreタグだけはWordPress側で入れる必要があります。別に一回ならいいんですが、StackEditから上書きPublishすると、そのたびに入れ直すハメに陥るので、なかなかメゲます。

文書内にHeading1がないと目次がおかしくなる

わざわざ本文中にタイトルを入れている理由はこれです。

例えば、こんな見出しから[toc]で目次生成したとしましょう。

## Heading2
### Heading3

StackEditでのプレビューはこんな感じです。

H1がない場合のTOC

目次自体はちゃんとできるのですが、位置が右にずれています。

この場合、WordPress側で目次部分のソースを抽出すると、こうなっています。

<ul>
<li><ul>
<li><a href="#heading2">Heading2</a><ul>
<li><a href="#heading3-1">Heading3</a></li>
</ul>
</li>
</ul>
</li>
</ul>

内容のないulタグが生成されていることがわかります。そのため、目次リスト全体がネストされた状態になってしまっています。コード的におぞましいですね。

つまり、StackEditが生成する目次は、H1〜HnのHeading(見出し)項目を含むことを前提としているのです。

手動でWordPress側のソースを修正するか、HTML全体の構造が奇妙になることを受け入れるか。どっちも避けたい二択なんだよなあ。

コードブロック内のMarkdownがレンダリングされる/コードブロック内の改行が削除される(再現せず)

さっき実験したら、なぜか再現しませんでした。昨晩あんなに苦労させられたのはなんだったんだ。

StackEditシステム未だ完成に至らず

という感じです。見出しはともかくとして、Moreタグの件は、作業がStackEdit側で完結しなくなるのでどうにかしてほしいものです。Feedback送っておこう。