できる限りMarkdownに変更を加えずにやりたい。
本題
タイトル通り。他のブログにも有るよね。あれつけたい。
公式ブログはどうやって実現してるか調べてみた
試したこと
記事を表示する要領で作ればええやん?
<nuxt-content>
にCSSで高さを決めればいいのではって思ってやったけど、なんか崩れちゃった。
Markdownそのままのがほしいんだが?
body
やcreateAt
変数はあるけど、Markdownがそのまま入ってるプロパティは無い。
以下一例。
ちなみにbody.children
に本文が入ってる。ただし複雑すぎて扱えたようなものではない模様。
発展的な機能
にcontent:file:beforeInsert
ってのがあるですけど、ここでMarkdownがそのまま取得できるそうですよ!?
さらにdocumentへプロパティを追加できたりできますよ
nuxt.config.js
本文をチラ見せするプロパティ(メタデータ)を追加する
ついでに文字数のメタデータを足しましょう。チラ見せは100文字まで見せるってことで。
これなにしてるかって言うと、Markdownにメタデータを動的に足してる(実際には足してないけど、JavaScriptで扱うときには追加されてる)
あとはVueで表示するだけです。
以上です。8888
おまけ
nuxt/content
のコンテンツ取得でwhere()
メソッドで大文字小文字を無視したい場合はこうです
詳しくは:https://docs.mongodb.com/manual/reference/operator/query/regex
今回はタグが含まれているかですが、title
でも動くと思います。
$options:'i'
で大文字小文字を無視してくれる模様。