├── .gitignore
├── LICENSE
├── README.md
├── config.json
├── layouts
├── _default
│ ├── baseof.html
│ ├── list.html
│ └── single.html
├── index.html
├── partials
│ ├── footer.html
│ ├── head.html
│ ├── header.html
│ ├── navigation.html
│ ├── pagination.html
│ ├── post-item.html
│ ├── post-list.html
│ └── profile.html
├── post
│ └── single.html
├── reply
│ └── single.html
└── section
│ └── replies.html
├── plugin.json
├── screenshot
└── home.png
├── static
└── assets
│ └── css
│ ├── highlight.css
│ ├── normalize.css
│ └── style.css
└── theme.toml
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | _site/
3 | .DS_Store
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Cactus Authors - https://github.com/koenbok/Cactus/blob/master/AUTHORS - Released under the MIT License.
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.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # _Neo Cactus_ for Jekyll
2 |
3 | #### Demo: [https://mmarfil.com/](https://mmarfil.com/)
4 |
5 | ## Screenshot
6 |
7 | 
8 |
9 | This Jekyll theme started as a port of [Cactus](https://github.com/eudicots/Cactus) to my own needs, but I ended up performing a lot more modifications than expected. Some people reached me out and asked if I could share it, so here we are.
10 |
11 | #### Disclaimer: I'm only a designer, so please don't expect the code to be pretty.
12 |
13 | ## Usage
14 | To start your project, [fork this respository](https://github.com/mmarfil/neocactus/fork), put in your content, and go!
15 |
16 |
--------------------------------------------------------------------------------
/config.json:
--------------------------------------------------------------------------------
1 | {
2 | }
--------------------------------------------------------------------------------
/layouts/_default/baseof.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ partial "head.html" . }}
4 |
5 | {{ partial "header.html" . }}
6 |
7 | {{ block "main" . }}{{ end }}
8 |
9 | {{ partial "footer.html" . }}
10 | {{ partial "custom_footer.html" . }}
11 | {{ range .Site.Params.plugins_js }}
12 |
13 | {{ end }}
14 |
15 |
16 |
--------------------------------------------------------------------------------
/layouts/_default/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ partial "post-list.html" . }}
3 | {{ end }}
--------------------------------------------------------------------------------
/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
6 |
9 |
10 |
19 | {{ end }}
--------------------------------------------------------------------------------
/layouts/index.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
5 | {{ if or .IsHome .Site.Params.paginate_categories }}
6 | {{ $paginator := .Paginate (where .Site.Pages.ByDate.Reverse "Type" "post") }}
7 | {{ $list := $paginator.Pages }}
8 | {{ range $list }}
9 | {{ partial "post-item.html" . }}
10 | {{ end }}
11 | {{ else }}
12 | {{ $list := where .Site.Pages.ByDate.Reverse "Type" "post" }}
13 | {{ range $list }}
14 | {{ partial "post-item.html" . }}
15 | {{ end }}
16 | {{ end }}
17 |
18 |
19 |
20 | {{ if .IsHome }}
21 | {{ if .Site.Params.paginate_home }}
22 | {{ partial "pagination" . }}
23 | {{ end }}
24 | {{ else if .Site.Params.paginate_categories }}
25 | {{ partial "pagination" . }}
26 | {{ end }}
27 |
28 | {{ end }}
29 |
--------------------------------------------------------------------------------
/layouts/partials/footer.html:
--------------------------------------------------------------------------------
1 |
21 |
--------------------------------------------------------------------------------
/layouts/partials/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | {{- block "title" . -}}
9 | {{- .Site.Title -}}
10 | {{- if and .Title (ne .Title .Site.Title) }}
11 | - {{ .Title }}
12 | {{- end -}}
13 | {{- end -}}
14 |
15 |
16 |
17 |
18 |
19 | {{ partial "microblog_head.html" . }}
20 |
21 |
--------------------------------------------------------------------------------
/layouts/partials/header.html:
--------------------------------------------------------------------------------
1 | {{ partial "navigation.html" . }}
2 | {{ if .IsHome }}
3 | {{ partial "profile.html" . }}
4 | {{ end }}
5 |
--------------------------------------------------------------------------------
/layouts/partials/navigation.html:
--------------------------------------------------------------------------------
1 |
2 | {{ if ne .IsHome true }}
3 | ← Home
4 | {{ end }}
5 |
6 | {{ range .Site.Menus.main }}
7 | {{ if .Page.Params.redirect }}
8 | {{ .Name }}
9 | {{ else }}
10 | {{ .Name }}
11 | {{ end }}
12 | {{ end }}
13 |
14 | Also on Micro.blog
15 |
16 |
--------------------------------------------------------------------------------
/layouts/partials/pagination.html:
--------------------------------------------------------------------------------
1 | {{ $pag := $.Paginator }}
2 |
3 |
14 |
--------------------------------------------------------------------------------
/layouts/partials/post-item.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ if .Title }}
4 |
12 | {{ else }}
13 | {{ .Content }}
14 | {{ end }}
15 |
16 |
17 | → {{ .Date.Format "3:04 PM, Jan 2" }}
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/layouts/partials/post-list.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ if or .IsHome .Site.Params.paginate_categories }}
4 | {{ $paginator := .Paginate (where .Pages.ByDate.Reverse "Type" "post") }}
5 | {{ $list := $paginator.Pages }}
6 | {{ range $list }}
7 | {{ partial "post-item.html" . }}
8 | {{ end }}
9 | {{ else }}
10 | {{ $list := where .Pages.ByDate.Reverse "Type" "post" }}
11 | {{ range $list }}
12 | {{ partial "post-item.html" . }}
13 | {{ end }}
14 | {{ end }}
15 |
16 |
17 |
18 | {{ if .IsHome }}
19 | {{ if .Site.Params.paginate_home }}
20 | {{ partial "pagination" . }}
21 | {{ end }}
22 | {{ else if .Site.Params.paginate_categories }}
23 | {{ partial "pagination" . }}
24 | {{ end }}
25 |
--------------------------------------------------------------------------------
/layouts/partials/profile.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{ .Site.Author.name }}
8 | {{ .Site.Params.description | safeHTML }}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/layouts/post/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
16 |
19 |
20 | {{ if .Site.Params.include_conversation }}
21 |
22 | {{ end }}
23 |
24 |
41 |
42 | {{ end }}
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/layouts/reply/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 | {{ with .Title }}
5 | {{ . }}
6 | {{ end }}
7 |
12 |
13 |
21 |
24 |
25 |
34 | {{ end }}
35 |
--------------------------------------------------------------------------------
/layouts/section/replies.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
5 |
6 | {{ if .Site.Params.paginate_replies }}
7 |
10 | {{ else }}
11 |
14 | {{ end }}
15 |
16 |
17 |
18 |
19 |
20 |
21 | {{ if .Site.Params.paginate_replies }}
22 | {{ $paginator := .Paginate (where .Data.Pages.ByDate.Reverse "Type" "reply") }}
23 | {{ $list := $paginator.Pages }}
24 | {{ range $list }}
25 | {{ partial "post-item.html" . }}
26 | {{ end }}
27 | {{ else }}
28 | {{ $list := first 25 (where .Data.Pages.ByDate.Reverse "Type" "reply") }}
29 | {{ range $list }}
30 | {{ partial "post-item.html" . }}
31 | {{ end }}
32 | {{ end }}
33 |
34 |
35 |
36 | {{ if .Site.Params.paginate_replies }}
37 | {{ partial "pagination" . }}
38 | {{ end }}
39 |
40 | {{ end }}
--------------------------------------------------------------------------------
/plugin.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.1.3",
3 | "title": "Marfa theme",
4 | "description": "Micro.blog's Marfa theme."
5 | }
6 |
--------------------------------------------------------------------------------
/screenshot/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microdotblog/theme-marfa/b2ae2f4b684c567b7dcf3be58c4d42f0c97551dc/screenshot/home.png
--------------------------------------------------------------------------------
/static/assets/css/highlight.css:
--------------------------------------------------------------------------------
1 | /*
2 | IR_Black style (c) Vasily Mikhailitchenko
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | /*padding: 0.5em;*/
9 | background: #272b2d;
10 | color: #d0d0d0;
11 | -webkit-text-size-adjust: none;
12 | }
13 |
14 | .hljs-shebang,
15 | .hljs-comment {
16 | color: #777279;
17 | }
18 |
19 | .hljs-keyword,
20 | .hljs-tag,
21 | .tex .hljs-command,
22 | .hljs-request,
23 | .hljs-status,
24 | .clojure .hljs-attribute {
25 | color: #ebde68;
26 | }
27 |
28 | .hljs-sub .hljs-keyword,
29 | .method,
30 | .hljs-list .hljs-title,
31 | .nginx .hljs-title {
32 | color: #ffffb6;
33 | }
34 |
35 | .hljs-string,
36 | .hljs-tag .hljs-value,
37 | .hljs-cdata,
38 | .hljs-filter .hljs-argument,
39 | .hljs-attr_selector,
40 | .apache .hljs-cbracket,
41 | .hljs-date,
42 | .coffeescript .hljs-attribute {
43 | color: #c1ef65;
44 | }
45 |
46 | .hljs-subst {
47 | color: #daefa3;
48 | }
49 |
50 | .hljs-regexp {
51 | color: #e9c062;
52 | }
53 |
54 | .hljs-title,
55 | .hljs-sub .hljs-identifier,
56 | .hljs-pi,
57 | .hljs-decorator,
58 | .tex .hljs-special,
59 | .hljs-type,
60 | .hljs-constant,
61 | .smalltalk .hljs-class,
62 | .hljs-doctag,
63 | .nginx .hljs-built_in {
64 | color: #c1ef65;
65 | }
66 |
67 | .hljs-symbol,
68 | .ruby .hljs-symbol .hljs-string,
69 | .hljs-number,
70 | .hljs-variable,
71 | .vbscript,
72 | .hljs-literal,
73 | .hljs-name {
74 | color: #77bcd7;
75 | }
76 |
77 | .css .hljs-tag {
78 | color: #96cbfe;
79 | }
80 |
81 | .css .hljs-rule .hljs-property,
82 | .css .hljs-id {
83 | color: #ffffb6;
84 | }
85 |
86 | .css .hljs-class {
87 | color: #fff;
88 | }
89 |
90 | .hljs-hexcolor {
91 | color: #c6c5fe;
92 | }
93 |
94 | .hljs-number {
95 | color:#77bcd7;
96 | }
97 |
98 | .coffeescript .javascript,
99 | .javascript .xml,
100 | .tex .hljs-formula,
101 | .xml .javascript,
102 | .xml .vbscript,
103 | .xml .css,
104 | .xml .hljs-cdata {
105 | opacity: 0.7;
106 | }
107 |
108 |
--------------------------------------------------------------------------------
/static/assets/css/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v2.0.1 | MIT License | git.io/normalize */
2 |
3 | /* ==========================================================================
4 | HTML5 display definitions
5 | ========================================================================== */
6 |
7 | /*
8 | * Corrects `block` display not defined in IE 8/9.
9 | */
10 |
11 | article,
12 | aside,
13 | details,
14 | figcaption,
15 | figure,
16 | footer,
17 | header,
18 | hgroup,
19 | nav,
20 | section,
21 | summary {
22 | display: block;
23 | }
24 |
25 | /*
26 | * Corrects `inline-block` display not defined in IE 8/9.
27 | */
28 |
29 | audio,
30 | canvas,
31 | video {
32 | display: inline-block;
33 | }
34 |
35 | /*
36 | * Prevents modern browsers from displaying `audio` without controls.
37 | * Remove excess height in iOS 5 devices.
38 | */
39 |
40 | audio:not([controls]) {
41 | display: none;
42 | height: 0;
43 | }
44 |
45 | /*
46 | * Addresses styling for `hidden` attribute not present in IE 8/9.
47 | */
48 |
49 | [hidden] {
50 | display: none;
51 | }
52 |
53 | /* ==========================================================================
54 | Base
55 | ========================================================================== */
56 |
57 | /*
58 | * 1. Sets default font family to sans-serif.
59 | * 2. Prevents iOS text size adjust after orientation change, without disabling
60 | * user zoom.
61 | */
62 |
63 | html {
64 | font-family: sans-serif; /* 1 */
65 | -webkit-text-size-adjust: 100%; /* 2 */
66 | -ms-text-size-adjust: 100%; /* 2 */
67 | }
68 |
69 | /*
70 | * Removes default margin.
71 | */
72 |
73 | body {
74 | margin: 0;
75 | }
76 |
77 | /* ==========================================================================
78 | Links
79 | ========================================================================== */
80 |
81 | /*
82 | * Addresses `outline` inconsistency between Chrome and other browsers.
83 | */
84 |
85 | a:focus {
86 | outline: thin dotted;
87 | }
88 |
89 | /*
90 | * Improves readability when focused and also mouse hovered in all browsers.
91 | */
92 |
93 | a:active,
94 | a:hover {
95 | outline: 0;
96 | }
97 |
98 | /* ==========================================================================
99 | Typography
100 | ========================================================================== */
101 |
102 | /*
103 | * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
104 | * Safari 5, and Chrome.
105 | */
106 |
107 | h1 {
108 | font-size: 2em;
109 | }
110 |
111 | /*
112 | * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
113 | */
114 |
115 | abbr[title] {
116 | border-bottom: 1px dotted;
117 | }
118 |
119 | /*
120 | * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
121 | */
122 |
123 | b,
124 | strong {
125 | font-weight: bold;
126 | }
127 |
128 | /*
129 | * Addresses styling not present in Safari 5 and Chrome.
130 | */
131 |
132 | dfn {
133 | font-style: italic;
134 | }
135 |
136 | /*
137 | * Addresses styling not present in IE 8/9.
138 | */
139 |
140 | mark {
141 | background: #ff0;
142 | color: #000;
143 | }
144 |
145 |
146 | /*
147 | * Corrects font family set oddly in Safari 5 and Chrome.
148 | */
149 |
150 | code,
151 | kbd,
152 | pre,
153 | samp {
154 | font-family: monospace, serif;
155 | font-size: 1em;
156 | }
157 |
158 | /*
159 | * Improves readability of pre-formatted text in all browsers.
160 | */
161 |
162 | pre {
163 | white-space: pre;
164 | white-space: pre-wrap;
165 | word-wrap: break-word;
166 | }
167 |
168 | /*
169 | * Sets consistent quote types.
170 | */
171 |
172 | q {
173 | quotes: "\201C" "\201D" "\2018" "\2019";
174 | }
175 |
176 | /*
177 | * Addresses inconsistent and variable font size in all browsers.
178 | */
179 |
180 | small {
181 | font-size: 80%;
182 | }
183 |
184 | /*
185 | * Prevents `sub` and `sup` affecting `line-height` in all browsers.
186 | */
187 |
188 | sub,
189 | sup {
190 | font-size: 75%;
191 | line-height: 0;
192 | position: relative;
193 | vertical-align: baseline;
194 | }
195 |
196 | sup {
197 | top: -0.5em;
198 | }
199 |
200 | sub {
201 | bottom: -0.25em;
202 | }
203 |
204 | /* ==========================================================================
205 | Embedded content
206 | ========================================================================== */
207 |
208 | /*
209 | * Removes border when inside `a` element in IE 8/9.
210 | */
211 |
212 | img {
213 | border: 0;
214 | }
215 |
216 | /*
217 | * Corrects overflow displayed oddly in IE 9.
218 | */
219 |
220 | svg:not(:root) {
221 | overflow: hidden;
222 | }
223 |
224 | /* ==========================================================================
225 | Figures
226 | ========================================================================== */
227 |
228 | /*
229 | * Addresses margin not present in IE 8/9 and Safari 5.
230 | */
231 |
232 | figure {
233 | margin: 0;
234 | }
235 |
236 | /* ==========================================================================
237 | Forms
238 | ========================================================================== */
239 |
240 | /*
241 | * Define consistent border, margin, and padding.
242 | */
243 |
244 | fieldset {
245 | border: 1px solid #c0c0c0;
246 | margin: 0 2px;
247 | padding: 0.35em 0.625em 0.75em;
248 | }
249 |
250 | /*
251 | * 1. Corrects color not being inherited in IE 8/9.
252 | * 2. Remove padding so people aren't caught out if they zero out fieldsets.
253 | */
254 |
255 | legend {
256 | border: 0; /* 1 */
257 | padding: 0; /* 2 */
258 | }
259 |
260 | /*
261 | * 1. Corrects font family not being inherited in all browsers.
262 | * 2. Corrects font size not being inherited in all browsers.
263 | * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
264 | */
265 |
266 | button,
267 | input,
268 | select,
269 | textarea {
270 | font-family: inherit; /* 1 */
271 | font-size: 100%; /* 2 */
272 | margin: 0; /* 3 */
273 | }
274 |
275 | /*
276 | * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
277 | * the UA stylesheet.
278 | */
279 |
280 | button,
281 | input {
282 | line-height: normal;
283 | }
284 |
285 | /*
286 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
287 | * and `video` controls.
288 | * 2. Corrects inability to style clickable `input` types in iOS.
289 | * 3. Improves usability and consistency of cursor style between image-type
290 | * `input` and others.
291 | */
292 |
293 | button,
294 | html input[type="button"], /* 1 */
295 | input[type="reset"],
296 | input[type="submit"] {
297 | -webkit-appearance: button; /* 2 */
298 | cursor: pointer; /* 3 */
299 | }
300 |
301 | /*
302 | * Re-set default cursor for disabled elements.
303 | */
304 |
305 | button[disabled],
306 | input[disabled] {
307 | cursor: default;
308 | }
309 |
310 | /*
311 | * 1. Addresses box sizing set to `content-box` in IE 8/9.
312 | * 2. Removes excess padding in IE 8/9.
313 | */
314 |
315 | input[type="checkbox"],
316 | input[type="radio"] {
317 | box-sizing: border-box; /* 1 */
318 | padding: 0; /* 2 */
319 | }
320 |
321 | /*
322 | * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
323 | * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
324 | * (include `-moz` to future-proof).
325 | */
326 |
327 | input[type="search"] {
328 | -webkit-appearance: textfield; /* 1 */
329 | -moz-box-sizing: content-box;
330 | -webkit-box-sizing: content-box; /* 2 */
331 | box-sizing: content-box;
332 | }
333 |
334 | /*
335 | * Removes inner padding and search cancel button in Safari 5 and Chrome
336 | * on OS X.
337 | */
338 |
339 | input[type="search"]::-webkit-search-cancel-button,
340 | input[type="search"]::-webkit-search-decoration {
341 | -webkit-appearance: none;
342 | }
343 |
344 | /*
345 | * Removes inner padding and border in Firefox 4+.
346 | */
347 |
348 | button::-moz-focus-inner,
349 | input::-moz-focus-inner {
350 | border: 0;
351 | padding: 0;
352 | }
353 |
354 | /*
355 | * 1. Removes default vertical scrollbar in IE 8/9.
356 | * 2. Improves readability and alignment in all browsers.
357 | */
358 |
359 | textarea {
360 | overflow: auto; /* 1 */
361 | vertical-align: top; /* 2 */
362 | }
363 |
364 | /* ==========================================================================
365 | Tables
366 | ========================================================================== */
367 |
368 | /*
369 | * Remove most spacing between table cells.
370 | */
371 |
372 | table {
373 | border-collapse: collapse;
374 | border-spacing: 0;
375 | }
--------------------------------------------------------------------------------
/static/assets/css/style.css:
--------------------------------------------------------------------------------
1 | /* Reset */
2 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
3 | *, *:before, *:after { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
4 |
5 | /* Clearfix */
6 | .clearfix:after {
7 | content: "";
8 | display: table;
9 | clear: both;
10 | }
11 | .hidden {
12 | display: none;
13 | }
14 |
15 | /* Spacing */
16 | .highlight, .post h1, h2, h3, p, .post-body ul, .dates, .post-body li, .bio li, video, pre ::before {
17 | margin-top: 1em;
18 | }
19 |
20 | /* Base */
21 | html, body {
22 | height: 100%;
23 | }
24 |
25 | body {
26 | font: 17px "Avenir Next", Avenir, "-apple-system", Helvetica, Arial, sans-serif;
27 | color: #666;
28 | text-rendering: optimizeLegibility;
29 | }
30 |
31 | /* Profile */
32 |
33 | .profile #wrapper {
34 | margin: 0 auto;
35 | text-align: center;
36 | padding: 80px 0;
37 | }
38 |
39 | .profile #avatar {
40 | display: inline-block;
41 | width: 80px;
42 | height: 80px;
43 | margin-bottom: 1em;
44 | border-radius: 40px;
45 | }
46 |
47 | .profile h4 {
48 | color: #aaa;
49 | margin-top: 0;
50 | font-weight: 400;
51 | }
52 |
53 | .bio p:first-child {
54 | margin-top: 0;
55 | }
56 |
57 | .bio li {
58 | list-style-position: outside;
59 | }
60 |
61 | /* Nav */
62 |
63 | nav.main-nav {
64 | padding: 20px 20px 0;
65 | background: #fff;
66 | background: rgba(255,255,255,.90);
67 | margin: 0 auto;
68 | text-align: right;
69 | z-index: 100;
70 | }
71 |
72 | nav.main-nav a {
73 | top: 8px;
74 | right: 6px;
75 | color: #000;
76 | font-size: 13px;
77 | line-height: 1.35;
78 | font-weight: 500;
79 | margin-left: 12px;
80 | }
81 | nav.main-nav a.cta {
82 | background: #fff;
83 | color: #ee4792;
84 | padding: 6px 14px;
85 | border: 2px solid #fcdae9;
86 | border-bottom: none;
87 | border-radius: 20px;
88 | white-space: nowrap;
89 | }
90 |
91 | nav.main-nav a.cta:hover {
92 | background: #fcdae9;
93 | color: #ee4792;
94 | margin-left: 12px;
95 | }
96 |
97 | #wrapper {
98 | max-width: 600px;
99 | margin: 0 auto;
100 | padding: 25px;
101 | }
102 |
103 | .home #avatar {
104 | float: right;
105 | width: 40px;
106 | height: 40px;
107 | }
108 |
109 | /* Typography */
110 |
111 | p, li {
112 | line-height: 1.7;
113 | }
114 |
115 | h1, h2, h3 {
116 | color: #000;
117 | }
118 |
119 | h1 {
120 | font-size: 30px;
121 | font-weight: bold;
122 | }
123 |
124 | h2 {
125 | font-size: 25px;
126 | font-weight: 600;
127 | }
128 |
129 | h3 {
130 | font-size: 20px;
131 | font-weight: 500;
132 | }
133 |
134 | p.small {
135 | font-size: 14px;
136 | display: block;
137 | }
138 |
139 | code.highlighter-rouge {
140 | background-color: #F5F5F5;
141 | border-radius: 5px;
142 | display: inline-block;
143 | padding: 5px 8px;
144 | color: #7F7F7F;
145 | font-size: 15px;
146 | line-height: 1.35;
147 | font-style: italic;
148 | }
149 |
150 | /*Accent color*/
151 |
152 | a {
153 | text-decoration: none;
154 | color: #000;
155 | }
156 |
157 | nav.main-nav a, #footer a, #post-nav a, p a {
158 | color: #000;
159 | font-weight: 500;
160 | box-shadow: inset 0 -2px 0 #fcdae9;
161 | transition: all .35s;
162 | transition-timing-function: cubic-bezier(.7, 0, .3, 1);
163 | }
164 |
165 | nav.main-nav a:hover, #footer a:hover, #post-nav a:hover, p a:hover {
166 | box-shadow: inset 0 -25px 0 #fcdae9;
167 | }
168 |
169 |
170 | ul { margin:0; padding:0; }
171 | li { list-style-type:circle; list-style-position:inside;}
172 |
173 | /* Post */
174 |
175 | .post-body li:last-child {
176 | margin-bottom: 1.5em;
177 | }
178 |
179 | article ol li {
180 | list-style-type: decimal;
181 | padding-left: 20px;
182 | }
183 |
184 | article ul li {
185 | list-style-type: disc;
186 | padding-left: 20px;
187 | }
188 |
189 | .post-body ol li {
190 | list-style-type: decimal !important;
191 | }
192 |
193 | .post-body ul li {
194 | list-style-type: disc !important;
195 | }
196 |
197 | article img {
198 | padding: 20px 0px 20px 0px;
199 | }
200 |
201 | b, strong {
202 | font-weight: 500;
203 | color: #1E2025;
204 | }
205 | em, i {
206 | font-style: italic;
207 | }
208 |
209 | sup {
210 | vertical-align: super;
211 | font-size: smaller;
212 | }
213 |
214 | .post header {
215 | text-align:center;
216 | }
217 |
218 | blockquote {
219 | padding-left: 15px;
220 | border-left: 2px solid #eee;
221 | opacity: 0.8;
222 | font-style: italic;
223 | margin-top: 15px;
224 | }
225 |
226 | hr {
227 | display: block;
228 | border: none;
229 | height: 2px;
230 | margin: 34px 0 40px 0;
231 | background: #eee;
232 | width: 30%;
233 | text-align: center;
234 | }
235 |
236 | span.separator {
237 | display: block;
238 | margin: 42px 0 48px 0;
239 | width: 100%;
240 | }
241 |
242 | span.divider {
243 | display: block;
244 | width: 100%;
245 | background-color: #eee;
246 | height: 1px;
247 | margin: 0 auto;
248 | }
249 |
250 | span.separator:last-child {
251 | display: none;
252 | }
253 |
254 | span.code { font-family:Menlo, Monaco, Courier; background-color:#EEE; font-size:14px; }
255 |
256 | pre {
257 | font-family:Menlo, Monaco, Courier;
258 | white-space:pre-wrap;
259 | padding:20px;
260 | background-color:#fdfdfd;
261 | overflow:auto;
262 | border-radius: 5px;
263 | background: #272b2d;
264 | font-family: "Source Code Pro",Menlo,monospace;
265 | font-size: 13px;
266 | line-height: 1.5em;
267 | font-weight: 500;
268 | color: #d0d4d7;
269 | margin-top: 15px;
270 | }
271 |
272 | table {
273 | width: 100%;
274 | margin: 40px 0;
275 | border-collapse: collapse;
276 | font-size: 13px;
277 | line-height: 1.5em;
278 | }
279 |
280 | th,td {
281 | text-align: left;
282 | padding-right: 20px;
283 | vertical-align: top;
284 | }
285 |
286 | table td,td {
287 | border-spacing: none;
288 | border-style: solid;
289 | padding: 10px 15px;
290 | border-width: 1px 0 0 0;
291 | }
292 |
293 | tr>td {
294 | border-top: 1px solid #eaeaea;
295 | }
296 |
297 | tr:nth-child(odd)>td {
298 | background: #fcfcfc;
299 | }
300 |
301 | thead th,th {
302 | text-align: left;
303 | padding: 10px 15px;
304 | height: 20px;
305 | font-size: 13px;
306 | font-weight: bold;
307 | color: #444;
308 | border-bottom: 1px solid #dadadc;
309 | cursor: default;
310 | white-space: nowrap;
311 | }
312 |
313 | img {
314 | width: 100%;
315 | max-width: 100%;
316 | height: auto;
317 | border-radius: 5px;
318 | }
319 |
320 | /*=========================================
321 | Post List
322 | =========================================== */
323 |
324 |
325 | #post-list li {
326 | list-style-type: none;
327 | }
328 |
329 | #post-list li:last-child {
330 | margin-bottom: 0;
331 | }
332 |
333 | #post-list h2 {
334 | margin-top: 0;
335 | line-height: 1.35;
336 | }
337 |
338 | /* Footer */
339 |
340 | footer section {
341 | margin: 0 auto;
342 | text-align: center;
343 | padding: 35px 0 80px 0;
344 | }
345 |
346 | #footer {
347 | text-align: center;
348 | }
349 |
350 | #footer a {
351 | color: #000;
352 | font-size: 13px;
353 | line-height: 1.35;
354 | font-weight: 500;
355 | }
356 |
357 | #footer li {
358 | display: inline;
359 | padding: 0 10px;
360 | }
361 |
362 | #post-meta {
363 | font-size: 13px;
364 | font-weight: bold;
365 | line-height: 1.5;
366 | border-top: 1px solid #eee;
367 | padding-top: 40px;
368 | padding-bottom: 40px;
369 | margin-top: 60px;
370 | color:#444;
371 | border-bottom: 1px solid #eee;
372 | }
373 |
374 | #post-meta div span {
375 | color: #aaa;
376 | font-weight: 500;
377 | display: block;
378 | }
379 |
380 | #post-meta div span.dark {
381 | color: #1E2025;
382 |
383 | }
384 |
385 | #post-meta div {
386 | float: left;
387 | }
388 |
389 | /* Post Page */
390 | #header {
391 | border-bottom: 1px solid #eee;
392 | }
393 |
394 | .post {
395 | margin: 120px 0 0 0;
396 | }
397 |
398 | /* Post Navigation */
399 | #post-nav {
400 | text-align:center;
401 | padding-top:20px;
402 | font-size:13px;
403 | font-weight:500;
404 | margin-top: 40px;
405 | }
406 |
407 | #post-nav span {
408 | position: relative;
409 | }
410 |
411 | #post-nav span.prev {
412 | float: left;
413 | }
414 |
415 | #post-nav span.next {
416 | float: right;
417 | }
418 |
419 | #post-nav span .arrow {
420 | position: relative;
421 | padding: 1px;
422 | }
423 |
424 | #post-meta img.avatar {
425 | height: 36px;
426 | width: 36px;
427 | float: left;
428 | margin-right: 15px;
429 | box-shadow: 0 0 0 3px #fff, 0 0 0 4px #eee;
430 | border-radius: 50%;
431 | padding: 0px;
432 | }
433 |
434 | /* Others */
435 |
436 | .dates {
437 | font-weight: 500;
438 | font-size: 13px;
439 | color: #bbb;
440 | width: 100%;
441 | text-transform: uppercase;
442 | padding-top: 5px;
443 | }
444 |
445 | h2.headline {
446 | margin-top: 0;
447 | margin-bottom: 50px;
448 | }
449 |
450 | /* Form */
451 |
452 | #search input.field {
453 | width: 270px;
454 | height: 34px;
455 | font-size: 13px;
456 | font-weight: 400;
457 | padding-left: 12px;
458 | border: 2px solid #eee;
459 | margin-top: 20px;
460 | border-radius: 17px;
461 | -webkit-appearance: none;
462 | }
463 |
464 | /* Media Queries */
465 | @media screen and (max-width: 540px) {
466 |
467 | footer #wrapper {
468 | padding: 35px 0 60px 0;
469 | }
470 |
471 | .profile #wrapper {
472 | margin: 0 auto;
473 | text-align: center;
474 | padding: 70px 0 40px 0;
475 | }
476 |
477 | #post-meta {
478 | padding-top: 30px;
479 | padding-bottom: 30px;
480 | margin-top: 60px;
481 | }
482 |
483 | .post {
484 | margin: 50px 0;
485 | }
486 |
487 | h1 {
488 | font-size: 24px;
489 | }
490 |
491 | h2 {
492 | font-size: 22px;
493 | }
494 |
495 | h3 {
496 | font-size: 19px;
497 | }
498 |
499 | }
500 |
501 | video {
502 | max-width: 100%;
503 | }
504 |
505 | /* The main wrapper for pagination links */
506 | .pagination {
507 | position: relative;
508 | margin-top: 3rem;
509 | margin-bottom: 0rem;
510 | margin-left: auto;
511 | margin-right: auto;
512 | font-size: 13px;
513 | color: #bbb;
514 | text-align: center;
515 | }
516 |
517 | .pagination a {
518 | }
519 |
520 | /* Push the previous/next links out to the left/right */
521 | .older-posts,
522 | .newer-posts {
523 | position: absolute;
524 | display: inline-block;
525 | }
526 |
527 | .older-posts {
528 | right: 0;
529 | }
530 |
531 | .page-number {
532 | display: inline-block;
533 | padding: 2px 0;
534 | min-width: 100px;
535 | }
536 |
537 | .newer-posts {
538 | left: 0;
539 | }
540 |
541 | .older-posts:hover,
542 | .newer-posts:hover {
543 | }
544 |
545 | .extra-pagination {
546 | display: none;
547 | }
548 |
549 | .extra-pagination .pagination {
550 | width: auto;
551 | }
552 |
553 | /* On page2+ show extra pagination controls at the top of post list */
554 | .paged .extra-pagination {
555 | display: block;
556 | }
557 |
558 | /*
559 | article #post-list li {
560 | list-style-type: disc;
561 | }
562 | */
563 |
564 | .microblog_conversation {
565 | margin-top: 50px;
566 | padding-top: 20px;
567 | border-top: 1px solid lightgray;
568 | }
569 |
570 | .microblog_post {
571 | padding-top: 20px;
572 | padding-bottom: 20px;
573 | }
574 |
575 | .microblog_avatar {
576 | border-radius: 10px;
577 | vertical-align: top;
578 | padding: 0px;
579 | }
580 |
581 | .microblog_text {
582 | margin-top: 1em;
583 | }
584 |
585 | .microblog_time {
586 | font-size: 13px;
587 | padding-top: 10px;
588 | color: gray;
589 | }
590 |
591 | .microblog_time a {
592 | color: gray;
593 | text-decoration: none;
594 | }
595 |
596 | .bookshelf_book {
597 | padding-bottom: 7px;
598 | }
599 |
600 | .bookshelf_book img {
601 | margin-right: 3px;
602 | padding-top: 0px;
603 | }
604 |
605 | .bookshelf_title {
606 | font-weight: 500;
607 | }
608 |
609 | div quoteback-component {
610 | display: block;
611 | margin-top: 20px;
612 | }
613 |
614 |
--------------------------------------------------------------------------------
/theme.toml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------