From 8e808695643c261d39979f12c3448ffe59e26e99 Mon Sep 17 00:00:00 2001 From: Sylvester Keil Date: Sun, 16 Nov 2014 13:59:55 +0100 Subject: [PATCH] add suppress author option see #65 --- features/citation.feature | 28 ++++++++++++++++++++++++++++ lib/jekyll/scholar/utilities.rb | 11 ++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/features/citation.feature b/features/citation.feature index 075fb2c..763a43c 100644 --- a/features/citation.feature +++ b/features/citation.feature @@ -29,6 +29,34 @@ Feature: Citations And the "_site/scholar.html" file should exist And I should see "Flanagan" in "_site/scholar.html" + @tags @cite @suppress-author + Scenario: Citations With Suppressed Author + Given I have a scholar configuration with: + | key | value | + | source | ./_bibliography | + | bibliography | my_references | + And I have a "_bibliography" directory + And I have a file "_bibliography/my_references.bib": + """ + @book{ruby, + title = {The Ruby Programming Language}, + author = {Flanagan, David and Matsumoto, Yukihiro}, + year = {2008}, + publisher = {O'Reilly Media} + } + """ + And I have a page "scholar.html": + """ + --- + --- + {% cite ruby --suppress_author %} + """ + When I run jekyll + Then the _site directory should exist + And the "_site/scholar.html" file should exist + And I should see "2008" in "_site/scholar.html" + And I should not see "Flanagan" in "_site/scholar.html" + @tags @cite Scenario: Missing references Given I have a scholar configuration with: diff --git a/lib/jekyll/scholar/utilities.rb b/lib/jekyll/scholar/utilities.rb index d7779b7..b950d38 100644 --- a/lib/jekyll/scholar/utilities.rb +++ b/lib/jekyll/scholar/utilities.rb @@ -38,6 +38,10 @@ module Jekyll @cited, @skip_sort = true, true end + opts.on('-A', '--suppress_author') do |cited| + @suppress_author = true + end + opts.on('-f', '--file FILE') do |file| @bibtex_files ||= [] @bibtex_files << file @@ -72,7 +76,7 @@ module Jekyll end end - argv = arguments.split(/(\B-[cCfqptTslm]|\B--(?:cited(_in_order)?|file|query|prefix|text|style|template|locator|max|))/) + argv = arguments.split(/(\B-[cCfqptTslmA]|\B--(?:cited(_in_order)?|file|query|prefix|text|style|template|locator|max|suppress_author|))/) parser.parse argv.map(&:strip).reject(&:empty?) end @@ -142,6 +146,10 @@ module Jekyll sorted end + def suppress_author? + !!@suppress_author + end + def repository? !config['repository'].nil? && !config['repository'].empty? end @@ -338,6 +346,7 @@ module Jekyll CiteProc::CitationItem.new id: entry.id do |c| c.data = CiteProc::Item.new entry.to_citeproc c.data[:'citation-number'] = citation_number + c.data.suppress! 'author' if suppress_author? end end -- GitLab