Автоматически добавлять определенные свойства в теги уценки - PullRequest
1 голос
/ 08 мая 2020

Я использую Markdown, чтобы писать сообщения на своих сайтах. Иногда мне нужно ссылаться на другие страницы моего сайта, иногда на внешние ссылки. Я хотел бы автоматически добавлять свойства rel="nofollow noopener noreferrer" target="_blank" всякий раз, когда у меня есть внешняя ссылка на уценку. Другими словами, ссылки

 [External](www.google.com)
 [Internal](/posts/another)

будут преобразованы в

  <a href="www.google.com" rel="nofollow noopener noreferrer" target="_blank">External</a>
  <a href="/posts/another">Internal</a>

Возможно ли это? Как я могу go кодировать это?

Я использую Kramdown, но я также могу использовать другие механизмы уценки.

1 Ответ

0 голосов
/ 08 мая 2020

Я решил это с помощью плагина Jekyll. Не уверен, есть ли лучшие решения.

require "kramdown"

module Kramdown
  class Converter::Html
    alias_method :super_convert_a, :convert_a
    def convert_a el, indent

      if ( el.attr["href"] =~ /^[A-Za-z0-9]+:/ )
        el.attr["target"] = "_blank"
        el.attr["rel"] = "nofollow noopener noreferrer"
      end

      super_convert_a el, indent
    end
  end
end

Я использую относительные URL-адреса для своих внутренних ссылок.

...