From d2fadf8ed660bb61ce4af61c1455d3d13f7ee062 Mon Sep 17 00:00:00 2001 From: Grzegorz Tomicki Date: Sat, 13 Feb 2021 23:09:26 +0100 Subject: [PATCH] feat: description added --- config/{webpack.base.js => webpack.common.js} | 58 +++++++++++++++++- config/webpack.dev.js | 18 +++++- config/webpack.prod.js | 32 ++++++++-- docs/about.html | 2 +- docs/contact.html | 2 +- .../bamboo-logo.4d42886c6b116c786dd6.svg | 1 - docs/index.html | 2 +- docs/service-worker.js | 2 +- ...c8a.css => about.bc2fa4358ed625b6231a.css} | 0 ...a.css => contact.bc2fa4358ed625b6231a.css} | 0 .../vendor/css/index.8fb1f424632e5ebf4c8a.css | 1 - .../vendor/css/index.bc2fa4358ed625b6231a.css | 1 + ...f4c8a.js => about.bc2fa4358ed625b6231a.js} | 0 ...c8a.js => contact.bc2fa4358ed625b6231a.js} | 0 ...f4c8a.js => index.bc2fa4358ed625b6231a.js} | 0 ...f4c8a.js => share.bc2fa4358ed625b6231a.js} | 0 package.json | 4 +- sources/fonts/Kodchasan.woff2 | Bin 0 -> 12496 bytes sources/images/static/bamboo-logo.svg | 1 - sources/images/static/bamboo.svg | 1 + sources/scss/index.scss | 16 ++++- sources/templates/includes/head.pug | 4 +- 22 files changed, 121 insertions(+), 24 deletions(-) rename config/{webpack.base.js => webpack.common.js} (56%) delete mode 100644 docs/images/static/bamboo-logo.4d42886c6b116c786dd6.svg rename docs/vendor/css/{about.8fb1f424632e5ebf4c8a.css => about.bc2fa4358ed625b6231a.css} (100%) rename docs/vendor/css/{contact.8fb1f424632e5ebf4c8a.css => contact.bc2fa4358ed625b6231a.css} (100%) delete mode 100644 docs/vendor/css/index.8fb1f424632e5ebf4c8a.css create mode 100644 docs/vendor/css/index.bc2fa4358ed625b6231a.css rename docs/vendor/js/{about.8fb1f424632e5ebf4c8a.js => about.bc2fa4358ed625b6231a.js} (100%) rename docs/vendor/js/{contact.8fb1f424632e5ebf4c8a.js => contact.bc2fa4358ed625b6231a.js} (100%) rename docs/vendor/js/{index.8fb1f424632e5ebf4c8a.js => index.bc2fa4358ed625b6231a.js} (100%) rename docs/vendor/js/{share.8fb1f424632e5ebf4c8a.js => share.bc2fa4358ed625b6231a.js} (100%) create mode 100644 sources/fonts/Kodchasan.woff2 delete mode 100644 sources/images/static/bamboo-logo.svg create mode 100644 sources/images/static/bamboo.svg diff --git a/config/webpack.base.js b/config/webpack.common.js similarity index 56% rename from config/webpack.base.js rename to config/webpack.common.js index 76015c7..4989693 100644 --- a/config/webpack.base.js +++ b/config/webpack.common.js @@ -35,8 +35,15 @@ const configurePugLoader = () => { const entryHtmlPlugins = config.map(({ site, share }) => { return new HtmlWebPackPlugin({ filename: `${site}.html`, + + // template for individual pages index, about and contact template: `./sources/templates/${site}.pug`, + + // json data drawn into pug templates DATA: require(`../sources/data/${site}.json`), + + // injecting js and css files into + // html as well as common share.js file chunks: [site, share], }) }) @@ -52,6 +59,7 @@ const configureOutput = () => { } module.exports = { + // input files entry: { index: { import: './sources/js/index.js', @@ -66,18 +74,62 @@ module.exports = { }, share: './sources/js/module/share.js' }, + // configuration of output files output: configureOutput(), module: { rules: [ - // Images: Copy image files to build folder + + // Images, fonts, e.t.c: Copy files to build folder // https://webpack.js.org/guides/asset-modules/#resource-assets + // { + // test: /\.svg/, + // type: 'asset/resource', + // generator: { + // // adding a hash to the file + // filename: 'images/static/[name].[hash][ext]', + // }, + // }, + + // OR ------------------------- + + // creates an inline svg + // { + // test: /\.svg/, + // type: 'asset/inline', + // }, + + // OR ------------------------- + { - test: /\.(woff(2)?|eot|ttf|otf|svg|)$/, - type: 'asset/resource', + test: /\.svg/, + type: "asset", generator: { + // adding a hash to the file + // and copy to specific folder filename: 'images/static/[name].[hash][ext]', }, + + // depending on the size of the file, + // if the file is too small, the file is inline, + // if the larger niche size, the file is only copied + parser: { + dataUrlCondition: { + maxSize: 30 * 1024, // 30 * 1024 + } + }, + }, + + // ---------------------------- + + // Other uses, fonts + // the above solution works not only on + // graphic files but also on fonts etc. + + { + test: /\.(woff(2)?|eot|ttf|otf)$/, + type: 'asset/inline', }, + configureBabelLoader(), configurePugLoader() ], diff --git a/config/webpack.dev.js b/config/webpack.dev.js index 044ee5f..0eb43d9 100644 --- a/config/webpack.dev.js +++ b/config/webpack.dev.js @@ -1,7 +1,9 @@ const path = require('path'); const webpack = require('webpack'); -const baseConfig = require('./webpack.base.js'); +const baseConfig = require('./webpack.common.js'); const { merge } = require('webpack-merge'); + +// common part for production and dev const { cssLoaders } = require('./util'); // Configure Dev Server @@ -13,17 +15,24 @@ const configureDevServer = () => { liveReload: true, hot: true, publicPath: '/', + stats: 'errors-only', inline: true, watchContentBase: true, }; }; module.exports = merge(baseConfig, { + // This option controls if and + // how source maps are generated devtool: 'eval-source-map', + + // Providing the mode configuration option tells + // webpack to use its built-in optimizations accordingly mode: 'development', + + // https://webpack.js.org/configuration/target/#root target: 'web', devServer: configureDevServer(), - devtool: 'eval-source-map', module: { rules: [ { @@ -37,6 +46,11 @@ module.exports = merge(baseConfig, { }, plugins: [ new webpack.HotModuleReplacementPlugin(), + + // we create a global variable that + // we use in pug and we can use in js + // https://webpack.js.org/plugins/define-plugin/ + // In pug - var DATA = self.htmlWebpackPlugin.options.DATA new webpack.DefinePlugin({ PRODUCTION: JSON.stringify(false) }), diff --git a/config/webpack.prod.js b/config/webpack.prod.js index 3932e43..bd06b05 100644 --- a/config/webpack.prod.js +++ b/config/webpack.prod.js @@ -1,15 +1,16 @@ const webpack = require('webpack'); -const path = require('path'); -const baseConfig = require('./webpack.base.js'); -const { merge } = require('webpack-merge'); +const baseConfig = require('./webpack.common.js'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); - const TerserPlugin = require('terser-webpack-plugin'); const WorkboxPlugin = require('workbox-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); + +const { merge } = require('webpack-merge'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); + +// common part for production and dev const { cssLoaders } = require('./util'); // configure Optimization @@ -28,7 +29,7 @@ const configureMiniCssExtract = () => { } } -// configure SW +// configure Service Worker const configureSW = () => { return { clientsClaim: true, @@ -49,6 +50,8 @@ const configureCopy = () => { { from: 'sources/images/', to: 'images/', + // blocking file copying by plugin webpack will + // do it for you and rename it with a hash globOptions: { ignore: ['**.svg'] } @@ -69,6 +72,8 @@ module.exports = merge(baseConfig, { loader: MiniCssExtractPlugin.loader, options: { // set path for images + // this setting is compatible with windows + // changes the path to the file, in our case svg publicPath: '../../', }, }, @@ -79,22 +84,39 @@ module.exports = merge(baseConfig, { }, optimization: configureOptimization(), plugins: [ + // when we run the production build then + // the docs folder is cleared new CleanWebpackPlugin({ dry: false, verbose: true }), + + // we extract scss files from js and create + // separate files for individual pages new MiniCssExtractPlugin( configureMiniCssExtract() ), + + // we create a service-worker for our data new WorkboxPlugin.GenerateSW( configureSW() ), + + // we copy all necessary graphic files + // and assets to build folder new CopyWebpackPlugin( configureCopy() ), + + // we create a global variable that + // we use in pug and we can use in js + // https://webpack.js.org/plugins/define-plugin/ + // In pug - var DATA = self.htmlWebpackPlugin.options.DATA new webpack.DefinePlugin({ PRODUCTION: JSON.stringify(true) }), + + // Visualization of the size of js files new BundleAnalyzerPlugin({ openAnalyzer: true }), diff --git a/docs/about.html b/docs/about.html index f73b688..2681d91 100644 --- a/docs/about.html +++ b/docs/about.html @@ -1 +1 @@ -title - about

ABOUT ME

\ No newline at end of file +title - about

ABOUT ME

\ No newline at end of file diff --git a/docs/contact.html b/docs/contact.html index af6c1eb..ec1b756 100644 --- a/docs/contact.html +++ b/docs/contact.html @@ -1 +1 @@ -title - contact

CONTACT

\ No newline at end of file +title - contact

CONTACT

\ No newline at end of file diff --git a/docs/images/static/bamboo-logo.4d42886c6b116c786dd6.svg b/docs/images/static/bamboo-logo.4d42886c6b116c786dd6.svg deleted file mode 100644 index 2847c8c..0000000 --- a/docs/images/static/bamboo-logo.4d42886c6b116c786dd6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 1dd1206..bed60ca 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -title - index

INDEX

\ No newline at end of file +title - index

INDEX

\ No newline at end of file diff --git a/docs/service-worker.js b/docs/service-worker.js index cb39219..e9cf0d6 100644 --- a/docs/service-worker.js +++ b/docs/service-worker.js @@ -1 +1 @@ -if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let s=Promise.resolve();return r[e]||(s=new Promise((async s=>{if("document"in self){const r=document.createElement("script");r.src=e,document.head.appendChild(r),r.onload=s}else importScripts(e),s()}))),s.then((()=>{if(!r[e])throw new Error(`Module ${e} didn’t register its module`);return r[e]}))},s=(s,r)=>{Promise.all(s.map(e)).then((e=>r(1===e.length?e[0]:e)))},r={require:Promise.resolve(s)};self.define=(s,i,n)=>{r[s]||(r[s]=Promise.resolve().then((()=>{let r={};const o={uri:location.origin+s.slice(1)};return Promise.all(i.map((s=>{switch(s){case"exports":return r;case"module":return o;default:return e(s)}}))).then((e=>{const s=n(...e);return r.default||(r.default=s),r}))})))}}define("./service-worker.js",["./workbox-5888e8f6"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"./about.html",revision:"8f69b8f23354f2dfed90c96ae6c9589b"},{url:"./assets/.htaccess",revision:"f1d9e82fd9425adb24017b5e3b47f3aa"},{url:"./assets/manifest.json",revision:"9563a1ddd515f7f76a5cd0396af9f15f"},{url:"./contact.html",revision:"9260976c75f371979367b9922d5527a2"},{url:"./images/about.jpg",revision:"09c860439e8df87b3b12b1946d0883cb"},{url:"./images/contact.jpg",revision:"24e7c3718888514c4c75ef92cc498c69"},{url:"./images/index.jpg",revision:"3411f1a849a69ca19ba713a498dbc29a"},{url:"./images/static/app_192x192.png",revision:"11418d2656ffb7e35bdd36a76df5dbae"},{url:"./images/static/app_512x512.png",revision:"b3a3368e2e9041af0ae6e54d1de6541e"},{url:"./images/static/bamboo-logo.4d42886c6b116c786dd6.svg",revision:null},{url:"./index.html",revision:"f2d4a3ff0d4d52c76f590a9f31af1afe"},{url:"./vendor/css/about.8fb1f424632e5ebf4c8a.css",revision:null},{url:"./vendor/css/contact.8fb1f424632e5ebf4c8a.css",revision:null},{url:"./vendor/css/index.8fb1f424632e5ebf4c8a.css",revision:null},{url:"./vendor/js/about.8fb1f424632e5ebf4c8a.js",revision:null},{url:"./vendor/js/contact.8fb1f424632e5ebf4c8a.js",revision:null},{url:"./vendor/js/index.8fb1f424632e5ebf4c8a.js",revision:null},{url:"./vendor/js/share.8fb1f424632e5ebf4c8a.js",revision:null}],{directoryIndex:"index.html"}),e.initialize({})})); +if(!self.define){const e=e=>{"require"!==e&&(e+=".js");let r=Promise.resolve();return s[e]||(r=new Promise((async r=>{if("document"in self){const s=document.createElement("script");s.src=e,document.head.appendChild(s),s.onload=r}else importScripts(e),r()}))),r.then((()=>{if(!s[e])throw new Error(`Module ${e} didn’t register its module`);return s[e]}))},r=(r,s)=>{Promise.all(r.map(e)).then((e=>s(1===e.length?e[0]:e)))},s={require:Promise.resolve(r)};self.define=(r,i,n)=>{s[r]||(s[r]=Promise.resolve().then((()=>{let s={};const a={uri:location.origin+r.slice(1)};return Promise.all(i.map((r=>{switch(r){case"exports":return s;case"module":return a;default:return e(r)}}))).then((e=>{const r=n(...e);return s.default||(s.default=r),s}))})))}}define("./service-worker.js",["./workbox-5888e8f6"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"./about.html",revision:"2c725478d32c12cf83fd0cff478bf6df"},{url:"./assets/.htaccess",revision:"f1d9e82fd9425adb24017b5e3b47f3aa"},{url:"./assets/manifest.json",revision:"9563a1ddd515f7f76a5cd0396af9f15f"},{url:"./contact.html",revision:"1afd21970eb2aa5de70e3dda06283063"},{url:"./images/about.jpg",revision:"09c860439e8df87b3b12b1946d0883cb"},{url:"./images/contact.jpg",revision:"24e7c3718888514c4c75ef92cc498c69"},{url:"./images/index.jpg",revision:"3411f1a849a69ca19ba713a498dbc29a"},{url:"./images/static/app_192x192.png",revision:"11418d2656ffb7e35bdd36a76df5dbae"},{url:"./images/static/app_512x512.png",revision:"b3a3368e2e9041af0ae6e54d1de6541e"},{url:"./index.html",revision:"49a8f7c2ece204babafbfcc9b9f66591"},{url:"./vendor/css/about.bc2fa4358ed625b6231a.css",revision:null},{url:"./vendor/css/contact.bc2fa4358ed625b6231a.css",revision:null},{url:"./vendor/css/index.bc2fa4358ed625b6231a.css",revision:null},{url:"./vendor/js/about.bc2fa4358ed625b6231a.js",revision:null},{url:"./vendor/js/contact.bc2fa4358ed625b6231a.js",revision:null},{url:"./vendor/js/index.bc2fa4358ed625b6231a.js",revision:null},{url:"./vendor/js/share.bc2fa4358ed625b6231a.js",revision:null}],{directoryIndex:"index.html"}),e.initialize({})})); diff --git a/docs/vendor/css/about.8fb1f424632e5ebf4c8a.css b/docs/vendor/css/about.bc2fa4358ed625b6231a.css similarity index 100% rename from docs/vendor/css/about.8fb1f424632e5ebf4c8a.css rename to docs/vendor/css/about.bc2fa4358ed625b6231a.css diff --git a/docs/vendor/css/contact.8fb1f424632e5ebf4c8a.css b/docs/vendor/css/contact.bc2fa4358ed625b6231a.css similarity index 100% rename from docs/vendor/css/contact.8fb1f424632e5ebf4c8a.css rename to docs/vendor/css/contact.bc2fa4358ed625b6231a.css diff --git a/docs/vendor/css/index.8fb1f424632e5ebf4c8a.css b/docs/vendor/css/index.8fb1f424632e5ebf4c8a.css deleted file mode 100644 index cb977a2..0000000 --- a/docs/vendor/css/index.8fb1f424632e5ebf4c8a.css +++ /dev/null @@ -1 +0,0 @@ -*,:after,:before{box-sizing:border-box}html{height:100%}body{display:flex;padding-top:50px;align-items:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;line-height:1.6;margin:0;flex-direction:column;background-color:#fff}a,body{color:#000}a{text-transform:uppercase;margin:2px 5px;text-decoration:none}a:hover{border-bottom:2px solid red}h2{padding:0 20px;text-align:center}.active{border-bottom:2px solid red}.responsive{width:100%;max-width:1000px;height:auto}h1{color:red}body{background:url(../../images/static/bamboo-logo.4d42886c6b116c786dd6.svg) repeat;background-size:5%} diff --git a/docs/vendor/css/index.bc2fa4358ed625b6231a.css b/docs/vendor/css/index.bc2fa4358ed625b6231a.css new file mode 100644 index 0000000..6efbf80 --- /dev/null +++ b/docs/vendor/css/index.bc2fa4358ed625b6231a.css @@ -0,0 +1 @@ +*,:after,:before{box-sizing:border-box}html{height:100%}body{display:flex;padding-top:50px;align-items:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px;line-height:1.6;margin:0;flex-direction:column;background-color:#fff}a,body{color:#000}a{text-transform:uppercase;margin:2px 5px;text-decoration:none}a:hover{border-bottom:2px solid red}h2{padding:0 20px;text-align:center}.active{border-bottom:2px solid red}.responsive{width:100%;max-width:1000px;height:auto}@font-face{font-family:Kodchasan;font-style:normal;font-weight:200;font-display:swap;src:url(data:font/woff2;base64,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) format("woff2")}body{background:url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgODI2MyA4MjY3IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGg4MjU5LjQ2djgyNjMuODhIMHoiLz48cGF0aCBkPSJNNjg3Ny42MiAyNjQzLjRzLTI4MS42NzUtMzguOTE3LTY3NS40MzMgNDAuMDMzYy0zOTMuNzU5IDc4Ljk1NC04OTkuNTk2IDI3NS43NzEtMTM0Ny45MyA3NDcuMjQ2bDIwMjMuMzYtNzg3LjI3OXoiIGZpbGw9IiM4ZmFhMmIiIGZpbGwtb3BhY2l0eT0iLjI1Ii8+PHBhdGggZD0iTTY4NzcuNjIgMjY0My40cy0xODEuMyAyMTkuMDU0LTUyNC44NzEgNDI2Ljk5MmMtMzQzLjU2NiAyMDcuOTQxLTg0OS40MDggNDA0Ljc1OC0xNDk4LjQ5IDM2MC4yODdsMjAyMy4zNi03ODcuMjc5eiIgZmlsbD0iI2EyYzYzZSIgZmlsbC1vcGFjaXR5PSIuMjUiLz48cGF0aCBkPSJNNTgzNy43OSAxMTc0LjI3cy0yNDEuNDEzIDE1MC4yNS00OTMuNTg4IDQ2Mi43OTVjLTI1Mi4xNzkgMzEyLjU0Mi01MTUuMTI1IDc4Ny4zODQtNTU4LjE5MSAxNDM2LjU2bDEwNTEuNzgtMTg5OS4zNnoiIGZpbGw9IiM4ZmFhMmIiIGZpbGwtb3BhY2l0eT0iLjI1Ii8+PHBhdGggZD0iTTU4MzcuNzkgMTE3NC4yN3MuNzUgMjg0LjM1LTEzMC4zNDYgNjYzLjk0MWMtMTMxLjA5NiAzNzkuNTk2LTM5NC4wNDIgODU0LjQzNC05MjEuNDMzIDEyMzUuNDJsMTA1MS43OC0xODk5LjM2eiIgZmlsbD0iI2EyYzYzZSIgZmlsbC1vcGFjaXR5PSIuMjUiLz48cGF0aCBkPSJNMzQzMy41IDcxOTMuNTRzLTE0LjY4NC0yODMuOTcxLTE2Ni4xOTYtNjU1Ljg4OGMtMTUxLjUwOC0zNzEuOTIxLTQzOS44NDYtODMxLjc4My05ODcuMTM3LTExODMuNThsMTE1My4zMyAxODM5LjQ2eiIgZmlsbD0iIzhmYWEyYiIgZmlsbC1vcGFjaXR5PSIuMjUiLz48cGF0aCBkPSJNMzQzMy41IDcxOTMuNTRzLTI0OS4yMTMtMTM2LjkyNS01MTcuOTg0LTQzNS4zMTdjLTI2OC43NzUtMjk4LjM5Ni01NTcuMTA4LTc1OC4yNjItNjM1LjM1LTE0MDQuMTVsMTE1My4zMyAxODM5LjQ2eiIgZmlsbD0iI2EyYzYzZSIgZmlsbC1vcGFjaXR5PSIuMjUiLz48ZyBmaWxsLW9wYWNpdHk9Ii4yNSI+PHBhdGggZD0iTTQxMjguNzIgNDI0NS44OHYzMjk1LjM4aDE5MC4xNzFzMjMwLjU4NyAxOC44ODQgMjIzLjAxMi0yNTIuMjU0Yy03LjU3MS0yNzEuMTMzLTc5LjM4Ny0zMjguNTg3LTY1LjAyNS0xNDQ4Ljg4IDE0LjM2My0xMTIwLjI5IDY1LjAyNS0xMjkyLjY0IDY1LjAyNS0xMjkyLjY0czY0LjI0Mi0zMDEuNjEzLTE1MS4yLTMwMS42MTNINDEyOC43MnoiIGZpbGw9IiNhMmM2M2UiLz48cGF0aCBkPSJNNDEyOC43MiA0MjQ1Ljg4djMyOTUuMzhoLTE5MC4xNzVzLTIzMC41ODggMTguODg0LTIyMy4wMTMtMjUyLjI1NGM3LjU3NS0yNzEuMTMzIDc5LjM4OC0zMjguNTg3IDY1LjAyNS0xNDQ4Ljg4LTE0LjM2Mi0xMTIwLjI5LTY1LjAyNS0xMjkyLjY0LTY1LjAyNS0xMjkyLjY0cy02NC4yNDEtMzAxLjYxMyAxNTEuMi0zMDEuNjEzaDI2MS45ODh6IiBmaWxsPSIjOGZhYTJiIi8+PC9nPjxnIGZpbGwtb3BhY2l0eT0iLjI1Ij48cGF0aCBkPSJNNDEyOC43MiA3MjIuMzU4djMyOTUuMzhoMTkwLjE3MXMyMzAuNTg3IDE4Ljg4NyAyMjMuMDEyLTI1Mi4yNWMtNy41NzEtMjcxLjEzOC03OS4zODctMzI4LjU4OC02NS4wMjUtMTQ0OC44OCAxNC4zNjMtMTEyMC4yOSA2NS4wMjUtMTI5Mi42NCA2NS4wMjUtMTI5Mi42NHM2NC4yNDItMzAxLjYxNy0xNTEuMi0zMDEuNjE3SDQxMjguNzJ6IiBmaWxsPSIjYTJjNjNlIi8+PHBhdGggZD0iTTQxMjguNzIgNzIyLjM1OHYzMjk1LjM4aC0xOTAuMTc1cy0yMzAuNTg4IDE4Ljg4Ny0yMjMuMDEzLTI1Mi4yNWM3LjU3NS0yNzEuMTM4IDc5LjM4OC0zMjguNTg4IDY1LjAyNS0xNDQ4Ljg4LTE0LjM2Mi0xMTIwLjI5LTY1LjAyNS0xMjkyLjY0LTY1LjAyNS0xMjkyLjY0cy02NC4yNDEtMzAxLjYxNyAxNTEuMi0zMDEuNjE3aDI2MS45ODh6IiBmaWxsPSIjOGZhYTJiIi8+PC9nPjwvc3ZnPg==) repeat;background-size:5%;font-family:Kodchasan,sans-serif;font-weight:200}h1{color:red} diff --git a/docs/vendor/js/about.8fb1f424632e5ebf4c8a.js b/docs/vendor/js/about.bc2fa4358ed625b6231a.js similarity index 100% rename from docs/vendor/js/about.8fb1f424632e5ebf4c8a.js rename to docs/vendor/js/about.bc2fa4358ed625b6231a.js diff --git a/docs/vendor/js/contact.8fb1f424632e5ebf4c8a.js b/docs/vendor/js/contact.bc2fa4358ed625b6231a.js similarity index 100% rename from docs/vendor/js/contact.8fb1f424632e5ebf4c8a.js rename to docs/vendor/js/contact.bc2fa4358ed625b6231a.js diff --git a/docs/vendor/js/index.8fb1f424632e5ebf4c8a.js b/docs/vendor/js/index.bc2fa4358ed625b6231a.js similarity index 100% rename from docs/vendor/js/index.8fb1f424632e5ebf4c8a.js rename to docs/vendor/js/index.bc2fa4358ed625b6231a.js diff --git a/docs/vendor/js/share.8fb1f424632e5ebf4c8a.js b/docs/vendor/js/share.bc2fa4358ed625b6231a.js similarity index 100% rename from docs/vendor/js/share.8fb1f424632e5ebf4c8a.js rename to docs/vendor/js/share.bc2fa4358ed625b6231a.js diff --git a/package.json b/package.json index eb7aa89..aca8dbb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "new-site-webpack-build", - "version": "1.0.7", + "version": "1.0.8", "description": "webpack multiple entry and output", "license": "MIT", "keywords": [ @@ -59,4 +59,4 @@ "webpack-merge": "^5.7.3", "workbox-webpack-plugin": "^6.1.0" } -} +} \ No newline at end of file diff --git a/sources/fonts/Kodchasan.woff2 b/sources/fonts/Kodchasan.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7dc9c4e821597095bd36ff3294e5b750fca13410 GIT binary patch literal 12496 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 a)#LjX^ \ No newline at end of file diff --git a/sources/images/static/bamboo.svg b/sources/images/static/bamboo.svg new file mode 100644 index 0000000..02dcd75 --- /dev/null +++ b/sources/images/static/bamboo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sources/scss/index.scss b/sources/scss/index.scss index de9cfa9..1a0dc0b 100644 --- a/sources/scss/index.scss +++ b/sources/scss/index.scss @@ -1,8 +1,18 @@ -h1 { - color: $red; +@font-face { + font-family: 'Kodchasan'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url("../fonts/Kodchasan.woff2") format('woff2'); } body { - background: url("../images/static/bamboo-logo.svg") repeat; + background: url("../images/static/bamboo.svg") repeat; background-size: 5%; + font-family: 'Kodchasan', sans-serif; + font-weight: 200; +} + +h1 { + color: $red; } \ No newline at end of file diff --git a/sources/templates/includes/head.pug b/sources/templates/includes/head.pug index 8617ff1..a136f1f 100644 --- a/sources/templates/includes/head.pug +++ b/sources/templates/includes/head.pug @@ -11,5 +11,5 @@ mixin head(DATA) meta(name="apple-mobile-web-app-status-bar-style" content="#ffffff") meta(content="telephone=no", name="format-detection") title= DATA.head.title - link(rel="manifest",href="/assets/manifest.json") - link(rel="icon" type="image/x-icon" href="/favicon.ico") \ No newline at end of file + link(rel="manifest",href="./assets/manifest.json") + link(rel="icon" type="image/x-icon" href="./favicon.ico") \ No newline at end of file