public
Last active

Jekyll plugin to add Git activity inside a list

  • Download Gist
git.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
require 'git'
 
module Jekyll
class GitActivityTag < Liquid::Tag
 
def initialize(tag_name, text, tokens)
super
end
 
def render(context)
result = ""
g = Git.open(File.join(Dir.getwd, ".."))
index = 0
g.log.each do |log|
if(index < 10)
result << "<li>"
result << log.date.strftime("%d %b")
result << " - <a href='http://git.tetalab.org/index.php/p/jekyll/source/commit/"
result << log.sha
result << "/'>"
result << log.message
result << "</a></li>"
index += 1
end
end
"<ul>#{result}</ul>"
end
end
end
 
Liquid::Template.register_tag('gitactivity', Jekyll::GitActivityTag)

Hey, I'm new to jekyll, ruby etc.
How do I use this?
I would be really grateful if you could take a minute :)

I'm new too, and eager to know, how to use it :) Alx, could you help us?

@christian-fei, @aledoroshenko: You would put it into your _plugins directory, as per the plugin page on the wiki.

After you did that you can use it just like other liquid tags, for example like this:

{% gitactivity %}

And it would generate an HTML list with the date, sha and commit message of the repo given in the code. If you'd like to play with it you could try to get it support other repos, for example with a syntax like this: {% awesomer_gitactivity /home/yournamehere/repos/jekyll %} (see the example on the wiki).

However, because the git (required at the top) module is not included in the standard ruby distribution you would have to install that first (with gem install git).

@heyLu: I forgot to install git :) When installed it and set my path in Git.open, all works great. Thanks!

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.