jekyll-academic 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +78 -0
- data/_config.yml +46 -0
- data/_includes/footer.html +10 -0
- data/_includes/head.html +55 -0
- data/_includes/licenses.html +40 -0
- data/_includes/nav.html +21 -0
- data/_includes/socials.html +27 -0
- data/_layouts/blog.html +60 -0
- data/_layouts/default.html +13 -0
- data/_layouts/post.html +33 -0
- data/_layouts/projects.html +34 -0
- data/_layouts/tag.html +16 -0
- data/_sass/main.scss +226 -0
- data/assets/css/main.scss +4 -0
- metadata +128 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e2996c2fdf6d51b015723eeb268cc62652a9dae02d1bc307f36758e60a0e81a2
|
4
|
+
data.tar.gz: dee5f3c931eac5a5d17d9f66c0703d4ce5ef1e05d69b0028a4486670cbc8b118
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1e14ceb15824e1e579a61b4f32a6921277dc478ff03ec4662f92a92e8e8b484584a9b5aef69fa96880b3573047d45a7878f63002130090214941bb952e43fe73
|
7
|
+
data.tar.gz: 2c9eb93cb08029fa6db555acf96e072c05547b987dd5b6d7858b512c7c0fd56ca8f4c6743e23f9228cb7f569caa585cbd145eca32b1f950040e9030389dd728e
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2021 yak-fumblepack
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# Jekyll Academic
|
2
|
+
|
3
|
+
Jekyll Academic is a lightweight theme for any academic usecase. Perfect for portfolio websites, blogs, and academia. It is a simple no nonsense theme that offers many features.
|
4
|
+
|
5
|
+
[Live preview](https://jekyll-academic.netlify.app)
|
6
|
+
|
7
|
+
- Ultra-fast serving times, only ~2.6kb of CSS
|
8
|
+
- 99/100 Performance on Lighthouse
|
9
|
+
- 100/100 SEO on Lighthouse
|
10
|
+
- RSS and JSON feed
|
11
|
+
- Enhanced Markdown (Highlightjs, MathJax, ChartJs, FontAwesome/Bootstrap Icons)
|
12
|
+
- Optional Disqus comments
|
13
|
+
- Search bar with blog categorisation based on tags
|
14
|
+
- Custom 404 page
|
15
|
+
- SEO optimised (robots.txt, sitemap.xml, jekyll-seo-tag)
|
16
|
+
|
17
|
+
## Contents
|
18
|
+
- [Installation](#installation)
|
19
|
+
- [Usage](#usage)
|
20
|
+
- [Contributing](#contributing)
|
21
|
+
- [License](#license)
|
22
|
+
|
23
|
+
## Installation
|
24
|
+
Add this to your Jekyll site's Gemfile:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
gem "jekyll-academic"
|
28
|
+
```
|
29
|
+
|
30
|
+
And add this line to your Jekyll site's `_config.yml`:
|
31
|
+
|
32
|
+
```yaml
|
33
|
+
theme: jekyll-academic
|
34
|
+
```
|
35
|
+
|
36
|
+
Then execute:
|
37
|
+
|
38
|
+
```shell
|
39
|
+
$ bundle install
|
40
|
+
```
|
41
|
+
|
42
|
+
or install it yourself as a Gem:
|
43
|
+
|
44
|
+
```shell
|
45
|
+
$ gem install jekyll-academic
|
46
|
+
```
|
47
|
+
|
48
|
+
OR
|
49
|
+
|
50
|
+
```shell
|
51
|
+
$ git clone https://github.com/yak-fumblepack/jekyll-academic.git
|
52
|
+
```
|
53
|
+
|
54
|
+
```shell
|
55
|
+
$ bundle install
|
56
|
+
```
|
57
|
+
|
58
|
+
Then finally to view your site (default is [localhost:4000]()):
|
59
|
+
|
60
|
+
```shell
|
61
|
+
$ bundle exec jekyll serve
|
62
|
+
```
|
63
|
+
|
64
|
+
## Usage
|
65
|
+
|
66
|
+
To make it yours, edit the `_config.yml` file or refer to our [docs](https://jekyll-academic.netlify.app/docs) for further configuration.
|
67
|
+
|
68
|
+
Have fun building your amazing site!
|
69
|
+
|
70
|
+
## Contributing
|
71
|
+
|
72
|
+
Bugfixes and features are most welcome and appreciated. Please make the pull request onto the `dev` branch.
|
73
|
+
|
74
|
+
Is there a bug? Feel free to open an issue.
|
75
|
+
|
76
|
+
## License
|
77
|
+
|
78
|
+
This project is licensed under [MIT](https://opensource.org/licenses/MIT). See [LICENSE](https://github.com/yak-fumblepack/jekyll-academic/blob/master/LICENSE.txt) file for more details.
|
data/_config.yml
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
title: An Awesome site title
|
2
|
+
navbar_title: Jekyll Academic
|
3
|
+
|
4
|
+
author:
|
5
|
+
name: jekyll-academic # Your name
|
6
|
+
email: your-email@domain.com
|
7
|
+
|
8
|
+
description: Jekyll academic is a lightweight theme for any academic usecase. Perfect for portfolio websites, blogs, and academia # description of your site
|
9
|
+
|
10
|
+
url: "https://jekyll-academic.netlify.app" # The base hostname & protocol for your site, e.g. http://example.com
|
11
|
+
baseurl: "" # The subpath of your site, e.g. /blog
|
12
|
+
|
13
|
+
jekyllacademic:
|
14
|
+
homepage_title: "Hello world" # Your homepage title
|
15
|
+
disqusname: # Your disqus sitename
|
16
|
+
footer: Author Year, 2021 # Your name, Year
|
17
|
+
contentlicense: "MIT" # Choose either one of these to put: MIT, Commons Clause, CC BY 4.0, CC BY-NC 4.0, CC BY-ND 4.0, CC BY-NC-ND 4.0, CC BY-NC-SA 4.0, CC BY-NC-SA 4.0, CC BY-SA 4.0
|
18
|
+
socials:
|
19
|
+
twitter: twitter # Your twitter username
|
20
|
+
github: yak-fumblepack/jekyll-academic # Your github username
|
21
|
+
linkedin: unavailable # Your linkedin
|
22
|
+
keybase: keybase # Your keybase
|
23
|
+
|
24
|
+
# No need to edit this part, however if you want to, that's fine as well
|
25
|
+
|
26
|
+
permalink: pretty
|
27
|
+
markdown: kramdown
|
28
|
+
kramdown:
|
29
|
+
input: GFM
|
30
|
+
syntax_highlighter_opts:
|
31
|
+
disable: true
|
32
|
+
|
33
|
+
collections:
|
34
|
+
pages:
|
35
|
+
output: true
|
36
|
+
permalink: /:name
|
37
|
+
posts:
|
38
|
+
output: true
|
39
|
+
permalink: /:year/:month/:day/:slug
|
40
|
+
projects:
|
41
|
+
output: true
|
42
|
+
permalink: /:collection/:title
|
43
|
+
|
44
|
+
plugins:
|
45
|
+
- jekyll-sitemap
|
46
|
+
- jekyll-seo-tag
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<footer class="stickyfooter text-center">
|
2
|
+
<small>
|
3
|
+
<div class="small"></div>
|
4
|
+
© {{ site.jekyllacademic.footer }}
|
5
|
+
|
|
6
|
+
{% include socials.html %}
|
7
|
+
|
|
8
|
+
Powered by <a href="https://github.com/yak-fumblepack/jekyll-academic">Jekyll Academic Theme</a>
|
9
|
+
</small>
|
10
|
+
</footer>
|
data/_includes/head.html
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
<head>
|
2
|
+
<meta charset="utf-8">
|
3
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
4
|
+
|
5
|
+
<!-- Bootstrap CSS -->
|
6
|
+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
|
7
|
+
|
8
|
+
<!-- Option 1: Bootstrap Bundle with Popper -->
|
9
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script>
|
10
|
+
|
11
|
+
<!-- Bootstrap Icons -->
|
12
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.4.1/font/bootstrap-icons.css">
|
13
|
+
|
14
|
+
<!-- FontAwesome Icons -->
|
15
|
+
<script src="https://kit.fontawesome.com/22ab6dd597.js" crossorigin="anonymous"></script>
|
16
|
+
|
17
|
+
<!-- Highlight JS -->
|
18
|
+
{% if page.usehighlight %}
|
19
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/styles/atom-one-light.min.css">
|
20
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js"></script>
|
21
|
+
<script>hljs.highlightAll();</script>
|
22
|
+
{% endif %}
|
23
|
+
|
24
|
+
<!-- Fork Awesom -->
|
25
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.1.7/css/fork-awesome.min.css" integrity="sha256-gsmEoJAws/Kd3CjuOQzLie5Q3yshhvmo7YNtBG7aaEY=" crossorigin="anonymous">
|
26
|
+
|
27
|
+
<!-- ChartJS -->
|
28
|
+
{% if page.usechartjs %}
|
29
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
30
|
+
{% endif %}
|
31
|
+
|
32
|
+
<!-- Mathjax support -->
|
33
|
+
{% if page.usemathjax %}
|
34
|
+
<script type="text/x-mathjax-config">
|
35
|
+
MathJax.Hub.Config({
|
36
|
+
TeX: { equationNumbers: { autoNumber: "AMS" } }
|
37
|
+
});
|
38
|
+
</script>
|
39
|
+
<script type="text/javascript" async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
40
|
+
{% endif %}
|
41
|
+
|
42
|
+
<!-- CSS -->
|
43
|
+
<link rel="stylesheet" href="/assets/css/main.css">
|
44
|
+
|
45
|
+
<!-- SEO -->
|
46
|
+
<title>
|
47
|
+
{% if page.title %}
|
48
|
+
{{ page.title }}
|
49
|
+
{% else %}
|
50
|
+
{{ site.title }}
|
51
|
+
{% endif %}
|
52
|
+
</title>
|
53
|
+
<link rel="sitemap" type="application/xml" title="sitemap" href="{{ site.baseurl }}/sitemap.xml" />
|
54
|
+
{% seo title=false %}
|
55
|
+
</head>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{% if site.jekyllacademic.contentlicense == "MIT" %}
|
2
|
+
<a href="https://opensource.org/licenses/MIT" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
3
|
+
MIT
|
4
|
+
</a>
|
5
|
+
{% endif %}
|
6
|
+
{% if site.jekyllacademic.contentlicense == "Commons Clause" %}
|
7
|
+
<a href="http://commonsclause.com" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
8
|
+
Commons Clause
|
9
|
+
</a>
|
10
|
+
{% endif %}
|
11
|
+
{% if site.jekyllacademic.contentlicense == "CC BY 4.0" %}
|
12
|
+
<a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
13
|
+
CC BY 4.0
|
14
|
+
</a>
|
15
|
+
{% endif %}
|
16
|
+
{% if site.jekyllacademic.contentlicense == "CC BY-NC 4.0" %}
|
17
|
+
<a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
18
|
+
CC BY-NC 4.0
|
19
|
+
</a>
|
20
|
+
{% endif %}
|
21
|
+
{% if site.jekyllacademic.contentlicense == "CC BY-ND 4.0" %}
|
22
|
+
<a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
23
|
+
CC BY-ND 4.0
|
24
|
+
</a>
|
25
|
+
{% endif %}
|
26
|
+
{% if site.jekyllacademic.contentlicense == "CC BY-NC-ND 4.0" %}
|
27
|
+
<a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
28
|
+
CC BY-NC-ND 4.0
|
29
|
+
</a>
|
30
|
+
{% endif %}
|
31
|
+
{% if site.jekyllacademic.contentlicense == "CC BY-NC-SA 4.0" %}
|
32
|
+
<a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
33
|
+
CC BY-NC-SA 4.0
|
34
|
+
</a>
|
35
|
+
{% endif %}
|
36
|
+
{% if site.jekyllacademic.contentlicense == "CC BY-SA 4.0" %}
|
37
|
+
<a href="http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">
|
38
|
+
CC BY-SA 4.0
|
39
|
+
</a>
|
40
|
+
{% endif %}
|
data/_includes/nav.html
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
<nav>
|
2
|
+
<ul>
|
3
|
+
<li>
|
4
|
+
<a class="text-muted" href="/">
|
5
|
+
{% if site.navbar_title %}
|
6
|
+
{{ site.navbar_title | replace: ' ', " " | replace: "-", " "}}
|
7
|
+
{% else %}
|
8
|
+
{{ site.title | replace: ' ', " "}}
|
9
|
+
{% endif %}
|
10
|
+
</a>
|
11
|
+
</li>
|
12
|
+
<br />
|
13
|
+
{% for item in site.data.nav.links %}
|
14
|
+
<li>
|
15
|
+
<a href="{{ item.url }}" {% if item.url == page.url %} class="active" {% endif %}>
|
16
|
+
{{ item.title }}
|
17
|
+
</a>
|
18
|
+
</li>
|
19
|
+
{% endfor %}
|
20
|
+
</ul>
|
21
|
+
</nav>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{% assign socials = site.jekyllacademic.socials %}
|
2
|
+
|
3
|
+
{% if socials.twitter %}
|
4
|
+
<a href="https://twitter.com/{{ socials.twitter | cgi_escape | escape }}" target="_blank" style="color: #1da1f2">
|
5
|
+
<span class="bi bi-twitter"></span>
|
6
|
+
</a>
|
7
|
+
{% endif %}
|
8
|
+
{% if socials.github %}
|
9
|
+
<a href="https://github.com/{{ socials.github }}" target="_blank" style="color: #000;">
|
10
|
+
<span class="bi bi-github"></span>
|
11
|
+
</a>
|
12
|
+
{% endif %}
|
13
|
+
{% if socials.linkedin %}
|
14
|
+
<a href="https://www.linkedin.com/in/{{ socials.linkedin | cgi_escape | escape }}" target="_blank" style="color: #0077b5;">
|
15
|
+
<span class="bi bi-linkedin"></span>
|
16
|
+
</a>
|
17
|
+
{% endif %}
|
18
|
+
{% if site.author.email %}
|
19
|
+
<a href="mailto:{{ site.email }}" target="_blank" style="color: #666">
|
20
|
+
<span class="bi bi-envelope-open-fill"></span>
|
21
|
+
</a>
|
22
|
+
{% endif %}
|
23
|
+
{% if socials.keybase %}
|
24
|
+
<a href="https://keybase.io/{{ socials.keybase | cgi_escape | escape}}" target="_blank" style="color: #FFA500">
|
25
|
+
<span class="fa fa-keybase"></span>
|
26
|
+
</a>
|
27
|
+
{% endif %}
|
data/_layouts/blog.html
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
<style>
|
5
|
+
#search-container {
|
6
|
+
max-width: 100%;
|
7
|
+
}
|
8
|
+
|
9
|
+
input[type=text] {
|
10
|
+
font-size: normal;
|
11
|
+
outline: none;
|
12
|
+
padding: 0.7rem;
|
13
|
+
width: 100%;
|
14
|
+
-webkit-appearance: none;
|
15
|
+
font-family: inherit;
|
16
|
+
font-size: 100%;
|
17
|
+
border: none;
|
18
|
+
border-bottom: 1px solid gray;
|
19
|
+
}
|
20
|
+
#results-container {
|
21
|
+
margin: 1rem 0;
|
22
|
+
background-color: #f9f9f9;
|
23
|
+
}
|
24
|
+
</style>
|
25
|
+
<section class="posts">
|
26
|
+
<h1 style="color: #cc0000">Example Blog</h1>
|
27
|
+
<div id="search-container">
|
28
|
+
<input type="text" id="search-input" placeholder="Search for a tag or post...">
|
29
|
+
<ol id="results-container"></ol>
|
30
|
+
</div>
|
31
|
+
<h2 style="color: #cc0000">Feed</h2>
|
32
|
+
<a href="{{ site.baseurl }}/atom.xml" class="rss">RSS <span class="fa fa-rss" style="color: #ee802f"></span></a>
|
33
|
+
<a href="{{ site.baseurl }}/feed.json" class="rss">JSON <span class="fa fa-rss" style="color: #ee802f"></span></a>
|
34
|
+
<h2 style="color: #cc0000">Tags</h2>
|
35
|
+
{% assign tags = site.tags | sort %}
|
36
|
+
<p>
|
37
|
+
{% for tag in tags %}
|
38
|
+
<a href="/tag/{{ tag | first | replace: ' ', '%20'}}">{{ tag[0] | replace:'-', ' ' }} ({{ tag | last | size }}){% unless forloop.last %}, {% endunless %}</a>
|
39
|
+
{% endfor %}
|
40
|
+
</p>
|
41
|
+
<h2 style="color: #cc0000">Posts</h2>
|
42
|
+
<ul>
|
43
|
+
{% for post in site.posts %}
|
44
|
+
<li><a style="color: black;" href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a><time datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date: "%m-%d-%Y" }}</time></li>
|
45
|
+
{% endfor %}
|
46
|
+
</ul>
|
47
|
+
</section>
|
48
|
+
<script src="/search.js" type="text/javascript"></script>
|
49
|
+
<script type="text/javascript">
|
50
|
+
SimpleJekyllSearch({
|
51
|
+
searchInput: document.getElementById('search-input'),
|
52
|
+
resultsContainer: document.getElementById('results-container'),
|
53
|
+
json: '/search.json',
|
54
|
+
searchResultTemplate: '<li><a href="{url}" style="color: #000;" title="{desc}">{title}</a></li>',
|
55
|
+
noResultsText: 'No results found',
|
56
|
+
limit: 10,
|
57
|
+
fuzzy: false,
|
58
|
+
exclude: ['Welcome']
|
59
|
+
})
|
60
|
+
</script>
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
<div>
|
5
|
+
<h1 style="color: #cc0000;">{{ page.title }}</h1>
|
6
|
+
<span>
|
7
|
+
Tags:
|
8
|
+
{% for tag in page.tags %}
|
9
|
+
<a href="/tag/{{ tag }}">{{ tag }}</a>{% unless forloop.last %}, {% endunless %}
|
10
|
+
{% endfor %}
|
11
|
+
</span>
|
12
|
+
<br />
|
13
|
+
<br />
|
14
|
+
{{ content }}
|
15
|
+
<hr>
|
16
|
+
<a href="#top">Back to top</a>
|
17
|
+
{% if page.comments %}
|
18
|
+
<div id="disqus_thread"></div>
|
19
|
+
<script>
|
20
|
+
var disqus_config = function () {
|
21
|
+
this.page.url = '{{ page.url | absolute_url }}'; // Replace PAGE_URL with your page's canonical URL variable
|
22
|
+
this.page.identifier = '{{ page.url | absolute_url }}'; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
|
23
|
+
};
|
24
|
+
(function() {
|
25
|
+
var d = document, s = d.createElement('script');
|
26
|
+
s.src = 'https://{{ site.jekyllacademic.disqusname }}.disqus.com/embed.js';
|
27
|
+
s.setAttribute('data-timestamp', +new Date());
|
28
|
+
(d.head || d.body).appendChild(s);
|
29
|
+
})();
|
30
|
+
</script>
|
31
|
+
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
32
|
+
{% endif %}
|
33
|
+
</div>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
<h1 style="color: #cc0000;">Example Projects</h1>
|
5
|
+
{% assign ordering = site.projects | sort: "order" %}
|
6
|
+
{% for project in ordering %}
|
7
|
+
{% if project.pinned %}
|
8
|
+
<div class="row py-2">
|
9
|
+
<div class="col">
|
10
|
+
<div class="card border border-4">
|
11
|
+
<div class="card-body">
|
12
|
+
<h1 class="card-title pb-2" style="color: #333; font-size: 120%">{{ project.title }}</h1>
|
13
|
+
<h6 class="text-muted mb-2 card-subtitle" style="font-size: 110%">{{ project.stack }}</h6>
|
14
|
+
<p class="card-text">{{ project.snippet }}</p>
|
15
|
+
<a href="{{ site.baseurl }}{{ project.url }}">Read more</a>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
{% else %}
|
21
|
+
<div class="row py-2">
|
22
|
+
<div class="col">
|
23
|
+
<div class="card">
|
24
|
+
<div class="card-body">
|
25
|
+
<h1 class="card-title pb-2" style="color: #333; font-size: 120%">{{ project.title }}</h1>
|
26
|
+
<h6 class="text-muted mb-2 card-subtitle" style="font-size: 110%">{{ project.stack }}</h6>
|
27
|
+
<p class="card-text">{{ project.snippet }}</p>
|
28
|
+
<a href="{{ site.baseurl }}{{ project.url }}">Read more</a>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
{% endif %}
|
34
|
+
{% endfor %}
|
data/_layouts/tag.html
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
<div class="posts">
|
5
|
+
<h1 style="color: #cc0000;">Tag #{{page.tag}}</h1>
|
6
|
+
<ul>
|
7
|
+
{% for post in site.posts %}
|
8
|
+
{% if post.tags contains page.tag %}
|
9
|
+
<li>
|
10
|
+
<a href="{{ post.url }}">{{ post.title }}</a>
|
11
|
+
<time datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date: "%m-%d-%Y" }}</time>
|
12
|
+
</li>
|
13
|
+
{% endif %}
|
14
|
+
{% endfor %}
|
15
|
+
</ul>
|
16
|
+
</div>
|
data/_sass/main.scss
ADDED
@@ -0,0 +1,226 @@
|
|
1
|
+
$backgroundColor: #ffffff;
|
2
|
+
$bodyColor: #000000;
|
3
|
+
$bodyFont: Verdana, "Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
|
4
|
+
|
5
|
+
html {
|
6
|
+
position: relative;
|
7
|
+
min-height: 100%;
|
8
|
+
}
|
9
|
+
|
10
|
+
body {
|
11
|
+
background: $backgroundColor;
|
12
|
+
color: $bodyColor;
|
13
|
+
font-family: $bodyFont;
|
14
|
+
font-size: 14px;
|
15
|
+
margin-bottom: 40px;
|
16
|
+
}
|
17
|
+
|
18
|
+
main {
|
19
|
+
display: flex;
|
20
|
+
flex-wrap: wrap;
|
21
|
+
max-width: 54rem;
|
22
|
+
margin: 2rem 0;
|
23
|
+
padding: 1rem;
|
24
|
+
}
|
25
|
+
|
26
|
+
section {
|
27
|
+
flex-basis: 0;
|
28
|
+
flex-grow: 999;
|
29
|
+
min-width: 70%;
|
30
|
+
display: flex;
|
31
|
+
flex-direction: column;
|
32
|
+
|
33
|
+
h1 {
|
34
|
+
font-size: 150%;
|
35
|
+
}
|
36
|
+
|
37
|
+
h2 {
|
38
|
+
font-size: 120%;
|
39
|
+
}
|
40
|
+
|
41
|
+
h3 {
|
42
|
+
font-size: 115%;
|
43
|
+
}
|
44
|
+
|
45
|
+
h4 {
|
46
|
+
font-size: 110%;
|
47
|
+
}
|
48
|
+
|
49
|
+
h5 {
|
50
|
+
font-size: 100%;
|
51
|
+
}
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
header, section {
|
56
|
+
padding: 1rem;
|
57
|
+
}
|
58
|
+
|
59
|
+
header {
|
60
|
+
flex-grow: 1;
|
61
|
+
flex-basis: 10rem;
|
62
|
+
position: relative;
|
63
|
+
}
|
64
|
+
|
65
|
+
header {
|
66
|
+
ul {
|
67
|
+
list-style: none;
|
68
|
+
}
|
69
|
+
|
70
|
+
a {
|
71
|
+
color: $bodyColor;
|
72
|
+
text-decoration: none;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
header {
|
77
|
+
li {
|
78
|
+
margin-bottom: .2rem;
|
79
|
+
text-align: right;
|
80
|
+
margin-right: 2rem;
|
81
|
+
}
|
82
|
+
|
83
|
+
a:hover {
|
84
|
+
color: $bodyColor;
|
85
|
+
border-bottom: 1px gray dotted;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
nav {
|
90
|
+
ul {
|
91
|
+
border-right: 1px solid #eee;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
.posts {
|
96
|
+
ul {
|
97
|
+
list-style: none;
|
98
|
+
}
|
99
|
+
|
100
|
+
li {
|
101
|
+
align-items: center;
|
102
|
+
display: flex;
|
103
|
+
justify-content: space-between;
|
104
|
+
margin-bottom: 0.5rem;
|
105
|
+
|
106
|
+
a {
|
107
|
+
white-space: nowrap;
|
108
|
+
overflow: hidden;
|
109
|
+
text-decoration: none;
|
110
|
+
text-overflow: ellipsis;
|
111
|
+
}
|
112
|
+
|
113
|
+
time {
|
114
|
+
padding-left: 1rem;
|
115
|
+
white-space: nowrap;
|
116
|
+
font-variant-numeric: tabular-nums;
|
117
|
+
}
|
118
|
+
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
.posts {
|
123
|
+
|
124
|
+
h1 {
|
125
|
+
margin: 1rem 0;
|
126
|
+
font-size: 150%;
|
127
|
+
}
|
128
|
+
|
129
|
+
h2 {
|
130
|
+
margin: 1rem 0;
|
131
|
+
font-size: 130%;
|
132
|
+
}
|
133
|
+
|
134
|
+
h3 {
|
135
|
+
margin: 1rem 0;
|
136
|
+
font-size: 120%;
|
137
|
+
}
|
138
|
+
|
139
|
+
h4 {
|
140
|
+
margin: 1rem 0;
|
141
|
+
font-size: 110%;
|
142
|
+
}
|
143
|
+
|
144
|
+
h5 {
|
145
|
+
margin: 1rem 0;
|
146
|
+
font-size: 100%;
|
147
|
+
}
|
148
|
+
|
149
|
+
}
|
150
|
+
|
151
|
+
h1, h2, h3, h4, h5 {
|
152
|
+
line-height: 1;
|
153
|
+
margin: 1rem 0;
|
154
|
+
}
|
155
|
+
|
156
|
+
a {
|
157
|
+
text-decoration: none;
|
158
|
+
}
|
159
|
+
|
160
|
+
a:hover {
|
161
|
+
border-bottom: 1px gray dotted;
|
162
|
+
}
|
163
|
+
|
164
|
+
.stickyfooter {
|
165
|
+
position: absolute;
|
166
|
+
bottom: 0;
|
167
|
+
height: 40px;
|
168
|
+
width: 100%;
|
169
|
+
}
|
170
|
+
|
171
|
+
code {
|
172
|
+
font-size: 100%;
|
173
|
+
}
|
174
|
+
|
175
|
+
pre {
|
176
|
+
border-radius: 5px;
|
177
|
+
box-shadow: 2px 2px 2px #eee;
|
178
|
+
code {
|
179
|
+
border-radius: 5px;
|
180
|
+
font-size: 125%;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
blockquote {
|
185
|
+
border-left: .25em solid #dfe2e5;
|
186
|
+
color: #6a737d;
|
187
|
+
padding: 0 1em;
|
188
|
+
}
|
189
|
+
|
190
|
+
.rss {
|
191
|
+
text-decoration: none;
|
192
|
+
color: #000000;
|
193
|
+
}
|
194
|
+
|
195
|
+
.rss:hover {
|
196
|
+
border-bottom: none;
|
197
|
+
color: #333;
|
198
|
+
}
|
199
|
+
|
200
|
+
table tr th {background:#eeeee1; color:#333; padding:0; border:#aaa solid 1px; text-align: center; font-weight: bold;}
|
201
|
+
table tr td {border:1px #ccc solid; padding:5px;}
|
202
|
+
table tr td.rightright {background: #eeeee1;}
|
203
|
+
table tr td h4 {margin:0; padding:0; font-weight:normal;}
|
204
|
+
|
205
|
+
@media screen and (max-width: 45rem ) {
|
206
|
+
header li {
|
207
|
+
display: inline;
|
208
|
+
margin-right: 1rem;
|
209
|
+
font-size: 110%;
|
210
|
+
}
|
211
|
+
|
212
|
+
header ul {
|
213
|
+
border-bottom: 1px solid #eee;
|
214
|
+
padding-bottom: 2rem;
|
215
|
+
}
|
216
|
+
|
217
|
+
nav ul {
|
218
|
+
border-right: 0px;
|
219
|
+
}
|
220
|
+
|
221
|
+
footer {
|
222
|
+
margin-bottom: 1rem;
|
223
|
+
padding-left: 0.5rem;
|
224
|
+
padding-right: 0.5rem;
|
225
|
+
}
|
226
|
+
}
|
metadata
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll-academic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Mike Liang
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-05-02 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: '4.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: jekyll-seo-tag
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jekyll-sitemap
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: jekyll
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.2'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.2'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.2.16
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.2.16
|
83
|
+
description: Jekyll academic is a lightweight no nonsense theme for any academic usecase.
|
84
|
+
email:
|
85
|
+
- liang.mike.to@gmail.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- LICENSE.txt
|
91
|
+
- README.md
|
92
|
+
- _config.yml
|
93
|
+
- _includes/footer.html
|
94
|
+
- _includes/head.html
|
95
|
+
- _includes/licenses.html
|
96
|
+
- _includes/nav.html
|
97
|
+
- _includes/socials.html
|
98
|
+
- _layouts/blog.html
|
99
|
+
- _layouts/default.html
|
100
|
+
- _layouts/post.html
|
101
|
+
- _layouts/projects.html
|
102
|
+
- _layouts/tag.html
|
103
|
+
- _sass/main.scss
|
104
|
+
- assets/css/main.scss
|
105
|
+
homepage: https://jekyll-academic.netlify.app
|
106
|
+
licenses:
|
107
|
+
- MIT
|
108
|
+
metadata: {}
|
109
|
+
post_install_message:
|
110
|
+
rdoc_options: []
|
111
|
+
require_paths:
|
112
|
+
- lib
|
113
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
requirements: []
|
124
|
+
rubygems_version: 3.0.3
|
125
|
+
signing_key:
|
126
|
+
specification_version: 4
|
127
|
+
summary: A simple beautiful theme for any academic usecase.
|
128
|
+
test_files: []
|