_plugins/remote_file_content.rb (23 lines of code) (raw):
require 'net/http'
require 'uri'
module Jekyll
class RemoteFileContent < Liquid::Tag
def initialize(tag_name, markup, tokens)
url = markup
puts "Fetching content of url: #{url}"
if url =~ URI::DEFAULT_PARSER.make_regexp
@content = fetchContent(url)
else
raise 'Invalid URL passed to RemoteFileContent'
end
super
end
def render(_context)
@content || raise('Something went wrong in RemoteFileContent')
end
def fetchContent(url)
Net::HTTP.get(URI.parse(URI.encode(url.strip)))
end
end
end
Liquid::Template.register_tag('remotefile', Jekyll::RemoteFileContent)