粥壊岳姻看で床議サイトを更廏する

n-ozawan

峻さん、こんにちは。室宝蝕�kグル�`プの稼-看噛温敬温稼です。
乙看看乙鉛艶で仝繁伏、嚴帑、すべての基え々と�碧�すると仝42々が卦ってきます。ちなみに、崕を42指孵ると埖に曙きます。

云籾です。
Astroをご贋じでしょうか�心_�岳姻看とはSSG(Static Site Generator)の1つで、その兆の宥り床議サイトを伏撹するフレ�`ムワ�`クです。恷弌のステップで互堀で燕幣されるサイトが���Bできることから、ここ恷除繁�櫃魑辰討い泙后�書指はそんなAstroについて盾�hしつつ、Markdownを床議サイトに���Qする圭隈を�B初します。

Astro

粥壊岳姻看とは

粥壊岳姻看とはSSG(Static Site Generator)の1つです。SSGはReactなどの��隈から、床議なWebサイト(HTML)を伏撹するフレ�`ムワ�`クのことで、Astroの麿にNext.jsやGatsbyなどが嗤兆です。Astroの蒙罿碗塹造陵┐蠅任后�

  • アイランドア�`キテクチャを�駻辰靴討い�
  • 檎艶温界岳や閣顎艶などのフレ�`ムワ�`クを旋喘して床議サイトを伏撹することが竃栖る
  • クライアント迦で�I尖される干温厩温皆界姻庄沿岳を自薦受らすことにより、燕幣堀業が堀くなる
  • 珂温姻一糸看敬稼などのコンテンツを砿尖することが竃栖る
  • 巷塀ドキュメントが割�gしており、晩云囂にも��鬉靴討い�

アイランドア�`キテクチャとは

アイランドア�`キテクチャは、Etsyのフロントエンドア�`キテクトであるKatie Sylor-Miller箆によって2019定に深宛されたア�`キテクチャです。アイランドア�`キテクチャは、1つペ�`ジ坪に床議に燕幣する�I囃と、�啜弔鳳輅召垢謗I囃を協�xして、燕幣�I尖を恷�m晒する返隈です。

ウェブサイトの燕幣が�Wい勣咀は��?ですが、その1つに干温厩温皆界姻庄沿岳の�I尖があげられます。アイランドア�`キテクチャは床議な糟囃と強議な糟囃、つまり、干温厩温皆界姻庄沿岳が音勣な糟囃と駅勣な糟囃に蛍けることにより、パフォ�`マンスを恷癖晒しているのです。

粥壊岳姻看で珂温姻一糸看敬稼を燕幣する

蝕�k桟廠の更廏

參和のコマンドを�g佩することにより、粥壊岳姻看のプロジェクトが徭強議に伏撹されます。コマンド�g佩扮にいくつか嵎諒されますので、徭附の蝕�kに冽った指基すれば或悪です。

npm create astro@latest

更廏朔、npm run devにより、粥壊岳姻看の蝕�kサ�`バ�`を軟強することが竃栖ます。粥壊岳姻看のコ�`ドを園鹿しつつ、蝕�kサ�`バ�`でその�筝�をリアルタイムで鳩範することが竃栖ます。

匯桑酒�gに珂温姻一糸看敬稼を燕幣する圭隈

では�g縞に珂温姻一糸看敬稼を�iみ�zんでブラウザ鮫中に燕幣してみましょう。src/pagesにexample.mdを鯉追してください。example.mdの坪否は參和の宥りです。

---
layout: '../layouts/Layout.astro'
title: 'Markdownペ�`ジ'
---
# タイトル

## 古勣

これは**Markdown**で��かれたペ�`ジです。

## ほげ

これは**ほげ**の��朕です。

## ふ�`

これは**ふ�`**の��朕です。

## ば�`

これは**ば�`**の��朕です。

<style>
html {
  background: #ffffff;
}
</style>

ブラウザにてhttp://localhost:4321/exampleにアクセスすると參和の鮫中が燕幣されます。

蒙艶なコ�`ドを芝峰することなく、*.mdファイルのみで珂温姻一糸看敬稼の嶄附をブラウザに燕幣することが竃栖ました。珂温姻一糸看敬稼喘のスタイルを癖喘していないので龍�櫃覆い發里砲覆辰討い泙垢�、スタイルをsrc/layouts/Layout.astroに協吶することで徭蛍挫みにカスタマイズすることが竃栖ます。

珂温姻一糸看敬稼を徭蛍挫みにカスタマイズして燕幣する

もう富し徭蛍挫みにカスタマイズしましょう。箭えば、珂温姻一糸看敬稼の朕肝を鮫中嘔迦に燕幣してみます。src/pagesにmdview.astroを鯉追します。mdview.astroの坪否は參和の宥りです。

---
import type { MarkdownInstance } from "astro";
import Layout from "../layouts/Layout.astro";

const posts: MarkdownInstance<Record<string, any>>[] =
  await Astro.glob<Record<string, any>>("./example.md");
const post = posts[0];
---

<Layout title="Markdown">
  <div class="container">
    <div class="markdown">
      <post.Content />
    </div>
    <ul class="loc">
      {post.getHeadings().map((heading) => <li>{heading.text}</li>)}
    </ul>
  </div>
</Layout>

<style>
  html {
    background: #ffffff;
  }
  .container {
    display: flex;
  }
  .markdown {
    width: 100%;
  }
  .loc {
    border: 1px solid;
    width: 120px;
  }
</style>

1佩朕から8佩朕までの---で豫まれた佩は、燕幣に駅勣な干温厩温皆界姻庄沿岳のコ�`ドを芝峰します。5、6佩朕でexample.mdを�iみ�zんでいます。�iみ�zんだ珂温姻一糸看敬稼はposts[0].Contentを歌孚することで燕幣することが辛嬬です。また、posts[0].getHeadings()により、その珂温姻一糸看敬稼の需竃しを函誼することが竃栖ます。

堰意珂晦嶄に干温厩温皆界姻庄沿岳の�I尖を托め�zみたい魁栽は{}で�譴澆泙后�この�xは干皆掛に貌ていますが、匯何、干皆掛とは呟なるところもありますので廣吭が駅勣です。�袁犬呂鬚竿携呂�ださい。

床議サイト(堰意珂晦)を伏撹する

恷朔にnpm run buildを�g佩することにより、鞄岳馨鉛が伏撹されます。伏撹された堰意珂晦を需てみると、干温厩温皆界姻庄沿岳のコ�`ドが匯俳ありません。すべてが堰意珂晦もしくは遺皆皆で更撹されているため、互堀な燕幣が豚棋竃栖ます。

おわりに

酒�gではありましたが粥壊岳姻看についてお三ししました。堰意珂晦や遺皆皆、干温厩温皆界姻庄沿岳を岑っている繁であれば、蒙に離才湖を湖じることなく兵められると房います。もちろん、粥壊岳姻看蒙嗤の碧��を岑る駅勣もありますが、巷塀サイトのドキュメントが晩云囂に��鬉靴討�り割�gしていますので、蒙に是ることもありませんでした。ランニングコストが詰いのも�帆Δ任垢茲諭�

ではまた。


Recommendおすすめブログ