paulyg/wikicreole

一个库,可以将常见的、标准化的wiki标记语言Creole转换为HTML。

0.1.5 2012-07-13 02:46 UTC

This package is not auto-updated.

Last update: 2024-09-28 12:39:02 UTC


README

include 'WikiCreole.php';
$parser = new WikiCreole(array(
    'urlBase' => '/wiki/',
    'imgBase' => '/media/',
    ),
    $list_of_existing_page_slugs
);
$html = $parser->parse($wiki_markup);

功能

  • 解析Creole 1.0规范中的所有内容。
  • 解析Creole的附加功能,例如, ,和 。关于这些标签的讨论见下文。
  • 自动在链接或图片的slug前添加基本URL或路径。请参阅下方的选项键。
  • 自动将slug转换为指向其他wiki页面的链接。这消除了URL路径中不允许的空格和其他字符。
  • 控制应用于所有链接标签的标记,如果您想对您网站内外的链接进行不同的样式化。请参阅下方的linkFormat*选项键。
  • 宏。在宏标记标签内运行用户定义的函数。

设置选项

此类需要一个选项数组作为其构造函数的第一个参数。选项数组遵循 'keyname' => 'value' 格式。目前有六个有效的键名称。

以上任何选项都可以通过方法设置。

第二个可选构造函数参数接受一个包含现有页面列表的数组。数组的值(键被忽略)必须是页面URL的slug,在去除任何非法字符并进行格式化后(即空格转换为短横线)。有关URL格式化的更多信息,请参阅方法和属性。我意识到不同的软件包可能有不同的URL格式化/准备规则。这可能是将来可插拔的。

已知问题

  • 多行列表项不起作用。
  • 将}}}}放在no wiki标签内会导致解析错误。

Creole扩展

  • 我喜欢使用删除线,所以我添加了和然后也作为标记格式。渲染的HTML使用带有应用于兼容HTML4/XHTML1 Strict样式的标签。然而请注意和是有效的HTML5标签。我可能在未来添加一个标志来在这两种选项之间切换。
  • 我还实现了扩展,它使用标签包装文本(这本来应该是但被HTML5丢弃了)。

块级宏

您通过调用方法来注册您的宏。同样,$callback可以是任何有效的PHP可调用,包括闭包。解析器将使用以下语法匹配块级宏

<<macroName arg1 arg2
This is some paragraph text.
>>

宏函数的参数应该用空格分隔,并且必须出现在第一行上。《em>body》宏跟在下一行上,直到找到结束标记。当您的宏被调用时,参数将按照它们出现的顺序传递。主体总是最后。您的函数返回的内容将被放置在宏标签的位置。内联宏是我开发列表中的下一个项目。

未来的计划

  • 修复已知问题中的内容。
  • 内联宏。
  • 可能自动在标题上创建锚点(这是一个常见的使用模式)。
  • 实现严格/非严格模式,可以在HTML4/XHTML1 Strict合规性和HTML 5允许的标签之间切换。
  • 免费链接实现可插拔格式化。
  • 将纯文本wiki链接转换为页面slugs的可插拔转换。