tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: Ingo Schwarze <schwarze@usta.de>
To: Stephen Gregoratto <dev@sgregoratto.me>
Cc: tech@mandoc.bsd.lv
Subject: Re: [PATCH docbook2mdoc] Add markup, computeroutput (WIP)
Date: Fri, 12 Apr 2019 09:14:23 +0200	[thread overview]
Message-ID: <20190412071423.GA89835@athene.usta.de> (raw)
In-Reply-To: <20190412055748.umynmdcylrtp5pbs@BlackBox>

Hi Stephen,

Stephen Gregoratto wrote on Fri, Apr 12, 2019 at 03:57:48PM +1000:

> Both of these are frequently used in the doclifter manpage.

Thanks for pointing out where they are used.

> First up, <markup>. The docs say:

>> A markup element contains a string of formatting markup that is to be 
>> represented literally in the text. The utility of this element is 
>> almost wholly constrained to books about document formatting tools.

> doclifter uses it to designate troff macros, e.g <markup>.Pp</markup>.  
> Since this is similar to <sgmltag>, I decided to set NODE_SGMLTAG to the 
> new NODE_MARKUP.

Your argument makes sense to me.
I committed your patch unchanged.

> The only problem is that using macro_open(f, "Ic") doesn't escape the 
> markup like pnode_printtext does (worst case would format as: .Ic Pp). 

I think you habe a point here, text escaping is not consistent.
I should fix that, but that's independent of your patch.

> Secondly, <computerlayout>. The docs say:

>> A computeroutput identifies lines of text generated by a computer 
>> program (messages, results, or other output).

> Setting this to NODE_LITERAL

Sure, makes sense, too.

There is a slight problem with NODE_LITERAL formatting:
It is translated to .Ql, but sometimes, authors manually
put quotes around it.  The formatter should probably delete
those additional quotes.  But again, that's independent of your
patch.

Thanks,
  Ingo


> Index: docbook2mdoc.c
> ===================================================================
> RCS file: /cvs/docbook2mdoc/docbook2mdoc.c,v
> retrieving revision 1.105
> diff -u -p -r1.105 docbook2mdoc.c
> --- docbook2mdoc.c	12 Apr 2019 04:17:11 -0000	1.105
> +++ docbook2mdoc.c	12 Apr 2019 05:53:31 -0000
> @@ -914,6 +914,9 @@ pnode_print(struct format *f, struct pno
>  		macro_argline(f, "Bd", pnode_getattr(n, ATTRKEY_CLASS) ==
>  		    ATTRVAL_MONOSPACED ? "-literal" : "-unfilled");
>  		break;
> +	case NODE_MARKUP:
> +		macro_open(f, "Ic");
> +		break;
>  	case NODE_MML_MFENCED:
>  		pnode_printmathfenced(f, n);
>  		break;
> @@ -988,9 +991,6 @@ pnode_print(struct format *f, struct pno
>  		break;
>  	case NODE_SBR:
>  		macro_line(f, "br");
> -		break;
> -	case NODE_SGMLTAG:
> -		macro_open(f, "Ic");
>  		break;
>  	case NODE_TEXT:
>  	case NODE_ESCAPE:
> Index: node.h
> ===================================================================
> RCS file: /cvs/docbook2mdoc/node.h,v
> retrieving revision 1.17
> diff -u -p -r1.17 node.h
> --- node.h	12 Apr 2019 04:39:24 -0000	1.17
> +++ node.h	12 Apr 2019 05:53:31 -0000
> @@ -82,6 +82,7 @@ enum	nodeid {
>  	NODE_LITERAL,
>  	NODE_LITERALLAYOUT,
>  	NODE_MANVOLNUM,
> +	NODE_MARKUP,
>  	NODE_MEMBER,
>  	NODE_MML_MATH,
>  	NODE_MML_MFENCED,
> @@ -123,7 +124,6 @@ enum	nodeid {
>  	NODE_SBR,
>  	NODE_SCREEN,
>  	NODE_SECTION,
> -	NODE_SGMLTAG,
>  	NODE_SIMPLELIST,
>  	NODE_SPANSPEC,
>  	NODE_SUBTITLE,
> Index: parse.c
> ===================================================================
> RCS file: /cvs/docbook2mdoc/parse.c,v
> retrieving revision 1.34
> diff -u -p -r1.34 parse.c
> --- parse.c	12 Apr 2019 04:39:24 -0000	1.34
> +++ parse.c	12 Apr 2019 05:53:31 -0000
> @@ -89,6 +89,7 @@ static	const struct element elements[] =
>  	{ "code",		NODE_LITERAL },
>  	{ "colspec",		NODE_COLSPEC },
>  	{ "command",		NODE_COMMAND },
> +	{ "computeroutput",	NODE_LITERAL },
>  	{ "constant",		NODE_CONSTANT },
>  	{ "contrib",		NODE_CONTRIB },
>  	{ "copyright",		NODE_COPYRIGHT },
> @@ -134,6 +135,7 @@ static	const struct element elements[] =
>  	{ "literal",		NODE_LITERAL },
>  	{ "literallayout",	NODE_LITERALLAYOUT },
>  	{ "manvolnum",		NODE_MANVOLNUM },
> +	{ "markup",		NODE_MARKUP },
>  	{ "member",		NODE_MEMBER },
>  	{ "mml:math",		NODE_MML_MATH },
>  	{ "mml:mfenced",	NODE_MML_MFENCED },
> @@ -186,7 +188,7 @@ static	const struct element elements[] =
>  	{ "sect1",		NODE_SECTION },
>  	{ "sect2",		NODE_SECTION },
>  	{ "section",		NODE_SECTION },
> -	{ "sgmltag",		NODE_SGMLTAG },
> +	{ "sgmltag",		NODE_MARKUP },
>  	{ "simpara",		NODE_PARA },
>  	{ "simplelist",		NODE_SIMPLELIST },
>  	{ "spanspec",		NODE_SPANSPEC },
--
 To unsubscribe send an email to tech+unsubscribe@mandoc.bsd.lv

  reply	other threads:[~2019-04-12  7:14 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-12  5:57 Stephen Gregoratto
2019-04-12  7:14 ` Ingo Schwarze [this message]
2019-04-12  8:55 ` Ingo Schwarze

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190412071423.GA89835@athene.usta.de \
    --to=schwarze@usta.de \
    --cc=dev@sgregoratto.me \
    --cc=tech@mandoc.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).