Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Gem - Insert github repo code into Github Pages #804

Open
pippim opened this issue Dec 5, 2021 · 0 comments
Open

New Gem - Insert github repo code into Github Pages #804

pippim opened this issue Dec 5, 2021 · 0 comments

Comments

@pippim
Copy link

pippim commented Dec 5, 2021

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant