jbowens / jBBCode

A lightweight but extensible BBCode parser
http://jbbcode.com
MIT License
164 stars 32 forks source link

Is it possible to create valid table code-set? #35

Open nokimaro opened 9 years ago

nokimaro commented 9 years ago

Yes it's easy to create bb-codes for table [table], [th], [tr], [td] with CodeDefinitionBuilder like this

//table
$builder = new CodeDefinitionBuilder('table', '<table>{param}</table>');
array_push($this->definitions, $builder->build());

//thead
$builder = new CodeDefinitionBuilder('th', '<th>{param}</th>');
array_push($this->definitions, $builder->build());

//tr
$builder = new CodeDefinitionBuilder('tr', '<tr>{param}</tr>');
array_push($this->definitions, $builder->build());

//td
$builder = new CodeDefinitionBuilder('td', '<td>{param}</td>');
array_push($this->definitions, $builder->build());

But how to create definitions to parse [tr] only if it's inside [table][/table], and parse [td] if it's inside [tr][/tr]

Any solutions?

t1gor commented 9 years ago

why is this a problem, first place? Do you use those short-codes somewhere else? Can you please provide an example?

nokimaro commented 9 years ago

This short-codes for users use. Simple table

[table]
[tr]
[td] content [td]
[tr]
[table]

Will be replaced to

<table>
<tr>
<td> content </td>
</tr>
</table>

But this will be invalid HTML, because no <table> around <td> etc...

[td]
[tr]
[table] invalid html [/table]
[/tr]
[/td]
<td>
<tr>
<table> invalid html</table>
</tr>
</td>
lobodol commented 9 years ago

My [table] BBCode is not converted, is it an issue ?

Kubo2 commented 9 years ago

@lobodol How can we know? We don't even know, how your actual code looks like.