Re: [PATCH] posix.py: ffix: Correctly format URIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Branden,

On 1/10/21 7:50 AM, G. Branden Robinson wrote:
> Hi Alex,
> 
> I've noticed you've started formatting your emails like recommended
> *roff input.  ;-)

Yes.  Before I filled until the margin, but when I edited something at
the begining (especially when writing on the editor and not directly on
Thunderbird), I had to fix all the lines to fit the margin.

So to solve it, I decided to cut the lines at meaningful point, much
before the margin, as when writing manual pages, so that if I edit text
at the begining I don't have to edit every line.

That habit extended to what you can see :)

> 
> I have, however, taken the liberty of reformatting them conventionally
> for brevity.

No problem.  Just a nitpick: when reading the mail from the phone, it
wraps around col 70 (more or less; it's not monospace, so it's an
experimental approximation), so many of the lines you compacted, expand
to a line and a word or so, effectively occupying 2 lines each, and
therefore occupying even more space than originally.

That's also the reason when I render a manual page and copy it's
contents to an email, I tend to use 68-col (or less) terminals, so that
text is nicely formatted on phones too.

> 
> At 2021-01-09T22:07:09+0100, Alejandro Colomar (man-pages) wrote:
>> Hi Michael, Branden,
>> On 1/9/21 8:58 PM, Alejandro Colomar wrote:
> [...]
>>> Enclose URIs in <>.  It is especially important in this case, as the
>>> URIs are followed by '.'.  From "" or <>, I prefer <>, as they are
>>> less used in other contexts, so they are more easily read as URIs.
> [...]
>>> Also enclose them in [.UR/.UE].
>>
>> I was wondering if, instead of hardcoding <>, it would be possible to
>> make .UR/.UE embed those characters.  It would make the code more
>> generic, but I don't know if it is feasible or desirable.
> 
> Not only is it possible, but the groff_man(7) .UR/.UE extension macros
> have been doing this automatically since they were introduced in January
> 2007.
> 
> They use left and right angle bracket special character escapes (Unicode
> U+2039 and U+203A)[1]; the output drivers degrade these to less-than and
> greater-than signs if the former glyphs are unavailable, or if the
> formatter is not groff[2].
> 
> Here are some of the relevant portions of tmac/an-ext.tmac.
> 
> [...]
>   .\" groff has glyph entities for angle brackets.
>   .ie \n(.g \{\
>   .  ds la \(la\"
>   .  ds ra \(ra\"
>   .\}
>   .el \{\
>   .  ds la <\"
>   .  ds ra >\"
>   .  \" groff's man macros control hyphenation with this register.
>   .  nr HY 1
>   .\}
> [...]
>   .\" End URL.
>   .de UE
> [...]
>   .    nh
>   \\*(la\\*(m1\\*(ra\c
>   .    ie \n(.g \&\\$*\"
>   .    el \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9\"
>   .    hy \\n(HY
> [...]
>   ..
> 
> The macro has a lot of conditional logic to support multiple formatters,
> include non-groff ones--it attempts to be usable even with old AT&T
> troff.  For the same reason, the register and string names used are
> short and unfriendly.  It also does special things when formatting for
> groff's HTML output device, which I do not show above.  But the heart of
> the matter for terminal output is the line
> 
>   \\*(la\\*(m1\\*(ra\c
> 
> which uses the left and right angle bracket strings defined previously.
> 
> Let me know if you could use the above in annotated form.
> 
> If something in your test environment is preventing the angle brackets
> from being rendered, maybe I could help you troubleshoot it?
> 
> Regards,
> Branden

Hmm, I might have read a few URLs that didn't use .UR/.UE to think that
they didn't render a character; I don't know.  After your email, I
checked, and yes, it renders some character (the character depends on
the terminal: on tty I've seen a diamond, and on the xfce terminal
something similar (but slightly different) to a parenthesis).

So I'll send a v2 patch removing the <>.

Thanks!

Alex

> 
> [1] https://man7.org/linux/man-pages/man7/groff_char.7.html#Glyph_tables
> [2] Technically, if the formatter does not claim groff compatibility by
>     setting the .g register to a positive value.
> 

-- 
Alejandro Colomar
Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/



[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux