Skip to content

Commit aaf3075

Browse files
committed
Adds obs-sb and obs-sq pdf generators
1 parent c6099ae commit aaf3075

3,970 files changed

Lines changed: 348017 additions & 392 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

bible/generate_bible_pdf/generate_bible_pdf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def run(self):
100100
self.resource = self.manifest['dublin_core']
101101
self.title = self.resource['title']
102102
self.version = self.resource['version']
103-
self.contributors = '; '.join(self.resource['contributor'])
103+
self.contributors = '<br/>'.join(self.resource['contributor'])
104104
self.publisher = self.resource['publisher']
105105
self.issued = dateutil.parser.parse(self.resource['issued']).strftime('%Y-%m-%d')
106106
projects = self.manifest['projects']

general_tools/file_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def load_yaml_object(file_name, default=None):
9797
if not os.path.isfile(file_name):
9898
return default
9999
# return a deserialized object
100-
return yaml.load(read_file(file_name))
100+
return yaml.load(read_file(file_name), Loader=yaml.FullLoader)
101101

102102

103103
def read_file(file_name, encoding='utf-8'):
File renamed without changes.
File renamed without changes.
File renamed without changes.

obs-sn/generate_obs-sn_pdf.py

Lines changed: 602 additions & 0 deletions
Large diffs are not rendered by default.

obs-sn/obs-sn_footer.html

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5+
<link href="obs-sn_style.css" rel="stylesheet"/>
6+
<script>
7+
function subst() {
8+
var vars = {};
9+
var query_strings_from_url = document.location.search.substring(1).split('&');
10+
for (var query_string in query_strings_from_url) {
11+
if (query_strings_from_url.hasOwnProperty(query_string)) {
12+
var temp_var = query_strings_from_url[query_string].split('=', 2);
13+
vars[temp_var[0]] = decodeURI(temp_var[1]);
14+
}
15+
}
16+
var css_selector_classes = ['page', 'frompage', 'topage', 'webpage', 'section', 'subsection', 'date', 'isodate', 'time', 'title', 'doctitle', 'sitepage', 'sitepages'];
17+
for (var css_class in css_selector_classes) {
18+
if (css_selector_classes.hasOwnProperty(css_class)) {
19+
var element = document.getElementsByClassName(css_selector_classes[css_class]);
20+
for (var j = 0; j < element.length; ++j) {
21+
element[j].textContent = vars[css_selector_classes[css_class]];
22+
}
23+
}
24+
}
25+
}
26+
</script>
27+
</head>
28+
<body style="border:0; margin: 0;" onload="subst()">
29+
<div style="text-align: center"><span class="page"></span>&nbsp;/&nbsp;<span class="topage"></span></div>
30+
</body>
31+
</html>

obs-sn/obs-sn_header.html

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5+
<link href="obs-sn_style.css" rel="stylesheet"/>
6+
<script>
7+
var omitSectionCombos = [
8+
['Open Bible Stories Study Notes', ''],
9+
['Table of Contents'],
10+
['Contributors'],
11+
['OBS Study Notes - French', ''],
12+
];
13+
function subst() {
14+
var vars = {};
15+
var query_strings_from_url = document.location.search.substring(1).split('&');
16+
for (var query_string in query_strings_from_url) {
17+
if (query_strings_from_url.hasOwnProperty(query_string)) {
18+
var temp_var = query_strings_from_url[query_string].split('=', 2);
19+
vars[temp_var[0]] = decodeURI(temp_var[1]);
20+
}
21+
}
22+
for (var i in omitSectionCombos) {
23+
var sections = omitSectionCombos[i];
24+
if (vars['section'] === sections[0]) {
25+
if (sections.length < 2 || sections[1] === vars['subsection']) {
26+
if (sections.length < 3 || sections[2] === vars['subsubsection'])
27+
document.getElementsByClassName("page-header")[0].className += 'empty';
28+
return;
29+
}
30+
}
31+
}
32+
var css_selector_classes = ['page', 'frompage', 'topage', 'webpage', 'section', 'subsection', 'date', 'isodate', 'time', 'title', 'doctitle', 'sitepage', 'sitepages'];
33+
for (var css_class in css_selector_classes) {
34+
if (css_selector_classes.hasOwnProperty(css_class)) {
35+
var element = document.getElementsByClassName(css_selector_classes[css_class]);
36+
for (var j = 0; j < element.length; ++j) {
37+
element[j].textContent = vars[css_selector_classes[css_class]];
38+
}
39+
}
40+
}
41+
}
42+
</script>
43+
</head>
44+
<body style="border:0; margin: 0;" onload="subst()">
45+
<table class="page-header">
46+
<tr>
47+
<td class="section"></td>
48+
<td class="subsection"></td>
49+
<td class="subsubsection"></td>
50+
</tr>
51+
</table>
52+
</body>
53+
</html>
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
@import url('https://fonts.googleapis.com/css?family=Noto+Sans');
2-
@import url('https://fonts.googleapis.com/css?family=Noto+Serif');
1+
@import url('https://fonts.googleapis.com/css?family=Noto+Serif:400,400i,700,700i');
32

43
body {
5-
font-family: 'Noto Serif', 'Noto Sans', sans-serif;
4+
font-family: 'Noto Serif', sans-serif;
65
font-size: 12pt;
76
}
87

@@ -238,11 +237,17 @@ table.tn-notes-table {
238237
width: 100%;
239238
}
240239

240+
.page-header.empty {
241+
display: none;
242+
border: 0;
243+
height: 0;
244+
}
245+
241246
.page-header .section {
242247
text-align: left;
243248
}
244249

245-
.page-header .subsection {
250+
.page-header .subsection, .page-header .subsubsection {
246251
overflow: hidden;
247252
text-overflow: ellipsis;
248253
text-align: right;

obs-sn/requirements.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
backports-abc
2+
beautifulsoup4
3+
bs4
4+
future
5+
futures
6+
markdown2
7+
pyparsing
8+
python-dateutil
9+
PyYAML
10+
singledispatch
11+
six
12+
tornado
13+
gitpython
14+
weasyprint

0 commit comments

Comments
 (0)