Pod 2 html (module comparable à perlpod)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 612 fois - Téléchargée 29 fois

Contenu du snippet

Cette source permet de transformer du POD en xhtml, le pod étant le langage de documentation de perl... POD = Plain Old Documentation
http://www.perl-gratuit.com/traduction/docfr/perlpod.html (rédigé par Larry Wall, le créateur de perl)

Sur la capture, vous pouvez voir dans la console, perldoc de lancé (perldoc POSIX), et dans la fenêtre de mon navigateur (Konqueror), le fichier ci-dessous lancé sur le même fichier que perldoc.

Source / Exemple :


<?php
function podline2xhtml($str){
	//on enlève les caractères spéciaux
	$str=htmlentities($str);
	//quelques exressions régulières...
	$str=preg_replace('/I<([^&]*)>/', '<u>\\1</u>', $str);			//ce qui est souligné
	$str=preg_replace('/B<([^&]*)>/', '<b>\\1</b>', $str);			//ce qui est en gras
	$str=preg_replace('/C<([^&]*)>/', '<i>"\\1"</i>', $str);			//ce qui est cité
	$str=preg_replace('/L<([^&]*)>/', '<a href="doc://\\1">\\1</a>', $str);	//les liens
	$str=str_replace(
		array('E<lt>', 'E<gt>', 'E<sol>', 'E<verbar>'),
		array('<', '>', htmlentities('/'), htmlentities('|')),
		$str);
	return $str;
}
function pod2xhtml($str){
/*
transforme un texte pod en texte html.

ne gère pas les instructions tels que
=begin
=for
=end

  • /
//une ligne qui se termine par de la ponctuation provoque un retour à la ligne $ponctuation=array(',','.',':',';','!','?'); $strHTML=''; $a=explode(' ',$str); $pod=true; foreach ($a as $b=>$c){ if ($c{0}==='='){ $d=explode(' ', $c); $c=substr($c, strlen($d[0])+1); $d=substr($d[0],1); switch($d){ case 'cut': $pod=false; break; case 'pod': $pod=true; break; case 'head1': if ($pod) $strHTML.='<h1>'.htmlentities($c).'</h1>'; break; case 'head2': if ($pod) $strHTML.='<h2>'.htmlentities($c).'</h2>'; break; case 'over': if ($pod) $strHTML.='<ul>'; break; case 'item': if ($pod) $strHTML.='<li>'.htmlentities($c).'<br />'; break; case 'back': if ($pod) $strHTML.='</ul>'; break; } }else if ($c===''){ if ($pod) $strHTML.='<br />'; }else{ if ($pod){ $strHTML.=podline2xhtml($c); if (in_array($c{strlen($c)-1}, $ponctuation)){ $strHTML.='<br />'; } } } } return $strHTML; } echo pod2xhtml(file_get_contents('1.pod')); ?>

Conclusion :


Un peu de pod :

=head1 NAME

POSIX - Perl interface to IEEE Std 1003.1

=head1 SYNOPSIS

use POSIX;
use POSIX qw(setsid);
use POSIX qw(:errno_h :fcntl_h);

printf "EINTR is %d\n", EINTR;

$sess_id = POSIX::setsid();

$fd = POSIX::open($path, O_CREAT|O_EXCL|O_WRONLY, 0644);
# note: that's a filedescriptor, *NOT* a filehandle

=head1 DESCRIPTION

The POSIX module permits you to access all (or nearly all) the standard
POSIX 1003.1 identifiers. Many of these identifiers have been given Perl-ish
interfaces.

I<Everything is exported by default> with the exception of any POSIX
functions with the same name as a built-in Perl function, such as
C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported
only if you ask for them explicitly. This is an unfortunate backwards
compatibility feature. You can stop the exporting by saying C<use
POSIX ()> and then use the fully qualified names (ie. C<POSIX::SEEK_END>).

A voir également

Ajouter un commentaire

Commentaires

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
ok je ne connais pas.
Messages postés
163
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
8 mai 2010

Chez magic online
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Antidote > t'es chez qui en dédié ?
Messages postés
163
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
8 mai 2010

tu m'étonnes la dernière fois que j'ai fait un upgrade (version de perl) j'ai du mettre à jour un paquet de soft, un vrai bordel.

depuis je laisse faire notre administrateur serveur ^^ lui il sais ou il va exactement.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
bah écoute, dans ce cas, j'en ai pour 30 ans : si il claque, j'ai 4 - 5 disques de rechange ;)
Mais bon, la, je me documente pour un système de sauvegarde (je dis ça, mais je viens de réinstaller ma debian sur mon pc de développement, pas sur mon serveur, et j'ai perdu que deux fichiers, mais ça fout quand même les boules de voir qu'on peut plus jouer avec un linux quand on fait une upgrade...)
Afficher les 29 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.