Merge pull request #213 from sumnerevans/support-dark-theme
Support dark theme
This commit is contained in:
commit
31e56276ea
12 changed files with 343 additions and 13 deletions
|
@ -20,6 +20,7 @@ The minimalist [Pelican](http://blog.getpelican.com/) theme.
|
||||||
- Minute read (via [plugin](https://github.com/getpelican/pelican-plugins/tree/master/post_stats)) (new in 2.0)
|
- Minute read (via [plugin](https://github.com/getpelican/pelican-plugins/tree/master/post_stats)) (new in 2.0)
|
||||||
- [Multiple Code Highlight Styles](https://github.com/alexandrevicenzi/Flex/wiki/Code-Highlight)
|
- [Multiple Code Highlight Styles](https://github.com/alexandrevicenzi/Flex/wiki/Code-Highlight)
|
||||||
- [Translation Support](https://github.com/alexandrevicenzi/Flex/wiki/Translations) (new in 2.0)
|
- [Translation Support](https://github.com/alexandrevicenzi/Flex/wiki/Translations) (new in 2.0)
|
||||||
|
- [Dark Mode](https://github.com/alexandrevicenzi/Flex/wiki/Dark-Mode)
|
||||||
|
|
||||||
## Integrations
|
## Integrations
|
||||||
|
|
||||||
|
|
23
gulpfile.js
23
gulpfile.js
|
@ -1,18 +1,31 @@
|
||||||
var gulp = require('gulp'),
|
var gulp = require('gulp'),
|
||||||
less = require('gulp-less'),
|
less = require('gulp-less'),
|
||||||
rename = require('gulp-rename'),
|
rename = require('gulp-rename'),
|
||||||
minify = require('gulp-cssnano');
|
cssnano = require('gulp-cssnano'),
|
||||||
|
uglify = require('gulp-uglify');
|
||||||
|
|
||||||
gulp.task('less', function () {
|
gulp.task('less', function () {
|
||||||
return gulp.src('./static/stylesheet/style.less')
|
return gulp.src([
|
||||||
|
'./static/stylesheet/dark-theme.less',
|
||||||
|
'./static/stylesheet/style.less',
|
||||||
|
])
|
||||||
.pipe(less())
|
.pipe(less())
|
||||||
.pipe(minify())
|
.pipe(cssnano())
|
||||||
.pipe(rename({
|
.pipe(rename({
|
||||||
extname: '.min.css'
|
extname: '.min.css'
|
||||||
}))
|
}))
|
||||||
.pipe(gulp.dest('./static/stylesheet'));
|
.pipe(gulp.dest('./static/stylesheet'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('uglify', function () {
|
||||||
|
return gulp.src('./static/dark_theme/dark_theme.js')
|
||||||
|
.pipe(uglify())
|
||||||
|
.pipe(rename({
|
||||||
|
extname: '.min.js'
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('./static/dark_theme'));
|
||||||
|
});
|
||||||
|
|
||||||
gulp.task('cp', function () {
|
gulp.task('cp', function () {
|
||||||
return gulp.src('./node_modules/font-awesome/**/*.{min.css,otf,eot,svg,ttf,woff,woff2}')
|
return gulp.src('./node_modules/font-awesome/**/*.{min.css,otf,eot,svg,ttf,woff,woff2}')
|
||||||
.pipe(gulp.dest('./static/font-awesome'));
|
.pipe(gulp.dest('./static/font-awesome'));
|
||||||
|
@ -20,7 +33,7 @@ gulp.task('cp', function () {
|
||||||
|
|
||||||
gulp.task('pygments', function () {
|
gulp.task('pygments', function () {
|
||||||
return gulp.src(['./static/pygments/*.css', '!./static/pygments/*min.css'])
|
return gulp.src(['./static/pygments/*.css', '!./static/pygments/*min.css'])
|
||||||
.pipe(minify())
|
.pipe(cssnano())
|
||||||
.pipe(rename({
|
.pipe(rename({
|
||||||
extname: '.min.css'
|
extname: '.min.css'
|
||||||
}))
|
}))
|
||||||
|
@ -28,4 +41,4 @@ gulp.task('pygments', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
gulp.task('default', gulp.series(['less', 'cp', 'pygments']));
|
gulp.task('default', gulp.series(['less', 'uglify', 'cp', 'pygments']));
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
"gulp": "^4.0.1",
|
"gulp": "^4.0.1",
|
||||||
"gulp-cssnano": "^2.1.3",
|
"gulp-cssnano": "^2.1.3",
|
||||||
"gulp-less": "^3.5.0",
|
"gulp-less": "^3.5.0",
|
||||||
"gulp-rename": "^1.3.0"
|
"gulp-rename": "^1.3.0",
|
||||||
|
"gulp-uglify": "^3.0.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
58
static/dark_theme/dark_theme.js
Normal file
58
static/dark_theme/dark_theme.js
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
function ThemeManager(options) {
|
||||||
|
var defaultTheme = options.defaultTheme;
|
||||||
|
var enableAutoDetectTheme = options.enableAutoDetectTheme.toLowerCase() === 'true';
|
||||||
|
|
||||||
|
var darkThemeMatch = window.matchMedia(
|
||||||
|
defaultTheme === 'light' ?
|
||||||
|
'(prefers-color-scheme: dark)' :
|
||||||
|
'(prefers-color-scheme: dark), (prefers-color-scheme: no-preference)'
|
||||||
|
);
|
||||||
|
|
||||||
|
function setEnabledAndDisableMediaQuery(elementId, enabled) {
|
||||||
|
var element = document.getElementById(elementId);
|
||||||
|
element.disabled = !enabled;
|
||||||
|
element.media = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function detectThemeAndSwitchStyle() {
|
||||||
|
var theme = localStorage.getItem('themeOverride');
|
||||||
|
if (theme !== 'light' && theme !== 'dark') {
|
||||||
|
if (theme === 'browser' || enableAutoDetectTheme) {
|
||||||
|
theme = darkThemeMatch.matches ? 'dark' : 'light';
|
||||||
|
} else {
|
||||||
|
theme = defaultTheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// (Dis|En)able the styles according to the user's desired theme. Get rid
|
||||||
|
// of the media queries, since we are handling it in JS.
|
||||||
|
setEnabledAndDisableMediaQuery('dark-theme-style', theme === 'dark');
|
||||||
|
setEnabledAndDisableMediaQuery('pygments-dark-theme', theme === 'dark');
|
||||||
|
setEnabledAndDisableMediaQuery('pygments-light-theme', theme === 'light');
|
||||||
|
|
||||||
|
if (theme === 'dark') {
|
||||||
|
document.body.classList.add('dark-theme');
|
||||||
|
document.body.classList.remove('light-theme');
|
||||||
|
} else {
|
||||||
|
document.body.classList.add('light-theme');
|
||||||
|
document.body.classList.remove('dark-theme');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.switch = function(themeOverride) {
|
||||||
|
localStorage.setItem('themeOverride', themeOverride);
|
||||||
|
detectThemeAndSwitchStyle();
|
||||||
|
};
|
||||||
|
|
||||||
|
// If there's an override, then apply it, otherwise, don't incur the
|
||||||
|
// overhead of determining whether or not to switch themes.
|
||||||
|
var themeOverride = localStorage.getItem('themeOverride');
|
||||||
|
if (themeOverride === 'light' || themeOverride === 'dark') {
|
||||||
|
detectThemeAndSwitchStyle();
|
||||||
|
}
|
||||||
|
|
||||||
|
// If theme auto-detection is enabled, then add a listenr on the matchMedia.
|
||||||
|
darkThemeMatch.addListener(detectThemeAndSwitchStyle);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.theme = new ThemeManager(document.getElementById('dark-theme-script').dataset);
|
1
static/dark_theme/dark_theme.min.js
vendored
Normal file
1
static/dark_theme/dark_theme.min.js
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
function ThemeManager(e){var t=e.defaultTheme,r="true"===e.enableAutoDetectTheme.toLowerCase(),a=window.matchMedia("light"===t?"(prefers-color-scheme: dark)":"(prefers-color-scheme: dark), (prefers-color-scheme: no-preference)");function d(e,t){var r=document.getElementById(e);r.disabled=!t,r.media=""}function m(){var e=localStorage.getItem("themeOverride");"light"!==e&&"dark"!==e&&(e="browser"===e||r?a.matches?"dark":"light":t),d("dark-theme-style","dark"===e),d("pygments-dark-theme","dark"===e),d("pygments-light-theme","light"===e),"dark"===e?(document.body.classList.add("dark-theme"),document.body.classList.remove("light-theme")):(document.body.classList.add("light-theme"),document.body.classList.remove("dark-theme"))}this.switch=function(e){localStorage.setItem("themeOverride",e),m()};var o=localStorage.getItem("themeOverride");"light"!==o&&"dark"!==o||m(),a.addListener(m)}window.theme=new ThemeManager(document.getElementById("dark-theme-script").dataset);
|
156
static/stylesheet/dark-theme.less
Normal file
156
static/stylesheet/dark-theme.less
Normal file
|
@ -0,0 +1,156 @@
|
||||||
|
//
|
||||||
|
// Dark Theme CSS styles.
|
||||||
|
//
|
||||||
|
|
||||||
|
@import "variables.less";
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: @body-bg-dark-theme;
|
||||||
|
color: @text-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
background-color: @solid-dark-grey;
|
||||||
|
color: @solid-dark-grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
aside {
|
||||||
|
background-color: @sidebar-bg-dark-theme;
|
||||||
|
color: @sidebar-text-color;
|
||||||
|
|
||||||
|
form.navbar-search input#tipue_search_input {
|
||||||
|
background-color: @very-dark-grey;
|
||||||
|
color: @light-grey;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
nav {
|
||||||
|
border-bottom-color: @nav-border-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav, .translations {
|
||||||
|
a {
|
||||||
|
border-color: @nav-border-color-dark-theme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
kbd {
|
||||||
|
background-color: #080808;
|
||||||
|
color: @light-grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote, pre {
|
||||||
|
border-left: 8px solid #ffffff33;
|
||||||
|
}
|
||||||
|
|
||||||
|
*:not(pre) > code {
|
||||||
|
background-color: #080808;
|
||||||
|
border-color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#tipue_search_content .tipue_search_result {
|
||||||
|
span.tipue_search_content_bold {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
section#isso-thread {
|
||||||
|
div.textarea,
|
||||||
|
.auth-section p.input-wrapper input,
|
||||||
|
.notification-section input {
|
||||||
|
background: @very-dark-grey;
|
||||||
|
color: @light-grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
>h4 {
|
||||||
|
color: @light-grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.isso-postbox > .form-wrapper .preview {
|
||||||
|
background: repeating-linear-gradient(
|
||||||
|
-45deg,
|
||||||
|
@solid-dark-grey, @solid-dark-grey 10px,
|
||||||
|
@very-dark-grey 10px, @very-dark-grey 20px
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
.isso-comment > div.text-wrapper {
|
||||||
|
> .isso-comment-header {
|
||||||
|
.author {
|
||||||
|
color: @light-grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spacer, a.permalink, .note, a.parent {
|
||||||
|
color: @med-grey;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: @light-grey;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .isso-comment-footer a:hover {
|
||||||
|
// Unfortunately, Isso uses a lot of !important in its styles, so I
|
||||||
|
// have to override that.
|
||||||
|
text-shadow: @dark-grey 0 0 1px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
border-top-color: @footer-border-color-dark-theme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
div.related-posts {
|
||||||
|
border-color: @rel-post-border-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Admonition
|
||||||
|
div.admonition.attention {
|
||||||
|
color: @admonition-attention-color-dark-theme;
|
||||||
|
background-color: @admonition-attention-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.caution {
|
||||||
|
color: @admonition-caution-color-dark-theme;
|
||||||
|
background-color: @admonition-caution-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.danger {
|
||||||
|
color: @admonition-danger-color-dark-theme;
|
||||||
|
background-color: @admonition-danger-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.error {
|
||||||
|
color: @admonition-error-color-dark-theme;
|
||||||
|
background-color: @admonition-error-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.hint {
|
||||||
|
color: @admonition-hint-color-dark-theme;
|
||||||
|
background-color: @admonition-hint-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.important {
|
||||||
|
color: @admonition-important-color-dark-theme;
|
||||||
|
background-color: @admonition-important-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.note {
|
||||||
|
color: @admonition-note-color-dark-theme;
|
||||||
|
background-color: @admonition-note-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.tip {
|
||||||
|
color: @admonition-tip-color-dark-theme;
|
||||||
|
background-color: @admonition-tip-bg-color-dark-theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.admonition.warning {
|
||||||
|
color: @admonition-warning-color-dark-theme;
|
||||||
|
background-color: @admonition-warning-bg-color-dark-theme;
|
||||||
|
}
|
1
static/stylesheet/dark-theme.min.css
vendored
Normal file
1
static/stylesheet/dark-theme.min.css
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
body{background-color:#333;color:#eee}hr{color:#222}aside,hr{background-color:#222}aside{color:#fff}aside form.navbar-search input#tipue_search_input{background-color:#1a1a1a;color:#eee}main nav{border-bottom-color:#222}main .translations a,main nav a{border-color:#222}main article kbd{background-color:#080808;color:#eee}main article blockquote,main article pre{border-left:8px solid #ffffff33}main article :not(pre)>code{background-color:#080808;border-color:#000}main article div#tipue_search_content .tipue_search_result span.tipue_search_content_bold{color:#fff}main article section#isso-thread .auth-section p.input-wrapper input,main article section#isso-thread .notification-section input,main article section#isso-thread div.textarea{background:#1a1a1a;color:#eee}main article section#isso-thread>h4{color:#eee}main article section#isso-thread .isso-postbox>.form-wrapper .preview{background:repeating-linear-gradient(-45deg,#222,#222 10px,#1a1a1a 0,#1a1a1a 20px)}main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header .author{color:#eee}main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header .note,main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header .spacer,main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header a.parent,main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header a.permalink{color:#999}main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header .note:hover,main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header .spacer:hover,main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header a.parent:hover,main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-header a.permalink:hover{color:#eee}main article section#isso-thread .isso-comment>div.text-wrapper>.isso-comment-footer a:hover{text-shadow:#242121 0 0 1px!important}main footer{border-top-color:#222}div.related-posts{border-color:#222}div.admonition.attention,div.admonition.caution{color:#fbda7a;background-color:#4a3900}div.admonition.danger,div.admonition.error{color:#ebadb3;background-color:#28070a}div.admonition.hint{color:#7abaff;background-color:#001933}div.admonition.important,div.admonition.note{color:#a8eab7;background-color:#122b18}div.admonition.tip{color:#7abaff;background-color:#001933}div.admonition.warning{color:#fbda7a;background-color:#4a3900}
|
|
@ -288,6 +288,11 @@ main {
|
||||||
color: @footer-text-color;
|
color: @footer-text-color;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Flex credits and theme selection separator
|
||||||
|
span.footer-separator {
|
||||||
|
margin: 0 6px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@
|
||||||
@light-grey: #eeeeee;
|
@light-grey: #eeeeee;
|
||||||
@med-grey: #999999;
|
@med-grey: #999999;
|
||||||
@dark-grey: #242121;
|
@dark-grey: #242121;
|
||||||
|
@solid-dark-grey: #222222;
|
||||||
|
@very-dark-grey: #1a1a1a;
|
||||||
|
|
||||||
// Font family
|
// Font family
|
||||||
@sans: 'Source Sans Pro', 'Roboto', 'Open Sans', 'Liberation Sans', 'DejaVu Sans', 'Verdana', 'Helvetica', 'Arial', sans-serif;
|
@sans: 'Source Sans Pro', 'Roboto', 'Open Sans', 'Liberation Sans', 'DejaVu Sans', 'Verdana', 'Helvetica', 'Arial', sans-serif;
|
||||||
|
@ -13,7 +15,9 @@
|
||||||
|
|
||||||
// Body
|
// Body
|
||||||
@body-bg: @white;
|
@body-bg: @white;
|
||||||
|
@body-bg-dark-theme: @grey;
|
||||||
@text-color: @dark-grey;
|
@text-color: @dark-grey;
|
||||||
|
@text-color-dark-theme: @light-grey;
|
||||||
|
|
||||||
// Links
|
// Links
|
||||||
@link-color: @orange;
|
@link-color: @orange;
|
||||||
|
@ -21,6 +25,7 @@
|
||||||
|
|
||||||
// Sidebar (aside)
|
// Sidebar (aside)
|
||||||
@sidebar-bg: @grey;
|
@sidebar-bg: @grey;
|
||||||
|
@sidebar-bg-dark-theme: @solid-dark-grey;
|
||||||
@sidebar-text-color: @white;
|
@sidebar-text-color: @white;
|
||||||
@sidebar-link-color: @white;
|
@sidebar-link-color: @white;
|
||||||
@sidebar-link-hover-color: @light-grey;
|
@sidebar-link-hover-color: @light-grey;
|
||||||
|
@ -41,12 +46,15 @@
|
||||||
// Footer
|
// Footer
|
||||||
@footer-text-color: @med-grey;
|
@footer-text-color: @med-grey;
|
||||||
@footer-border-color: @light-grey;
|
@footer-border-color: @light-grey;
|
||||||
|
@footer-border-color-dark-theme: @solid-dark-grey;
|
||||||
|
|
||||||
// Relativer posts
|
// Relative posts
|
||||||
@rel-post-border-color: @light-grey;
|
@rel-post-border-color: @light-grey;
|
||||||
|
@rel-post-border-color-dark-theme: @solid-dark-grey;
|
||||||
|
|
||||||
// Nav
|
// Nav
|
||||||
@nav-border-color: @light-grey;
|
@nav-border-color: @light-grey;
|
||||||
|
@nav-border-color-dark-theme: @solid-dark-grey;
|
||||||
|
|
||||||
// Social buttons
|
// Social buttons
|
||||||
|
|
||||||
|
@ -77,37 +85,55 @@
|
||||||
|
|
||||||
// Admonition colors
|
// Admonition colors
|
||||||
@admonition-attention-color: #856404;
|
@admonition-attention-color: #856404;
|
||||||
|
@admonition-attention-color-dark-theme: #fbda7a;
|
||||||
@admonition-attention-bg-color: #fff3cd;
|
@admonition-attention-bg-color: #fff3cd;
|
||||||
|
@admonition-attention-bg-color-dark-theme: #4a3900;
|
||||||
@admonition-attention-icon: "\f071\00a0 ";
|
@admonition-attention-icon: "\f071\00a0 ";
|
||||||
|
|
||||||
@admonition-caution-color: @admonition-attention-color;
|
@admonition-caution-color: @admonition-attention-color;
|
||||||
|
@admonition-caution-color-dark-theme: @admonition-attention-color-dark-theme;
|
||||||
@admonition-caution-bg-color: @admonition-attention-bg-color;
|
@admonition-caution-bg-color: @admonition-attention-bg-color;
|
||||||
|
@admonition-caution-bg-color-dark-theme: @admonition-attention-bg-color-dark-theme;
|
||||||
@admonition-caution-icon: @admonition-attention-icon;
|
@admonition-caution-icon: @admonition-attention-icon;
|
||||||
|
|
||||||
@admonition-warning-color: @admonition-attention-color;
|
@admonition-warning-color: @admonition-attention-color;
|
||||||
|
@admonition-warning-color-dark-theme: @admonition-attention-color-dark-theme;
|
||||||
@admonition-warning-bg-color: @admonition-attention-bg-color;
|
@admonition-warning-bg-color: @admonition-attention-bg-color;
|
||||||
|
@admonition-warning-bg-color-dark-theme: @admonition-attention-bg-color-dark-theme;
|
||||||
@admonition-warning-icon: @admonition-attention-icon;
|
@admonition-warning-icon: @admonition-attention-icon;
|
||||||
|
|
||||||
@admonition-danger-color: #721c24;
|
@admonition-danger-color: #721c24;
|
||||||
|
@admonition-danger-color-dark-theme: #ebadb3;
|
||||||
@admonition-danger-bg-color: #f8d7da;
|
@admonition-danger-bg-color: #f8d7da;
|
||||||
|
@admonition-danger-bg-color-dark-theme: #28070a;
|
||||||
@admonition-danger-icon: "\f06a\00a0 ";
|
@admonition-danger-icon: "\f06a\00a0 ";
|
||||||
|
|
||||||
@admonition-error-color: @admonition-danger-color;
|
@admonition-error-color: @admonition-danger-color;
|
||||||
|
@admonition-error-color-dark-theme: @admonition-danger-color-dark-theme;
|
||||||
@admonition-error-bg-color: @admonition-danger-bg-color;
|
@admonition-error-bg-color: @admonition-danger-bg-color;
|
||||||
|
@admonition-error-bg-color-dark-theme: @admonition-danger-bg-color-dark-theme;
|
||||||
@admonition-error-icon: @admonition-danger-icon;
|
@admonition-error-icon: @admonition-danger-icon;
|
||||||
|
|
||||||
@admonition-hint-color: #004085 ;
|
@admonition-hint-color: #004085 ;
|
||||||
|
@admonition-hint-color-dark-theme: #7abaff;
|
||||||
@admonition-hint-bg-color: #cce5ff;
|
@admonition-hint-bg-color: #cce5ff;
|
||||||
|
@admonition-hint-bg-color-dark-theme: #001933;
|
||||||
@admonition-hint-icon: "\f0eb\00a0 ";
|
@admonition-hint-icon: "\f0eb\00a0 ";
|
||||||
|
|
||||||
@admonition-tip-color: @admonition-hint-color;
|
@admonition-tip-color: @admonition-hint-color;
|
||||||
|
@admonition-tip-color-dark-theme: @admonition-hint-color-dark-theme;
|
||||||
@admonition-tip-bg-color: @admonition-hint-bg-color;
|
@admonition-tip-bg-color: @admonition-hint-bg-color;
|
||||||
|
@admonition-tip-bg-color-dark-theme: @admonition-hint-bg-color-dark-theme;
|
||||||
@admonition-tip-icon: @admonition-hint-icon;
|
@admonition-tip-icon: @admonition-hint-icon;
|
||||||
|
|
||||||
@admonition-important-color: #155724;
|
@admonition-important-color: #155724;
|
||||||
|
@admonition-important-color-dark-theme: #a8eab7;
|
||||||
@admonition-important-bg-color: #d4edda;
|
@admonition-important-bg-color: #d4edda;
|
||||||
|
@admonition-important-bg-color-dark-theme: #122b18;
|
||||||
@admonition-important-icon: "\f05a\00a0 ";
|
@admonition-important-icon: "\f05a\00a0 ";
|
||||||
|
|
||||||
@admonition-note-color: @admonition-important-color;
|
@admonition-note-color: @admonition-important-color;
|
||||||
|
@admonition-note-color-dark-theme: @admonition-important-color-dark-theme;
|
||||||
@admonition-note-bg-color: @admonition-important-bg-color;
|
@admonition-note-bg-color: @admonition-important-bg-color;
|
||||||
|
@admonition-note-bg-color-dark-theme: @admonition-important-bg-color-dark-theme;
|
||||||
@admonition-note-icon: @admonition-important-icon;
|
@admonition-note-icon: @admonition-important-icon;
|
||||||
|
|
|
@ -28,6 +28,47 @@
|
||||||
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/stylesheet/style.min.css">
|
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/stylesheet/style.min.css">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{# DARK THEME STYLES #}
|
||||||
|
{% if THEME_COLOR == "dark" or THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE or THEME_COLOR_ENABLE_USER_OVERRIDE %}
|
||||||
|
<link id="dark-theme-style" rel="stylesheet" type="text/css"
|
||||||
|
{% if THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE %}
|
||||||
|
{% if THEME_COLOR|default("light") == "dark" %}
|
||||||
|
media="(prefers-color-scheme: dark), (prefers-color-scheme: no-preference)"
|
||||||
|
{% else %}
|
||||||
|
media="(prefers-color-scheme: dark)"
|
||||||
|
{% endif %}
|
||||||
|
{% elif THEME_COLOR_ENABLE_USER_OVERRIDE and THEME_COLOR|default("light") == "light" %}
|
||||||
|
disabled="disabled"
|
||||||
|
{% endif %}
|
||||||
|
href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/stylesheet/dark-theme.min.css">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{# PYGMENTS STYLES #}
|
||||||
|
{% if THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE or THEME_COLOR_ENABLE_USER_OVERRIDE or THEME_COLOR == "dark" %}
|
||||||
|
<link id="pygments-dark-theme" rel="stylesheet" type="text/css"
|
||||||
|
{% if THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE %}
|
||||||
|
{% if THEME_COLOR|default("light") == "dark" %}
|
||||||
|
media="(prefers-color-scheme: dark), (prefers-color-scheme: no-preference)"
|
||||||
|
{% else %}
|
||||||
|
media="(prefers-color-scheme: dark)"
|
||||||
|
{% endif %}
|
||||||
|
{% elif THEME_COLOR_ENABLE_USER_OVERRIDE and THEME_COLOR|default("light") == "light" %}
|
||||||
|
disabled="disabled"
|
||||||
|
{% endif %}
|
||||||
|
href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/pygments/{{ PYGMENTS_STYLE_DARK or PYGMENTS_STYLE or 'monokai' }}.min.css">
|
||||||
|
{% endif %}
|
||||||
|
{% if THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE or not THEME_COLOR or THEME_COLOR == "light" %}
|
||||||
|
<link id="pygments-light-theme" rel="stylesheet" type="text/css"
|
||||||
|
{% if THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE %}
|
||||||
|
{% if THEME_COLOR|default("light") == "dark" %}
|
||||||
|
media="(prefers-color-scheme: light)"
|
||||||
|
{% else %}
|
||||||
|
media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/pygments/{{ PYGMENTS_STYLE|default('github') }}.min.css">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if USE_TIPUE_SEARCH %}
|
{% if USE_TIPUE_SEARCH %}
|
||||||
<script src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/tipuesearch/jquery.min.js"></script>
|
<script src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/tipuesearch/jquery.min.js"></script>
|
||||||
<script src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/tipuesearch/tipuesearch.min.js"></script>
|
<script src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/tipuesearch/tipuesearch.min.js"></script>
|
||||||
|
@ -37,7 +78,6 @@
|
||||||
<link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/tipuesearch/tipuesearch.min.css" />
|
<link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/tipuesearch/tipuesearch.min.css" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/pygments/{{ PYGMENTS_STYLE|default('github') }}.min.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/font-awesome/css/fontawesome.css">
|
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/font-awesome/css/fontawesome.css">
|
||||||
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/font-awesome/css/brands.css">
|
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/font-awesome/css/brands.css">
|
||||||
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/font-awesome/css/solid.css">
|
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/font-awesome/css/solid.css">
|
||||||
|
@ -96,7 +136,11 @@
|
||||||
{% include "partial/gtm.html" %}
|
{% include "partial/gtm.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body
|
||||||
|
{% if not THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE %}
|
||||||
|
class="{{ THEME_COLOR|default('light') }}-theme"
|
||||||
|
{% endif %}
|
||||||
|
>
|
||||||
{% if GOOGLE_TAG_MANAGER %}
|
{% if GOOGLE_TAG_MANAGER %}
|
||||||
{% include "partial/gtm_noscript.html" %}
|
{% include "partial/gtm_noscript.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -1,3 +1,22 @@
|
||||||
<p>{{ _('Built with %(pelican_url)s using %(flex_url)s theme',
|
<p>
|
||||||
|
{{
|
||||||
|
_('Built with %(pelican_url)s using %(flex_url)s theme',
|
||||||
pelican_url='<a href="http://getpelican.com" target="_blank">Pelican</a>',
|
pelican_url='<a href="http://getpelican.com" target="_blank">Pelican</a>',
|
||||||
flex_url='<a href="http://bit.ly/flex-pelican" target="_blank">Flex</a>'|safe) }}</p>
|
flex_url='<a href="http://bit.ly/flex-pelican" target="_blank">Flex</a>'|safe)
|
||||||
|
}}
|
||||||
|
{% if THEME_COLOR_ENABLE_USER_OVERRIDE %}
|
||||||
|
<span class="footer-separator">|</span>
|
||||||
|
{{
|
||||||
|
_('Switch to the %(dark_url)s | %(light_url)s | %(browser_url)s theme',
|
||||||
|
dark_url='<a href="javascript:void(0)" onclick="theme.switch(`dark`)">dark</a>',
|
||||||
|
light_url='<a href="javascript:void(0)" onclick="theme.switch(`light`)">light</a>',
|
||||||
|
browser_url='<a href="javascript:void(0)" onclick="theme.switch(`browser`)">browser</a>'|safe)
|
||||||
|
}}
|
||||||
|
<script id="dark-theme-script"
|
||||||
|
src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/dark_theme/dark_theme.min.js"
|
||||||
|
data-enable-auto-detect-theme="{{ THEME_COLOR_AUTO_DETECT_BROWSER_PREFERENCE|default('false') }}"
|
||||||
|
data-default-theme="{{ THEME_COLOR|default('light') }}"
|
||||||
|
type="text/javascript">
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
|
|
@ -87,11 +87,16 @@ msgstr ""
|
||||||
msgid "Please enable JavaScript to view comments."
|
msgid "Please enable JavaScript to view comments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/partial/flex.html:1
|
#: templates/partial/flex.html:3
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Built with %(pelican_url)s using %(flex_url)s theme"
|
msgid "Built with %(pelican_url)s using %(flex_url)s theme"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: templates/partial/flex.html:10
|
||||||
|
#, python-format
|
||||||
|
msgid "Switch to the %(dark_url)s | %(light_url)s | %(browser_url)s theme"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: templates/partial/neighbors.html:5
|
#: templates/partial/neighbors.html:5
|
||||||
msgid "Previous Post"
|
msgid "Previous Post"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
Loading…
Reference in a new issue