# HG changeset patch # User Matti Hamalainen # Date 1622123722 -10800 # Node ID 71e66eca1e23aab2e1a92ec54009be38f11a727e # Parent 301452a71cc7c367e422ca0d3d2adc94b5318aa7# Parent 884770576e747ce415b87d80841e660ecfe34a72 Merge. diff -r 884770576e74 -r 71e66eca1e23 lxmldump.py --- a/lxmldump.py Thu May 27 14:28:08 2021 +0300 +++ b/lxmldump.py Thu May 27 16:55:22 2021 +0300 @@ -47,7 +47,7 @@ PKK_MODE_ANKI: "{text}", }, - "word_fmt": { + "word_item": { PKK_MODE_NORMAL: "\"{word}\"{search}{attr}\n{hyphenation}{main_sense}{other_senses}\n", PKK_MODE_ANKI: "\"{word}\"{search}{attr}{hyphenation};{main_sense};{other_senses}\n", }, @@ -88,17 +88,27 @@ PKK_MODE_NORMAL: "", }, - "sense_index": { - PKK_MODE_NORMAL: "{indent}sense #{index}\n", - PKK_MODE_ANKI: "#{index}: ", + "sense_list": { + PKK_MODE_NORMAL: "{alist}", + }, + "sense_list_empty": { + PKK_MODE_NORMAL: "", + }, + "sense_list_item": { + PKK_MODE_NORMAL: "{indent}sense #{index}\n{text}", + PKK_MODE_ANKI: "{text}", + }, + "sense_list_sep": { + PKK_MODE_NORMAL: "", + PKK_MODE_NORMAL: ";", }, - "definition_fmt": { + "definition_item": { PKK_MODE_NORMAL: "{indent}defn \"{text}\"\n", PKK_MODE_ANKI: " * \"{text}\"", }, - "example_fmt": { + "example_item": { PKK_MODE_NORMAL: "{indent}exmp \"{text}\"{geo_list}\n", PKK_MODE_ANKI: " ⚫ \"{text}\"{geo_list}", }, @@ -336,7 +346,7 @@ ## Output a main "Headword" or "Sense" node def pkk_get_sense(indent, dnode): # Definition for this sense - ostr = pkk_get_subs(indent, dnode, "./Definition", "definition_fmt") + ostr = pkk_get_subs(indent, dnode, "./Definition", "definition_item") # Examples for this sense for wnode in dnode.findall("./ExampleBlock/ExampleCtn"): @@ -346,7 +356,7 @@ text=pkk_node_to_text(qnode), tclass=qnode.attrib["class"])) - ostr += pkk_get_fmt("example_fmt").format( + ostr += pkk_get_fmt("example_item").format( text=pkk_node_to_text(wnode.find("./Example")), geo_list=pkk_get_list_str(geolist, "example_geo", False), indent=pkk_geti(indent + 1)) @@ -401,22 +411,22 @@ # Print any other "senses" index = 1 - osenses = "" + senselist = [] for znode in dnode.findall("./SenseGrp"): - osenses += pkk_get_fmt("sense_index").format( + senselist.append(pkk_get_fmt("sense_list_item").format( index=index, - indent=pkk_geti(indent + 1)) - osenses += pkk_get_sense(indent + 2, znode) + text=pkk_get_sense(indent + 2, znode), + indent=pkk_geti(indent + 1))) index += 1 # Print the headword and attributes if any - pkk_print(pkk_get_fmt("word_fmt").format( + pkk_print(pkk_get_fmt("word_item").format( word=headword, attr=pkk_get_list_str(attrlist, "word_attr", True), search=pkk_get_list_str(srchlist, "search", True), hyphenation=hyphenation, main_sense=msense, - other_senses=osenses, + other_senses=pkk_get_list_str(senselist, "sense", False), indent=pkk_geti(indent)))