unimal-jp / spear

The spear OSS repository
https://late-cloud-6411.spearly.app
MIT License
10 stars 1 forks source link

Introduce the markdown plugin #191

Closed mantaroh closed 1 year ago

mantaroh commented 1 year ago

What is this?

This is the spear plugin which fetching content data from local markdown files.

Front-matter and body content

An markdown file allow front-matter and body like the following data structure:

---
Here is front matter which is YAML style (I.e., key and value)
---
Here is body

This structure is similar to Jekyll markdown[1] , however the body of Jekyll is HTML. This structure what spear use to is Markdown .

This markdown plugin use these data as field. The front-matter is separated by field name and field value, the body content is used as rich text field.

---
title: First post in my life
---
# This is first post
Hello

If we have the above /data/blog/first-post.mdx, we can use the following embed sytax:

Optional

This Plugin allow the following options: (We declare this option as MarkdownPluginSettings.

option desceription default value
directory Specify the path to markdown files data
markdownExtension Specify the markdown extension. .mdx
processor Allow change the unified processor which converting markdown to HTML remark().use(html)
bodyPostProcessor If we need to preprocess the body, we can specify in this parameter

[1] https://jekyllrb.com/docs/front-matter/


これは何?

これはローカルの Markdown ファイルからコンテンツデータをフェッチする Spear のプラグインです。

フロントマターと本文

spear では、以下のようなフロントマターと本文の2つをサポートしています。

---
Here is front matter which is YAML style (I.e., key and value)
---
Here is body

この構造は Jekyll [1] にとても似ていますが、大きな違いは本文の型です。また Spear で用いる本文は Markdownです。

この Markdown プラグインはこれらのデータをフィールドとして扱います。フロントマターはフィールド名と値に分解され、本文はリッチテキストのコンテンツとなります。

---
title: First post in my life
---
# This is first post
Hello

もし上記のMarkdown が /data/blog/first-blog.mdx にある場合、以下の埋め込みJSの構文を利用できます。

オプション

このプラグインは以下のオプションを指定できます。 (このオプションは MarkdownPluginSettings に定義しています。)

オプション名 説明 デフォルト値
directory markdown ファイルのあるパスを指定 data
markdownExtension markdown の拡張子を指定 .mdx
processor markdown を HTML に変換する unified のプロセッサーを変更できます remark().use(html)
bodyPostProcessor もし本文に対して後処理が必要な場合に指定します。

[1] https://jekyllrb.com/docs/front-matter/