BIZ

Shopify - ページ編集にMarkdownを使う

ページ編集にMarkdownを使えるようにするアプリがあるだろうと思ったら、どうもないようでした。

方法概要

  • Stripeダッシュボードのページ編集画面のウィジウィグモードで、Markdown形式でコンテンツを書いて保存する。
  • Markdownを使いたいページで、markedを読み込むようにする。
  • Markdownを使いたいページで使うテンプレートで、page.content の内容を最初非表示にして、ローディングを表示させる。
  • page.content の内容を調整した上で、page.content の内容に対して、marked を実行させて、markdown形式をHTMLに変更する。
  • HTMLへの変更が完了したら page.content を表示させて、ローディングを非表示にする。

コード

layout/theme.liquid

{% if page.handle contains 'hoge' %}
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
{% endif %}

templates/page.hoge.liquid

<div id="loading" class="loader">LOADING...</div>
<div id="page_content" style="display:none;">
{{ page.content }}
</div>
<script>
window.onload = function () {
var el = document.getElementById('page_content');
var html = el.innerHTML.trim();
html = html.replace(/\<\/p\>/g, '</p>\n');
html = html.replace(/\<br\>/g, '\n');
el.innerHTML = html;
el.innerHTML = marked(el.textContent);
document.getElementById('loading').style.display = "none";
el.style.display = "block";
}
</script>

ローディングのCSS