Bouton PDF par chapitre, badges morceaux améliorés, PDF configurable admin, git sync admin→prod
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Bouton PDF blanc par chapitre avec numéro de page (ChapterHeader) - Badges morceaux plus visibles (bordure, poids, hover) dans ChapterHeader et SongBadges - PDF viewer : page cible + panneau signets ouverts par défaut (BookPdfReader) - Config YAML : pdfFile dans book, chapterPages pour le mapping chapitre→page - Admin book : section PDF du livre avec chemin éditable et sauvegarde - Git sync automatique : chaque sauvegarde admin commit+push en prod (ADMIN_GIT_SYNC=true) - Docker : git installé en prod, volumes pour .git/site/content/public Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import type { Song } from '~/types/song'
|
||||
import type { ChapterSongLink, BookConfig } from '~/types/book'
|
||||
import type { ChapterSongLink, ChapterPageLink, BookConfig } from '~/types/book'
|
||||
|
||||
let _configCache: BookConfig | null = null
|
||||
|
||||
@@ -13,9 +13,11 @@ async function loadConfig(): Promise<BookConfig> {
|
||||
author: parsed.book.author,
|
||||
description: parsed.book.description,
|
||||
coverImage: parsed.book.coverImage,
|
||||
pdfFile: parsed.book.pdfFile,
|
||||
chapters: [],
|
||||
songs: parsed.songs as Song[],
|
||||
chapterSongs: parsed.chapterSongs as ChapterSongLink[],
|
||||
chapterPages: (parsed.chapterPages ?? []) as ChapterPageLink[],
|
||||
defaultPlaylistOrder: parsed.defaultPlaylistOrder as string[],
|
||||
}
|
||||
|
||||
@@ -76,6 +78,14 @@ export function useBookData() {
|
||||
return link?.chapterSlug
|
||||
}
|
||||
|
||||
function getChapterPage(chapterSlug: string): number | undefined {
|
||||
return config.value?.chapterPages.find(cp => cp.chapterSlug === chapterSlug)?.page
|
||||
}
|
||||
|
||||
function getPdfUrl(): string {
|
||||
return config.value?.pdfFile || '/pdf/une-economie-du-don.pdf'
|
||||
}
|
||||
|
||||
function getBookMeta() {
|
||||
if (!config.value) return null
|
||||
return {
|
||||
@@ -98,5 +108,7 @@ export function useBookData() {
|
||||
getChapterForSong,
|
||||
getPlaylistOrder,
|
||||
getBookMeta,
|
||||
getChapterPage,
|
||||
getPdfUrl,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user