Skip to content

Commit fa4469b

Browse files
authored
Add files via upload
1 parent 0fe1981 commit fa4469b

26 files changed

+739
-0
lines changed

themes/cactus/LICENSE

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2016 Pieter Robberechts
4+
Copyright (c) 2017 Gabriela Thumé (light colorscheme)
5+
Copyright (c) 2017 Natalya Kosenko (white colorscheme)
6+
7+
8+
Permission is hereby granted, free of charge, to any person obtaining a copy
9+
of this software and associated documentation files (the "Software"), to deal
10+
in the Software without restriction, including without limitation the rights
11+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
copies of the Software, and to permit persons to whom the Software is
13+
furnished to do so, subject to the following conditions:
14+
15+
The above copyright notice and this permission notice shall be included in all
16+
copies or substantial portions of the Software.
17+
18+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24+
SOFTWARE.

themes/cactus/layout/404.ejs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
2+
<%- partial('_partial/post/gallery') %>
3+
<div class="content" itemprop="articleBody">
4+
<% if (theme.error_404.enabled && theme.error_404.title && theme.error_404.description ) { %>
5+
<h1><%= theme.error_404.title %></h1>
6+
<p><%= theme.error_404.description %></p>
7+
<% } %>
8+
</div>
9+
</article>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<% if(page.comments && theme.disqus.enabled){ %>
2+
<div class="blog-post-comments">
3+
<div id="disqus_thread">
4+
<noscript><%= __('comments.no_js') %></noscript>
5+
</div>
6+
</div>
7+
<% } %>
8+
<% if(page.comments && theme.utterances.enabled){ %>
9+
<div class="blog-post-comments">
10+
<div id="utterances_thread">
11+
<noscript><%= __('comments.no_js') %></noscript>
12+
</div>
13+
</div>
14+
<% } %>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<footer id="footer">
2+
<div class="footer-left">
3+
<%= __('footer.copyright') %> &copy;
4+
<% var endYear = (theme.copyright && theme.copyright.end_year) ? theme.copyright.end_year : new Date().getFullYear() %>
5+
<% var startYear = (theme.copyright && theme.copyright.start_year) ? theme.copyright.start_year : new Date().getFullYear() %>
6+
<%= startYear >= endYear ? endYear : startYear + "-" + endYear %>
7+
<%= config.author || config.title %>
8+
</div>
9+
<div class="footer-right">
10+
<nav>
11+
<ul>
12+
<% for (var i in theme.nav) { %><!--
13+
--><li><a href="<%- url_for(theme.nav[i]) %>"><%= __('nav.'+i).replace("nav.", "") %></a></li><!--
14+
--><% } %>
15+
</ul>
16+
</nav>
17+
</div>
18+
</footer>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!-- Google Analytics -->
2+
<% if (theme.google_analytics.enabled && theme.google_analytics.id){ %>
3+
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= theme.google_analytics.id %>"></script>
4+
<script>
5+
window.dataLayer = window.dataLayer || [];
6+
function gtag(){dataLayer.push(arguments);}
7+
gtag('js', new Date());
8+
gtag('config', '<%= theme.google_analytics.id %>');
9+
</script>
10+
<% } %>
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
<head>
2+
<!-- so meta -->
3+
<meta charset="utf-8">
4+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
5+
<meta name="HandheldFriendly" content="True">
6+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5" />
7+
<%- open_graph({
8+
image: thumbnail(page),
9+
fb_app_id: theme.open_graph.fb_app_id,
10+
fb_admins: theme.open_graph.fb_admins,
11+
twitter_id: theme.open_graph.twitter_id,
12+
google_plus: theme.open_graph.google_plus,
13+
}) %>
14+
<%- meta(page) %>
15+
<% if (theme.favicon) { %>
16+
<% if (theme.favicon.desktop) { %>
17+
<% if (theme.gravatar && (theme.gravatar.email || theme.gravatar.hash) && theme.favicon.desktop.gravatar) { %>
18+
<% if (theme.gravatar.email) { %>
19+
<link rel="shortcut icon" href="<%= gravatar(theme.gravatar.email, 48) %>">
20+
<% } else { %>
21+
<link rel="shortcut icon" href="https://www.gravatar.com/avatar/<%= theme.gravatar.hash %>?s=48">
22+
<% } %>
23+
<% } else { %>
24+
<link rel="shortcut icon" href="<%= url_for(theme.favicon.desktop.url) %>">
25+
<% } %>
26+
<% } %>
27+
<% if (theme.favicon.android) { %>
28+
<% if (theme.gravatar && (theme.gravatar.email || theme.gravatar.hash) && theme.favicon.android.gravatar) { %>
29+
<% if (theme.gravatar.email) { %>
30+
<link rel="icon" type="image/png" href="<%= gravatar(theme.gravatar.email, 192) %>" sizes="192x192">
31+
<% } else { %>
32+
<link rel="icon" type="image/png" href="https://www.gravatar.com/avatar/<%= theme.gravatar.hash %>?s=192">
33+
<% } %>
34+
<% } else { %>
35+
<link rel="icon" type="image/png" href="<%= url_for(theme.favicon.android.url) %>" sizes="192x192">
36+
<% } %>
37+
<% } %>
38+
<% if (theme.favicon.apple) { %>
39+
<% if (theme.gravatar && (theme.gravatar.email || theme.gravatar.hash) && theme.favicon.apple.gravatar) { %>
40+
<% if (theme.gravatar.email) { %>
41+
<link rel="apple-touch-icon" sizes="180x180" href="<%= gravatar(theme.gravatar.email, 180) %>">
42+
<% } else { %>
43+
<link rel="apple-touch-icon" size="180x180" href="https://www.gravatar.com/avatar/<%= theme.gravatar.hash %>?s=180">
44+
<% } %>
45+
<% } else { %>
46+
<link rel="apple-touch-icon" sizes="180x180" href="<%= url_for(theme.favicon.apple.url) %>">
47+
<% } %>
48+
<% } %>
49+
<% } %>
50+
<!-- title -->
51+
<title><%= page_title() %></title>
52+
<!-- async scripts -->
53+
<%- partial('./google_analytics.ejs') %>
54+
<%- partial('./umami_analytics.ejs') %>
55+
<!-- styles -->
56+
<%- css('css/style') %>
57+
<!-- persian styles -->
58+
<% if (theme.direction && theme.direction === 'rtl') { %>
59+
<%- css('css/rtl') %>
60+
<% } %>
61+
<!-- rss -->
62+
<% if (theme.rss === '' && config.feed && config.feed.path) { %>
63+
<% theme.rss = config.feed.path %>
64+
<% } %>
65+
<% if (theme.rss) { %>
66+
<link rel="alternate" href="<%= url_for(theme.rss) %>" title="<%= config.title %>" type="application/atom+xml" />
67+
<% } %>
68+
<!-- mathjax -->
69+
<% if (theme.mathjax.enabled) {%>
70+
<script type="text/x-mathjax-config">
71+
MathJax.Hub.Config({
72+
tex2jax: {
73+
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
74+
inlineMath: [['$','$']]
75+
}
76+
});
77+
</script>
78+
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML' async></script>
79+
<% } %>
80+
</head>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<header id="header">
2+
<a class="u-url u-uid" href="<%- url_for("/") %>">
3+
<% if (theme.logo && theme.logo.enabled) { %>
4+
<% if (theme.gravatar && (theme.gravatar.email || theme.gravatar.hash) && theme.logo.gravatar) { %>
5+
<% if (theme.gravatar.email) { %>
6+
<img id="logo" alt class="u-logo"
7+
srcset="<%- gravatar(theme.gravatar.email) %>?s=<%= theme.logo.width %>, <%- gravatar(theme.gravatar.email) %>?s=<%= theme.logo.width*1.5 %> 1.5x, <%- gravatar(theme.gravatar.email) %>?s=<%= theme.logo.width*2 %> 2x"
8+
src="<%- gravatar(theme.gravatar.email) %>" />
9+
<% } else { %>
10+
<img id="logo" alt class="u-logo"
11+
srcset="https://www.gravatar.com/avatar/<%= theme.gravatar.hash %>?s=<%= theme.logo.width %>, https://www.gravatar.com/avatar/<%= theme.gravatar.hash %>?s=<%= theme.logo.width*1.5 %> 1.5x, https://www.gravatar.com/avatar/<%= theme.gravatar.hash %>?s=<%= theme.logo.width*2 %> 2x"
12+
src="https://www.gravatar.com/avatar/<%= theme.gravatar.hash %>" />
13+
<% } %>
14+
<% } else { %>
15+
<img id="logo" alt class="u-logo" src="<%- url_for(theme.logo.url) %>" />
16+
<% } %>
17+
<% } %>
18+
<div id="title">
19+
<h1 class="p-name"><%= config.title %></h1>
20+
</div>
21+
</a>
22+
<div id="nav">
23+
<ul>
24+
<li class="icon">
25+
<a href="#" aria-label="<%- __('icons.menu') %>"><i class="fa-solid fa-bars fa-2x"></i></a>
26+
</li>
27+
<% for (var i in theme.nav) { %><!--
28+
--><li><a href="<%- url_for(theme.nav[i]) %>"><%= __('nav.'+i).replace("nav.", "") %></a></li><!--
29+
--><% } %>
30+
</ul>
31+
</div>
32+
</header>
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<% if (page.total > 1) { %>
2+
<div class="pagination">
3+
<% if (page.prev) { %>
4+
<a href="<%- url_for(page.prev_link) %>"><i class="fa-solid fa-angle-left"></i></a>
5+
<% } %>
6+
<span class="page-number"><%= __('pagination.page', page.current, page.total) %></span>
7+
<% if (page.next) { %>
8+
<a href="<%- url_for(page.next_link) %>"><i class="fa-solid fa-angle-right"></i>
9+
</a>
10+
<% } %>
11+
</div>
12+
<% } %>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<div id="header-post">
2+
<a id="menu-icon" href="#" aria-label="<%- __('icons.menu') %>"><i class="fa-solid fa-bars fa-lg"></i></a>
3+
<a id="menu-icon-tablet" href="#" aria-label="<%- __('icons.menu') %>"><i class="fa-solid fa-bars fa-lg"></i></a>
4+
<a id="top-icon-tablet" href="#" aria-label="<%- __('icons.top') %>" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');" style="display:none;"><i class="fa-solid fa-chevron-up fa-lg"></i></a>
5+
<span id="menu">
6+
<span id="nav">
7+
<ul>
8+
<% for (var i in theme.nav) { %><!--
9+
--><li><a href="<%- url_for(theme.nav[i]) %>"><%= __('nav.'+i).replace("nav.", "") %></a></li><!--
10+
--><% } %>
11+
</ul>
12+
</span>
13+
<br/>
14+
<span id="actions">
15+
<ul>
16+
<% if (page.prev) { %>
17+
<li><a class="icon" aria-label="<%- __('post.desktop.previous') %>" href="<%- url_for(page.prev.path) %>"><i class="fa-solid fa-chevron-left" aria-hidden="true" onmouseover="$('#i-prev').toggle();" onmouseout="$('#i-prev').toggle();"></i></a></li>
18+
<% } %>
19+
<% if (page.next) { %>
20+
<li><a class="icon" aria-label="<%- __('post.desktop.next') %>" href="<%- url_for(page.next.path) %>"><i class="fa-solid fa-chevron-right" aria-hidden="true" onmouseover="$('#i-next').toggle();" onmouseout="$('#i-next').toggle();"></i></a></li>
21+
<% } %>
22+
<li><a class="icon" aria-label="<%- __('post.desktop.back_to_top') %>" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fa-solid fa-chevron-up" aria-hidden="true" onmouseover="$('#i-top').toggle();" onmouseout="$('#i-top').toggle();"></i></a></li>
23+
<li><a class="icon" aria-label="<%- __('post.desktop.share') %>" href="#"><i class="fa-solid fa-share-alt" aria-hidden="true" onmouseover="$('#i-share').toggle();" onmouseout="$('#i-share').toggle();" onclick="$('#share').toggle();return false;"></i></a></li>
24+
</ul>
25+
<span id="i-prev" class="info" style="display:none;"><%= __('post.desktop.previous') %></span>
26+
<span id="i-next" class="info" style="display:none;"><%= __('post.desktop.next') %></span>
27+
<span id="i-top" class="info" style="display:none;"><%= __('post.desktop.back_to_top') %></span>
28+
<span id="i-share" class="info" style="display:none;"><%= __('post.desktop.share') %></span>
29+
</span>
30+
<br/>
31+
<div id="share" style="display: none">
32+
<%- partial('_partial/post/share', { icon_class_name: '' }) %>
33+
</div>
34+
<% let tocHTML = toc(page.content) %>
35+
<% if (tocHTML !== '') { %>
36+
<div id="toc">
37+
<%- tocHTML %>
38+
</div>
39+
<% } %>
40+
</span>
41+
</div>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<div id="footer-post-container">
2+
<div id="footer-post">
3+
4+
<div id="nav-footer" style="display: none">
5+
<ul>
6+
<% for (var i in theme.nav) { %>
7+
<li><a href="<%- url_for(theme.nav[i]) %>"><%= __('nav.'+i).replace("nav.", "") %></a></li>
8+
<% } %>
9+
</ul>
10+
</div>
11+
12+
<% let tocHTML = toc(page.content) %>
13+
<% if (tocHTML !== '') { %>
14+
<div id="toc-footer" style="display: none">
15+
<%- toc(page.content) %>
16+
</div>
17+
<% } %>
18+
19+
<div id="share-footer" style="display: none">
20+
<%- partial('_partial/post/share', { icon_class_name: 'fa-lg' }) %>
21+
</div>
22+
23+
<div id="actions-footer">
24+
<a id="menu" class="icon" href="#" onclick="$('#nav-footer').toggle();return false;"><i class="fa-solid fa-bars fa-lg" aria-hidden="true"></i> <%= __('post.mobile.menu') %></a>
25+
<% if (tocHTML !== '') { %>
26+
<a id="toc" class="icon" href="#" onclick="$('#toc-footer').toggle();return false;"><i class="fa-solid fa-list fa-lg" aria-hidden="true"></i> <%= __('post.mobile.toc') %></a>
27+
<% } %>
28+
<a id="share" class="icon" href="#" onclick="$('#share-footer').toggle();return false;"><i class="fa-solid fa-share-alt fa-lg" aria-hidden="true"></i> <%= __('post.mobile.share') %></a>
29+
<a id="top" style="display:none" class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fa-solid fa-chevron-up fa-lg" aria-hidden="true"></i> <%= __('post.mobile.back_to_top') %></a>
30+
</div>
31+
32+
</div>
33+
</div>

0 commit comments

Comments
 (0)