From 20a83cfb4a9f7841944b62c914250d8938274585 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Jan 2020 11:54:12 +0400 Subject: [PATCH 1/8] Updated site styles Signed-off-by: Valentin Popov --- _scss/base/_main.scss | 1 - _scss/base/_sakura.scss | 4 +-- _scss/components/_avatar.scss | 9 ------- _scss/components/_core.scss | 38 +--------------------------- _scss/normalize/_main.scss | 30 +++++++++++----------- _scss/sakura/_main.scss | 13 +++++----- _scss/utilities/_textsizeadjust.scss | 7 ++--- 7 files changed, 29 insertions(+), 73 deletions(-) delete mode 100644 _scss/components/_avatar.scss diff --git a/_scss/base/_main.scss b/_scss/base/_main.scss index e617f45..8e9bc80 100644 --- a/_scss/base/_main.scss +++ b/_scss/base/_main.scss @@ -1,3 +1,2 @@ -@import 'components/avatar'; @import 'components/core'; @import 'components/header'; diff --git a/_scss/base/_sakura.scss b/_scss/base/_sakura.scss index cdc2fe4..0bcce6e 100644 --- a/_scss/base/_sakura.scss +++ b/_scss/base/_sakura.scss @@ -1,8 +1,8 @@ $color-bg-alt: rgba(0, 0, 0, .09); $color-bg: rgb(255, 255, 255); -$color-blossom:rgb(0, 51, 153); +$color-blossom: rgb(0, 51, 153); $color-fade: rgb(51, 102, 204); -$color-html:rgb(255, 255, 255); +$color-html: rgb(255, 255, 255); $color-text: rgb(0, 0, 0); $font-family-sans-serif: '-apple-system', BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Arial', sans-serif; diff --git a/_scss/components/_avatar.scss b/_scss/components/_avatar.scss deleted file mode 100644 index e4b133f..0000000 --- a/_scss/components/_avatar.scss +++ /dev/null @@ -1,9 +0,0 @@ -.avatar { - margin: auto; - max-width: 148px; - text-align: center; - - img { - border-radius: 10px; - } -} diff --git a/_scss/components/_core.scss b/_scss/components/_core.scss index f3a28f1..46740ac 100644 --- a/_scss/components/_core.scss +++ b/_scss/components/_core.scss @@ -4,47 +4,11 @@ *::after, *::before { @include text-size-adjust(100%); + box-sizing: border-box; } html { background-color: $color-html; - height: 100%; overflow-y: scroll; } - -body { - display: flex; - flex-direction: row; - min-height: 100%; -} - -.container { - flex: 75%; - padding-right: 16px; -} - -.sidebar { - border-left: 1px solid $color-bg-alt; - flex: 25%; - height: 100%; - padding-left: 16px; -} - -@media (max-width: 684px) { - body { - flex-direction: column; - } - - .container { - flex: 100%; - padding-right: 0; - } - - .sidebar { - border: 0; - display: none; - flex: 100%; - padding-left: 0; - } -} diff --git a/_scss/normalize/_main.scss b/_scss/normalize/_main.scss index 3931bbb..791ed81 100644 --- a/_scss/normalize/_main.scss +++ b/_scss/normalize/_main.scss @@ -93,24 +93,24 @@ select { } button, -[type="button"], -[type="reset"], -[type="submit"] { +[type='button'], +[type='reset'], +[type='submit'] { -webkit-appearance: button; } button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { border-style: none; padding: 0; } button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { +[type='button']:-moz-focusring, +[type='reset']:-moz-focusring, +[type='submit']:-moz-focusring { outline: 1px dotted ButtonText; } @@ -135,23 +135,23 @@ textarea { overflow: auto; } -[type="checkbox"], -[type="radio"] { +[type='checkbox'], +[type='radio'] { box-sizing: border-box; padding: 0; } -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { height: auto; } -[type="search"] { +[type='search'] { -webkit-appearance: textfield; outline-offset: -2px; } -[type="search"]::-webkit-search-decoration { +[type='search']::-webkit-search-decoration { -webkit-appearance: none; } diff --git a/_scss/sakura/_main.scss b/_scss/sakura/_main.scss index 8e15541..2f22dbc 100644 --- a/_scss/sakura/_main.scss +++ b/_scss/sakura/_main.scss @@ -26,7 +26,7 @@ body { } } -@mixin word-wrap() { +@mixin word-wrap { hyphens: auto; overflow-wrap: break-word; word-break: break-word; @@ -40,6 +40,7 @@ h4, h5, h6 { @include word-wrap; + font-weight: 700; line-height: 1.1; } @@ -126,7 +127,7 @@ code { white-space: pre-wrap; } -pre>code { +pre > code { background-color: transparent; padding: 0; white-space: pre; @@ -159,9 +160,9 @@ textarea { .button, button, -input[type="submit"], -input[type="reset"], -input[type="button"] { +input[type='submit'], +input[type='reset'], +input[type='button'] { background-color: $color-blossom; border: 1px solid $color-blossom; border-radius: 1px; @@ -206,7 +207,7 @@ input[type] { } } -input[type="checkbox"]:focus { +input[type='checkbox']:focus { outline: 1px dotted $color-blossom; } diff --git a/_scss/utilities/_textsizeadjust.scss b/_scss/utilities/_textsizeadjust.scss index 49edd0b..8a01d4d 100644 --- a/_scss/utilities/_textsizeadjust.scss +++ b/_scss/utilities/_textsizeadjust.scss @@ -1,13 +1,14 @@ // Text Size Adjust // -// The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property. +// The text-size-adjust CSS property controls the text inflation algorithm used +// on some smartphones and tablets. Other browsers will ignore this property. // // Values: none | auto | // Default: none // // https://drafts.csswg.org/css-size-adjust/#adjustment-control @mixin text-size-adjust($value: none) { + -moz-text-size-adjust: $value; + -ms-text-size-adjust: $value; -webkit-text-size-adjust: $value; - -moz-text-size-adjust: $value; - -ms-text-size-adjust: $value; } From 3e0efb5d500550ea2a5687f080582e200a495d25 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Jan 2020 12:17:24 +0400 Subject: [PATCH 2/8] Removed sidebar Signed-off-by: Valentin Popov --- _includes/aside.html | 41 ----------------------------------------- _layouts/page.html | 2 -- _layouts/post.html | 2 -- 3 files changed, 45 deletions(-) delete mode 100644 _includes/aside.html diff --git a/_includes/aside.html b/_includes/aside.html deleted file mode 100644 index 311b826..0000000 --- a/_includes/aside.html +++ /dev/null @@ -1,41 +0,0 @@ - diff --git a/_layouts/page.html b/_layouts/page.html index 56d1864..01d6fcd 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -9,5 +9,3 @@ layout: default {{ content }} - -{% include aside.html %} diff --git a/_layouts/post.html b/_layouts/post.html index e4aaa10..8270973 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -18,6 +18,4 @@ layout: default {{ content }} - - {% include disqus.html %} From b837e8c89e0c01aed0b6139f699c76d246411ac7 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Jan 2020 13:44:05 +0400 Subject: [PATCH 3/8] Updated theme Signed-off-by: Valentin Popov --- _scss/base/_fonts.scss | 9 + _scss/base/_highlight.scss | 20 +- _scss/base/_sakura.scss | 14 +- _scss/highlight/_main.scss | 209 ++---------------- _scss/sakura/_main.scss | 22 +- assets/css/styles.scss | 1 + assets/fonts/open-sans/license.txt | 201 +++++++++++++++++ assets/fonts/open-sans/open-sans-regular.ttf | Bin 0 -> 27156 bytes assets/fonts/open-sans/open-sans-regular.woff | Bin 0 -> 17248 bytes .../fonts/open-sans/open-sans-regular.woff2 | Bin 0 -> 13608 bytes 10 files changed, 246 insertions(+), 230 deletions(-) create mode 100644 _scss/base/_fonts.scss create mode 100644 assets/fonts/open-sans/license.txt create mode 100644 assets/fonts/open-sans/open-sans-regular.ttf create mode 100644 assets/fonts/open-sans/open-sans-regular.woff create mode 100644 assets/fonts/open-sans/open-sans-regular.woff2 diff --git a/_scss/base/_fonts.scss b/_scss/base/_fonts.scss new file mode 100644 index 0000000..ad6d38e --- /dev/null +++ b/_scss/base/_fonts.scss @@ -0,0 +1,9 @@ +@font-face { + font-display: swap; + font-family: 'Open Sans'; + font-style: normal; + font-weight: normal; + src: url('/assets/fonts/open-sans/open-sans-regular.ttf') format('truetype'), + url('/assets/fonts/open-sans/open-sans-regular.woff') format('woff'), + url('/assets/fonts/open-sans/open-sans-regular.woff2') format('woff2'); +} diff --git a/_scss/base/_highlight.scss b/_scss/base/_highlight.scss index d7754cf..c3cf783 100644 --- a/_scss/base/_highlight.scss +++ b/_scss/base/_highlight.scss @@ -1,20 +1,4 @@ -$color00: #000; -$color01: #000080; -$color02: #0000cf; -$color03: #00a000; -$color04: #204a87; -$color05: #3465a4; -$color06: #4e9a06; -$color07: #5c35cc; -$color08: #800080; -$color09: #8f5902; -$color10: #a40000; -$color11: #c4a000; -$color12: #c00; -$color13: #ce5c00; -$color14: #ef2929; -$color15: #f57900; -$color16: #f8f8f8; -$color17: #ffc; +$color00: rgb(255, 0, 0); +$color01: rgb(255, 255, 204); @import 'highlight/main'; diff --git a/_scss/base/_sakura.scss b/_scss/base/_sakura.scss index 0bcce6e..58b95fe 100644 --- a/_scss/base/_sakura.scss +++ b/_scss/base/_sakura.scss @@ -1,11 +1,11 @@ $color-bg-alt: rgba(0, 0, 0, .09); -$color-bg: rgb(255, 255, 255); -$color-blossom: rgb(0, 51, 153); -$color-fade: rgb(51, 102, 204); -$color-html: rgb(255, 255, 255); -$color-text: rgb(0, 0, 0); +$color-bg: rgb(250, 250, 250); +$color-blossom: rgb(0, 108, 160); +$color-fade: rgb(13, 78, 120); +$color-html: rgb(250, 250, 250); +$color-text: rgb(85, 85, 85); -$font-family-sans-serif: '-apple-system', BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Arial', sans-serif; -$font-size-base: 1.6rem; +$font-family-sans-serif: 'Open Sans', sans-serif; +$font-size-base: 1.6em; @import 'sakura/main'; diff --git a/_scss/highlight/_main.scss b/_scss/highlight/_main.scss index f5cdc72..5e999b9 100644 --- a/_scss/highlight/_main.scss +++ b/_scss/highlight/_main.scss @@ -1,310 +1,139 @@ .highlight { - .bp { - color: $color05; - } - .c { - color: $color09; font-style: italic; } .c1 { - color: $color09; font-style: italic; } .cm { - color: $color09; - font-style: italic; - } - - .cp { - color: $color09; font-style: italic; } .cs { - color: $color09; font-style: italic; } .err { - border: 1px solid $color14; - color: $color10; - } - - .g { - color: $color00; - } - - .gd { - color: $color10; + border: 1px solid $color00; } .ge { - color: $color00; font-style: italic; } .gh { - color: $color01; font-weight: bold; } - .gi { - color: $color03; - } - - .go { - color: $color00; - font-style: italic; - } - .gp { - color: $color09; - } - - .gr { - color: $color14; - } - - .gs { - color: $color00; font-weight: bold; } - .gt { - color: $color10; + .gs { font-weight: bold; } .gu { - color: $color08; font-weight: bold; } .hll { - background-color: $color17; - } - - .il { - color: $color02; - font-weight: bold; + background-color: $color01; } .k { - color: $color04; font-weight: bold; } .kc { - color: $color04; font-weight: bold; } .kd { - color: $color04; font-weight: bold; } .kn { - color: $color04; - font-weight: bold; - } - - .kp { - color: $color04; font-weight: bold; } .kr { - color: $color04; font-weight: bold; } - .kt { - color: $color04; - font-weight: bold; - } - - .l { - color: $color00; - } - - .ld { - color: $color00; - } - - .m { - color: $color02; - font-weight: bold; - } - - .mf { - color: $color02; - font-weight: bold; - } - - .mh { - color: $color02; - font-weight: bold; - } - - .mi { - color: $color02; - font-weight: bold; - } - - .mo { - color: $color02; - font-weight: bold; - } - - .n { - color: $color00; - } - - .na { - color: $color11; - } - - .nb { - color: $color04; - } - .nc { - color: $color00; - } - - .nd { - color: $color07; font-weight: bold; } .ne { - color: $color12; font-weight: bold; } - .nf { - color: $color00; - } - .ni { - color: $color13; - } - - .nl { - color: $color15; - } - - .nn { - color: $color00; - } - - .no { - color: $color00; - } - - .nt { - color: $color04; font-weight: bold; } - .nv { - color: $color00; + .nn { + font-weight: bold; } - .nx { - color: $color00; - } - - .o { - color: $color13; + .nt { font-weight: bold; } .ow { - color: $color04; font-weight: bold; } - .p { - color: $color00; - font-weight: bold; - } - - .py { - color: $color00; - } - .s { - color: $color06; + font-style: italic; } .s1 { - color: $color06; + font-style: italic; } .s2 { - color: $color06; + font-style: italic; } .sb { - color: $color06; + font-style: italic; } .sc { - color: $color06; + font-style: italic; } .sd { - color: $color09; font-style: italic; } .se { - color: $color06; + font-style: italic; + font-weight: bold; } .sh { - color: $color06; + font-style: italic; } .si { - color: $color06; + font-style: italic; + font-weight: bold; } .sr { - color: $color06; + font-style: italic; } .ss { - color: $color06; + font-style: italic; } .sx { - color: $color06; - } - - .vc { - color: $color00; - } - - .vg { - color: $color00; - } - - .vi { - color: $color00; - } - - .w { - color: $color16; - text-decoration: underline; - } - - .x { - color: $color00; + font-style: italic; } } diff --git a/_scss/sakura/_main.scss b/_scss/sakura/_main.scss index 2f22dbc..3f1b756 100644 --- a/_scss/sakura/_main.scss +++ b/_scss/sakura/_main.scss @@ -7,22 +7,16 @@ body { background-color: $color-bg; color: $color-text; font-size: $font-size-base; - line-height: 1.6em; + line-height: 1.4em; margin: auto; - max-width: 72em; - padding: 32px; + max-width: 64em; + padding: 4em; } @media (max-width: 684px) { body { font-size: $font-size-base * .85; - padding: 8px; - } -} - -@media (max-width: 382px) { - body { - font-size: $font-size-base * .75; + padding: 2em; } } @@ -81,13 +75,11 @@ hr { a { color: $color-blossom; - text-decoration: none; &:active, &:focus, &:hover { color: $color-fade; - text-decoration: none; } } @@ -170,7 +162,7 @@ input[type='button'] { color: $color-bg; cursor: pointer; display: inline-block; - padding: 5px 10px; + padding: 1em; text-align: center; text-decoration: none; white-space: nowrap; @@ -198,8 +190,8 @@ input[type] { box-shadow: none; box-sizing: border-box; color: $color-text; - margin-bottom: 10px; - padding: 6px 10px; + margin: .5em; + padding: 1em; &:focus { border: 1px solid $color-blossom; diff --git a/assets/css/styles.scss b/assets/css/styles.scss index 5de4ff2..8bba8f6 100644 --- a/assets/css/styles.scss +++ b/assets/css/styles.scss @@ -6,3 +6,4 @@ @import 'base/highlight'; @import 'base/sakura'; @import 'base/main'; +@import 'base/fonts'; diff --git a/assets/fonts/open-sans/license.txt b/assets/fonts/open-sans/license.txt new file mode 100644 index 0000000..989e2c5 --- /dev/null +++ b/assets/fonts/open-sans/license.txt @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/assets/fonts/open-sans/open-sans-regular.ttf b/assets/fonts/open-sans/open-sans-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5ca839344680e7d9fb6a86decfe41fe2f2cafc69 GIT binary patch literal 27156 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/open-sans/open-sans-regular.woff b/assets/fonts/open-sans/open-sans-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..699e5addade3bb175ee6141faa3bf658363baa38 GIT binary patch literal 17248 zcmYhCV|3@-*Y|(5ZCg`LZM#$3wr$&*+O}=mwx_n;KE3|ye(@yhyORCM-si+8ImvdF z6%_>l0e%J{Jpj^wQw!7|`+wv=>;E6bghfOF03g2~M)4y`AXOk8F*#YqA6EKf!~Rcb z0BA8qWx*fT_+#t-$Z2zE8%b7?o)G{5M*Tmgm&cnuW@xQ%_rsiiSm%#FV(rRUnxTsm zApiiv@WYgURF4AU7h+;(YW>5)006K-003s6uNuF|RNwI@7V6KB59I#|(bUS_BT~3Y@DMX=C$}HA`LjMC zKUz0umX5QsHT?18+WlF#pSpnTrYv`&to7Y~=6U4)FP0G47mmzE-`er{geCyozW|PgMbup2bpw_#tpy3 z2Zo1dL`SD31&43EPV8 zP(!FK4@OsC;aqN(wNzi=t<-m}IF*R?nC-G*UM`|@@_Ijr2h0@3-lJ8s@pS#SZwR3) zf%@@7@RzM&VQKJTVZVjhJ-(~;cs{@3q$a=F5b^7=S&`5YQrXYfzHL`g>naRC!;P@z z@Zw_SR-l5=V9_c!QagL^DAHℑuoO9Cts5)-AJ2#oTd01vRO2NMcl>em0*@wv%1@ zk|I$768sNjf-%PC(3%F6B=wL?JN+!;mZ&#Z-KBcd@06 zo@OC6a$md%7MVvtwku_eM@>($EQifXQNVfHU)oo$XCB3L(SJ~9PPyxMZ~`o%EISzX z+mA-MLlT2%g{_tgSowo%v8D^DB(zh0tn}n#B9_@Kla=!X6kZa@|&Q zLC98TjSJq%3-F*h{F?qVe{p3Dm3q3e66i=xuEtGW1P`gPn>9n$b&0{68FXm*A6R(9Zf7YANMMW@SrFiHM zBLxuZopR?k+o_bjjmp}^TtF9C9ttR<0;sEwlN7KibTyYb7 z`2Hj855uy*r4+^%R9ajFkPvNfnWRZ(JVQ+y%0|kgf*3l&AdQ1m>VNg6?}R^8L;ALB zVihXr7ls@%S5mYP0;BLg?6?_6TIi|l$?Bd-Zk(Q9$WEqF=uNwtKT3vuqovg&=})C@ zP8dHz`zSUdiyRgw zg;dki?tfvEFEXaXd_x73XN~JCB?&H)WIA6CHJ28f%E6lkkWucc*EL=8Oodf4WSgio z9D8RRn<5pckz1_^A9L0;>-RFzd};=#ZN*exw$Arxf{|Je|3)W_apD&4D+ufVP->S zL7U?iWHyeZKd@R#jH?3)472dmQC_@tHjadl>}!S<(xKFMHvJIFCO<2L#y1jmz}mr8 z+l5s`xk>p_#t1Fj9ON!_SWL$}bMC=beH3Bdt%`4Fs^0cU^CmuS&eu2`6tWgs`GrJx zWZ>U4!XYk|RG!OO0F5J>5-F9xSYej%&A{SW4RALLE|MT8zb7!Qf}U;`ZMP$$TCkDBf^Pp; z`U@=l!9)1ILm}&KNqH;>$PJd?^seL53W_uY;hYuI2-vDVe4zFb!>S>Cp!d-x_)7o> zY_}0SNGu1e*AYA5Idx!{*Adfe2p1e7bpiAx{b%V=>-AG;6)Dd;9?HilGviITfCgFG@_!f z6rv)*uXc`n-hC0lPac6kpCkf*yeqS1ju;0BbXx*H6^5QvcfuaSXeS}efVyO74e;4C}dc! zRXshhL6BOV0aaueA)!i8L|8x=w=h2{k~gn>I_!5^8=Ezf*LOkTrSw%6hvV{fCWoT% ztWMA%Wf?YP@MtDC(VKaymH^uxi*dSMuD@3I$Mi<;vC&0N6%E`p zW;v=OzT9hLrO0!@s)k8!*|>5Z*Za55htKKVHM8n}ZH?|AWqg0UAMVtAxEyMnTqMBx z4@H9DB*!f{fqMhV4jJB{a)-#|!JO)NV4Lo{+#KeauKsfMXNLzm&X=p_6DSD-{-aeH zftd$i%G}qhvg?H9=v`lFWI)f+sAD?y`2oc3U2W#!lG!9Ogqb-diVZG!FCHpKY;iOb z6-fpRUI!fnCpxZAR*Ng3S7|(8(wgB=WY2kT2a%AHu_qZir_723rkRybv4|vF;Z;8+ zr8usO_tZP08uL+m2Gbs@l@(fItIqnpecNz-!QpXGN9%a9Bzr1=H_3EreE zVr;*=Nn6ILxzt}^s_j~7o)*|(x7b<4MBq){ax-T0d;u~Baxf@XxYg^8GJe|wk>m@f+&$a=|!f+ zUrsGMe_Y^Hl`cdq1J-{khu+OlV<9(kqxeUI$xoAt@R@XR$X7K#7;>}{B4Zh- zBgh~Zh%_`Pua~?I7IPSmH-8b6Y}HyNk%(0zUJhAC;UU>-Q=?HMjyj78mfhH{m^#g* zWQpou;t@t&c6Q!MHtokl-nh5ZQ((=*V?6!92Df4G*fBzOLF4iI(RQ!JCg+gYujGX* zmm{KK5N}$6bk={OcpsOfh)J-}Xwf1Plp!-@@!~=xz!w_ChVoJDg`l1mC>>ltG{Z^N zelclqqigFnU~5Qy6=kW^coInd<0_F;toYA^A_dp&o+q)sgM-}mhrMlle0*ZQBYfSB z9(w^kQsW-9#09sSFL3vr!X6PmYW9bT*JgO#*9ESuw2-KLnlCrWNPj>C(${(wvD`mS zk&lvS3dvg8b6x9YO{t`GxUY(}^UlRU5NSqg9iXVpx;}r+G|^eDau*b?W}#p$FrxX188l zS$ihc1bY_kcJ>UN#GDx4q*kLb6wjv+WQ)(RtcBx$@eU1+#E?Q z^byj<=ztMsFd5Q6aX&X$#=pI|WQ>hE4s2_N1_2~weTgUbo?0@&9Xu2Zw05p0DV5dW zUO7{Rbb#dnl{g}gev)D5Q^?Z}{hxn4$k zDA+mA>(3qEH@s!qk`lX$OPr$~m5-VJc+C)yr5jmB@eV@9q2C#x(Il8Ozy`=IqJrxw z;=p@Pr3(UKVGBcjT@iC;N)Jy~6flabk#&F%Wl(!L=hpV}0H<^@&iT*)nH1UzV1gpr zBJGuqII$c5?nH>_qD%gLmRzn50oQ#$O>@eb9Sxu(zb`~ACS?NL+bq5C{844-BUy2A zaVfjPj;yKqR6Yi-1z~dg3bV#Ax{|dri`EIVMW2ekiaMA`n4{f}(Ek>r z_R|~JR-UTm+nwiY(&6%84~t(l!E^)oz!X5xRKJ7&h>3#SH9x5vt70=ArEhL8yO0T)J;QVb z8GdVZ`>tWV;cK@*xpLd**6pT0jJ^GG4Qp=0bG-;Uba=UjTDKLN0SS_&cjG&zm_ zA)&wu43NPQ4MWjsN2iWLy^zB}-9%2DNC%3Yf^x?4Mm+Dn-!LgN47^%4wW8Tb)6J1N zr7KCB&ac@2lBw}T7Q``Wfb#9NnxmY^0jdYaAcePKE+G{;Vy^cEM;BfFt8z*9fyDW% z5muHMWZ--Zw#L1LarQv>E->4sh*2}ztGOvPX zoGhcou`LQjJRQE#U&t?HCuP($iUi?7G%Dm6fq3R;eTNQiIvF+>?8A)00UuNNMTm3C zp`NIY_7Ii1l;%AMy007i5`>ny@7b9;6bc$mepf_nx*MZi4!2d;m#-@Cl!rWmS(pb< zp8b9Tvx+3#%vc%UUzKRYc=(gJ8t=#<0NW#iO0@h8jBZadF$Up40e?^l<5rB`mf(L- znAgLEoM^Frw+8ZxJrKDh`bddD@IXHK5NTzMWKr`I#1TVv#HG2p9`PUCm}|r%u#?v= z&$FR{o+pd{z>-VEK<>Qtp5>DiZjnovr*e?1P{JUm%TwEKp2*b5mW-GyAcup|WGFGa z+)fK_VkZIx>KnnI z&KelyLMJH~u3681i<#r@CyNu8a+5%cG6eReMXRL62WzuZ2SV^CuZ-?yz`%5s3ShKg zrz%zqjF>UVh#8U&M9c_*6rHsjAnEngx_@4s_lOz|AvOUOy(Ie8_-c1gnMKp+WPyy>oC`lI^BxI8fWp(}<`otY zD9~in^JE*l`?Yeyv9nYCO`Nq6PN&a#_wA5}-ijDlIeKmj7C{E=oDW-x7~HqJ$}Cox zMj@!;=tZ-M2VxT@!Zpc3tO18Sdlt?B-ie~)XZX8VcMrqz1Y5(i%;Es&I*UB8-?He8 zr0F4JZ%^K6w%`38{bsb^4j5?WP?Yv#4QjUy*% zse@lZJ1sn{l}m;+>BD;kGjq$%F-ZX0Ih*&5g8nLC(#OwPMJKAADZw_fxd2!Tv?C?i z1NHG(o71AJr1hU9Az0@Vm$j@cMS8ZxDU`LXjHRXr9MD)>9MbRUl%Phg-e&JM&*CtO zvs*ofnp=Xx^UA27yB@-OKgjf`?Ii*cl5LIyrHjK*0@kq3fC)N{=!KstDsI5mZ7_UL z`RbCINfrhYCBiOXd&D?HrC5BV_h0hD`Q*_@b+Jqsu{Z|wxM%IeJvI)~Hp~UVq&FpG z;uZ7E_ps*`Qo%?bL*h9d_<&dWL}Ns3bQk@3Ju z6{^F6s8#BByw7Rlh$8SBag;x)?==$>5hbOh9Vj~V`-NL34wspJF|ia{-@Lfx7m{_W z6hNRd$?mx)&Tf>Qf1WYbToE2+6=bJ<7C&cq1wQwP9jJ8Uz1&odsPb%jA4qCh#C811 zSTsGut75x`(j10JK~VlXGV+82d0q)RK|rrbXvZCT+ z9rJwgnQxWHRKnY+KiwUPfsoDdHe@>a85ndN_NmM~#otI40XYagJ}|GzQbWBzK9I>y`Q{RinAZ%`j8Yn{7AbsflpQjvfa~B9?|U_icj+ zyUN`PW0nrmWWc)DwE;pJ)SMg(HwhimZ)|tpzOo;SS4i2)NQ0VmwV#?;%Iv5WSuG?Vk zY$fek8mJJHf-4T}@p)uKPd-e!m%$G<9LtxnmK)1l!ch!Ay@*k-O7~uS>`Rzd49jD} z)YzwM?Qofp)daASbUeYtPJ)Dzzk=;SRqM-#@Adt1A)pQZG~lwQSIW<>=3wgiQEwSy zcn7nk_wdI8$Q_~`|XP)8&MUnFiG6vSh;kpf1LydN4n!ih6aiyrwXzz?|% zc8rlt0DprEsaR5a&;KYM;(-u^Fr6pl>x;H&qPYLcz*EQPgR{9BTs@qwg>20jMDoryAq2q6|K8=;%X6yCJXtkgQ=)1d(#@p9kzAZI=TCYvazkbjk zuhI3LA@xW^K4^HrM#5RCC5@WVx7?SJeZMPFO>F)?VPVT=ed={oXL&l=re z8$?o8AkybuPtYp_KTG$b1ee9_J^+q4X3mEyn>#h&81{jQN2e(W;cdvmX{Vbj#4o)x zR-k{0$AV7LKpiwvs%oq}EdIJZkqRq&dweLQ*Fm?~!nr27D8gXb^xKsvxnZ7ZHBQFA zQdnC8*}&G$6nI)LAp)D1=3oPl?w>=4K;$G{7jIh~J`3gFtTM%Po_wYH#(z#jsq|amA^m|oW!fbYWhhAcOI_P5DC$KKUK8Qz>w?n$$x~b2suq=iOq7se zfM*Y%HR%PaiKYjm%hO!D0)mjE!V@nM+skOaR2)p5BK!3*zC=GQvq!cunHe~}aWZX3Oi%-1I%7J=GJdqI^5W!aE_U`biHp=wx7ytp@#tbv-yLAiKa zZ-4ra9=i@$1;h zqNiAOBwqvVR!JJphZA;|Z}ef{;BVS*x_0j`S~jcKeB3)FCb4b)h7Pu@(?i>S(h=y5ky)wXO{@jPHmRi(HErSVx;oi(ao?jLnu*hp1IqRu0Tjf{?iiGg3dlp z>b(H%ay@U2g^v)~0}ksL3GcCa&-Z-0;+2Fap^YWuN2)0WrtZb6UtHZWYoWpx*=X7# zPtNwdmo^FGwmi+HP4OH$%^&ft4~7qz%XzDo!tc&#EZ>+OZW4;J>uZ%(>zYHSzVRSg zke~FnEZklNWvQdUyxjDL-bFDAzVuH0^XHWC`*`7Sz{y|&+p)UZ+~N}7!|R@;z^VNN zS5bQDixoZV#G@wwpKM_R&-=XZMyW0gzNkwQy7?&nc8>$?U`uLr#ksOO9_sw3TR$Ll zX(Bh#SGx>K!KFIE0u68<(d)wb$#XGiem#Hc)<@@&>eCtd50UFKmMw@r*z%TcJ-8~_ zZzNvdiCVL2sTaEZHqIW!IwTAV5aQH!f!oKdkx`ir*!3Y;b7(42$MC!kre&_U**cbr z^w!=!*~U-hx{ieCS{da#n|G;Xo(@}UkgURij2+1IXx5yz0B=`z<%@n-0y$m zcEWv%Q%#03pgHO{C%9w2Ajl=~X_t*k5fvA6yIy{5?XHHQ(-j=NIg>%d&$Cx(u7x`mRf-;q1E}tchWltmGH; zPH9G6Y6x}1uXI&~b~}}m=xMZY7SosuGfjCp?}v<7ltLlpneSUkzmOar&nFI=YR&tR zOt}@scNedx*Jcn3EbCYhU7ujG;?j<>fc{K;{9lnljwy~K*5Jiznc!K~PzQ+Ov_chl z^*lju-tf7qsrXhp?uK7S>obXgR3jGD#|t-_Q@2;9)z-borH-o63^a{r1Fn0nBbF=V zTdjGL%C~W_M=*o~zl76T+2(tq$6Pi$<};#q@vCg4jKXj)G&VSbEn|kv zOcN-@AKx`ynn8w?x&05pWeSi8g^_C-D{xGsHsF??#+d({n-S>iwLWZa>y8Bbe7iqq zB$Zg$-&Dx1C2N?hnXDhL4bk&NE1j*`{E{;epsdIC*@{*~7b}q(%4B5PI52(+z4CuZ z5JTqb)sz5Wj)eW`EwZ<_KVpZZFe#4oAWM7HzUiV$gj&4@(=g5#A37Ime=JbVj39z> znO%CoTZmuVbtYdp9fU`E1b))_mdX6GY`qB0IISbO^6%Zb+GjC{bM}IDW0%+^lX&T! z=B_3rg`6DmPdVT=2$twR1l5UArqtereYzqC!x7)u+T$sF{<@il+jB)osQ5Q-UhjjojMMjSY|!^T$b6N8g?pMJQ6&a|-=;rsF)iD-I7u=0 z1FqJ@F&P}RK5y=VKzy2yR)xrNe;E)mo$+#hxLJE_$XR9Vo)L0xnBGQ&n5vPSB~zhg z_v$`QN3TlhWWNt~kIeRb$f=4P`Mc@uH|GV(T*-DrgMu&8A**Gk~4U6G>aF&b}5ts!mrO7J!Qiz4%N9v zjYxQUkx>`&UFOy(&I9)nf+j;@ldeZwXXXiH9g=*^K8e$OWs1~ZXZ}++fw5D2Nw#?h z@+}R!j-c5QW<}ydW1}zdyzygtb7Ar=Zh&uZ>E$N1f1u0f#S<9omLuV zi6wG0L3RGr`{cTj1e_5cvsfo}BU_0vK}MYF^FT*mb~&4&J*e5)wE5x_!7gXyf*J^~ zA=gf<-g|KBZk^Tnx=#NI@h74xpY=EPWdDHDOxdOGh*D+61~MrhglZ7|-k6o5ss%6! zxPC~W*4Hjxbm{@MN+{@pX||5i%Jk5*!+Dq%OHipb(rc8?t)AU&XzXG(luQ=e%cZoy zJRiN|GgqNytIK{XD#5GTl9n-X2_AEbYYjttpVwR20Nd>4qL~T3@qSKMz(1fD-MsnA zIk?Q(@J;B9_Y5NS_z^}aqnL>3%7?(Pa#Bi~hmiueg16XLY1@HW*mG>lfI>|$Drl8T zTg%mvA`H{7i-&k`-fS;{L~ytm;8gDI56SZi8RW2V5m{a9-ldzMtIG42$>c1 zCq<+4f@bJfaG+RsGOpCXJ;FjEhht7oz@iK;M}%e@Rwt7%#BvFto_*~k9voAP4{|Dc zB3ma=_Ka0jbjZe|Oo5EN>vdNpl9&_AMOXk+Db&|wu}RQ}kG17ZR;*08R3IQo?{1w$ zm)_0(>Ow;QXk)RpEm1M|N*X0KCoFI&4yv0UC7n9!Qkpt^J-y3{0-b9?4R3(zs<3Bq zZjdl2)GQNo-M``1@ESj_XMZ=3$!gq?8E(T=+Sp?Y-^!MC(4SQ4`7x5^9mLj_! z@c3Yi&E0ag9g)Y5uj#ah>#!>78{b)U|E@HjRdRa&P!}+??8JW^Vth;l3#@9Rr9vke z>Q7N-7IQ{|R~Zhfx1m=^DcEKagE*vYdb*2)O2g;4v@>ig_g9?T(yM~+{`v}7qN1fd zucmU60PY6MY5i}tV!9a~bii_z!P~h>mqUEF0AJC_3C^68G(%YE+AYs2kW9Jl);cwY z@5|}PHN7@j$tgA`c5MH1*(L32sOPM_6CRHM-yY7>lpTx)4EIfd$-{1I@bwA|jT8h_ z-KU2HChjS0LyB2nz~u_g{_d5UVTio^Y6$s8<TUmSn{~%+;ewI48(i91m3G7T>Z1W;&_&iAG7p@O{6+?7j~m2@0t&zH+o()!lGEb6 zub2k2{5z^TrCf)2TFGAdL2pqw6xA5iY53_CI`V47n%-TTw~KtdantssQ^=!9efEZv z+k#&D%_~^uTT)MqRi4yXgih9J-n@8LDa?)rH?p_a`ZMBWyO<5yys z5Q6W98f7$-Vx<{@C^zT*GDeWrmchF|s902uehv@b%L(K7P<&w+gC{tqr|$?+@9)0v zI2xOOIg%;-%|rY#Y9d&@kQ7>?uX}PuHLw9@x&3~2^Vj~H<94CZ`g&Sd*fKfZ9PK=V zIYYVK;phoC%k*hrg4J1b+4aQlSvN|lF4Qiq?Q@#42?R)OfPK&f2HEWhHpKF`1}V84 zgKmt8H*XvUoieC{?4_gtwCZxeFXtLML}2HQvGn6?xW`ZdfnQ!;9N;$>ZrcvHW&~+0 z;5KqdmBOhV^d=o`j}6$;zXGaK!d567D~r=Wz4;A+|JeG%uP{sx*z)y6& z1%H>`u%UllosrR9HzQih!RVmUFp|dl^p)emEBo+JXf?jerC0Hv+LnyI%f{iJLA|$$ zgclEf@K+I64|I$UmY%aYzvB3TYk0X-&(ZjOLfge#bjsjz)>sk z=FOAs$h+-e1O#z4wUms!I7t|$*qI5O-DgR6nf=7=zxY?6V;N>hFTBE|OP7}Q2I)R% zrp+wkp^ahOLP5h02xG~|SS`JxXigRbDbBW)8GlLFB0?gr2CSm1gO5*$_&G(hlB!#| z`1L0A8BWfmK%cs|?;*U=U$oX0!>T8=0I$qNTkz*HNJoWmVvu4@J9hV;WCjT?$59IF@#C!@^A zB{y=wn%ebp^H&3V8}_(~<;wbn5Csb=+RfxKAS0JZ@!WVC6&qNrMQfp22U#=!^eQT1 zQH+~L@ugio4|xw`dK(XJsf3+$b#x6k*t_fVCeg59D=s zMJ9dO7$UsOd(t?UHQaV>g$Fg}E>k&VG>?n%aX!JMtB9a2E3EJqyY#?7*K5M)Jv81c zIy)t2*4yPorSRLIIsRQZ1X@ir5S2zs9KUirQ+i!iuFKHNtCMznyf%kR+I3-52mH1# zYyoq7#M}O9F8!dXk&v(**uQ;&9qBwvo;o#Cw;U`eYvO^SxG^8!oX{MycBZ zDl(wm>WYNq4IK^5ID)YlN84PB0&r4+vf}zYP}y}GqBsJ;)%$jIEb01FydZQ=z1a4K zKxrBbrvyOf#o8wodnXTzj&qHO*M8KD*^^Gf?b|KyQ7zF$+T;k#9-^7I|@%#idiJmchq1CL%jG@v!p% z(?s#-2{;(`n6DK0MbqAA-xugQ{Bf7(Qsu@6#swlQyG-8|oZogmDXHsWxF<$8w!jnw z=%O*mqGy=h$#}1wB@&}rvn9^WZ-2)Af#oREeB0HzFCX zKdVRhyh?$ARA{r%gS)-zg{s@yEaU9?kFexLr=})B2gq)`#J}_y3~Qie5fY zR>}(?ML>W12&0sYnz$Or{n^2iEs>ZakPS;LKd(j@l*X_3@9w=XjNl`fVaW5qMo+qJ zR=O;e@1)~p4S_Q`GBsejpVG;lEu%%D54XLaEL?P{+oQ)p{~%kAE;0odL-$$W4%x`; zI=shp0(Zub+zf-8eiN!i@`;;l4HB>>r*Mw2-i@lt{Q8y1(Xh_D+YOi_wW@%QFuB-#|oTO{`O97?RM>1J# z>G*U!`%4R&?}l(Mzu>B!k}IIh4bPiFIl~rg(p1EUk9s3Ds&XaKnY9*O@8Fx&K0zdF z6+4ZSk*`w#`bO_faypcQ+3(%hwBg#WZ+l`G0}n?LlT>`|q<4*dt?oD4cOY*{`<%ec zeV6eE4i;r5hz{vX)#m)w$~02LC8tl+>ZX~a&A`csXbjH#Xo2DAVYuSgZ}a}f)80#C zwrPosxf;sAB|4ymld$mfY?+6foB#BV*x^JJAUCQRJX%GI`9qu{%sWq#<~N!rJ+>Wz+py(xw{QzScty->dI$NCVpO z3l42}*yU4b=gNNx7ELaf7uU1R(l+Plu13Z`|MQG3gIWfx9m>eYnwsvUZm?qanoFIT zi-820AV^W*yxxlvNVNFA-*thMmxFIc`f9XT+*Y(s)vt_>&fca3Th%{p105P0A6^tZ zQtSGly(f3-tQ_G#c6r{!o~zbxq;%3H=pjD$b+LidYjrw+uW0cM;hc}*Wa#+bN3ZC3 z9`pz2$R4Cml;Bj?c!8`;sx&fP^de)KuY5#xMv-3WdKBCa5?z>#i0#BP*d$pGyF{Ud zy?Rs3GOcp>gG-R>tS42MoVV+{+~s0$$Irh&MKS$;(oYa%iy49UaN+jx8=Q^bx(RgC zQ{_Z1<0P%ks)J1)37igdqtD2a0o9+1%&b+F#m^JR;s1p4)MHD-NN1N#EyAbtyHx;e zF~{RE=)e=urzqVo)jbD^gG`kSCidHKfajCz5rs(g-T`zH-rd=fMw`by3z;DMHsn(IAG>Yg6K5u4EmVRpvCf>6~oqYDju|zJZ9~v@Pl8+Pl zbzqk!;K$05U3W|!^FFnCSZJsdF7@0;qX(%emQ1MbG)+p^3fiS&{1Eg3mUR?rgiE@}mB2>>mks@;H3 zfWD2Qm8b|g_#Korj1HIp$O&_bEdDkc=88rsRA2*OlxS#6>ig>SSJ)f@>m1^AJc_t; zU8(u6EcmmKhUyeJJArOR`f_)ho=?}551q4z>$s(TMZ&*7P}{pvdOm$%Wb1Pw^!ie` z)iO5HY){%$^=&;;^-d%UAd*? zd(@OCd9g>F^z${F2*RCjQz!IsMa8T30;fHtySU(7J&zqNcDO1=6$4I_*1hJtKIrRD zk1>RP&Y*YWuR4rp!cUCmasKtP!;x2bgc)L3SXc~_v^k&+PlVhcrB_bN2`$1eL$ zZ-jOSG|4M*dma4)_Ms)|gQ?mVq-Ot$vLV6RBkXi`lC#7ZeAN61GW;1KB*iX2trdUI zQJwnHK~jT6T*xXSE+j*+092zrrHt#dO z;s-!V$j}(i`N&pbE_)0gtyR+@B#}WRj)!h1v09GY(}vRdMDUVcz>DokC_KVi{Ea-a z%DuFkDiy%mlQD8V3M?o^AaFY@x`O_4A9m2lef&cS;b+74lFLDsG=+)%^HN(i0qT78 z8L*zjo4&HR3TN)YAQoS084^yN~cS zAqMeD^aY6mV@h}E<+p*^f*nSE#c5zH5TA>!ZAIBL*)G&|=asl;nERc)Qo#5p!ap_& z&Q}>-87BF8mMPNwMJU{O{3vbUp@FTqLKNqO7t+ETaf-3_JemXIe1@QRTW&x>DAedbfw~+HOe>oz_~_$~qm1Sd5qH``9(#n&hWN&j86a@0{zwRlqGr;+yO>-_}mM zvfvY5frjOP!~ce~z4p*_mt{k=eLkKAKkLTrP5U zzAL6_aGAcIRzTYF=vKoFPkc|%>LL`vR6lB{?FdvzFG0MvHwdi3t(%2^XD#!$g=5r= zpK}4X>TJBo*nQ>@h%fQ(YS)p2Oi;$5X_C>lE))2I9vtSQ%ru|N^S2N{>X!9)MQWJ` zpKm<6=U1xFuqIsZRXHC6wLS8%+kRmY_w-!Q-AAIM5sAOE1j$V?UEmfzhV0fwe*w$C zi!b<+cnwDAvj`jsG~q)%fsUF}3w}d1WR~;)B!B&v+XsY|ei3>Hs*Aw=2!Q%8r4axa zWBDEV-*jD;wCX+ma|tRR(%{F00s#L<|H~QsFL!YF2}y=X8l*t_ zZy1>AQyngB^rV z9W<&wB72LUjfK>=)>vgWkz{eyPe~$plR~?mE#o?&Jp*D>Xz+@T^9s4HaTNO4aM~6z zV`&WLb*zbHPynb7VT_!UF@0!fQdvF)99`{Rq8rdhms}Vtx88X`G=8BTk0bmIQG1qlgcK>mRtq@;7C}{Ry+P z__M#7H0HibCr;l$+o7>Yp=2?-hJCSEjz;i9wZo~y9{YWW?{^`b*o#gy8Ge|rct~;iVkGrh5gts&BYGPeiBc$G=vt2}ix~HH=r! z{&$*S{og18um*$yssNKf&_MJ+wm@UR;J_-twZKat>>!CC)1U;P#-N#?W1!by{9tBa zNnkx-Tj1#6!aoT=?GR89e;_g;Iv_3~(I8bJgCWZym!Kq|hM}RM1ECjT$YAzi>0mWr zb6^kPK;R7FD&S7w72!J&U=cJBauH4u(Gax}qY#G??~tgGq>wC;R*=z=DUlhF*^!-* zy^({FhmfaGAW-yCVo-8XMp4mF@leT7X;E2Fc~C`ArBP#1Q&4kIM^Qh~NYPZ$644gX zVbFEa_b^B>s4@I8W-u-=sWF)_Z7_#1pRjxonk{_BVl9xbczaMM`I^p z_h3Kc5a7t+MB+@~0^=&;w&333e&S)_vEcFGnc#)smEhIj&ESLJbKr~P`{7UH-w*%@ zW(ZaYb_iYwkqPk$ISEAx6$t$a;|cSKaESDYu866KU5MvNv`Fqr-bv+1^GT~oM@VP> zcP+O7A^_+B6#&@Jl`03&1GxSig?*TP00;ocEi+4LLI&qIYM1*BGJ>+Ts`uC#w8s7< zAv*0(j#(HYGBDIH74f9B-zY+iOm}W!{Rm3hE^FRwr8%=Ae8mKF)-!H@AY)zT)S6?j zd7jN>!%id)d6Y{(x`t@%gH7yy*(Vj74eVie2$GE3*+W#@ap?cXr- z6zjsz%rm`R-r(MjlY}1oYr@mdR!9bfCB4DQwBIf5LGx5jb7~a@pE-tFK2*Q0@4aD~ z2C!EAl=6`KwzWs~rt-OW!%Vx(%gHTeYmtMST~M$t8+v?N`n9+R_9jPQRW6R@OeBO3 zO`;Z8C{&eSt)F5wbl(Mz?we*!Cb5`UnRUWE*I!C{RbOAZM|x zM}oF7s!VUxeT*lW)fe%)`MjL=n}V24LUkyFHv8Qx>0K&VUfeHA`@;=GSvg)nS;*_5KGMv$9ad>v%~Q@RXTB3tcR-&vl~#{7+BWb7 z(g@?6 zQ?$=U<3HpRfc(EnxCkgp7$hq4Nb|*1NE|Y7GwAa4Nt804aa88n#s*iNL`m(A1kvn> z<7{RdTXWweh*#e@&dB$%%~dCj(>wB*w@x~%{%0=j%Bi7yj%CHA^JYgLuQJ;((KjcJ zJG!#jys~?HWqWyLe{N1XyY2mEBX9W8`*~x!U zJZ^E0)32!O@|=e{&p+_Jw>-~Uqh+&PKIRB}%@O}ShsyUHi~jRSX!=Ld`#YNSdkUsz z$2?~<-+46mUBUF~JI@*Ue|Gf$WU1{DOaJ_`?Gvun?!KkmHa`Nm>; zhx}6Q`A_@(g?AqLd?-vQZkA{2=jEN3CcC_`kkhglV}n6P;|;!;e>&G>Udb$a zqazd07@!tz=4@sewt->$yP}>>4cH2F5#bLK5F_^xSxG zL6Gs;%EpS_7E%%tkup}3oEw@n^(HzzI3Ri=>GZ;ris#N9TD-OSWBqHkY4>`4c=TpR R2H%i~iDAgut5MCs003F6uZjQw literal 0 HcmV?d00001 diff --git a/assets/fonts/open-sans/open-sans-regular.woff2 b/assets/fonts/open-sans/open-sans-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4359426ac9f6ee52b7c5ace09cea91b5d8f7a9ff GIT binary patch literal 13608 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 Date: Thu, 23 Jan 2020 19:41:44 +0400 Subject: [PATCH 4/8] Updated homepage Signed-off-by: Valentin Popov --- _data/aside_links.yml | 15 --------------- _data/contacts.yml | 7 +++++++ _data/links.yml | 11 +++++++++++ _includes/contacts.html | 19 +++++++++++++++++++ _includes/links.html | 19 +++++++++++++++++++ _includes/posts.html | 18 ++++++++++++++++++ _pages/index.html | 26 +++----------------------- 7 files changed, 77 insertions(+), 38 deletions(-) delete mode 100644 _data/aside_links.yml create mode 100644 _data/contacts.yml create mode 100644 _data/links.yml create mode 100644 _includes/contacts.html create mode 100644 _includes/links.html create mode 100644 _includes/posts.html diff --git a/_data/aside_links.yml b/_data/aside_links.yml deleted file mode 100644 index 43bcd9c..0000000 --- a/_data/aside_links.yml +++ /dev/null @@ -1,15 +0,0 @@ -- name: 'e-mail' - tag: 'info@valentineus.link' - url: 'mailto:info@valentineus.link' - -- name: 'telegram' - tag: '@valentineus' - url: 'https://t.me/valentineus' - -- name: 'github' - tag: '@valentineus' - url: 'https://github.com/valentineus' - -- name: 'pgp' - tag: 'A90A8EA3' - url: '/publickey.txt' diff --git a/_data/contacts.yml b/_data/contacts.yml new file mode 100644 index 0000000..479d0c8 --- /dev/null +++ b/_data/contacts.yml @@ -0,0 +1,7 @@ +- title: "info@valentineus.link" + description: "E-Mail" + url: "mailto:info@valentineus.link" + +- title: "@valentineus" + description: "Telegram" + url: "https://t.me/valentineus" diff --git a/_data/links.yml b/_data/links.yml new file mode 100644 index 0000000..23447af --- /dev/null +++ b/_data/links.yml @@ -0,0 +1,11 @@ +- title: "code.valentineus.link" + description: "Code repositories" + url: "https://code.valentineus.link" + +- title: "@valentineus" + description: "GitHub" + url: "https://github.com/valentineus" + +- title: "@valyaha" + description: "Twitter" + url: "https://twitter.com/valyaha" diff --git a/_includes/contacts.html b/_includes/contacts.html new file mode 100644 index 0000000..06df563 --- /dev/null +++ b/_includes/contacts.html @@ -0,0 +1,19 @@ +

Contacts

+ +
    + {% for contact in site.data.contacts %} +
  • + {% assign description = contact.description | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} + {% assign title = contact.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} + {% assign url = contact.url | strip_newlines | strip_html | strip | normalize_whitespace | relative_url | uri_escape %} + + {{ title }} + + {{ description }} +
  • + {% endfor %} +
+ +{% assign description = "" %} +{% assign title = "" %} +{% assign url = "" %} diff --git a/_includes/links.html b/_includes/links.html new file mode 100644 index 0000000..d301161 --- /dev/null +++ b/_includes/links.html @@ -0,0 +1,19 @@ +

Related links

+ +
    + {% for link in site.data.links %} +
  • + {% assign description = link.description | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} + {% assign title = link.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} + {% assign url = link.url | strip_newlines | strip_html | strip | normalize_whitespace | relative_url | uri_escape %} + + {{ title }} + + {{ description }} +
  • + {% endfor %} +
+ +{% assign description = "" %} +{% assign title = "" %} +{% assign url = "" %} diff --git a/_includes/posts.html b/_includes/posts.html new file mode 100644 index 0000000..6dc0d2b --- /dev/null +++ b/_includes/posts.html @@ -0,0 +1,18 @@ +

Posts

+ +
    + {% for post in site.posts %} +
  • + {% assign date = post.date | date: '%d-%m-%Y' | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} + {% assign title = post.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} + {% assign url = post.url | relative_url | uri_escape %} + + {{ title }} + () +
  • + {% endfor %} +
+ +{% assign date = "" %} +{% assign title = "" %} +{% assign url = "" %} diff --git a/_pages/index.html b/_pages/index.html index 2c09cfb..71414c7 100644 --- a/_pages/index.html +++ b/_pages/index.html @@ -4,26 +4,6 @@ permalink: "index.html" title: "" --- -{% assign postsByYear = site.posts | group_by_exp: "post", "post.date | date: '%Y'" %} - -{% for year in postsByYear %} -
-

{{ year.name | strip_newlines | strip_html | strip | normalize_whitespace | smartify | slugify }}

- - -
-{% endfor %} +{% include contacts.html %} +{% include links.html %} +{% include posts.html %} From a4251a91b44c44bb9f3586f206b8dabaf03f3fdd Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Jan 2020 19:55:11 +0400 Subject: [PATCH 5/8] Updated the header on the posts page Signed-off-by: Valentin Popov --- _layouts/post.html | 29 +++++++++++++++++------------ _scss/base/_main.scss | 1 - _scss/components/_header.scss | 9 --------- 3 files changed, 17 insertions(+), 22 deletions(-) delete mode 100644 _scss/components/_header.scss diff --git a/_layouts/post.html b/_layouts/post.html index 8270973..9e0a766 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -2,20 +2,25 @@ layout: default --- -
-
-

{{ page.title | strip_newlines | strip_html| strip | normalize_whitespace | smartify | xml_escape }}

+{% assign date = page.date | date: '%Y-%m-%d' | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} +{% assign title = site.title | strip_newlines | strip_html| strip | normalize_whitespace | smartify | xml_escape %} - - Published on - {{ site.title | strip_newlines | strip_html| strip | normalize_whitespace | smartify | xml_escape }} - | - Permalink - - + + +{% assign date = "" %} +{% assign title = "" %} diff --git a/_scss/base/_main.scss b/_scss/base/_main.scss index 8e9bc80..810b2d4 100644 --- a/_scss/base/_main.scss +++ b/_scss/base/_main.scss @@ -1,2 +1 @@ @import 'components/core'; -@import 'components/header'; diff --git a/_scss/components/_header.scss b/_scss/components/_header.scss deleted file mode 100644 index c5b95b8..0000000 --- a/_scss/components/_header.scss +++ /dev/null @@ -1,9 +0,0 @@ -header { - border-bottom: 1px solid $color-bg-alt; -} - -article { - header { - padding-bottom: 16px; - } -} From 8184c9403408ec66c19cdee80d55d9db7ecf87c7 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Jan 2020 19:55:21 +0400 Subject: [PATCH 6/8] Updated config file Signed-off-by: Valentin Popov --- _config.yml | 58 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/_config.yml b/_config.yml index 7d66f5b..c4e0be3 100644 --- a/_config.yml +++ b/_config.yml @@ -1,69 +1,67 @@ # Permalinks -permalink: '/:year/:month/:day/:title' +permalink: "/:year/:month/:day/:title" # Time Zone -timezone: 'Europe/Samara' +timezone: "Europe/Samara" # Catalogs include: - - '_pages' + - "_pages" # Parsers -highlighter: rouge -markdown: kramdown +highlighter: "rouge" +markdown: "kramdown" # Markdown kramdown: - input: GFM + input: "GFM" hard_wrap: false - syntax_highlighter: rouge + syntax_highlighter: "rouge" # SASS/SCSS sass: - sass_dir: '_scss' - style: ':compressed' + sass_dir: "_scss" + style: ":compressed" # AutoPrefixer autoprefixer: browsers: - - '> 1%' - - 'last 10 versions' + - "> 1%" + - "last 10 versions" # Compress HTML compress_html: blanklines: false - clippings: all - comments: [''] + clippings: "all" + comments: [""] endings: [] profile: false startings: [] # Website address -url: 'https://valentineus.link' -baseurl: '' +url: "https://valentineus.link" +baseurl: "" # Site description -title: 'Personal blog' -description: 'Full-Stack Web Developer.' -avatar: 'https://www.gravatar.com/avatar/989fb5288ac482414a6d13acc329cc38?s=148' -repos: 'https://github.com/valentineus/valentineus.github.io' -rss: '/atom.xml' -lang: 'ru' +title: "My homepage" +description: "I'm Full-Stack Web Developer" +rss: "/atom.xml" +lang: "ru" # About the author author: - email: 'info@valentineus.link' - name: 'Valentin Popov' - url: 'https://valentineus.link' + email: "info@valentineus.link" + name: "Valentin Popov" + url: "https://valentineus.link" # Plugins plugins: - - 'octopress-autoprefixer' + - "octopress-autoprefixer" # Exceptions exclude: - - '.*' - - 'Gemfile' - - 'Gemfile.lock' - - 'LICENSE.txt' - - 'README.md' + - ".*" + - "Gemfile" + - "Gemfile.lock" + - "LICENSE.txt" + - "README.md" From 28aec1dfdd90b7ffdd11321895ac37c0c2ab6fc6 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Jan 2020 20:08:52 +0400 Subject: [PATCH 7/8] Deleted variable declaration Signed-off-by: Valentin Popov --- _includes/contacts.html | 12 ++---------- _includes/head.html | 16 ++++++---------- _includes/links.html | 12 ++---------- _includes/posts.html | 12 ++---------- _layouts/page.html | 2 +- _layouts/post.html | 12 +++--------- 6 files changed, 16 insertions(+), 50 deletions(-) diff --git a/_includes/contacts.html b/_includes/contacts.html index 06df563..1389c30 100644 --- a/_includes/contacts.html +++ b/_includes/contacts.html @@ -3,17 +3,9 @@
    {% for contact in site.data.contacts %}
  • - {% assign description = contact.description | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} - {% assign title = contact.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} - {% assign url = contact.url | strip_newlines | strip_html | strip | normalize_whitespace | relative_url | uri_escape %} - - {{ title }} + {{ contact.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }} - {{ description }} + {{ contact.description | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }}
  • {% endfor %}
- -{% assign description = "" %} -{% assign title = "" %} -{% assign url = "" %} diff --git a/_includes/head.html b/_includes/head.html index 9078aad..aa6fb4f 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -1,6 +1,3 @@ -{% assign description = page.description | default: site.description | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} -{% assign title = page.title | default: site.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} - @@ -11,21 +8,20 @@ {% for tag in site.data.meta_tags %} - + {% endfor %} - - + + - - - {{ title }} + + + {{ page.title | default: site.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }} diff --git a/_includes/links.html b/_includes/links.html index d301161..e7a2801 100644 --- a/_includes/links.html +++ b/_includes/links.html @@ -3,17 +3,9 @@
    {% for link in site.data.links %}
  • - {% assign description = link.description | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} - {% assign title = link.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} - {% assign url = link.url | strip_newlines | strip_html | strip | normalize_whitespace | relative_url | uri_escape %} - - {{ title }} + {{ link.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }} - {{ description }} + {{ link.description | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }}
  • {% endfor %}
- -{% assign description = "" %} -{% assign title = "" %} -{% assign url = "" %} diff --git a/_includes/posts.html b/_includes/posts.html index 6dc0d2b..fee0c31 100644 --- a/_includes/posts.html +++ b/_includes/posts.html @@ -3,16 +3,8 @@
    {% for post in site.posts %}
  • - {% assign date = post.date | date: '%d-%m-%Y' | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} - {% assign title = post.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} - {% assign url = post.url | relative_url | uri_escape %} - - {{ title }} - () + {{ post.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }} + ()
  • {% endfor %}
- -{% assign date = "" %} -{% assign title = "" %} -{% assign url = "" %} diff --git a/_layouts/page.html b/_layouts/page.html index 01d6fcd..28cdb0f 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -4,7 +4,7 @@ layout: default
-

{{ page.title | default: site.title | strip_newlines | strip_html| strip | normalize_whitespace | smartify | xml_escape }}

+

{{ page.title | default: site.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }}

{{ content }} diff --git a/_layouts/post.html b/_layouts/post.html index 9e0a766..7731828 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -2,25 +2,19 @@ layout: default --- -{% assign date = page.date | date: '%Y-%m-%d' | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape %} -{% assign title = site.title | strip_newlines | strip_html| strip | normalize_whitespace | smartify | xml_escape %} - - -{% assign date = "" %} -{% assign title = "" %} From 11c402a2938935111fc6c82f53b720eb71e355c7 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 23 Jan 2020 20:21:21 +0400 Subject: [PATCH 8/8] Simplified data generation code Signed-off-by: Valentin Popov --- _includes/contacts.html | 4 ++-- _includes/head.html | 12 ++++++------ _includes/links.html | 4 ++-- _includes/posts.html | 4 ++-- _layouts/default.html | 2 +- _layouts/page.html | 2 +- _layouts/post.html | 6 +++--- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/_includes/contacts.html b/_includes/contacts.html index 1389c30..6a9cef4 100644 --- a/_includes/contacts.html +++ b/_includes/contacts.html @@ -3,9 +3,9 @@ diff --git a/_includes/head.html b/_includes/head.html index aa6fb4f..e7fe582 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -8,20 +8,20 @@ {% for tag in site.data.meta_tags %} - + {% endfor %} - - + + - - - {{ page.title | default: site.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }} + + + {{ page.title | default: site.title | strip | normalize_whitespace | xml_escape }} diff --git a/_includes/links.html b/_includes/links.html index e7a2801..8d40d6d 100644 --- a/_includes/links.html +++ b/_includes/links.html @@ -3,9 +3,9 @@ diff --git a/_includes/posts.html b/_includes/posts.html index fee0c31..4638c9b 100644 --- a/_includes/posts.html +++ b/_includes/posts.html @@ -3,8 +3,8 @@ diff --git a/_layouts/default.html b/_layouts/default.html index ee363a2..cabcd0b 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -3,7 +3,7 @@ layout: compress --- - + {% include head.html %} diff --git a/_layouts/page.html b/_layouts/page.html index 28cdb0f..32c9b9f 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -4,7 +4,7 @@ layout: default
-

{{ page.title | default: site.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }}

+

{{ page.title | default: site.title | strip | normalize_whitespace | xml_escape }}

{{ content }} diff --git a/_layouts/post.html b/_layouts/post.html index 7731828..edbc5b7 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -5,15 +5,15 @@ layout: default
Published - + on - {{ site.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }} + {{ site.title | strip | normalize_whitespace | xml_escape }} | Permalink
-

{{ site.title | strip_newlines | strip_html | strip | normalize_whitespace | smartify | xml_escape }}

+

{{ site.title | strip | normalize_whitespace | xml_escape }}

{{ content }}