diff --git a/public/dictionaries/de/de.dic b/public/dictionaries/de/de.dic.txt similarity index 100% rename from public/dictionaries/de/de.dic rename to public/dictionaries/de/de.dic.txt diff --git a/public/dictionaries/en/en.dic b/public/dictionaries/en/en.dic.txt similarity index 100% rename from public/dictionaries/en/en.dic rename to public/dictionaries/en/en.dic.txt diff --git a/src/lib/spell/dictionary.ts b/src/lib/spell/dictionary.ts index 16fdddb..5c4e08f 100644 --- a/src/lib/spell/dictionary.ts +++ b/src/lib/spell/dictionary.ts @@ -29,13 +29,14 @@ async function fetchBytes(url: string): Promise { } async function build(code: string): Promise { - // Vendored assets: public/dictionaries//.{aff,dic}. BASE_URL keeps - // this correct under a non-root deploy base. + // Vendored assets: public/dictionaries//.{aff,dic.txt}. The word list is + // .txt so the host gzips it (GitHub Pages leaves a .dic's text/x-c uncompressed); + // BASE_URL keeps the path correct under a non-root deploy base. const base = `${import.meta.env.BASE_URL}dictionaries/${code}/${code}`; const [factory, aff, dic] = await Promise.all([ loadFactory(), fetchBytes(`${base}.aff`), - fetchBytes(`${base}.dic`), + fetchBytes(`${base}.dic.txt`), ]); const affPath = factory.mountBuffer(aff, `${code}.aff`); const dicPath = factory.mountBuffer(dic, `${code}.dic`); diff --git a/tests/unit/spell.test.ts b/tests/unit/spell.test.ts index d6820ed..51918a2 100644 --- a/tests/unit/spell.test.ts +++ b/tests/unit/spell.test.ts @@ -14,7 +14,7 @@ function dictPath(rel: string): string { async function makeChecker(code: string): Promise { const factory = await loadModule(); const aff = factory.mountBuffer(readFileSync(dictPath(`${code}/${code}.aff`)), `${code}.aff`); - const dic = factory.mountBuffer(readFileSync(dictPath(`${code}/${code}.dic`)), `${code}.dic`); + const dic = factory.mountBuffer(readFileSync(dictPath(`${code}/${code}.dic.txt`)), `${code}.dic`); return factory.create(aff, dic); }