fnp
/
librarian.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixes for edge cases
[librarian.git]
/
src
/
librarian
/
builders
/
html.py
diff --git
a/src/librarian/builders/html.py
b/src/librarian/builders/html.py
index
165a265
..
7504a66
100644
(file)
--- a/
src/librarian/builders/html.py
+++ b/
src/librarian/builders/html.py
@@
-18,12
+18,13
@@
class HtmlBuilder:
with_footnotes = True
with_nota_red = True
no_externalities = False
with_footnotes = True
with_nota_red = True
no_externalities = False
+ orphans = True
- def __init__(self,
image_location='https://wolnelektury.pl/media/book/pictures/marcos-historia-kolorow/'
):
- self.
image_location = image_location
+ def __init__(self,
base_url=None
):
+ self.
_base_url = base_url
self.tree = text = etree.Element('div', **{'id': 'book-text'})
self.tree = text = etree.Element('div', **{'id': 'book-text'})
- self.header = etree.
SubElement(text,
'h1')
+ self.header = etree.
Element(
'h1')
self.footnotes = etree.Element('div', id='footnotes')
self.footnote_counter = 0
self.footnotes = etree.Element('div', id='footnotes')
self.footnote_counter = 0
@@
-36,18
+37,22
@@
class HtmlBuilder:
'footnotes': self.footnotes,
'nota_red': self.nota_red,
}
'footnotes': self.footnotes,
'nota_red': self.nota_red,
}
- self.current_cursors = [
None
]
+ self.current_cursors = [
text
]
@property
@property
- def cursor(self):
- return self.cursors[self.current_cursors[-1]]
+ def base_url(self):
+ if self._base_url is not None:
+ return self._base_url
+ else:
+ return 'https://wolnelektury.pl/media/book/pictures/{}/'.format(self.document.meta.url.slug)
- @
cursor.setter
- def cursor(self
, value
):
- self.cursors[self.current_cursors[-1]] = value
+ @
property
+ def cursor(self):
+ return self.current_cursors[-1]
def enter_fragment(self, fragment):
def enter_fragment(self, fragment):
- self.current_cursors.append(fragment)
+ cursor = self.cursors.get(fragment, self.cursor)
+ self.current_cursors.append(cursor)
def exit_fragment(self):
self.current_cursors.pop()
def exit_fragment(self):
self.current_cursors.pop()
@@
-63,7
+68,9
@@
class HtmlBuilder:
document._compat_assign_ordered_ids()
document._compat_assign_section_ids()
document._compat_assign_ordered_ids()
document._compat_assign_section_ids()
- def build(self, document):
+ def build(self, document, **kwargs):
+ self.document = document
+
self.preprocess(document)
document.tree.getroot().html_build(self)
self.postprocess(document)
self.preprocess(document)
document.tree.getroot().html_build(self)
self.postprocess(document)
@@
-103,6
+110,9
@@
class HtmlBuilder:
if self.with_toc:
add_table_of_contents(self.tree)
if self.with_toc:
add_table_of_contents(self.tree)
+ if len(self.header):
+ self.tree.insert(0, self.header)
+
if self.footnote_counter:
fnheader = etree.Element("h3")
fnheader.text = _("Footnotes")
if self.footnote_counter:
fnheader = etree.Element("h3")
fnheader.text = _("Footnotes")
@@
-110,19
+120,16
@@
class HtmlBuilder:
self.tree.append(self.footnotes)
def start_element(self, tag, attrib=None):
self.tree.append(self.footnotes)
def start_element(self, tag, attrib=None):
- self.cur
sor =
etree.SubElement(
+ self.cur
rent_cursors.append(
etree.SubElement(
self.cursor,
tag,
**(attrib or {})
self.cursor,
tag,
**(attrib or {})
- )
+ )
)
def end_element(self):
def end_element(self):
- self.cur
sor = self.cursor.getparent
()
+ self.cur
rent_cursors.pop
()
def push_text(self, text):
def push_text(self, text):
- if text == 'Między nami nic nie było':
- print(self.cursors)
- print(self.current_cursors)
cursor = self.cursor
if len(cursor):
cursor[-1].tail = (cursor[-1].tail or '') + text
cursor = self.cursor
if len(cursor):
cursor[-1].tail = (cursor[-1].tail or '') + text
@@
-180,6
+187,15
@@
class StandaloneHtmlBuilder(HtmlBuilder):
)
)
+class SnippetHtmlBuilder(HtmlBuilder):
+ with_anchors = False
+ with_themes = False
+ with_toc = False
+ with_footnotes = False
+ with_nota_red = False
+ with_refs = False
+
+
class DaisyHtmlBuilder(StandaloneHtmlBuilder):
file_extension = 'xhtml'
with_anchors = False
class DaisyHtmlBuilder(StandaloneHtmlBuilder):
file_extension = 'xhtml'
with_anchors = False