Pagina 1 di 2

[ABD] Textile

Inviato: 12/06/2012, 2:25
da Lady R
Textile è un tipo di markup intuitivo simile ai tanto famosi BBcode.

A differenze di essi però, è molto più inuitivo da usare.
Sto implementandolo in phpBB ma ho bisogno di aiuto perché da sola non ce la faccio.

Al momento ecco la guida per installare la MOD:

Create il file /includes/markdown.php e dentro inseriteci questo testo:
http://pastebin.com/nt2n0CnZ

Aprite /includes/message_parser.php

Cercate:

Codice: Seleziona tutto

if (!class_exists('bbcode'))
{
   include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
}
Subito dopo aggiungete:

Codice: Seleziona tutto

// Textile MOD
include($phpbb_root_path . 'includes/markdown.' . $phpEx);
// Textile MOD
Cecate:

Codice: Seleziona tutto

$this->message = bbcode_nl2br($this->message);
Sostituitelo con:

Codice: Seleziona tutto

//Textile MOD
$this->message = Markdown($this->message);
// Textile MOD
$this->message = bbcode_nl2br($this->message);
Cercate:

Codice: Seleziona tutto

function magic_url($server_url)
   {
      // We use the global make_clickable function
      $this->message = make_clickable($this->message, $server_url);
   }
Sostituite con:

Codice: Seleziona tutto

function magic_url($server_url)
   {
      // We use the global make_clickable function
      //$this->message = make_clickable($this->message, $server_url); // Commented by Textile MOD
      // Textile MOD
      $this->message = $this->message;
      // Textile MOD
   }
Aprite /viewtopic.php
Cercate:

Codice: Seleziona tutto

include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
Aggiungete sotto:

Codice: Seleziona tutto

// Textile MOD
include($phpbb_root_path . 'includes/markdown.' . $phpEx);
// Textile MOD
Cercate:

Codice: Seleziona tutto

$message = bbcode_nl2br($message);
Sostituite con:

Codice: Seleziona tutto

 // Textile MOD
 $message = Markdown($message); 
 // Textile MOD
 $message = bbcode_nl2br($message);

I comandi utilizzabili sono spiegati di seguito:

Codice: Seleziona tutto

Guida dei codici Textile (o Markdown)
=====================

Questa è una guida per i codici Markdown, questa MOD è creata da Lady R ([Allise web site])

 [Allise web site]:
   http://allise.net


Corsivo e Grassetto
================

*Questo è un testo in corsivo*, e si può scrivere anche _così_.

**Questo è un testo in grassetto**, e si può scrivere anche __così__.

Puoi usare insieme ***corsivo e grassetto*** in questo modo, oppure puoi farlo ___così___.


Collegamenti
=====

Collegamenti semplici
------------

Ci sono tre modi per scrivere links.  Ognuno è più semplice da leggere del precedente:

