Skip to content

Commit

Permalink
Add references to verses
Browse files Browse the repository at this point in the history
In this commit, references to verses were added in the chapters.sql
file. A new condition was introduced to filter references with a rate
greater than 3. Additionally, in the same file, the logic related to
grouping verses was modified to differentiate between verses with
references and those without, affecting the structure and content of the
output.
  • Loading branch information
placek committed Apr 23, 2024
1 parent 3d298ae commit a0659bc
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 72 deletions.
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
size ?= A6
left ?= PAU
right ?= NA28
rate ?= 15

style := /app/style.css
print := /app/print.css
Expand All @@ -20,7 +21,7 @@ $(left)-$(right).html: info-$(left).html info-$(right).html cross_references.SQL
{ echo "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><link rel=\"stylesheet\" href=\"$(style)\"></head><body><h1>pocket-nt</h1><info>"; \
cat "info-$(left).html" "info-$(right).html"; \
echo "</info>"; \
sqlite3 < $(chapters) | sed -rf $(render); \
sed 's/<RATE>/$(rate)/' $(chapters) | sqlite3 | sed -rf $(render); \
echo "</body></html>"; \
} > "$@"

Expand All @@ -37,7 +38,7 @@ cross_references.csv: cross_references.txt
sed -rf cr_to_db.sed "$<" > "$@"

cross_references.SQLite3: cross_references.csv
sqlite3 "$@" "create table cross_references (book_number integer, chapter integer, verse integer, b1 integer, c1 integer, v1 integer, b2 integer, c2 integer, v2 integer, rate integer);"
sqlite3 "$@" "CREATE TABLE cross_references (book_number INTEGER, chapter INTEGER, verse INTEGER, b1 INTEGER, c1 INTEGER, v1 INTEGER, b2 INTEGER, c2 INTEGER, v2 INTEGER, rate INTEGER);"
sqlite3 "$@" ".mode csv" ".import $< cross_references"

%.SQLite3: %.zip
Expand All @@ -54,7 +55,7 @@ cross_references.SQLite3: cross_references.csv

info-%.html: %.SQLite3
{ echo "<column><description>"; \
sqlite3 "$<" "select value from info where name = 'description'" | sed "s/,/<br>/g"; \
sqlite3 "$<" "SELECT value FROM info WHERE name = 'description'" | sed "s/,/<br>/g"; \
echo "</description></column>"; \
} > "$@"

Expand Down
101 changes: 32 additions & 69 deletions chapters.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,87 +4,50 @@ ATTACH DATABASE 'cross_references.SQLite3' AS cr;

WITH
CrossReferences AS (
SELECT
c.book_number,
c.chapter,
c.verse,
SELECT c.book_number, chapter, verse, b2,
GROUP_CONCAT(
CASE
WHEN c.b2 IS NOT NULL THEN
(SELECT short_name FROM db1.books_all WHERE book_number = c.b1) || ' ' || c.c1 || ',' || c.v1 || '-' || (SELECT short_name FROM db1.books_all WHERE book_number = c.b2) || ' ' || c.c2 || ',' || c.v2
ELSE
(SELECT short_name FROM db1.books_all WHERE book_number = c.b1) || ' ' || c.c1 || ',' || c.v1
WHEN b2 = '' THEN b.short_name || '&nbsp;' || c1 || ',' || v1
ELSE b.short_name || '&nbsp;' || c1 || ',' || v1 || '-' || c2 || ',' || v2
END, '; '
) AS refs
FROM
cr.cross_references AS c
GROUP BY
c.book_number, c.chapter, c.verse
FROM cr.cross_references c
LEFT JOIN db1.books_all b ON c.b1 = b.book_number
WHERE c.rate > <RATE>
GROUP BY c.book_number, chapter, verse
ORDER BY rate DESC
),
AllVersesD1 AS (
SELECT
b.book_number,
b.long_name AS book,
v.chapter,
v.verse,
v.text
FROM
db1.verses AS v
JOIN
db1.books AS b
ON
v.book_number = b.book_number
WHERE
b.book_number >= 470
ORDER BY b.book_number, v.chapter, v.verse
SELECT book_number, long_name AS book, chapter, verse, text
FROM db1.verses JOIN db1.books USING (book_number)
WHERE book_number >= 470
ORDER BY book_number, chapter, verse
),
AllVersesD2 AS (
SELECT
b.book_number,
b.long_name AS book,
v.chapter,
v.verse,
v.text
FROM
db2.verses AS v
JOIN
db2.books AS b
ON
v.book_number = b.book_number
WHERE
b.book_number >= 470
ORDER BY b.book_number, v.chapter, v.verse
SELECT book_number, long_name AS book, chapter, verse, text
FROM db2.verses JOIN db2.books USING (book_number)
WHERE book_number >= 470
ORDER BY book_number, chapter, verse
),
AllChaptersD1 AS (
SELECT
v.book_number,
v.book,
v.chapter,
GROUP_CONCAT('{{verse data-verse="' || v.verse || '" data-references="' || c.refs || '"}}' || v.text || '{{/verse}}', '') AS verses
FROM
AllVersesD1 AS v
JOIN
CrossReferences AS c
ON
v.book_number = c.book_number AND v.chapter = c.chapter AND v.verse = c.verse
GROUP BY v.book_number, v.chapter
SELECT book_number, book, chapter,
GROUP_CONCAT(
CASE
WHEN book_number IS NOT NULL THEN
'{{verse data-verse="' || verse || '" data-references="' || IFNULL(refs, '') || '"}}' || text || '{{/verse}}'
ELSE
'{{verse data-verse="' || verse || '"}}' || text || '{{/verse}}'
END, ''
) AS verses
FROM AllVersesD1 LEFT JOIN CrossReferences
USING (book_number, chapter, verse)
GROUP BY book_number, chapter
),
AllChaptersD2 AS (
SELECT
book_number,
book,
chapter,
SELECT book_number, book, chapter,
GROUP_CONCAT('{{verse data-verse="' || verse || '"}}' || text || '{{/verse}}', '') AS verses
FROM
AllVersesD2
FROM AllVersesD2
GROUP BY book_number, chapter
)
SELECT
v1.book_number,
v1.book,
v1.chapter,
v1.verses AS left,
v2.verses AS right
FROM AllChaptersD1 AS v1
JOIN AllChaptersD2 AS v2
ON v1.book_number = v2.book_number AND v1.chapter = v2.chapter;
SELECT v1.book_number, v1.book, v1.chapter, v1.verses AS left, v2.verses AS right
FROM AllChaptersD1 v1 JOIN AllChaptersD2 v2 USING (book_number, chapter);
1 change: 1 addition & 0 deletions style.css
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ chapter[data-chapter="1"] verse[data-verse="1"] { padding-top: 1em; }
chapter[data-chapter="1"] verse[data-verse="1"]::first-letter { font-size: 2.2em; float: left; line-height: 0.5em; }
verse[data-verse="1"] { display: inline-block; }
verse:before { content: attr(data-verse); font-family: mono; font-weight: 600; font-size: .6em; margin: 0 .5em; vertical-align: super; }
verse[data-references]:after { content: attr(data-references); font-family: mono; font-size: .6em; margin: 0 .5em; vertical-align: baseline; }

0 comments on commit a0659bc

Please sign in to comment.