file://
Протокола не входит в sanitation filter whitelist, на который ссылается gitlab в documentation.
Вы можете вручную редактировать embedded/service/gitlab-rails/lib/gitlab/markdown.rb
в установке gitlab, добавить протокол в белый список себя и перезапустить gitlab после этого, чтобы применить изменения (просто вставить строку с ведущим +
):
whitelist = HTML::Pipeline::SanitizationFilter::WHITELIST
whitelist[:attributes][:all].push('class', 'id')
whitelist[:elements].push('span')
+ whitelist[:protocols]['a']['href'] = ['file'].concat(whitelist[:protocols]['a']['href'])
# Remove the rel attribute that the sanitize gem adds, and remove the
# href attribute if it contains inline javascript
, но это вероятно, не самая лучшая идея, потому что это вызовет случайные головные боли при обновлении установки gitlab.
И желаемые ссылки file://
по-прежнему не будут открываться, как и ожидалось, без дополнительных шагов настройки или дополнительных установок на стороне клиента (см. here).
[фильтр санитарии] (http://www.rubydoc.info/gems/html-pipeline/HTML/Pipeline/SanitizationFilter#ANCHOR_SCHEMES-constant), используемый GitLab, кажется, отфильтровывает любой файл: // links/unsupported якорные схемы. – buygrush
Это действительно действительно очищает его. Интересно, согласятся ли они с просьбой об изменении тяги ... – Matt