StackEditによるWordPress Publish時の注意点
上記の記事で書いた通り、目次生成を目的としてStackEditを利用した記事公開を行いました。一応成功はしたのですが、よく見たらWordPress側のソースがひどい有様になっていました。
覚書として、事故ったポイントをまとめることにします。
「more」タグが消される
WordPressでは、以下のような行を記述することで、いわゆる「続きを読む」として、残るコンテンツをトップページなどで非表示にすることができます。(More Tag — Support — WordPress.com)
<!--more-->
<!--more But wait, there's more!-->
ところが、StackEditはPublishの際にこれを必ず削除します。
StackEdit「コメントアウトだから削除しておきますね^^」
いやいや、それはWordPress側で解釈するべきでしょ。ソースは保全してくれないと困るでしょ。
じゃあ、HTMLエンコードしてみたらどうなるのか?
<!--more-->
<!--more But wait, there's more!-->
WordPress側ではこうなります。
<p><!–more–></p>
<p><!--more But wait, there's more!--></p>
ですよねーーーー!!!
というわけで、MoreタグだけはWordPress側で入れる必要があります。別に一回ならいいんですが、StackEditから上書きPublishすると、そのたびに入れ直すハメに陥るので、なかなかメゲます。
文書内にHeading1がないと目次がおかしくなる
わざわざ本文中にタイトルを入れている理由はこれです。
例えば、こんな見出しから[toc]
で目次生成したとしましょう。
## Heading2
### Heading3
StackEditでのプレビューはこんな感じです。
目次自体はちゃんとできるのですが、位置が右にずれています。
この場合、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送っておこう。