2015-03-11 2 views
1

Есть ли ссылка на внешний файл (не http-url) в GitLab Flavored Markdown?Создать внешнюю ссылку в GitLab Flavored Markdown

  • например. Эквивалентом HTML будет <a href="file:///my/file/path">link text</a>
  • например. Обсуждение MediaWiki эквивалент будет [[file:///my/file/path link text]]
+1

[фильтр санитарии] (http://www.rubydoc.info/gems/html-pipeline/HTML/Pipeline/SanitizationFilter#ANCHOR_SCHEMES-constant), используемый GitLab, кажется, отфильтровывает любой файл: // links/unsupported якорные схемы. – buygrush

+0

Это действительно действительно очищает его. Интересно, согласятся ли они с просьбой об изменении тяги ... – Matt

ответ

2

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).

+0

Никогда не знал, что Chrome не будет ссылаться на локальный файл Я собирался попробовать это, пока не прочитаю это. Я не думаю, что могу убедить людей в моем офисе, чтобы установить расширение браузера. :) Большое спасибо за ответ! – Matt

0

Нормальные уценки синтаксис гиперссылкой должен работать: [file description](file:///test/location/file)

+0

Мне не повезло с этим. Он рассматривает его как относительный URL-адрес, например. '' 'http: // myBaseUrl: 9090/software/proj/blob/master/file: /// test/location/file''' – Matt

+0

В MediaWiki ссылки по файлам явно отключены по умолчанию (http: // www. mediawiki.org/wiki/Extension:FileLink). Бьюсь об заклад, то же самое верно для уценки GitLab. – Geoff

+0

Хмм, я не смог ничего найти. На самом деле, самое интересное, что google возвращает поиск «расширение ссылок на расширение gitlab», эта страница. :(@Geoff – Matt

Смежные вопросы