在尝试在一个新的SE博客上发表文章时,我遇到了以下问题。我被列为作家,这意味着我的能力有些有限。特别是,我不允许发布任意的HTML,而是首先通过kses解析器发送我的条目。总的来说,这似乎是一件好事(我不想对HTML负责!)但它干扰了降价处理器的一部分:引号。我不会写:
> this is a quote
因为>
被kses例程转义。现在,修改kses代码以允许其通过是一件棘手的事情,而且是错误的解决方案(因为它会使kses
语法分析器与降价语法过于紧密;实际上,正确的解决方案是在数据被处理后验证数据,但不要紧。这不是什么大问题,因为我当然可以使用<blockquote>...</blockquote>
直接标记。只有这样才能关闭其中的降价处理器。由于我们使用的是PHPMarkdownExtra(至少,测试似乎表明我们是这样),所以我可以使用markdown="1"
fake属性在blockquote内启用降价。但这被kses删除,因为它不在批准的属性列表中!但是,添加markdown
添加到已批准的属性列表似乎比添加对> quote
语法;特别是有一个数组$allowedposttags
它保存了这些信息,因此意味着只需以明显的方式更改该数组。
但是,这是一个问题,在哪里进行修改是正确的?显然,修改kses.php
是最后的手段。我的猜测是markdown.php
文件进行此修改(因为该文件知道将要使用Markdown)。但如果我不想改变任何可能被上游改变的东西,我应该把所需的改变放在哪里?
(当我在上面说“我”时,我实际上并不是指“我”,因为我想在SE博客上改变这一点;所以请用Rebecca Chernoff能理解的语言解释!)