diff --git a/.gitignore b/.gitignore index 8e19f4f..ae406c4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ node_modules/ -assets/built/ -dist/ +**/dist/ diff --git a/assets/css/main/article.css b/assets/css/common/article.css similarity index 100% rename from assets/css/main/article.css rename to assets/css/common/article.css diff --git a/assets/css/main/author.css b/assets/css/common/author.css similarity index 91% rename from assets/css/main/author.css rename to assets/css/common/author.css index da55e3a..7e198b9 100644 --- a/assets/css/main/author.css +++ b/assets/css/common/author.css @@ -29,7 +29,7 @@ margin-left: 0.8rem; } -@media (min-width: 768px) and (max-width: 991px) { +@media (min-width: 768px) and (max-width: 1321px) { .gh-author-meta { flex-direction: row; align-items: center; diff --git a/assets/css/main/gscan.css b/assets/css/common/gscan.css similarity index 100% rename from assets/css/main/gscan.css rename to assets/css/common/gscan.css diff --git a/assets/css/main/head.css b/assets/css/common/head.css similarity index 100% rename from assets/css/main/head.css rename to assets/css/common/head.css diff --git a/assets/css/main/pagehead.css b/assets/css/common/pagehead.css similarity index 88% rename from assets/css/main/pagehead.css rename to assets/css/common/pagehead.css index ef917c5..540ae96 100644 --- a/assets/css/main/pagehead.css +++ b/assets/css/common/pagehead.css @@ -27,13 +27,13 @@ } } -@media (min-width: 768px) and (max-width: 991px) { +@media (min-width: 768px) and (max-width: 1321px) { .gh-pagehead { margin-bottom: 8rem; } } -@media (max-width: 991px) { +@media (max-width: 1321px) { .gh-pagehead { position: static; grid-column: main-start / main-end; diff --git a/assets/css/common/root.css b/assets/css/common/root.css new file mode 100644 index 0000000..c98263b --- /dev/null +++ b/assets/css/common/root.css @@ -0,0 +1,7 @@ +:root { + --font-sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif; + --font-serif: Lora, Times, serif; + --color-primary-text: var(--color-black); + --color-darker-gray: var(--color-black); + --head-nav-gap: 3.2rem; +} diff --git a/assets/css/main/section.css b/assets/css/common/section.css similarity index 100% rename from assets/css/main/section.css rename to assets/css/common/section.css diff --git a/assets/css/main/tag.css b/assets/css/common/tag.css similarity index 100% rename from assets/css/main/tag.css rename to assets/css/common/tag.css diff --git a/assets/css/main.css b/assets/css/main.css deleted file mode 100644 index 59269bf..0000000 --- a/assets/css/main.css +++ /dev/null @@ -1,23 +0,0 @@ -@import "@tryghost/shared-theme-assets/assets/css/v1/screen.css"; - -@import "main/article.css"; -@import "main/author.css"; -@import "main/card.css"; -@import "main/gscan.css"; -@import "main/head.css"; -@import "main/navigation.css"; -@import "main/pagehead.css"; -@import "main/section.css"; -@import "main/tag.css"; - -@import "lib/prism.css"; -@import "lib/commento.css"; -@import "lib/tocbot.css"; - -:root { - --font-sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif; - --font-serif: Lora, Times, serif; - --color-primary-text: var(--color-black); - --color-darker-gray: var(--color-black); - --head-nav-gap: 3.2rem; -} diff --git a/assets/css/main/card.css b/assets/css/text/card.css similarity index 100% rename from assets/css/main/card.css rename to assets/css/text/card.css diff --git a/assets/css/text/main.css b/assets/css/text/main.css new file mode 100644 index 0000000..d145983 --- /dev/null +++ b/assets/css/text/main.css @@ -0,0 +1,17 @@ +@import "@tryghost/shared-theme-assets/assets/css/v1/screen.css"; + +@import "../common/article.css"; +@import "../common/author.css"; +@import "../common/gscan.css"; +@import "../common/head.css"; +@import "../common/pagehead.css"; +@import "../common/root.css"; +@import "../common/section.css"; +@import "../common/tag.css"; + +@import "../lib/prism.css"; +@import "../lib/commento.css"; +@import "../lib/tocbot.css"; + +@import "card.css"; +@import "navigation.css"; diff --git a/assets/css/main/navigation.css b/assets/css/text/navigation.css similarity index 100% rename from assets/css/main/navigation.css rename to assets/css/text/navigation.css diff --git a/assets/js/common/tabs.js b/assets/js/common/tabs.js new file mode 100644 index 0000000..2e8ba38 --- /dev/null +++ b/assets/js/common/tabs.js @@ -0,0 +1,7 @@ +function tabsInNewPage() { + var links = document.getElementsByTagName("article")[0].querySelectorAll('a'); + var a = new RegExp('/' + window.location.host + '/'); + links.forEach(link => !a.test(link.href) && link.setAttribute("target", "_blank")); +} + +tabsInNewPage(); diff --git a/assets/js/main.js b/assets/js/common/toc.js similarity index 70% rename from assets/js/main.js rename to assets/js/common/toc.js index da801db..835ac9c 100644 --- a/assets/js/main.js +++ b/assets/js/common/toc.js @@ -1,9 +1,3 @@ -function tabsInNewPage() { - var links = document.getElementsByTagName("article")[0].querySelectorAll('a'); - var a = new RegExp('/' + window.location.host + '/'); - links.forEach(link => !a.test(link.href) && link.setAttribute("target", "_blank")); -} - function tableOfContents() { var elements = document.getElementsByClassName('kg-toggle-card'); @@ -27,6 +21,4 @@ function tableOfContents() { } } -tabsInNewPage(); tableOfContents(); -pagination(true); diff --git a/assets/js/text/main.js b/assets/js/text/main.js new file mode 100644 index 0000000..b450d2c --- /dev/null +++ b/assets/js/text/main.js @@ -0,0 +1 @@ +pagination(true); diff --git a/default.hbs b/default.hbs index ebc2e0b..3c10669 100644 --- a/default.hbs +++ b/default.hbs @@ -7,7 +7,7 @@ {{meta_title}} {{> common/lib/header/fonts}} - + {{> common/lib/header/prism}} {{ghost_head}} @@ -31,7 +31,7 @@ {{> common/pswp}} {{> common/lib/footer/tocbot}} - + {{> common/lib/footer/prism}} {{ghost_foot}} diff --git a/gulpfile.js b/gulpfile.js index 70a8c74..ab9ec5a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,6 +1,5 @@ const { series, parallel, watch, src, dest } = require('gulp'); const pump = require('pump'); -const fs = require('fs'); const order = require('ordered-read-streams'); const livereload = require('gulp-livereload'); @@ -13,57 +12,52 @@ const easyimport = require('postcss-easy-import'); const autoprefixer = require('autoprefixer'); const cssnano = require('cssnano'); -function serve(done) { +const serve = (done) => { livereload.listen(); done(); } -function hbs(done) { +const hbs = (done) => { pump([ src(['*.hbs', 'partials/**/*.hbs']), livereload() ], done); } -function css(done) { +const css = (variant) => (done) => { pump([ - src('assets/css/main.css', { sourcemaps: true }), + src(`assets/css/${variant}/main.css`, { sourcemaps: true }), postcss([ easyimport, autoprefixer(), cssnano() ]), - dest('assets/built/', { sourcemaps: '.' }), + dest(`assets/dist/${variant}/`, { sourcemaps: '.' }), livereload() ], done); } -function getJsFiles(version) { - const jsFiles = [ - src(`node_modules/@tryghost/shared-theme-assets/assets/js/${version}/lib/**/*.js`), - src(`node_modules/@tryghost/shared-theme-assets/assets/js/${version}/main.js`), +const js = (variant) => (done) => { + const sources = [ + src(`node_modules/@tryghost/shared-theme-assets/assets/js/v1/lib/**/*.js`), + src(`node_modules/@tryghost/shared-theme-assets/assets/js/v1/main.js`), + src(`assets/js/common/*.js`), + src(`assets/js/${variant}/main.js`) ]; - if (fs.existsSync(`assets/js/lib`)) { - jsFiles.push(src(`assets/js/lib/*.js`)); - } - - jsFiles.push(src(`assets/js/main.js`)); - - return jsFiles; -} - -function js(done) { pump([ - order(getJsFiles('v1'), { sourcemaps: true }), - concat('main.min.js'), + order(sources, { sourcemaps: true }), + concat(`main.min.js`), uglify(), - dest('assets/built/', { sourcemaps: '.' }), + dest(`assets/dist/${variant}/`, { sourcemaps: '.' }), livereload() ], done); } -function zipper(done) { +const allCss = parallel(css('text')); +const allJs = parallel(js('text')); + +const zipper = (done) => { const filename = require('./package.json').name + '.zip'; pump([ @@ -83,10 +77,11 @@ function zipper(done) { } const hbsWatcher = () => watch(['*.hbs', 'partials/**/*.hbs'], hbs); -const cssWatcher = () => watch('assets/css/**/*.css', css); -const jsWatcher = () => watch('assets/js/**/*.js', js); +const cssWatcher = () => parallel(watch('assets/css/**/*.css', allCss)); +const jsWatcher = () => parallel(watch('assets/js/**/*.js', allJs)); + const watcher = parallel(hbsWatcher, cssWatcher, jsWatcher); -const build = series(css, js); +const build = series(allCss, allJs); exports.build = build; exports.zip = series(build, zipper);