Skip to content

【参考】このブログで使える投稿記事の記法・仕様

14 min. read
戻る

このブログの記事で利用できるMarkdown・MDXの記法と,記事ごとの設定項目をまとめました。もともと自分用のページとして非公開にしておりましたが,基本的な文章の装飾から,画像,外部コンテンツの埋め込み,コールアウト,商品カードまで,記事を追加・更新するときのリファレンスとして随時更新・公開していく予定です。

本記事は一般的なMarkdown・MDXのすべてを解説するものではなく,このブログの現在の実装に沿った仕様を扱っています。

目次

記事ファイルの基本

このブログの記事は,src/data/blog/に置いたMarkdown(.md)またはMDX(.mdx)ファイルとして作成する。通常の記事では,画像の最適化や外部コンテンツの埋め込みを利用できるMDXを推奨する。

記事タイトルのh1はフロントマターのtitleから自動で表示されるため,本文の見出しは##h2)から始める。

## 目次という見出しを置くと,この位置にh2h3から構成される目次が自動挿入される。

これとは別に,PC表示では画面左端にホバー式のサイド目次が自動表示される。サイド目次もh2h3が対象で,現在読んでいるセクションが強調される。スマートフォンなどの小さい画面では表示されない。

最小構成

新しい記事は,次の形から始める。

---
pubDatetime: 2026-08-12T03:00:00Z
title: 記事のタイトル
tags:
  - Blogging
description: 記事一覧や検索結果に表示する記事の説明
---
## 最初の見出し

ここから本文を書く。example-article.mdx

フロントマター

フロントマターはファイルの先頭で---に挟んで記述する。

---
author: OKUYAMA Leo
pubDatetime: 2026-08-12T03:00:00Z
modDatetime: 2026-08-15T06:30:00Z
title: 投稿記事の例
featured: false
draft: false
tags:
  - Blogging
  - Astro
description: このブログの記事機能を紹介するサンプル記事
thumbnailImage: ../../assets/images/HERO_create-blog.jpg
titleColor: black
heroDim: 0.4
ogImage: ../../assets/images/article-specification.jpg
canonicalURL: https://okuyamaleo.com/posts/example-article/
hideEditPost: false
timezone: Asia/Tokyo
---example-article.mdx
Property説明必須・既定値
title記事タイトル。記事ページのh1,一覧,OGPなどに使われる必須
description記事の説明。記事一覧,メタディスクリプション,OGPなどに使われる必須
pubDatetime公開日時。ISO 8601形式で指定する必須
modDatetime更新日時。記事を更新した場合だけ指定する任意
authorSEOメタデータ上の著者名SITE.author
featuredtrueの場合,トップページの注目記事欄にも表示するfalse相当
drafttrueの場合,記事ページを生成しないfalse相当
tags記事に関連するタグ。複数指定できるothers
thumbnailImage記事上部のヒーロー画像,一覧サムネイル,自動生成OG画像の素材任意
titleColorヒーロー上の文字色。whiteまたはblackwhite
heroDimヒーロー画像に重ねるスクリムの不透明度。010.4
ogImage自動生成画像を使わず,任意のOG画像を使用する場合に指定任意
canonicalURL記事の正規URL。別媒体にも同じ記事がある場合などに指定する現在の記事URL
hideEditPost記事の編集リンクを非表示にするfalse相当
timezone日付表示に使うIANAタイムゾーンSITE.timezone

URL(スラッグ)

記事URLはファイル名から自動生成される。例えば,src/data/blog/my-first-post.mdxのURLは/posts/my-first-post/になる。

現在の実装ではフロントマターのslugには対応していない。URLを変更したい場合はファイル名を変更する。ファイル名には半角英数字とハイフンを使用する。

公開日時と更新日時

日時はISO 8601形式で指定する。ZはUTCを意味する。

予約日時を未来にした記事は,一覧・RSS・関連記事などから公開時刻の15分前まで除外される。ただし,draft: falseの記事ページ自体はビルド時に生成されるため,URLを知っていれば公開時刻前でも直接アクセスできる。時刻まで厳密に非公開にしたい記事は,公開するデプロイまでdraft: trueにする。

下書きと注目記事

タグ

タグはYAML配列で指定する。記事末のタグリンク,タグ別一覧,関連記事の選定に使われる。関連記事は共通タグが多い記事から最大4件表示される。

tags:
  - Blogging
  - Astro
  - Web Design

カテゴリーや記事シリーズ専用の項目はないため,必要な分類はタグで表す。

ヒーロー画像

thumbnailImageを指定すると,記事冒頭に画像を画面幅いっぱいに表示し,その上へタイトル,タグ,日付,読了時間を重ねる。指定しない場合は,画像のない通常のタイトル表示になる。

thumbnailImage: ../../assets/images/Hero_article-specification.jpg
titleColor: black
heroDim: 0.4

OG画像

ogImageを省略すると,記事ごとの1200×630ピクセルのOG画像がビルド時に自動生成される。

  1. thumbnailImageがある場合:画像を1200×630に切り抜き,タグ・タイトル・日付を重ねる
  2. thumbnailImageがない場合:テキスト中心のOG画像を生成する
  3. ogImageがある場合:指定した画像を優先し,自動生成しない

