@helloao/tools 0.0.3 → 0.0.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.
@@ -18,31 +18,31 @@ describe('USXParser', () => {
18
18
  });
19
19
  describe('parse()', () => {
20
20
  it('should parse a simple USX file', () => {
21
- const usx = `
22
- <usx version="3.0">
23
- <book code="GEN" style="id">- Berean Study Bible</book>
24
- <para style="h">Genesis</para>
25
- <para style="toc2">Genesis</para>
26
- <para style="toc1">Genesis</para>
27
- <para style="mt1">Genesis</para>
28
- <chapter number="1" style="c" sid="GEN 1"/>
29
- <para style="s1">The Creation</para>
30
- <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
31
- <para style="m">
32
- <verse number="1" style="v" sid="GEN 1:1"/>
33
- <char style="w" strong="H8064">In</char>
34
- <char style="w" strong="H1254">the</char>
35
- <char style="w" strong="H7225">beginning</char>
36
- <char style="w" strong="H8064">God</char>
37
- <char style="w" strong="H1254">created</char>
38
- <char style="w" strong="H1254">the</char>
39
- <char style="w" strong="H8064">heavens</char>
40
- <char style="w" strong="H8064">and</char>
41
- <char style="w" strong="H1254">the</char>
42
- <char style="w" strong="H8064">earth</char>.
43
- <verse eid="GEN 1:1"/>
44
- </para>
45
- </usx>
21
+ const usx = `
22
+ <usx version="3.0">
23
+ <book code="GEN" style="id">- Berean Study Bible</book>
24
+ <para style="h">Genesis</para>
25
+ <para style="toc2">Genesis</para>
26
+ <para style="toc1">Genesis</para>
27
+ <para style="mt1">Genesis</para>
28
+ <chapter number="1" style="c" sid="GEN 1"/>
29
+ <para style="s1">The Creation</para>
30
+ <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
31
+ <para style="m">
32
+ <verse number="1" style="v" sid="GEN 1:1"/>
33
+ <char style="w" strong="H8064">In</char>
34
+ <char style="w" strong="H1254">the</char>
35
+ <char style="w" strong="H7225">beginning</char>
36
+ <char style="w" strong="H8064">God</char>
37
+ <char style="w" strong="H1254">created</char>
38
+ <char style="w" strong="H1254">the</char>
39
+ <char style="w" strong="H8064">heavens</char>
40
+ <char style="w" strong="H8064">and</char>
41
+ <char style="w" strong="H1254">the</char>
42
+ <char style="w" strong="H8064">earth</char>.
43
+ <verse eid="GEN 1:1"/>
44
+ </para>
45
+ </usx>
46
46
  `;
47
47
  const tree = parser.parse(usx);
48
48
  expect(tree).toEqual({
@@ -73,65 +73,65 @@ describe('USXParser', () => {
73
73
  });
74
74
  });
75
75
  it('should parse line breaks', () => {
76
- const usx = `
77
- <usx version="3.0">
78
- <book code="GEN" style="id">- Berean Study Bible</book>
79
- <para style="h">Genesis</para>
80
- <para style="toc2">Genesis</para>
81
- <para style="toc1">Genesis</para>
82
- <para style="mt1">Genesis</para>
83
- <chapter number="1" style="c" sid="GEN 1"/>
84
- <para style="s1">The Creation</para>
85
- <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
86
- <para style="m">
87
- <verse number="1" style="v" sid="GEN 1:1"/>
88
- <char style="w" strong="H8064">In</char>
89
- <char style="w" strong="H1254">the</char>
90
- <char style="w" strong="H7225">beginning</char>
91
- <char style="w" strong="H8064">God</char>
92
- <char style="w" strong="H1254">created</char>
93
- <char style="w" strong="H1254">the</char>
94
- <char style="w" strong="H8064">heavens</char>
95
- <char style="w" strong="H8064">and</char>
96
- <char style="w" strong="H1254">the</char>
97
- <char style="w" strong="H8064">earth</char>.
98
- <verse eid="GEN 1:1"/>
99
- </para>
100
- <para style="b"/>
101
- <para style="m">
102
- <verse number="2" style="v" sid="GEN 1:2"/>
103
- <char style="w" strong="H1961">Now</char>
104
- <char style="w" strong="H6440">the</char>
105
- <char style="w" strong="H0776">earth</char>
106
- <char style="w" strong="H1961">was</char>
107
- <char style="w" strong="H8414">formless</char>
108
- <char style="w" strong="H6440">and</char>
109
- <char style="w" strong="H2638">void</char>,
110
- <char style="w" strong="H6440">and</char>
111
- <char style="w" strong="H2822">darkness</char>
112
- <char style="w" strong="H1961">was</char>
113
- <char style="w" strong="H5921">over</char>
114
- <char style="w" strong="H6440">the</char>
115
- <char style="w" strong="H6440">surface</char>
116
- <char style="w" strong="H6440">of</char>
117
- <char style="w" strong="H6440">the</char>
118
- <char style="w" strong="H8415">deep</char>.
119
- <char style="w" strong="H6440">And</char>
120
- <char style="w" strong="H6440">the</char>
121
- <char style="w" strong="H7307">Spirit</char>
122
- <char style="w" strong="H6440">of</char>
123
- <char style="w" strong="H0430">God</char>
124
- <char style="w" strong="H1961">was</char>
125
- <char style="w" strong="H7363">hovering</char>
126
- <char style="w" strong="H5921">over</char>
127
- <char style="w" strong="H6440">the</char>
128
- <char style="w" strong="H6440">surface</char>
129
- <char style="w" strong="H6440">of</char>
130
- <char style="w" strong="H6440">the</char>
131
- <char style="w" strong="H4325">waters</char>.
132
- <verse eid="GEN 1:2"/>
133
- </para>
134
- </usx>
76
+ const usx = `
77
+ <usx version="3.0">
78
+ <book code="GEN" style="id">- Berean Study Bible</book>
79
+ <para style="h">Genesis</para>
80
+ <para style="toc2">Genesis</para>
81
+ <para style="toc1">Genesis</para>
82
+ <para style="mt1">Genesis</para>
83
+ <chapter number="1" style="c" sid="GEN 1"/>
84
+ <para style="s1">The Creation</para>
85
+ <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
86
+ <para style="m">
87
+ <verse number="1" style="v" sid="GEN 1:1"/>
88
+ <char style="w" strong="H8064">In</char>
89
+ <char style="w" strong="H1254">the</char>
90
+ <char style="w" strong="H7225">beginning</char>
91
+ <char style="w" strong="H8064">God</char>
92
+ <char style="w" strong="H1254">created</char>
93
+ <char style="w" strong="H1254">the</char>
94
+ <char style="w" strong="H8064">heavens</char>
95
+ <char style="w" strong="H8064">and</char>
96
+ <char style="w" strong="H1254">the</char>
97
+ <char style="w" strong="H8064">earth</char>.
98
+ <verse eid="GEN 1:1"/>
99
+ </para>
100
+ <para style="b"/>
101
+ <para style="m">
102
+ <verse number="2" style="v" sid="GEN 1:2"/>
103
+ <char style="w" strong="H1961">Now</char>
104
+ <char style="w" strong="H6440">the</char>
105
+ <char style="w" strong="H0776">earth</char>
106
+ <char style="w" strong="H1961">was</char>
107
+ <char style="w" strong="H8414">formless</char>
108
+ <char style="w" strong="H6440">and</char>
109
+ <char style="w" strong="H2638">void</char>,
110
+ <char style="w" strong="H6440">and</char>
111
+ <char style="w" strong="H2822">darkness</char>
112
+ <char style="w" strong="H1961">was</char>
113
+ <char style="w" strong="H5921">over</char>
114
+ <char style="w" strong="H6440">the</char>
115
+ <char style="w" strong="H6440">surface</char>
116
+ <char style="w" strong="H6440">of</char>
117
+ <char style="w" strong="H6440">the</char>
118
+ <char style="w" strong="H8415">deep</char>.
119
+ <char style="w" strong="H6440">And</char>
120
+ <char style="w" strong="H6440">the</char>
121
+ <char style="w" strong="H7307">Spirit</char>
122
+ <char style="w" strong="H6440">of</char>
123
+ <char style="w" strong="H0430">God</char>
124
+ <char style="w" strong="H1961">was</char>
125
+ <char style="w" strong="H7363">hovering</char>
126
+ <char style="w" strong="H5921">over</char>
127
+ <char style="w" strong="H6440">the</char>
128
+ <char style="w" strong="H6440">surface</char>
129
+ <char style="w" strong="H6440">of</char>
130
+ <char style="w" strong="H6440">the</char>
131
+ <char style="w" strong="H4325">waters</char>.
132
+ <verse eid="GEN 1:2"/>
133
+ </para>
134
+ </usx>
135
135
  `;
136
136
  const tree = parser.parse(usx);
137
137
  expect(tree).toEqual({
@@ -172,33 +172,33 @@ describe('USXParser', () => {
172
172
  });
173
173
  });
174
174
  it('should combine major title headings', () => {
175
- const usx = `
176
- <usx version="3.0">
177
- <book code="GEN" style="id">- Berean Study Bible</book>
178
- <para style="h">Genesis</para>
179
- <para style="toc2">Genesis</para>
180
- <para style="toc1">Genesis</para>
181
- <para style="mt1">The</para>
182
- <para style="mt2">Title</para>
183
- <para style="mt3">of the Book</para>
184
- <chapter number="1" style="c" sid="GEN 1"/>
185
- <para style="s1">The Creation</para>
186
- <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
187
- <para style="m">
188
- <verse number="1" style="v" sid="GEN 1:1"/>
189
- <char style="w" strong="H8064">In</char>
190
- <char style="w" strong="H1254">the</char>
191
- <char style="w" strong="H7225">beginning</char>
192
- <char style="w" strong="H8064">God</char>
193
- <char style="w" strong="H1254">created</char>
194
- <char style="w" strong="H1254">the</char>
195
- <char style="w" strong="H8064">heavens</char>
196
- <char style="w" strong="H8064">and</char>
197
- <char style="w" strong="H1254">the</char>
198
- <char style="w" strong="H8064">earth</char>.
199
- <verse eid="GEN 1:1"/>
200
- </para>
201
- </usx>
175
+ const usx = `
176
+ <usx version="3.0">
177
+ <book code="GEN" style="id">- Berean Study Bible</book>
178
+ <para style="h">Genesis</para>
179
+ <para style="toc2">Genesis</para>
180
+ <para style="toc1">Genesis</para>
181
+ <para style="mt1">The</para>
182
+ <para style="mt2">Title</para>
183
+ <para style="mt3">of the Book</para>
184
+ <chapter number="1" style="c" sid="GEN 1"/>
185
+ <para style="s1">The Creation</para>
186
+ <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
187
+ <para style="m">
188
+ <verse number="1" style="v" sid="GEN 1:1"/>
189
+ <char style="w" strong="H8064">In</char>
190
+ <char style="w" strong="H1254">the</char>
191
+ <char style="w" strong="H7225">beginning</char>
192
+ <char style="w" strong="H8064">God</char>
193
+ <char style="w" strong="H1254">created</char>
194
+ <char style="w" strong="H1254">the</char>
195
+ <char style="w" strong="H8064">heavens</char>
196
+ <char style="w" strong="H8064">and</char>
197
+ <char style="w" strong="H1254">the</char>
198
+ <char style="w" strong="H8064">earth</char>.
199
+ <verse eid="GEN 1:1"/>
200
+ </para>
201
+ </usx>
202
202
  `;
203
203
  const tree = parser.parse(usx);
204
204
  expect(tree).toEqual({
@@ -229,33 +229,33 @@ describe('USXParser', () => {
229
229
  });
230
230
  });
231
231
  it('should combine major title in the order they appear', () => {
232
- const usx = `
233
- <usx version="3.0">
234
- <book code="GEN" style="id">- Berean Study Bible</book>
235
- <para style="h">Genesis</para>
236
- <para style="toc2">Genesis</para>
237
- <para style="toc1">Genesis</para>
238
- <para style="mt3">The</para>
239
- <para style="mt2">Title</para>
240
- <para style="mt1">of the Book</para>
241
- <chapter number="1" style="c" sid="GEN 1"/>
242
- <para style="s1">The Creation</para>
243
- <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
244
- <para style="m">
245
- <verse number="1" style="v" sid="GEN 1:1"/>
246
- <char style="w" strong="H8064">In</char>
247
- <char style="w" strong="H1254">the</char>
248
- <char style="w" strong="H7225">beginning</char>
249
- <char style="w" strong="H8064">God</char>
250
- <char style="w" strong="H1254">created</char>
251
- <char style="w" strong="H1254">the</char>
252
- <char style="w" strong="H8064">heavens</char>
253
- <char style="w" strong="H8064">and</char>
254
- <char style="w" strong="H1254">the</char>
255
- <char style="w" strong="H8064">earth</char>.
256
- <verse eid="GEN 1:1"/>
257
- </para>
258
- </usx>
232
+ const usx = `
233
+ <usx version="3.0">
234
+ <book code="GEN" style="id">- Berean Study Bible</book>
235
+ <para style="h">Genesis</para>
236
+ <para style="toc2">Genesis</para>
237
+ <para style="toc1">Genesis</para>
238
+ <para style="mt3">The</para>
239
+ <para style="mt2">Title</para>
240
+ <para style="mt1">of the Book</para>
241
+ <chapter number="1" style="c" sid="GEN 1"/>
242
+ <para style="s1">The Creation</para>
243
+ <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
244
+ <para style="m">
245
+ <verse number="1" style="v" sid="GEN 1:1"/>
246
+ <char style="w" strong="H8064">In</char>
247
+ <char style="w" strong="H1254">the</char>
248
+ <char style="w" strong="H7225">beginning</char>
249
+ <char style="w" strong="H8064">God</char>
250
+ <char style="w" strong="H1254">created</char>
251
+ <char style="w" strong="H1254">the</char>
252
+ <char style="w" strong="H8064">heavens</char>
253
+ <char style="w" strong="H8064">and</char>
254
+ <char style="w" strong="H1254">the</char>
255
+ <char style="w" strong="H8064">earth</char>.
256
+ <verse eid="GEN 1:1"/>
257
+ </para>
258
+ </usx>
259
259
  `;
260
260
  const tree = parser.parse(usx);
261
261
  expect(tree).toEqual({
@@ -286,33 +286,33 @@ describe('USXParser', () => {
286
286
  });
287
287
  });
288
288
  it('should support section headings outside of chapters', () => {
289
- const usx = `
290
- <usx version="3.0">
291
- <book code="GEN" style="id">- Berean Study Bible</book>
292
- <para style="h">Genesis</para>
293
- <para style="toc2">Genesis</para>
294
- <para style="toc1">Genesis</para>
295
- <para style="mt1">Genesis</para>
296
- <chapter number="1" style="c" sid="GEN 1"/>
297
- <para style="s1">The Creation</para>
298
- <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
299
- <para style="m">
300
- <verse number="1" style="v" sid="GEN 1:1"/>
301
- <char style="w" strong="H8064">In</char>
302
- <char style="w" strong="H1254">the</char>
303
- <char style="w" strong="H7225">beginning</char>
304
- <char style="w" strong="H8064">God</char>
305
- <char style="w" strong="H1254">created</char>
306
- <char style="w" strong="H1254">the</char>
307
- <char style="w" strong="H8064">heavens</char>
308
- <char style="w" strong="H8064">and</char>
309
- <char style="w" strong="H1254">the</char>
310
- <char style="w" strong="H8064">earth</char>.
311
- <verse eid="GEN 1:1"/>
312
- </para>
313
- <chapter eid="GEN 1"/>
314
- <para style="s2">The Second Section</para>
315
- </usx>
289
+ const usx = `
290
+ <usx version="3.0">
291
+ <book code="GEN" style="id">- Berean Study Bible</book>
292
+ <para style="h">Genesis</para>
293
+ <para style="toc2">Genesis</para>
294
+ <para style="toc1">Genesis</para>
295
+ <para style="mt1">Genesis</para>
296
+ <chapter number="1" style="c" sid="GEN 1"/>
297
+ <para style="s1">The Creation</para>
298
+ <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
299
+ <para style="m">
300
+ <verse number="1" style="v" sid="GEN 1:1"/>
301
+ <char style="w" strong="H8064">In</char>
302
+ <char style="w" strong="H1254">the</char>
303
+ <char style="w" strong="H7225">beginning</char>
304
+ <char style="w" strong="H8064">God</char>
305
+ <char style="w" strong="H1254">created</char>
306
+ <char style="w" strong="H1254">the</char>
307
+ <char style="w" strong="H8064">heavens</char>
308
+ <char style="w" strong="H8064">and</char>
309
+ <char style="w" strong="H1254">the</char>
310
+ <char style="w" strong="H8064">earth</char>.
311
+ <verse eid="GEN 1:1"/>
312
+ </para>
313
+ <chapter eid="GEN 1"/>
314
+ <para style="s2">The Second Section</para>
315
+ </usx>
316
316
  `;
317
317
  const tree = parser.parse(usx);
318
318
  expect(tree).toEqual({
@@ -347,53 +347,53 @@ describe('USXParser', () => {
347
347
  });
348
348
  });
349
349
  it('should support multiple chapters', () => {
350
- const usx = `
351
- <usx version="3.0">
352
- <book code="GEN" style="id">- Berean Study Bible</book>
353
- <para style="h">Genesis</para>
354
- <para style="toc2">Genesis</para>
355
- <para style="toc1">Genesis</para>
356
- <para style="mt1">Genesis</para>
357
- <chapter number="1" style="c" sid="GEN 1"/>
358
- <para style="s1">The Creation</para>
359
- <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
360
- <para style="m">
361
- <verse number="1" style="v" sid="GEN 1:1"/>
362
- <char style="w" strong="H8064">In</char>
363
- <char style="w" strong="H1254">the</char>
364
- <char style="w" strong="H7225">beginning</char>
365
- <char style="w" strong="H8064">God</char>
366
- <char style="w" strong="H1254">created</char>
367
- <char style="w" strong="H1254">the</char>
368
- <char style="w" strong="H8064">heavens</char>
369
- <char style="w" strong="H8064">and</char>
370
- <char style="w" strong="H1254">the</char>
371
- <char style="w" strong="H8064">earth</char>.
372
- <verse eid="GEN 1:1"/>
373
- </para>
374
- <chapter eid="GEN 1"/>
375
- <para style="s2">The Second Section</para>
376
- <chapter number="2" sid="GEN 2"/>
377
- <para style="s1">The Seventh Day</para>
378
- <para style="r">(Exodus 16:22–30; Hebrews 4:1–11)</para>
379
- <para style="m">
380
- <verse number="1" style="v" sid="GEN 2:1"/>
381
- <char style="w" strong="H3541">Thus</char>
382
- <char style="w" strong="H3605">the</char>
383
- <char style="w" strong="H8064">heavens</char>
384
- <char style="w" strong="H8064">and</char>
385
- <char style="w" strong="H3605">the</char>
386
- <char style="w" strong="H8064">earth</char>
387
- <char style="w" strong="H8064">were</char>
388
- <char style="w" strong="H3615">completed</char>
389
- <char style="w" strong="H6635">in</char>
390
- <char style="w" strong="H3605">all</char>
391
- <char style="w" strong="H3605">their</char>
392
- <char style="w" strong="H6635">vast</char>
393
- <char style="w" strong="H6635">array</char>.
394
- <verse eid="GEN 2:1"/>
395
- </para>
396
- </usx>
350
+ const usx = `
351
+ <usx version="3.0">
352
+ <book code="GEN" style="id">- Berean Study Bible</book>
353
+ <para style="h">Genesis</para>
354
+ <para style="toc2">Genesis</para>
355
+ <para style="toc1">Genesis</para>
356
+ <para style="mt1">Genesis</para>
357
+ <chapter number="1" style="c" sid="GEN 1"/>
358
+ <para style="s1">The Creation</para>
359
+ <para style="r">(John 1:1–5; Hebrews 11:1–3)</para>
360
+ <para style="m">
361
+ <verse number="1" style="v" sid="GEN 1:1"/>
362
+ <char style="w" strong="H8064">In</char>
363
+ <char style="w" strong="H1254">the</char>
364
+ <char style="w" strong="H7225">beginning</char>
365
+ <char style="w" strong="H8064">God</char>
366
+ <char style="w" strong="H1254">created</char>
367
+ <char style="w" strong="H1254">the</char>
368
+ <char style="w" strong="H8064">heavens</char>
369
+ <char style="w" strong="H8064">and</char>
370
+ <char style="w" strong="H1254">the</char>
371
+ <char style="w" strong="H8064">earth</char>.
372
+ <verse eid="GEN 1:1"/>
373
+ </para>
374
+ <chapter eid="GEN 1"/>
375
+ <para style="s2">The Second Section</para>
376
+ <chapter number="2" sid="GEN 2"/>
377
+ <para style="s1">The Seventh Day</para>
378
+ <para style="r">(Exodus 16:22–30; Hebrews 4:1–11)</para>
379
+ <para style="m">
380
+ <verse number="1" style="v" sid="GEN 2:1"/>
381
+ <char style="w" strong="H3541">Thus</char>
382
+ <char style="w" strong="H3605">the</char>
383
+ <char style="w" strong="H8064">heavens</char>
384
+ <char style="w" strong="H8064">and</char>
385
+ <char style="w" strong="H3605">the</char>
386
+ <char style="w" strong="H8064">earth</char>
387
+ <char style="w" strong="H8064">were</char>
388
+ <char style="w" strong="H3615">completed</char>
389
+ <char style="w" strong="H6635">in</char>
390
+ <char style="w" strong="H3605">all</char>
391
+ <char style="w" strong="H3605">their</char>
392
+ <char style="w" strong="H6635">vast</char>
393
+ <char style="w" strong="H6635">array</char>.
394
+ <verse eid="GEN 2:1"/>
395
+ </para>
396
+ </usx>
397
397
  `;
398
398
  const tree = parser.parse(usx);
399
399
  expect(tree).toEqual({
@@ -446,65 +446,65 @@ describe('USXParser', () => {
446
446
  });
447
447
  });
448
448
  it('should support footnotes', () => {
449
- const usx = `
450
- <usx version="3.0">
451
- <book code="GEN" style="id">- Berean Study Bible</book>
452
- <para style="h">Genesis</para>
453
- <para style="toc2">Genesis</para>
454
- <para style="toc1">Genesis</para>
455
- <para style="mt1">Genesis</para>
456
- <chapter number="2" style="c" sid="GEN 2"/>
457
- <para style="s1">The Seventh Day</para>
458
- <para style="r">(Exodus 16:22–30; Hebrews 4:1–11)</para>
459
- <para style="m">
460
- <verse number="1" style="v" sid="GEN 2:1"/>
461
- <char style="w" strong="H3541">Thus</char>
462
- <char style="w" strong="H3605">the</char>
463
- <char style="w" strong="H8064">heavens</char>
464
- <char style="w" strong="H8064">and</char>
465
- <char style="w" strong="H3605">the</char>
466
- <char style="w" strong="H8064">earth</char>
467
- <char style="w" strong="H8064">were</char>
468
- <char style="w" strong="H3615">completed</char>
469
- <char style="w" strong="H6635">in</char>
470
- <char style="w" strong="H3605">all</char>
471
- <char style="w" strong="H3605">their</char>
472
- <char style="w" strong="H6635">vast</char>
473
- <char style="w" strong="H6635">array</char>.
474
- <verse eid="GEN 2:1"/>
475
- <verse number="2" style="v" sid="GEN 2:2"/>
476
- <char style="w" strong="H3117">And</char>
477
- <char style="w" strong="H3117">by</char>
478
- <char style="w" strong="H3605">the</char>
479
- <char style="w" strong="H7637">seventh</char>
480
- <char style="w" strong="H3117">day</char>
481
- <char style="w" strong="H0430">God</char>
482
- <char style="w" strong="H3117">had</char>
483
- <char style="w" strong="H3615">finished</char>
484
- <char style="w" strong="H3605">the</char>
485
- <char style="w" strong="H4399">work</char>
486
- <char style="w" strong="H3117">He</char>
487
- <char style="w" strong="H3117">had</char>
488
- <char style="w" strong="H3615">been</char>
489
- <char style="w" strong="H6213">doing</char>;
490
- <char style="w" strong="H6213">so</char>
491
- <char style="w" strong="H3117">on</char>
492
- <char style="w" strong="H3605">that</char>
493
- <char style="w" strong="H3117">day</char>
494
- <char style="w" strong="H3117">He</char>
495
- <char style="w" strong="H7673">rested</char>
496
- <char style="w" strong="H3117">from</char>
497
- <char style="w" strong="H3605">all</char>
498
- <char style="w" strong="H3605">His</char>
499
- <char style="w" strong="H4399">work</char>.
500
- <note style="f" caller="+">
501
- <char style="fr"/>
502
- <char style="ft">2:2 </char>
503
- <char style="ft">Cited in Hebrews 4:4</char>
504
- </note>
505
- <verse eid="GEN 2:2"/>
506
- </para>
507
- </usx>
449
+ const usx = `
450
+ <usx version="3.0">
451
+ <book code="GEN" style="id">- Berean Study Bible</book>
452
+ <para style="h">Genesis</para>
453
+ <para style="toc2">Genesis</para>
454
+ <para style="toc1">Genesis</para>
455
+ <para style="mt1">Genesis</para>
456
+ <chapter number="2" style="c" sid="GEN 2"/>
457
+ <para style="s1">The Seventh Day</para>
458
+ <para style="r">(Exodus 16:22–30; Hebrews 4:1–11)</para>
459
+ <para style="m">
460
+ <verse number="1" style="v" sid="GEN 2:1"/>
461
+ <char style="w" strong="H3541">Thus</char>
462
+ <char style="w" strong="H3605">the</char>
463
+ <char style="w" strong="H8064">heavens</char>
464
+ <char style="w" strong="H8064">and</char>
465
+ <char style="w" strong="H3605">the</char>
466
+ <char style="w" strong="H8064">earth</char>
467
+ <char style="w" strong="H8064">were</char>
468
+ <char style="w" strong="H3615">completed</char>
469
+ <char style="w" strong="H6635">in</char>
470
+ <char style="w" strong="H3605">all</char>
471
+ <char style="w" strong="H3605">their</char>
472
+ <char style="w" strong="H6635">vast</char>
473
+ <char style="w" strong="H6635">array</char>.
474
+ <verse eid="GEN 2:1"/>
475
+ <verse number="2" style="v" sid="GEN 2:2"/>
476
+ <char style="w" strong="H3117">And</char>
477
+ <char style="w" strong="H3117">by</char>
478
+ <char style="w" strong="H3605">the</char>
479
+ <char style="w" strong="H7637">seventh</char>
480
+ <char style="w" strong="H3117">day</char>
481
+ <char style="w" strong="H0430">God</char>
482
+ <char style="w" strong="H3117">had</char>
483
+ <char style="w" strong="H3615">finished</char>
484
+ <char style="w" strong="H3605">the</char>
485
+ <char style="w" strong="H4399">work</char>
486
+ <char style="w" strong="H3117">He</char>
487
+ <char style="w" strong="H3117">had</char>
488
+ <char style="w" strong="H3615">been</char>
489
+ <char style="w" strong="H6213">doing</char>;
490
+ <char style="w" strong="H6213">so</char>
491
+ <char style="w" strong="H3117">on</char>
492
+ <char style="w" strong="H3605">that</char>
493
+ <char style="w" strong="H3117">day</char>
494
+ <char style="w" strong="H3117">He</char>
495
+ <char style="w" strong="H7673">rested</char>
496
+ <char style="w" strong="H3117">from</char>
497
+ <char style="w" strong="H3605">all</char>
498
+ <char style="w" strong="H3605">His</char>
499
+ <char style="w" strong="H4399">work</char>.
500
+ <note style="f" caller="+">
501
+ <char style="fr"/>
502
+ <char style="ft">2:2 </char>
503
+ <char style="ft">Cited in Hebrews 4:4</char>
504
+ </note>
505
+ <verse eid="GEN 2:2"/>
506
+ </para>
507
+ </usx>
508
508
  `;
509
509
  const tree = parser.parse(usx);
510
510
  expect(tree).toEqual({
@@ -555,66 +555,66 @@ describe('USXParser', () => {
555
555
  });
556
556
  });
557
557
  it('should ignore introduction paragraphs', () => {
558
- const usx = `
559
- <usx version="3.0">
560
- <book code="GEN" style="id">- Berean Study Bible</book>
561
- <para style="h">Genesis</para>
562
- <para style="toc2">Genesis</para>
563
- <para style="toc1">Genesis</para>
564
- <para style="mt1">Genesis</para>
565
- <chapter number="2" style="c" sid="GEN 2"/>
566
- <para style="s1">The Seventh Day</para>
567
- <para style="r">(Exodus 16:22–30; Hebrews 4:1–11)</para>
568
- <para style="ip">This is an introduction paragraph.</para>
569
- <para style="m">
570
- <verse number="1" style="v" sid="GEN 2:1"/>
571
- <char style="w" strong="H3541">Thus</char>
572
- <char style="w" strong="H3605">the</char>
573
- <char style="w" strong="H8064">heavens</char>
574
- <char style="w" strong="H8064">and</char>
575
- <char style="w" strong="H3605">the</char>
576
- <char style="w" strong="H8064">earth</char>
577
- <char style="w" strong="H8064">were</char>
578
- <char style="w" strong="H3615">completed</char>
579
- <char style="w" strong="H6635">in</char>
580
- <char style="w" strong="H3605">all</char>
581
- <char style="w" strong="H3605">their</char>
582
- <char style="w" strong="H6635">vast</char>
583
- <char style="w" strong="H6635">array</char>.
584
- <verse eid="GEN 2:1"/>
585
- <verse number="2" style="v" sid="GEN 2:2"/>
586
- <char style="w" strong="H3117">And</char>
587
- <char style="w" strong="H3117">by</char>
588
- <char style="w" strong="H3605">the</char>
589
- <char style="w" strong="H7637">seventh</char>
590
- <char style="w" strong="H3117">day</char>
591
- <char style="w" strong="H0430">God</char>
592
- <char style="w" strong="H3117">had</char>
593
- <char style="w" strong="H3615">finished</char>
594
- <char style="w" strong="H3605">the</char>
595
- <char style="w" strong="H4399">work</char>
596
- <char style="w" strong="H3117">He</char>
597
- <char style="w" strong="H3117">had</char>
598
- <char style="w" strong="H3615">been</char>
599
- <char style="w" strong="H6213">doing</char>;
600
- <char style="w" strong="H6213">so</char>
601
- <char style="w" strong="H3117">on</char>
602
- <char style="w" strong="H3605">that</char>
603
- <char style="w" strong="H3117">day</char>
604
- <char style="w" strong="H3117">He</char>
605
- <char style="w" strong="H7673">rested</char>
606
- <char style="w" strong="H3117">from</char>
607
- <char style="w" strong="H3605">all</char>
608
- <char style="w" strong="H3605">His</char>
609
- <char style="w" strong="H4399">work</char>.
610
- <note style="f" caller="+">
611
- <char style="fr"/>
612
- <char style="ft">2:2 </char>
613
- <char style="ft">Cited in Hebrews 4:4</char>
614
- </note>
615
- <verse eid="GEN 2:2"/>
616
- </para>
617
- </usx>
558
+ const usx = `
559
+ <usx version="3.0">
560
+ <book code="GEN" style="id">- Berean Study Bible</book>
561
+ <para style="h">Genesis</para>
562
+ <para style="toc2">Genesis</para>
563
+ <para style="toc1">Genesis</para>
564
+ <para style="mt1">Genesis</para>
565
+ <chapter number="2" style="c" sid="GEN 2"/>
566
+ <para style="s1">The Seventh Day</para>
567
+ <para style="r">(Exodus 16:22–30; Hebrews 4:1–11)</para>
568
+ <para style="ip">This is an introduction paragraph.</para>
569
+ <para style="m">
570
+ <verse number="1" style="v" sid="GEN 2:1"/>
571
+ <char style="w" strong="H3541">Thus</char>
572
+ <char style="w" strong="H3605">the</char>
573
+ <char style="w" strong="H8064">heavens</char>
574
+ <char style="w" strong="H8064">and</char>
575
+ <char style="w" strong="H3605">the</char>
576
+ <char style="w" strong="H8064">earth</char>
577
+ <char style="w" strong="H8064">were</char>
578
+ <char style="w" strong="H3615">completed</char>
579
+ <char style="w" strong="H6635">in</char>
580
+ <char style="w" strong="H3605">all</char>
581
+ <char style="w" strong="H3605">their</char>
582
+ <char style="w" strong="H6635">vast</char>
583
+ <char style="w" strong="H6635">array</char>.
584
+ <verse eid="GEN 2:1"/>
585
+ <verse number="2" style="v" sid="GEN 2:2"/>
586
+ <char style="w" strong="H3117">And</char>
587
+ <char style="w" strong="H3117">by</char>
588
+ <char style="w" strong="H3605">the</char>
589
+ <char style="w" strong="H7637">seventh</char>
590
+ <char style="w" strong="H3117">day</char>
591
+ <char style="w" strong="H0430">God</char>
592
+ <char style="w" strong="H3117">had</char>
593
+ <char style="w" strong="H3615">finished</char>
594
+ <char style="w" strong="H3605">the</char>
595
+ <char style="w" strong="H4399">work</char>
596
+ <char style="w" strong="H3117">He</char>
597
+ <char style="w" strong="H3117">had</char>
598
+ <char style="w" strong="H3615">been</char>
599
+ <char style="w" strong="H6213">doing</char>;
600
+ <char style="w" strong="H6213">so</char>
601
+ <char style="w" strong="H3117">on</char>
602
+ <char style="w" strong="H3605">that</char>
603
+ <char style="w" strong="H3117">day</char>
604
+ <char style="w" strong="H3117">He</char>
605
+ <char style="w" strong="H7673">rested</char>
606
+ <char style="w" strong="H3117">from</char>
607
+ <char style="w" strong="H3605">all</char>
608
+ <char style="w" strong="H3605">His</char>
609
+ <char style="w" strong="H4399">work</char>.
610
+ <note style="f" caller="+">
611
+ <char style="fr"/>
612
+ <char style="ft">2:2 </char>
613
+ <char style="ft">Cited in Hebrews 4:4</char>
614
+ </note>
615
+ <verse eid="GEN 2:2"/>
616
+ </para>
617
+ </usx>
618
618
  `;
619
619
  const tree = parser.parse(usx);
620
620
  expect(tree).toEqual({
@@ -665,44 +665,44 @@ describe('USXParser', () => {
665
665
  });
666
666
  });
667
667
  it('should suppport parsing descriptive titles', () => {
668
- const usx = `
669
- <usx version="3.0">
670
- <book code="PSA" style="id">- Berean Study Bible</book>
671
- <chapter number="6" style="c" sid="PSA 6"/>
672
- <para style="s1">Do Not Rebuke Me in Your Anger</para>
673
- <para style="r">(Psalms 38:1–22)</para>
674
- <para style="d">
675
- For the choirmaster. With stringed instruments, according to Sheminith.
676
- <note style="f" caller="+">
677
- <char style="fr"/>
678
- <char style="ft">6:0 </char>
679
- <char style="ft">Sheminith is probably a musical term; here and in 1 Chronicles 15:21 and Psalms 12:1.</char>
680
- </note>
681
- A Psalm of David.
682
- </para>
683
- <para style="b"/>
684
- <para style="q1">
685
- <verse number="1" style="v" sid="PSA 6:1"/>
686
- <char style="w" strong="H3069">O</char>
687
- <char style="w" strong="H3068">LORD</char>,
688
- <char style="w" strong="H6213">do</char>
689
- <char style="w" strong="H1732">not</char>
690
- <char style="w" strong="H1606">rebuke</char>
691
- <char style="w" strong="H5921">me</char>
692
- <char style="w" strong="H5921">in</char>
693
- <char style="w" strong="H5921">Your</char>
694
- <char style="w" strong="H0639">anger</char>
695
- </para>
696
- <para style="q2">
697
- <char style="w" strong="H0176">or</char>
698
- <char style="w" strong="H4148">discipline</char>
699
- <char style="w" strong="H5921">me</char>
700
- <char style="w" strong="H5921">in</char>
701
- <char style="w" strong="H5921">Your</char>
702
- <char style="w" strong="H2534">wrath</char>.
703
- <verse eid="PSA 6:1"/>
704
- </para>
705
- </usx>
668
+ const usx = `
669
+ <usx version="3.0">
670
+ <book code="PSA" style="id">- Berean Study Bible</book>
671
+ <chapter number="6" style="c" sid="PSA 6"/>
672
+ <para style="s1">Do Not Rebuke Me in Your Anger</para>
673
+ <para style="r">(Psalms 38:1–22)</para>
674
+ <para style="d">
675
+ For the choirmaster. With stringed instruments, according to Sheminith.
676
+ <note style="f" caller="+">
677
+ <char style="fr"/>
678
+ <char style="ft">6:0 </char>
679
+ <char style="ft">Sheminith is probably a musical term; here and in 1 Chronicles 15:21 and Psalms 12:1.</char>
680
+ </note>
681
+ A Psalm of David.
682
+ </para>
683
+ <para style="b"/>
684
+ <para style="q1">
685
+ <verse number="1" style="v" sid="PSA 6:1"/>
686
+ <char style="w" strong="H3069">O</char>
687
+ <char style="w" strong="H3068">LORD</char>,
688
+ <char style="w" strong="H6213">do</char>
689
+ <char style="w" strong="H1732">not</char>
690
+ <char style="w" strong="H1606">rebuke</char>
691
+ <char style="w" strong="H5921">me</char>
692
+ <char style="w" strong="H5921">in</char>
693
+ <char style="w" strong="H5921">Your</char>
694
+ <char style="w" strong="H0639">anger</char>
695
+ </para>
696
+ <para style="q2">
697
+ <char style="w" strong="H0176">or</char>
698
+ <char style="w" strong="H4148">discipline</char>
699
+ <char style="w" strong="H5921">me</char>
700
+ <char style="w" strong="H5921">in</char>
701
+ <char style="w" strong="H5921">Your</char>
702
+ <char style="w" strong="H2534">wrath</char>.
703
+ <verse eid="PSA 6:1"/>
704
+ </para>
705
+ </usx>
706
706
  `;
707
707
  const tree = parser.parse(usx);
708
708
  expect(tree).toEqual({
@@ -753,15 +753,15 @@ describe('USXParser', () => {
753
753
  });
754
754
  });
755
755
  it('should suppport verses in descriptive titles', () => {
756
- const usx = `
757
- <usx version="3.0">
758
- <book code="ZEC" style="id">- Berean Study Bible</book>
759
- <chapter number="12" style="c" sid="ZEC 12"/>
760
- <para style="s1">The Coming Deliverance of Jerusalem</para>
761
- <para style="d"><verse number="1" style="v" sid="ZEC 12:1"/><char style="w" strong="H1697">This</char> <char style="w" strong="H3068">is</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H4853">burden</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H1697">word</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H3068">LORD</char> <char style="w" strong="H5921">concerning</char> <char style="w" strong="H3478">Israel</char>.</para>
762
- <para style="b"/>
763
- <para style="m"><char style="w" strong="H1697">Thus</char> <char style="w" strong="H5002">declares</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H3068">LORD</char>, <char style="w" strong="H3068">who</char> <char style="w" strong="H5186">stretches</char> <char style="w" strong="H5186">out</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H8064">heavens</char> <char style="w" strong="H3478">and</char> <char style="w" strong="H3245">lays</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H3245">foundation</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H8064">earth</char>, <char style="w" strong="H3068">who</char> <char style="w" strong="H3335">forms</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H7307">spirit</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H0376">man</char> <char style="w" strong="H7130">within</char> <char style="w" strong="H5921">him</char>:<verse eid="ZEC 12:1"/></para>
764
- </usx>
756
+ const usx = `
757
+ <usx version="3.0">
758
+ <book code="ZEC" style="id">- Berean Study Bible</book>
759
+ <chapter number="12" style="c" sid="ZEC 12"/>
760
+ <para style="s1">The Coming Deliverance of Jerusalem</para>
761
+ <para style="d"><verse number="1" style="v" sid="ZEC 12:1"/><char style="w" strong="H1697">This</char> <char style="w" strong="H3068">is</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H4853">burden</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H1697">word</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H3068">LORD</char> <char style="w" strong="H5921">concerning</char> <char style="w" strong="H3478">Israel</char>.</para>
762
+ <para style="b"/>
763
+ <para style="m"><char style="w" strong="H1697">Thus</char> <char style="w" strong="H5002">declares</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H3068">LORD</char>, <char style="w" strong="H3068">who</char> <char style="w" strong="H5186">stretches</char> <char style="w" strong="H5186">out</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H8064">heavens</char> <char style="w" strong="H3478">and</char> <char style="w" strong="H3245">lays</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H3245">foundation</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H8064">earth</char>, <char style="w" strong="H3068">who</char> <char style="w" strong="H3335">forms</char> <char style="w" strong="H5002">the</char> <char style="w" strong="H7307">spirit</char> <char style="w" strong="H3068">of</char> <char style="w" strong="H0376">man</char> <char style="w" strong="H7130">within</char> <char style="w" strong="H5921">him</char>:<verse eid="ZEC 12:1"/></para>
764
+ </usx>
765
765
  `;
766
766
  const tree = parser.parse(usx);
767
767
  expect(tree).toEqual({
@@ -797,38 +797,38 @@ describe('USXParser', () => {
797
797
  });
798
798
  });
799
799
  it('should ignore cross references', () => {
800
- const usx = `
801
- <usx version="3.0">
802
- <book code="MAT" style="id">- World English Bible</book>
803
- <chapter number="5" style="c" sid="MAT 5"/>
804
- <para style="q1">
805
- <verse number="3" style="v" sid="MAT 5:3"/>
806
- <char style="wj">
807
- “<char style="w" strong="G3107">Blessed</char>
808
- <char style="w" strong="G1510">are</char>
809
- <char style="w" strong="G3588">the</char>
810
- <char style="w" strong="G4434">poor</char>
811
- <char style="w" strong="G3588">in</char>
812
- <char style="w" strong="G4151">spirit</char>,
813
- </char>
814
- </para>
815
- <para style="q2">
816
- <char style="wj">
817
- <char style="w" strong="G3754">for</char>
818
- <char style="w" strong="G0846">theirs</char>
819
- <char style="w" strong="G1510">is</char>
820
- <char style="w" strong="G3588">the</char>
821
- <char style="w" strong="G0932">Kingdom</char>
822
- <char style="w" strong="G4151">of</char>
823
- <char style="w" strong="G3772">Heaven</char>.
824
- </char>
825
- <note style="x" caller="+">
826
- <char style="xo">5:3 </char>
827
- <char style="xt">Isaiah 57:15; 66:2</char>
828
- </note>
829
- <verse eid="MAT 5:3"/>
830
- </para>
831
- </usx>
800
+ const usx = `
801
+ <usx version="3.0">
802
+ <book code="MAT" style="id">- World English Bible</book>
803
+ <chapter number="5" style="c" sid="MAT 5"/>
804
+ <para style="q1">
805
+ <verse number="3" style="v" sid="MAT 5:3"/>
806
+ <char style="wj">
807
+ “<char style="w" strong="G3107">Blessed</char>
808
+ <char style="w" strong="G1510">are</char>
809
+ <char style="w" strong="G3588">the</char>
810
+ <char style="w" strong="G4434">poor</char>
811
+ <char style="w" strong="G3588">in</char>
812
+ <char style="w" strong="G4151">spirit</char>,
813
+ </char>
814
+ </para>
815
+ <para style="q2">
816
+ <char style="wj">
817
+ <char style="w" strong="G3754">for</char>
818
+ <char style="w" strong="G0846">theirs</char>
819
+ <char style="w" strong="G1510">is</char>
820
+ <char style="w" strong="G3588">the</char>
821
+ <char style="w" strong="G0932">Kingdom</char>
822
+ <char style="w" strong="G4151">of</char>
823
+ <char style="w" strong="G3772">Heaven</char>.
824
+ </char>
825
+ <note style="x" caller="+">
826
+ <char style="xo">5:3 </char>
827
+ <char style="xt">Isaiah 57:15; 66:2</char>
828
+ </note>
829
+ <verse eid="MAT 5:3"/>
830
+ </para>
831
+ </usx>
832
832
  `;
833
833
  const tree = parser.parse(usx);
834
834
  expect(tree).toEqual({
@@ -854,12 +854,12 @@ describe('USXParser', () => {
854
854
  });
855
855
  });
856
856
  it('should not ignore the node of a para element', () => {
857
- const usx = `
858
- <usx version="3.0">
859
- <book code="JHN" style="id">43-JHN-web.sfm World English Bible (WEB)</book>
860
- <chapter number="1" style="c" sid="JHN 1"/>
861
- <para style="p"><verse number="1" style="v" sid="JHN 1:1"/><char style="w" strong="G1722">In</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G0746">beginning</char> <char style="w" strong="G1510">was</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G3056">Word</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G3056">Word</char> <char style="w" strong="G1510">was</char> <char style="w" strong="G1722">with</char> <char style="w" strong="G2316">God</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G3056">Word</char> <char style="w" strong="G1510">was</char> <char style="w" strong="G2316">God</char>.<verse eid="JHN 1:1"/></para>
862
- </usx>
857
+ const usx = `
858
+ <usx version="3.0">
859
+ <book code="JHN" style="id">43-JHN-web.sfm World English Bible (WEB)</book>
860
+ <chapter number="1" style="c" sid="JHN 1"/>
861
+ <para style="p"><verse number="1" style="v" sid="JHN 1:1"/><char style="w" strong="G1722">In</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G0746">beginning</char> <char style="w" strong="G1510">was</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G3056">Word</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G3056">Word</char> <char style="w" strong="G1510">was</char> <char style="w" strong="G1722">with</char> <char style="w" strong="G2316">God</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G1722">the</char> <char style="w" strong="G3056">Word</char> <char style="w" strong="G1510">was</char> <char style="w" strong="G2316">God</char>.<verse eid="JHN 1:1"/></para>
862
+ </usx>
863
863
  `;
864
864
  const tree = parser.parse(usx);
865
865
  expect(tree).toEqual({
@@ -884,13 +884,13 @@ describe('USXParser', () => {
884
884
  });
885
885
  });
886
886
  it('should not ignore newlines between two poem paras', () => {
887
- const usx = `
888
- <usx version="3.0">
889
- <book code="MAT" style="id">- World English Bible</book>
890
- <chapter number="2" style="c" sid="MAT 2"/>
891
- <para style="q2"><verse number="18" style="v" sid="MAT 2:18"/><char style="w" strong="G2532">she</char> wouldn&#8217;t <char style="w" strong="G1510">be</char> <char style="w" strong="G3870">comforted</char>,</para>
892
- <para style="q2"><char style="w" strong="G3754">because</char> <char style="w" strong="G2532">they</char> <char style="w" strong="G1510">are</char> <char style="w" strong="G3756">no</char> <char style="w" strong="G4183">more</char>.&#8221;<note style="x" caller="+"><char style="xo">2:18 </char><char style="xt">Jeremiah 31:15</char></note><verse eid="MAT 2:18"/></para>
893
- </usx>
887
+ const usx = `
888
+ <usx version="3.0">
889
+ <book code="MAT" style="id">- World English Bible</book>
890
+ <chapter number="2" style="c" sid="MAT 2"/>
891
+ <para style="q2"><verse number="18" style="v" sid="MAT 2:18"/><char style="w" strong="G2532">she</char> wouldn&#8217;t <char style="w" strong="G1510">be</char> <char style="w" strong="G3870">comforted</char>,</para>
892
+ <para style="q2"><char style="w" strong="G3754">because</char> <char style="w" strong="G2532">they</char> <char style="w" strong="G1510">are</char> <char style="w" strong="G3756">no</char> <char style="w" strong="G4183">more</char>.&#8221;<note style="x" caller="+"><char style="xo">2:18 </char><char style="xt">Jeremiah 31:15</char></note><verse eid="MAT 2:18"/></para>
893
+ </usx>
894
894
  `;
895
895
  const tree = parser.parse(usx);
896
896
  expect(tree).toEqual({
@@ -922,38 +922,38 @@ describe('USXParser', () => {
922
922
  });
923
923
  });
924
924
  it('should support Words of Jesus', () => {
925
- const usx = `
926
- <usx version="3.0">
927
- <book code="MAT" style="id">- World English Bible</book>
928
- <chapter number="5" style="c" sid="MAT 5"/>
929
- <para style="q1">
930
- <verse number="3" style="v" sid="MAT 5:3"/>
931
- <char style="wj">
932
- “<char style="w" strong="G3107">Blessed</char>
933
- <char style="w" strong="G1510">are</char>
934
- <char style="w" strong="G3588">the</char>
935
- <char style="w" strong="G4434">poor</char>
936
- <char style="w" strong="G3588">in</char>
937
- <char style="w" strong="G4151">spirit</char>,
938
- </char>
939
- </para>
940
- <para style="q2">
941
- <char style="wj">
942
- <char style="w" strong="G3754">for</char>
943
- <char style="w" strong="G0846">theirs</char>
944
- <char style="w" strong="G1510">is</char>
945
- <char style="w" strong="G3588">the</char>
946
- <char style="w" strong="G0932">Kingdom</char>
947
- <char style="w" strong="G4151">of</char>
948
- <char style="w" strong="G3772">Heaven</char>.
949
- </char>
950
- <note style="x" caller="+">
951
- <char style="xo">5:3 </char>
952
- <char style="xt">Isaiah 57:15; 66:2</char>
953
- </note>
954
- <verse eid="MAT 5:3"/>
955
- </para>
956
- </usx>
925
+ const usx = `
926
+ <usx version="3.0">
927
+ <book code="MAT" style="id">- World English Bible</book>
928
+ <chapter number="5" style="c" sid="MAT 5"/>
929
+ <para style="q1">
930
+ <verse number="3" style="v" sid="MAT 5:3"/>
931
+ <char style="wj">
932
+ “<char style="w" strong="G3107">Blessed</char>
933
+ <char style="w" strong="G1510">are</char>
934
+ <char style="w" strong="G3588">the</char>
935
+ <char style="w" strong="G4434">poor</char>
936
+ <char style="w" strong="G3588">in</char>
937
+ <char style="w" strong="G4151">spirit</char>,
938
+ </char>
939
+ </para>
940
+ <para style="q2">
941
+ <char style="wj">
942
+ <char style="w" strong="G3754">for</char>
943
+ <char style="w" strong="G0846">theirs</char>
944
+ <char style="w" strong="G1510">is</char>
945
+ <char style="w" strong="G3588">the</char>
946
+ <char style="w" strong="G0932">Kingdom</char>
947
+ <char style="w" strong="G4151">of</char>
948
+ <char style="w" strong="G3772">Heaven</char>.
949
+ </char>
950
+ <note style="x" caller="+">
951
+ <char style="xo">5:3 </char>
952
+ <char style="xt">Isaiah 57:15; 66:2</char>
953
+ </note>
954
+ <verse eid="MAT 5:3"/>
955
+ </para>
956
+ </usx>
957
957
  `;
958
958
  const tree = parser.parse(usx);
959
959
  expect(tree).toEqual({
@@ -979,14 +979,14 @@ describe('USXParser', () => {
979
979
  });
980
980
  });
981
981
  it('should support verses that span multiple paragraphs', () => {
982
- const usx = `
983
- <usx version="3.0">
984
- <book code="GET" style="id">- BSB</book>
985
- <chapter number="26" style="c" sid="GEN 26"/>
986
- <para style="m"><verse number="8" style="v" sid="GEN 26:8"/><char style="w" strong="H3588">When</char> <char style="w" strong="H3327">Isaac</char> <char style="w" strong="H1961">had</char> <char style="w" strong="H1961">been</char> <char style="w" strong="H8033">there</char> <char style="w" strong="H1961">a</char> <char style="w" strong="H3117">long</char> <char style="w" strong="H3117">time</char>, <char style="w" strong="H0040">Abimelech</char> <char style="w" strong="H4428">king</char> <char style="w" strong="H4428">of</char> <char style="w" strong="H7200">the</char> <char style="w" strong="H6430">Philistines</char> <char style="w" strong="H7200">looked</char> <char style="w" strong="H8259">down</char> <char style="w" strong="H3117">from</char> <char style="w" strong="H7200">the</char> <char style="w" strong="H2474">window</char> <char style="w" strong="H4428">and</char> <char style="w" strong="H1961">was</char> <char style="w" strong="H8610">surprised</char> <char style="w" strong="H1961">to</char> <char style="w" strong="H7200">see</char> <char style="w" strong="H3327">Isaac</char> <char style="w" strong="H6711">caressing</char> <char style="w" strong="H7200">his</char> <char style="w" strong="H0802">wife</char> <char style="w" strong="H7259">Rebekah</char>.<verse eid="GEN 26:8"/> <verse number="9" style="v" sid="GEN 26:9"/><char style="w" strong="H0040">Abimelech</char> <char style="w" strong="H3327">sent</char> <char style="w" strong="H3588">for</char> <char style="w" strong="H3327">Isaac</char> <char style="w" strong="H3327">and</char> <char style="w" strong="H7121">said</char>, &#8220;<char style="w" strong="H6435">So</char> <char style="w" strong="H1931">she</char> <char style="w" strong="H1931">is</char> <char style="w" strong="H2088">really</char> <char style="w" strong="H5921">your</char> <char style="w" strong="H0802">wife</char>! <char style="w" strong="H3588">How</char> <char style="w" strong="H3201">could</char> <char style="w" strong="H3588">you</char> <char style="w" strong="H0559">say</char>, &#8216;<char style="w" strong="H1931">She</char> <char style="w" strong="H1931">is</char> <char style="w" strong="H5921">my</char> sister&#8217;?&#8221;</para>
987
- <para style="b"/>
988
- <para style="m"><char style="w" strong="H3327">Isaac</char> <char style="w" strong="H0559">replied</char>, &#8220;<char style="w" strong="H3588">Because</char> <char style="w" strong="H3588">I</char> <char style="w" strong="H0559">thought</char> <char style="w" strong="H3588">I</char> <char style="w" strong="H6435">might</char> <char style="w" strong="H4191">die</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">account</char> <char style="w" strong="H5921">of</char> <char style="w" strong="H5921">her</char>.&#8221;<verse eid="GEN 26:9"/></para>
989
- </usx>
982
+ const usx = `
983
+ <usx version="3.0">
984
+ <book code="GET" style="id">- BSB</book>
985
+ <chapter number="26" style="c" sid="GEN 26"/>
986
+ <para style="m"><verse number="8" style="v" sid="GEN 26:8"/><char style="w" strong="H3588">When</char> <char style="w" strong="H3327">Isaac</char> <char style="w" strong="H1961">had</char> <char style="w" strong="H1961">been</char> <char style="w" strong="H8033">there</char> <char style="w" strong="H1961">a</char> <char style="w" strong="H3117">long</char> <char style="w" strong="H3117">time</char>, <char style="w" strong="H0040">Abimelech</char> <char style="w" strong="H4428">king</char> <char style="w" strong="H4428">of</char> <char style="w" strong="H7200">the</char> <char style="w" strong="H6430">Philistines</char> <char style="w" strong="H7200">looked</char> <char style="w" strong="H8259">down</char> <char style="w" strong="H3117">from</char> <char style="w" strong="H7200">the</char> <char style="w" strong="H2474">window</char> <char style="w" strong="H4428">and</char> <char style="w" strong="H1961">was</char> <char style="w" strong="H8610">surprised</char> <char style="w" strong="H1961">to</char> <char style="w" strong="H7200">see</char> <char style="w" strong="H3327">Isaac</char> <char style="w" strong="H6711">caressing</char> <char style="w" strong="H7200">his</char> <char style="w" strong="H0802">wife</char> <char style="w" strong="H7259">Rebekah</char>.<verse eid="GEN 26:8"/> <verse number="9" style="v" sid="GEN 26:9"/><char style="w" strong="H0040">Abimelech</char> <char style="w" strong="H3327">sent</char> <char style="w" strong="H3588">for</char> <char style="w" strong="H3327">Isaac</char> <char style="w" strong="H3327">and</char> <char style="w" strong="H7121">said</char>, &#8220;<char style="w" strong="H6435">So</char> <char style="w" strong="H1931">she</char> <char style="w" strong="H1931">is</char> <char style="w" strong="H2088">really</char> <char style="w" strong="H5921">your</char> <char style="w" strong="H0802">wife</char>! <char style="w" strong="H3588">How</char> <char style="w" strong="H3201">could</char> <char style="w" strong="H3588">you</char> <char style="w" strong="H0559">say</char>, &#8216;<char style="w" strong="H1931">She</char> <char style="w" strong="H1931">is</char> <char style="w" strong="H5921">my</char> sister&#8217;?&#8221;</para>
987
+ <para style="b"/>
988
+ <para style="m"><char style="w" strong="H3327">Isaac</char> <char style="w" strong="H0559">replied</char>, &#8220;<char style="w" strong="H3588">Because</char> <char style="w" strong="H3588">I</char> <char style="w" strong="H0559">thought</char> <char style="w" strong="H3588">I</char> <char style="w" strong="H6435">might</char> <char style="w" strong="H4191">die</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">account</char> <char style="w" strong="H5921">of</char> <char style="w" strong="H5921">her</char>.&#8221;<verse eid="GEN 26:9"/></para>
989
+ </usx>
990
990
  `;
991
991
  const tree = parser.parse(usx);
992
992
  expect(tree).toEqual({
@@ -1022,14 +1022,14 @@ describe('USXParser', () => {
1022
1022
  });
1023
1023
  });
1024
1024
  it('should support verses that are contained in the words of Jesus', () => {
1025
- const usx = `
1026
- <usx version="3.0">
1027
- <book code="MAT" style="id">- BSB</book>
1028
- <chapter number="17" style="c" sid="MAT 17"/>
1029
- <para style="p"><verse number="26" style="v" sid="MAT 17:26"/><char style="w" strong="G4074">Peter</char> <char style="w" strong="G3004">said</char> <char style="w" strong="G3004">to</char> <char style="w" strong="G3588">him</char>, &#8220;<char style="w" strong="G3588">From</char> <char style="w" strong="G3581">strangers</char>.&#8221;</para>
1030
- <para style="p"><char style="w" strong="G2424">Jesus</char> <char style="w" strong="G3004">said</char> <char style="w" strong="G3004">to</char> <char style="w" strong="G3588">him</char>, <char style="wj">&#8220;<char style="w" strong="G1161">Therefore</char> <char style="w" strong="G1161">the</char> <char style="w" strong="G5207">children</char> <char style="w" strong="G1510">are</char> <char style="w" strong="G1658">exempt</char>. </char><verse eid="MAT 17:26"/> <verse number="27" style="v" sid="MAT 17:27"/><char style="wj"><char style="w" strong="G1161">But</char>, <char style="w" strong="G3361">lest</char> <char style="w" strong="G2532">we</char> <char style="w" strong="G4624">cause</char> <char style="w" strong="G3588">them</char> <char style="w" strong="G1519">to</char> <char style="w" strong="G4624">stumble</char>, <char style="w" strong="G4198">go</char> <char style="w" strong="G1519">to</char> <char style="w" strong="G2532">the</char> <char style="w" strong="G2281">sea</char>, <char style="w" strong="G2532">cast</char> <char style="w" strong="G2532">a</char> <char style="w" strong="G0044">hook</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G2983">take</char> <char style="w" strong="G1519">up</char> <char style="w" strong="G2532">the</char> <char style="w" strong="G4413">first</char> <char style="w" strong="G2486">fish</char> <char style="w" strong="G2443">that</char> <char style="w" strong="G2532">comes</char> <char style="w" strong="G1519">up</char>. <char style="w" strong="G1161">When</char> <char style="w" strong="G4771">you</char> <char style="w" strong="G2532">have</char> <char style="w" strong="G0455">opened</char> <char style="w" strong="G1325">its</char> <char style="w" strong="G4750">mouth</char>, <char style="w" strong="G4771">you</char> <char style="w" strong="G2532">will</char> <char style="w" strong="G2147">find</char> <char style="w" strong="G2532">a</char> stater <char style="w" strong="G1406">coin</char>.</char><note style="f" caller="+"><char style="fr">17:27 </char><char style="ft">A stater is a silver coin equivalent to four Attic or two Alexandrian drachmas, or a Jewish shekel: just exactly enough to cover the half-shekel temple tax for two people. A shekel is about 10 grams or about 0.35 ounces, usually in the form of a silver coin.</char></note> <char style="wj"><char style="w" strong="G2983">Take</char> <char style="w" strong="G2443">that</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G1325">give</char> <char style="w" strong="G2532">it</char> <char style="w" strong="G1519">to</char> <char style="w" strong="G3588">them</char> <char style="w" strong="G1519">for</char> <char style="w" strong="G1325">me</char> <char style="w" strong="G2532">and</char> <char style="w" strong="G4771">you</char>.&#8221;</char><verse eid="MAT 17:27"/></para>
1031
- <chapter eid="MAT 17"/>
1032
- </usx>
1025
+ const usx = `
1026
+ <usx version="3.0">
1027
+ <book code="MAT" style="id">- BSB</book>
1028
+ <chapter number="17" style="c" sid="MAT 17"/>
1029
+ <para style="p"><verse number="26" style="v" sid="MAT 17:26"/><char style="w" strong="G4074">Peter</char> <char style="w" strong="G3004">said</char> <char style="w" strong="G3004">to</char> <char style="w" strong="G3588">him</char>, &#8220;<char style="w" strong="G3588">From</char> <char style="w" strong="G3581">strangers</char>.&#8221;</para>
1030
+ <para style="p"><char style="w" strong="G2424">Jesus</char> <char style="w" strong="G3004">said</char> <char style="w" strong="G3004">to</char> <char style="w" strong="G3588">him</char>, <char style="wj">&#8220;<char style="w" strong="G1161">Therefore</char> <char style="w" strong="G1161">the</char> <char style="w" strong="G5207">children</char> <char style="w" strong="G1510">are</char> <char style="w" strong="G1658">exempt</char>. </char><verse eid="MAT 17:26"/> <verse number="27" style="v" sid="MAT 17:27"/><char style="wj"><char style="w" strong="G1161">But</char>, <char style="w" strong="G3361">lest</char> <char style="w" strong="G2532">we</char> <char style="w" strong="G4624">cause</char> <char style="w" strong="G3588">them</char> <char style="w" strong="G1519">to</char> <char style="w" strong="G4624">stumble</char>, <char style="w" strong="G4198">go</char> <char style="w" strong="G1519">to</char> <char style="w" strong="G2532">the</char> <char style="w" strong="G2281">sea</char>, <char style="w" strong="G2532">cast</char> <char style="w" strong="G2532">a</char> <char style="w" strong="G0044">hook</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G2983">take</char> <char style="w" strong="G1519">up</char> <char style="w" strong="G2532">the</char> <char style="w" strong="G4413">first</char> <char style="w" strong="G2486">fish</char> <char style="w" strong="G2443">that</char> <char style="w" strong="G2532">comes</char> <char style="w" strong="G1519">up</char>. <char style="w" strong="G1161">When</char> <char style="w" strong="G4771">you</char> <char style="w" strong="G2532">have</char> <char style="w" strong="G0455">opened</char> <char style="w" strong="G1325">its</char> <char style="w" strong="G4750">mouth</char>, <char style="w" strong="G4771">you</char> <char style="w" strong="G2532">will</char> <char style="w" strong="G2147">find</char> <char style="w" strong="G2532">a</char> stater <char style="w" strong="G1406">coin</char>.</char><note style="f" caller="+"><char style="fr">17:27 </char><char style="ft">A stater is a silver coin equivalent to four Attic or two Alexandrian drachmas, or a Jewish shekel: just exactly enough to cover the half-shekel temple tax for two people. A shekel is about 10 grams or about 0.35 ounces, usually in the form of a silver coin.</char></note> <char style="wj"><char style="w" strong="G2983">Take</char> <char style="w" strong="G2443">that</char>, <char style="w" strong="G2532">and</char> <char style="w" strong="G1325">give</char> <char style="w" strong="G2532">it</char> <char style="w" strong="G1519">to</char> <char style="w" strong="G3588">them</char> <char style="w" strong="G1519">for</char> <char style="w" strong="G1325">me</char> <char style="w" strong="G2532">and</char> <char style="w" strong="G4771">you</char>.&#8221;</char><verse eid="MAT 17:27"/></para>
1031
+ <chapter eid="MAT 17"/>
1032
+ </usx>
1033
1033
  `;
1034
1034
  const tree = parser.parse(usx);
1035
1035
  expect(tree).toEqual({
@@ -1085,16 +1085,16 @@ describe('USXParser', () => {
1085
1085
  });
1086
1086
  });
1087
1087
  it('should support multiple verses within a paragraph', () => {
1088
- const usx = `
1089
- <usx>
1090
- <book code="ZEC" style="id">- BSB</book>
1091
- <chapter number="12" style="c" sid="ZEC 17"/>
1092
- <para style="b"/>
1093
- <para style="m"><verse number="10" style="v" sid="ZEC 12:10"/><char style="w" strong="H1732">Then</char> <char style="w" strong="H5921">I</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H8210">pour</char> <char style="w" strong="H8210">out</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">David</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">the</char> <char style="w" strong="H3427">people</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H3389">Jerusalem</char> <char style="w" strong="H5921">a</char> <char style="w" strong="H7307">spirit</char> <note style="f" caller="+"><char style="fr"/><char style="ft">12:10 </char><char style="ft">Or the Spirit</char></note> <char style="w" strong="H1004">of</char> <char style="w" strong="H2580">grace</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H8605">prayer</char>, <char style="w" strong="H1004">and</char> <char style="w" strong="H5921">they</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H5027">look</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">Me</char>,<note style="f" caller="+"><char style="fr"/><char style="ft">12:10 </char><char style="ft">Or to Me</char></note> <char style="w" strong="H5921">the</char> <char style="w" strong="H3173">One</char> <char style="w" strong="H5921">they</char> <char style="w" strong="H1004">have</char> <char style="w" strong="H1856">pierced</char>.<note style="f" caller="+"><char style="fr"/><char style="ft">12:10 </char><char style="ft">Cited in John 19:37</char></note> <char style="w" strong="H5921">They</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H5594">mourn</char> <char style="w" strong="H5921">for</char> <char style="w" strong="H5921">Him</char> <char style="w" strong="H3389">as</char> <char style="w" strong="H3173">one</char> <char style="w" strong="H5594">mourns</char> <char style="w" strong="H5921">for</char> <char style="w" strong="H7307">an</char> <char style="w" strong="H3173">only</char> <char style="w" strong="H3173">child</char>, <char style="w" strong="H1004">and</char> <char style="w" strong="H6087">grieve</char> <char style="w" strong="H4843">bitterly</char> <char style="w" strong="H5921">for</char> <char style="w" strong="H5921">Him</char> <char style="w" strong="H3389">as</char> <char style="w" strong="H3173">one</char> grieves <char style="w" strong="H5921">for</char> <char style="w" strong="H5921">a</char> <char style="w" strong="H1060">firstborn</char> <char style="w" strong="H3173">son</char>.<verse eid="ZEC 12:10"/></para>
1094
- <para style="b"/>
1095
- <para style="m"><verse number="11" style="v" sid="ZEC 12:11"/><char style="w" strong="H3117">On</char> <char style="w" strong="H3117">that</char> <char style="w" strong="H3117">day</char> <char style="w" strong="H3117">the</char> <char style="w" strong="H4553">wailing</char> <char style="w" strong="H3117">in</char> <char style="w" strong="H3389">Jerusalem</char> <char style="w" strong="H3389">will</char> <char style="w" strong="H3117">be</char> <char style="w" strong="H3117">as</char> <char style="w" strong="H1431">great</char> <char style="w" strong="H3117">as</char> <char style="w" strong="H3117">the</char> <char style="w" strong="H4553">wailing</char> <char style="w" strong="H3117">of</char> Hadad-rimmon <char style="w" strong="H3117">in</char> <char style="w" strong="H3117">the</char> <char style="w" strong="H1237">plain</char> <char style="w" strong="H3117">of</char> <char style="w" strong="H4023">Megiddo</char>.<verse eid="ZEC 12:11"/> <verse number="12" style="v" sid="ZEC 12:12"/><char style="w" strong="H1732">The</char> <char style="w" strong="H4940">land</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H5594">mourn</char>, <char style="w" strong="H0376">each</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">on</char> <char style="w" strong="H3605">its</char> <char style="w" strong="H1961">own</char>: <char style="w" strong="H1732">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">David</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H1732">their</char> <char style="w" strong="H0802">wives</char>, <char style="w" strong="H1732">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H5416">Nathan</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H1732">their</char> <char style="w" strong="H0802">wives</char>,<verse eid="ZEC 12:12"/> <verse number="13" style="v" sid="ZEC 12:13"/><char style="w" strong="H1004">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1004">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H3878">Levi</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H3605">their</char> <char style="w" strong="H0802">wives</char>, <char style="w" strong="H1004">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H8097">Shimei</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H3605">their</char> <char style="w" strong="H0802">wives</char>,<verse eid="ZEC 12:13"/> <verse number="14" style="v" sid="ZEC 12:14"/><char style="w" strong="H3605">and</char> <char style="w" strong="H3605">all</char> <char style="w" strong="H3605">the</char> <char style="w" strong="H7604">remaining</char> <char style="w" strong="H4940">clans</char> <char style="w" strong="H3605">and</char> <char style="w" strong="H3605">their</char> <char style="w" strong="H0802">wives</char>.<verse eid="ZEC 12:14"/></para>
1096
- <chapter eid="ZEC 12"/>
1097
- </usx>
1088
+ const usx = `
1089
+ <usx>
1090
+ <book code="ZEC" style="id">- BSB</book>
1091
+ <chapter number="12" style="c" sid="ZEC 17"/>
1092
+ <para style="b"/>
1093
+ <para style="m"><verse number="10" style="v" sid="ZEC 12:10"/><char style="w" strong="H1732">Then</char> <char style="w" strong="H5921">I</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H8210">pour</char> <char style="w" strong="H8210">out</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">David</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">the</char> <char style="w" strong="H3427">people</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H3389">Jerusalem</char> <char style="w" strong="H5921">a</char> <char style="w" strong="H7307">spirit</char> <note style="f" caller="+"><char style="fr"/><char style="ft">12:10 </char><char style="ft">Or the Spirit</char></note> <char style="w" strong="H1004">of</char> <char style="w" strong="H2580">grace</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H8605">prayer</char>, <char style="w" strong="H1004">and</char> <char style="w" strong="H5921">they</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H5027">look</char> <char style="w" strong="H5921">on</char> <char style="w" strong="H5921">Me</char>,<note style="f" caller="+"><char style="fr"/><char style="ft">12:10 </char><char style="ft">Or to Me</char></note> <char style="w" strong="H5921">the</char> <char style="w" strong="H3173">One</char> <char style="w" strong="H5921">they</char> <char style="w" strong="H1004">have</char> <char style="w" strong="H1856">pierced</char>.<note style="f" caller="+"><char style="fr"/><char style="ft">12:10 </char><char style="ft">Cited in John 19:37</char></note> <char style="w" strong="H5921">They</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H5594">mourn</char> <char style="w" strong="H5921">for</char> <char style="w" strong="H5921">Him</char> <char style="w" strong="H3389">as</char> <char style="w" strong="H3173">one</char> <char style="w" strong="H5594">mourns</char> <char style="w" strong="H5921">for</char> <char style="w" strong="H7307">an</char> <char style="w" strong="H3173">only</char> <char style="w" strong="H3173">child</char>, <char style="w" strong="H1004">and</char> <char style="w" strong="H6087">grieve</char> <char style="w" strong="H4843">bitterly</char> <char style="w" strong="H5921">for</char> <char style="w" strong="H5921">Him</char> <char style="w" strong="H3389">as</char> <char style="w" strong="H3173">one</char> grieves <char style="w" strong="H5921">for</char> <char style="w" strong="H5921">a</char> <char style="w" strong="H1060">firstborn</char> <char style="w" strong="H3173">son</char>.<verse eid="ZEC 12:10"/></para>
1094
+ <para style="b"/>
1095
+ <para style="m"><verse number="11" style="v" sid="ZEC 12:11"/><char style="w" strong="H3117">On</char> <char style="w" strong="H3117">that</char> <char style="w" strong="H3117">day</char> <char style="w" strong="H3117">the</char> <char style="w" strong="H4553">wailing</char> <char style="w" strong="H3117">in</char> <char style="w" strong="H3389">Jerusalem</char> <char style="w" strong="H3389">will</char> <char style="w" strong="H3117">be</char> <char style="w" strong="H3117">as</char> <char style="w" strong="H1431">great</char> <char style="w" strong="H3117">as</char> <char style="w" strong="H3117">the</char> <char style="w" strong="H4553">wailing</char> <char style="w" strong="H3117">of</char> Hadad-rimmon <char style="w" strong="H3117">in</char> <char style="w" strong="H3117">the</char> <char style="w" strong="H1237">plain</char> <char style="w" strong="H3117">of</char> <char style="w" strong="H4023">Megiddo</char>.<verse eid="ZEC 12:11"/> <verse number="12" style="v" sid="ZEC 12:12"/><char style="w" strong="H1732">The</char> <char style="w" strong="H4940">land</char> <char style="w" strong="H1004">will</char> <char style="w" strong="H5594">mourn</char>, <char style="w" strong="H0376">each</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">on</char> <char style="w" strong="H3605">its</char> <char style="w" strong="H1961">own</char>: <char style="w" strong="H1732">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">David</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H1732">their</char> <char style="w" strong="H0802">wives</char>, <char style="w" strong="H1732">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1732">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H5416">Nathan</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H1732">their</char> <char style="w" strong="H0802">wives</char>,<verse eid="ZEC 12:12"/> <verse number="13" style="v" sid="ZEC 12:13"/><char style="w" strong="H1004">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H1004">the</char> <char style="w" strong="H1004">house</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H3878">Levi</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H3605">their</char> <char style="w" strong="H0802">wives</char>, <char style="w" strong="H1004">the</char> <char style="w" strong="H4940">clan</char> <char style="w" strong="H1004">of</char> <char style="w" strong="H8097">Shimei</char> <char style="w" strong="H1004">and</char> <char style="w" strong="H3605">their</char> <char style="w" strong="H0802">wives</char>,<verse eid="ZEC 12:13"/> <verse number="14" style="v" sid="ZEC 12:14"/><char style="w" strong="H3605">and</char> <char style="w" strong="H3605">all</char> <char style="w" strong="H3605">the</char> <char style="w" strong="H7604">remaining</char> <char style="w" strong="H4940">clans</char> <char style="w" strong="H3605">and</char> <char style="w" strong="H3605">their</char> <char style="w" strong="H0802">wives</char>.<verse eid="ZEC 12:14"/></para>
1096
+ <chapter eid="ZEC 12"/>
1097
+ </usx>
1098
1098
  `;
1099
1099
  const tree = parser.parse(usx);
1100
1100
  expect(tree).toEqual({
@@ -1210,12 +1210,12 @@ describe('USXParser', () => {
1210
1210
  expect(tree).toMatchSnapshot();
1211
1211
  });
1212
1212
  it('should not ignore the first word of continuation on a verse', () => {
1213
- const usx = `
1214
- <usx version="3.0">
1215
- <book code="MAT" style="id">- World English Bible</book>
1216
- <chapter number="1" style="c" sid="MAT 1"/>
1217
- <para style="q1"><verse number="23" style="v" sid="MAT 1:23"/>&#8220;<char style="w" strong="G2400">Behold</char>, <char style="w" strong="G1722">the</char> <char style="w" strong="G3933">virgin</char> <char style="w" strong="G2532">shall</char> <char style="w" strong="G1510">be</char> <char style="w" strong="G3326">with</char> <char style="w" strong="G1064">child</char>,</para>
1218
- <para style="q2"><char style="w" strong="G2532">and</char> <char style="w" strong="G2532">shall</char> <char style="w" strong="G5088">give</char> <char style="w" strong="G5088">birth</char> <char style="w" strong="G2532">to</char> <char style="w" strong="G2192">a</char> <char style="w" strong="G5207">son</char>.</para>
1213
+ const usx = `
1214
+ <usx version="3.0">
1215
+ <book code="MAT" style="id">- World English Bible</book>
1216
+ <chapter number="1" style="c" sid="MAT 1"/>
1217
+ <para style="q1"><verse number="23" style="v" sid="MAT 1:23"/>&#8220;<char style="w" strong="G2400">Behold</char>, <char style="w" strong="G1722">the</char> <char style="w" strong="G3933">virgin</char> <char style="w" strong="G2532">shall</char> <char style="w" strong="G1510">be</char> <char style="w" strong="G3326">with</char> <char style="w" strong="G1064">child</char>,</para>
1218
+ <para style="q2"><char style="w" strong="G2532">and</char> <char style="w" strong="G2532">shall</char> <char style="w" strong="G5088">give</char> <char style="w" strong="G5088">birth</char> <char style="w" strong="G2532">to</char> <char style="w" strong="G2192">a</char> <char style="w" strong="G5207">son</char>.</para>
1219
1219
  </usx>`;
1220
1220
  const tree = parser.parse(usx);
1221
1221
  expect(tree).toEqual({