diff --git a/convert/convertBooks.ts b/convert/convertBooks.ts
index cc658347a..2d70defc9 100644
--- a/convert/convertBooks.ts
+++ b/convert/convertBooks.ts
@@ -322,7 +322,7 @@ type ConvertBookContext = {
bcId: string;
};
-const unsupportedBookTypes = ['story', 'songs', 'audio-only', 'bloom-player', 'quiz', 'undefined'];
+const unsupportedBookTypes = ['story', 'audio-only', 'bloom-player', 'quiz', 'undefined'];
export async function convertBooks(
dataDir: string,
scriptureConfig: ScriptureConfig,
@@ -395,7 +395,6 @@ export async function convertBooks(
let bookConverted = false;
switch (book.type) {
case 'story':
- case 'songs':
case 'audio-only':
case 'bloom-player':
case 'undefined':
@@ -727,10 +726,10 @@ function convertScriptureBook(
if (context.verbose) {
console.log(
context.docSet +
- ' <- ' +
- book.name +
- ': ' +
- path.join(context.dataDir, 'books', context.bcId, book.file)
+ ' <- ' +
+ book.name +
+ ': ' +
+ path.join(context.dataDir, 'books', context.bcId, book.file)
);
}
displayBookId(context.bcId, book.id);
diff --git a/src/lib/components/Sidebar.svelte b/src/lib/components/Sidebar.svelte
index 85ddaa6de..b12b1fb4b 100644
--- a/src/lib/components/Sidebar.svelte
+++ b/src/lib/components/Sidebar.svelte
@@ -34,6 +34,7 @@ The sidebar/drawer.
SearchIcon,
SettingsIcon,
ShareIcon,
+ SongBookIcon,
TextAppearanceIcon
} from '$lib/icons';
import { gotoRoute } from '$lib/navigate';
@@ -61,6 +62,7 @@ The sidebar/drawer.
const showBookmarks = config.mainFeatures['annotation-bookmarks'];
const showNotes = config.mainFeatures['annotation-notes'];
const showHighlights = config.mainFeatures['annotation-highlights'];
+ const showSongbooks = true;
const showPlans = config.plans?.plans.length > 0;
const showShare =
config.mainFeatures['share-app-link'] ||
@@ -213,7 +215,14 @@ The sidebar/drawer.
{/if}
- {#if showHistory || showBookmarks || showNotes || showHighlights}
+ {#if showSongbooks}
+
+
+
+ {/if}
+ {#if showHistory || showBookmarks || showNotes || showHighlights || showSongbooks}
{/if}
{#if showShare}
diff --git a/src/lib/components/SongBook.svelte b/src/lib/components/SongBook.svelte
new file mode 100644
index 000000000..f945de2bb
--- /dev/null
+++ b/src/lib/components/SongBook.svelte
@@ -0,0 +1,15 @@
+
diff --git a/src/lib/icons/SongBookIcon.svelte b/src/lib/icons/SongBookIcon.svelte
new file mode 100644
index 000000000..da3b10c42
--- /dev/null
+++ b/src/lib/icons/SongBookIcon.svelte
@@ -0,0 +1,21 @@
+
+
+
diff --git a/src/lib/icons/index.js b/src/lib/icons/index.js
index 82e86dcb1..5a059ccc6 100644
--- a/src/lib/icons/index.js
+++ b/src/lib/icons/index.js
@@ -32,6 +32,7 @@ import SettingsIcon from './SettingsIcon.svelte';
import ShareIcon from './ShareIcon.svelte';
import SideBySideIcon from './SideBySideIcon.svelte';
import SinglePaneIcon from './SinglePaneIcon.svelte';
+import SongBookIcon from './SongBookIcon.svelte';
import SortIcon from './SortIcon.svelte';
import TextAppearanceIcon from './TextAppearanceIcon.svelte';
import TriangleLeftIcon from './TriangleLeftIcon.svelte';
@@ -74,5 +75,6 @@ export {
TextAppearanceIcon,
VerseByVerseIcon,
TriangleLeftIcon,
- TriangleRightIcon
+ TriangleRightIcon,
+ SongBookIcon
};
diff --git a/src/lib/types.ts b/src/lib/types.ts
index e9204ae4a..9f691e9ee 100644
--- a/src/lib/types.ts
+++ b/src/lib/types.ts
@@ -7,3 +7,9 @@ export interface SearchFormSubmitEvent {
wholeWords: boolean;
matchAccents: boolean;
}
+
+export interface SongBook {
+ id: string;
+ collection: string;
+ name: string;
+}
\ No newline at end of file
diff --git a/src/routes/songs/+page.svelte b/src/routes/songs/+page.svelte
new file mode 100644
index 000000000..4aff1aa37
--- /dev/null
+++ b/src/routes/songs/+page.svelte
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/routes/songs/[collection]/[id]/+page.svelte b/src/routes/songs/[collection]/[id]/+page.svelte
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/routes/songs/[collection]/[id]/+page.ts b/src/routes/songs/[collection]/[id]/+page.ts
new file mode 100644
index 000000000..34149224a
--- /dev/null
+++ b/src/routes/songs/[collection]/[id]/+page.ts
@@ -0,0 +1,14 @@
+import { initProskomma } from '$lib/data/scripture';
+
+/** @type {import('./$types').PageLoad} */
+export async function load({ params, fetch }) {
+ const { collection, id } = params;
+ const filename = `${collection}-${id}-songs-by-number.txt`;
+ const proskomma = await initProskomma({ fetch });
+ return {
+ fetch,
+ collection,
+ id,
+ filename
+ };
+}
\ No newline at end of file