fox_code v0.2Estensioni
Descrizione
To english readers
Description
In order to have an easy to use syntax highlighter into TextPattern I wrote this plugin, fox_code.
It brings some useful tags that will allow you to customize your code sections just like you want, because of it’s integration with textpattern’s templates.
This page is mainly written in italian, but the plugin’s help page (the one that you can read from textpattern I mean) it’s in english.
GeSHi supports more than 130 languages, including PHP, HTML, CSS, Java, C, Lisp, XML, Perl, Python, ASM and many more.
Installation
You have to install the GeSHi library before starting to use the plugin. Unpack it and move geshi.php and the geshi folder to textpattern/lib. If you don’t want to write your own form template, you can download the example one from the bottom of this page.
Documentation
An english translation the documentation is available into the help of the plugin.
Per un po' di tempo ho cercato un plugin per textpattern (nel resto dell'articolo TXP) che permettesse la colorazione del codice per una vasta gamma di linguaggi e che fosse facilmente personalizzabile per adattarlo al meglio al layout del mio sito. Non avendone trovato nessuno che potesse andare bene, ho deciso di scriverne uno da zero.
Per quanto riguarda la colorazione del codice mi sono appoggiato ad una libreria esterna, GeSHi. E' un motore molto potente e personalizzabile, che dispone di regole di colorazione per una gran quantità di linguaggi (più di 130, fra cui PHP, HTML, CSS, Java, C, Lisp, XML, Perl, Python, ASM), facilmente estendibile e dotato di un'ottima documentazione.
Il plugin fa da ponte tra TXP e GeSHi, permettendo sia la semplice colorazione del codice che l'utilizzo di templates complessi tramite l'utilizzo dei forms messi a disposizione da TXP.
In questo modo è possibile costruire forms che oltre a presentare il codice includano un titolo, informazioni varie ed una impaginazione personalizzata.
Il codice può essere scritto direttamente nell'articolo (come contenuto dei tag) oppure caricato da files. In questo caso il plugin si appoggia alla gestione di TXP, quindi possono essere specificati tramite nome o tramite indice numerico.
Qualora si stesse utilizzando un form sarà possibile mischiare ai tag del plugin quelli specifici per i form di download (rimando alla documentazione per ulteriori informazioni), facilitando all'utente il salvataggio del codice degli articoli.
Installazione
Prima di tutto bisogna procurarsi la versione corrente di GeSHi: pagina di download. Una volta scompattato l'archivio basta copiare o spostare il file geshi.php e la cartella geshi dentro alla cartella lib di TXP.
Ora che GeSHi è stato installato si può passare all'installazione del plugin: scaricatene l'ultima versione (i link al download sono in fondo a questa pagina) ed incollate il testo del file nella casella Installa plugin nella tab Amministrazione -> Plug-in del pannello di amministrazione di TXP. Ricordatevi di attivarlo (stessa tab) dopo averlo installato.
Tags
Questa è la lista dei tag resi disponibili dal plugin:
- fox_code
- fox_codeForm
- fox_codeFormAttr
<fox_code />
descrizione
Il tag fox_code permette di usare il potente motore di colorazione di sintassi GeSHi in TXP. Questo è il tag più facile, perché si occupa semplicemente di incollare il codice colorato nella pagina. Comunque è personalizzare l'output piuttosto bene grazie alla grande quantità di parametri.
Si può usare questo tag senza indicare nessun argomento in un form template: in questo caso il tag si comporterà come indicato nella chiamata del tag fox_codeForm (vedi sotto).
utilizzo
Ecco qualche esempio:
- <txp:fox_code language="c" fileid="20" />
- <txp:fox_code language="cpp" filename="main.cpp" fromline="10" toline="35" />
- <txp:fox_code language="php" filename="mysource.php" />
- <txp:fox_code language="css" >your css code here</txp:fox_code>
parametri
Nota che verranno ignorati qualora il tag venga usato in una form usata dal tag fox_codeForm.
- fileid - opzionale, l'identificativo del file da caricare
- filename - opzionale, il nome del file da caricare
- language - opzionale, specifica la sintassi da colorare (defaut: "php")
- lines - opzionale, attiva e disattiva i numeri di riga (default: "1")
- startline - opzionale, da dove partire a contare i numeri di riga (default: "1")
- overallclass - opzionale, se stai usando le classi questa è quella del div principale (vedi la documentazione di GeSHi circa l'uso dei CSS; il valore di default è il nome del linguaggio)
- tabs - opzionale, è il numero di spazi in cui convertire le tabulazioni (default: "2")
- css - opzionale, abilita e disabilita la colorazione della sintassi tramite css (default: "0")
- keywordslinks - opzionale, disabilita ed abilita il linking di GeSHi alle pagine di manuale delle keywords (default="0")
- encoding - opzionale, la codifica dei caratteri usata da GeSHi (default: "UTF-8")
- fromline - opzionale, legge il file da questa riga (se omesso legge dall'inizio)
- toline - opzionale, legge il file fino a questa riga (se omesso legge fino alla fine).
<fox_codeForm />
descrizione
fox_codeForm permette di visualizzare il codice all'interno di un certo form. Come nel tag precedente, si può sia scrivere il codice dentro il tag che caricarlo da file.
Se specifichi un file (per nome o per id) sarai in grado di usare tutti i tag standard di TXP per i form di download al fine di aggiungere un link al file ed ogni altro genere di informazione relativa.
utilizzo
Ecco qualche esempio:
- <txp:fox_codeForm form="code" language="c" fileid="20" />
- <txp:fox_codeForm form="code1" language="php" filename="mysource.php" />
- <txp:fox_codeForm language="css" >your css code here</txp:fox_codeForm>
parametri
- title - opzionale, il titolo da usare (il valore di default è il nome del file oppure il linguaggio)
- height - opzionale, l'altezza desiderata per il form con il codice
- width - opzionale, la larghezza desiderata per il form con il codice
- form - opzionale, il nome del form da utilizzare (default: "fox_codeForm")
È inoltre possibile usare tutti i parametri visti per il tag fox_code.
<fox_codeFormAttr />
descrizione
Permette (all'interno di una form) di leggere tutti i parametri specificati dal tag fox_codeForm.
utilizzo
Form template [Download #266, 419.00B]
- <div class="fox_codeForm" style="height:<txp:fox_codeFormAttr attr='height' />px;width:<txp:fox_codeFormAttr attr='width' />px;">
- <p class="fox_codeForm_title">
- <txp:fox_codeFormAttr attr="title" />
- <txp:file_download_link>[Download #<txp:file_download_downloads />,
- <txp:file_download_size decimals="2" />]</txp:file_download_link>
- </p>
- <div class="fox_codeForm_codeblock"><txp:fox_code /></div>
- </div>
CSS code [Download #257, 745.00B]
- #content div.fox_codeForm {
- font-family: "Courier New", Courier, "Lucida Console", monospace;
- background-color: #fefcec;
- color: inherit;
- margin: 20px 0px 20px 10px;
- padding: 5px 5px 20px;
- border: 1px solid #999999;
- height: 400px;
- width: 95%;
- overflow: auto;
- }
- #content div.fox_codeForm p.fox_codeForm_title {
- margin: -5px 5px 5px 0px;
- padding: 10px 0px 0px 0px;
- background-color: inherit;
- height: 23px;
- color: #0D8700;
- font-weight: bold;
- border-bottom: 3px double #689BF9;
- }
- #content div.fox_codeForm div.fox_codeForm_codeblock {
- margin: 0;
- padding: 0;
- text-align: left;
- }
- #content div.fox_codeForm ol {
- padding: 0 0 0 40px;
- }
- #content div.fox_codeForm li {
- margin: 0;
- padding: 0;
- }
Naturalmente sia il template che il codice css possono essere personalizzati a proprio piacere.
parametri
- attr - il nome di uno dei parametri di fox_codeForm (default: "title")
Cronologia versioni
- 0.2 - aggiunte opzioni fromline e toline (08-12-2007)
- 0.1.1 - bugfix (16-07-2007)
- 0.1 - prima release pubblica (06-07-2007)
Licenza
Questo plugin è rilasciato sotto i termini della licenza GPL 2.
Downloads
- fox code v0.2 [15.51KB, 537 downloads]
- Form Template [419.00B, 266 downloads]
- Form Template CSS [745.00B, 257 downloads]
Articoli (forse) correlati
— Riccardo Traverso (08 December 2007, 12:19)
Link permanente | Estensioni | Software
Your plugin looks quite good. Thank you very much indeed.
— Jirka ( 10 July 2007, 18:47 ) · #
Thank you for your positive feed.
Proposals and corrections are welcome :)
— GreyFox ( 10 July 2007, 21:30 ) · #
Veramente ben fatto, complimenti.
— Damiano ( 12 July 2007, 11:09 ) · #
Grazie, è bello sapere che il proprio lavoro è apprezzato :)
— GreyFox ( 12 July 2007, 11:34 ) · #
Hi! Please correct at this site your code from:
<txp:fox_codeForm language=“css” >your css code here</txp:fox_code>
to:
<txp:fox_codeForm language=“css” >your css code here</txp:fox_codeForm>
I was looking why your plugin doesn’t succesfully run at my Blog for 30 minutes, then i found this error in your code. Sry for my bad english ;-]
Best Regard Jan Kahoun
— Jan Kahoun ( 10 August 2007, 22:38 ) · #
Thank you very much, that was a stupid copy and paste error :D
— GreyFox ( 13 August 2007, 10:49 ) · #