changeset 55:301452a71cc7

Make sense output formatting more list-like, rename some items.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 27 May 2021 10:49:44 +0300
parents 5d3fb2f3aa21
children 71e66eca1e23
files lxmldump.py
diffstat 1 files changed, 24 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- 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"<a href='https://kaino.kotus.fi/cgi-bin/kks/karjala.cgi?a={href}'>{text}</a>",
     },
 
-    "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)))