setup gulp for css build; use minified css in theme

This commit is contained in:
Robert Kaussow 2018-10-12 18:19:17 +02:00
parent 8cd58648ec
commit cea76edf63
10 changed files with 675 additions and 17 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
node_modules
package-lock.json

19
gulpfile.js Normal file
View File

@ -0,0 +1,19 @@
var gulp = require('gulp');
var minifyCSS = require('gulp-csso');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var cleanCSS = require('gulp-clean-css');
var CSSDEST = 'static/'
gulp.task('default', defaultTask);
function defaultTask(done) {
return gulp.src('src/css/*.css')
.pipe(concat('default.css'))
.pipe(cleanCSS({format: 'beautify'}))
.pipe(gulp.dest(CSSDEST))
.pipe(cleanCSS())
.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest(CSSDEST))
}

View File

@ -33,8 +33,7 @@
{{- partial "footer.html" . -}}
</div>
<link rel="stylesheet" type="text/css" href="{{ "_css/style.css" | relURL }}" />
<link rel="stylesheet" type="text/css" href="{{ "_css/chroma_github.css" | relURL }}" />
<link rel="stylesheet" type="text/css" href="{{ "default.min.css" | relURL }}" />
<link rel="stylesheet" type="text/css" href="{{ "_tool/fontawesome/css/all.min.css" | relURL }}" />
</body>
</html>

23
package.json Normal file
View File

@ -0,0 +1,23 @@
{
"name": "geeklab",
"version": "1.0.0",
"description": "Light repsonsive blog theme for hugo",
"main": "gulpfile.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "xoxys@git.rknet.org:xoxys/theme-geeklab.git"
},
"keywords": [],
"author": "Robert Kaussow",
"license": "MIT",
"devDependencies": {
"gulp": "^4.0.0",
"gulp-clean-css": "^3.10.0",
"gulp-concat": "^2.6.1",
"gulp-csso": "^3.0.1",
"gulp-rename": "^1.4.0"
}
}

618
static/default.css Normal file
View File

