jekyll-theme-dreamcast 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/README.md +190 -0
- data/_includes/card_list.html +26 -0
- data/_includes/custom_head.html +1 -0
- data/_includes/date_and_social_share.html +31 -0
- data/_includes/head.html +23 -0
- data/_includes/horizontal_list.html +10 -0
- data/_includes/post_list.html +12 -0
- data/_includes/toggle_theme_button.html +10 -0
- data/_includes/toggle_theme_js.html +30 -0
- data/_includes/vertical_list.html +19 -0
- data/_layouts/blog.html +10 -0
- data/_layouts/default.html +22 -0
- data/_layouts/home.html +44 -0
- data/_layouts/post.html +8 -0
- data/_sass/dreamcast.scss +344 -0
- data/_sass/list.scss +66 -0
- data/_sass/syntax.scss +72 -0
- data/assets/css/main.scss +6 -0
- metadata +134 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 00f2a258d4eef7c1d87abe34b096b4f78fb6a56bfa9eb12175aa00dd46da409c
|
4
|
+
data.tar.gz: b375e12372002188c8ad228c12f3759d472ca72ac4b827f6321c8db05d9914cf
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3280372310952d1532246f7b30a74e0f09a9617562a22d723882733412fc6cae5f3eed8a3f5344c5ab109da1e912fb07b641b8e1181b86e5021f9c1a0a2860d4
|
7
|
+
data.tar.gz: 20be9ee415530aeaea67e7acc68aaeae24d551d9a5ca72815d27ee7eddfca4f37ec5e57465365ba84cd356e1e13e89c5b1a5d63ae313e634ae6b480fbc070004
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2025 Jack Killilea
|
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/README.md
ADDED
@@ -0,0 +1,190 @@
|
|
1
|
+
# Jekyll Theme: Dreamcast
|
2
|
+
|
3
|
+
A retro-futuristic Jekyll theme inspired by the iconic **Sega Dreamcast** console. Features the signature orange and blue color scheme, smooth animations, and a nostalgic gaming aesthetic.
|
4
|
+
|
5
|
+

