diff --git a/imxml2django.py b/imxml2django.py index c743825..06fb358 100755 --- a/imxml2django.py +++ b/imxml2django.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8; mode: python -*- -# Time-stamp: <2019-07-19 13:15:33 (kthoden)> +# Time-stamp: <2019-07-30 16:05:12 (kthoden)> """ Create an XML file that can be inserted into the Django database @@ -384,9 +384,10 @@ def djangoParseObject(xmlElement, indent=False, listtype=None, listnumber=0, uid xmlResult = etree.Element("temp") # Create basic Element EOAfigure xmlEOAfigure = etree.Element("EOAfigure") + figure_type = xmlElement.get("type") # Copy Image - if xmlElement.get("type") == "hionly": - logging.debug("Found hyperimage figure, continuing") + if figure_type == "hionly" or figure_type == "hionlycollage": + logging.debug(f"Found hyperimage figure ({figure_type}), continuing") pass else: strImageFileString = xmlElement.find(".//file").text @@ -416,16 +417,15 @@ def djangoParseObject(xmlElement, indent=False, listtype=None, listnumber=0, uid xmlEOAfigure.set("file", strImageFileDir + strImageFileName) xmlEOAfigure.set("width", xmlElement.find(".//width").text + "px;") xmlEOAfigure.set("order", str(intObjectNumber)) - # Insert Caption xmlEOAfigure.append(xmlElement.find(".//caption")) xmlResult.append(xmlEOAfigure) - intObjectNumber += 1 - # Insert visual Number and uid - strFigureNumber = dictFigures[xmlElement.find(".//anchor").get("id")] - xmlEOAfigure.set("number", strFigureNumber) - strFigureUID = xmlElement.find(".//anchor").get("id") - xmlEOAfigure.set("id", strFigureUID) + intObjectNumber += 1 + # Insert visual Number and uid + strFigureNumber = dictFigures[xmlElement.find(".//anchor").get("id")] + xmlEOAfigure.set("number", strFigureNumber) + strFigureUID = xmlElement.find(".//anchor").get("id") + xmlEOAfigure.set("id", strFigureUID) elif xmlElement.findall(".//EOAtable"): xmlResult = etree.Element("EOAtable") xmlRawTable = xmlElement.find(".//table") @@ -1634,11 +1634,33 @@ def bring_footnote_down_django(footnote, fragment, footnote_number, object_numbe strChapterOrder = xmlParent.get("order") strObjectOrder = xmlEOAtable.get("order") tmpTail = xmlReference.tail or "" + + originalcontents = xmlReference.find("originalcontents") xmlReference.clear() - xmlReference.text = strResult + if originalcontents is not None: + logging.info("Found originalcontents") + xmlReference.append(originalcontents) + else: + xmlReference.text = strResult xmlReference.tail = tmpTail xmlReference.tag = "a" - xmlReference.set("href", "../" + strChapterOrder + "/index.html#" + strObjectOrder) + + # hyperimage + if xmlReferenceRef.get("data-hilayer"): + xmlReference.set("data-hilayer", xmlReferenceRef.get("data-hilayer")) + if xmlReference.text: + logging.debug(xmlReference.text) + xmlReference.text + if xmlReferenceRef.get("hitarget"): + xmlReference.set("class", "HIlink") + href_string = "#" + xmlReferenceRef.get("hitarget") + elif strObjectOrder: + href_string = "../" + strChapterOrder + "/index.html#" + strObjectOrder + else: + href_string = "strChapterOrder missing" + logging.warning("strObjectOrder is missing!") + + xmlReference.set("href", href_string) logging.info("----------------------------------------------") logging.info("Processing Page References") @@ -1838,7 +1860,7 @@ def bring_footnote_down_django(footnote, fragment, footnote_number, object_numbe ############################################################################ # TODO: Die unnötigen Attribute wie id löschen # TODO: Die unnötigen Tags wie EOAlabel löschen -etree.strip_tags(xmlDjangoTree, "temp", "citetext", "EOAprintbibliography") +etree.strip_tags(xmlDjangoTree, "temp", "citetext", "EOAprintbibliography", "originalcontents") etree.strip_elements(xmlDjangoTree, "citekey", with_tail=False) etree.strip_attributes(xmlDjangoTree, "id-text", "id", "noindent", "type", "label", "spacebefore")#, "rend")