Markdown のリンクを別ウィンドウ表示にするかを制御
Markdown のリンクの問題点
WordPress の Jetpack で、Markdown で入力でき、
編集の時も入力した Markdown がそのまま入ってるんで、とても便利です。
が、ちょっと残念なのは、リンクに、target=’_blank’ がつけられないこと
Jetpack の Markdown は、Markdown Extra に対応していると書いてあるけど、
{.class名}
って書けば、class が付けられるってのは対応していないみたいです。
リンクURIが #_blank で終わってたら別ウィンドウ
で、ググってみたら、JavaScript で、外部サイトだったら target=’_blank’ を付けるという、
目からウロコの方法が紹介されていたので、それを少し変えさせていただき、
リンク先が、#_blank で終わっていたら、で実装してみました。
表示する文字列:ロリポップXXリンク、リンク先:https://lolipop.jp/ であれば
[ロリポップ通常リンク](https://lolipop.jp/)
[ロリポップ別窓リンク](https://lolipop.jp/#_blank)
です。
まぁ、URIの最後に、7文字余計なのを入れることになっちゃいますが・・・
footer.php の書き換え
wp-content/themes/使用するテーマ/footer.php
の最後に近い </body>
の上あたりに、
<script type="text/javascript">
jQuery(function() {
var atags = jQuery("a[href$='#_blank']");
for(const atag of atags) {
jQuery(atag).attr('target', '_blank');
str = jQuery(atag).attr('href').slice(0, -7);
jQuery(atag).attr('href', str);
}
});
</script>
を入れてみました。
説明
説明するほどの内容じゃないですが、
a タグの href が #_blank で終わってたら、
- その a タグに target=’_blank’ を入れる
- href の最後の7文字(余計につけておいた #_blank )を消す
というものです。