Можно ли в jekyll/liquid использовать `include` для импорта из абсолютных ссылок/других URL-адресов?

например, может что-то вроде:

{% include https://raw.github.com/propublica/guides/master/coding-manifesto.md %}

извлекать содержимое уценки из этого места и отображать его в макете jekyll?


person equivalentideas    schedule 17.02.2014    source источник


Ответы (1)


Да, вы можете сделать это с помощью Octokit API, но для этого вам придется написать плагин.

См. Репозиторий моего сайта для примера:

module Jekyll
  class OctokitContents < Liquid::Tag
    def initialize(tag_name, text, tokens)
      super
      @temp=text.split(';')
    end
    def render(context)
        @address = "madhur/"+"#{@temp[0]}"

     cred = YAML.load_file("d:/github.yml")
      client = Octokit::Client.new(:login => cred[":username"], :password => cred[":password"])

       puts "Getting Github Contents via octokit.rb " + @address + @temp[1]
       out=client.contents @address, :accept => 'application/vnd.github.html', :path =>  @temp[1]
       out
    end
  end
end
Liquid::Template.register_tag('octokit_contents', Jekyll::OctokitContents)

Для живого примера, вот как я его использовал здесь:

{% octokit_contents SPProjects;OrgChart/Readme.markdown%}

https://raw2.github.com/madhur/madhur.github.com/source/projects/Silverlight%20Organization%20Chart%20for%20SharePoint.md

Вот результат:

http://www.madhur.co.in/projects/Silverlight%20Organization%20Chart%20for%20SharePoint.html

person Madhur Ahuja    schedule 17.02.2014
comment
Это фантастика большое спасибо. Есть идеи, будет ли это работать с Jekyll, размещенным на страницах GitHub? - person equivalentideas; 17.02.2014
comment
Так и будет, но вам придется размещать сгенерированный сайт напрямую в _site. Страницы Github не поддерживают плагины. Вы можете использовать такой рабочий процесс, как этот indelible.io /блог/2013/07/14/ - person Madhur Ahuja; 17.02.2014