gitlab markdown 支持TOC解决办法

本文分析了GitLab中Markdown标题锚点的问题及其不支持自动TOC的现状,并提供了解决方案,包括修改源码以处理中文问题以及自定义生成TOC的功能。
摘要由CSDN通过智能技术生成


问题分析

1. 标题的锚点会被替换

    中文替换为''

    空格等非正常字符替换为'-'

    这给自己手动写toc也带来了麻烦,不能直接复制标题作为链接

2. 不能自动生成TOC

    目前gitlab不支持TOC功能



解决方法

1. 解决中文问题

   直接找到源码 `

embedded/service/gitlab-rails/lib/redcarpet/render/gitlab_html.rb

`

修改生成id的部分,注意规则

     47   def header(text, level)
     48     if @options[:no_header_anchors]
     49       "<h#{level}>#{text}</h#{level}>"
     50     else
     51       #id = ActionController::Base.helpers.strip_tags(h.gfm(text)).downcase() \
     52       #    .gsub(/[^a-z0-9_-]/, '-').gsub(/-+/, '-').gsub(/^-/, '').gsub(/-$/, '')
     53       # edit by renfeng, 让锚点支持中文
     54       id = ActionController::Base.helpers.strip_tags(h.gfm(text)).downcase() \
     55    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值