| 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::regexp |
| @content = fetchContent(url) |
| else |
| raise 'Invalid URL passed to RemoteFileContent' |
| end |
| |
| super |
| end |
| |
| def render(context) |
| if @content |
| @content |
| else |
| raise 'Something went wrong in RemoteFileContent' |
| end |
| end |
| |
| def fetchContent(url) |
| Net::HTTP.get(URI.parse(URI.encode(url.strip))) |
| end |
| end |
| end |
| |
| Liquid::Template.register_tag('remote_file_content', Jekyll::RemoteFileContent) |