Easily showcase your Google Scholar metrics in Jekyll
Whether you’re applying for academic positions, comparing yourself to your colleagues, or determining whether people on Twitter really deserve their grant funding, it’s important to look at scholarly metrics such as h-index, i10-index, and number of citations. However, showing them off directly in your CV is a major bummer, especially when you’re an academic superstar and are too busy to update these vital statistics for all the conferences, grants, and positions you’re applying for! In this blog post, I’ll tell you three easy steps to automatically fetch these stats from Google Scholar and display them on your online vita with Jekyll.
First, take the below code, save it as a new file, scholar_stats.rb
, and place it in your _plugins
folder.1
require 'open-uri'
require 'nokogiri'
module Jekyll
class ScholarStats < Generator
# Replace `SCHOLAR_ID` with your own Google Scholar ID
SCHOLAR_ID = 'XXXXXXXXXX'.freeze
SCHOLAR_URL = 'http://scholar.google.com/citations?hl=en&user='.freeze
def generate(site)
doc = Nokogiri::HTML(URI.parse(SCHOLAR_URL + SCHOLAR_ID).open)
tbl = doc.css('table').first
tbl_data = { 'id' => SCHOLAR_ID }
tbl.css('tr')[1..].each do |tr|
cell_data = tr.css('td').map(&:text)
tbl_data[cell_data[0].downcase.sub('-', '_')] = cell_data[1].to_i
end
site.data['scholar'] = tbl_data
end
end
end
Second, update the SCHOLAR_ID
constant with your Google Scholar ID. This is taken from the link for your Google Scholar profile, like https://scholar.google.com/citations?user=z5el-twAAAAJ
, and it’s the characters after the user=
part. The SCHOLAR_ID
for this Scholar profile would therefore be z5el-twAAAAJ
.
Finally, you might need to add these to your Gemfile
and run bundle install
:
gem "nokogiri"
gem "open-uri"
Or install them yourself with gem install open-uri nokogiri
.
Once you’ve done this, you should have access to a few new variables in your Jekyll installation. You can use them in the Markdown or HTML documents using Liquid templates like so:
* [Profile](https://scholar.google.com/citations?user={{ site.data.scholar.id }})
* Citations: {{ site.data.scholar.citations }}
* h-index: {{ site.data.scholar.h_index }}
* i10-index: {{ site.data.scholar.i10_index }}
This Markdown code on my Jekyll site translates to:
- Profile
- Citations: 2319
- h-index: 14
- i10-index: 17
Now sit back, relax, and watch as your numbers go up!
-
If you are using something like GitHub Pages to publish your site, you might not be able to use custom plugins! Instead, generate your Jekyll site locally and then push the generated static files up to your git repository. ↩