diff --git a/src/generate-gresource.js b/src/generate-gresource.js
new file mode 100755
index 00000000..45f3c40d
--- /dev/null
+++ b/src/generate-gresource.js
@@ -0,0 +1,55 @@
+#!/usr/bin/env node
+import { readdir, writeFile } from 'fs/promises'
+import { join } from 'path'
+
+const getPath = file => join(file.parentPath, file.name)
+
+const getFiles = async (path, filter, compressed) => {
+ const files = await readdir(path, { withFileTypes: true })
+ return files.filter(file => !file.isDirectory())
+ .filter(filter ?? (() => true))
+ .map(compressed
+ ? file => `${getPath(file)}`
+ : file => `${getPath(file)}`)
+}
+
+const getIcons = async () => {
+ const files = await readdir('icons/hicolor/scalable/actions/',
+ { withFileTypes: true })
+ return files.map(file =>
+ `${getPath(file)}`)
+}
+
+const filter = ({ excludes, endsWith }) => ({ name }) => {
+ for (const x of excludes) if (name === x) return
+ for (const x of endsWith) if (name.endsWith(x)) return true
+}
+
+const result = `
+
+
+${[
+ ...await getFiles('./', filter({
+ excludes: ['generate-gresource.js', 'main.js'],
+ endsWith: ['.js'],
+ })),
+ ...await getFiles('ui/'),
+ ...await getIcons(),
+ ...await getFiles('foliate-js/', filter({
+ excludes: ['reader.js', 'eslint.config.js', 'rollup.config.js'],
+ endsWith: ['.js'],
+ })),
+ ...await getFiles('foliate-js/vendor/'),
+ ...await getFiles('foliate-js/vendor/pdfjs/'),
+ ...await getFiles('foliate-js/vendor/pdfjs/cmaps/', null, true),
+ ...await getFiles('foliate-js/vendor/pdfjs/standard_fonts/', null, true),
+ ...await getFiles('opds/'),
+ ...await getFiles('selection-tools/'),
+ ...await getFiles('common/'),
+ ...await getFiles('reader/'),
+ ].map(x => ' ' + x).join('\n')}
+
+
+`
+
+await writeFile('gresource.xml', result)
diff --git a/src/gresource.xml b/src/gresource.xml
index a5a0bb44..e6746096 100644
--- a/src/gresource.xml
+++ b/src/gresource.xml
@@ -13,8 +13,8 @@
search.js
selection-tools.js
speech.js
- toc.js
themes.js
+ toc.js
tts.js
utils.js
webview.js
@@ -23,13 +23,13 @@
ui/book-image.ui
ui/book-item.ui
ui/book-row.ui
- ui/bookmark-row.ui
ui/book-viewer.ui
+ ui/bookmark-row.ui
ui/export-dialog.ui
ui/image-viewer.ui
ui/import-dialog.ui
- ui/library.ui
ui/library-view.ui
+ ui/library.ui
ui/media-overlay-box.ui
ui/navbar.ui
ui/selection-popover.ui
@@ -45,39 +45,226 @@
icons/hicolor/scalable/actions/tag-symbolic.svg
icons/hicolor/scalable/actions/text-squiggly-symbolic.svg
foliate-js/comic-book.js
+ foliate-js/dict.js
foliate-js/epub.js
foliate-js/epubcfi.js
foliate-js/fb2.js
foliate-js/fixed-layout.js
foliate-js/footnotes.js
foliate-js/mobi.js
- foliate-js/overlayer.js
foliate-js/opds.js
+ foliate-js/overlayer.js
foliate-js/paginator.js
- foliate-js/progress.js
foliate-js/pdf.js
+ foliate-js/progress.js
+ foliate-js/quote-image.js
foliate-js/search.js
foliate-js/text-walker.js
foliate-js/tts.js
foliate-js/uri-template.js
foliate-js/view.js
- foliate-js/vendor/zip.js
foliate-js/vendor/fflate.js
+ foliate-js/vendor/zip.js
foliate-js/vendor/pdfjs/annotation_layer_builder.css
foliate-js/vendor/pdfjs/pdf.mjs
foliate-js/vendor/pdfjs/pdf.mjs.map
foliate-js/vendor/pdfjs/pdf.worker.mjs
foliate-js/vendor/pdfjs/pdf.worker.mjs.map
foliate-js/vendor/pdfjs/text_layer_builder.css
- opds/main.js
+ foliate-js/vendor/pdfjs/cmaps/78-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/78-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/78-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/78-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/78-RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/78-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/78ms-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/78ms-RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/83pv-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/90ms-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/90ms-RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/90msp-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/90msp-RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/90pv-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/90pv-RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Add-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Add-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Add-RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Add-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-0.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-1.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-3.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-4.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-5.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-6.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-CNS1-UCS2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-GB1-0.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-GB1-1.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-GB1-2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-GB1-3.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-GB1-4.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-GB1-5.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-GB1-UCS2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-0.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-1.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-3.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-4.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-5.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-6.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Japan1-UCS2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Korea1-0.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Korea1-1.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Korea1-2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Adobe-Korea1-UCS2.bcmap
+ foliate-js/vendor/pdfjs/cmaps/B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/B5pc-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/B5pc-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/CNS-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/CNS-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/CNS1-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/CNS1-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/CNS2-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/CNS2-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/ETHK-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/ETHK-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/ETen-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/ETen-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/ETenms-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/ETenms-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Ext-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Ext-RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Ext-RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Ext-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GB-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GB-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GB-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GB-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBK-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBK-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBK2K-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBK2K-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBKp-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBKp-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBT-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBT-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBT-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBT-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBTpc-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBTpc-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBpc-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/GBpc-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKdla-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKdla-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKdlb-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKdlb-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKgccs-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKgccs-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKm314-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKm314-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKm471-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKm471-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKscs-B5-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/HKscs-B5-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Hankaku.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Hiragana.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSC-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSC-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSC-Johab-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSC-Johab-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSCms-UHC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSCms-UHC-HW-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSCms-UHC-HW-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSCms-UHC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSCpc-EUC-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/KSCpc-EUC-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Katakana.bcmap
+ foliate-js/vendor/pdfjs/cmaps/LICENSE
+ foliate-js/vendor/pdfjs/cmaps/NWP-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/NWP-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/RKSJ-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/RKSJ-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/Roman.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UCS2-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UCS2-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UTF16-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UTF16-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UTF32-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UTF32-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UTF8-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniCNS-UTF8-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UCS2-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UCS2-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UTF16-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UTF16-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UTF32-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UTF32-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UTF8-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniGB-UTF8-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UCS2-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UCS2-HW-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UCS2-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UTF16-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UTF16-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UTF32-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UTF32-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UTF8-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS-UTF8-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS2004-UTF16-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS2004-UTF16-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS2004-UTF32-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS2004-UTF32-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS2004-UTF8-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJIS2004-UTF8-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJISPro-UCS2-HW-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJISPro-UCS2-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJISPro-UTF8-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJISX0213-UTF32-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJISX0213-UTF32-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniJISX02132004-UTF32-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UCS2-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UCS2-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UTF16-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UTF16-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UTF32-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UTF32-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UTF8-H.bcmap
+ foliate-js/vendor/pdfjs/cmaps/UniKS-UTF8-V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/V.bcmap
+ foliate-js/vendor/pdfjs/cmaps/WP-Symbol.bcmap
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitDingbats.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitFixed.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitFixedBold.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitFixedBoldItalic.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitFixedItalic.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitSerif.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitSerifBold.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitSerifBoldItalic.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitSerifItalic.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/FoxitSymbol.pfb
+ foliate-js/vendor/pdfjs/standard_fonts/LICENSE_FOXIT
+ foliate-js/vendor/pdfjs/standard_fonts/LICENSE_LIBERATION
+ foliate-js/vendor/pdfjs/standard_fonts/LiberationSans-Bold.ttf
+ foliate-js/vendor/pdfjs/standard_fonts/LiberationSans-BoldItalic.ttf
+ foliate-js/vendor/pdfjs/standard_fonts/LiberationSans-Italic.ttf
+ foliate-js/vendor/pdfjs/standard_fonts/LiberationSans-Regular.ttf
opds/main.html
+ opds/main.js
selection-tools/common.css
selection-tools/translate.html
selection-tools/wikipedia.html
selection-tools/wiktionary.html
common/widgets.js
+ reader/markup.js
reader/reader.html
reader/reader.js
- reader/markup.js