Skip to content

Commit 219c423

Browse files
committed
Merge pull request #1 from jasmingeorge/master
Parser implemented for parsing chapters and verses
2 parents f3a7946 + 6d04439 commit 219c423

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

usfm/html.py

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,44 @@
55
from .log import get_logger
66
import re
77

8-
html_env = Environment(loader=PackageLoader('svpm', 'html_templates'))
8+
y = parsley.makeGrammar("""
9+
w = ' '*
10+
text = <((anything):x ?(x not in '}') -> x)*>:s '}' ws-> s
11+
p = '\p' text
12+
mt = '\mt' text
13+
verse = '\\v' w <digit+>:s w text:verse ws p* -> {'num': s, 'verse': verse}
14+
verses = verse+
15+
chapter = '\c' w <digit+>:s '}' ws p* verses:vs -> {'chapter':s, 'verses': vs}
16+
chapters = chapter+
17+
book = text{7} mt{1,4} chapters:c-> c
18+
""",{})
19+
20+
html_env = Environment(loader=PackageLoader('usfm', 'html_templates'))
921

1022
template = html_env.get_template('template.html')
1123

1224
def print_book(file):
1325
txt = open(file)
1426
lines = txt.readlines()
1527
out = open(file[:-5]+".html", 'w')
16-
chapters = []
17-
chapter = ""
18-
verse = []
28+
temp = open('temp', 'w')
29+
for line in lines:
30+
if(len(line) >2):
31+
line = line.rstrip('\n')
32+
line = line + '}'
33+
temp.write(line +'\n')
34+
temp.close()
35+
text = open('temp').read()
36+
chapters = y(text).book()
1937
for line in lines:
2038
if len(line) == 0:
2139
continue
2240
words = line.split(" ")
2341
id = words[0]
2442
if id == "\\toc2":
25-
title = words[1]
43+
title = line[5:]
2644
if id == "\h":
27-
book_name = words[1]
28-
elif id == "\c":
29-
if chapter:
30-
chapters.append({"chapter" : chapter, "verse" : verse})
31-
verse = []
32-
chapter = words[1]
33-
elif id == "\\v":
34-
verse.append({"num": words[1], "text": " ".join(words[2:])})
45+
book_name = line[2:]
3546
out.write(template.render(title = title, book_name = book_name, chapters = chapters))
3647
out.close()
3748

usfm/html_templates/template.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ <h1 class="heading">{{ book_name }}</h1>
2424
{% for items in chapters %}
2525
<h2 class="heading">{{ items.chapter }}</h2>
2626

27-
{% for item in items.verse %}
28-
<p><span class="verse">{{ item.num }}</span>{{ item.text }}</p>
27+
{% for item in items.verses %}
28+
<p><span class="verse">{{ item.num }}</span>{{ item.verse }}</p>
2929
{% endfor %}
3030
{% endfor %}

0 commit comments

Comments
 (0)