diff --git a/lib/transform.js b/lib/transform.js index afd713c..c29af62 100644 --- a/lib/transform.js +++ b/lib/transform.js @@ -165,6 +165,30 @@ exports = module.exports = function transform(content, mode, maxHeaderLevel, tit if (currentToc === toc) return { transformed: false }; var data = updateSection(lines.join('\n'), wrappedToc, matchesStart, matchesEnd, true); + + // https://github.com/thlorenz/doctoc/issues/174 + if (mode === "bitbucket.org") { + var newlinesToToc = []; + for (var i = 0; i < linesToToc.length; i++) { + var mappedHeader = linkedHeaders.find((x) => i === x.line - 1); + if (mappedHeader) { + var headerAnchor = mappedHeader.anchor.split("#")[1].replace(")", ""); + var expectedHtmlAnchor = ''; + + if (expectedHtmlAnchor !== linesToToc[i - 1]) { + newlinesToToc.push(expectedHtmlAnchor); + } + } + newlinesToToc.push(linesToToc[i]); + } + data = updateSection( + newlinesToToc.join("\n"), + wrappedToc, + matchesStart, + matchesEnd, + true + ); + } return { transformed : true, data : data, toc: toc, wrappedToc: wrappedToc }; };