|
6
|
+
|
7
|
+
## Features
|
8
|
+
|
9
|
+
- **Iconic Dreamcast Colors**: Orange (#FF6600) and Blue (#0052CC) color scheme
|
10
|
+
- **Dark/Light Mode**: Smooth theme switching with localStorage persistence
|
11
|
+
- **Responsive Design**: Mobile-friendly cards and layouts
|
12
|
+
- **Typography**: Modern Exo 2 font for that futuristic feel
|
13
|
+
- **Dreamcast-Inspired Elements**:
|
14
|
+
- Orange swirl accent dots on headings
|
15
|
+
- VMU-inspired code block styling
|
16
|
+
- Gradient hover effects
|
17
|
+
- Circular theme toggle button
|
18
|
+
- **Blog Support**: Post listings with reading time
|
19
|
+
- **Project Cards**: Showcase your portfolio with animated cards
|
20
|
+
- **Syntax Highlighting**: Beautiful code blocks with Dreamcast colors
|
21
|
+
|
22
|
+
## Installation
|
23
|
+
|
24
|
+
### As a Remote Theme (GitHub Pages)
|
25
|
+
|
26
|
+
Add this line to your Jekyll site's `Gemfile`:
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
gem "jekyll-remote-theme"
|
30
|
+
```
|
31
|
+
|
32
|
+
And add this to your `_config.yml`:
|
33
|
+
|
34
|
+
```yaml
|
35
|
+
plugins:
|
36
|
+
- jekyll-remote-theme
|
37
|
+
|
38
|
+
remote_theme: jackkillilea/jekyll-theme-dreamcast
|
39
|
+
```
|
40
|
+
|
41
|
+
### As a Gem-based Theme
|
42
|
+
|
43
|
+
Add this line to your Jekyll site's `Gemfile`:
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
gem "jekyll-theme-dreamcast"
|
47
|
+
```
|
48
|
+
|
49
|
+
And add this to your `_config.yml`:
|
50
|
+
|
51
|
+
```yaml
|
52
|
+
theme: jekyll-theme-dreamcast
|
53
|
+
```
|
54
|
+
|
55
|
+
Then execute:
|
56
|
+
|
57
|
+
```bash
|
58
|
+
bundle install
|
59
|
+
```
|
60
|
+
|
61
|
+
## Configuration
|
62
|
+
|
63
|
+
Add the following configuration to your `_config.yml`:
|
64
|
+
|
65
|
+
```yaml
|
66
|
+
title: Your Name
|
67
|
+
author: Your Name
|
68
|
+
url: https://yoursite.com
|
69
|
+
description: >
|
70
|
+
Your site description here
|
71
|
+
|
72
|
+
theme_config:
|
73
|
+
appearance: "dark" # can be "light", "dark" or "auto"
|
74
|
+
appearance_toggle: true # show theme toggle button
|
75
|
+
back_home_text: "home.." # text for back to home link
|
76
|
+
date_format: "%Y-%m-%d" # date format for posts
|
77
|
+
show_description: true # show site description on home page
|
78
|
+
show_navbar: true # show navigation bar
|
79
|
+
show_footer: false # show footer links
|
80
|
+
show_copyright: true # show copyright in footer
|
81
|
+
show_projects: true # show projects section
|
82
|
+
show_blog: false # show blog posts on home page
|
83
|
+
show_old_projects: false # show old projects section
|
84
|
+
show_misc_list: false # show miscellaneous list
|
85
|
+
show_reading_time: true # show reading time in posts
|
86
|
+
show_tags: false # show tags in posts
|
87
|
+
|
88
|
+
# Section titles
|
89
|
+
home:
|
90
|
+
title_projects: Portfolio
|
91
|
+
title_misc_list: Details
|
92
|
+
title_blog: Blog
|
93
|
+
title_old_projects: Old Projects
|
94
|
+
|
95
|
+
highlighter: rouge
|
96
|
+
|
97
|
+
plugins:
|
98
|
+
- jekyll-feed
|
99
|
+
- jekyll-seo-tag
|
100
|
+
```
|
101
|
+
|
102
|
+
## Data Files
|
103
|
+
|
104
|
+
Create a `_data/home.yml` file for your homepage content:
|
105
|
+
|
106
|
+
```yaml
|
107
|
+
navbar_entries:
|
108
|
+
- title: about
|
109
|
+
url: /about
|
110
|
+
- title: blog
|
111
|
+
url: /blog
|
112
|
+
|
113
|
+
project_entries:
|
114
|
+
- title: My Project
|
115
|
+
url: https://github.com/username/project
|
116
|
+
desc: A cool project description
|
117
|
+
highlight: NEW
|
118
|
+
|
119
|
+
footer_entries:
|
120
|
+
- title: github
|
121
|
+
url: https://github.com/username
|
122
|
+
```
|
123
|
+
|
124
|
+
## Layouts
|
125
|
+
|
126
|
+
The theme includes the following layouts:
|
127
|
+
|
128
|
+
- `default` - Base layout for all pages
|
129
|
+
- `home` - Homepage layout with projects and blog
|
130
|
+
- `post` - Blog post layout
|
131
|
+
- `blog` - Blog listing page
|
132
|
+
|
133
|
+
## Color Scheme
|
134
|
+
|
135
|
+
### Light Mode
|
136
|
+
- Background: #FAFAFA
|
137
|
+
- Text: #2A2A2A
|
138
|
+
- Headings: #0052CC (Dreamcast Blue)
|
139
|
+
- Links: #FF6600 (Dreamcast Orange)
|
140
|
+
|
141
|
+
### Dark Mode
|
142
|
+
- Background: #1A2332
|
143
|
+
- Text: #D0D0D0
|
144
|
+
- Headings: #FF8533 (Light Orange)
|
145
|
+
- Links: #FF6600 (Dreamcast Orange)
|
146
|
+
|
147
|
+
## Customization
|
148
|
+
|
149
|
+
### Custom Head Content
|
150
|
+
|
151
|
+
Create `_includes/custom_head.html` to add custom meta tags, analytics, or other head content.
|
152
|
+
|
153
|
+
### Override Styles
|
154
|
+
|
155
|
+
Create your own CSS file and import the theme styles first:
|
156
|
+
|
157
|
+
```scss
|
158
|
+
---
|
159
|
+
---
|
160
|
+
|
161
|
+
@import "dreamcast";
|
162
|
+
@import "list";
|
163
|
+
@import "syntax";
|
164
|
+
|
165
|
+
// Your custom styles here
|
166
|
+
```
|
167
|
+
|
168
|
+
## Development
|
169
|
+
|
170
|
+
To set up your environment to develop this theme:
|
171
|
+
|
172
|
+
```bash
|
173
|
+
git clone https://github.com/jackkillilea/jekyll-theme-dreamcast
|
174
|
+
cd jekyll-theme-dreamcast
|
175
|
+
bundle install
|
176
|
+
```
|
177
|
+
|
178
|
+
## Contributing
|
179
|
+
|
180
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/jackkillilea/jekyll-theme-dreamcast.
|
181
|
+
|
182
|
+
## License
|
183
|
+
|
184
|
+
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
185
|
+
|
186
|
+
## Credits
|
187
|
+
|
188
|
+
Inspired by the legendary Sega Dreamcast console (1998-2001) and its iconic visual design.
|
189
|
+
|
190
|
+
Built on the foundation of the [Moonwalk](https://github.com/abhinavs/moonwalk) Jekyll theme.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<ul class="horizontal-list">
|
2
|
+
{% for item in include.collection %}
|
3
|
+
|
4
|
+
<li class="card">
|
5
|
+
<a href="{{ item.url }}">
|
6
|
+
<span class="header">
|
7
|
+
{{ item.title }}
|
8
|
+
|
9
|
+
{% if item.highlight %}
|
10
|
+
<mark>{{ item.highlight }}</mark>
|
11
|
+
{% endif %}
|
12
|
+
|
13
|
+
</span>
|
14
|
+
|
15
|
+
<hr />
|
16
|
+
|
17
|
+
{% if item.desc != false %}
|
18
|
+
<p class="body">
|
19
|
+
{{ item.desc }}
|
20
|
+
</p>
|
21
|
+
{% endif %}
|
22
|
+
</a>
|
23
|
+
</li>
|
24
|
+
|
25
|
+
{% endfor %}
|
26
|
+
</ul>
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- Add your custom head content here -->
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<p class="post-date text-bold">
|
2
|
+
{% if page.author %}
|
3
|
+
<span class="text-upcase">{{ page.author }}</span> /
|
4
|
+
{% endif %}
|
5
|
+
{% if page.date %}
|
6
|
+
<span class="text-upcase">{{ page.date | date: "%B %Y"}}</span>
|
7
|
+
{% endif %}
|
8
|
+
|
9
|
+
{% if site.theme_config.show_reading_time == true %}
|
10
|
+
{% capture words %}
|
11
|
+
{{ content | number_of_words | minus: 180 }}
|
12
|
+
{% endcapture %}
|
13
|
+
{% unless words contains '-' %}
|
14
|
+
{{ words | strip | prepend: '(' | append: ' Words, ' }}
|
15
|
+
{{ words | plus: 180 | divided_by: 180 | append: ' Minutes)' }}
|
16
|
+
{% endunless %}
|
17
|
+
{% endif %}
|
18
|
+
</p>
|
19
|
+
|
20
|
+
<div class="soopr-btn"
|
21
|
+
data-twitter="SooprCo"
|
22
|
+
>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
{% if site.theme_config.show_tags == true %}
|
26
|
+
<div class="">
|
27
|
+
{% for tag in page.tags %}
|
28
|
+
<span class="tag">{{ tag }}</span>
|
29
|
+
{% endfor %}
|
30
|
+
</div>
|
31
|
+
{% endif %}
|
data/_includes/head.html
ADDED
@@ -0,0 +1,23 @@
|
|
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
|
+
|
6
|
+
<title>
|
7
|
+
{% if page.title %}
|
8
|
+
{{ page.title }}
|
9
|
+
{% else %}
|
10
|
+
{{ site.title }}
|
11
|
+
{% endif %}
|
12
|
+
</title>
|
13
|
+
|
14
|
+
{% seo title=false %}
|
15
|
+
{% feed_meta %}
|
16
|
+
|
17
|
+
<link rel="stylesheet" href="{{ "/assets/css/main.css" | relative_url }}" />
|
18
|
+
{% if site.theme_config.appearance_toggle %}
|
19
|
+
{% include toggle_theme_js.html %}
|
20
|
+
{% endif %}
|
21
|
+
|
22
|
+
{%- include custom_head.html -%}
|
23
|
+
</head>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{% if site.posts.size > 0 %}
|
2
|
+
<ul>
|
3
|
+
{% for post in site.posts %}
|
4
|
+
<li class="post-list-item">
|
5
|
+
<span class="home-date">
|
6
|
+
{{ post.date | date: site.theme_config.date_format }}»
|
7
|
+
</span>
|
8
|
+
<a href="{{ post.url | relative_url }}">{{ post.title }}</a>
|
9
|
+
</li>
|
10
|
+
{% endfor %}
|
11
|
+
</ul>
|
12
|
+
{% endif %}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<button title="Toggle Theme" class="theme-toggle">
|
2
|
+
<svg viewBox="0 0 32 32" width="24" height="24" fill="currentcolor">
|
3
|
+
<circle cx="16" cy="16" r="14" fill="none" stroke="currentcolor" stroke-width="4"></circle>
|
4
|
+
<path d="
|
5
|
+
M 16 0
|
6
|
+
A 16 16 0 0 0 16 32
|
7
|
+
z">
|
8
|
+
</path>
|
9
|
+
</svg>
|
10
|
+
</button>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<script type="text/javascript">
|
2
|
+
window.addEventListener('load', themeChange);
|
3
|
+
const currentTheme = localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
|
4
|
+
if (currentTheme)
|
5
|
+
document.documentElement.setAttribute('data-theme', currentTheme);
|
6
|
+
|
7
|
+
function themeChange() {
|
8
|
+
let button = document.querySelector('.theme-toggle');
|
9
|
+
|
10
|
+
button.addEventListener('click', function (e) {
|
11
|
+
let currentTheme = document.documentElement.getAttribute('data-theme');
|
12
|
+
if (currentTheme === 'dark') {
|
13
|
+
transition();
|
14
|
+
document.documentElement.setAttribute('data-theme', 'light');
|
15
|
+
localStorage.setItem('theme', 'light');
|
16
|
+
} else {
|
17
|
+
transition();
|
18
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
19
|
+
localStorage.setItem('theme', 'dark');
|
20
|
+
}
|
21
|
+
});
|
22
|
+
|
23
|
+
let transition = () => {
|
24
|
+
document.documentElement.classList.add('transition');
|
25
|
+
window.setTimeout(() => {
|
26
|
+
document.documentElement.classList.remove('transition');
|
27
|
+
}, 1000);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
</script>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<ul>
|
2
|
+
{% for item in include.collection %}
|
3
|
+
<li>
|
4
|
+
{% if item.url != false %}
|
5
|
+
<a href="{{ item.url }}">{{ item.title }}</a>
|
6
|
+
{% else %}
|
7
|
+
{{ item.title }}
|
8
|
+
{% endif %}
|
9
|
+
|
10
|
+
{% if item.post_list == true %}
|
11
|
+
{% include post_list.html %}
|
12
|
+
{% endif %}
|
13
|
+
|
14
|
+
{% if item.entries %}
|
15
|
+
{% include vertical_list.html collection=item.entries %}
|
16
|
+
{% endif %}
|
17
|
+
</li>
|
18
|
+
{% endfor %}
|
19
|
+
</ul>
|
data/_layouts/blog.html
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="{{ page.lang | default: "en" }}" class="html" data-theme="{{ site.theme_config.appearance | default: "auto" }}">
|
3
|
+
{%- include head.html -%}
|
4
|
+
<body>
|
5
|
+
<main class="page-content" aria-label="Content">
|
6
|
+
<div class="w">
|
7
|
+
{{ content }}
|
8
|
+
{% if site.theme_config.appearance_toggle %}
|
9
|
+
{% include toggle_theme_button.html %}
|
10
|
+
{% endif %}
|
11
|
+
</div>
|
12
|
+
</main>
|
13
|
+
|
14
|
+
{%- if site.soopr -%}
|
15
|
+
{%- if site.soopr.publish_token and jekyll.environment == "production" -%}
|
16
|
+
<script async defer data-soopr-token="{{site.soopr.publish_token}}" src="https://sdk.soopr.co/soopr.js"></script>
|
17
|
+
{%- else -%}
|
18
|
+
<script async defer src="https://sdk.soopr.co/soopr.js"></script>
|
19
|
+
{%- endif -%}
|
20
|
+
{%- endif -%}
|
21
|
+
</body>
|
22
|
+
</html>
|
data/_layouts/home.html
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<header>
|
6
|
+
{% if site.theme_config.show_navbar == true %}
|
7
|
+
{% include horizontal_list.html collection=site.data.home.navbar_entries %}
|
8
|
+
<div class="dashed"></div>
|
9
|
+
{% endif %}
|
10
|
+
|
11
|
+
<h1>{{ site.title }}</h1>
|
12
|
+
{% if site.theme_config.show_description == true %}
|
13
|
+
<p>{{ site.description }}</p>
|
14
|
+
{% endif %}
|
15
|
+
</header>
|
16
|
+
|
17
|
+
{{ content }}
|
18
|
+
|
19
|
+
{% if site.theme_config.show_projects == true %}
|
20
|
+
<h2>{{ site.theme_config.home.title_projects }}</h2>
|
21
|
+
{% include card_list.html collection=site.data.home.project_entries %}
|
22
|
+
{% endif %}
|
23
|
+
|
24
|
+
{% if site.theme_config.show_misc_list == true %}
|
25
|
+
<h2>{{ site.theme_config.home.title_misc_list }}</h2>
|
26
|
+
{% include vertical_list.html collection=site.data.home.misc_entries %}
|
27
|
+
{% endif %}
|
28
|
+
|
29
|
+
{% if site.theme_config.show_blog == true %}
|
30
|
+
<h2>{{ site.theme_config.home.title_blog }}</h2>
|
31
|
+
{% include post_list.html %}
|
32
|
+
{% endif %}
|
33
|
+
|
34
|
+
{% if site.theme_config.show_old_projects == true %}
|
35
|
+
<h2>{{ site.theme_config.home.title_old_projects }}</h2>
|
36
|
+
{% include card_list.html collection=site.data.home.old_project_entries %}
|
37
|
+
{% endif %}
|
38
|
+
|
39
|
+
{% if site.theme_config.show_footer == true %}
|
40
|
+
<footer>
|
41
|
+
<div class="dashed"></div>
|
42
|
+
{% include horizontal_list.html collection=site.data.home.footer_entries %}
|
43
|
+
</footer>
|
44
|
+
{% endif %}
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,344 @@
|
|
1
|
+
@import url('https://fonts.googleapis.com/css2?family=Exo+2:wght@400;600;700&display=swap');
|
2
|
+
@import url('https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap');
|
3
|
+
|
4
|
+
html { height: 100%; }
|
5
|
+
|
6
|
+
body {
|
7
|
+
font-family: "Exo 2", -apple-system, "avenir next", avenir, roboto, noto, ubuntu, "helvetica neue", helvetica, sans-serif;
|
8
|
+
font-size: 1.0rem;
|
9
|
+
line-height: 1.8;
|
10
|
+
margin: 0;
|
11
|
+
min-height: 100%;
|
12
|
+
}
|
13
|
+
|
14
|
+
pre, code {
|
15
|
+
font-family: "Roboto Mono", "Courier New", monospace;
|
16
|
+
font-size: 0.9rem;
|
17
|
+
}
|
18
|
+
|
19
|
+
h1 {
|
20
|
+
font-weight: 700;
|
21
|
+
letter-spacing: -0.5px;
|
22
|
+
}
|
23
|
+
|
24
|
+
h2, h3, h4, h5 {
|
25
|
+
margin-top: 1.5em;
|
26
|
+
font-weight: 600;
|
27
|
+
}
|
28
|
+
|
29
|
+
hr { margin: 1em 0; }
|
30
|
+
|
31
|
+
hr.page-break {
|
32
|
+
text-align: center;
|
33
|
+
border: 0;
|
34
|
+
|
35
|
+
&:before { content: '-----' }
|
36
|
+
&:after { content: attr(data-content) '-----' }
|
37
|
+
}
|
38
|
+
|
39
|
+
p { margin: 1em 0; }
|
40
|
+
|
41
|
+
li { margin: 0.4em 0; }
|
42
|
+
|
43
|
+
.w {
|
44
|
+
max-width: 720px;
|
45
|
+
margin: 0 auto;
|
46
|
+
padding: 4em 2em;
|
47
|
+
}
|
48
|
+
|
49
|
+
table, th, td {
|
50
|
+
width: 100%;
|
51
|
+
border: thin solid var(--border);
|
52
|
+
border-collapse: collapse;
|
53
|
+
padding: 0.4em;
|
54
|
+
}
|
55
|
+
|
56
|
+
div.highlighter-rouge pre code, pre code.highlighter-rouge {
|
57
|
+
display: block;
|
58
|
+
overflow-x: auto;
|
59
|
+
padding: 1em;
|
60
|
+
}
|
61
|
+
|
62
|
+
blockquote {
|
63
|
+
font-style: italic;
|
64
|
+
border-left: 4px solid var(--dreamcast-orange);
|
65
|
+
padding: 1em;
|
66
|
+
background-color: var(--bg-secondary);
|
67
|
+
margin: 1em 0;
|
68
|
+
|
69
|
+
p { margin: 0; }
|
70
|
+
}
|
71
|
+
|
72
|
+
img {
|
73
|
+
max-width: 100%;
|
74
|
+
display: block;
|
75
|
+
margin: 0 auto;
|
76
|
+
border-radius: 8px;
|
77
|
+
}
|
78
|
+
|
79
|
+
// -------------- DREAMCAST THEME COLORS -------------- //
|
80
|
+
@mixin light-appearance {
|
81
|
+
html, body {
|
82
|
+
--bg: #FAFAFA;
|
83
|
+
--bg-secondary: #F0F0F0;
|
84
|
+
--headings: #0052CC;
|
85
|
+
--text: #2A2A2A;
|
86
|
+
--text-secondary: #666666;
|
87
|
+
--links: #FF6600;
|
88
|
+
--links-hover: #FF8533;
|
89
|
+
--highlight: #FFE0CC;
|
90
|
+
--code-text: #0052CC;
|
91
|
+
--share-text: #999;
|
92
|
+
--border: #DDDDDD;
|
93
|
+
--dreamcast-orange: #FF6600;
|
94
|
+
--dreamcast-blue: #0052CC;
|
95
|
+
--dreamcast-swirl-glow: rgba(255, 102, 0, 0.15);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
@mixin dark-appearance {
|
100
|
+
html, body {
|
101
|
+
--bg: #1A2332;
|
102
|
+
--bg-secondary: #243447;
|
103
|
+
--headings: #FF8533;
|
104
|
+
--text: #D0D0D0;
|
105
|
+
--text-secondary: #9CA3AF;
|
106
|
+
--links: #FF6600;
|
107
|
+
--links-hover: #FF8533;
|
108
|
+
--highlight: #FF6600;
|
109
|
+
--code-text: #6CB6FF;
|
110
|
+
--border: #3A4558;
|
111
|
+
--dreamcast-orange: #FF6600;
|
112
|
+
--dreamcast-blue: #6CB6FF;
|
113
|
+
--dreamcast-swirl-glow: rgba(255, 102, 0, 0.2);
|
114
|
+
};
|
115
|
+
}
|
116
|
+
|
117
|
+
html[data-theme="dark"] { @include dark-appearance; }
|
118
|
+
html[data-theme="light"] { @include light-appearance; }
|
119
|
+
|
120
|
+
@media (prefers-color-scheme: dark) {
|
121
|
+
body[data-theme="auto"] { @include dark-appearance; }
|
122
|
+
}
|
123
|
+
@media (prefers-color-scheme: light) {
|
124
|
+
body[data-theme="auto"] { @include light-appearance; }
|
125
|
+
}
|
126
|
+
|
127
|
+
// -------------------------------------------- //
|
128
|
+
|
129
|
+
html, body {
|
130
|
+
background-color: var(--bg);
|
131
|
+
color: var(--text);
|
132
|
+
}
|
133
|
+
|
134
|
+
h1, h2, h3, h4, h5, h6 {
|
135
|
+
color: var(--headings);
|
136
|
+
}
|
137
|
+
|
138
|
+
p, strong, b, em, small, li, hr, table, figcaption {
|
139
|
+
color: var(--text);
|
140
|
+
}
|
141
|
+
|
142
|
+
.highlight, pre code {
|
143
|
+
border-radius: 8px;
|
144
|
+
border: 2px solid var(--border);
|
145
|
+
}
|
146
|
+
|
147
|
+
blockquote {
|
148
|
+
border-radius: 4px;
|
149
|
+
}
|
150
|
+
|
151
|
+
a {
|
152
|
+
color: var(--links);
|
153
|
+
text-decoration: none;
|
154
|
+
border-bottom: 2px solid transparent;
|
155
|
+
transition: all 0.2s ease;
|
156
|
+
|
157
|
+
&:hover {
|
158
|
+
color: var(--links-hover);
|
159
|
+
border-bottom-color: var(--links-hover);
|
160
|
+
}
|
161
|
+
}
|
162
|
+
|
163
|
+
*:target {
|
164
|
+
background-color: var(--bg-secondary);
|
165
|
+
box-shadow: 0 0 0 4px var(--bg-secondary);
|
166
|
+
border-radius: 4px;
|
167
|
+
}
|
168
|
+
|
169
|
+
html.transition,
|
170
|
+
html.transition *,
|
171
|
+
html.transition *:before,
|
172
|
+
html.transition *:after {
|
173
|
+
transition: all 250ms !important;
|
174
|
+
transition-delay: 0 !important;
|
175
|
+
}
|
176
|
+
|
177
|
+
// Dreamcast-inspired theme toggle button
|
178
|
+
.theme-toggle {
|
179
|
+
color: var(--dreamcast-orange);
|
180
|
+
background-color: var(--bg-secondary);
|
181
|
+
padding: 8px;
|
182
|
+
cursor: pointer;
|
183
|
+
margin: 1em;
|
184
|
+
position: fixed;
|
185
|
+
right: 0;
|
186
|
+
top: 0;
|
187
|
+
border: 2px solid var(--dreamcast-orange);
|
188
|
+
border-radius: 50%;
|
189
|
+
outline: none;
|
190
|
+
width: 40px;
|
191
|
+
height: 40px;
|
192
|
+
display: flex;
|
193
|
+
align-items: center;
|
194
|
+
justify-content: center;
|
195
|
+
transition: all 0.3s ease;
|
196
|
+
box-shadow: 0 2px 8px var(--dreamcast-swirl-glow);
|
197
|
+
}
|
198
|
+
|
199
|
+
.theme-toggle:hover {
|
200
|
+
background-color: var(--dreamcast-orange);
|
201
|
+
color: var(--bg);
|
202
|
+
transform: rotate(180deg);
|
203
|
+
box-shadow: 0 4px 16px var(--dreamcast-swirl-glow);
|
204
|
+
}
|
205
|
+
|
206
|
+
.theme-toggle:focus {
|
207
|
+
outline: none;
|
208
|
+
}
|
209
|
+
|
210
|
+
.dashed {
|
211
|
+
border-top: 2px var(--border) dashed;
|
212
|
+
margin: 0.5em 0;
|
213
|
+
}
|
214
|
+
|
215
|
+
mark {
|
216
|
+
padding: 0.4em;
|
217
|
+
background-color: var(--highlight);
|
218
|
+
color: var(--text);
|
219
|
+
font-size: 0.8em;
|
220
|
+
letter-spacing: 0.5px;
|
221
|
+
border-radius: 4px;
|
222
|
+
font-weight: 600;
|
223
|
+
}
|
224
|
+
|
225
|
+
.post-date {
|
226
|
+
color: var(--text-secondary);
|
227
|
+
margin-top: 1rem;
|
228
|
+
font-size: 0.8em;
|
229
|
+
font-family: "Roboto Mono", "Courier New", monospace;
|
230
|
+
text-transform: uppercase;
|
231
|
+
letter-spacing: 1px;
|
232
|
+
}
|
233
|
+
|
234
|
+
.home-date {
|
235
|
+
font-family: "Roboto Mono", "Courier New", monospace;
|
236
|
+
color: var(--text-secondary);
|
237
|
+
font-size: 0.85em;
|
238
|
+
}
|
239
|
+
|
240
|
+
.post-list-item a {
|
241
|
+
text-decoration: none;
|
242
|
+
}
|
243
|
+
|
244
|
+
.text-bold {
|
245
|
+
font-weight: 700;
|
246
|
+
}
|
247
|
+
|
248
|
+
.text-upcase {
|
249
|
+
text-transform: uppercase;
|
250
|
+
letter-spacing: 1.5px;
|
251
|
+
font-weight: 600;
|
252
|
+
}
|
253
|
+
|
254
|
+
p code, li code {
|
255
|
+
background-color: var(--bg-secondary);
|
256
|
+
padding: 0.3rem 0.5rem;
|
257
|
+
color: var(--code-text);
|
258
|
+
font-weight: 600;
|
259
|
+
border-radius: 4px;
|
260
|
+
border: 1px solid var(--border);
|
261
|
+
}
|
262
|
+
|
263
|
+
.post-title {
|
264
|
+
margin-bottom: -1.5rem;
|
265
|
+
}
|
266
|
+
|
267
|
+
.project-title {
|
268
|
+
margin-bottom: 0.8rem;
|
269
|
+
color: var(--headings);
|
270
|
+
}
|
271
|
+
|
272
|
+
.credits {
|
273
|
+
font-size: 0.8em;
|
274
|
+
color: var(--text-secondary);
|
275
|
+
margin: 8em auto -4em auto;
|
276
|
+
text-align: center;
|
277
|
+
|
278
|
+
a {
|
279
|
+
color: var(--text-secondary);
|
280
|
+
text-decoration: none;
|
281
|
+
font-weight: bold;
|
282
|
+
}
|
283
|
+
|
284
|
+
a:hover {
|
285
|
+
color: var(--dreamcast-orange);
|
286
|
+
}
|
287
|
+
}
|
288
|
+
|
289
|
+
.tag {
|
290
|
+
font-family: "Roboto Mono", "Courier New", monospace;
|
291
|
+
color: var(--bg);
|
292
|
+
background-color: var(--dreamcast-orange);
|
293
|
+
padding: 0.4em 1em;
|
294
|
+
margin-right: 0.5em;
|
295
|
+
border-radius: 20px;
|
296
|
+
font-size: 0.7em;
|
297
|
+
font-weight: 700;
|
298
|
+
text-transform: uppercase;
|
299
|
+
letter-spacing: 0.5px;
|
300
|
+
display: inline-block;
|
301
|
+
transition: all 0.2s ease;
|
302
|
+
|
303
|
+
&:hover {
|
304
|
+
background-color: var(--dreamcast-blue);
|
305
|
+
transform: translateY(-2px);
|
306
|
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
307
|
+
}
|
308
|
+
}
|
309
|
+
|
310
|
+
// Dreamcast swirl-inspired accent for headings
|
311
|
+
h1::before {
|
312
|
+
content: "";
|
313
|
+
display: inline-block;
|
314
|
+
width: 8px;
|
315
|
+
height: 8px;
|
316
|
+
background: var(--dreamcast-orange);
|
317
|
+
border-radius: 50%;
|
318
|
+
margin-right: 12px;
|
319
|
+
box-shadow: 0 0 12px var(--dreamcast-swirl-glow);
|
320
|
+
}
|
321
|
+
|
322
|
+
// VMU-inspired pixel border effect for code blocks
|
323
|
+
.highlight {
|
324
|
+
position: relative;
|
325
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
326
|
+
|
327
|
+
&::before {
|
328
|
+
content: "";
|
329
|
+
position: absolute;
|
330
|
+
top: -2px;
|
331
|
+
left: -2px;
|
332
|
+
right: -2px;
|
333
|
+
bottom: -2px;
|
334
|
+
background: linear-gradient(45deg, var(--dreamcast-orange) 0%, var(--dreamcast-blue) 100%);
|
335
|
+
border-radius: 8px;
|
336
|
+
z-index: -1;
|
337
|
+
opacity: 0;
|
338
|
+
transition: opacity 0.3s ease;
|
339
|
+
}
|
340
|
+
|
341
|
+
&:hover::before {
|
342
|
+
opacity: 0.3;
|
343
|
+
}
|
344
|
+
}
|
data/_sass/list.scss
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
ul.horizontal-list {
|
2
|
+
display: flex;
|
3
|
+
margin-top: 0em;
|
4
|
+
margin-left: -40px;
|
5
|
+
flex-wrap: wrap;
|
6
|
+
|
7
|
+
li {
|
8
|
+
display:inline;
|
9
|
+
margin-right: 1em;
|
10
|
+
}
|
11
|
+
|
12
|
+
li a {
|
13
|
+
text-decoration: none;
|
14
|
+
font-weight: normal
|
15
|
+
}
|
16
|
+
|
17
|
+
}
|
18
|
+
|
19
|
+
.card {
|
20
|
+
padding: 1em;
|
21
|
+
border: 2px var(--dreamcast-orange) solid;
|
22
|
+
width: 11em;
|
23
|
+
height: auto;
|
24
|
+
text-align: center;
|
25
|
+
font-size: 1em;
|
26
|
+
align-items: center;
|
27
|
+
background-color: var(--bg-secondary);
|
28
|
+
margin-bottom: 0.8em;
|
29
|
+
border-radius: 12px;
|
30
|
+
transition: all 0.3s ease;
|
31
|
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
32
|
+
|
33
|
+
&:hover {
|
34
|
+
transform: translateY(-4px);
|
35
|
+
box-shadow: 0 6px 16px var(--dreamcast-swirl-glow);
|
36
|
+
border-color: var(--dreamcast-blue);
|
37
|
+
}
|
38
|
+
|
39
|
+
.header {
|
40
|
+
color: var(--links);
|
41
|
+
font-weight: 600;
|
42
|
+
}
|
43
|
+
|
44
|
+
.body {
|
45
|
+
font-size: 0.8em;
|
46
|
+
}
|
47
|
+
|
48
|
+
hr {
|
49
|
+
margin: 0.5em 0;
|
50
|
+
border-color: var(--border);
|
51
|
+
}
|
52
|
+
|
53
|
+
}
|
54
|
+
|
55
|
+
/* Responsive cards - one column layout on small screens */
|
56
|
+
@media screen and (max-width: 600px) {
|
57
|
+
ul.horizontal-list li.card {
|
58
|
+
width: 100%;
|
59
|
+
display: block;
|
60
|
+
margin-bottom: 1em;
|
61
|
+
margin-left: 1em;
|
62
|
+
a, .header {
|
63
|
+
font-size: 1em;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
data/_sass/syntax.scss
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
.highlight .hll { background-color: #515151 }
|
2
|
+
.highlight { background: #1A2332; color: #f2f0ec }
|
3
|
+
.highlight .c { color: #747369 } /* Comment */
|
4
|
+
.highlight .err { color: #f2777a } /* Error */
|
5
|
+
.highlight .k { color: #cc99cc } /* Keyword */
|
6
|
+
.highlight .l { color: #f99157 } /* Literal */
|
7
|
+
.highlight .n { color: #f2f0ec } /* Name */
|
8
|
+
.highlight .o { color: #66cccc } /* Operator */
|
9
|
+
.highlight .p { color: #f2f0ec } /* Punctuation */
|
10
|
+
.highlight .ch { color: #747369 } /* Comment.Hashbang */
|
11
|
+
.highlight .cm { color: #747369 } /* Comment.Multiline */
|
12
|
+
.highlight .cp { color: #747369 } /* Comment.Preproc */
|
13
|
+
.highlight .cpf { color: #747369 } /* Comment.PreprocFile */
|
14
|
+
.highlight .c1 { color: #747369 } /* Comment.Single */
|
15
|
+
.highlight .cs { color: #747369 } /* Comment.Special */
|
16
|
+
.highlight .gd { color: #f2777a } /* Generic.Deleted */
|
17
|
+
.highlight .ge { font-style: italic } /* Generic.Emph */
|
18
|
+
.highlight .gh { color: #f2f0ec; font-weight: bold } /* Generic.Heading */
|
19
|
+
.highlight .gi { color: #99cc99 } /* Generic.Inserted */
|
20
|
+
.highlight .gp { color: #747369; font-weight: bold } /* Generic.Prompt */
|
21
|
+
.highlight .gs { font-weight: bold } /* Generic.Strong */
|
22
|
+
.highlight .gu { color: #66cccc; font-weight: bold } /* Generic.Subheading */
|
23
|
+
.highlight .kc { color: #cc99cc } /* Keyword.Constant */
|
24
|
+
.highlight .kd { color: #cc99cc } /* Keyword.Declaration */
|
25
|
+
.highlight .kn { color: #66cccc } /* Keyword.Namespace */
|
26
|
+
.highlight .kp { color: #cc99cc } /* Keyword.Pseudo */
|
27
|
+
.highlight .kr { color: #cc99cc } /* Keyword.Reserved */
|
28
|
+
.highlight .kt { color: #ffcc66 } /* Keyword.Type */
|
29
|
+
.highlight .ld { color: #99cc99 } /* Literal.Date */
|
30
|
+
.highlight .m { color: #f99157 } /* Literal.Number */
|
31
|
+
.highlight .s { color: #99cc99 } /* Literal.String */
|
32
|
+
.highlight .na { color: #6699cc } /* Name.Attribute */
|
33
|
+
.highlight .nb { color: #f2f0ec } /* Name.Builtin */
|
34
|
+
.highlight .nc { color: #ffcc66 } /* Name.Class */
|
35
|
+
.highlight .no { color: #f2777a } /* Name.Constant */
|
36
|
+
.highlight .nd { color: #66cccc } /* Name.Decorator */
|
37
|
+
.highlight .ni { color: #f2f0ec } /* Name.Entity */
|
38
|
+
.highlight .ne { color: #f2777a } /* Name.Exception */
|
39
|
+
.highlight .nf { color: #6699cc } /* Name.Function */
|
40
|
+
.highlight .nl { color: #f2f0ec } /* Name.Label */
|
41
|
+
.highlight .nn { color: #ffcc66 } /* Name.Namespace */
|
42
|
+
.highlight .nx { color: #6699cc } /* Name.Other */
|
43
|
+
.highlight .py { color: #f2f0ec } /* Name.Property */
|
44
|
+
.highlight .nt { color: #66cccc } /* Name.Tag */
|
45
|
+
.highlight .nv { color: #f2777a } /* Name.Variable */
|
46
|
+
.highlight .ow { color: #66cccc } /* Operator.Word */
|
47
|
+
.highlight .w { color: #f2f0ec } /* Text.Whitespace */
|
48
|
+
.highlight .mb { color: #f99157 } /* Literal.Number.Bin */
|
49
|
+
.highlight .mf { color: #f99157 } /* Literal.Number.Float */
|
50
|
+
.highlight .mh { color: #f99157 } /* Literal.Number.Hex */
|
51
|
+
.highlight .mi { color: #f99157 } /* Literal.Number.Integer */
|
52
|
+
.highlight .mo { color: #f99157 } /* Literal.Number.Oct */
|
53
|
+
.highlight .sa { color: #99cc99 } /* Literal.String.Affix */
|
54
|
+
.highlight .sb { color: #99cc99 } /* Literal.String.Backtick */
|
55
|
+
.highlight .sc { color: #f2f0ec } /* Literal.String.Char */
|
56
|
+
.highlight .dl { color: #99cc99 } /* Literal.String.Delimiter */
|
57
|
+
.highlight .sd { color: #747369 } /* Literal.String.Doc */
|
58
|
+
.highlight .s2 { color: #99cc99 } /* Literal.String.Double */
|
59
|
+
.highlight .se { color: #f99157 } /* Literal.String.Escape */
|
60
|
+
.highlight .sh { color: #99cc99 } /* Literal.String.Heredoc */
|
61
|
+
.highlight .si { color: #f99157 } /* Literal.String.Interpol */
|
62
|
+
.highlight .sx { color: #99cc99 } /* Literal.String.Other */
|
63
|
+
.highlight .sr { color: #99cc99 } /* Literal.String.Regex */
|
64
|
+
.highlight .s1 { color: #99cc99 } /* Literal.String.Single */
|
65
|
+
.highlight .ss { color: #99cc99 } /* Literal.String.Symbol */
|
66
|
+
.highlight .bp { color: #f2f0ec } /* Name.Builtin.Pseudo */
|
67
|
+
.highlight .fm { color: #6699cc } /* Name.Function.Magic */
|
68
|
+
.highlight .vc { color: #f2777a } /* Name.Variable.Class */
|
69
|
+
.highlight .vg { color: #f2777a } /* Name.Variable.Global */
|
70
|
+
.highlight .vi { color: #f2777a } /* Name.Variable.Instance */
|
71
|
+
.highlight .vm { color: #f2777a } /* Name.Variable.Magic */
|
72
|
+
.highlight .il { color: #f99157 } /* Literal.Number.Integer.Long */
|
metadata
ADDED
@@ -0,0 +1,134 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll-theme-dreamcast
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jack Killilea
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-10-13 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-feed
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.15'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.15'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jekyll-seo-tag
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.7'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '13.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '13.0'
|
83
|
+
description: A retro-futuristic Jekyll theme inspired by the iconic Sega Dreamcast
|
84
|
+
console, featuring the signature orange and blue color scheme, smooth animations,
|
85
|
+
and a nostalgic gaming aesthetic.
|
86
|
+
email:
|
87
|
+
- ''
|
88
|
+
executables: []
|
89
|
+
extensions: []
|
90
|
+
extra_rdoc_files: []
|
91
|
+
files:
|
92
|
+
- LICENSE
|
93
|
+
- README.md
|
94
|
+
- _includes/card_list.html
|
95
|
+
- _includes/custom_head.html
|
96
|
+
- _includes/date_and_social_share.html
|
97
|
+
- _includes/head.html
|
98
|
+
- _includes/horizontal_list.html
|
99
|
+
- _includes/post_list.html
|
100
|
+
- _includes/toggle_theme_button.html
|
101
|
+
- _includes/toggle_theme_js.html
|
102
|
+
- _includes/vertical_list.html
|
103
|
+
- _layouts/blog.html
|
104
|
+
- _layouts/default.html
|
105
|
+
- _layouts/home.html
|
106
|
+
- _layouts/post.html
|
107
|
+
- _sass/dreamcast.scss
|
108
|
+
- _sass/list.scss
|
109
|
+
- _sass/syntax.scss
|
110
|
+
- assets/css/main.scss
|
111
|
+
homepage: https://github.com/jackkillilea/jekyll-theme-dreamcast
|
112
|
+
licenses:
|
113
|
+
- MIT
|
114
|
+
metadata: {}
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options: []
|
117
|
+
require_paths:
|
118
|
+
- lib
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
requirements: []
|
130
|
+
rubygems_version: 3.5.11
|
131
|
+
signing_key:
|
132
|
+
specification_version: 4
|
133
|
+
summary: A Sega Dreamcast-inspired Jekyll theme
|
134
|
+
test_files: []
|