我可以使用Markdown在段落上定义类名吗?如果是这样,怎么办?
我可以使用Markdown在段落上定义类名吗?如果是这样,怎么办?
Answers:
不,Markdown的语法不能。您可以通过Markdown Extra 设置ID值。
如果愿意,可以使用常规HTML,并添加属性markdown="1"
以继续在HTML元素内进行markdown转换。但这需要Markdown Extra。
<p class='specialParagraph' markdown='1'>
**Another paragraph** which allows *Markdown* within it.
</p>
<blockquote>
)我在网上找到了以下内容:
功能
function _DoBlockQuotes_callback($matches) {
...cut...
//add id and class details...
$id = $class = '';
if(preg_match_all('/\{(?:([#.][-_:a-zA-Z0-9 ]+)+)\}/',$bq,$matches)) {
foreach ($matches[1] as $match) {
if($match[0]=='#') $type = 'id';
else $type = 'class';
${$type} = ' '.$type.'="'.trim($match,'.# ').'"';
}
foreach ($matches[0] as $match) {
$bq = str_replace($match,'',$bq);
}
}
return _HashBlock(
"<blockquote{$id}{$class}>\n$bq\n</blockquote>"
) . "\n\n";
}
降价促销
>{.className}{#id}This is the blockquote
结果
<blockquote id="id" class="className">
<p>This is the blockquote</p>
</blockquote>
原始HTML实际上在markdown中是完全有效的。例如:
Normal *markdown* paragraph.
<p class="myclass">This paragraph has a class "myclass"</p>
只要确保HTML不在代码块内即可。
如果您的环境是JavaScript,请结合使用markdown-it和插件markdown-it-attrs:
const md = require('markdown-it')();
const attrs = require('markdown-it-attrs');
md.use(attrs);
const src = 'paragraph {.className #id and=attributes}';
// render
let res = md.render(src);
console.log(res);
输出量
<p class="className" id="id" and="attributes">paragraph</p>
注意:在减价中允许使用属性时,请注意安全性!
免责声明,我是markdown-it-attrs的作者。
这是@Yarin回答后的kramdown工作示例。
A simple paragraph with a class attribute.
{:.yourClass}
参考:https : //kramdown.gettalong.org/syntax.html#inline-attribute-lists
如上所述,降价本身使您无法自拔。但是,根据实现,有一些解决方法:
至少有一个版本的MD被认为<div>
是块级标签,但<DIV>
仅仅是文本。但是,所有浏览器都不区分大小写。这使您可以保持MD的语法简单性,但要增加div容器标签。
因此,以下是一种解决方法:
<DIV class=foo>
Paragraphs here inherit class foo from above.
</div>
这样做的缺点是输出代码具有<p>
包裹<div>
行的标签(两者都是,第一个是因为行不匹配,第二个是因为行不匹配。没有浏览器对此我大惊小怪,但是代码不会t验证MD总是倾向于放入备用<p>
标签。
markdown的几种版本都实现了约定,<tag markdown="1">
在这种情况下,MD会在标签内部进行常规处理。上面的示例变为:
<div markdown="1" class=foo>
Paragraphs here inherit class foo from above.
</div>
如果使用引用的链接,则当前版本的Fletcher的MultiMarkdown允许属性跟随该链接。
在苗条的降价促销中,使用以下代码:
markdown:
{:.cool-heading}
#Some Title
转换为:
<h1 class="cool-heading">Some Title</h1>
还应该提到的是,<span>
标签允许它们在内部使用-块级项会在其中固有地使MD无效,除非您配置它们不这样做,但内联样式本身会在其中允许MD。因此,我经常做类似于...的事情。
This is a superfluous paragraph thing.
<span class="class-red">And thus I delve into my topic, Lorem ipsum lollipop bubblegum.</span>
And thus with that I conclude.
我不是100%知道这是否通用,但在我使用的所有MD编辑器中似乎都是这种情况。