【前回】 【自作ブログ】(1) - StrapiをHerokuにデプロイする - のうらリリースノート
記事本文を格納するフィールドとしてRich Text (Markdown)を選択しているが、改行の扱いが気になった。
はてなブログのMarkdown記法では編集モードで改行しても表示モードでは改行されない。改行させる手段はいくつかあるが、自分の場合同じ段落内で改行したいときは文末に半角スペースを2つ追加している。しかし、Strapiの管理画面でMarkdownを編集すると編集モードの改行と表示モードの改行が連動している。
データベースを確認してみる。
strapi=# select title, content from articles; title | content ------------+---------- test title | # hoge + | hogehoge+ | fugafuga+ | + | piyo (1 row)
+
ってなんだ。改行コードかな?Postgresよく知らない・・・
REST APIからこのcontentフィールドを取得するとどうなっているのだろう?
% curl -s "http://localhost:1337/api/articles/1" | jq { "data": { "id": 1, "attributes": { "title": "test title", "createdAt": "2024-01-20T05:52:39.336Z", "updatedAt": "2024-01-24T13:38:30.683Z", "publishedAt": "2024-01-24T13:20:50.178Z", "content": "# hoge\nhogehoge\nfugafuga\n\npiyo" } }, "meta": {} }
あーやはり改行コードが入っているようだ。Markdownでは\n
では改行されないはずだが、クライアントサイドで取得した場合はどうなるんだろう。フレームワークやライブラリによるのかな。勝手に改行してくれる?
将来的にCMSとクライアントサイドと連携するときに「あれ!?改行されない!?」みたいなことが起こるかもしれない。まあ、そのときは最悪\n
を<br>
に変換する処理とかを何処かでつければいいからそこまで問題ではないかな。