Skip to content

Instantly share code, notes, and snippets.

@nokimaro
Forked from jbowens/ListCodeDefinition.php
Last active August 29, 2015 14:11
Show Gist options
  • Save nokimaro/723f6c1bc09a04d85eef to your computer and use it in GitHub Desktop.
Save nokimaro/723f6c1bc09a04d85eef to your computer and use it in GitHub Desktop.
<?php
require_once "jBBCode" . DIRECTORY_SEPARATOR . "Parser.php";
/**
* Implements a [list] code definition that provides the following syntax:
*
* [list]
* [*] first item
* [*] second item
* [*] third item
* [/list]
*
*/
class ListCodeDefinition extends \JBBCode\CodeDefinition
{
public function __construct()
{
$this->parseContent = true;
$this->useOption = false;
$this->setTagName('list');
$this->nestLimit = -1;
}
public function asHtml(\JBBCode\ElementNode $el)
{
$bodyHtml = '';
foreach ($el->getChildren() as $child) {
$bodyHtml .= $child->getAsHTML();
}
$listPieces = explode('[*]', $bodyHtml);
unset($listPieces[0]);
$listPieces = array_map(function($li) { return '<li>'.$li.'</li>' . "\n"; }, $listPieces);
return '<ul>'.implode('', $listPieces).'</ul>';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment