diff --git a/src/wanikani.ts b/src/wanikani.ts
index 3200f4d..eee72e4 100644
--- a/src/wanikani.ts
+++ b/src/wanikani.ts
@@ -365,9 +365,9 @@ export class WaniKani {
for (const n of notes) {
const { value: ja } = n.fields[fields.ja] || {};
if (ja) {
- const audio = audioMap.get(
- ja.replace(/\[.+?\]/g, '').replace(/ /g, ''),
- );
+ // const cleanJa = ja.replace(/\[.+?\]/g, '').replace(/ /g, '')
+ const cleanJa = ja;
+ const audio = audioMap.get(cleanJa);
if (audio) {
notesToUpdate.push({
id: n.noteId,
@@ -467,7 +467,8 @@ export class WaniKani {
for (const n of notes) {
const { value: ja } = n.fields[fields.vocabJa] || {};
if (ja) {
- const cleanJa = ja.replace(/\[.+?\]/g, '').replace(/ /g, '');
+ // const cleanJa = ja.replace(/\[.+?\]/g, '').replace(/ /g, '');
+ const cleanJa = ja;
const sent = sentenceMap.get(cleanJa);
if (sent) {
const fieldUpdate = {
@@ -479,10 +480,19 @@ export class WaniKani {
fields.sentenceCloze &&
!n.fields[fields.sentenceCloze]?.value
) {
- fieldUpdate[fields.sentenceCloze] = sent.sentences
+ const clozeChar = '__';
+ let newSent = sent.sentences
.map(({ ja, en }) => `${ja}
${en}`)
.join('
')
- .replace(cleanJa, '__');
+ .replace(cleanJa, clozeChar);
+
+ cleanJa.split(/[\p{sc=Hiragana}]+/gu).map((c) => {
+ if (c) {
+ newSent = newSent.replace(c, clozeChar);
+ }
+ });
+
+ fieldUpdate[fields.sentenceCloze] = newSent;
}
notesToUpdate.push({
@@ -554,9 +564,9 @@ export class WaniKani {
for (const n of notes) {
const { value: ja } = n.fields[fields.ja] || {};
if (ja) {
- const vocab = vocabMap.get(
- ja.replace(/\[.+?\]/g, '').replace(/ /g, ''),
- );
+ // const cleanJa = ja.replace(/\[.+?\]/g, '').replace(/ /g, '')
+ const cleanJa = ja;
+ const vocab = vocabMap.get(cleanJa);
if (vocab) {
notesToUpdate.push({
id: n.noteId,