@ -0,0 +1,618 @@
@font-face {
font-family: OpenSans;
src: url(/_font/OpenSans/OpenSans-Regular.eot);
src: url(/_font/OpenSans/OpenSans-Regular.eot?#iefix) format('embedded-opentype'),url(/_font/OpenSans/OpenSans-Regular.ttf) format('truetype')
}
@font-face {
font-family: OpenSansLight;
src: url(/_font/OpenSans/OpenSans-Light.eot);
src: url(/_font/OpenSans/OpenSans-Light.eot?#iefix) format('embedded-opentype'),url(/_font/OpenSans/OpenSans-Light.ttf) format('truetype')
}
@font-face {
font-family: CreteRound;
src: url(/_font/CreteRound/CreteRound-Regular.otf) format('truetype')
}
@font-face {
font-family: DroidSans_Mono;
src: url(/_font/DroidSansMono/DroidSansMono-webfont.eot);
src: url(/_font/DroidSansMono/DroidSansMono-webfont.eot?#iefix) format('embedded-opentype'),url(/_font/DroidSansMono/DroidSansMono-webfont.ttf) format('truetype')
}
body,
html {
margin: 0;
padding: 0;
height: 100%
}
html {
box-sizing: border-box;
font-family: OpenSans
}
*,
:after,
:before {
box-sizing: inherit
}
.table {
display: table
}
.table-cell {
display: table-cell
}
.floated {
float: left
}
.clear {
clear: both
}
.chroma code {
font-family: DroidSans_Mono;
font-size: .9em
}
.site-header {
background: #4186c9;
padding: 2em 0;
text-align: center;
color: #fff
}
.site-header__icon {
font-size: 2.5em;
background: #fff;
padding: 0 .25em;
border-radius: 50%;
color: #4186c9
}
.site-header__title {
font-size: 2.5em;
font-family: CreteRound;
font-weight: 400;
padding-left: .3em
}
.site-header__description {
display: block;
margin: .8em 0 .5em
}
.site-nav,
.site-nav__mobile {
background: #2f333e;
text-align: center;
color: #d9d9d9
}
.site-nav {
display: block
}
.site-nav__mobile {
display: none
}
.site-nav__button {
color: #d9d9d9;
text-decoration: none;
padding: .2em .5em;
border: 1px solid;
border-radius: 6px;
display: inline-block
}
.site-nav__button.is-active,
.site-nav__button:hover {
background: #3d4352;
cursor: pointer
}
.site-nav__list {
margin: 0;
padding: .8em 0
}
.site-nav__list li {
display: inline-block;
margin: 0 .3em
}
.site-wrapper {
position: relative;
min-height: 100%;
height: auto!important;
height: 100%
}
.site-content,
.site-footer__block {
margin: 0 auto;
width: 80%;
max-width: 980px
}
.post {
word-wrap: break-word;
border-top: 1px dashed #959595;
margin: 0 2em;
padding: 1.5em 0
}
.post:first-child {
border: 0
}
.post-header__link {
color: #000;
text-decoration: none
}
.post-header__link:hover {
text-decoration: underline
}
.post-header__title {
font-weight: 400
}
.post-content__link {
color: #0a539a;
text-decoration: underline
}
.post-content__link:hover {
background: #0a539a;
color: #fff;
text-decoration: none
}
.post-content__link.is-readmore:after {
content: ' \f30b';
font-family: 'Font Awesome 5 Free';
font-weight: 900
}
.post-content__link.is-readmore {
margin-bottom: 1.5em;
display: inline-block
}
.post-footer__link {
border: 1px solid #bfbfbf;
padding: 1px 4px;
margin: 2px 0;
border-radius: 4px;
text-decoration: none;
color: #505050;
text-transform: uppercase;
position: relative;
display: inline-block
}
.post-footer__icon {
font-size: 20px;
padding: 0 2px
}
.post-footer__link:hover {
background: #4ca0f4;
border-color: #3e82c7;
color: #fff;
text-decoration: none;
cursor: pointer
}
.post-footer__button {
color: #4a4a4a;
margin-right: 10px;
position: relative;
display: inline-block;
white-space: nowrap
}
.sticky {
font-weight: 700;
padding-right: 10px
}
.site-footer {
position: absolute;
bottom: -7.6em;
width: 100%;
background: #2f333e;
color: #fff;
padding: 1em 0
}
.site-footer__block {
line-height: 30px
}
.site-footer__link {
color: #ffa31e;
text-decoration: underline
}
.site-footer__link:hover {
background: #ffa31e;
color: #000;
text-decoration: none
}
.site-footer__button {
margin: 0 10px 0 0
}
#pagenav {
margin-top: 1em;
margin-bottom: 1em
}
#pagenav .left {
position: relative;
float: left
}
#pagenav .right {
position: relative;
float: right
}
#pagenav a,
#serendipity_comment input[type=submit] {
position: relative;
display: inline-block;
text-align: center;
border: 1px solid #bfbfbf;
text-decoration: none;
color: #505050;
padding: 10px 15px;
font-size: 15px;
text-transform: uppercase;
font-weight: 700;
background: #fff
}
#pagenav .fa-arrow-left {
padding-right: 5px
}
#pagenav .fa-arrow-right {
padding-left: 5px
}
@media all and (max-device-width:900px),
all and (max-width:900px) {
.container-centered {
margin: 0;
width: 100%
}
#banner-first-line,
#banner-last-line,
#footer {
padding-left: 1em;
padding-right: 1em
}
#entry-comment,
#pagenav,
.blog-entry {
margin-left: 1em;
margin-right: 1em
}
#serendipity_comment textarea,
.input-group,
.notice-important,
.notice-info,
.notice-success,
.notice-warning {
width: 100%
}
.notice-noarticle {
margin: 40px 1em
}
}
@media all and (max-device-width:710px),
all and (max-width:710px) {
.site-nav {
display: none
}
.site-nav__mobile {
display: block
}
.site-header__banner {
padding-left: 1em;
padding-right: 1em
}
#banner .quickmenu-icon.non-mobile {
display: none
}
#footer .quickmenu-icon {
display: block
}
#banner-last-line .table-cell {
display: inline-block;
width: 100%
}
#banner .right {
text-align: right;
margin-bottom: 20px
}
#serendipityQuickSearchTermField {
width: 100%
}
#banner-last-line nav ul {
text-align: center
}
#banner nav {
width: 100%
}
#footer div {
height: auto;
min-height: 30px
}
#serendipity_comment input[type=submit] {
padding: 10px 10px
}
#content {
padding-bottom: 230px
}
.serendipity_image_left {
float: none;
margin: 0 auto 1em auto
}
header.main nav {
background: #3e4352
}
header.main nav ul {
padding: 0
}
header.main nav ul li {
display: block;
margin: 0
}
header.main a {
color: #d9d9d9;
text-decoration: none;
padding: .6em 0;
width: 100%;
border: 0;
border-radius: 0;
display: inline-block
}
header.main a:hover {
background: #383c4a
}
}
.chroma {
background-color: #fff;
color: #555
}
.chroma code {
background-color: #f3f3f3;
display: block;
line-height: 2
}
.chroma .err {
color: #a61717;
background-color: #e3d2d2
}
.chroma .lntd {
vertical-align: top;
padding: 0;
margin: 0;
border: 0
}
.chroma .lntable {
border-spacing: 0;
padding: 0;
margin: 0;
border: 0;
width: 100%;
overflow: auto;
display: block
}
.chroma .lntable td:first-child {
padding-right: .5em
}
.chroma .lntable td:first-child code {
border-right: 1px solid #dcdfe3
}
.chroma .lntable td:nth-child(2) {
width: 100%;
margin-left: 2em
}
.chroma .hl {
display: block;
width: 100%;
background-color: #ffc
}
.chroma .lnt {
margin-right: .4em;
padding: 0 .4em 0 .4em
}
.chroma .ln {
margin-right: .4em;
padding: 0 .4em 0 .4em
}
.chroma .k {
color: #000;
font-weight: 700
}
.chroma .kc {
color: #000;
font-weight: 700
}
.chroma .kd {
color: #000;
font-weight: 700
}
.chroma .kn {
color: #000;
font-weight: 700
}
.chroma .kp {
color: #000;
font-weight: 700
}
.chroma .kr {
color: #000;
font-weight: 700
}
.chroma .kt {
color: #458;
font-weight: 700
}
.chroma .na {
color: teal
}
.chroma .nb {
color: #0086b3
}
.chroma .bp {
color: #999
}
.chroma .nc {
color: #458;
font-weight: 700
}
.chroma .no {
color: teal
}
.chroma .nd {
color: #3c5d5d;
font-weight: 700
}
.chroma .ni {
color: purple
}
.chroma .ne {
color: #900;
font-weight: 700
}
.chroma .nf {
color: #900;
font-weight: 700
}
.chroma .nl {
color: #900;
font-weight: 700
}
.chroma .nn {
color: #555
}
.chroma .nt {
color: navy
}
.chroma .nv {
color: teal
}
.chroma .vc {
color: teal
}
.chroma .vg {
color: teal
}
.chroma .vi {
color: teal
}
.chroma .s {
color: #d14
}
.chroma .sa {
color: #d14
}
.chroma .sb {
color: #d14
}
.chroma .sc {
color: #d14
}
.chroma .dl {
color: #d14
}
.chroma .sd {
color: #d14
}
.chroma .s2 {
color: #d14
}
.chroma .se {
color: #d14
}
.chroma .sh {
color: #d14
}
.chroma .si {
color: #d14
}
.chroma .sx {
color: #d14
}
.chroma .sr {
color: #009926
}
.chroma .s1 {
color: #d14
}
.chroma .ss {
color: #990073
}
.chroma .m {
color: #099
}
.chroma .mb {
color: #099
}
.chroma .mf {
color: #099
}
.chroma .mh {
color: #099
}
.chroma .mi {
color: #099
}
.chroma .il {
color: #099
}
.chroma .mo {
color: #099
}
.chroma .o {
color: #000;
font-weight: 700
}
.chroma .ow {
color: #000;
font-weight: 700
}
.chroma .c {
color: #998;
font-style: italic
}
.chroma .ch {
color: #998;
font-style: italic
}
.chroma .cm {
color: #998;
font-style: italic
}
.chroma .c1 {
color: #998;
font-style: italic
}
.chroma .cs {
color: #999;
font-weight: 700;
font-style: italic
}
.chroma .cp {
color: #999;
font-weight: 700;
font-style: italic
}
.chroma .cpf {
color: #999;
font-weight: 700;
font-style: italic
}
.chroma .gd {
color: #000;
background-color: #fdd
}
.chroma .ge {
color: #000;
font-style: italic
}
.chroma .gr {
color: #a00
}
.chroma .gh {
color: #999
}
.chroma .gi {
color: #000;
background-color: #dfd
}
.chroma .go {
color: #888
}
.chroma .gp {
color: #555
}
.chroma .gs {
font-weight: 700
}
.chroma .gu {
color: #aaa
}
.chroma .gt {
color: #a00
}
.chroma .gl {
text-decoration: underline
}
.chroma .w {
color: #bbb
}

1
static/default.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1,15 +0,0 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
name = "Subtree"
license = "MIT"
licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE"
description = ""
homepage = "http://example.com/"
tags = []
features = []
min_version = "0.41"
[author]
name = ""
homepage = ""

11
theme.yml Normal file
View File

@ -0,0 +1,11 @@
name: Geeklab
license: MIT
licenselink: https://git.rknet.org/xoxys/theme-geeklab/src/branch/master/LICENSE
description: "Light repsonsive blog theme for hugo"
homepage: https://git.rknet.org/xoxys/theme-geeklab
tags: []
features: []
min_version: "0.41"
author:
name: Robert Kaussow
homepage: https://geeklabor.de/