source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* docbook2mdoc: Minor improvements to the handling of some
@ 2019-04-14 18:08 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2019-04-14 18:08 UTC (permalink / raw)
  To: source

Log Message:
-----------
Minor improvements to the handling of some meta-information:
* Translate <simplesect> and <legalnotice> to .Ss or lower.
* Do not uppercase high-level <note> and similar elements.
* Handle <subtitle> like stand-alone <title>.
* Handle <editor> by the <author> handler function.
* Make <copyright> print "Copyright (C)".
* Ignore some transparent nodes.

Modified Files:
--------------
    docbook2mdoc:
        docbook2mdoc.c
        node.c
        node.h
        parse.c
        statistics.c

Revision Data
-------------
Index: node.h
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/node.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -Lnode.h -Lnode.h -u -p -r1.24 -r1.25
--- node.h
+++ node.h
@@ -39,7 +39,6 @@ enum	nodeclass {
  * More DocBook XML elements are recognized, but remapped or discarded.
  */
 enum	nodeid {
-	NODE_AFFILIATION,
 	NODE_APPENDIX,
 	NODE_ARG,
 	NODE_AUTHOR,
@@ -75,7 +74,6 @@ enum	nodeid {
 	NODE_FUNCTION,
 	NODE_GLOSSTERM,
 	NODE_GROUP,
-	NODE_HOLDER,
 	NODE_INCLUDE,
 	NODE_INDEX,
 	NODE_INFO,
@@ -104,7 +102,6 @@ enum	nodeid {
 	NODE_NOTE,
 	NODE_OPTION,
 	NODE_ORDEREDLIST,
-	NODE_ORGNAME,
 	NODE_PARA,
 	NODE_PARAMDEF,
 	NODE_PARAMETER,
@@ -126,13 +123,13 @@ enum	nodeid {
 	NODE_REFNAMEDIV,
 	NODE_REFPURPOSE,
 	NODE_REFSYNOPSISDIV,
-	NODE_RELEASEINFO,
 	NODE_REPLACEABLE,
 	NODE_ROW,
 	NODE_SBR,
 	NODE_SCREEN,
 	NODE_SECTION,
 	NODE_SIMPLELIST,
+	NODE_SIMPLESECT,
 	NODE_SPANSPEC,
 	NODE_SUBTITLE,
 	NODE_SYNOPSIS,
@@ -151,7 +148,6 @@ enum	nodeid {
 	NODE_VARNAME,
 	NODE_WARNING,
 	NODE_WORDASWORD,
-	NODE_YEAR,
 	NODE_UNKNOWN,
 	NODE_TEXT,
 	NODE_ESCAPE,
Index: docbook2mdoc.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/docbook2mdoc.c,v
retrieving revision 1.120
retrieving revision 1.121
diff -Ldocbook2mdoc.c -Ldocbook2mdoc.c -u -p -r1.120 -r1.121
--- docbook2mdoc.c
+++ docbook2mdoc.c
@@ -210,19 +210,22 @@ pnode_printsection(struct format *f, str
 
 	level = ++f->level;
 	flags = ARG_SPACE;
-	if (level == 1)
-		flags |= ARG_UPPER;
-	if (level < 3) {
-		switch (n->node) {
-		case NODE_CAUTION:
-		case NODE_NOTE:
-		case NODE_TIP:
-		case NODE_WARNING:
+	switch (n->node) {
+	case NODE_PREFACE:
+	case NODE_SECTION:
+	case NODE_APPENDIX:
+		if (level == 1)
+			flags |= ARG_UPPER;
+		break;
+	case NODE_SIMPLESECT:
+	case NODE_LEGALNOTICE:
+		if (level < 2)
+			level = 2;
+		break;
+	default:
+		if (level < 3)
 			level = 3;
-			break;
-		default:
-			break;
-		}
+		break;
 	}
 
 	TAILQ_FOREACH(nc, &n->childq, child)
@@ -1061,9 +1064,13 @@ pnode_print(struct format *f, struct pno
 	case NODE_CONSTANT:
 		macro_open(f, "Dv");
 		break;
+	case NODE_COPYRIGHT:
+		print_text(f, "Copyright", ARG_SPACE);
+		fputs(" \\(co", stdout);
+		break;
 	case NODE_EDITOR:
 		print_text(f, "editor:", ARG_SPACE);
-		macro_open(f, "An");
+		pnode_printauthor(f, n);
 		break;
 	case NODE_EMAIL:
 		if (was_impl)
@@ -1196,6 +1203,7 @@ pnode_print(struct format *f, struct pno
 		break;
 	case NODE_PREFACE:
 	case NODE_SECTION:
+	case NODE_SIMPLESECT:
 	case NODE_APPENDIX:
 	case NODE_LEGALNOTICE:
 	case NODE_NOTE:
@@ -1218,6 +1226,7 @@ pnode_print(struct format *f, struct pno
 		pnode_printtgroup(f, n);
 		break;
 	case NODE_TITLE:
+	case NODE_SUBTITLE:
 		pnode_printpara(f, n);
 		macro_nodeline(f, "Sy", n, 0);
 		pnode_unlinksub(n);
Index: node.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/node.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -Lnode.c -Lnode.c -u -p -r1.14 -r1.15
--- node.c
+++ node.c
@@ -31,7 +31,6 @@ struct	nodeprop {
 };
 
 static	const struct nodeprop properties[] = {
-	{ "affiliation",	CLASS_TRANS },
 	{ "appendix",		CLASS_BLOCK },
 	{ "arg",		CLASS_ENCL },
 	{ "author",		CLASS_LINE },
@@ -46,7 +45,7 @@ static	const struct nodeprop properties[
 	{ "command",		CLASS_LINE },
 	{ "constant",		CLASS_LINE },
 	{ "contrib",		CLASS_TRANS },
-	{ "copyright",		CLASS_TRANS },
+	{ "copyright",		CLASS_LINE },
 	{ "date",		CLASS_TRANS },
 	{ "!DOCTYPE",		CLASS_VOID },
 	{ "editor",		CLASS_LINE },
@@ -67,7 +66,6 @@ static	const struct nodeprop properties[
 	{ "function",		CLASS_LINE },
 	{ "glossterm",		CLASS_LINE },
 	{ "group",		CLASS_ENCL },
-	{ "holder",		CLASS_TRANS },
 	{ "xi:include",		CLASS_VOID },
 	{ "index",		CLASS_TRANS },
 	{ "info",		CLASS_TRANS },
@@ -96,7 +94,6 @@ static	const struct nodeprop properties[
 	{ "note",		CLASS_BLOCK },
 	{ "option",		CLASS_LINE },
 	{ "orderedlist",	CLASS_BLOCK },
-	{ "orgname",		CLASS_TRANS },
 	{ "para",		CLASS_BLOCK },
 	{ "paramdef",		CLASS_LINE },
 	{ "parameter",		CLASS_LINE },
@@ -118,15 +115,15 @@ static	const struct nodeprop properties[
 	{ "refnamediv",		CLASS_BLOCK },
 	{ "refpurpose",		CLASS_LINE },
 	{ "refsynopsisdiv",	CLASS_BLOCK },
-	{ "releaseinfo",	CLASS_TRANS },
 	{ "replaceable",	CLASS_LINE },
 	{ "row",		CLASS_BLOCK },
 	{ "sbr",		CLASS_BLOCK },
 	{ "screen",		CLASS_BLOCK },
 	{ "section",		CLASS_BLOCK },
 	{ "simplelist",		CLASS_TRANS },
+	{ "simplesect",		CLASS_BLOCK },
 	{ "spanspec",		CLASS_TRANS },
-	{ "subtitle",		CLASS_TRANS },
+	{ "subtitle",		CLASS_BLOCK },
 	{ "synopsis",		CLASS_BLOCK },
 	{ "systemitem",		CLASS_LINE },
 	{ "table",		CLASS_TRANS },
@@ -143,7 +140,6 @@ static	const struct nodeprop properties[
 	{ "varname",		CLASS_LINE },
 	{ "warning",		CLASS_BLOCK },
 	{ "wordasword",		CLASS_TRANS },
-	{ "year",		CLASS_TRANS },
 	{ "[UNKNOWN]",		CLASS_VOID },
 	{ "(t)",		CLASS_TEXT },
 	{ "(e)",		CLASS_TEXT }
Index: parse.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/parse.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -Lparse.c -Lparse.c -u -p -r1.42 -r1.43
--- parse.c
+++ parse.c
@@ -70,6 +70,7 @@ struct	alias {
 
 static	const struct alias aliases[] = {
 	{ "acronym",		NODE_IGNORE },
+	{ "affiliation",	NODE_IGNORE },
 	{ "anchor",		NODE_DELETE },
 	{ "application",	NODE_COMMAND },
 	{ "article",		NODE_SECTION },
@@ -85,10 +86,12 @@ static	const struct alias aliases[] = {
 	{ "glossdiv",		NODE_IGNORE },
 	{ "glossentry",		NODE_VARLISTENTRY },
 	{ "glosslist",		NODE_VARIABLELIST },
+	{ "holder",		NODE_IGNORE },
 	{ "indexterm",		NODE_DELETE },
 	{ "informaltable",	NODE_TABLE },
 	{ "keycap",		NODE_KEYSYM },
 	{ "keycode",		NODE_IGNORE },
+	{ "orgname",		NODE_IGNORE },
 	{ "othercredit",	NODE_AUTHOR },
 	{ "othername",		NODE_PERSONNAME },
 	{ "part",		NODE_SECTION },
@@ -99,6 +102,7 @@ static	const struct alias aliases[] = {
 	{ "refsect2",		NODE_SECTION },
 	{ "refsect3",		NODE_SECTION },
 	{ "refsection",		NODE_SECTION },
+	{ "releaseinfo",	NODE_IGNORE },
 	{ "returnvalue",	NODE_IGNORE },
 	{ "secondary",		NODE_DELETE },
 	{ "sect1",		NODE_SECTION },
@@ -112,6 +116,7 @@ static	const struct alias aliases[] = {
 	{ "trademark",		NODE_IGNORE },
 	{ "ulink",		NODE_LINK },
 	{ "userinput",		NODE_LITERAL },
+	{ "year",		NODE_IGNORE },
 	{ NULL,			NODE_IGNORE }
 };
 
Index: statistics.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/statistics.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -Lstatistics.c -Lstatistics.c -u -p -r1.26 -r1.27
--- statistics.c
+++ statistics.c
@@ -360,27 +360,44 @@ main(int argc, char *argv[])
 
 	/* Exclude relations that are already fully implemented. */
 	if (show_all == 0) {
+		table_add("ROOT", "article");
+		table_add("ROOT", "book");
+		table_add("ROOT", "chapter");
 		table_add("ROOT", "refentry");
 		table_add("acronym", "TEXT");
+		table_add("affiliation", "orgdiv");
+		table_add("affiliation", "orgname");
 		table_add("appendix", NULL);
 		table_add("application", "TEXT");
 		table_add("arg", "option");
 		table_add("article", NULL);
+		table_add("articleinfo", "author");
+		table_add("articleinfo", "authorgroup");
+		table_add("articleinfo", "copyright");
 		table_add("articleinfo", "date");
+		table_add("articleinfo", "legalnotice");
 		table_add("articleinfo", "pubdate");
+		table_add("articleinfo", "releaseinfo");
+		table_add("articleinfo", "subtitle");
 		table_add("articleinfo", "title");
+		table_add("author", "affiliation");
 		table_add("author", "contrib");
 		table_add("author", "email");
 		table_add("author", "firstname");
 		table_add("author", "othername");
 		table_add("author", "surname");
+		table_add("author", "TEXT");
 		table_add("authorgroup", "author");
+		table_add("authorgroup", "editor");
 		table_add("authorgroup", "othercredit");
 		table_add("blockquote", NULL);
 		table_add("book", NULL);
 		table_add("bookinfo", "authorgroup");
+		table_add("bookinfo", "copyright");
 		table_add("bookinfo", "legalnotice");
 		table_add("bookinfo", "pubdate");
+		table_add("bookinfo", "releaseinfo");
+		table_add("bookinfo", "subtitle");
 		table_add("bookinfo", "title");
 		table_add("chapter", NULL);
 		table_add("citerefentry", "manvolnum");
@@ -393,7 +410,13 @@ main(int argc, char *argv[])
 		table_add("command", "TEXT");
 		table_add("computeroutput", "TEXT");
 		table_add("constant", "TEXT");
+		table_add("contrib", "TEXT");
+		table_add("copyright", "holder");
+		table_add("copyright", "year");
 		table_add("date", "TEXT");
+		table_add("editor", "affiliation");
+		table_add("editor", "firstname");
+		table_add("editor", "surname");
 		table_add("email", "TEXT");
 		table_add("emphasis", "TEXT");
 		table_add("entry", NULL);
@@ -419,6 +442,7 @@ main(int argc, char *argv[])
 		table_add("glosslist", "glossentry");
 		table_add("glossterm", "TEXT");
 		table_add("group", "arg");
+		table_add("holder", "TEXT");
 		table_add("indexterm", "primary");
 		table_add("indexterm", "secondary");
 		table_add("informaltable", "tgroup");
@@ -437,6 +461,9 @@ main(int argc, char *argv[])
 		table_add("note", NULL);
 		table_add("option", "TEXT");
 		table_add("orderedlist", "listitem");
+		table_add("orgdiv", "TEXT");
+		table_add("orgname", "TEXT");
+		table_add("othercredit", "affiliation");
 		table_add("othercredit", "contrib");
 		table_add("othercredit", "email");
 		table_add("othercredit", "firstname");
@@ -447,8 +474,11 @@ main(int argc, char *argv[])
 		table_add("paramdef", "parameter");
 		table_add("paramdef", "TEXT");
 		table_add("parameter", "TEXT");
+		table_add("part", NULL);
 		table_add("personname", "firstname");
 		table_add("personname", "surname");
+		table_add("phrase", "TEXT");
+		table_add("preface", NULL);
 		table_add("primary", NULL);
 		table_add("programlisting", NULL);
 		table_add("property", "TEXT");
@@ -459,6 +489,8 @@ main(int argc, char *argv[])
 		table_add("refentry", "refnamediv");
 		table_add("refentry", "refsect1");
 		table_add("refentry", "refsynopsisdiv");
+		table_add("refentryinfo", "author");
+		table_add("refentryinfo", "copyright");
 		table_add("refentryinfo", "date");
 		table_add("refentrytitle", "TEXT");
 		table_add("refmeta", "manvolnum");
@@ -473,6 +505,7 @@ main(int argc, char *argv[])
 		table_add("refsect2", NULL);
 		table_add("refsynopsisdiv", "cmdsynopsis");
 		table_add("refsynopsisdiv", "funcsynopsis");
+		table_add("releaseinfo", "TEXT");
 		table_add("replaceable", "TEXT");
 		table_add("returnvalue", "TEXT");
 		table_add("row", "entry");
@@ -486,8 +519,10 @@ main(int argc, char *argv[])
 		table_add("sgmltag", "TEXT");
 		table_add("simpara", NULL);
 		table_add("simplelist", "member");
+		table_add("simplesect", NULL);
 		table_add("structfield", "TEXT");
 		table_add("structname", "TEXT");
+		table_add("subtitle", "TEXT");
 		table_add("surname", "TEXT");
 		table_add("symbol", "TEXT");
 		table_add("synopsis", "TEXT");
@@ -501,6 +536,7 @@ main(int argc, char *argv[])
 		table_add("tgroup", "thead");
 		table_add("thead", "row");
 		table_add("title", "TEXT");
+		table_add("trademark", "TEXT");
 		table_add("type", "TEXT");
 		table_add("ulink", NULL);
 		table_add("userinput", "TEXT");
@@ -508,6 +544,8 @@ main(int argc, char *argv[])
 		table_add("varlistentry", "listitem");
 		table_add("varlistentry", "term");
 		table_add("varname", "TEXT");
+		table_add("warning", NULL);
+		table_add("year", "TEXT");
 	}
 	table_add(NULL, NULL);
 
--
 To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-04-14 18:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-14 18:08 docbook2mdoc: Minor improvements to the handling of some schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).