Questo è un link in linea che porta a [Google](http://www.google.it/).
Questo è un link (stile riferimento) a [Google] [1].
Questo è un link molto leggibile a [Yahoo!].

  [1]: http://www.google.it/
  [yahoo!]: http://www.yahoo.com/

Le definizioni dei links possono essere inserite ovunque nel documento,  prima o dopo il punto in cui vengono utilizzati i links.
Le definizioni dei links (1 e Yahoo!) possono essere una qualunque stringa univoca, a non sono case-sensitive: [Yahoo!] è lo stesso di [yHaOo!].


Links avanzati: con attributi titoli
--------------------------------

Puoi anche aggiungere un attributo "titolo" ad un link, che apparirà quando passerai il mouse sul collegamento.
I titoli sono utili se il testo del link non è abbastanza chiaro da definire il contenuto del collegamento.

Non scrivere mai "[clicca qui][consiglio]".

  [consiglio]: http://www.w3.org/QA/Tips/noClickHere
        (Consiglio riguardo alla frase "clicca qui")


Titoli
=======

Ci sono due metodi per scrivere i titoli usando Markdown.  (in questo esempio Titolo 1 è il più grande, Titolo 6, il più piccolo)

Puoi sottolineare un titolo per avere rispettivamente H1 ed H2:

Titolo H1
========

Titolo H2
-----------

Il numero di simboli `=` o `-` non ha importanza, puoi scriverne anche uno solo. Ma usarne abbastanza da sottolineare l'intero testo renderà il tuo post più leggibile nella modalità di modifica.

Puoi anche usare i cancelletti per scrivere dei titoli:

# Titolo H1 #
## Titolo H2 ##
### Titolo H3 ###
#### Titolo H4 ####
##### Titolo H5 #####
###### Titolo H6 ######

I simboli `#` di chiusura sono opzionali.


Horizontal Rules
================

Puoi inserire una riga orizzontale scrivendo alcuni trattini, asterischi o trattini_bassi uno accanto all'altro:

---

*******
___

Puoi anche inserire degli spazi tra un simbolo e l'altro:

-  -  -  -

Tutti questi esempi producono lo stesso risultato.


Liste
=====

Liste semplici
-----------------

Una lista puntata:

- Puoi usare un meno per inserire un punto
+ O un simbolo più
* Oppure un asterisco

Una lista numerata

1. Le liste numerate sono semplici
2. Markdown ignora il numero da voi scritto, e li inserisce in maniera progressiva
7. Quindi questo apparirà comunque come il punto 3.

Una lista con doppio spazio tra gli elementi:

- Queste liste verranno racchiuse tra un tag '<p>'

- Quindi ci sarà più spazio tra un elemento e l'altro


Liste avanzate
------------------

Puoi inserire altri elementi di Markdown nella lista, basta indentare di quattro spazi per ogni livello. Quindi:

1. Liste dentro ad una lista:
    - Indentata di quattro spazi.
        * Indentata di otto spazi.
    - Quattro spazi di nuovo.

2.  Più paragrafi nello stesso elemento di una lista:

    È meglio indentare i paragrafi con 4 spazi
    Puoi usarne anche tre, ma otterrai
    un risultato più confuso nella lettura da editor.

    Questo paragrafo è ancora parte della lista, ma appare male per le persone. Quindi è una buona idea scrivere i paragrafi come ho fatto precedentemente.

3. Preformatted text in a list item:

        Salta una riga e indenta di 8 spazi.
        I primi quattro spazi servono per la lista,
        e gli altri quattro per racchiudere il testo dentro al tag code.


Immagini
========


Le immagini sono come i links, ma hanno un punto esclamativo all'inizio:

 ![XHTML Validato] (http://w3.org/Icons/valid-xhtml10).

Le parole nelle parentesi quadre sono il testo alternativo, che verranno visualizzate nel caso il browser non riesca a caricare l'immagine.  Ricordati di inserire un testo alternativo comprensibile ed esaustivo, per le persone che leggono il forum tramite reader di testo.

Come i links, le immagini possono funzionare con delle definizioni:

 Questa pagina è ![XHTML Validata][checkmark].

 [checkmark]: http://w3.org/Icons/valid-xhtml10
          (Pagina validata!)


**Nota:**

Markdown does not currently support the shortest reference syntax for images:
Markdown non supporta attualmente la versione corta per le definizioni nelle immagini:

  Questo non funziona: ![checkmark].

Ma puoi usare una sintassi simile, anche se un po più scomoda:

  Qusto ![checkmark][] funziona.


Testo preformattato
=================

Puoi inserire del testo preformattato usando Markdown:

Per creare un blocco di codice, indenta di quattro spazi:

    printf("addio mondo!");  /* questo messaggio di suicidio
                                 era in C */

Il testo verrà racchiuso tra i tags `<pre>` e `<code>`, e il browser visualizzerà il testo con un font monospace.  I primi quattro spazi verranno eliminati, ma tutti quelli successivi verranno mantenuti.

Non puoi usare Markdown o HTML dentro ad un blocco di codice, essi non verranno interpretati:

    <blink>
       Questo codice non lampeggerà
       se sarà racchiuso dentro ad un blocco di codice.
    </blink>


Codice in linea con il testo
=======================

Puoi inserire un codice in linea racchiuso tra tags`<code>` usando Markdown.  Usa gli apostrofi all'indietro per ottenere ciò:

 Premere il tasto `<Tab>`, quindi scrivere `$`.

 * Questo è l'apostrofo da utilizzare: ` *

(Nella tastiera italiana non è possibile scrivere questo apostrofo, su Linux è possibile però scriverlo premendo AltGr + apice).
Tutti questi codici funzionano, l'unico problema è che vengono aggiunti diversi accapo, e sto cercando di risolvere il problema.


Ecco una demo:
http://forum.allise.net/viewtopic.php?f=20&t=616

L'unico problema rimanente sono gli accapo aggiuntivi, che spero di risolvere presto ^.^"
Qualcuno ha voglia di aiutarmi?
Grazie

Re: [DEV] Textile

Inviato: 12/06/2012, 2:26
da PRO
Purtroppo io non so come aiutarti, ho ancora tanto da imparare ma lo farei volentieri

Re: [DEV] Textile

Inviato: 12/06/2012, 10:14
da Lady R
Ho cambiato l'engine con uno che usa una sintassi più simile al Textile originale:

Per installarlo:
Create il file /includes/markdown.php e dentro inseriteci questo testo:
http://pastebin.com/nt2n0CnZ

Aprite /includes/message_parser.php

Cercate:

Codice: Seleziona tutto

if (!class_exists('bbcode'))
{
   include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
}
Subito dopo aggiungete:

Codice: Seleziona tutto

// Textile MOD
include($phpbb_root_path . 'includes/markdown.' . $phpEx);
// Textile MOD
Cecate:

Codice: Seleziona tutto

$this->message = bbcode_nl2br($this->message);
Sostituitelo con:

Codice: Seleziona tutto

//Textile MOD
$this->message = Markdown($this->message);
// Textile MOD
$this->message = bbcode_nl2br($this->message);
Cercate:

Codice: Seleziona tutto

function magic_url($server_url)
   {
      // We use the global make_clickable function
      $this->message = make_clickable($this->message, $server_url);
   }
Sostituite con:

Codice: Seleziona tutto

function magic_url($server_url)
   {
      // We use the global make_clickable function
      //$this->message = make_clickable($this->message, $server_url); // Commented by Textile MOD
      // Textile MOD
      $this->message = $this->message;
      // Textile MOD
   }
Aprite /viewtopic.php
Cercate:

Codice: Seleziona tutto

include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
Aggiungete sotto:

Codice: Seleziona tutto

// Textile MOD
include($phpbb_root_path . 'includes/markdown.' . $phpEx);
// Textile MOD
Cercate:

Codice: Seleziona tutto

$message = bbcode_nl2br($message);
Sostituite con:

Codice: Seleziona tutto

 // Textile MOD
 $message = Markdown($message); 
 // Textile MOD
 $message = bbcode_nl2br($message);

I comandi utilizzabili sono spiegati di seguito:

Codice: Seleziona tutto

Guida dei codici Textile (o Markdown)
=====================

Questa è una guida per i codici Markdown, questa MOD è creata da Lady R ([Allise web site])

 [Allise web site]:
   http://allise.net


Corsivo e Grassetto
================

*Questo è un testo in corsivo*, e si può scrivere anche _così_.

**Questo è un testo in grassetto**, e si può scrivere anche __così__.

Puoi usare insieme ***corsivo e grassetto*** in questo modo, oppure puoi farlo ___così___.


Collegamenti
=====

Collegamenti semplici
------------

Ci sono tre modi per scrivere links.  Ognuno è più semplice da leggere del precedente:

Questo è un link in linea che porta a [Google](http://www.google.it/).
Questo è un link (stile riferimento) a [Google] [1].
Questo è un link molto leggibile a [Yahoo!].

  [1]: http://www.google.it/
  [yahoo!]: http://www.yahoo.com/

Le definizioni dei links possono essere inserite ovunque nel documento,  prima o dopo il punto in cui vengono utilizzati i links.
Le definizioni dei links (1 e Yahoo!) possono essere una qualunque stringa univoca, a non sono case-sensitive: [Yahoo!] è lo stesso di [yHaOo!].


Links avanzati: con attributi titoli
--------------------------------

Puoi anche aggiungere un attributo "titolo" ad un link, che apparirà quando passerai il mouse sul collegamento.
I titoli sono utili se il testo del link non è abbastanza chiaro da definire il contenuto del collegamento.

Non scrivere mai "[clicca qui][consiglio]".

  [consiglio]: http://www.w3.org/QA/Tips/noClickHere
        (Consiglio riguardo alla frase "clicca qui")


Titoli
=======

Ci sono due metodi per scrivere i titoli usando Markdown.  (in questo esempio Titolo 1 è il più grande, Titolo 6, il più piccolo)

Puoi sottolineare un titolo per avere rispettivamente H1 ed H2:

Titolo H1
========

Titolo H2
-----------

Il numero di simboli `=` o `-` non ha importanza, puoi scriverne anche uno solo. Ma usarne abbastanza da sottolineare l'intero testo renderà il tuo post più leggibile nella modalità di modifica.

Puoi anche usare i cancelletti per scrivere dei titoli:

# Titolo H1 #
## Titolo H2 ##
### Titolo H3 ###
#### Titolo H4 ####
##### Titolo H5 #####
###### Titolo H6 ######

I simboli `#` di chiusura sono opzionali.


Horizontal Rules
================

Puoi inserire una riga orizzontale scrivendo alcuni trattini, asterischi o trattini_bassi uno accanto all'altro:

---

*******
___

Puoi anche inserire degli spazi tra un simbolo e l'altro:

-  -  -  -

Tutti questi esempi producono lo stesso risultato.


Liste
=====

Liste semplici
-----------------

Una lista puntata:

- Puoi usare un meno per inserire un punto
+ O un simbolo più
* Oppure un asterisco

Una lista numerata

1. Le liste numerate sono semplici
2. Markdown ignora il numero da voi scritto, e li inserisce in maniera progressiva
7. Quindi questo apparirà comunque come il punto 3.

Una lista con doppio spazio tra gli elementi:

- Queste liste verranno racchiuse tra un tag '<p>'

- Quindi ci sarà più spazio tra un elemento e l'altro


Liste avanzate
------------------

Puoi inserire altri elementi di Markdown nella lista, basta indentare di quattro spazi per ogni livello. Quindi:

1. Liste dentro ad una lista:
    - Indentata di quattro spazi.
        * Indentata di otto spazi.
    - Quattro spazi di nuovo.

2.  Più paragrafi nello stesso elemento di una lista:

    È meglio indentare i paragrafi con 4 spazi
    Puoi usarne anche tre, ma otterrai
    un risultato più confuso nella lettura da editor.

    Questo paragrafo è ancora parte della lista, ma appare male per le persone. Quindi è una buona idea scrivere i paragrafi come ho fatto precedentemente.

3. Preformatted text in a list item:

        Salta una riga e indenta di 8 spazi.
        I primi quattro spazi servono per la lista,
        e gli altri quattro per racchiudere il testo dentro al tag code.


Immagini
========


Le immagini sono come i links, ma hanno un punto esclamativo all'inizio:

 ![XHTML Validato] (http://w3.org/Icons/valid-xhtml10).

Le parole nelle parentesi quadre sono il testo alternativo, che verranno visualizzate nel caso il browser non riesca a caricare l'immagine.  Ricordati di inserire un testo alternativo comprensibile ed esaustivo, per le persone che leggono il forum tramite reader di testo.

Come i links, le immagini possono funzionare con delle definizioni:

 Questa pagina è ![XHTML Validata][checkmark].

 [checkmark]: http://w3.org/Icons/valid-xhtml10
          (Pagina validata!)


**Nota:**

Markdown does not currently support the shortest reference syntax for images:
Markdown non supporta attualmente la versione corta per le definizioni nelle immagini:

  Questo non funziona: ![checkmark].

Ma puoi usare una sintassi simile, anche se un po più scomoda:

  Qusto ![checkmark][] funziona.


Testo preformattato
=================

Puoi inserire del testo preformattato usando Markdown:

Per creare un blocco di codice, indenta di quattro spazi:

    printf("addio mondo!");  /* questo messaggio di suicidio
                                 era in C */

Il testo verrà racchiuso tra i tags `<pre>` e `<code>`, e il browser visualizzerà il testo con un font monospace.  I primi quattro spazi verranno eliminati, ma tutti quelli successivi verranno mantenuti.

Non puoi usare Markdown o HTML dentro ad un blocco di codice, essi non verranno interpretati:

    <blink>
       Questo codice non lampeggerà
       se sarà racchiuso dentro ad un blocco di codice.
    </blink>


Codice in linea con il testo
=======================

Puoi inserire un codice in linea racchiuso tra tags`<code>` usando Markdown.  Usa gli apostrofi all'indietro per ottenere ciò:

 Premere il tasto `<Tab>`, quindi scrivere `$`.

 * Questo è l'apostrofo da utilizzare: ` *

(Nella tastiera italiana non è possibile scrivere questo apostrofo, su Linux è possibile però scriverlo premendo AltGr + apice).
Tutti questi codici funzionano, l'unico problema è che vengono aggiunti diversi accapo, e sto cercando di risolvere il problema.


Ecco una demo:
http://forum.allise.net/viewtopic.php?f=20&t=616

L'unico problema rimanente sono gli accapo aggiuntivi, che spero di risolvere presto ^.^"

Re: [DEV] Textile

Inviato: 12/06/2012, 10:40
da Lady R
Modificato markdown.php, ora non aggiunge più accapo indesiderati, eccetto nelle liste doppie,

in pratica otterrete:

Codice: Seleziona tutto

- uno
- due

    - uno seconda lista
- tre
Invece di:

Codice: Seleziona tutto

- uno
- due
    - uno seconda lista
- tre
La parte di codice interessata è la seguente:

Codice: Seleziona tutto

function _doLists_callback($matches) {
		# Re-usable patterns to match list item bullets and number markers:
		$marker_ul_re  = '[*+-]';
		$marker_ol_re  = '\d+[\.]';
		$marker_any_re = "(?:$marker_ul_re|$marker_ol_re)";
		
		$list = $matches[1];
		$list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol";
		
		$marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re );
		
		$list .= "\n";
		$result = $this->processListItems($list, $marker_any_re);
		
		$result = $this->hashBlock("<$list_type>" . $result . "</$list_type>");
		return $result;
	}

	var $list_level = 0;
Bisognerebbe rimuvere: $list .= "\n";

ma se lo rimuovo, il secondo e successivi elementi delle sottoliste si buggano e non vengono interpretati...

Re: [DEV] Textile

Inviato: 13/06/2012, 22:16
da Lady R
Che bello vedere che le mie MOD hanno sempre un successo iper galattico *.*

vabe io sul mio sito ho implementato una versione quasi del tutto funzionante, quella descritta nella guida invece rimuove le linee vuote... quindi non puoi spaziare con più di una riga i testi...

Qualche Mod può cambiare da DEV ad ABD? Grazie

Re: [DEV] Textile

Inviato: 14/06/2012, 0:23
da Barrnet
Sinceramente non ho manco capito a cosa serve °_°

Re: [DEV] Textile

Inviato: 14/06/2012, 10:40
da Lady R
apri la pagina demo e lo capisci

R: [DEV] Textile

Inviato: 14/06/2012, 14:30
da Carlo
Il problema non è che la tua MOD non interessa a nessuno. Il "problema" è che quasi nessuno visita questa sezione così come altre.
L'utente tipico passa sul forum solo per richiedere supporto, se ne frega del resto.

La tua MOD è interessante, mi piacerebbe includere il tuo codice in un mio progetto, esterno a phpBB.

Re: [DEV] Textile

Inviato: 14/06/2012, 19:07
da Barrnet
Ho visto: il fatto che, almeno in phpbb, non ne vedo una utilità pratica: sono tutte funzioni replicabili dai bbcode...

Re: [DEV] Textile

Inviato: 14/06/2012, 22:47
da Lady R
@barrnet: i bbcode sono molto più scomodi e lunghi da scrivere, oltre ad essere più "difficili" per l'utente medio.
I textile sono molto semplici invece, e molto più veloci da scrivere.

Visto come si crea una tabella usando Textile?

Codice: Seleziona tutto

|_. Utente  |_. Sito                   |
| Barrnet   | http://videogamezone.eu/ |
| Lady R    | http://allise.net        |