Astro環境下でMarkuplintプラグインを使用する【環境設定】

HTML/CSS

Astro環境下でMarkuplintを導入したので備忘録を残します。

こんにちは。フロントエンドエンジニアを目指している Webコーダーのはるです。

今日は、Astro環境下でMarkuplintプラグインを使用する環境設定についてです。

認識の間違えている箇所がありましたら、お問い合わせからご指摘いただけるとうれしいです。

Astro環境構築

公式ドキュメントに沿って、Terminalからセットアップを行いました。

かなり簡易ですが備忘録です。

■ npm install

$ cd プロジェクトを作成したいディレクトリ

$ npm create astro@latest

■ 自動のセットアップウィザートに沿って設定

1. Where should we create your new project?
   → ./astro-site (ターミナルにいるディレクトリ内に新規作成される) 
2. How would you like to start your new project? 
   → Include sample files (Astroのディクトリ構造がサンプルで入ります)
3. Install dependencies?
   → Yes (依存関係をインストール(推奨) )
4. Do you plan to write TypeScript? 
   → No (TypeScriptを使用するか否か)
5. Initialize a new git repository? 
   → Yes (git init)

■ set up 完了

 

■ Open in VSCode

$ cd astro-site (自分で作成したプロジェクト名)
$ code . (VSCodeを開く)

ちなみに、code . でVSCodeを開けるようにするには下記の設定が必要です。

VSCodeを開き、コマンドパレットを開く。(Shift + Cmd + P)

Shell Command: Install ‘code’ command in PATH を選択→install

codeコマンドが使用できるようになります。便利です。

Markuplintの環境構築

ゆうてんさん(@cloud10designs)が開発されているHTMLリンターです。

Markuplintは、プラグインを通じてHTML以外の構文やテンプレートエンジンについても評価することができます。Pug, JSX(React), Vue, Svelte, Astro, PHP, Smarty, eRuby, EJS, Mustache/Handlebars, Nunjucks, Liquid用のプラグインが用意されています。(公式より)

Astroにも対応されているとのことで、環境構築に挑戦しました。

簡易ながら備忘録です。

下記を参考にさせていただきました。

 

( ■ VSCodeの拡張機能 「markuplint」をインストール→再起動 )

■ npm install for Astro

パーサープラグインをインストールします

$ npm install -D @markuplint/astro-parser

■  パーサープラグインの適用 for Astro

ディレクトリルートに、.markuplintrcファイルを作成し、以下を記述。

// .markuplintrc

{
 "parser": {
  ".astro$": "@markuplint/astro-parser"
 },
  "extends": ["markuplint:recommended"],
  "pretenders": [
  {
   "selector": "List",
   "as": "ul"
  },
  {
   "selector": "Card",
   "as": "li"
  }
 ]
}

extendsには、適用するルールを設定します。recommendにしました。

(preset設定)

■ package.jsonにオプションを追加

// package.json

"scripts": {
 "lint": "markuplint ./src/pages/index.astro"
}

パスには、チェックしたいファイルのパスを入れます。

対象のページを一度にチェックしたいときは、以下のように設定します。

"scripts": {
 "lint": "markuplint \"./src/**/*.astro\""
}

ゆうてんさんが教えてくださいました。ありがとうございます!

これで環境構築は終了です。

実際にAstroのテンプレートのまま、リンターを走らせてみます。

$ npm run lint

無事、passed!

■ errorを出してみる

アクセシビリティについても怒ってくださるとのことだったので、<ul>のroleをbuttonに変更してリンターを走らせてみました。

エラーが出ました。とても便利です。

簡単ですが、備忘録でした。

何か誤っている点がありましたら、お問い合わせから教えていただけると幸いです。