markdownr 0.6.4 → 0.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/markdown_server/app.rb +1 -1
- data/lib/markdown_server/version.rb +1 -1
- data/views/layout.erb +13 -4
- data/views/popup_assets.erb +31 -10
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: af0a41eadcbe996f7165b92a56174857657a21698308b515a35a67ec81a9a3e0
|
|
4
|
+
data.tar.gz: 12f87ff3043049997f895f4dc0bde07d6d7e41c0195286b1abe29c91eada81e2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cc617683848f464907a1f8d4e17986a80842e631b9e68dcd6d3eb340bb0b658d080a9849c8f1a6ec952f8ceaa23cb95fda4760e44dc02b36a6620a7b30dcbf53
|
|
7
|
+
data.tar.gz: 73bbfe99e65f7c50b4c4ffca35b4ab98d9a706f3c8367451b115e61919391ec95d987396cb75f5cbf7890822f4ec4b0456255a47a9872af5745b2dc90737e92b
|
data/lib/markdown_server/app.rb
CHANGED
|
@@ -750,7 +750,7 @@ module MarkdownServer
|
|
|
750
750
|
|
|
751
751
|
def scrip_html(html)
|
|
752
752
|
# Extract the passage content block
|
|
753
|
-
content = html[/<div\s+class="passage-text[^"]*"[^>]*>([\s\S]*?)<\/div>\s*(?:<nav
|
|
753
|
+
content = html[/<div\s+class="passage-text[^"]*"[^>]*>([\s\S]*?)<\/div>\s*(?:<nav|\z)/im, 1] || ""
|
|
754
754
|
return page_html(html) if content.empty?
|
|
755
755
|
|
|
756
756
|
# Add data-verse attributes to verse spans for popup scrolling.
|
data/views/layout.erb
CHANGED
|
@@ -2024,10 +2024,19 @@
|
|
|
2024
2024
|
}
|
|
2025
2025
|
|
|
2026
2026
|
function findVerseSpans(root, verseNum) {
|
|
2027
|
-
var
|
|
2028
|
-
|
|
2029
|
-
var
|
|
2030
|
-
|
|
2027
|
+
var num = String(verseNum);
|
|
2028
|
+
// Prefer .verse spans (full verse text) with exact verse number match
|
|
2029
|
+
var all = root.querySelectorAll('.verse[data-verse]');
|
|
2030
|
+
var matches = [];
|
|
2031
|
+
for (var i = 0; i < all.length; i++) {
|
|
2032
|
+
var dv = all[i].getAttribute('data-verse');
|
|
2033
|
+
var after = dv.split(':').pop();
|
|
2034
|
+
if (after === num) matches.push(all[i]);
|
|
2035
|
+
}
|
|
2036
|
+
if (matches.length) return matches;
|
|
2037
|
+
// Fallback: bare data-verse="N" (e.g. sup elements from scrip_html)
|
|
2038
|
+
var span = root.querySelector('[data-verse="' + num + '"]');
|
|
2039
|
+
return span ? [span] : [];
|
|
2031
2040
|
}
|
|
2032
2041
|
|
|
2033
2042
|
function applyPopupAnchor(hash) {
|
data/views/popup_assets.erb
CHANGED
|
@@ -596,10 +596,19 @@
|
|
|
596
596
|
}
|
|
597
597
|
|
|
598
598
|
function findVerseSpans(root, verseNum) {
|
|
599
|
-
var
|
|
600
|
-
|
|
601
|
-
var
|
|
602
|
-
|
|
599
|
+
var num = String(verseNum);
|
|
600
|
+
// Prefer .verse spans (full verse text) with exact verse number match
|
|
601
|
+
var all = root.querySelectorAll('.verse[data-verse]');
|
|
602
|
+
var matches = [];
|
|
603
|
+
for (var i = 0; i < all.length; i++) {
|
|
604
|
+
var dv = all[i].getAttribute('data-verse');
|
|
605
|
+
var after = dv.split(':').pop();
|
|
606
|
+
if (after === num) matches.push(all[i]);
|
|
607
|
+
}
|
|
608
|
+
if (matches.length) return matches;
|
|
609
|
+
// Fallback: bare data-verse="N" (e.g. sup elements from scrip_html)
|
|
610
|
+
var span = root.querySelector('[data-verse="' + num + '"]');
|
|
611
|
+
return span ? [span] : [];
|
|
603
612
|
}
|
|
604
613
|
|
|
605
614
|
function applyPopupAnchor(hash) {
|
|
@@ -881,14 +890,26 @@
|
|
|
881
890
|
if (!m) return;
|
|
882
891
|
var start = parseInt(m[1], 10);
|
|
883
892
|
var end = m[2] ? parseInt(m[2], 10) : start;
|
|
893
|
+
var bookMeta = document.querySelector('meta[name="book"]');
|
|
894
|
+
var chMeta = document.querySelector('meta[name="chapter"]');
|
|
895
|
+
var book = bookMeta && bookMeta.content;
|
|
896
|
+
var ch = chMeta && chMeta.content;
|
|
884
897
|
var first = null;
|
|
885
898
|
for (var v = start; v <= end; v++) {
|
|
886
|
-
var
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
899
|
+
var spans;
|
|
900
|
+
if (book && ch) {
|
|
901
|
+
spans = document.querySelectorAll('.verse[data-verse="' + book + ' ' + ch + ':' + v + '"]');
|
|
902
|
+
} else {
|
|
903
|
+
// No meta tags — filter all .verse spans by exact verse number
|
|
904
|
+
var all = document.querySelectorAll('.verse[data-verse]');
|
|
905
|
+
spans = [];
|
|
906
|
+
for (var i = 0; i < all.length; i++) {
|
|
907
|
+
if (all[i].getAttribute('data-verse').split(':').pop() === String(v)) spans.push(all[i]);
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
for (var j = 0; j < spans.length; j++) {
|
|
911
|
+
spans[j].classList.add('verse-selected');
|
|
912
|
+
if (!first) first = spans[j];
|
|
892
913
|
}
|
|
893
914
|
}
|
|
894
915
|
if (!first) return;
|