# HG changeset patch # User Matti Hamalainen # Date 1622101784 -10800 # Node ID 301452a71cc7c367e422ca0d3d2adc94b5318aa7 # Parent 5d3fb2f3aa218fb9802741ae797a54eb39dc35cf Make sense output formatting more list-like, rename some items. diff -r 5d3fb2f3aa21 -r 301452a71cc7 lxmldump.py --- a/lxmldump.py Wed May 26 23:10:51 2021 +0300 +++ b/lxmldump.py Thu May 27 10:49:44 2021 +0300 @@ -47,7 +47,7 @@ PKK_MODE_ANKI: u"{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", }, @@ -89,17 +89,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}\"{geostr}\n", PKK_MODE_ANKI: " ⚫ \"{text}\"{geostr}", }, @@ -337,7 +347,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"): @@ -347,7 +357,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")), geostr=pkk_get_list_str(geolist, "example_geo", False), indent=pkk_geti(indent + 1)) @@ -402,22 +412,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)))