diff --git a/src/routes/song/[slug]/+page.svelte b/src/routes/song/[slug]/+page.svelte
index 89e524d..e418251 100644
--- a/src/routes/song/[slug]/+page.svelte
+++ b/src/routes/song/[slug]/+page.svelte
@@ -2,9 +2,9 @@
import AppBar from "../../../components/appbar/AppBar.svelte";
import type { PageProps } from "./$types"
import { LinearProgress } from "m3-svelte";
- import { onMount } from "svelte";
+ import { onMount, tick } from "svelte";
import { typingSettingsDefault, type LyricSegment } from "../../../shared/types.ts";
- import { isKana, isKanji, toHiragana, toKatakana } from "wanakana";
+ import { isKana, isKanji, toHiragana, toKatakana, toRomaji } from "wanakana";
import { composeList, fuzzyEquals } from "./IMEHelper.ts";
import MenuItem from "../../../components/material3/MenuItem.svelte";
import "../../../shared/ext.ts"
@@ -22,7 +22,8 @@
// Settings stored in user data
let settings = $state(data.user.data?.typingSettings ?? typingSettingsDefault)
$effect(() => { saveUserData({ typingSettings: settings }) })
- const preprocessKana = (kana: string) => settings.allKata ? toKatakana(kana) : kana
+ const _preprocessKana = (kana: string) => settings.allKata ? toKatakana(kana) : kana
+ const preprocessKana = (kana: string) => settings.showRomaji ? `${_preprocessKana(kana)}` : _preprocessKana(kana)
// Process each line into segments with swi (start word index) and kanji/kana
type ProcLrcSeg = { swi: number, kanji?: string, kana: string }
@@ -110,6 +111,7 @@
a.name).join(", ") + " - " + data.brief.album}>
+
@@ -141,13 +143,13 @@
{#each line.parts as seg}
{#if !seg.kanji}
{#each seg.kana as char, c}
- {preprocessKana(char)}
+ {@html preprocessKana(char)}
{/each}
{:else}
{seg.kanji}{#if settings.isFuri}{/if}
diff --git a/src/shared/types.ts b/src/shared/types.ts
index 9f3fbd9..0fab0fb 100644
--- a/src/shared/types.ts
+++ b/src/shared/types.ts
@@ -58,7 +58,8 @@ export interface UserDocument {
export const typingSettingsDefault = {
isFuri: true,
- allKata: false
+ allKata: false,
+ showRomaji: true
}
export interface UserData {