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