jekyll-academic 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.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: []
|