Ghostでコードブロックや画像を折りたたむ方法

Ghostでコードブロックや画像を折りたたむ方法
Photo by Dominik Vanyi / Unsplash

GhostのエディタではCardsという機能を使って記事本文中に様々な要素を埋め込むことができます。

Editor cards
Jump to a card * Images * Markdown * HTML * Gallery * Divider * Bookmark * Email content * Email call to action * Public preview * Button * Callout * GIF * Toggle * Audio * Video * File * Product * Header * Embeds * Signup Card The Ghost editor includes rich media objects called Cards, which can be inserted into your content to add images, audio,

上記リンクでどんなカードがあるのかを確認することができますが、例えば、画像や動画、Bookmark(リンクを見やすく整える)、HTML、Embed(YouTube、Xなど外部サービスの埋め込み)などが用意されています。

その中にToggleというカードがあるのですが、これはテキストを折り畳んで表示したいときに使用することができます。

実際にTogglカードを使うと以下のような見え方になります。

クリックすると開いてみることができます

中に書いた文章は開かないとみることができません。

ボールドイタリックリンク付きテキストのみ対応しています。
※ここのリンクはGhostのCardの説明ページで、上においてあるリンクと同じものです。

非常に便利なカードなのですが、対応しているのが、ボールド、イタリック、リンク付きのテキストのみなので、画像やコードブロックを折り畳んで表示したい場合には使うことができません。

この記事では、Toggleカードを使わずにGhostで折り畳みを表現したいときの方法をメモしておきます。

HTMLでの表現

HTMLでは<details>タグを使うことで、ユーザーがクリックすると開いて詳細を確認できるという表現をすることができます。

HTML details Tag
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

<details></detials>で囲んだ部分を折りたたみすることができ、折り畳んだ状態で表示されるテキストは<details>タグの内部に<summary></summary>で囲んで記述します。デフォルトでは閉じた状態になっています。

<details>
<summary>ここが表示されるテキスト。クリックすると開きます</summary>
クリックして開くとここに書いたものが表示される
</details>

実際に<details>タグを使って書いた上記の文章をGhostのHTMLカードに埋め込んでみると、以下のような見え方になります。

ここが表示されるテキスト。クリックすると開きます クリックして開くとここに書いたものが表示される

このままでももちろん目的は達成できるのですが、画像やコードを中に置きたい場合にその部分もHTMLで書くのは大変です。

できればGhostに用意されているカードはそのまま流用したいので、HTMLカードを2つ使って対応することにします。

HTMLカードを2つ使って折り畳みを表現

ポイントは、1つ目のHTMLカードに<details>、2つ目のHTMLカードに</details>を書いて、2つのHTMLカードで<details>タグに囲まれたもの全体を表現するところです。

この方法だと、2つのHTMLカードの間にImageカードやコードブロックなど、好きなものを置くことで、なんでも折りたたむことができるようになります。

2つのHTMLカードは次のように書きます。

・1つ目のHTMLカード

<details>
<summary>ここに表示されるテキストを書く。クリックすると開きます</summary>
文章は表示したい場所に書きます。もちろんここに書いても大丈夫です。

・(画像やコード、文章など好きなものをHTMLカードの間に置く)

・2つ目のHTMLカード

</details>

これを実際に表示してみると以下のように見えます。

