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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 845f5eba9de7543ef7e3c386e54f127d8ecfaf48e368d5fb11de54ca5d96cc6c
4
- data.tar.gz: 9b00fb58e4c3a4e9e3b5c8236f30b96577f7e8bd4d18a17d8576b6382d568380
3
+ metadata.gz: af0a41eadcbe996f7165b92a56174857657a21698308b515a35a67ec81a9a3e0
4
+ data.tar.gz: 12f87ff3043049997f895f4dc0bde07d6d7e41c0195286b1abe29c91eada81e2
5
5
  SHA512:
6
- metadata.gz: 619d4b659c762122321ee3215e06b996c111d88f36bcc83a57b7613f2c9d241a9dea383bb2fbd86c9afa3a579085c7ae7b42519f597e795cb327f23426a5de7d
7
- data.tar.gz: cf8bc3acf215f5fae8fbbafa137a231e8b37a1db8e73691f95cdc4f1f4acdd9631b19200cf4483b3dcad8df4c95d1a5ee6487cc34e7fb9de16c5c7d0d516b7d7
6
+ metadata.gz: cc617683848f464907a1f8d4e17986a80842e631b9e68dcd6d3eb340bb0b658d080a9849c8f1a6ec952f8ceaa23cb95fda4760e44dc02b36a6620a7b30dcbf53
7
+ data.tar.gz: 73bbfe99e65f7c50b4c4ffca35b4ab98d9a706f3c8367451b115e61919391ec95d987396cb75f5cbf7890822f4ec4b0456255a47a9872af5745b2dc90737e92b
@@ -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|$)/im, 1] || ""
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.
@@ -1,3 +1,3 @@
1
1
  module MarkdownServer
2
- VERSION = "0.6.4"
2
+ VERSION = "0.6.5"
3
3
  end
data/views/layout.erb CHANGED
@@ -2024,10 +2024,19 @@
2024
2024
  }
2025
2025
 
2026
2026
  function findVerseSpans(root, verseNum) {
2027
- var span = root.querySelector('[data-verse="' + verseNum + '"]');
2028
- if (span) return [span];
2029
- var spans = root.querySelectorAll('[data-verse$=":' + verseNum + '"]');
2030
- return spans.length ? Array.prototype.slice.call(spans) : [];
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) {
@@ -596,10 +596,19 @@
596
596
  }
597
597
 
598
598
  function findVerseSpans(root, verseNum) {
599
- var span = root.querySelector('[data-verse="' + verseNum + '"]');
600
- if (span) return [span];
601
- var spans = root.querySelectorAll('[data-verse$=":' + verseNum + '"]');
602
- return spans.length ? Array.prototype.slice.call(spans) : [];
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 sel = '[data-verse$=":' + v + '"]';
887
- var spans = document.querySelectorAll(sel);
888
- if (!spans.length) spans = document.querySelectorAll('[data-verse="' + v + '"]');
889
- for (var i = 0; i < spans.length; i++) {
890
- spans[i].classList.add('verse-selected');
891
- if (!first) first = spans[i];
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;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdownr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Dunn