tear-jekyll-theme 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/README.md +110 -0
- data/_config.yml +20 -0
- data/_includes/footer.html +9 -0
- data/_includes/head.html +11 -0
- data/_includes/navigation.html +93 -0
- data/_layouts/about.html +21 -0
- data/_layouts/default.html +32 -0
- data/_layouts/home.html +51 -0
- data/_layouts/post.html +57 -0
- data/_layouts/projects.html +3 -0
- data/assets/css/input.css +3 -0
- data/assets/css/output.css +1599 -0
- data/assets/img/contoh_thumbnail.png +0 -0
- data/assets/js/application.js +12 -0
- data/assets/js/controllers/message_controller.js +7 -0
- data/assets/js/controllers/navbar_burger_controller.js +9 -0
- data/assets/js/controllers/theme_controller.js +45 -0
- data/assets/js/controllers/thumbnail_controller.js +14 -0
- metadata +77 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 169c9f84e9da00330e033e866b1f4f198806b25220a9e03584f62ff2e88dc3bf
|
4
|
+
data.tar.gz: 9521c6a9a87e8d201ce022b5b65bcb184becf3302526b2694313a5934f0ff79d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 612c65c1fe87f77ee0c41562311428190c0df2434e06741d70ddca9207de148472f91da245a9015df272e6c30a8c472dba01e776cb0fc6feb839d73de6a5957a
|
7
|
+
data.tar.gz: 773cdee5153a793f53602cc7f5f4a30ac2d2158a18ba6c3d2cbd7c0ab426eb1ba81e27576868fcd7748b0f007924428860732aabbdcfea80ea1117c3bd8b31ca
|
data/README.md
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
<img src="https://i.ibb.co.com/sdVSmQ5x/niri-logo.png" alt="drawing" width="300"/>
|
2
|
+
|
3
|
+
[](https://rubygems.org/gems/niri)
|
4
|
+
[](https://rubygems.org/gems/niri)
|
5
|
+
|
6
|
+
# About
|
7
|
+
Theme blog for jekyll using Bulma css.
|
8
|
+
|
9
|
+
Live Demo : https://rokhimin.github.io
|
10
|
+
|
11
|
+
## Features
|
12
|
+
- Modern UI
|
13
|
+
- Dark/Light Mode ( I set default Darkmode first time user open website )
|
14
|
+
- Comment (Disqus)
|
15
|
+
- Logo
|
16
|
+
- Page Projects
|
17
|
+
- many more
|
18
|
+
|
19
|
+
## Installation Jekyll
|
20
|
+
|
21
|
+
$ gem install jekyll
|
22
|
+
|
23
|
+
|
24
|
+
create first app
|
25
|
+
|
26
|
+
$ jekyll new yournameapp
|
27
|
+
|
28
|
+
|
29
|
+
## Installation Theme
|
30
|
+
|
31
|
+
Installation theme Niri to your jekyll app
|
32
|
+
|
33
|
+
Add this line to your Jekyll site's `Gemfile`:
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
gem "niri"
|
37
|
+
```
|
38
|
+
|
39
|
+
And add this line to your Jekyll site's `_config.yml`:
|
40
|
+
|
41
|
+
```yaml
|
42
|
+
theme: niri
|
43
|
+
```
|
44
|
+
|
45
|
+
And then execute:
|
46
|
+
|
47
|
+
$ bundle
|
48
|
+
|
49
|
+
|
50
|
+
Run jekyll:
|
51
|
+
|
52
|
+
$ bundle exec jekyll s
|
53
|
+
|
54
|
+
## Setup
|
55
|
+
|
56
|
+
##### copy to _config.yml
|
57
|
+
|
58
|
+
```yaml
|
59
|
+
title: Niri
|
60
|
+
email: youremail@gmail.com
|
61
|
+
description: yourdesc
|
62
|
+
baseurl: ""
|
63
|
+
url: ""
|
64
|
+
footer: Example Theme <a href="https://github.com/rokhimin/jekyll-niri">Niri</a> [/code] by whdzera
|
65
|
+
twitter_username: whdzera
|
66
|
+
github_username: rokhimin
|
67
|
+
logo: niri-logo.png
|
68
|
+
theme: niri
|
69
|
+
photo_profile: ""
|
70
|
+
disqus: ""
|
71
|
+
```
|
72
|
+
|
73
|
+
##### Create file 'projects.markdown' in '/' to use page Projects feature
|
74
|
+
|
75
|
+
##### copy to projects.markdown
|
76
|
+
|
77
|
+
```
|
78
|
+
---
|
79
|
+
layout: projects
|
80
|
+
permalink: /projects/
|
81
|
+
---
|
82
|
+
YOUR PROJECT
|
83
|
+
```
|
84
|
+
|
85
|
+
##### edit about.markdown
|
86
|
+
|
87
|
+
```
|
88
|
+
---
|
89
|
+
layout: about
|
90
|
+
permalink: /projects/
|
91
|
+
---
|
92
|
+
YOUR ABOUT
|
93
|
+
```
|
94
|
+
|
95
|
+
## Contributing
|
96
|
+
|
97
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/rokhimin/jekyll-niri. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](https://www.contributor-covenant.org/) code of conduct.
|
98
|
+
|
99
|
+
## Development
|
100
|
+
|
101
|
+
To set up your environment to develop this theme, run `bundle install`.
|
102
|
+
|
103
|
+
Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
|
104
|
+
|
105
|
+
When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
|
106
|
+
To add a custom directory to your theme-gem, please edit the regexp in `niri.gemspec` accordingly.
|
107
|
+
|
108
|
+
## License
|
109
|
+
|
110
|
+
The 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,20 @@
|
|
1
|
+
title: Tear
|
2
|
+
email: whdzera@gmail.com
|
3
|
+
description: >- # this means to ignore newlines until "baseurl:"
|
4
|
+
Write an awesome description for your new site here. You can edit this
|
5
|
+
line in _config.yml. It will appear in your document head meta (for
|
6
|
+
Google search results) and in your feed.xml site description.
|
7
|
+
baseurl: ""
|
8
|
+
url: ""
|
9
|
+
logo: Tear
|
10
|
+
footer: "Created with ❤ by whdzera"
|
11
|
+
twitter_username: jekyllrb
|
12
|
+
github_username: jekyll
|
13
|
+
disqus: "rokhimin-1.disqus"
|
14
|
+
|
15
|
+
plugins:
|
16
|
+
- jekyll-feed
|
17
|
+
|
18
|
+
markdown: kramdown
|
19
|
+
kramdown:
|
20
|
+
input: GFM
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<footer class="bg-white dark:bg-gray-800 shadow-inner mt-12">
|
2
|
+
<div class="max-w-6xl mx-auto px-4 py-8">
|
3
|
+
<div class="text-center text-gray-500 dark:text-gray-400">
|
4
|
+
<p>{{ site.footer }}</p>
|
5
|
+
<p>Powered by <a href="https://jekyllrb.com/" class="text-blue-400">Jekyll</a></p>
|
6
|
+
<p>©{{ site.time | date: '%Y' }} <a href="https://github.com/rokhimin/jekyll-tear" class="text-blue-400">Tear Theme</a>.</p>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
</footer>
|
data/_includes/head.html
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
<head>
|
2
|
+
<meta charset="utf-8">
|
3
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
|
+
<title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
|
6
|
+
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
|
7
|
+
<link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
|
8
|
+
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
|
9
|
+
<link href="{{ site.baseurl }}/assets/css/output.css" rel="stylesheet" />
|
10
|
+
<script type="module" src="{{ site.baseurl }}/assets/js/application.js"></script>
|
11
|
+
</head>
|
@@ -0,0 +1,93 @@
|
|
1
|
+
<nav class="bg-white dark:bg-gray-800 shadow-md" data-controller="navbar">
|
2
|
+
<div class="max-w-6xl mx-auto px-4">
|
3
|
+
<div class="flex justify-between">
|
4
|
+
<div class="flex space-x-4">
|
5
|
+
<div class="flex items-center py-3">
|
6
|
+
<a href="/" class="font-bold text-3xl text-primary dark:text-blue-400">
|
7
|
+
{{ site.logo }}
|
8
|
+
</a>
|
9
|
+
</div>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<!-- Desktop Navigation -->
|
13
|
+
<div class="hidden md:flex items-center space-x-1">
|
14
|
+
<a
|
15
|
+
class="py-4 px-3 text-gray-700 dark:text-gray-200 hover:text-primary dark:hover:text-primary transition-colors duration-300"
|
16
|
+
href="{{ '/' | relative_url }}"
|
17
|
+
>Home</a
|
18
|
+
>
|
19
|
+
<a
|
20
|
+
class="py-4 px-3 text-gray-700 dark:text-gray-200 hover:text-primary dark:hover:text-primary transition-colors duration-300"
|
21
|
+
href="{{ '/projects/' | relative_url }}"
|
22
|
+
>Projects</a
|
23
|
+
>
|
24
|
+
<a
|
25
|
+
class="py-4 px-3 text-gray-700 dark:text-gray-200 hover:text-primary dark:hover:text-primary transition-colors duration-300"
|
26
|
+
href="{{ '/about/' | relative_url }}"
|
27
|
+
>About</a
|
28
|
+
>
|
29
|
+
|
30
|
+
<!-- Dark Mode Toggle Desktop -->
|
31
|
+
<button
|
32
|
+
class="p-2 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors duration-300"
|
33
|
+
data-action="click->theme#toggle"
|
34
|
+
>
|
35
|
+
<span data-theme-target="icon" class="w-5 h-5"></span>
|
36
|
+
</button>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<!-- Mobile Navigation -->
|
40
|
+
<div class="md:hidden flex items-center">
|
41
|
+
<!-- Dark Mode Toggle Mobile -->
|
42
|
+
<button
|
43
|
+
class="mr-2 p-2 rounded-full hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors duration-300"
|
44
|
+
data-action="click->theme#toggle"
|
45
|
+
>
|
46
|
+
<span data-theme-target="icon" class="w-5 h-5"></span>
|
47
|
+
</button>
|
48
|
+
|
49
|
+
<!-- Burger Menu Button -->
|
50
|
+
<button
|
51
|
+
class="mobile-menu-button p-2 rounded-lg hover:bg-gray-200 dark:hover:bg-gray-700 focus:outline-none transition-colors duration-300"
|
52
|
+
data-action="click->navbar#toggle"
|
53
|
+
aria-label="Toggle menu"
|
54
|
+
>
|
55
|
+
<!-- Hamburger Icon -->
|
56
|
+
<svg
|
57
|
+
xmlns="http://www.w3.org/2000/svg"
|
58
|
+
class="h-7 w-7 text-gray-700 dark:text-gray-200"
|
59
|
+
fill="none"
|
60
|
+
viewBox="0 0 24 24"
|
61
|
+
stroke="currentColor"
|
62
|
+
>
|
63
|
+
<path
|
64
|
+
stroke-linecap="round"
|
65
|
+
stroke-linejoin="round"
|
66
|
+
stroke-width="2"
|
67
|
+
d="M4 6h16M4 12h16M4 18h16"
|
68
|
+
/>
|
69
|
+
</svg>
|
70
|
+
</button>
|
71
|
+
</div>
|
72
|
+
</div>
|
73
|
+
</div>
|
74
|
+
|
75
|
+
<!-- Mobile Menu -->
|
76
|
+
<div class="mobile-menu hidden md:hidden" data-navbar-target="menu">
|
77
|
+
<a
|
78
|
+
class="block py-2 px-4 text-sm hover:bg-gray-200 dark:hover:bg-gray-700 dark:text-gray-200"
|
79
|
+
href="{{ '/' | prepend: site.baseurl }}"
|
80
|
+
>Home</a
|
81
|
+
>
|
82
|
+
<a
|
83
|
+
class="block py-2 px-4 text-sm hover:bg-gray-200 dark:hover:bg-gray-700 dark:text-gray-200"
|
84
|
+
href="{{ '/projects/' | prepend: site.baseurl }}"
|
85
|
+
>Projects</a
|
86
|
+
>
|
87
|
+
<a
|
88
|
+
class="block py-2 px-4 text-sm hover:bg-gray-200 dark:hover:bg-gray-700 dark:text-gray-200"
|
89
|
+
href="{{ '/about/' | prepend: site.baseurl }}"
|
90
|
+
>About</a
|
91
|
+
>
|
92
|
+
</div>
|
93
|
+
</nav>
|
data/_layouts/about.html
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<div
|
6
|
+
class="relative md:mr-25 md:ml-25 bg-white dark:bg-gray-800 rounded-l-lg rounded-r-lg shadow-lg overflow-hidden mb-6"
|
7
|
+
>
|
8
|
+
<h1 class="text-3xl ml-5 mt-2 md:text-4xl font-bold text-primary dark:text-blue-400 animate-fade-in">
|
9
|
+
About
|
10
|
+
</h1>
|
11
|
+
<article class="max-w-4xl mx-auto px-4 sm:px-6 py-4">
|
12
|
+
<div class="h-px w-full bg-gradient-to-r from-black to-transparent dark:from-blue-400 mb-8"></div>
|
13
|
+
|
14
|
+
|
15
|
+
<div class="prose dark:prose-invert prose-lg max-w-none text-gray-700 dark:text-gray-200">
|
16
|
+
|
17
|
+
<img src="{{ site.photo_profile }}" alt="photo_profile" style="width:150px;" />
|
18
|
+
{{ content }}
|
19
|
+
</div>
|
20
|
+
</article>
|
21
|
+
</div>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
{% include head.html %}
|
4
|
+
<body
|
5
|
+
class="bg-gray-100 dark:bg-gray-900 dark:text-white transition-colors duration-300 max-h-100 overflow-y-auto
|
6
|
+
|
7
|
+
/* Scrollbar Track */
|
8
|
+
[&::-webkit-scrollbar]:w-4.5
|
9
|
+
[&::-webkit-scrollbar-track]:rounded-full
|
10
|
+
[&::-webkit-scrollbar-track]:bg-gray-100
|
11
|
+
dark:[&::-webkit-scrollbar-track]:bg-gray-900
|
12
|
+
|
13
|
+
/* Scrollbar Thumb */
|
14
|
+
[&::-webkit-scrollbar-thumb]:absolute
|
15
|
+
|
16
|
+
[&::-webkit-scrollbar-thumb]:bg-gray-400
|
17
|
+
dark:[&::-webkit-scrollbar-thumb]:bg-neutral-700
|
18
|
+
|
19
|
+
/* Scrollbar Thumb on Hover */
|
20
|
+
[&::-webkit-scrollbar-thumb:hover]:bg-gray-500
|
21
|
+
dark:[&::-webkit-scrollbar-thumb:hover]:bg-neutral-400
|
22
|
+
"
|
23
|
+
data-controller="theme"
|
24
|
+
>
|
25
|
+
|
26
|
+
{% include navigation.html %}
|
27
|
+
<main class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
28
|
+
{{ content }}
|
29
|
+
</main>
|
30
|
+
{% include footer.html %}
|
31
|
+
</body>
|
32
|
+
</html>
|
data/_layouts/home.html
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<!-- Blog Content -->
|
6
|
+
<div class="text-center mb-12">
|
7
|
+
<h1 class="text-4xl font-bold text-gray-800 dark:text-white mb-4">
|
8
|
+
Welcome to My Blog
|
9
|
+
</h1>
|
10
|
+
<p class="text-gray-600 dark:text-gray-300 mx-auto max-w-2xl">
|
11
|
+
{{ site.description }}
|
12
|
+
</p>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
{% assign posts_by_year = site.posts | group_by_exp:"post", "post.date | date:
|
16
|
+
'%Y'" %} {% for year in posts_by_year %} {% for post in year.items %}
|
17
|
+
<!-- Post Card -->
|
18
|
+
<div
|
19
|
+
class="relative md:mr-25 md:ml-25 bg-white dark:bg-gray-800 rounded-l-lg rounded-r-lg shadow-lg overflow-hidden mb-6"
|
20
|
+
>
|
21
|
+
<!-- Thumbnail -->
|
22
|
+
{% if post.thumbnail %}
|
23
|
+
<a href="{{ post.url | relative_url }}" data-controller="thumbnail">
|
24
|
+
<img
|
25
|
+
src="{{ post.thumbnail }}"
|
26
|
+
alt="Thumbnail {{ post.title }}"
|
27
|
+
data-thumbnail-target="image"
|
28
|
+
class="w-full h-48 object-cover transition duration-300 ease-in-out rounded-lg"
|
29
|
+
/>
|
30
|
+
</a>
|
31
|
+
|
32
|
+
{% endif %}
|
33
|
+
|
34
|
+
<!-- Post Content -->
|
35
|
+
<div class="p-3">
|
36
|
+
<div
|
37
|
+
class="flex items-center text-sm text-gray-500 dark:text-gray-400 mb-1"
|
38
|
+
>
|
39
|
+
<i class="far fa-calendar"></i>
|
40
|
+
<span>{{ post.date | date: "%b %-d, %Y" }}</span>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<h3
|
44
|
+
class="text-2xl font-bold text-gray-800 dark:text-white hover:text-primary transition-colors"
|
45
|
+
>
|
46
|
+
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
47
|
+
</h3>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
{% endfor %} {% endfor %}
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<div
|
6
|
+
class="relative md:mr-25 md:ml-25 bg-white dark:bg-gray-800 rounded-l-lg rounded-r-lg shadow-lg overflow-hidden mb-6"
|
7
|
+
>
|
8
|
+
<!-- Thumbnail -->
|
9
|
+
<img
|
10
|
+
src="{{ base.url }}/{{ page.thumbnail }}"
|
11
|
+
alt="Thumbnail {{ page.title }}"
|
12
|
+
class="w-full h-48 object-cover rounded-lg shadow-sm transition-transform duration-300 hover:scale-105"
|
13
|
+
/>
|
14
|
+
|
15
|
+
|
16
|
+
<article class="max-w-4xl mx-auto px-4 sm:px-6 py-8">
|
17
|
+
<h1 class="text-3xl md:text-4xl font-bold text-primary dark:text-blue-400 mb-4 animate-fade-in">
|
18
|
+
{{ page.title }}
|
19
|
+
</h1>
|
20
|
+
|
21
|
+
<div class="flex items-center text-sm text-gray-500 dark:text-gray-400 mb-6">
|
22
|
+
<i class="far fa-calendar mr-2"></i>
|
23
|
+
<time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%Y-%m-%d" }}</time>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<div class="h-px w-full bg-gradient-to-r from-black to-transparent dark:from-blue-400 mb-8"></div>
|
27
|
+
|
28
|
+
<div class="prose dark:prose-invert prose-lg max-w-none text-gray-700 dark:text-gray-200">
|
29
|
+
{{ content }}
|
30
|
+
</div>
|
31
|
+
</article>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
|
35
|
+
<div
|
36
|
+
class="relative md:mr-25 md:ml-25 bg-white dark:bg-gray-800 rounded-l-lg rounded-r-lg shadow-lg overflow-hidden mb-6"
|
37
|
+
>
|
38
|
+
{% if page.comments %}
|
39
|
+
<div class="p-3">
|
40
|
+
<div id="disqus_thread"></div>
|
41
|
+
</div>
|
42
|
+
<script>
|
43
|
+
var disqus_config = function () {
|
44
|
+
this.page.url = "{{ page.url | absolute_url }}";
|
45
|
+
this.page.identifier = "{{ page.id }}";
|
46
|
+
};
|
47
|
+
|
48
|
+
(function() {
|
49
|
+
var d = document, s = d.createElement('script');
|
50
|
+
s.src = 'https://{{ site.disqus }}.com/embed.js';
|
51
|
+
s.setAttribute('data-timestamp', +new Date());
|
52
|
+
(d.head || d.body).appendChild(s);
|
53
|
+
})();
|
54
|
+
</script>
|
55
|
+
|
56
|
+
{% endif %}
|
57
|
+
</div>
|