Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VitePressを2週間使ってみた感想

Hal
January 16, 2025

 VitePressを2週間使ってみた感想

ドキュメント・設計書の作成にVitePressを使ってみたところ想像以上に体験が良かったです。
2週間使ってみてわかった特徴や良かった点をまとめました。

Hal

January 16, 2025
Tweet

More Decks by Hal

Other Decks in Programming

Transcript

  1. • マークダウン記法で書ける • 検索機能が簡単に導入できる →超強力 • 見出しでアンカーリンクを取得できる • i18nに対応 •

    ソーシャルリンクを埋め込める • 動的パス生成が可能 • CMS等と連携して data fetchが可能 • SSR対応 • OpenAPI / Mermaid / Vueなど様々な構文で書ける Vitepressの特徴
  2. • マークダウン記法で書ける • 検索機能が簡単に導入できる • 見出しでアンカーリンクを取得できる • i18nに対応 • ソーシャルリンクを埋め込める

    • 動的パス生成が可能 • CMS等と連携して data fetchが可能 • SSR対応 • OpenAPI / Mermaid / Vueなど様々な構文で書ける Vitepressの特徴
  3. VitePressはmdファイルを作成することでお手軽にリッチなドキュメントが作成できます。 ルーティングは配置されたパスに従い自動で行われ、カスタムしたり動的生成も可能です。 マークダウン記法で書ける # Command Line Interface ## `vitepress dev`

    Start VitePress dev server using designated directory as root. Defaults to current directory. The `dev` command can also be omitted when running in current directory. ### Usage ```sh # start in current directory, omitting `dev` vitepress # start in sub directory vitepress dev [root] ```
  4. マークダウンの中に Vueの<script setup>を書くことができます。 これによりuseDataにアクセスしたり、マークダウンだけでは実現できなかった表現が可能になります。 マークダウン内で Vueの糖衣構文が使える <ClientOnly> <Teleport to="#modal"> <div>

    // ... </div> </Teleport> </ClientOnly> <script setup lang="ts"> import { onBeforeMount, onBeforeUnmount } from 'vue' import { useRoute, useData } from 'vitepress' import { useTheme } from 'vitepress-openapi' const route = useRoute() const { isDark } = useData() const exampleSlug = route.data.params.exampleSlug const specUrl = route.data.params.specUrl const themeConfig = route.data.params.themeConfig </script>
  5. vitepress-openapiを利用することでOpenAPIのjsonファイルを埋め込むことができます。 OpenAPIを組み込める --- aside: false outline: false title: vitepress-openapi ---

    <script setup lang="ts"> import { onBeforeMount, onBeforeUnmount } from 'vue' import { useRoute, useData } from 'vitepress' import { useTheme } from 'vitepress-openapi' const route = useRoute() const { isDark } = useData() const exampleSlug = route.data.params.exampleSlug const specUrl = route.data.params.specUrl const themeConfig = route.data.params.themeConfig onBeforeMount(() => { useTheme(themeConfig) }) onBeforeUnmount(() => { useTheme().reset() }) </script> <OARemoteSpec :spec-url="specUrl" :isDark="isDark" /> npm i vitepress-plugin-openapi mermaid -D
  6. 1. ドキュメントのバージョンがとても楽になった 開発や設計を進めながらドキュメントを書いていくことが多いため、 変更差分が管理できるのはとても嬉し買った。 2. 設計や移行手順書等も柔軟に表現できた MermaidやOpenAPIなどが使えるためAPIドキュメントやワークフロー、設計書、システム移行 手順書などを分かりやすい形で統合できた。 3. 既存プロジェクトに組み込みやすい

    VitePressをインストールするだけで始められ、学習コストが低いので既存の開発 PJに 組み込みやすいと感じた。 4. 痒いところに手が届く ソーシャルリンクや検索機能、アンカーリンクの自動生成などあると嬉しい機能が 標準で搭載されているためドキュメントのポータルとして使いやすい 2週間使ってみた感想