forked from LiveCarta/BookConverter
epub converter: add new type of blocks 2
This commit is contained in:
@@ -257,16 +257,26 @@ def unwrap_structural_tags(body_tag):
|
||||
if not tag_.parent.attrs.get('class'):
|
||||
tag_.parent.attrs['class'] = tag_class
|
||||
|
||||
def _preserve_class_in_section_tag(tag_):
|
||||
def _preserve_class_in_section_tag(tag_) -> bool:
|
||||
# to save css style inherited from class, copy class to child <p>
|
||||
# this is for Wiley books with boxes
|
||||
# returns True, if <section> could be unwrapped
|
||||
|
||||
tag_class = tag_.attrs['class'] if not isinstance(tag_.attrs['class'], list) else tag_.attrs['class'][0]
|
||||
child_p_tag = tag_.find_all("p")
|
||||
if len(child_p_tag) != 1:
|
||||
return
|
||||
child_p_tag = child_p_tag[0]
|
||||
if not child_p_tag.attrs.get('class'):
|
||||
child_p_tag.attrs['class'] = tag_class
|
||||
if 'feature' not in tag_class:
|
||||
return True
|
||||
child_p_tags = tag_.find_all("p")
|
||||
if len(child_p_tags) == 1:
|
||||
child_p_tag = child_p_tags[0]
|
||||
if not child_p_tag.attrs.get('class'):
|
||||
child_p_tag.attrs['class'] = tag_class
|
||||
return True
|
||||
|
||||
elif len(child_p_tags) > 1:
|
||||
tag_.name = 'p'
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def _add_table_to_abc_books(tag_, border, bg_color):
|
||||
wrap_block_tag_with_table(body_tag, old_tag=tag_, width='100', border=border, bg_color=bg_color)
|
||||
@@ -301,11 +311,13 @@ def unwrap_structural_tags(body_tag):
|
||||
div.unwrap()
|
||||
|
||||
for s in body_tag.find_all("section"):
|
||||
could_be_unwrapped = True
|
||||
if s.attrs.get('class'):
|
||||
_preserve_class_in_aside_tag(s)
|
||||
_preserve_class_in_section_tag(s)
|
||||
could_be_unwrapped = _preserve_class_in_section_tag(s)
|
||||
_add_span_to_save_ids_for_links(s)
|
||||
s.unwrap()
|
||||
if could_be_unwrapped:
|
||||
s.unwrap()
|
||||
|
||||
for s in body_tag.find_all("article"):
|
||||
_add_span_to_save_ids_for_links(s)
|
||||
|
||||
Reference in New Issue
Block a user