ここに表示されるテキストを書く。クリックすると開きます 文章は表示したい場所に書きます。もちろんここに書いても大丈夫です。
Cat (#3) by oksmith | ID : 6267689 | rawpixel
a sandy area with a small patch of grass in the middle of it
Photo by Eugene Golovesov / Unsplash
<details>
<summary>こんな風にコードブロックも折り畳めます</summary>
</details>

普通に文章を書いても大丈夫です。ここまでがHTMLカードに挟まれた部分です。

これで目標は達成できました。

おしまい

デザインがToggleカードとは違ってカッコよくないのですが、そのあたりは別途<style>タグをCode injectionで書くなり、HTMLカードに記述しておくなりすることで好きなようにいじることができます。

HTMLカードに書いておいてそのカードに名前をつけて保存しておくと後で呼び出せるので良さそうですね。

デザイン部分についてはまた後日編集してみようと思います。

Read more

ghost updateをすると編集したテーマファイルが元に戻ってしまう問題の解決策

ghost updateをすると編集したテーマファイルが元に戻ってしまう問題の解決策

以前Sourceテーマのファイルを編集して、タグ一覧のページを作りました。 Ghostブログにタグ一覧ページを作る (Sourceテーマの場合)記事を分類するのにタグをつけているのですが、いくらタグをつけたところで絞り込みに使えないのであれば何の意味もないですよね。 僕はSourceというGhostのデフォルトのテーマを使っているのですが、このテーマだと、それぞれのタグをそのままナビゲーションバーに設置することはできるんですが、ドロップダウンでタグを選んだり、タグの一覧を表示したりはすぐにはできないようです。 そこで今回は、Sourceテーマを使ってタグ一覧のページを作ってみましたという記事です。 Sourceテーマを使ってタグ絞り込みをしたいときにできること 上でも述べましたが、このテーマだと、ドロップダウンとか一覧ページはそのままだと出せません。 できるのは、それぞれのタグをナビゲーションバーに置くくらいです。 これは例えば、「ブログ」というタグをつけた記事があって、そのタグを持っている記事一覧を出せるようにしようと思ったら、ナビゲーションバーに「ブログ」という項目をわざわざ作ら

GhostにCode injectionでThree.jsの3Dモデルを埋め込んでみる

GhostにCode injectionでThree.jsの3Dモデルを埋め込んでみる

Three.jsを使って作られた3Dモデルをブログ記事の中にCode injectionを使って埋め込めるのかなとふと思ったので試してみました。 本文中でHTMLカードに<canvas>タグ、Code injectionのヘッダに<style>タグでCSSを、<script>タグでJavaScriptを貼り付けると、ちゃんと動かすことができました。 埋め込んだのはThree.jsのマニュアルにあった以下の例です。 three.js manual コードの中身は全く理解できていませんが、3Dって面白いですね。 Three.jsでは3Dモデルをインポートして使用することもできるようですが、以下のようなところから素材を使わせてもらうこともできるみたいですね。 OpenGameArt.orgというサイトで、ゲーム制作をしている人には有名なのかもしれませんが、僕は初めて知りました。 OpenGameArt.orgOpenGameArt.org 素材によってライセンス形態が異なるようですが、先日の記事で描いたCC0みたいなライセンスにしてある3D素材もあって、Three.j

Joseph Mallord William Turner "Mortlake Terrace", 1827 | Courtesy National Gallery of Art, Washington

部屋に飾る絵画とブログの画像

僕は特別アートに詳しいわけでもないですが、たまに絵を見たくなることもあります。 そういうとき、思い切って美術館に行くこともあるにはあるんですが、基本的に出不精なのでネットで調べて満足してしまうことが大半です。 ただやっぱり画面の中で見るのはその一瞬だけですし、なんだか味気ないってのも正直あります。 この記事は、そんなときはパブリックドメインになっている絵画データを印刷するとなんかいいよってことを伝えたくて書きました。 こういう自由に利用可能な素材はブログの画像なんかにも使えるのもいいですよね。この記事のトップにもパブリックドメインの絵画をお借りして載せてみました。 パブリックドメインってなんぞや 高画質な絵画データでもパブリックドメインで無償でダウンロード可能になってるものが結構あったりします。 パブリックドメインとは、誰でも自由に利用可能(商用利用含む)な素材です。 パブリックドメインになっている素材は大きく分けて、 1. 著作権が切れたもの 2. 著作者がパブリックドメインにしたもの(CC0と表記されている) の2種類があるようです。 💡僕は

Ghostブログにタグ一覧ページを作る (Sourceテーマの場合)

Ghostブログにタグ一覧ページを作る (Sourceテーマの場合)

記事を分類するのにタグをつけているのですが、いくらタグをつけたところで絞り込みに使えないのであれば何の意味もないですよね。 僕はSourceというGhostのデフォルトのテーマを使っているのですが、このテーマだと、それぞれのタグをそのままナビゲーションバーに設置することはできるんですが、ドロップダウンでタグを選んだり、タグの一覧を表示したりはすぐにはできないようです。 そこで今回は、Sourceテーマを使ってタグ一覧のページを作ってみましたという記事です。 Sourceテーマを使ってタグ絞り込みをしたいときにできること 上でも述べましたが、このテーマだと、ドロップダウンとか一覧ページはそのままだと出せません。 できるのは、それぞれのタグをナビゲーションバーに置くくらいです。 これは例えば、「ブログ」というタグをつけた記事があって、そのタグを持っている記事一覧を出せるようにしようと思ったら、ナビゲーションバーに「ブログ」という項目をわざわざ作らないといけないということです。 これだとタグが増えてくると全部を載せるのは不可能ですし、それ以前に記事のタグをメニューに