develooper Front page | perl.pod-people | Postings from October 2020

Re: [feature] Add =image to perl pod #18169

Thread Previous | Thread Next
Russ Allbery
October 4, 2020 20:10
Re: [feature] Add =image to perl pod #18169
Message ID:
Dmitry Karasik <> writes:

> 1) Full syntax (somewhat YAML-inspired)

> =begin image

> src: file.png
> title: Figure.1
> comment:
> 	This is a multi-line
> 	comment. Must start end end with newline.
> 	Prefix spaces are skipped.

> resolution: 120
> whatever: value

> text:
> 	This is fallback text
> 	shown where graphics is unavailable
> 	but the formatter is smart and knows
> 	the =image tag.

> =end image

Hm, using =begin/=end as an extension mechanism is an interesting idea.
It's unfortunate that limitations in the existing mechanism mean that a
formatter still has to understand the extension to show the fallback text,
but that may not be a significant problem.

I have mixed feelings about introducing new syntax into POD to avoid using
command paragraphs.  I'm also a bit worried about adding a new ad hoc
configuration language rather than using some existing one with a
specification and existing parsers.  There are a lot of details and edge
cases in parsing rules, and a new ad hoc syntax either needs a detailed
specification (which is sort of annoying for everyone) or runs the risk
that different parsers will interpret it differently.  The merit in using
command paragraphs is that Pod::Simple and friends already know how to
parse them.

Unfortunately, the only other non-ad-hoc syntax that has a parser in Perl
core that I know of is JSON, and I certainly wouldn't want to use JSON

I think there is some merit to making your YAML-inspired syntax just be
YAML if you go down that route so that parsers can reuse a YAML parser,
although I understand why the complexity of YAML isn't appealing, and that
also has weird implications for Perl core since introducing a YAML module
into Perl core is going to be unappealing, but POD parsing currently lives
in core.

#!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker
$^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD,
 00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{
rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About