ローカル画像とリモートURLのどちらもogImageに指定できる。

# ローカル画像
ogImage: ../../assets/images/Hero_article-specification.jpg

# またはリモート画像
ogImage: https://example.com/images/og-image.jpg

canonicalURLと編集リンク

同じ内容の記事を別媒体にも掲載している場合は,検索エンジンに正規ページを伝えるためcanonicalURLを指定する。

canonicalURL: https://okuyamaleo.com/posts/example-article/

hideEditPostは記事ごとに編集リンクを隠す項目だが,現在はサイト全体で編集リンクが無効になっているため,指定しても表示は変わらない。

見出し

記事タイトルは自動でh1になるため,本文ではh2から使う。

## 大見出し

### 中見出し

#### 小見出し

##### より小さい見出し

###### 最小の見出し

h2h6にはURLで直接参照できるアンカーが自動的に付き,PCでは見出しへマウスを重ねると#リンクが表示される。インライン目次とサイド目次に表示されるのはh2h3だけである。

基本的な本文記法

文字装飾

**太字**

_斜体_

~~取り消し線~~

文章中の`インラインコード`

<u>下線</u>

キーボードの<kbd>Command</kbd> + <kbd>C</kbd>

注記<sup>*</sup>

太字はこのように,斜体はこのように,取り消し線はこのように表示される。MDXでは<u><kbd><sup>などのHTML要素も記述できる。

箇条書きと番号付きリスト

- 1階層目
  - 2階層目
    - 3階層目

1. 最初の手順
2. 次の手順
3. 最後の手順
  1. 最初の手順
  2. 次の手順
  3. 最後の手順

| 項目 | 内容       |
| ---- | ---------- |
| 形式 | MDX        |
| 画像 | 最適化対応 |
項目内容
形式MDX
画像最適化対応

水平線

---を単独の行に置くと区切り線になる。

本文の前半

---

本文の後半

画像

最適化する画像

src/assets/images/に画像を置き,@/assets/images/から参照する。Astroが画像を最適化し,レスポンシブ画像として出力する。

![木製テーブルの上にMacBookが載っている画像](@/assets/images/Hero_article-specification.jpg)

木製テーブルの上にMacBookが載っている画像

Markdown画像ではAltテキストがアクセシビリティ用の代替テキストとして使われると同時に,画像下のキャプションにも表示される。

記事本文のMarkdown画像は,クリックまたはタップするとモーダルで拡大表示される。拡大表示は閉じるボタン,モーダルの背景部分,またはEscキーで終了できる。既存の画像記法に追加の指定は必要ない。

最適化しない画像

最適化しない画像はpublic/に置き,URLではpublicを含めずルートから指定する。

ファイル:public/assets/images/example.jpg
記法  :![説明](/assets/images/example.jpg)

リモート画像も通常のMarkdown画像として表示できるが,サイト側では最適化されない。

