diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d5f19d8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +package-lock.json diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..d4b72b3 --- /dev/null +++ b/gulpfile.js @@ -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)) +} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index e5eac06..c2edbe2 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -33,8 +33,7 @@ {{- partial "footer.html" . -}} - - + diff --git a/package.json b/package.json new file mode 100644 index 0000000..2248167 --- /dev/null +++ b/package.json @@ -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" + } +} diff --git a/static/_css/style.css b/src/css/_style.css similarity index 100% rename from static/_css/style.css rename to src/css/_style.css diff --git a/static/_css/chroma_github.css b/src/css/chroma_github.css similarity index 100% rename from static/_css/chroma_github.css rename to src/css/chroma_github.css diff --git a/static/default.css b/static/default.css new file mode 100644 index 0000000..6997f9c --- /dev/null +++ b/static/default.css @@ -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 +} \ No newline at end of file diff --git a/static/default.min.css b/static/default.min.css new file mode 100644 index 0000000..d1216cc --- /dev/null +++ b/static/default.min.css @@ -0,0 +1 @@ +@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} \ No newline at end of file diff --git a/theme.toml b/theme.toml deleted file mode 100644 index cd00354..0000000 --- a/theme.toml +++ /dev/null @@ -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 = "" diff --git a/theme.yml b/theme.yml new file mode 100644 index 0000000..5ff82fb --- /dev/null +++ b/theme.yml @@ -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/