pages-gem icon indicating copy to clipboard operation
pages-gem copied to clipboard

New Gem - Insert github repo code into Github Pages

Open pippim opened this issue 2 years ago • 0 comments

New Gem Feature Request

I know Gem plug-ins are somewhat frowned upon for security and stability reasons. However, I hope this request will be met with broad acceptance.

I recently stumbled across a gem that will include your repo source code into your Github Pages Jekyll blog post. The advantage of this gem is:

  • You no longer have to copy your source code from your repo/file to your blog post.
  • You can update your repo source code without having to worry your blog will be up-to-date when your Github Pages site is rebuilt.
  • All too often people update their repo source code and think: "I'll update the blog later" but, time passes and they forget to update the blog.

The gem is pretty simple:

# Dynamically insert code block from URL
# From: https://blog.bryanroessler.com/2020-03-18-insert-code-blocks-from-repository/

require 'open-uri'

module Jekyll
    class InsertGitCode < Liquid::Tag

        def initialize(tag_name, url, tokens)
            super
            url = url.strip()
            @filename = File.basename(url)
            encoded_url = URI.encode(url)
            @file = URI.parse(encoded_url).read
        end

        def render(_context)
            @file
        end

    end
end

Liquid::Template.register_tag('insert_git_code', Jekyll::InsertGitCode)

Calling the gem is by a simple liquid tag:

{% highlight ruby %}
{% insert_git_code https://git... %}
{% endhighlight %}

Thank you for considering this request!

pippim avatar Dec 05 '21 17:12 pippim