BitBucket中的README.md文件中的Markdown内部链接无法使用

17

我在一个 BitBucket 项目中有一个 README.md 文件,大致内容如下:

## Table of Contents

* [Document Organization](#document-organization)

...

## Document Organization
当我使用Sublime Text在浏览器中打开markdown预览时,目录中的链接会跳转到相应的部分,但是当我将文件上传到BitBucket时,URL似乎是正确的,但它不会跳转到该部分。我该如何解决这个问题?
5个回答

26

我会检查锚点标签生成的HTML代码,根据我对Bitbucket自动生成ID的记忆,我猜测你的链接需要像这样:

* [Document Organization](#markdown-header-document-organization)

具有相同名称的多个标题会被枚举,例如 #markdown-header-document-organization_1_2 等。 - achennu
请注意,在答案中,您必须包括前缀_markdown-header_,后跟部分名称。然后它就像一个Bitbucket README.md一样工作。工作示例:https://bitbucket.org/tutorials/markdowndemo/overview - intotecho
是的,这个方法很好用。查看浏览器中的HTML源代码帮助我理解了一切。基本上[Abc Def Xyz]会自动转换为(#markdown-header-abc-def-xyz)。所以,只需将空格替换为连字符,并注意所有字符都会转换为小写。例如:[SDK API]变成了(#markdown-header-sdk-api)。 - andude

2

2
这里有一段代码片段,可以生成Bitbucket自述文件(或其他Markdown文件)的目录。
cat readme.md  |\
grep "^#" |\
sed 's|^[ ]*||g' |\
awk  -F, '\
BEGIN {
}{
  basic_name=$1;
  anchor=basic_name
  basic_name_no_hash=basic_name
  gsub(/^[#]* /,"",basic_name_no_hash)
  gsub(/[ ]*$/,"",basic_name_no_hash)
  subs_string=basic_name
  subs = gsub(/#/,"",subs_string);
  gsub(/^[#]+ /,"",anchor);
  gsub(/ /,"-",anchor);
  anchor = tolower(anchor);
  {for (i=0;i<subs-1;i++) printf "    " }
  print "* [" basic_name_no_hash "](#markdown-header-" anchor ")";
}
END {
}'

我还没有尝试过。但如果它有效的话,这是一段不错的代码。谢谢。 - JW.

2

对我来说有效(Atlassian Bitbucket v6.10.0):

## Table of Contents

* [Document Organization](#document-organization)

...

## Document Organization <a name="document-organization"></a>

只需在标题行中添加一个锚链接<a name="document-organization"></a>


我找到的唯一适用于BitBucket服务器的解决方案。然而,它还不能与其他文件中的章节一起使用。像[link](filename.md#section)这样的东西只会带我到文件,而不是到章节。 - Johannes

0
这是一个适用于 BitBucket 和其他 md 文件编辑器的解决方案。
1. [Header one](#custom-id-1)
2. [Header two](#other-id)
    1. [Subheader](#id)
    2. [Subsubheader](#isidtoo)

# Header one <a name="custom-id-1" id="custom-id-1"></a>
# Header two <a name="other-id" id="other-id"></a>
## Subheader <a name="id" id="id"></a>
### Subsubheader  <a name="isidtoo" id="isidtoo"></a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接