Skip to content

Commit bbb4bbb

Browse files
ussisyphus-dev-ai
andcommitted
fix: add Jekyll layout templates for proper rendering
- Add _layouts/post.html for blog posts with Cayman theme styling - Add _layouts/default.html for main page with improved design - Fix missing layout files that caused broken blog post rendering Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
1 parent e8724ff commit bbb4bbb

2 files changed

Lines changed: 345 additions & 0 deletions

File tree

docs/_layouts/default.html

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
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+
{% seo %}
8+
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
9+
<style>
10+
* {
11+
box-sizing: border-box;
12+
}
13+
body {
14+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
15+
line-height: 1.6;
16+
color: #333;
17+
margin: 0;
18+
padding: 0;
19+
}
20+
.page-header {
21+
background: linear-gradient(120deg, #155799, #159957);
22+
padding: 4rem 1rem;
23+
color: white;
24+
text-align: center;
25+
}
26+
.page-header h1 {
27+
margin: 0 0 1rem;
28+
font-size: 2.5rem;
29+
font-weight: 600;
30+
}
31+
.page-header p {
32+
margin: 0;
33+
font-size: 1.25rem;
34+
opacity: 0.9;
35+
}
36+
.main-content {
37+
max-width: 900px;
38+
margin: 0 auto;
39+
padding: 3rem 1rem;
40+
}
41+
.main-content h2 {
42+
color: #159957;
43+
margin-top: 2.5rem;
44+
border-bottom: 2px solid #eee;
45+
padding-bottom: 0.5rem;
46+
}
47+
.main-content h3 {
48+
color: #155799;
49+
margin-top: 2rem;
50+
}
51+
.main-content pre {
52+
background: #f6f8fa;
53+
padding: 1rem;
54+
border-radius: 6px;
55+
overflow-x: auto;
56+
border: 1px solid #e1e4e8;
57+
}
58+
.main-content code {
59+
background: #f6f8fa;
60+
padding: 0.2rem 0.4rem;
61+
border-radius: 3px;
62+
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
63+
font-size: 0.9em;
64+
}
65+
.main-content pre code {
66+
background: none;
67+
padding: 0;
68+
}
69+
.main-content blockquote {
70+
border-left: 4px solid #159957;
71+
padding-left: 1rem;
72+
margin: 1.5rem 0;
73+
color: #555;
74+
font-style: italic;
75+
}
76+
.main-content table {
77+
width: 100%;
78+
border-collapse: collapse;
79+
margin: 1.5rem 0;
80+
}
81+
.main-content th,
82+
.main-content td {
83+
padding: 0.75rem;
84+
border: 1px solid #ddd;
85+
text-align: left;
86+
}
87+
.main-content th {
88+
background: #f6f8fa;
89+
font-weight: 600;
90+
}
91+
.main-content tr:nth-child(even) {
92+
background: #fafafa;
93+
}
94+
.btn {
95+
display: inline-block;
96+
padding: 0.75rem 1.5rem;
97+
background: rgba(255,255,255,0.15);
98+
color: white;
99+
text-decoration: none;
100+
border-radius: 6px;
101+
transition: all 0.2s;
102+
border: 2px solid rgba(255,255,255,0.3);
103+
}
104+
.btn:hover {
105+
background: rgba(255,255,255,0.25);
106+
border-color: rgba(255,255,255,0.5);
107+
}
108+
.btn-primary {
109+
background: rgba(255,255,255,0.9);
110+
color: #155799;
111+
font-weight: 600;
112+
}
113+
.btn-primary:hover {
114+
background: white;
115+
}
116+
.highlight-box {
117+
background: linear-gradient(120deg, #f6f8fa, #fff);
118+
border: 1px solid #e1e4e8;
119+
border-radius: 8px;
120+
padding: 1.5rem;
121+
margin: 1.5rem 0;
122+
}
123+
.robot-mascot {
124+
font-family: 'SFMono-Regular', monospace;
125+
line-height: 1.2;
126+
text-align: center;
127+
margin: 2rem 0;
128+
color: #555;
129+
}
130+
.site-footer {
131+
text-align: center;
132+
padding: 3rem 2rem;
133+
border-top: 1px solid #eee;
134+
color: #666;
135+
background: #f6f8fa;
136+
}
137+
.site-footer a {
138+
color: #155799;
139+
text-decoration: none;
140+
}
141+
.site-footer a:hover {
142+
text-decoration: underline;
143+
}
144+
.footer-mascot {
145+
font-family: 'SFMono-Regular', monospace;
146+
line-height: 1.2;
147+
margin-top: 1rem;
148+
color: #999;
149+
}
150+
ul, ol {
151+
padding-left: 1.5rem;
152+
}
153+
li {
154+
margin: 0.5rem 0;
155+
}
156+
a {
157+
color: #155799;
158+
}
159+
hr {
160+
border: none;
161+
border-top: 1px solid #eee;
162+
margin: 2rem 0;
163+
}
164+
</style>
165+
</head>
166+
<body>
167+
{% if page.layout != 'post' %}
168+
<header class="page-header">
169+
<h1>{{ site.title }}</h1>
170+
<p>{{ site.description }}</p>
171+
<p style="margin-top: 1.5rem;">
172+
<a href="https://github.com/us/null-e" class="btn">View on GitHub</a>
173+
<a href="https://crates.io/crates/null-e" class="btn btn-primary">Install from crates.io</a>
174+
</p>
175+
</header>
176+
{% endif %}
177+
178+
<main class="main-content">
179+
{{ content }}
180+
</main>
181+
182+
<footer class="site-footer">
183+
<p>
184+
<strong>null-e</strong> — The friendly disk cleanup robot 🤖
185+
</p>
186+
<p>
187+
<a href="https://github.com/us/null-e">GitHub</a>
188+
<a href="https://crates.io/crates/null-e">crates.io</a>
189+
<a href="{{ site.baseurl }}/">Documentation</a>
190+
</p>
191+
<pre class="footer-mascot">
192+
.---.
193+
|o o|
194+
| ^ | Send your cruft to /dev/null!
195+
| === |
196+
`-----'
197+
/| |\
198+
</pre>
199+
</footer>
200+
</body>
201+
</html>

docs/_layouts/post.html

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>{{ page.title }} | null-e</title>
7+
{% seo %}
8+
<link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
9+
<style>
10+
.page-header {
11+
background: linear-gradient(120deg, #155799, #159957);
12+
padding: 3rem 1rem;
13+
color: white;
14+
text-align: center;
15+
}
16+
.page-header h1 {
17+
margin: 0;
18+
font-size: 2.5rem;
19+
}
20+
.page-header p {
21+
margin: 1rem 0 0;
22+
opacity: 0.9;
23+
}
24+
.main-content {
25+
max-width: 900px;
26+
margin: 0 auto;
27+
padding: 2rem 1rem;
28+
}
29+
.post-meta {
30+
color: #666;
31+
font-size: 0.9rem;
32+
margin-bottom: 2rem;
33+
padding-bottom: 1rem;
34+
border-bottom: 1px solid #eee;
35+
}
36+
.post-content {
37+
line-height: 1.8;
38+
}
39+
.post-content h2 {
40+
margin-top: 2rem;
41+
color: #159957;
42+
}
43+
.post-content h3 {
44+
margin-top: 1.5rem;
45+
color: #155799;
46+
}
47+
.post-content pre {
48+
background: #f6f8fa;
49+
padding: 1rem;
50+
border-radius: 6px;
51+
overflow-x: auto;
52+
}
53+
.post-content code {
54+
background: #f6f8fa;
55+
padding: 0.2rem 0.4rem;
56+
border-radius: 3px;
57+
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
58+
}
59+
.post-content blockquote {
60+
border-left: 4px solid #159957;
61+
padding-left: 1rem;
62+
margin-left: 0;
63+
color: #555;
64+
font-style: italic;
65+
}
66+
.post-content table {
67+
width: 100%;
68+
border-collapse: collapse;
69+
margin: 1rem 0;
70+
}
71+
.post-content th,
72+
.post-content td {
73+
padding: 0.75rem;
74+
border: 1px solid #ddd;
75+
text-align: left;
76+
}
77+
.post-content th {
78+
background: #f6f8fa;
79+
font-weight: 600;
80+
}
81+
.btn {
82+
display: inline-block;
83+
padding: 0.75rem 1.5rem;
84+
background: rgba(255,255,255,0.2);
85+
color: white;
86+
text-decoration: none;
87+
border-radius: 6px;
88+
transition: background 0.2s;
89+
}
90+
.btn:hover {
91+
background: rgba(255,255,255,0.3);
92+
}
93+
.site-footer {
94+
text-align: center;
95+
padding: 2rem;
96+
border-top: 1px solid #eee;
97+
color: #666;
98+
}
99+
</style>
100+
</head>
101+
<body>
102+
<header class="page-header">
103+
<h1>{{ page.title }}</h1>
104+
{% if page.description %}
105+
<p>{{ page.description }}</p>
106+
{% endif %}
107+
<p><a href="{{ site.baseurl }}/" class="btn">← Back to Home</a></p>
108+
</header>
109+
110+
<main class="main-content">
111+
<div class="post-meta">
112+
Published on {{ page.date | date: "%B %d, %Y" }}
113+
{% if page.author %}by {{ page.author }}{% endif %}
114+
{% if page.tags %}
115+
<br>Tags:
116+
{% for tag in page.tags %}
117+
<span class="tag">{{ tag }}</span>{% unless forloop.last %}, {% endunless %}
118+
{% endfor %}
119+
{% endif %}
120+
</div>
121+
122+
<article class="post-content">
123+
{{ content }}
124+
</article>
125+
</main>
126+
127+
<footer class="site-footer">
128+
<p>
129+
<a href="{{ site.github.repository_url }}">View on GitHub</a>
130+
<a href="https://crates.io/crates/null-e">crates.io</a>
131+
</p>
132+
<p>
133+
<pre style="display: inline-block; margin: 0;">
134+
.---.
135+
|o o|
136+
| ^ | null-e
137+
| === |
138+
`-----'
139+
/| |\
140+
</pre>
141+
</p>
142+
</footer>
143+
</body>
144+
</html>

0 commit comments

Comments
 (0)