tessera-jekyll-theme 0.1.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 +21 -0
- data/LICENSE.txt +21 -0
- data/README.md +126 -0
- data/_config.yml +10 -0
- data/_includes/bottompane.html +12 -0
- data/_includes/comments.html +25 -0
- data/_includes/leftpane.html +64 -0
- data/_includes/pagination-controls.html +26 -0
- data/_includes/postcontent.html +35 -0
- data/_includes/postgrid.html +30 -0
- data/_includes/rightpane.html +48 -0
- data/_includes/searchbar.html +7 -0
- data/_includes/toppane.html +52 -0
- data/_includes/userbox.html +11 -0
- data/_layouts/archive.html +29 -0
- data/_layouts/default.html +16 -0
- data/_layouts/home.html +10 -0
- data/_layouts/page.html +5 -0
- data/_layouts/post.html +25 -0
- data/assets/css/style.css +761 -0
- data/assets/img/avatar.webp +0 -0
- data/assets/img/banner.svg +1 -0
- data/assets/js/search.js +40 -0
- metadata +104 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d698752f107880b273524ba14c09d97948f37b562d26fd0852561f206edfc42e
|
4
|
+
data.tar.gz: 90068a01f33c575b1e478fc1836a5f59c01608fdb9b05552cba2ec71cf24187d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: beab1c8822c0b0820986b85f15e0a495247dd2951a9d8b224cd491e45ab61978ec9e73d259ccf8eab94a991ef93298041f5acb678b9ce9e32042d2c28e53356e
|
7
|
+
data.tar.gz: e2bbf6900573f516fb0e7d7c7a7f9655a7146c138d692a141826a94708e2244f3028b0c5073d73b6d9d3b4dec0ebde0303a6b31dc4fa7b6f69a6870649fcd4d9
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2025 ItsZariep
|
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 all
|
13
|
+
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 THE
|
21
|
+
SOFTWARE.
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2025 ItsZariep
|
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,126 @@
|
|
1
|
+
# Tessera
|
2
|
+
|
3
|
+
Tessera is a Jekyll theme designed with content creators in mind, but like any other Jekyll theme, it can be used by anyone.
|
4
|
+
|
5
|
+
Tessera features three main components: two side panels and a central content area. The theme is highly modular, allowing you to easily customize any component by overriding the `_includes`.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your Jekyll site's `Gemfile`:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem "tessera"
|
13
|
+
```
|
14
|
+
|
15
|
+
Then add this line to your Jekyll site's `_config.yml`:
|
16
|
+
|
17
|
+
```yaml
|
18
|
+
theme: tessera
|
19
|
+
```
|
20
|
+
|
21
|
+
And then execute:
|
22
|
+
|
23
|
+
```
|
24
|
+
$ bundle
|
25
|
+
```
|
26
|
+
|
27
|
+
Or install it manually with:
|
28
|
+
|
29
|
+
```
|
30
|
+
$ gem install tessera
|
31
|
+
```
|
32
|
+
|
33
|
+
## Dependencies
|
34
|
+
Tessera needs the following Jekyll plugins to function properly:
|
35
|
+
|
36
|
+
- jekyll-paginate (Pagination in main page)
|
37
|
+
- jekyll-archives (See posts matching category)
|
38
|
+
|
39
|
+
|
40
|
+
## Post-install setup
|
41
|
+
### Search
|
42
|
+
Search needs /`search.json`:
|
43
|
+
|
44
|
+
```
|
45
|
+
---
|
46
|
+
layout: null
|
47
|
+
---
|
48
|
+
[
|
49
|
+
{% for post in site.posts %}
|
50
|
+
{
|
51
|
+
"title": "{{ post.title | escape }}",
|
52
|
+
"url": "{{ site.baseurl }}{{ post.url }}",
|
53
|
+
"date": "{{ post.date | date: "%B %-d, %Y" }}",
|
54
|
+
"content": "{{ post.content | strip_html | strip_newlines | escape }}"
|
55
|
+
}{% unless forloop.last %},{% endunless %}
|
56
|
+
{% endfor %}
|
57
|
+
]
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
### Pagination
|
62
|
+
Pagination needs setup on `_config.yml`:
|
63
|
+
|
64
|
+
```
|
65
|
+
paginate: 9
|
66
|
+
paginate_path: "/page:num/"
|
67
|
+
```
|
68
|
+
|
69
|
+
### Social links
|
70
|
+
Like any other Jekyll theme, you need to setup your social links on `_config.yml`:
|
71
|
+
|
72
|
+
```
|
73
|
+
social_links:
|
74
|
+
- name: Twitter
|
75
|
+
url: https://twitter.com/yourprofile
|
76
|
+
icon: twitter
|
77
|
+
- name: GitHub
|
78
|
+
url: https://github.com/yourprofile
|
79
|
+
icon: github
|
80
|
+
- name: LinkedIn
|
81
|
+
url: https://linkedin.com/in/yourprofile
|
82
|
+
icon: linkedin
|
83
|
+
```
|
84
|
+
|
85
|
+
|
86
|
+
## Usage
|
87
|
+
|
88
|
+
To start customizing Tessera, copy any of the `_includes` components you'd like to modify. You’ll probably want to copy most or all of them:
|
89
|
+
|
90
|
+
* `toppane.html`: Header
|
91
|
+
* `leftpane.html`: Left side of the page
|
92
|
+
* `postgrid.html`: Post grid of the main page
|
93
|
+
* `pagination-controls.html`: Pagination controls for the main page
|
94
|
+
* `postcontent.html`: Content of a post
|
95
|
+
* `userbox.html`: User box displayed below the post content
|
96
|
+
* `comments.html`: Optional (currently unimplemented) comments section; by default, an example using Utterances is commented out. You can integrate any custom comment system via JavaScript.
|
97
|
+
* `rightpane.html`: Right side of the page
|
98
|
+
* `searchbar.html`: Search bar (requires JavaScript)
|
99
|
+
* `bottompane.html`: Footer for all pages
|
100
|
+
|
101
|
+
## Contributing
|
102
|
+
|
103
|
+
Bug reports and pull requests are welcome on GitHub at [https://github.com/itszariep/tessera](https://github.com/itszariep/tessera). This project aims to be a safe and welcoming space for collaboration. All contributors are expected to adhere to the [Contributor Covenant](https://www.contributor-covenant.org/) code of conduct.
|
104
|
+
|
105
|
+
## Development
|
106
|
+
|
107
|
+
To set up your environment for theme development, run:
|
108
|
+
|
109
|
+
```
|
110
|
+
$ bundle install
|
111
|
+
```
|
112
|
+
|
113
|
+
Your theme is set up just like a regular Jekyll site! To test it, run:
|
114
|
+
|
115
|
+
```
|
116
|
+
$ bundle exec jekyll serve
|
117
|
+
```
|
118
|
+
|
119
|
+
Then open your browser at [http://localhost:4000](http://localhost:4000). This starts a Jekyll server using your theme. Add pages, documents, data, etc., as usual to test your theme's content. As you modify the theme or its content, your site will automatically regenerate. Refresh the browser to see the changes.
|
120
|
+
|
121
|
+
When your theme is released, only the files in `_layouts`, `_includes`, `_sass`, and `assets` that are tracked by Git will be bundled.
|
122
|
+
To add a custom directory to your theme gem, update the regular expression in `tessera.gemspec` accordingly.
|
123
|
+
|
124
|
+
## License
|
125
|
+
|
126
|
+
This theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/_config.yml
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
<!-- Bottom Pane (Footer?) -->
|
2
|
+
|
3
|
+
<!-- You can remove or replace any section if required, copying _includes/bottompane.html on your page -->
|
4
|
+
|
5
|
+
<div class="bottompane">
|
6
|
+
<div class="bp-left">
|
7
|
+
<p>© {{ site.time | date: '%Y' }} {{ site.title }}</p>
|
8
|
+
</div>
|
9
|
+
<div class="bp-right">
|
10
|
+
<p>© Powered by <a href="https://github.com/itszariep/tessera">Tessera</a> for Jekyll</p>
|
11
|
+
</div>
|
12
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<!-- Example comment system with utterances
|
2
|
+
remove comment to enable it
|
3
|
+
See https://utteranc.es for more information about this example
|
4
|
+
-->
|
5
|
+
|
6
|
+
{% comment %}
|
7
|
+
|
8
|
+
<script src="https://utteranc.es/client.js"
|
9
|
+
repo="username/repository"
|
10
|
+
issue-term="pathname"
|
11
|
+
theme="preferred-color-scheme"
|
12
|
+
crossorigin="anonymous"
|
13
|
+
async>
|
14
|
+
</script>
|
15
|
+
|
16
|
+
{% endcomment %}
|
17
|
+
|
18
|
+
<!--Remove this after enabling comments-->
|
19
|
+
<div class="userbox">
|
20
|
+
<div class="userbox-content">
|
21
|
+
<h1>Comment section will be here</h1>
|
22
|
+
<h3>See _includes/comments.html</h3>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<br>
|
@@ -0,0 +1,64 @@
|
|
1
|
+
<!-- Left Pane, this is a copy of rightpane because is not used on example
|
2
|
+
remove comment if you need it-->
|
3
|
+
|
4
|
+
<div id="left-container">
|
5
|
+
|
6
|
+
<div class="leftpane-landscapescreen">
|
7
|
+
<h3>Optional leftpane</h3>
|
8
|
+
<img class="userpic" src="{{ '/assets/img/avatar.webp' | relative_url }}" alt="Avatar">
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="leftpane-portraitscreen">
|
12
|
+
{% include searchbar.html %}
|
13
|
+
</div>
|
14
|
+
|
15
|
+
{% comment %}
|
16
|
+
<!-- You can remove or replace any section if required, copying _includes/rightpane.html on your page -->
|
17
|
+
|
18
|
+
<!-- Banner Image or title-->
|
19
|
+
<!-- This image is displayed at the top of the right pane. -->
|
20
|
+
<!--<img class="rp-banner" src="{{ '/assets/img/banner.svg' | relative_url }}" width="100%" />-->
|
21
|
+
<h1 class="rp-banner">{{ site.title }}</h1>
|
22
|
+
|
23
|
+
<!-- Search Form -->
|
24
|
+
<!-- A simple GET form that allows users to perform a search query. -->
|
25
|
+
<!-- The search input is sent to the '/search' route. -->
|
26
|
+
<form action="/search" method="GET">
|
27
|
+
<input type="search" name="query" placeholder="Search..."> <!-- Search input field -->
|
28
|
+
<button type="submit">Search</button> <!-- Submit button -->
|
29
|
+
</form>
|
30
|
+
|
31
|
+
<!-- Entries Section -->
|
32
|
+
<!-- Displays a list of recent blog posts. -->
|
33
|
+
<h2>Entries</h2>
|
34
|
+
<ul>
|
35
|
+
<!-- Loop through the latest 5 posts in the site. -->
|
36
|
+
{% for post in site.posts limit:5 %}
|
37
|
+
<li>
|
38
|
+
<!-- Each post is linked to its full page. -->
|
39
|
+
<a class="rp-post-link" href="{{ post.url }}">
|
40
|
+
<!-- Post title is shown here with a small heading. -->
|
41
|
+
<h6 class="rp-post-title">{{ post.title }}</h6>
|
42
|
+
</a>
|
43
|
+
</li>
|
44
|
+
{% endfor %}
|
45
|
+
</ul>
|
46
|
+
|
47
|
+
<!-- Categories Section -->
|
48
|
+
<!-- Lists all categories used across posts, sorted alphabetically. -->
|
49
|
+
<h2>Categories</h2>
|
50
|
+
<ul>
|
51
|
+
<!-- Get and sort all categories from the site. -->
|
52
|
+
{% assign all_categories = site.categories | sort %}
|
53
|
+
{% for category in all_categories %}
|
54
|
+
<li>
|
55
|
+
<!-- Link to the category page, with a slugified version of the category name. -->
|
56
|
+
<a class="rp-post-link" href="{{ site.baseurl }}/categories/{{ category[0] | slugify }}/">
|
57
|
+
<!-- Display the name of the category with a medium heading. -->
|
58
|
+
<h4 class="rp-post-title">{{ category[0] }}</h4>
|
59
|
+
</a>
|
60
|
+
</li>
|
61
|
+
{% endfor %}
|
62
|
+
</ul>
|
63
|
+
{% endcomment %}
|
64
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<div class="pagination-controls">
|
2
|
+
{% if paginator.page > 1 %}
|
3
|
+
<a href="{{ '/' | relative_url }}">1</a>
|
4
|
+
<a href="{{ paginator.previous_page_path | relative_url }}">«</a>
|
5
|
+
{% endif %}
|
6
|
+
|
7
|
+
{% assign start_page = paginator.page | minus: 3 %}
|
8
|
+
{% if start_page < 1 %}{% assign start_page = 2 %}{% endif %}
|
9
|
+
|
10
|
+
{% assign end_page = paginator.page | plus: 3 %}
|
11
|
+
{% if end_page > paginator.total_pages %}{% assign end_page = paginator.total_pages %}{% endif %}
|
12
|
+
|
13
|
+
{% for page in (start_page..end_page) %}
|
14
|
+
{% if page == paginator.page %}
|
15
|
+
<span class="current-page">{{ page }}</span>
|
16
|
+
{% else %}
|
17
|
+
<a href="{{ site.paginate_path | relative_url | replace: ':num', page }}">{{ page }}</a>
|
18
|
+
{% endif %}
|
19
|
+
{% endfor %}
|
20
|
+
|
21
|
+
{% if paginator.page < paginator.total_pages %}
|
22
|
+
<a href="{{ paginator.next_page_path | relative_url }}">»</a>
|
23
|
+
<a href="{{ paginator.last_page_path | relative_url }}">{{ paginator.total_pages }}</a>
|
24
|
+
{% endif %}
|
25
|
+
</div>
|
26
|
+
<br><br>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<!-- Tags -->
|
2
|
+
<div class="post">
|
3
|
+
|
4
|
+
<div class="post-postcategories">
|
5
|
+
<h3>
|
6
|
+
{% for category in page.categories %}
|
7
|
+
<a href="/categories/{{ category | downcase | url_encode }}/">{{ category }}</a>{% unless forloop.last %} | {% endunless %}
|
8
|
+
{% endfor %}
|
9
|
+
</h3>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<div class="post-posttitle">
|
13
|
+
<h1>{{ page.title }}</h1>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div class="post-postdate">
|
17
|
+
<h3>{{ page.date | date: "%y/%m/%d" }}</h3>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div class="post-postcontent">
|
21
|
+
{{ content }}
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="post-postcategoriesbottom">
|
25
|
+
<h3>
|
26
|
+
{% for category in page.categories %}
|
27
|
+
<a href="/categories/{{ category | downcase | url_encode }}/">{{ category }}</a>{% unless forloop.last %} | {% endunless %}
|
28
|
+
{% endfor %}
|
29
|
+
</h3>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<hr class="endseparator">
|
33
|
+
{% include userbox.html %}
|
34
|
+
{% include comments.html %}
|
35
|
+
</div>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<!-- Post grid, it includes the logic of displaying post on main.
|
2
|
+
Edit your _config.yml to configure entries per page, example:
|
3
|
+
paginate: 9
|
4
|
+
paginate_path: "/page:num/"
|
5
|
+
-->
|
6
|
+
|
7
|
+
<div id="posts-container">
|
8
|
+
<!-- If you don't want to use pagination
|
9
|
+
replace paginator.posts with site.posts
|
10
|
+
-->
|
11
|
+
{% for post in paginator.posts %}
|
12
|
+
<a href="{{ post.url | relative_url }}" class="post-link">
|
13
|
+
<article class="post-card">
|
14
|
+
<div class="post-image-wrapper">
|
15
|
+
{% if post.image %}
|
16
|
+
<img src="{{ post.image }}" alt="{{ post.title }}" class="post-image" />
|
17
|
+
{% endif %}
|
18
|
+
</div>
|
19
|
+
<div class="post-info">
|
20
|
+
<h3 class="post-labels">{{ post.categories | join: ' | ' }}</h3>
|
21
|
+
<h2 class="post-title">{{ post.title }}</h2>
|
22
|
+
<div class="post-date">{{ post.date | date: "%y/%m/%d" }}</div>
|
23
|
+
</div>
|
24
|
+
</article>
|
25
|
+
</a>
|
26
|
+
{% endfor %}
|
27
|
+
|
28
|
+
<!-- pagination controls, see-->
|
29
|
+
{% include pagination-controls.html %}
|
30
|
+
</div>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<!-- Right Pane -->
|
2
|
+
|
3
|
+
<!-- You can remove or replace any section if required, copying _includes/rightpane.html on your page -->
|
4
|
+
|
5
|
+
<div id="right-container">
|
6
|
+
|
7
|
+
<!-- Banner Image or title-->
|
8
|
+
<!-- This image is displayed at the top of the right pane. -->
|
9
|
+
<!--<img class="rp-banner" src="{{ '/assets/img/banner.svg' | relative_url }}" width="100%" />-->
|
10
|
+
<h1 class="rp-banner">{{ site.title }}</h1>
|
11
|
+
|
12
|
+
<!-- Search Form -->
|
13
|
+
<!-- A simple GET form that allows users to perform a search query. -->
|
14
|
+
<!-- The search input is sent to the '/search' route. -->
|
15
|
+
{% include searchbar.html %}
|
16
|
+
<!-- Entries Section -->
|
17
|
+
<!-- Displays a list of recent blog posts. -->
|
18
|
+
<h2>Entries</h2>
|
19
|
+
<ul>
|
20
|
+
<!-- Loop through the latest 5 posts in the site. -->
|
21
|
+
{% for post in site.posts limit:5 %}
|
22
|
+
<li>
|
23
|
+
<!-- Each post is linked to its full page. -->
|
24
|
+
<a class="rp-post-link" href="{{ post.url }}">
|
25
|
+
<!-- Post title is shown here with a small heading. -->
|
26
|
+
<h6 class="rp-post-title">{{ post.title }}</h6>
|
27
|
+
</a>
|
28
|
+
</li>
|
29
|
+
{% endfor %}
|
30
|
+
</ul>
|
31
|
+
|
32
|
+
<!-- Categories Section -->
|
33
|
+
<!-- Lists all categories used across posts, sorted alphabetically. -->
|
34
|
+
<h2>Categories</h2>
|
35
|
+
<ul>
|
36
|
+
<!-- Get and sort all categories from the site. -->
|
37
|
+
{% assign all_categories = site.categories | sort %}
|
38
|
+
{% for category in all_categories %}
|
39
|
+
<li>
|
40
|
+
<!-- Link to the category page, with a slugified version of the category name. -->
|
41
|
+
<a class="rp-post-link" href="{{ site.baseurl }}/categories/{{ category[0] | slugify }}/">
|
42
|
+
<!-- Display the name of the category with a medium heading. -->
|
43
|
+
<h4 class="rp-post-title">{{ category[0] }}</h4>
|
44
|
+
</a>
|
45
|
+
</li>
|
46
|
+
{% endfor %}
|
47
|
+
</ul>
|
48
|
+
</div>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<!-- Top Pane (Navbar?) -->
|
2
|
+
|
3
|
+
<div class="toppanel">
|
4
|
+
<!-- Left side of the pane, usually only has a title or logo -->
|
5
|
+
<div class="tp-left">
|
6
|
+
<img class="tp-banner" src="{{ '/assets/img/banner.svg' | relative_url }}" width="100%" />
|
7
|
+
<!--<h1>{{ site.title }}</h1> -->
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<!-- Burger menu using checkbox hack (for mobile, without using JS) -->
|
11
|
+
<input type="checkbox" id="burger-toggle" class="burger-checkbox">
|
12
|
+
<label for="burger-toggle" class="burger-menu">
|
13
|
+
<span></span>
|
14
|
+
<span></span>
|
15
|
+
<span></span>
|
16
|
+
</label>
|
17
|
+
|
18
|
+
<!-- Right side of the pane, usually has the navigation buttons, this example also has sub-elements -->
|
19
|
+
<div class="tp-right" id="mobile-menu">
|
20
|
+
<ul class="tp-nav">
|
21
|
+
<li><a href="{{ '/' | relative_url }}">Home</a></li>
|
22
|
+
<li><a href="{{ '/about/' | relative_url }}">About</a></li>
|
23
|
+
<li class="tp-dropdown">
|
24
|
+
<input type="checkbox" id="social-toggle" class="dropdown-checkbox">
|
25
|
+
<label for="social-toggle">Social Media</label>
|
26
|
+
<!-- Lists all site social links, declare it on your _config.yml
|
27
|
+
example:
|
28
|
+
social_links:
|
29
|
+
- name: Youtube
|
30
|
+
url: https://youtube.com/@zariep
|
31
|
+
icon: youtube
|
32
|
+
- name: GitHub
|
33
|
+
url: https://github.com/ItsZariep
|
34
|
+
icon: github
|
35
|
+
- name: LinkedIn
|
36
|
+
url: https://linkedin.com/in/zariep
|
37
|
+
icon: linkedin
|
38
|
+
-->
|
39
|
+
<ul class="tp-dropdown-elements">
|
40
|
+
{% for link in site.social_links %}
|
41
|
+
<li>
|
42
|
+
<a href="{{ link.url }}" target="_blank" aria-label="{{ link.name }}">
|
43
|
+
{{ link.name }}
|
44
|
+
</a>
|
45
|
+
</li>
|
46
|
+
{% endfor %}
|
47
|
+
</ul>
|
48
|
+
</li>
|
49
|
+
<li><a href="{{ 'https://github.com/itszariep/tessera' }}">Download</a></li>
|
50
|
+
</ul>
|
51
|
+
</div>
|
52
|
+
</div>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!--Your personal box at the end of each post-->
|
2
|
+
|
3
|
+
<div class="userbox">
|
4
|
+
<img class="userpic" src="{{ '/assets/img/avatar.webp' | relative_url }}" alt="Avatar">
|
5
|
+
<div class="userbox-content">
|
6
|
+
<h1>ItsZariep</h1>
|
7
|
+
<h3>Cool Description</h3>
|
8
|
+
<a href="{{ '/about/' | relative_url }}">About me</a>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
<br>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<h1>Categories: {{ page.title }}</h1>
|
6
|
+
|
7
|
+
<div id="main-container">
|
8
|
+
{% include leftpane.html %}
|
9
|
+
<div id="posts-container">
|
10
|
+
{% for post in page.posts %}
|
11
|
+
<a href="{{ post.url | relative_url }}" class="post-link">
|
12
|
+
<article class="post-card">
|
13
|
+
<div class="post-image-wrapper">
|
14
|
+
{% if post.image %}
|
15
|
+
<img src="{{ post.image }}" alt="{{ post.title }}" class="post-image" />
|
16
|
+
{% endif %}
|
17
|
+
</div>
|
18
|
+
<div class="post-info">
|
19
|
+
<h3 class="post-labels">{{ post.categories | join: ' | ' }}</h3>
|
20
|
+
<h2 class="post-title">{{ post.title }}</h2>
|
21
|
+
<div class="post-date">{{ post.date | date: "%y/%m/%d" }}</div>
|
22
|
+
</div>
|
23
|
+
</article>
|
24
|
+
</a>
|
25
|
+
{% endfor %}
|
26
|
+
</div>
|
27
|
+
|
28
|
+
{% include rightpane.html %}
|
29
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>{{ page.title | default: site.title }}</title>
|
7
|
+
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
{% include toppane.html %}
|
11
|
+
<main>
|
12
|
+
{{ content }}
|
13
|
+
</main>
|
14
|
+
{% include bottompane.html %}
|
15
|
+
</body>
|
16
|
+
</html>
|
data/_layouts/home.html
ADDED
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<!DOCTYPE html>
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<!-- OG Origin tags for social media share preview -->
|
9
|
+
<meta charset="UTF-8">
|
10
|
+
<meta property="og:title" content="{{ page.title }}" />
|
11
|
+
<meta property="og:image" content="{{ page.image }}" />
|
12
|
+
<meta property="og:url" content="{{ site.url }}{{ site.baseurl }}{{ page.url }}" />
|
13
|
+
<meta property="og:type" content="website" />
|
14
|
+
|
15
|
+
<title>{{ page.title }}</title>
|
16
|
+
</head>
|
17
|
+
<body>
|
18
|
+
<div id="main-container">
|
19
|
+
{% include leftpane.html %}
|
20
|
+
{% include postcontent.html %}
|
21
|
+
<!-- User box and comments are included on postcontent.html-->
|
22
|
+
{% include rightpane.html %}
|
23
|
+
</div>
|
24
|
+
</body>
|
25
|
+
</html>
|