2011-04-20 776 views
6

Veo que hay una clase de reducción CMarkdown, pero ¿cómo la uso?Cómo utilizar la clase de reducción en Yii

No hay ejemplos en ninguna parte y los métodos no se explican por sí mismos.

¿Lo uso estáticamente como CHtml, o raro como un Widget?
¿O tengo que init en algún lugar como un modelo?

Respuesta

7

Usted puede utilizar CMarkdown como un widget en una vista como esta:

$this->beginWidget('CMarkdown', array('purifyOutput'=>true)); 
echo $content; 
$this->endWidget(); 

Cuando el contenido de $ contiene una sintaxis de rebajas será procesado por el widget. La matriz contiene valores para las propiedades públicas de CMarkdown. Las propiedades están documentadas in the class reference.

CMarkdown se utiliza en el ejemplo del blog Yii y lo encontrará en this view file.

+0

Aún más buffer de salida ... Eso apesta. ¡Gracias! Esto es lo que estaba buscando. – Rudie

6

Esto funciona y es el más fácil de la OMI:

static function markdown($str) { 
    $md = new CMarkdown; 
    return $md->transform($str); 
} 

Una función estática en el controlador de matriz. Probablemente no es la forma en Yii, pero es simple:

<?=self::markdown($post->body)?> 
+0

Tiene razón, esa no sería la manera Yii. Para su uso, es mejor instanciar CMarkdownParser, no CMarkdown, ya que el primero es simplemente un contenedor para Markdown, y el último es un analizador de salida Yii, que usa CMarkdownParser. Su método, mientras funciona, incurre en más gastos generales. ||| EDITAR: la única diferencia es que el método da como resultado que también se registre el CSS de rebajas. No estoy seguro si ese es tu deseo. –

+0

Overhead schmoverhead. Es 26 veces más legible y solo la mitad de las letras. Sin embargo, he abandonado a Yii hace mucho tiempo. [Go ROW!] (Https://github.com/rudiedirkx/Rudie-on-wheels/blob/master/example_app/views/blog/index.php#L19) – Rudie

+0

No diciendo que una función auxiliar estática no sería útil , solo debatiendo sobre el uso de CMarkdown, ya que es una puerta de entrada a CMarkdownParser (al menos, en la forma en que lo está usando), mientras que puede omitir CMarkdown por completo y simplemente crear una instancia de CMarkdownParser. Felicidades en su propio marco independientemente. –