Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

After fiddling around a bit with the FreeBSD man.cgi interface, I came up with a small heuristic (argl!) for specifying the OS and a Perl program that created the table below. It shall provide an impression of what the results might look like and summarise the feedback, I've got so far (thanks).

My assumptions:
  • the vast majority of users (of the minority that requires UNIX Man Pages anyhow) will need something like [man://program] only
  • a section is rarely necessary, e.g. for passwd (1+5)
  • someone requiring a special manual section for a distinct version of a given OS should use a direct link - as offered at the bottom of a FreeBSD manpage: e.g http://www.freebsd.org/cgi/man.cgi?query=env&manpath=Darwin+1.3.1%2fx86
  • maintenance overhead at PM should be close to nothing, thus the release of an OS is not processed
  • format: [man://PROG (opt. SECTION) (opt. OS)], order of OS and SECTION insignificant
  • optional (\d+) is a hint for a SECTION
  • optional (\D+) is a hint for an OS plus optional release (latter: ignored!); The FreeBSD site is quite good at guessing the current OS for a given manpath-attribute without a release number.
  • currently, the OS is simply uppercased (e.g. SUSE instead of SuSE)
  • [manX://abc] is offered as convenience shortcut for [man://abc (X)]
  • whitespace-tolerant, case-tolerant
  • class="man", class="mskb" for individual styling
  • using the format [man://prog (section) (os rel)] or [man://prog/section/os/rel] is mainly a matter of taste..., so I started with my favourite pattern
  • personally, I think the reference should contain no whitespaces
  • restriction of current implementation: no nested (...(..)..) or [..[..]..] allowed
  • handling of MSKB entries is trivial
  • ....
Some testcases (including ill. formatted entries) below. Some very simple heuristics are applied to find the manpath attribute for a given Unix flavour keeping the maintenance overhead small at PerlMonks. If the heuristic fails, the FreeBSD site will fallback to the default OS (FreeBSD) - which is OK for me. Although, abandoning the requirement to identify a certain OS would simplify the maintenance burden significantly. The lookup-table is:
my %patch = ('hp-ux' => 'hpux', x => 'x11', plan => 'plan9', osf => 'osf1', xfree => 'xfree86', minix => 'Minix+2.0', opensuse => 'suse', rhel => 'redhat', );

So, how shall we proceed?

Update: Right, RHEL is not identical to RedHat Linux, but the intention was to come close to the family, which is rather RedHat than FreeBSD... However, it can be corrected by removing the rhel => 'redhat' entry from the hash above (see: mr_mischief's comment).
Update2: If you like to experiment with the effect of the man and mskb styles, go to your Display Settings and add something to the On-Site CSS Markup - section, e.g. (nobody says it has to look good!)

.man { border: 1px solid #ff0000; background-color: #e6e6e6; } .mskb { border: 1px dotted #0000ff; background-color: #e6e6e6; }


InputRenderedLink-Layout
shell shell <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=sh&format=html&manpath=Minix+2.0">shell</a>
env man:env <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html">man:env</a>
env(1) man:env(1) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&sektion=1">man:env(1)</a>
env (1) man:env(1) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&sektion=1">man:env(1)</a>
[man1://env] man:env(1) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&sektion=1">man:env(1)</a>
env (sunos) SUNOS:env <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&manpath=sunos">SUNOS:env</a>
env (sunos) SUNOS:env <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&manpath=sunos">SUNOS:env</a>
env (sOlarIS 77) SOLARIS_77:env <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&manpath=solaris">SOLARIS_77:env</a>
env(1)(susE 55.11) SUSE_55.11:env(1) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&sektion=1&manpath=suse">SUSE_55.11:env(1)</a>
passwd (hp-ux) (5) HP-UX:passwd(5) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=passwd&format=html&sektion=5&manpath=hpux">HP-UX:passwd(5)</a>
[man1://passwd(5) (redhat)| should override section 1 by 5] should override section 1 by 5 <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=passwd&format=html&sektion=5&manpath=redhat">should override section 1 by 5</a>
man page of env section(1) man page of env section(1) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&sektion=1">man page of env section(1)</a>
man page of env section(1)|blah man page of env section(1)|blah <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=env&format=html&sektion=1">man page of env section(1)|blah</a>
passwd ( 1 ) ( Solaris) SOLARIS:passwd(1) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=passwd&format=html&sektion=1&manpath=solaris">SOLARIS:passwd(1)</a>
passwd(5)(suse) SUSE:passwd(5) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=passwd&format=html&sektion=5&manpath=suse">SUSE:passwd(5)</a>
passwd(5)(rhel) RHEL:passwd(5) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=passwd&format=html&sektion=5&manpath=redhat">RHEL:passwd(5)</a>
passwd (5) (opensuse) OPENSUSE:passwd(5) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=passwd&format=html&sektion=5&manpath=suse">OPENSUSE:passwd(5)</a>
passwd (5) (openSuSE) (11) OPENSUSE:passwd(11)(5) <a class="man" href="http://www.freebsd.org/cgi/man.cgi?query=passwd(11)&format=html&sektion=5&manpath=suse">OPENSUSE:passwd(11)(5)</a>
[mskb://245225] MSKB:245225 <a class="mskb" href="http://support.microsoft.com/=kb/245225">MSKB:245225</a>
[mskb:// 24 5 225 ] MSKB:245225 <a class="mskb" href="http://support.microsoft.com/=kb/245225">MSKB:245225</a>
[msKB:// 24 5225| ] MSKB:245225 <a class="mskb" href="http://support.microsoft.com/=kb/245225">MSKB:245225</a>
[mskb://245225 | Perl and IE ] Perl and IE <a class="mskb" href="http://support.microsoft.com/=kb/245225">Perl and IE</a>

In reply to Re: Suggestion for new shortcut-tags: [man://] and [mskb://] by Perlbotics
in thread Suggestion for new shortcut-tags: [man://] and [mskb://] by Perlbotics

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (8)
As of 2024-04-23 22:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found