最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Markdown中表格中包含中括号的链接无效

markdown crifan 4507浏览 0评论

Gitbook中编辑表格,想要实现html页面中的表格效果:

其中有个左中括号,想要加上链接,结果Gitbook的markdown无法解析:

即:

[\[](https://en.wikipedia.org/wiki/Square_bracket)

结果解析出来是:

[[](https://en.wikipedia.org/wiki/Square_bracket)

而改为:

[[](https://en.wikipedia.org/wiki/Square_bracket)

解析为:

[

所以想要去搞清楚如何在表格单元内,实现做括号加链接

而自己折腾了半天,对于类似问题,找到个间接的不完美的办法,加上左上角的顿号,英文叫做backtick,即:

[`^`](https://en.wikipedia.org/wiki/Caret)

然后是可以实现加上链接的,只不过底部有个inline code的背景色而已(很小,不容易看出来)

但是好像不是终极解决办法。

markdown inside table left bracket add link

markdown  left bracket add link

How to escape backslash bracket (\[) in Markdown? – Stack Overflow

Markdown Cheat Sheet

试试:\\\[

结果不行。

Daring Fireball: Markdown Syntax Documentation

特殊字符的英文叫法:

\   backslash

`   backtick

*   asterisk

_   underscore

{}  curly braces

[]  square brackets

()  parentheses

#   hash mark

+   plus sign

–   minus sign (hyphen)

.   dot

!   exclamation mark

markdown brackets escape

markdown escape square bracket

Escape square brackets in comment links – Meta Stack Exchange

BACKSLASH ESCAPES

Markdown allows you to use backslash escapes to generate literal characters which would otherwise have special meaning in Markdown’s formatting syntax. For example, if you wanted to surround a word with literal asterisks (instead of an HTML <em> tag), you can use backslashes before the asterisks, like this:

\*literal asterisks\*

Markdown provides backslash escapes for the following characters:

\   backslash

`   backtick

*   asterisk

_   underscore

{}  curly braces

[]  square brackets

()  parentheses

#   hash mark

+   plus sign

–   minus sign (hyphen)

.   dot

!   exclamation mark

->

所以,此处用:

\[

之所以显示异常,应该就是Gitbook本身的markdown的解析,不符合markdown语法标准。

can’t escape brackets · Issue #8 · greghendershott/markdown

Square brackets · Issue #667 · rstudio/rmarkdown

算了,还是没有解决办法,就暂时用自己发现的,别人提到的,用backtick,左上角波浪号+Shfit的反引号`去加到左右中括号上,结果发现,对于此处的反引号包裹的左中括号,不起效果:

[`[`](https://en.wikipedia.org/wiki/Square_bracket) 

markdown escape character

How do I escape a backtick ` in Markdown? – Meta Stack Exchange

去试试gitbook的serve,看看生成出来的html,是否可以正常

结果都显示不全:

然后去看看html本身

结果是:

<th style=“text-align:left”><a href=https://en.wikipedia.org/wiki/@” target=“_blank”>@</a></th>

<th style=“text-align:left”>[<code>[</code>](<a href=https://en.wikipedia.org/wiki/Square_bracket target=“_blank”>https://en.wikipedia.org/wiki/Square_bracket</a>)</th>

<th style=“text-align:left”><a href=https://en.wikipedia.org/wiki/Square_bracket target=“_blank”>]</a></th>

很明显,不正常。

看看:

html escape character

中是否可以找到左中括号的转义字符

HTML Escape Characters: Complete List

[
是[

去试试

[[](https://en.wikipedia.org/wiki/Square_bracket)

好像是可以了:

对应的,把之前的:上尖括号也换成:

^
^

即:

[^](https://en.wikipedia.org/wiki/Caret) 

效果:

【总结】

gitbook的markdown编译器好像有bug,不支持\[去表示左中括号,所以无法解析此处表格内的:

<code>[\[](https://en.wikipedia.org/wiki/Square_bracket)
</code>

最后改为左中括号的html转义值:

<code>[&#091;](https://en.wikipedia.org/wiki/Square_bracket)
</code>

就可以了。

-》当然,还是希望Gitbook的markdown的编译器解决这个bug,或者叫增加这个功能,是终极解决办法。

另外,也把之前的上尖括号:

<code>[`^`](https://en.wikipedia.org/wiki/Caret)
</code>

改为对应的html转义值:

<code>[&#094;](https://en.wikipedia.org/wiki/Caret) 
</code>

即可。

注:

其他一些常见字符的html entity字符对应的值可以参考:

HTML Escape Characters: Complete List

和:

Complete list of HTML entities – FreeFormatter.com

转载请注明:在路上 » 【已解决】Markdown中表格中包含中括号的链接无效

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
81 queries in 0.250 seconds, using 22.09MB memory