EmDashで日本語フォントを使う|Noto Sans JPへの切り替え
EmDashのブログ雛形の本文フォントは英語用の Inter です。astro.config.mjs の数行を書き換えて Noto Sans JP にした手順と、あわせて直した「html lang」と日付の表示を説明します。
EmDash のブログ雛形は、本文の文字に Inter(英語用のフォント)を使っています。日本語の文字は Inter に含まれていないので、端末にある別のフォントで表示され、見た目が端末ごとにばらばらになります。このサイトでは Noto Sans JP に切り替えました。
フォントは astro.config.mjs で読み込んでいる
雛形の astro.config.mjs には、fonts という設定があります。編集部が書き換えた後の形は次のとおりです。
fonts: [
{
provider: fontProviders.google(),
name: "Noto Sans JP",
cssVariable: "--font-body",
weights: [400, 500, 700],
fallbacks: ["sans-serif"],
},
{
provider: fontProviders.google(),
name: "JetBrains Mono",
cssVariable: "--font-mono",
weights: [400, 500],
fallbacks: ["monospace"],
},
],変えたのは1つ目だけです。
nameを"Inter"から"Noto Sans JP"へweights(太さ)を[400, 500, 600, 700]から[400, 500, 700]へ
日本語フォントは1つの太さでもファイルが大きいので、使っていない太さは減らしました。2つ目の JetBrains Mono はコードの表示用で、英数字だけなので残しています。
cssVariable: "--font-body" が、本文のフォントを決める変数です。src/styles/tokens.css は見出しのフォント(--font-heading)も初期値で --font-body を使うので、ここを変えるだけで見出しも日本語フォントになります。
html の lang を日本語にする
フォントと一緒に、ページの言語の設定も直しました。astro.config.mjs の設定の中に、次の1行を足しています。
i18n: { defaultLocale: "ja", locales: ["ja"] },これでページの言語が日本語として扱われます。ブラウザの読み上げや、検索エンジンがページの言語を判断するときに使われる設定です。
書き換えた後に確かめること
設定を変えたら、ビルドして表示を見ます。
npm run build編集部の環境では、最初の npm create がインストールの途中で止まっていたため、このビルドが部品の不足で失敗しました。そのときは node_modules を消して npm install をやり直すと通りました(create-emdash の手順)。