![説明](https://example.com/images/example.jpg)

リンク

リンク先にはhttps://を含む完全なURLを指定する。

[Googleを開く](https://www.google.com/?hl=ja)

Googleを開く

リンクテキストを付けずにURLだけを書くと,対応しているサービスでは埋め込みへ自動変換される。通常のテキストリンクとして確実に表示したい場合は,[リンクテキスト](URL)の形を使う。

商品カード

ガジェットや日用品の紹介では,メーカー,商品名,型番,購入情報,公式サイトなどをProductCardにまとめて表示できる。brandnameだけが必須で,それ以外は商品ごとに省略できる。

import ProductCard from "@/components/ProductCard.astro";
import productImage from "@/assets/images/product.jpg";

<ProductCard
  brand="SONY"
  name="WF-1000XM6"
  model="WF-1000XM6/SZ"
  variant="プラチナシルバー"
  price="44,550円"
  retailer="Sony Store"
  officialUrl="https://www.sony.jp/headphone/products/WF-1000XM6/"
  fallbackImage={productImage}
  purchaseLinks={[
    { label: "Amazonで見る", href: "https://amzn.asia/d/example" },
  ]}
  features={[
    "8.4mmドライバーユニット",
    "最大8時間再生(ノイズキャンセリング使用時)",
  ]}
/>
Property説明必須・既定値
brandメーカーまたはブランド名必須
name商品名必須
model型番任意
variant色,容量,サイズなどの仕様任意
price実際の購入価格任意
priceLabel価格欄の見出し。比較記事などで「直販価格」に変える場合に使用購入価格
retailer購入先任意
officialUrl公式商品サイト。公式サイトボタンとOGP画像の取得元になる任意
ogImage自動取得できない場合に,公式サイトのOGP画像URLを直接指定任意
purchaseLinksAmazonなど購入先へのリンク。labelhrefの配列で指定[]
featuresカード内に表示する主要スペックや補足事項の配列[]
fallbackImageOGP画像を取得・表示できない場合に使用するローカル画像または画像URL任意
imageMode画像の取得方法。oglocalnoneから選択og

imageMode="og"では,ビルド時にofficialUrlからog:imageを取得する。公式サイトが自動取得を拒否する場合は,ページで使用されているOGP画像URLをogImageへ直接指定できる。取得に失敗した場合はfallbackImageを表示し,どちらも利用できなければ画像領域自体を表示しない。ブラウザ上でOGP画像の読み込みに失敗した場合も,同じ順序でフォールバックする。外部サイトの応答不良によってブログ全体のビルドが失敗することはない。

ローカル画像だけを使用する場合はimageMode="local"fallbackImageを組み合わせる。画像を表示しない場合はimageMode="none"を指定する。

外部コンテンツの埋め込み

単独URLによる自動埋め込み

MDXファイルの独立した1行に,リンク化される完全なURLだけを書く。コンポーネントのimportは不要である。

https://www.youtube.com/watch?v=vhfYis6VuXY

自動埋め込みの対象は次のとおり。

URLの前後に文章がある場合や,リンクテキストがURLと異なる場合は自動埋め込みされない。

コンポーネントによる埋め込み

表示位置や対象を明示したい場合は,astro-embedからコンポーネントをimportして使用する。

import { YouTube, Tweet, LinkPreview } from "astro-embed";

<YouTube id="https://youtu.be/vhfYis6VuXY" />

<Tweet id="https://x.com/Perfume_Staff/status/1973342128710316241" />

<LinkPreview id="https://www.perfume-web.jp/" />

明示的に利用できるコンポーネントは次のとおり。

Instagram,TikTok,Spotify,Google Mapsなどには専用コンポーネントがない。各サービスが提供するiframeを直接記述することはできるが,レスポンシブ表示やプライバシー設定は執筆者が調整する必要がある。

Play

↓Spotifyをiframeで埋め込む場合

コードブロック

バッククォート3つで囲み,開始行に言語名を書くとシンタックスハイライトされる。すべてのコードブロックにはコピーボタンが自動で付く。

```python
print(3 + 5)
```
print(3 + 5)

ファイル名

ファイル名は言語名の後ろにfile="ファイル名"と書く。言語名:ファイル名という記法には対応していない。

```typescript file="sum.ts"
export const sum = (a: number, b: number) => a + b;
```
export const sum = (a: number, b: number) => a + b;sum.ts

行・単語・差分の強調

Shikiの記法で,行のハイライト,単語のハイライト,追加・削除行を表示できる。記法用コメントは出力時に取り除かれる。

```javascript
const siteName = "奥山 怜央"; /­/ [!code highlight]
const greeting = "Hello"; /­/ [!code word:Hello]
console.log("old"); /­/ [!code --]
console.log("new"); /­/ [!code ++]
```
const siteName = "奥山 怜央";
const greeting = "Hello";
console.log("old");
console.log("new");

コールアウト

補足,ヒント,注意,重要事項,例示には,引用記法ではなくCalloutコンポーネントを使用する。コールアウトを使うMDXでは,フロントマター直後にコンポーネントを一度だけインポートする。

import Callout from "@/components/Callout.astro";

<Callout type="warning" title="個人情報に注意">

氏名や住所などの個人情報は入力しないでください。

</Callout>

記述時は次の点に注意する。

type標準タイトル用途
info情報補足,背景,記事について
tipヒント推奨操作,効率化,コツ
warning注意リスク,避けるべき操作
important重要必ず確認すべき条件,権利表記
exampleプロンプト,入力例,比較例

コールアウトは執筆者による補足や注意を示す。外部資料や人物の言葉を転載する場合は,次の引用記法を使用する。

引用

通常の引用

> 引用する本文。

引用する本文。

複数段落にする場合は,段落間に>だけの行を置く。

> 引用する本文の1段落目。
>
> 引用する本文の2段落目。

引用元

引用ブロックの末尾に<cite>を置くと,右下に引用元を表示する。画面上では「出典:」が自動で付くため,<cite>内には出典名だけを書く。

> あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら。
>
> <cite>宮沢賢治『ポラーノの広場』</cite>

あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら。

宮沢賢治『ポラーノの広場』

引用元にURLを付ける場合は,<cite>内にリンクを書く。

> 引用する本文。
>
> <cite><a href="https://example.com/">資料名</a></cite>

脚注

GitHub Flavored Markdown1の脚注を利用できる。脚注一覧は記事末に自動生成され,各脚注には本文へ戻るリンクが付く。

本文中で説明を補足する。[^storage]

[^storage]: 補足説明や参考資料を書く。

同じ記事内で脚注IDが重複しないようにする。数字だけでなく,内容が分かる英数字のIDも使用できる。

記事ページで自動的に表示されるもの

本文以外に,記事ページでは次の要素が自動的に表示・生成される。

Footnotes

  1. GitHub Docs(N/A). 「基本的な書き込みと書式設定の構文 - GitHubドキュメント」 https://docs.github.com/ja/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax (参照:2026年08月15日)

画像の拡大表示


この記事を共有する:

関連記事


Next Post
プロフィール・ブログサイトを作成・アップデートしました