Hiratake Web ロゴ

Nuxt Content で Markdown の文章にルビをつける

投稿した日
更新した日
書いたひと
icon
ひらたけ

環境

web/
 ├ content/
 │ └ index.md
 ├ components/
 │ └ content/
 │   └ ContentRuby.vue <- ルビをつけるやつ
 ├ app.vue
 ├ nuxt.config.ts
 ├ package.json
 ├ pnpm-lock.yaml
 └ tsconfig.json

コンポーネントを作成する

  • ルビをつける対象となるテキスト をスロットで指定
  • ルビとしてつけるテキストruby Prop で指定
<script lang="ts" setup>
type ContentRubyProps = {
  /** ルビの文字列を指定します */
  ruby: string
}

const props = withDefaults(defineProps<ContentRubyProps>(), {
  ruby: '',
})
</script>

<template>
  <ruby>
    <slot />
    <rp>(</rp>
    <rt>{{ props.ruby }}</rt>
    <rp>)</rp>
  </ruby>
</template>

Markdown 内で使用する

Nuxt Content モジュールを使用しているウェブサイトで、  
文章中にルビをつけられるようにしたときの対応を、  
備忘録的に残しておこうと思います。  
:content-ruby{ruby="ルビ"}[こういうやつ] 。