Php 如何扩展Parsedown以向表标记添加类
我想为编写一个扩展,以便可以向每个表标记添加一个默认类。我发现我可以通过在Php 如何扩展Parsedown以向表标记添加类,php,html-parsing,php-extension,parsedown,Php,Html Parsing,Php Extension,Parsedown,我想为编写一个扩展,以便可以向每个表标记添加一个默认类。我发现我可以通过在blockTable函数(大约第870行)中添加行来分配属性,从而成功地破解源代码: 但是,如果我尝试不严格地遵循这些规则,我将失败(可能是因为表解析可能是一个迭代过程,并且教程中的示例是一个简单的字符串替换) 我试过: class Extension extends Parsedown { protected function blockTable($Line, array $Block = null)
blockTable
函数(大约第870行)中添加行来分配属性,从而成功地破解源代码:
但是,如果我尝试不严格地遵循这些规则,我将失败(可能是因为表解析可能是一个迭代过程,并且教程中的示例是一个简单的字符串替换)
我试过:
class Extension extends Parsedown
{
protected function blockTable($Line, array $Block = null)
{
$Block = parent::blockTable($Line, array $Block = null);
$Block['table']['attributes']['class'] = 'table';
return $Block;
}
}
但这不起作用。我不太确定你的代码有什么问题,因为你的代码和我的匹配。我只是加了一句
'attributes' => array(
'class' => 'table table-responsive'
),
要识别表格,请在第850行,以便
$Block = array(
'alignments' => $alignments,
'identified' => true,
'element' => array(
'name' => 'table',
'handler' => 'elements',
'attributes' => array(
'class' => 'table table-responsive',
),
),
);
这对我来说很好。但这对你来说似乎是一样的,减去表响应
您使用的是什么版本?我在symfony演示应用程序中遇到了完全相同的问题。 最后发现它没有被解析,因为输出被html消毒剂清除了。 允许表的class属性解决了这个问题 对于symfony 4演示应用程序,添加到
config/packages/html\u sanitizer.yaml
:
html_sanitizer:
#[...]
sanitizers:
default:
# [...]
tags:
table:
allowed_attributes:
- "class"
如果你想从OP获得更多信息,请使用评论。我会的,但现在还不能评论。我试图帮助你,但我可以,但不被允许的网站。这是完全可以理解的。关于元堆栈溢出,已经讨论了很多次。一旦你有足够的钱,你将能够;相反,复制!谢谢你刚才复习了你的一个问题。现在你有足够的代表到处发表评论。祝你好运:)
html_sanitizer:
#[...]
sanitizers:
default:
# [...]
tags:
table:
allowed_attributes:
- "class"