jekyll-citations 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +25 -0
- data/README.md +44 -0
- data/_includes/style.scss +1 -0
- data/_layouts/bib.html +11 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +18 -0
- data/_layouts/home.html +47 -0
- data/_layouts/list.html +13 -0
- data/_sass/list.scss +1 -0
- metadata +87 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 99d9d052d9a05126e7ed56be3599e9600a1fd9afd5a32d1c3984c49687fb94c7
|
4
|
+
data.tar.gz: f397ed358d203b2017c755db3685e9128770144b1ec352fd7a2d05cf85d89824
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 27ba9a91ee568525331ff1343e7adb50d0b1b34f7e82f1f358daadc0010d30d629611162b1f1033c9bee1f71e27272c9079e5bbd3ba26e8be13496d059502650
|
7
|
+
data.tar.gz: 7130b87e377b0522efd3528ba1b36c0eedf5924fe3f10c1ff53cdf6796edef48082c89a899787d9c43029825fa852c149fbd75686d784ab98267fde20d5e17ad
|
data/LICENSE
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
BSD 2-Clause License
|
2
|
+
|
3
|
+
Copyright (c) 2021, Matthew Wildrick Thomas
|
4
|
+
All rights reserved.
|
5
|
+
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
8
|
+
|
9
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
10
|
+
list of conditions and the following disclaimer.
|
11
|
+
|
12
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
14
|
+
and/or other materials provided with the distribution.
|
15
|
+
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
17
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
18
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
19
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
20
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
21
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
22
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
23
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
24
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
25
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README.md
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# Citation generator
|
2
|
+
|
3
|
+
## How it works
|
4
|
+
|
5
|
+
You can see the template for the bibliography [here](_layouts/bib.html) and the template for the lists [here](_layouts/list.html).
|
6
|
+
|
7
|
+
### Lists
|
8
|
+
|
9
|
+
Basically, for every tag (eg. reputation), the [list template](_layouts/list.html) loops over the entire database and only returns papers that have this tag. The syntax looks pretty weird because it's written in a template language called liquid. I used it because GitHub can read liquid templates to generate the [site](https://cet.econ.northwestern.edu/dekel).
|
10
|
+
|
11
|
+
I describe the steps below
|
12
|
+
1. Sort all papers in reverse chronological order
|
13
|
+
```
|
14
|
+
{% assign sorted = site.papers | sort:"year" | reverse %}
|
15
|
+
```
|
16
|
+
2. Start a for loop over the sorted papers
|
17
|
+
```
|
18
|
+
{% for paper in sorted %}
|
19
|
+
```
|
20
|
+
3. Continue if the page does not filter by category (Decision Theory/Game Theory) or if the category matches the filter.
|
21
|
+
```
|
22
|
+
{% if page.category == nil or paper.categories contains page.category %}
|
23
|
+
```
|
24
|
+
4. same thing but with tags (reputation, mechanism design, etc)
|
25
|
+
```
|
26
|
+
{% if page.tag == nil or paper.tags contains page.tag %}
|
27
|
+
```
|
28
|
+
5. Run the specific HTML to be repeated in the list using variables from the [database](_data\papers.yml). It also checks to see if the paper is single authored and reacts accordingly.
|
29
|
+
```
|
30
|
+
<a href="{{ site.url }}{{ site.baseurl }}/pdf/{{ paper.pdf }}">{{ paper.title }}</a>{% if paper.authors.size > 1 %} (with {{ paper.authors | where_exp:"item", "item != 'Dekel, Eddie'" | join: " and "}}){% endif %}, <em>{{ paper.journal }}</em>, {{ paper.year }} <a href="{{ site.url }}{{ site.baseurl }}{{ paper.url }}">[bib]</a>
|
31
|
+
<hr />
|
32
|
+
```
|
33
|
+
6. Close all the if statements and the fir loop
|
34
|
+
```
|
35
|
+
{% endif %}
|
36
|
+
{% endif %}
|
37
|
+
{% endfor %}
|
38
|
+
```
|
39
|
+
|
40
|
+
### Bibs
|
41
|
+
|
42
|
+
The [bib template](_layouts/bib.html) is more self explanatory. For each paper, it just dumps all of the information from the database into bib format.
|
43
|
+
|
44
|
+
If you do not have access to this repository, you can email someone who committed recently. You should be able to find my email [on my GitHub profile](https://github.com/mwt).
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "list.scss";
|
data/_layouts/bib.html
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html><head></head><body><pre><code>@article{% raw %}{{% endraw %}{{page.id_key}},
|
3
|
+
title = "{{ page.title }}",
|
4
|
+
author = "{{ page.authors | join: " and "}}"{% if page.journal %},
|
5
|
+
journal = "{{ page.journal }}"{% endif %}{% if page.vol %},
|
6
|
+
volume = "{{ page.vol }}"{% endif %}{% if page.num %},
|
7
|
+
number = "{{ page.num }}"{% endif %}{% if page.pages %},
|
8
|
+
pages = "{{ page.pages }}"{% endif %}{% if page.year %},
|
9
|
+
year = "{{ page.year }}"{% endif %}{% if page.pub %},
|
10
|
+
publisher = "{{ page.pub }}"{% endif %}
|
11
|
+
{% raw %}}{% endraw %}</code></pre></body></html>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
---
|
2
|
+
# Jekyll layout that compresses HTML
|
3
|
+
# v3.1.0
|
4
|
+
# http://jch.penibelst.de/
|
5
|
+
# © 2014–2015 Anatol Broder
|
6
|
+
# MIT License
|
7
|
+
---
|
8
|
+
|
9
|
+
{% capture _LINE_FEED %}
|
10
|
+
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
layout: compress
|
3
|
+
---
|
4
|
+
<!DOCTYPE html>
|
5
|
+
<html lang="{{ page.lang | default: site.lang | default: "en" }}">
|
6
|
+
<head>
|
7
|
+
<title>{{ site.title }}</title>
|
8
|
+
<style>
|
9
|
+
{% capture scss_sheet %}{% include style.scss %}{% endcapture %}
|
10
|
+
{{ scss_sheet | scssify }}
|
11
|
+
</style>
|
12
|
+
</head>
|
13
|
+
<body>
|
14
|
+
<main>
|
15
|
+
{{ content }}
|
16
|
+
</main>
|
17
|
+
</body>
|
18
|
+
</html>
|
data/_layouts/home.html
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{%- assign theory = site.pages | where_exp: "item", "item.dir == '/'" | sort: 'url' | shift -%}
|
6
|
+
{%- assign dt = site.pages | where_exp: "item", "item.url contains 'decision-theory'" | sort: 'url' -%}
|
7
|
+
{%- assign gt = site.pages | where_exp: "item", "item.url contains 'game-theory'" | sort: 'url' -%}
|
8
|
+
<h1>{{ site.title }}</h1>
|
9
|
+
<nav class="sidenav">
|
10
|
+
<ul>
|
11
|
+
{%- for sitepage in theory -%}
|
12
|
+
<li>
|
13
|
+
{%- case sitepage.title -%}
|
14
|
+
{%- when "Decision Theory" -%}
|
15
|
+
{%- for sitepage in dt -%}
|
16
|
+
{%- if forloop.first == true -%}
|
17
|
+
<a href="{{ sitepage.url | absolute_url }}">{{ sitepage.title }}</a>
|
18
|
+
<ul>
|
19
|
+
{%- else -%}
|
20
|
+
<li>
|
21
|
+
<p><a href="{{ sitepage.url | absolute_url }}">{{ sitepage.title }}</a></p>
|
22
|
+
</li>
|
23
|
+
{%- endif -%}
|
24
|
+
{%- endfor -%}
|
25
|
+
</ul>
|
26
|
+
{%- when "Game Theory" -%}
|
27
|
+
{%- for sitepage in gt -%}
|
28
|
+
{%- if forloop.first == true -%}
|
29
|
+
<a href="{{ sitepage.url | absolute_url }}">{{ sitepage.title }}</a>
|
30
|
+
<ul>
|
31
|
+
{%- else -%}
|
32
|
+
<li>
|
33
|
+
<p><a href="{{ sitepage.url | absolute_url }}">{{ sitepage.title }}</a></p>
|
34
|
+
</li>
|
35
|
+
{%- endif -%}
|
36
|
+
{%- endfor -%}
|
37
|
+
</ul>
|
38
|
+
{%- else -%}
|
39
|
+
<p><a href="{{ sitepage.url | absolute_url }}">{{ sitepage.title }}</a></p>
|
40
|
+
{%- endcase -%}
|
41
|
+
</li>
|
42
|
+
{%- endfor -%}
|
43
|
+
</ul>
|
44
|
+
</nav>
|
45
|
+
<div class="content">
|
46
|
+
{{ content }}
|
47
|
+
</div>
|
data/_layouts/list.html
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
{%- assign sorted = site.papers | sort:"year" | reverse -%}
|
5
|
+
{%- for paper in sorted -%}
|
6
|
+
{%- if page.category == nil or paper.categories contains page.category -%}
|
7
|
+
{%- if page.tag == nil or paper.tags contains page.tag -%}
|
8
|
+
<p>
|
9
|
+
<a href="{{ site.url }}{{ site.baseurl }}/pdf/{{ paper.pdf }}" target="_blank">{{ paper.title }}</a>{% if paper.authors.size > 1 %} (with {{ paper.authors | where_exp:"item", "item != 'Dekel, Eddie'" | join: " and "}}){% endif %}, {% if paper.journal %}<em>{{ paper.journal }}</em>, {% endif %}{{ paper.year }} <a href="{{ paper.url | absolute_url }}" target="_blank">[bib]</a>
|
10
|
+
</p>
|
11
|
+
{%- endif -%}
|
12
|
+
{%- endif -%}
|
13
|
+
{%- endfor -%}
|
data/_sass/list.scss
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
// insert styling here
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll-citations
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Matthew Thomas
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-02-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: jekyll
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.5'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.5'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: bundler
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
description:
|
48
|
+
email:
|
49
|
+
- matthew.thomas@northwestern.edu
|
50
|
+
executables: []
|
51
|
+
extensions: []
|
52
|
+
extra_rdoc_files: []
|
53
|
+
files:
|
54
|
+
- LICENSE
|
55
|
+
- README.md
|
56
|
+
- _includes/style.scss
|
57
|
+
- _layouts/bib.html
|
58
|
+
- _layouts/compress.html
|
59
|
+
- _layouts/default.html
|
60
|
+
- _layouts/home.html
|
61
|
+
- _layouts/list.html
|
62
|
+
- _sass/list.scss
|
63
|
+
homepage: https://github.com/nucet/jekyll-citations
|
64
|
+
licenses:
|
65
|
+
- MIT
|
66
|
+
metadata:
|
67
|
+
plugin_type: theme
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
70
|
+
require_paths:
|
71
|
+
- lib
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
requirements: []
|
83
|
+
rubygems_version: 3.0.3
|
84
|
+
signing_key:
|
85
|
+
specification_version: 4
|
86
|
+
summary: A citation generator and organizer using jekyll.
|
87
|
+
test_files: []
|