Получить полное имя файла сообщения в конвекторе Джекилла - PullRequest
0 голосов
/ 10 октября 2018

Я использую расширение уценки в Джекиле, используя конвектор.Например:

module Jekyll
  class MyConverter < Converter
    safe false
    priority :high

    def matches(ext)
      ext =~ /^.(md|markdown)$/i
    end

    def output_ext(ext)
      ".html"
    end

    def my_process (content)
      # something
    end

    def convert(content)
      # Here my markdown processing
      # content = my_process(content)

      # Here I want to use the path to the markdown file
      # puts (filename)

      site = Jekyll::Site.new(@config)
      converter = site.find_converter_instance(Jekyll::Converters::Markdown)
      converter.convert(content)
    end
  end
end

Можно ли получить полное имя файла или его местоположение, для которого текст уценки преобразуется в HTML?

Например, у меня есть файл уценки:

Bla bla bla.

[Text of the link](gallery)

Bla bla bla

И я хочу список файлов в каталоге gallery.Как получить список файлов из определенного каталога, я знаю, но в конвекторе мне нужно знать полный путь к этому файлу уценки.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 13 октября 2018

Использование Jekyll::Hook:

module Jekyll
  class MyHookProcess
    class << self
      def my_process(content)
        # something
        content
      end
    end
  end
end

Jekyll::Hooks.register([:posts], :pre_render) do |post|
  #puts ("post.date = " + post.date)
  #puts ("post.path = " + post.path)
  #puts ("post.url = " + post.url)
  post.content = Jekyll::MyHookProcess.my_process(post.content)
end
...