Track theme
This commit is contained in:
parent
48932f2b80
commit
928e3afebd
21 changed files with 988 additions and 1 deletions
|
|
@ -11,7 +11,7 @@ JsonLD: { "@context": "https://schema.org", "@type": "WebPage", "name": "Accueil
|
||||||
# La {LINK} est parue !
|
# La {LINK} est parue !
|
||||||
|
|
||||||
La Craft Letter est une newsletter hebdomadaire dans laquelle je partage des articles
|
La Craft Letter est une newsletter hebdomadaire dans laquelle je partage des articles
|
||||||
issues de ma veille technologique. Vous y trouverez des articles relatifs au développement logiciel d'une façon générale, qu'il soit front-end, back-end ou autre. Mais aussi des articles consacrés à l'architecture logicielle, la méthodologie, les outils, des projets open source, des conférences...
|
issus de ma veille technologique. Vous y trouverez des articles relatifs au développement logiciel d'une façon générale, qu'il soit front-end, back-end ou autre. Mais aussi des articles consacrés à l'architecture logicielle, la méthodologie, les outils, des projets open source, des conférences...
|
||||||
|
|
||||||
Pour savoir qui je suis, ou pourquoi j'écris cette lettre, je vous invite à vous lire l'édito du [premier numéro]({filename}/newsletter/craft-letter-1.md).
|
Pour savoir qui je suis, ou pourquoi j'écris cette lettre, je vous invite à vous lire l'édito du [premier numéro]({filename}/newsletter/craft-letter-1.md).
|
||||||
|
|
||||||
|
|
|
||||||
17
themes/blue-penguin/CONTRIBUTORS.md
Normal file
17
themes/blue-penguin/CONTRIBUTORS.md
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Contributors
|
||||||
|
|
||||||
|
* [Nevan Scott](https://github.com/nevanscott/Mockingbird) (original author)
|
||||||
|
* [wrl](http://ghttps://github.com/guikcdithub.com/wrl) (port to pelican, pelican-mockingbird)
|
||||||
|
* [Jody Frankowski](http://github.com/jody-frankowski) (Blue Penguin)
|
||||||
|
* [Grimbox](https://github.com/Grimbox)
|
||||||
|
* [ix5](https://github.com/ix5)
|
||||||
|
* [dn0](https://github.com/dn0)
|
||||||
|
* [anhtuann](https://github.com/anhtuann)
|
||||||
|
* [aperep](https://github.com/aperep)
|
||||||
|
* [iranzo](https://github.com/iranzo)
|
||||||
|
* [thetlk](https://github.com/thetlk)
|
||||||
|
* [SnorlaxYum](https://github.com/SnorlaxYum)
|
||||||
|
* [guikcd](https://github.com/guikcd)
|
||||||
|
* [jorgesumle](https://github.com/jorgesumle)
|
||||||
|
* [crxxn](https://github.com/crxxn)
|
||||||
|
* [Pascal Le Merrer](https://www.craftletter.fr)
|
||||||
53
themes/blue-penguin/README.md
Normal file
53
themes/blue-penguin/README.md
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|

|
||||||
|
|
||||||
|
# Blue Penguin for pelican
|
||||||
|
A simple theme for pelican. Solarized pygments. Feeds support.
|
||||||
|
|
||||||
|
## Settings
|
||||||
|
```python
|
||||||
|
# all the following settings are *optional*
|
||||||
|
|
||||||
|
# HTML metadata
|
||||||
|
SITEDESCRIPTION = ''
|
||||||
|
|
||||||
|
# all defaults to True.
|
||||||
|
DISPLAY_HEADER = True
|
||||||
|
DISPLAY_FOOTER = True
|
||||||
|
DISPLAY_HOME = True
|
||||||
|
DISPLAY_MENU = True
|
||||||
|
|
||||||
|
# provided as examples, they make ‘clean’ urls. used by MENU_INTERNAL_PAGES.
|
||||||
|
TAGS_URL = 'tags'
|
||||||
|
TAGS_SAVE_AS = 'tags/index.html'
|
||||||
|
AUTHORS_URL = 'authors'
|
||||||
|
AUTHORS_SAVE_AS = 'authors/index.html'
|
||||||
|
CATEGORIES_URL = 'categories'
|
||||||
|
CATEGORIES_SAVE_AS = 'categories/index.html'
|
||||||
|
ARCHIVES_URL = 'archives'
|
||||||
|
ARCHIVES_SAVE_AS = 'archives/index.html'
|
||||||
|
|
||||||
|
# use those if you want pelican standard pages to appear in your menu
|
||||||
|
MENU_INTERNAL_PAGES = (
|
||||||
|
('Tags', TAGS_URL, TAGS_SAVE_AS),
|
||||||
|
('Authors', AUTHORS_URL, AUTHORS_SAVE_AS),
|
||||||
|
('Categories', CATEGORIES_URL, CATEGORIES_SAVE_AS),
|
||||||
|
('Archives', ARCHIVES_URL, ARCHIVES_SAVE_AS),
|
||||||
|
)
|
||||||
|
# additional menu items
|
||||||
|
MENUITEMS = (
|
||||||
|
('GitHub', 'https://github.com/'),
|
||||||
|
('Linux Kernel', 'https://www.kernel.org/'),
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to contribute
|
||||||
|
Contributions are very welcome. Keep in mind that this theme goal is to be
|
||||||
|
minimalistic/simple. Contributions will be accepted through Github Pull
|
||||||
|
Requests. If you don’t have a Github account you can suggest me your
|
||||||
|
changes by email (which you can find on my github profile).
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
See [CONTRIBUTORS.md](CONTRIBUTORS.md).
|
||||||
|
|
||||||
|
## License
|
||||||
|
Public domain.
|
||||||
BIN
themes/blue-penguin/screenshot.png
Normal file
BIN
themes/blue-penguin/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 984 KiB |
4
themes/blue-penguin/static/css/print.css
Normal file
4
themes/blue-penguin/static/css/print.css
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
* { background: #fff; }
|
||||||
|
body { font-family: georgia, times, serif; color: black; }
|
||||||
|
blockquote { font-style: italic; color: black; }
|
||||||
|
a:link, a:visited { border-bottom-width: 1px; border-bottom-style: solid; }
|
||||||
87
themes/blue-penguin/static/css/pygments.css
Normal file
87
themes/blue-penguin/static/css/pygments.css
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
/* Solarized Dark
|
||||||
|
|
||||||
|
For use with Jekyll and Pygments
|
||||||
|
|
||||||
|
https://ethanschoonover.com/solarized
|
||||||
|
|
||||||
|
SOLARIZED HEX ROLE
|
||||||
|
--------- -------- ------------------------------------------
|
||||||
|
base03 #002b36 background
|
||||||
|
base01 #586e75 comments / secondary content
|
||||||
|
base1 #93a1a1 body text / default code / primary content
|
||||||
|
orange #cb4b16 constants
|
||||||
|
red #dc322f regex, special keywords
|
||||||
|
blue #268bd2 reserved keywords
|
||||||
|
cyan #2aa198 strings, numbers
|
||||||
|
green #859900 operators, other keywords
|
||||||
|
*/
|
||||||
|
|
||||||
|
.highlight { background-color: #002b36; color: #93a1a1 }
|
||||||
|
.highlight .c { color: #586e75 } /* Comment */
|
||||||
|
.highlight .err { color: #93a1a1 } /* Error */
|
||||||
|
.highlight .g { color: #93a1a1 } /* Generic */
|
||||||
|
.highlight .k { color: #859900 } /* Keyword */
|
||||||
|
.highlight .l { color: #93a1a1 } /* Literal */
|
||||||
|
.highlight .n { color: #93a1a1 } /* Name */
|
||||||
|
.highlight .o { color: #859900 } /* Operator */
|
||||||
|
.highlight .x { color: #cb4b16 } /* Other */
|
||||||
|
.highlight .p { color: #93a1a1 } /* Punctuation */
|
||||||
|
.highlight .cm { color: #586e75 } /* Comment.Multiline */
|
||||||
|
.highlight .cp { color: #859900 } /* Comment.Preproc */
|
||||||
|
.highlight .c1 { color: #586e75 } /* Comment.Single */
|
||||||
|
.highlight .cs { color: #859900 } /* Comment.Special */
|
||||||
|
.highlight .gd { color: #2aa198 } /* Generic.Deleted */
|
||||||
|
.highlight .ge { color: #93a1a1; font-style: italic } /* Generic.Emph */
|
||||||
|
.highlight .gr { color: #dc322f } /* Generic.Error */
|
||||||
|
.highlight .gh { color: #cb4b16 } /* Generic.Heading */
|
||||||
|
.highlight .gi { color: #859900 } /* Generic.Inserted */
|
||||||
|
.highlight .go { color: #93a1a1 } /* Generic.Output */
|
||||||
|
.highlight .gp { color: #93a1a1 } /* Generic.Prompt */
|
||||||
|
.highlight .gs { color: #93a1a1; font-weight: bold } /* Generic.Strong */
|
||||||
|
.highlight .gu { color: #cb4b16 } /* Generic.Subheading */
|
||||||
|
.highlight .gt { color: #93a1a1 } /* Generic.Traceback */
|
||||||
|
.highlight .kc { color: #cb4b16 } /* Keyword.Constant */
|
||||||
|
.highlight .kd { color: #268bd2 } /* Keyword.Declaration */
|
||||||
|
.highlight .kn { color: #859900 } /* Keyword.Namespace */
|
||||||
|
.highlight .kp { color: #859900 } /* Keyword.Pseudo */
|
||||||
|
.highlight .kr { color: #268bd2 } /* Keyword.Reserved */
|
||||||
|
.highlight .kt { color: #dc322f } /* Keyword.Type */
|
||||||
|
.highlight .ld { color: #93a1a1 } /* Literal.Date */
|
||||||
|
.highlight .m { color: #2aa198 } /* Literal.Number */
|
||||||
|
.highlight .s { color: #2aa198 } /* Literal.String */
|
||||||
|
.highlight .na { color: #93a1a1 } /* Name.Attribute */
|
||||||
|
.highlight .nb { color: #B58900 } /* Name.Builtin */
|
||||||
|
.highlight .nc { color: #268bd2 } /* Name.Class */
|
||||||
|
.highlight .no { color: #cb4b16 } /* Name.Constant */
|
||||||
|
.highlight .nd { color: #268bd2 } /* Name.Decorator */
|
||||||
|
.highlight .ni { color: #cb4b16 } /* Name.Entity */
|
||||||
|
.highlight .ne { color: #cb4b16 } /* Name.Exception */
|
||||||
|
.highlight .nf { color: #268bd2 } /* Name.Function */
|
||||||
|
.highlight .nl { color: #93a1a1 } /* Name.Label */
|
||||||
|
.highlight .nn { color: #93a1a1 } /* Name.Namespace */
|
||||||
|
.highlight .nx { color: #93a1a1 } /* Name.Other */
|
||||||
|
.highlight .py { color: #93a1a1 } /* Name.Property */
|
||||||
|
.highlight .nt { color: #268bd2 } /* Name.Tag */
|
||||||
|
.highlight .nv { color: #268bd2 } /* Name.Variable */
|
||||||
|
.highlight .ow { color: #859900 } /* Operator.Word */
|
||||||
|
.highlight .w { color: #93a1a1 } /* Text.Whitespace */
|
||||||
|
.highlight .mf { color: #2aa198 } /* Literal.Number.Float */
|
||||||
|
.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */
|
||||||
|
.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */
|
||||||
|
.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */
|
||||||
|
.highlight .sb { color: #586e75 } /* Literal.String.Backtick */
|
||||||
|
.highlight .sc { color: #2aa198 } /* Literal.String.Char */
|
||||||
|
.highlight .sd { color: #93a1a1 } /* Literal.String.Doc */
|
||||||
|
.highlight .s2 { color: #2aa198 } /* Literal.String.Double */
|
||||||
|
.highlight .se { color: #cb4b16 } /* Literal.String.Escape */
|
||||||
|
.highlight .sh { color: #93a1a1 } /* Literal.String.Heredoc */
|
||||||
|
.highlight .si { color: #2aa198 } /* Literal.String.Interpol */
|
||||||
|
.highlight .sx { color: #2aa198 } /* Literal.String.Other */
|
||||||
|
.highlight .sr { color: #dc322f } /* Literal.String.Regex */
|
||||||
|
.highlight .s1 { color: #2aa198 } /* Literal.String.Single */
|
||||||
|
.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */
|
||||||
|
.highlight .bp { color: #268bd2 } /* Name.Builtin.Pseudo */
|
||||||
|
.highlight .vc { color: #268bd2 } /* Name.Variable.Class */
|
||||||
|
.highlight .vg { color: #268bd2 } /* Name.Variable.Global */
|
||||||
|
.highlight .vi { color: #268bd2 } /* Name.Variable.Instance */
|
||||||
|
.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */
|
||||||
495
themes/blue-penguin/static/css/screen.css
Normal file
495
themes/blue-penguin/static/css/screen.css
Normal file
|
|
@ -0,0 +1,495 @@
|
||||||
|
/* https://meyerweb.com/eric/tools/css/reset/
|
||||||
|
v2.0 | 20110126
|
||||||
|
License: none (public domain)
|
||||||
|
*/
|
||||||
|
/* Mockingbird Theme by Nevan Scott nevanscott.com */
|
||||||
|
/* Modified by Jody Frankowski */
|
||||||
|
/* Modified by ix5 */
|
||||||
|
/* Modified by Pascal Le Merrer */
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--link-color: #801515;
|
||||||
|
--link-background-color: #abdae7;
|
||||||
|
}
|
||||||
|
|
||||||
|
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,
|
||||||
|
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 {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
font: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
em {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
strong {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
/* HTML5 display-role reset for older browsers */
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
details,
|
||||||
|
figcaption,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
menu,
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
line-height: 1;
|
||||||
|
}
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
blockquote,
|
||||||
|
q {
|
||||||
|
quotes: none;
|
||||||
|
}
|
||||||
|
blockquote:before,
|
||||||
|
blockquote:after,
|
||||||
|
q:before,
|
||||||
|
q:after {
|
||||||
|
content: "";
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1.5em;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
header,
|
||||||
|
#wrapper {
|
||||||
|
padding: 0 10px;
|
||||||
|
max-width: 910px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#wrapper {
|
||||||
|
min-width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
box-shadow: inset 0 0 0 0 var(--link-background-color);
|
||||||
|
color: var(--link-color);
|
||||||
|
padding: 0 0.25rem;
|
||||||
|
margin: 0 -0.25rem;
|
||||||
|
transition:
|
||||||
|
color 0.3s ease-in-out,
|
||||||
|
box-shadow 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
box-shadow: inset 800px 0 0 0 var(--link-background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: outside disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol {
|
||||||
|
list-style: outside decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3 {
|
||||||
|
line-height: 1em;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.7em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
p,
|
||||||
|
.post > .highlight,
|
||||||
|
.highlighttable,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
margin-top: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 1.5em 1.5em 1.5em 0.75em;
|
||||||
|
padding-left: 0.75em;
|
||||||
|
border-left: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
color: #ccc;
|
||||||
|
float: left;
|
||||||
|
clear: both;
|
||||||
|
width: 130px;
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 1em;
|
||||||
|
margin: 0 20px 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
margin-top: 1.3em;
|
||||||
|
font-family: sans-serif;
|
||||||
|
text-align: right;
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
.info a {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
.info a.tags {
|
||||||
|
background: #ccc;
|
||||||
|
color: #fff;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0 0.3em;
|
||||||
|
border: 1px transparent solid;
|
||||||
|
border-radius: 5px;
|
||||||
|
margin: 0 0 0.3em 0;
|
||||||
|
}
|
||||||
|
.info a.tags:hover {
|
||||||
|
background: inherit;
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
.info a.tags.selected {
|
||||||
|
border: 1px #999 solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post {
|
||||||
|
margin: 0 0 4.5em 150px;
|
||||||
|
}
|
||||||
|
.post.archives {
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
margin-left: 160px;
|
||||||
|
}
|
||||||
|
.post p {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page {
|
||||||
|
margin: 0 90px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.code > .highlight {
|
||||||
|
border-radius: 0px 3px 3px 0px;
|
||||||
|
}
|
||||||
|
.linenos {
|
||||||
|
border-radius: 3px 0px 0px 3px;
|
||||||
|
background-color: #073642;
|
||||||
|
border-right: 1px solid #00232c;
|
||||||
|
color: #586e75;
|
||||||
|
text-shadow: 0px -1px #021014;
|
||||||
|
}
|
||||||
|
td.code {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100px;
|
||||||
|
}
|
||||||
|
.linenos a {
|
||||||
|
color: #586e75;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
max-width: 100%;
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
margin-top: 6rem;
|
||||||
|
margin-bottom: 6rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*sub and sup stolen from Twitter bootstrap.*/
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
position: relative;
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post pre,
|
||||||
|
.page pre {
|
||||||
|
padding: 0.8em;
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: Monospace;
|
||||||
|
line-height: 1.1em;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.inline_edit {
|
||||||
|
clear: both;
|
||||||
|
margin: 4.5em 0;
|
||||||
|
background-color: #ddd;
|
||||||
|
color: #000;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.inline_edit .sub {
|
||||||
|
color: #888;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.inline_edit label {
|
||||||
|
float: left;
|
||||||
|
clear: both;
|
||||||
|
width: 140px;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
.inline_edit .buttons {
|
||||||
|
display: block;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
gap: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav ul {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav a {
|
||||||
|
color: var(--link-color);
|
||||||
|
}
|
||||||
|
nav a:hover {
|
||||||
|
color: var(--link-color);
|
||||||
|
text-decoration: underline;
|
||||||
|
background-color: #d3d3d3;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav li.selected a {
|
||||||
|
background-color: var(--link-background-color);
|
||||||
|
color: var(--link-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
header .header_box {
|
||||||
|
padding-top: 4.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h1 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 1em;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
header h2 {
|
||||||
|
font-size: 1em;
|
||||||
|
margin: 0.3em 0;
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
margin-top: 3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pages {
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: 2.5em;
|
||||||
|
margin: 4.5em 0 3em;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
color: #444;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.pages a.next_page {
|
||||||
|
float: right;
|
||||||
|
width: 140px;
|
||||||
|
text-align: center;
|
||||||
|
border-top-right-radius: 5px;
|
||||||
|
border-bottom-right-radius: 5px;
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
.pages a.prev_page {
|
||||||
|
float: left;
|
||||||
|
width: 140px;
|
||||||
|
text-align: center;
|
||||||
|
border-top-left-radius: 5px;
|
||||||
|
border-bottom-left-radius: 5px;
|
||||||
|
background-color: #eee;
|
||||||
|
}
|
||||||
|
.pages a {
|
||||||
|
color: inherit;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.pages a:hover {
|
||||||
|
background-color: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pages span {
|
||||||
|
display: block;
|
||||||
|
margin: 0 160px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
background-color: #f9f2f4;
|
||||||
|
border-bottom-left-radius: 4px;
|
||||||
|
border-bottom-right-radius: 4px;
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-top-right-radius: 4px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: #c7254e;
|
||||||
|
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
|
||||||
|
font-size: 12.6px;
|
||||||
|
line-height: 18px;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
padding-left: 4px;
|
||||||
|
padding-right: 4px;
|
||||||
|
padding-top: 2px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
font-family: sans-serif;
|
||||||
|
line-height: 2.5em;
|
||||||
|
text-align: center;
|
||||||
|
color: #bbb;
|
||||||
|
margin: 3em 0;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
footer p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
header,
|
||||||
|
#wrapper {
|
||||||
|
max-width: 500px;
|
||||||
|
min-width: 300px;
|
||||||
|
}
|
||||||
|
.page,
|
||||||
|
.post {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
color: #cccccc;
|
||||||
|
margin-top: 40px;
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
11
themes/blue-penguin/templates/analytics.html
Normal file
11
themes/blue-penguin/templates/analytics.html
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{% if GOOGLE_ANALYTICS %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
try {
|
||||||
|
var pageTracker = _gat._getTracker("{{GOOGLE_ANALYTICS}}");
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
} catch(err) {}</script>
|
||||||
|
{% endif %}
|
||||||
22
themes/blue-penguin/templates/archives.html
Normal file
22
themes/blue-penguin/templates/archives.html
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} | Archives{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<h1>Archives</h1>
|
||||||
|
|
||||||
|
{# based on https://stackoverflow.com/questions/12764291/jinja2-group-by-month-year #}
|
||||||
|
|
||||||
|
{% for year, year_group in dates|groupby('date.year')|reverse %}
|
||||||
|
{% for month, month_group in year_group|groupby('date.month')|reverse %}
|
||||||
|
<h4 class="date">{{ (month_group|first).date|strftime('%b %Y') }}</h4>
|
||||||
|
<div class="post archives">
|
||||||
|
<ul>
|
||||||
|
{% for article in month_group %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
||||||
21
themes/blue-penguin/templates/article.html
Normal file
21
themes/blue-penguin/templates/article.html
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
{{ super() }}
|
||||||
|
{% if article.tags %}
|
||||||
|
<meta name="keywords" content="{{ article.tags|join(",") }}" />
|
||||||
|
{% endif %}
|
||||||
|
{% if article.description %}
|
||||||
|
<meta name="description" content="{{ article.description }}" />
|
||||||
|
{% endif %}
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{{ article.jsonld }}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} | {{ article.title }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% include "article_stub.html" %}
|
||||||
|
{% endblock %}
|
||||||
37
themes/blue-penguin/templates/article_stub.html
Normal file
37
themes/blue-penguin/templates/article_stub.html
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
{% if not articles_page or first_article_of_day %}
|
||||||
|
<h4 class="date">{{ article.date.strftime("%d %b %Y") }}</h4>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<article class="post">
|
||||||
|
{% if article.title %}
|
||||||
|
<h2 class="title">
|
||||||
|
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permanent Link to "{{ article.title }}"">{{ article.title }}</a>
|
||||||
|
</h2>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if not articles_page %}
|
||||||
|
{% include "translations.html" %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{{ article.content }}
|
||||||
|
<div class="clear"></div>
|
||||||
|
|
||||||
|
<div class="info">
|
||||||
|
<a href="{{ SITEURL }}/{{ article.url }}">Publié à {{ article.date.strftime("%H:%M") }}</a>
|
||||||
|
{% if article.category.name != "misc" %}
|
||||||
|
· <a href="{{ SITEURL }}/{{ article.category.url }}" rel="tag">{{ article.category }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if article.tags %}
|
||||||
|
·
|
||||||
|
{% for t in article.tags %}
|
||||||
|
<a href="{{ SITEURL }}/{{ t.url }}" class="tags{% if tag and tag.name == t.name %} selected{% endif %}">{{ t }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% if articles_page and DISQUS_SITENAME %}
|
||||||
|
<a href="{{ SITEURL }}/{{ article.url }}#disqus_thread">Click to read and post comments</a>
|
||||||
|
{% else %}
|
||||||
|
{% include "disqus.html" %}
|
||||||
|
{% endif %}
|
||||||
|
</article>
|
||||||
7
themes/blue-penguin/templates/author.html
Normal file
7
themes/blue-penguin/templates/author.html
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} | Articles by {{ author }}{% endblock %}
|
||||||
|
{% block ephemeral_nav %}
|
||||||
|
|
||||||
|
{{ ephemeral_nav_link(author, output_file, True) }}
|
||||||
|
{% endblock %}
|
||||||
123
themes/blue-penguin/templates/base.html
Normal file
123
themes/blue-penguin/templates/base.html
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
{% macro ephemeral_nav_link(what, where, selected=False) -%}
|
||||||
|
<li class="ephemeral{% if selected %} selected{% endif %}"><a href="{{ SITEURL }}/{{ where }}">{{what}}</a></li>
|
||||||
|
{%- endmacro -%}
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{ DEFAULT_LANG }}">
|
||||||
|
<head>
|
||||||
|
{% block head %}
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
|
||||||
|
{# favicon #}
|
||||||
|
<link rel="shortcut icon" type="image/png" href="{{ SITEURL }}/favicon.png">
|
||||||
|
<link rel="shortcut icon" type="image/x-icon" href="{{ SITEURL }}/favicon.ico">
|
||||||
|
{% if FEED_ALL_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ALL_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_ATOM and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM.format(slug=category.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_RSS and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS.format(slug=category.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_ATOM and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM.format(slug=tag.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_RSS and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS.format(slug=tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/screen.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/pygments.css" type="text/css" />
|
||||||
|
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/print.css" type="text/css" media="print" />
|
||||||
|
<meta name="generator" content="Pelican" />
|
||||||
|
<meta name="description" content="{{ SITEDESCRIPTION }}" />
|
||||||
|
<meta name="author" content="{{ AUTHOR }}" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="{{ SITEURL }}" />
|
||||||
|
<meta property="og:title" content="{{ SITENAME }}" />
|
||||||
|
<meta property="og:image" content="{{ SITEURL }}/images/LogoCraftLetter-800px.png" />
|
||||||
|
<meta property="og:image:width" content="800" />
|
||||||
|
<meta property="og:image:height" content="222" />
|
||||||
|
<meta property="og:image:type" content="image/png" />
|
||||||
|
<meta property="og:description" content="{{ SITEDESCRIPTION }}" />
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://files.stork-search.net/basic.css" />
|
||||||
|
{% endblock head %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{% if DISPLAY_HEADER or DISPLAY_HEADER is not defined %}
|
||||||
|
<header>
|
||||||
|
{% if DISPLAY_MENU or DISPLAY_MENU is not defined %}
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
{% block ephemeral_nav %}{% endblock %}
|
||||||
|
<!-- {% if DISPLAY_HOME or DISPLAY_HOME is not defined %} -->
|
||||||
|
<!-- <li{% if output_file == "index.html" %} class="selected"{% endif %}><a href="{{ SITEURL }}/">Home</a></li> -->
|
||||||
|
<!-- {% endif %} -->
|
||||||
|
{% if DISPLAY_PAGES_ON_MENU %}
|
||||||
|
{% for p in pages %}
|
||||||
|
<li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% for title, link in MENUITEMS %}
|
||||||
|
<li><a href="{{ link }}">{{ title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% for name, link, file in MENU_INTERNAL_PAGES %}
|
||||||
|
<li{% if output_file == file %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ link }}">{{ name }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<search>Rechercher : <input data-stork="sitesearch" />
|
||||||
|
<div data-stork="sitesearch-output"></div>
|
||||||
|
</search>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
{% endif %}
|
||||||
|
<div class="header_box">
|
||||||
|
<h1><a href="{{ SITEURL }}/">{{ SITENAME }}</a></h1>
|
||||||
|
{% if SITESUBTITLE %}
|
||||||
|
<h2>{{ SITESUBTITLE }}</h2>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
{% endif %}
|
||||||
|
<div id="wrapper">
|
||||||
|
<div id="content">
|
||||||
|
<main>
|
||||||
|
{%- block content -%}{%- endblock %}
|
||||||
|
<!-- </main> -->
|
||||||
|
{% if DISPLAY_FOOTER or DISPLAY_FOOTER is not defined %}
|
||||||
|
<div class="clear"></div>
|
||||||
|
<footer>
|
||||||
|
<p>
|
||||||
|
Thème dérivé de <a href="https://github.com/jody-frankowski/blue-penguin">Blue Penguin</a>
|
||||||
|
·
|
||||||
|
Propulsé par <a href="https://getpelican.com">Pelican</a>
|
||||||
|
{% if FEED_ALL_RSS %}
|
||||||
|
·
|
||||||
|
<a href="{{ SITEURL }}/{{ FEED_ALL_RSS }}" rel="alternate">Flux RSS</a>
|
||||||
|
{% endif %}
|
||||||
|
<p>
|
||||||
|
<a href="https://www.craftletter.fr">Craft Letter</a> © 2025 - 2026 par <a href="https://www.linkedin.com/in/pascal-le-merrer/">Pascal Le Merrer</a> est sous licence <a href="https://creativecommons.org/licenses/by-nc-nd/4.0/">CC BY-NC-ND 4.0</a><div><img src="https://mirrors.creativecommons.org/presskit/icons/cc.svg" alt="CC" style="max-width: 1em;max-height:1em;margin-left: .2em;"><img src="https://mirrors.creativecommons.org/presskit/icons/by.svg" alt="BY" style="max-width: 1em;max-height:1em;margin-left: .2em;"><img src="https://mirrors.creativecommons.org/presskit/icons/nc.svg" alt="NC" style="max-width: 1em;max-height:1em;margin-left: .2em;"><img src="https://mirrors.creativecommons.org/presskit/icons/nd.svg" alt="ND" style="max-width: 1em;max-height:1em;margin-left: .2em;"></div>
|
||||||
|
<p/>
|
||||||
|
</footer>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
<script src="https://files.stork-search.net/releases/v1.5.0/stork.js"></script>
|
||||||
|
<script>
|
||||||
|
stork.register("sitesearch", "{{ SITEURL }}/search-index.st");
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
6
themes/blue-penguin/templates/category.html
Normal file
6
themes/blue-penguin/templates/category.html
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
{% block title %}{{ SITENAME }} | articles in the "{{ category }}" category{% if articles_page.number != 1 %} | Page {{ articles_page.number }}{% endif %}{% endblock %}
|
||||||
|
{% block ephemeral_nav %}
|
||||||
|
|
||||||
|
{{ ephemeral_nav_link(category, output_file, True) }}
|
||||||
|
{% endblock %}
|
||||||
12
themes/blue-penguin/templates/disqus.html
Normal file
12
themes/blue-penguin/templates/disqus.html
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{% if DISQUS_SITENAME %}
|
||||||
|
<div id="disqus_thread"></div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var disqus_shortname = '{{ DISQUS_SITENAME }}';
|
||||||
|
(function() {
|
||||||
|
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
||||||
|
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
|
||||||
|
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
|
||||||
|
{% endif %}
|
||||||
17
themes/blue-penguin/templates/index.html
Normal file
17
themes/blue-penguin/templates/index.html
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }}{% if articles_page.number != 1 %} | Page {{ articles_page.number }}{% endif %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
{% set date = None %}
|
||||||
|
{% for article in articles_page.object_list %}
|
||||||
|
{% if date != article.date.date() %}
|
||||||
|
{% set first_article_of_day = True %}
|
||||||
|
{% else %}
|
||||||
|
{% set first_article_of_day = False %}
|
||||||
|
{% endif %}
|
||||||
|
{% set date = article.date.date() %}
|
||||||
|
{% include "article_stub.html" %}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% include "pagination.html" %}
|
||||||
|
{% endblock %}
|
||||||
18
themes/blue-penguin/templates/page.html
Normal file
18
themes/blue-penguin/templates/page.html
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
{{ super() }}
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{{ page.jsonld }}
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} | {{ page.title }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="page">
|
||||||
|
<h1>{{ page.title }}</h1>
|
||||||
|
{{ page.content }}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
38
themes/blue-penguin/templates/pagination.html
Normal file
38
themes/blue-penguin/templates/pagination.html
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
{# Use PAGINATION_PATTERNS or pagination may break #}
|
||||||
|
{% if DEFAULT_PAGINATION and (articles_page.has_previous() or articles_page.has_next()) %}
|
||||||
|
|
||||||
|
<div class="clear"></div>
|
||||||
|
<div class="pages">
|
||||||
|
{% if PAGINATION_PATTERNS[0][0] != 0 %}
|
||||||
|
{%- if articles_page.has_previous() %}
|
||||||
|
{% if articles_page.previous_page_number() == 1 %}
|
||||||
|
|
||||||
|
<a href="{{ SITEURL }}/" class="prev_page">← Previous</a>
|
||||||
|
{%- else %}
|
||||||
|
|
||||||
|
<a href="{{ SITEURL }}/page/{{ articles_page.previous_page_number() }}" class="prev_page">← Previous</a>
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if articles_page.has_next() %}
|
||||||
|
|
||||||
|
<a href="{{ SITEURL }}/page/{{ articles_page.next_page_number() }}" class="next_page">Next →</a>
|
||||||
|
{%- endif %}
|
||||||
|
{% else %}
|
||||||
|
{%- if articles_page.has_previous() %}
|
||||||
|
{% if articles_page.previous_page_number() == 1 %}
|
||||||
|
|
||||||
|
<a href="{{ SITEURL }}/{{ page_name }}.html" class="prev_page">← Previous</a>
|
||||||
|
{%- else %}
|
||||||
|
|
||||||
|
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html" class="prev_page">← Previous</a>
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- if articles_page.has_next() %}
|
||||||
|
|
||||||
|
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html" class="next_page">Next →</a>
|
||||||
|
{%- endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<span>Page {{ articles_page.number }} of {{ articles_paginator.num_pages }}</span>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
5
themes/blue-penguin/templates/tag.html
Normal file
5
themes/blue-penguin/templates/tag.html
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
{% block title %}{{ SITENAME }} | articles tagged "{{ tag }}"{% if articles_page.number != 1 %} | Page {{ articles_page.number }}{% endif %}{% endblock %}
|
||||||
|
{% block ephemeral_nav %}
|
||||||
|
{{ ephemeral_nav_link(tag, output_file, True) }}
|
||||||
|
{% endblock %}
|
||||||
8
themes/blue-penguin/templates/tags.html
Normal file
8
themes/blue-penguin/templates/tags.html
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<ul>
|
||||||
|
{% for tag, articles in tags %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
||||||
6
themes/blue-penguin/templates/translations.html
Normal file
6
themes/blue-penguin/templates/translations.html
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{% if article.translations %}
|
||||||
|
Translations:
|
||||||
|
{% for translation in article.translations %}
|
||||||
|
<a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue