diff --git a/.gitignore b/.gitignore index 4453835..529aa28 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,10 @@ logs .fleet .idea +# PDF.js (copié depuis node_modules par postinstall) +public/pdfjs/pdf.min.mjs +public/pdfjs/pdf.worker.min.mjs + # Sources originales (PDF, JPG — pas servies par l'appli) sources/ diff --git a/app/components/book/BookPdfReader.vue b/app/components/book/BookPdfReader.vue index 646a527..cf52c7c 100644 --- a/app/components/book/BookPdfReader.vue +++ b/app/components/book/BookPdfReader.vue @@ -50,10 +50,9 @@ const isOpen = computed({ const pdfUrl = computed(() => { const base = bookData.getPdfUrl() - const fragments: string[] = [] - if (props.page) fragments.push(`page=${props.page}`) - fragments.push('pagemode=bookmarks') - return `${base}#${fragments.join('&')}` + const viewerBase = `/pdfjs/viewer.html?file=${encodeURIComponent(base)}` + if (props.page) return `${viewerBase}#page=${props.page}` + return viewerBase }) function close() { diff --git a/app/components/book/ChapterHeader.vue b/app/components/book/ChapterHeader.vue index 2a145dd..32b2293 100644 --- a/app/components/book/ChapterHeader.vue +++ b/app/components/book/ChapterHeader.vue @@ -15,8 +15,9 @@ {{ description }}

+ +
-
-
-
-
- + @@ -55,7 +54,7 @@ const props = defineProps<{ const bookData = useBookData() const { loadAndPlay } = useAudioPlayer() -await bookData.init() +bookData.init() const songs = computed(() => bookData.getChapterSongs(props.chapterSlug)) const pdfPage = computed(() => bookData.getChapterPage(props.chapterSlug)) diff --git a/app/components/book/ChapterToc.vue b/app/components/book/ChapterToc.vue new file mode 100644 index 0000000..791f6e6 --- /dev/null +++ b/app/components/book/ChapterToc.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/app/components/song/SongBadges.vue b/app/components/song/SongBadges.vue index 05a8863..851c84b 100644 --- a/app/components/song/SongBadges.vue +++ b/app/components/song/SongBadges.vue @@ -17,7 +17,7 @@ const props = defineProps<{ }>() const bookData = useBookData() -await bookData.init() +bookData.init() const songs = computed(() => bookData.getChapterSongs(props.chapterSlug)) diff --git a/app/pages/admin/book/index.vue b/app/pages/admin/book/index.vue index 53c3f45..219721c 100644 --- a/app/pages/admin/book/index.vue +++ b/app/pages/admin/book/index.vue @@ -1,7 +1,7 @@