From ef5825c2bd66a59124aa9e4d5660b2e0b693dec3 Mon Sep 17 00:00:00 2001 From: John Toniutti Date: Fri, 23 Feb 2024 22:16:44 +0100 Subject: [PATCH 01/36] Initial rewrite [WIP] - Now using sass - Add demo - Clean-up --- .gitignore | 2 +- 404.md | 3 + Gemfile | 4 +- Gemfile.lock | 20 +- LICENSE.txt => LICENSE | 0 README.md | 4 + _config.yml | 48 +++++ _includes/article-preview.html | 5 + _includes/footer.html | 30 +-- _includes/head.html | 24 ++- _includes/header.html | 23 +- _layouts/400.html | 7 - _layouts/404.html | 11 +- _layouts/500.html | 6 - _layouts/base.html | 5 +- _layouts/feed.html | 2 +- _layouts/page.html | 12 +- _layouts/post.html | 3 - _layouts/projects.html | 9 + _posts/2024-02-22-test-01.md | 95 ++++++++ _posts/2024-02-22-test-02.md | 242 +++++++++++++++++++++ _sass/tallneck.scss | 3 + _sass/tallneck/base.scss | 93 ++++++++ _sass/tallneck/layout.scss | 235 ++++++++++++++++++++ _sass/tallneck/variables.scss | 65 ++++++ assets/css/print.css | 16 ++ assets/css/style.css | 382 --------------------------------- assets/css/style.scss | 6 + assets/images/banner.png | Bin 5939 -> 0 bytes assets/images/default.webp | Bin 0 -> 8788 bytes assets/images/logo.svg | 4 + index.md | 4 + jekyll-theme-tallneck.gemspec | 13 +- 33 files changed, 908 insertions(+), 468 deletions(-) create mode 100644 404.md rename LICENSE.txt => LICENSE (100%) create mode 100644 _config.yml delete mode 100644 _layouts/400.html delete mode 100644 _layouts/500.html create mode 100644 _layouts/projects.html create mode 100644 _posts/2024-02-22-test-01.md create mode 100644 _posts/2024-02-22-test-02.md create mode 100644 _sass/tallneck.scss create mode 100644 _sass/tallneck/base.scss create mode 100644 _sass/tallneck/layout.scss create mode 100644 _sass/tallneck/variables.scss create mode 100644 assets/css/print.css delete mode 100644 assets/css/style.css create mode 100644 assets/css/style.scss delete mode 100644 assets/images/banner.png create mode 100644 assets/images/default.webp create mode 100644 assets/images/logo.svg create mode 100644 index.md diff --git a/.gitignore b/.gitignore index 4fab8e0..d33aa6d 100644 --- a/.gitignore +++ b/.gitignore @@ -60,4 +60,4 @@ _site/ .jekyll-cache/ .jekyll-metadata -# End of https://mrkandreev.name/snippets/gitignore-generator/#Ruby,Jekyll \ No newline at end of file +*.pdn \ No newline at end of file diff --git a/404.md b/404.md new file mode 100644 index 0000000..4c3966f --- /dev/null +++ b/404.md @@ -0,0 +1,3 @@ +--- +layout: 404 +--- \ No newline at end of file diff --git a/Gemfile b/Gemfile index 6809d77..5ffda7c 100644 --- a/Gemfile +++ b/Gemfile @@ -6,5 +6,7 @@ gemspec group :jekyll_plugins do gem "jekyll-sitemap" gem "jekyll-seo-tag" - gem "jekyll-toc" + gem 'jekyll-feed' end + +gem 'wdm', '>= 0.1.0' if Gem.win_platform? diff --git a/Gemfile.lock b/Gemfile.lock index d370304..819efb7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,11 @@ PATH remote: . specs: - jekyll-theme-tallneck (0.1.0) - jekyll (~> 4.3) + jekyll-theme-tallneck (0.2.0) + jekyll (>= 4.0, < 5.0) + jekyll-feed (~> 0.17) jekyll-seo-tag (~> 2.8) jekyll-sitemap (~> 1.4) - jekyll-toc (~> 0.18) GEM remote: https://rubygems.org/ @@ -40,15 +40,14 @@ GEM safe_yaml (~> 1.0) terminal-table (>= 1.8, < 4.0) webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) jekyll-sass-converter (3.0.0) sass-embedded (~> 1.54) jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) - jekyll-toc (0.18.0) - jekyll (>= 3.9) - nokogiri (~> 1.12) jekyll-watch (2.2.1) listen (~> 3.0) kramdown (2.4.0) @@ -60,13 +59,9 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) - nokogiri (1.16.0-x64-mingw-ucrt) - racc (~> 1.4) pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (5.0.4) - racc (1.7.3) - rake (13.1.0) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) @@ -78,6 +73,7 @@ GEM terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) unicode-display_width (2.5.0) + wdm (0.1.1) webrick (1.8.1) PLATFORMS @@ -85,11 +81,11 @@ PLATFORMS DEPENDENCIES bundler + jekyll-feed jekyll-seo-tag jekyll-sitemap jekyll-theme-tallneck! - jekyll-toc - rake + wdm (>= 0.1.0) BUNDLED WITH 2.5.4 diff --git a/LICENSE.txt b/LICENSE similarity index 100% rename from LICENSE.txt rename to LICENSE diff --git a/README.md b/README.md index 1124a97..5d89ef3 100644 --- a/README.md +++ b/README.md @@ -87,3 +87,7 @@ To add a custom directory to your theme-gem, please edit the regexp in `jotone_t ## License The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). + +## Credits + +Some of the code was inspired by the [Minima Theme](https://github.com/jekyll/minima). [Minima license](https://github.com/jekyll/minima/blob/master/LICENSE.txt). diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..c7cc689 --- /dev/null +++ b/_config.yml @@ -0,0 +1,48 @@ +title: Tallneck test +language: en + +copyright: "Copyright (c) 2024 John Toniutti" + +# For jekyll-seo-tag +author: John Toniutti +tagline: "Tallneck test | This a tagline" +description: "This is a description" +url: "https://jotonedev.github.io/tallneck-test" + +defaults: + - scope: + path: "" + type: "posts" + values: + layout: "post" + image: "/assets/images/default.webp" + seo: + type: BlogPosting + +sitemap: true + +seo: + type: BlogPosting + +feed: + posts_limit: 20 + disable_in_development: true + +sass: + style: compressed + sass_dir: _sass + + +cloudflare: "bb92f520037c4286aea634050df09d74" + +# Project folder +collections: + projects: + output: true + +# Build settings +theme: jekyll-theme-tallneck +plugins: + - jekyll-feed + - jekyll-seo-tag + - jekyll-sitemap diff --git a/_includes/article-preview.html b/_includes/article-preview.html index f3185f7..58008c6 100644 --- a/_includes/article-preview.html +++ b/_includes/article-preview.html @@ -16,5 +16,10 @@

{{ include.title }}

{{ include.author }} {% endif %}

{{ include.subtitle }}

+
+ {% for tag in include.tags %} + + {% endfor %} +
\ No newline at end of file diff --git a/_includes/footer.html b/_includes/footer.html index ce19a95..f3ad3cb 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -1,24 +1,8 @@ - \ No newline at end of file diff --git a/_layouts/base.html b/_layouts/base.html index 0fda1e6..2f47a67 100644 --- a/_layouts/base.html +++ b/_layouts/base.html @@ -8,6 +8,6 @@ {{ content }} -{% include footer.html %} +{% include footer.html text=site.copyright %} \ No newline at end of file diff --git a/_layouts/post.html b/_layouts/post.html index 64d761c..02496ab 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -10,11 +10,7 @@

{{ page.title }}

-
- This work is licensed under - - Creative Commons by-sa 4.0 International. -

+

{% endif %} From 5e64a9ef70e780fbdc94b33d079ce2586a15f4a7 Mon Sep 17 00:00:00 2001 From: John Toniutti Date: Wed, 28 Feb 2024 08:55:36 +0100 Subject: [PATCH 29/36] Fix font size --- _sass/tallneck/components/post.scss | 2 +- _sass/tallneck/variables.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_sass/tallneck/components/post.scss b/_sass/tallneck/components/post.scss index b7e9bc0..2032bff 100644 --- a/_sass/tallneck/components/post.scss +++ b/_sass/tallneck/components/post.scss @@ -11,7 +11,7 @@ } .post-header--meta { - font-size: 0.8em; + font-size: 0.9em; opacity: 0.75; a { diff --git a/_sass/tallneck/variables.scss b/_sass/tallneck/variables.scss index bdcbc6a..9aa85b6 100644 --- a/_sass/tallneck/variables.scss +++ b/_sass/tallneck/variables.scss @@ -5,7 +5,7 @@ // Define defaults for each variable. $base-font-family: "Open Sans", -apple-system, system-ui, sans-serif, Arial !default; $code-font-family: "Consolas", "Courier New", monospace !default; -$base-font-size: 16px !default; +$base-font-size: 15px !default; $base-font-weight: 400 !default; $base-line-height: 1.5 !default; From 17c654dff6ffcf3b2a4e6ff1c79494823953bf9b Mon Sep 17 00:00:00 2001 From: John Toniutti Date: Wed, 28 Feb 2024 08:55:56 +0100 Subject: [PATCH 30/36] Fix sitemap and feed --- 404.md | 3 +++ README.md | 54 +++++++++++++++++++++++++---------------------------- _config.yml | 6 ------ cookie.md | 1 + privacy.md | 1 + terms.md | 1 + 6 files changed, 31 insertions(+), 35 deletions(-) diff --git a/404.md b/404.md index 4c3966f..63fa170 100644 --- a/404.md +++ b/404.md @@ -1,3 +1,6 @@ --- layout: 404 +private: true +no_meta: true +sitemap: false --- \ No newline at end of file diff --git a/README.md b/README.md index 38db267..8b9fa92 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,7 @@ Tallneck is a Jekyll theme for blogs. It is a simple and clean theme with a focus on the responsiveness. Also js free. -## Preview - -Main branch: [main](https://jekyll-theme-tallneck.pages.dev/) \ -Dev branch: [dev](https://dev.jekyll-theme-tallneck.pages.dev/) +Preview: [https://jotonedev.github.io/jekyll-theme-tallneck/](https://jotonedev.github.io/jekyll-theme-tallneck/) ## Installation @@ -35,38 +32,37 @@ gem install jekyll-theme-tallneck ## Usage -### Customization - -Create a folder named `assets` in your Jekyll site's root directory. -Then create a folder named `images` inside the `assets` folder and put a replacement for the default image named `default.webp` or change its name in the `_config.yml` file. - -Then, configure the various plugins and the theme in `_config.yml` to your liking (you can use the [config](/_config.yml) file in this repo as a template). +### Initial setup -The preinstalled plugins are: +To set up your Jekyll site with the Tallneck theme, follow these steps: -- [jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag) -- [jekyll-feed](https://github.com/jekyll/jekyll-feed) -- [jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap) +1. Install the theme as described above. +2. Add the following to your site's `_config.yml` to activate the theme: -### Main pages +```yaml +plugins: + - jekyll-remote-theme + - jekyll-feed + - jekyll-seo-tag + - jekyll-sitemap -Create at the root of your Jekyll site the following pages (like in this repo): +theme: jekyll-theme-tallneck +``` -- `index.md`, which will be the Home page and set the permalink to `/` -- `about.md`, which will be the About page and set the permalink to `/about` -- `cookie.md`, which will be the Cookie Policy page and set the permalink to `/cookie` -- `privacy.md`, which will be the Privacy Policy page and set the permalink to `/privacy` -- `terms.md`, which will be the Terms of Service page and set the permalink to `/terms` -- `feed.md`, which will be Posts page and set the permalink to `/feed`. +3. Create the following files at the root of your Jekyll site and edit them like the ones in this repo: + - [index.md](index.md) + - [feed.md](feed.md) + - [404.md](404.md) + - [about.md](about.md) + - [cookie.md](cookie.md) + - [privacy.md](privacy.md) + - [terms.md](terms.md) -Also create the file `404.html` with the following content: +4. Create the `assets/images` folder and put a replacement for the default image named `default.webp` or change its name in the `_config.yml` file. +5. In the same folder, put also a replacement for `favicon.ico`, `favicon.svg` and `logo.svg` (logo.svg will be used as the home button). +6. [Optional] Customize the theme by creating the `_sass` folder and editing `custom_variables.scss` and `custom_styles.scss` files. +7. Edit the `_config.yml` file to your liking (you can use the [config](/_config.yml) file in this repo as a template). -```yaml ---- -layout: 404 -sitemap: false ---- -``` ### Writing posts diff --git a/_config.yml b/_config.yml index 5a98d64..8565a26 100644 --- a/_config.yml +++ b/_config.yml @@ -25,7 +25,6 @@ seo: feed: posts_limit: 20 - disable_in_development: true sass: style: compressed @@ -33,11 +32,6 @@ sass: #cloudflare: "bb92f520037c4286aea634050df09d74" -# Project folder -collections: - projects: - output: true - # Build settings theme: jekyll-theme-tallneck plugins: diff --git a/cookie.md b/cookie.md index 4a20307..5ba94cb 100644 --- a/cookie.md +++ b/cookie.md @@ -2,6 +2,7 @@ layout: post private: true no_meta: true +sitemap: false title: Cookie policy --- diff --git a/privacy.md b/privacy.md index 7a9e0e4..9f2a295 100644 --- a/privacy.md +++ b/privacy.md @@ -2,6 +2,7 @@ layout: post private: true no_meta: true +sitemap: false title: Privacy policy --- diff --git a/terms.md b/terms.md index 88531ac..e64e396 100644 --- a/terms.md +++ b/terms.md @@ -2,6 +2,7 @@ layout: post private: true no_meta: true +sitemap: false title: Terms of service --- From 8e25b4eb77b08ac4a531345803f97a421414800d Mon Sep 17 00:00:00 2001 From: John Toniutti Date: Wed, 28 Feb 2024 08:56:56 +0100 Subject: [PATCH 31/36] Reformat css code --- _sass/colorful.scss | 61 ---------- _sass/custom_layout.scss | 1 + _sass/custom_variables.scss | 1 + _sass/dark_code.scss | 195 +++++++++++++++++++++++++++++++ _sass/light_code.scss | 205 +++++++++++++++++++++++++++++++++ _sass/monokai.scss | 67 ----------- _sass/tallneck.scss | 9 +- _sass/tallneck/base.scss | 9 +- _sass/tallneck/components.scss | 4 +- _sass/tallneck/font.scss | 47 ++++---- _sass/tallneck/footer.scss | 99 ++++++++-------- _sass/tallneck/header.scss | 84 +++++++------- _sass/tallneck/layout.scss | 4 +- _sass/tallneck/variables.scss | 15 ++- 14 files changed, 541 insertions(+), 260 deletions(-) delete mode 100644 _sass/colorful.scss create mode 100644 _sass/custom_layout.scss create mode 100644 _sass/custom_variables.scss create mode 100644 _sass/dark_code.scss create mode 100644 _sass/light_code.scss delete mode 100644 _sass/monokai.scss diff --git a/_sass/colorful.scss b/_sass/colorful.scss deleted file mode 100644 index bf8f50f..0000000 --- a/_sass/colorful.scss +++ /dev/null @@ -1,61 +0,0 @@ -.highlight .hll { background-color: #ffffcc } -.highlight .c { color: #808080 } /* Comment */ -.highlight .err { color: #F00000; background-color: #F0A0A0 } /* Error */ -.highlight .k { color: #008000; font-weight: bold } /* Keyword */ -.highlight .o { color: #303030 } /* Operator */ -.highlight .cm { color: #808080 } /* Comment.Multiline */ -.highlight .cp { color: #507090 } /* Comment.Preproc */ -.highlight .c1 { color: #808080 } /* Comment.Single */ -.highlight .cs { color: #cc0000; font-weight: bold } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #808080 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0040D0 } /* Generic.Traceback */ -.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #003080; font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #303090; font-weight: bold } /* Keyword.Type */ -.highlight .m { color: #6000E0; font-weight: bold } /* Literal.Number */ -//.highlight .s { background-color: #fff0f0 } /* Literal.String */ -.highlight .na { color: #0000C0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #B00060; font-weight: bold } /* Name.Class */ -.highlight .no { color: #003060; font-weight: bold } /* Name.Constant */ -.highlight .nd { color: #505050; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #800000; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #F00000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #0060B0; font-weight: bold } /* Name.Function */ -.highlight .nl { color: #907000; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #007000 } /* Name.Tag */ -.highlight .nv { color: #906030 } /* Name.Variable */ -.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #6000E0; font-weight: bold } /* Literal.Number.Float */ -.highlight .mh { color: #005080; font-weight: bold } /* Literal.Number.Hex */ -.highlight .mi { color: #0000D0; font-weight: bold } /* Literal.Number.Integer */ -.highlight .mo { color: #4000E0; font-weight: bold } /* Literal.Number.Oct */ -.highlight .sb { background-color: #fff0f0 } /* Literal.String.Backtick */ -.highlight .sc { color: #0040D0 } /* Literal.String.Char */ -.highlight .sd { color: #D04020 } /* Literal.String.Doc */ -//.highlight .s2 { background-color: #fff0f0 } /* Literal.String.Double */ -.highlight .se { color: #606060; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */ -//.highlight .sh { background-color: #fff0f0 } /* Literal.String.Heredoc */ -//.highlight .si { background-color: #e0e0e0 } /* Literal.String.Interpol */ -.highlight .sx { color: #D02000; background-color: #fff0f0 } /* Literal.String.Other */ -.highlight .sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */ -//.highlight .s1 { background-color: #fff0f0 } /* Literal.String.Single */ -.highlight .ss { color: #A06000 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #306090 } /* Name.Variable.Class */ -.highlight .vg { color: #d07000; font-weight: bold } /* Name.Variable.Global */ -.highlight .vi { color: #3030B0 } /* Name.Variable.Instance */ -.highlight .il { color: #0000D0; font-weight: bold } /* Literal.Number.Integer.Long */ diff --git a/_sass/custom_layout.scss b/_sass/custom_layout.scss new file mode 100644 index 0000000..e720ac8 --- /dev/null +++ b/_sass/custom_layout.scss @@ -0,0 +1 @@ +// Copy this file to your _sass folder and add your own customizations to override the default settings \ No newline at end of file diff --git a/_sass/custom_variables.scss b/_sass/custom_variables.scss new file mode 100644 index 0000000..a17b13f --- /dev/null +++ b/_sass/custom_variables.scss @@ -0,0 +1 @@ +// Copy this file to your _sass folder and add your own variables to override the default settings \ No newline at end of file diff --git a/_sass/dark_code.scss b/_sass/dark_code.scss new file mode 100644 index 0000000..3a169f8 --- /dev/null +++ b/_sass/dark_code.scss @@ -0,0 +1,195 @@ +@media (prefers-color-scheme: dark) { + .highlight pre { + background-color: #272822; + } + .highlight .hll { + background-color: #272822; + } + .highlight .c { + color: #75715e; + } /* Comment */ + .highlight .err { + color: #960050; + background-color: #1e0010; + } /* Error */ + .highlight .k { + color: #66d9ef; + } /* Keyword */ + .highlight .l { + color: #ae81ff; + } /* Literal */ + .highlight .n { + color: #f8f8f2; + } /* Name */ + .highlight .o { + color: #f92672; + } /* Operator */ + .highlight .p { + color: #f8f8f2; + } /* Punctuation */ + .highlight .cm { + color: #75715e; + } /* Comment.Multiline */ + .highlight .cp { + color: #75715e; + } /* Comment.Preproc */ + .highlight .c1 { + color: #75715e; + } /* Comment.Single */ + .highlight .cs { + color: #75715e; + } /* Comment.Special */ + .highlight .ge { + font-style: italic; + } /* Generic.Emph */ + .highlight .gs { + font-weight: bold; + } /* Generic.Strong */ + .highlight .kc { + color: #66d9ef; + } /* Keyword.Constant */ + .highlight .kd { + color: #66d9ef; + } /* Keyword.Declaration */ + .highlight .kn { + color: #f92672; + } /* Keyword.Namespace */ + .highlight .kp { + color: #66d9ef; + } /* Keyword.Pseudo */ + .highlight .kr { + color: #66d9ef; + } /* Keyword.Reserved */ + .highlight .kt { + color: #66d9ef; + } /* Keyword.Type */ + .highlight .ld { + color: #e6db74; + } /* Literal.Date */ + .highlight .m { + color: #ae81ff; + } /* Literal.Number */ + .highlight .s { + color: #e6db74; + } /* Literal.String */ + .highlight .na { + color: #a6e22e; + } /* Name.Attribute */ + .highlight .nb { + color: #f8f8f2; + } /* Name.Builtin */ + .highlight .nc { + color: #a6e22e; + } /* Name.Class */ + .highlight .no { + color: #66d9ef; + } /* Name.Constant */ + .highlight .nd { + color: #a6e22e; + } /* Name.Decorator */ + .highlight .ni { + color: #f8f8f2; + } /* Name.Entity */ + .highlight .ne { + color: #a6e22e; + } /* Name.Exception */ + .highlight .nf { + color: #a6e22e; + } /* Name.Function */ + .highlight .nl { + color: #f8f8f2; + } /* Name.Label */ + .highlight .nn { + color: #f8f8f2; + } /* Name.Namespace */ + .highlight .nx { + color: #a6e22e; + } /* Name.Other */ + .highlight .py { + color: #f8f8f2; + } /* Name.Property */ + .highlight .nt { + color: #f92672; + } /* Name.Tag */ + .highlight .nv { + color: #f8f8f2; + } /* Name.Variable */ + .highlight .ow { + color: #f92672; + } /* Operator.Word */ + .highlight .w { + color: #f8f8f2; + } /* Text.Whitespace */ + .highlight .mf { + color: #ae81ff; + } /* Literal.Number.Float */ + .highlight .mh { + color: #ae81ff; + } /* Literal.Number.Hex */ + .highlight .mi { + color: #ae81ff; + } /* Literal.Number.Integer */ + .highlight .mo { + color: #ae81ff; + } /* Literal.Number.Oct */ + .highlight .sb { + color: #e6db74; + } /* Literal.String.Backtick */ + .highlight .sc { + color: #e6db74; + } /* Literal.String.Char */ + .highlight .sd { + color: #e6db74; + } /* Literal.String.Doc */ + .highlight .s2 { + color: #e6db74; + } /* Literal.String.Double */ + .highlight .se { + color: #ae81ff; + } /* Literal.String.Escape */ + .highlight .sh { + color: #e6db74; + } /* Literal.String.Heredoc */ + .highlight .si { + color: #e6db74; + } /* Literal.String.Interpol */ + .highlight .sx { + color: #e6db74; + } /* Literal.String.Other */ + .highlight .sr { + color: #e6db74; + } /* Literal.String.Regex */ + .highlight .s1 { + color: #e6db74; + } /* Literal.String.Single */ + .highlight .ss { + color: #e6db74; + } /* Literal.String.Symbol */ + .highlight .bp { + color: #f8f8f2; + } /* Name.Builtin.Pseudo */ + .highlight .vc { + color: #f8f8f2; + } /* Name.Variable.Class */ + .highlight .vg { + color: #f8f8f2; + } /* Name.Variable.Global */ + .highlight .vi { + color: #f8f8f2; + } /* Name.Variable.Instance */ + .highlight .il { + color: #ae81ff; + } /* Literal.Number.Integer.Long */ + + .highlight .gh { + } /* Generic Heading & Diff Header */ + .highlight .gu { + color: #75715e; + } /* Generic.Subheading & Diff Unified/Comment? */ + .highlight .gd { + color: #f92672; + } /* Generic.Deleted & Diff Deleted */ + .highlight .gi { + color: #a6e22e; + } /* Generic.Inserted & Diff Inserted */ +} diff --git a/_sass/light_code.scss b/_sass/light_code.scss new file mode 100644 index 0000000..ae4f613 --- /dev/null +++ b/_sass/light_code.scss @@ -0,0 +1,205 @@ +.highlight .hll { + background-color: #ffffcc; +} +.highlight .c { + color: #808080; +} /* Comment */ +.highlight .err { + color: #f00000; + background-color: #f0a0a0; +} /* Error */ +.highlight .k { + color: #008000; + font-weight: bold; +} /* Keyword */ +.highlight .o { + color: #303030; +} /* Operator */ +.highlight .cm { + color: #808080; +} /* Comment.Multiline */ +.highlight .cp { + color: #507090; +} /* Comment.Preproc */ +.highlight .c1 { + color: #808080; +} /* Comment.Single */ +.highlight .cs { + color: #cc0000; + font-weight: bold; +} /* Comment.Special */ +.highlight .gd { + color: #a00000; +} /* Generic.Deleted */ +.highlight .ge { + font-style: italic; +} /* Generic.Emph */ +.highlight .gr { + color: #ff0000; +} /* Generic.Error */ +.highlight .gh { + color: #000080; + font-weight: bold; +} /* Generic.Heading */ +.highlight .gi { + color: #00a000; +} /* Generic.Inserted */ +.highlight .go { + color: #808080; +} /* Generic.Output */ +.highlight .gp { + color: #c65d09; + font-weight: bold; +} /* Generic.Prompt */ +.highlight .gs { + font-weight: bold; +} /* Generic.Strong */ +.highlight .gu { + color: #800080; + font-weight: bold; +} /* Generic.Subheading */ +.highlight .gt { + color: #0040d0; +} /* Generic.Traceback */ +.highlight .kc { + color: #008000; + font-weight: bold; +} /* Keyword.Constant */ +.highlight .kd { + color: #008000; + font-weight: bold; +} /* Keyword.Declaration */ +.highlight .kn { + color: #008000; + font-weight: bold; +} /* Keyword.Namespace */ +.highlight .kp { + color: #003080; + font-weight: bold; +} /* Keyword.Pseudo */ +.highlight .kr { + color: #008000; + font-weight: bold; +} /* Keyword.Reserved */ +.highlight .kt { + color: #303090; + font-weight: bold; +} /* Keyword.Type */ +.highlight .m { + color: #6000e0; + font-weight: bold; +} /* Literal.Number */ +//.highlight .s { background-color: #fff0f0 } /* Literal.String */ +.highlight .na { + color: #0000c0; +} /* Name.Attribute */ +.highlight .nb { + color: #007020; +} /* Name.Builtin */ +.highlight .nc { + color: #b00060; + font-weight: bold; +} /* Name.Class */ +.highlight .no { + color: #003060; + font-weight: bold; +} /* Name.Constant */ +.highlight .nd { + color: #505050; + font-weight: bold; +} /* Name.Decorator */ +.highlight .ni { + color: #800000; + font-weight: bold; +} /* Name.Entity */ +.highlight .ne { + color: #f00000; + font-weight: bold; +} /* Name.Exception */ +.highlight .nf { + color: #0060b0; + font-weight: bold; +} /* Name.Function */ +.highlight .nl { + color: #907000; + font-weight: bold; +} /* Name.Label */ +.highlight .nn { + color: #0e84b5; + font-weight: bold; +} /* Name.Namespace */ +.highlight .nt { + color: #007000; +} /* Name.Tag */ +.highlight .nv { + color: #906030; +} /* Name.Variable */ +.highlight .ow { + color: #000000; + font-weight: bold; +} /* Operator.Word */ +.highlight .w { + color: #bbbbbb; +} /* Text.Whitespace */ +.highlight .mf { + color: #6000e0; + font-weight: bold; +} /* Literal.Number.Float */ +.highlight .mh { + color: #005080; + font-weight: bold; +} /* Literal.Number.Hex */ +.highlight .mi { + color: #0000d0; + font-weight: bold; +} /* Literal.Number.Integer */ +.highlight .mo { + color: #4000e0; + font-weight: bold; +} /* Literal.Number.Oct */ +.highlight .sb { + background-color: #fff0f0; +} /* Literal.String.Backtick */ +.highlight .sc { + color: #0040d0; +} /* Literal.String.Char */ +.highlight .sd { + color: #d04020; +} /* Literal.String.Doc */ +//.highlight .s2 { background-color: #fff0f0 } /* Literal.String.Double */ +.highlight .se { + color: #606060; + font-weight: bold; + background-color: #fff0f0; +} /* Literal.String.Escape */ +//.highlight .sh { background-color: #fff0f0 } /* Literal.String.Heredoc */ +//.highlight .si { background-color: #e0e0e0 } /* Literal.String.Interpol */ +.highlight .sx { + color: #d02000; + background-color: #fff0f0; +} /* Literal.String.Other */ +.highlight .sr { + color: #000000; + background-color: #fff0ff; +} /* Literal.String.Regex */ +//.highlight .s1 { background-color: #fff0f0 } /* Literal.String.Single */ +.highlight .ss { + color: #a06000; +} /* Literal.String.Symbol */ +.highlight .bp { + color: #007020; +} /* Name.Builtin.Pseudo */ +.highlight .vc { + color: #306090; +} /* Name.Variable.Class */ +.highlight .vg { + color: #d07000; + font-weight: bold; +} /* Name.Variable.Global */ +.highlight .vi { + color: #3030b0; +} /* Name.Variable.Instance */ +.highlight .il { + color: #0000d0; + font-weight: bold; +} /* Literal.Number.Integer.Long */ diff --git a/_sass/monokai.scss b/_sass/monokai.scss deleted file mode 100644 index df5256d..0000000 --- a/_sass/monokai.scss +++ /dev/null @@ -1,67 +0,0 @@ -@media (prefers-color-scheme: dark) { - .highlight pre { background-color: #272822; } - .highlight .hll { background-color: #272822; } - .highlight .c { color: #75715e } /* Comment */ - .highlight .err { color: #960050; background-color: #1e0010 } /* Error */ - .highlight .k { color: #66d9ef } /* Keyword */ - .highlight .l { color: #ae81ff } /* Literal */ - .highlight .n { color: #f8f8f2 } /* Name */ - .highlight .o { color: #f92672 } /* Operator */ - .highlight .p { color: #f8f8f2 } /* Punctuation */ - .highlight .cm { color: #75715e } /* Comment.Multiline */ - .highlight .cp { color: #75715e } /* Comment.Preproc */ - .highlight .c1 { color: #75715e } /* Comment.Single */ - .highlight .cs { color: #75715e } /* Comment.Special */ - .highlight .ge { font-style: italic } /* Generic.Emph */ - .highlight .gs { font-weight: bold } /* Generic.Strong */ - .highlight .kc { color: #66d9ef } /* Keyword.Constant */ - .highlight .kd { color: #66d9ef } /* Keyword.Declaration */ - .highlight .kn { color: #f92672 } /* Keyword.Namespace */ - .highlight .kp { color: #66d9ef } /* Keyword.Pseudo */ - .highlight .kr { color: #66d9ef } /* Keyword.Reserved */ - .highlight .kt { color: #66d9ef } /* Keyword.Type */ - .highlight .ld { color: #e6db74 } /* Literal.Date */ - .highlight .m { color: #ae81ff } /* Literal.Number */ - .highlight .s { color: #e6db74 } /* Literal.String */ - .highlight .na { color: #a6e22e } /* Name.Attribute */ - .highlight .nb { color: #f8f8f2 } /* Name.Builtin */ - .highlight .nc { color: #a6e22e } /* Name.Class */ - .highlight .no { color: #66d9ef } /* Name.Constant */ - .highlight .nd { color: #a6e22e } /* Name.Decorator */ - .highlight .ni { color: #f8f8f2 } /* Name.Entity */ - .highlight .ne { color: #a6e22e } /* Name.Exception */ - .highlight .nf { color: #a6e22e } /* Name.Function */ - .highlight .nl { color: #f8f8f2 } /* Name.Label */ - .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ - .highlight .nx { color: #a6e22e } /* Name.Other */ - .highlight .py { color: #f8f8f2 } /* Name.Property */ - .highlight .nt { color: #f92672 } /* Name.Tag */ - .highlight .nv { color: #f8f8f2 } /* Name.Variable */ - .highlight .ow { color: #f92672 } /* Operator.Word */ - .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ - .highlight .mf { color: #ae81ff } /* Literal.Number.Float */ - .highlight .mh { color: #ae81ff } /* Literal.Number.Hex */ - .highlight .mi { color: #ae81ff } /* Literal.Number.Integer */ - .highlight .mo { color: #ae81ff } /* Literal.Number.Oct */ - .highlight .sb { color: #e6db74 } /* Literal.String.Backtick */ - .highlight .sc { color: #e6db74 } /* Literal.String.Char */ - .highlight .sd { color: #e6db74 } /* Literal.String.Doc */ - .highlight .s2 { color: #e6db74 } /* Literal.String.Double */ - .highlight .se { color: #ae81ff } /* Literal.String.Escape */ - .highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */ - .highlight .si { color: #e6db74 } /* Literal.String.Interpol */ - .highlight .sx { color: #e6db74 } /* Literal.String.Other */ - .highlight .sr { color: #e6db74 } /* Literal.String.Regex */ - .highlight .s1 { color: #e6db74 } /* Literal.String.Single */ - .highlight .ss { color: #e6db74 } /* Literal.String.Symbol */ - .highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ - .highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */ - .highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */ - .highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */ - .highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */ - - .highlight .gh { } /* Generic Heading & Diff Header */ - .highlight .gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */ - .highlight .gd { color: #f92672; } /* Generic.Deleted & Diff Deleted */ - .highlight .gi { color: #a6e22e; } /* Generic.Inserted & Diff Inserted */ -} \ No newline at end of file diff --git a/_sass/tallneck.scss b/_sass/tallneck.scss index 5fee14d..e25843b 100644 --- a/_sass/tallneck.scss +++ b/_sass/tallneck.scss @@ -1,9 +1,14 @@ @import "tallneck/font"; @import "tallneck/variables"; + +@import "custom_variables"; + @import "tallneck/base"; @import "tallneck/layout"; @import "tallneck/components"; +@import "custom_layout"; + // Source: https://jwarby.github.io/jekyll-pygments-themes/languages/ruby.html -@import "colorful"; -@import "monokai"; +@import "light_code"; +@import "dark_code"; diff --git a/_sass/tallneck/base.scss b/_sass/tallneck/base.scss index 606d644..56e9d92 100644 --- a/_sass/tallneck/base.scss +++ b/_sass/tallneck/base.scss @@ -76,7 +76,6 @@ abbr[title] { text-underline-offset: 2px; } - /* * Code */ @@ -113,7 +112,6 @@ pre { } } - /* * Tables */ @@ -123,7 +121,8 @@ table { border-collapse: collapse; border: 1px solid var(--border-primary); - th, td { + th, + td { padding: 0.25rem; border: 1px solid var(--border-primary); } @@ -133,7 +132,6 @@ table { } } - /* * Blockquotes */ @@ -152,6 +150,5 @@ blockquote { & > blockquote { border-left: 3px solid var(--accent-secondary); - } -} \ No newline at end of file +} diff --git a/_sass/tallneck/components.scss b/_sass/tallneck/components.scss index 69f62f0..83ce8e3 100644 --- a/_sass/tallneck/components.scss +++ b/_sass/tallneck/components.scss @@ -1,3 +1 @@ -@import "components/post", - "components/post-card", - "components/post-preview"; \ No newline at end of file +@import "components/post", "components/post-card", "components/post-preview"; diff --git a/_sass/tallneck/font.scss b/_sass/tallneck/font.scss index 23a9094..978ce11 100644 --- a/_sass/tallneck/font.scss +++ b/_sass/tallneck/font.scss @@ -1,52 +1,53 @@ // Source: https://fonts.google.com/specimen/Roboto @font-face { - font-family: 'Roboto'; + font-family: "Roboto"; font-style: normal; font-weight: normal; font-display: swap; - src: local('Roboto'), - /* Super Modern Browsers */ url('/assets/font/roboto/roboto.woff2') format('woff2'), - /* Modern Browsers */ url('/assets/font/roboto/roboto.woff') format('woff'), - /* Safari, Android, iOS */ url('/assets/font/roboto/roboto.ttf') format('truetype'); + src: + local("Roboto"), + /* Super Modern Browsers */ url("/assets/font/roboto/roboto.woff2") format("woff2"), + /* Modern Browsers */ url("/assets/font/roboto/roboto.woff") format("woff"), + /* Safari, Android, iOS */ url("/assets/font/roboto/roboto.ttf") format("truetype"); } - // Source: https://fonts.google.com/specimen/Open+Sans @font-face { - font-family: 'Open Sans'; + font-family: "Open Sans"; font-style: normal; font-weight: normal; font-display: swap; - src: local('Open Sans'), - /* Super Modern Browsers */ url('/assets/font/opensans/opensans.woff2') format('woff2'), - /* Modern Browsers */ url('/assets/font/opensans/opensans.woff') format('woff'), - /* Safari, Android, iOS */ url('/assets/font/opensans/opensans.ttf') format('truetype'); + src: + local("Open Sans"), + /* Super Modern Browsers */ url("/assets/font/opensans/opensans.woff2") format("woff2"), + /* Modern Browsers */ url("/assets/font/opensans/opensans.woff") format("woff"), + /* Safari, Android, iOS */ url("/assets/font/opensans/opensans.ttf") format("truetype"); } // Bold @font-face { - font-family: 'Open Sans'; + font-family: "Open Sans"; font-style: bold; font-weight: bold; font-display: swap; - src: local('Open Sans'), - /* Super Modern Browsers */ url('/assets/font/opensans/opensans-bold.woff2') format('woff2'), - /* Modern Browsers */ url('/assets/font/opensans/opensans-bold.woff') format('woff'), - /* Safari, Android, iOS */ url('/assets/font/opensans/opensans-bold.ttf') format('truetype'); - + src: + local("Open Sans"), + /* Super Modern Browsers */ url("/assets/font/opensans/opensans-bold.woff2") format("woff2"), + /* Modern Browsers */ url("/assets/font/opensans/opensans-bold.woff") format("woff"), + /* Safari, Android, iOS */ url("/assets/font/opensans/opensans-bold.ttf") format("truetype"); } // Italic @font-face { - font-family: 'Open Sans'; + font-family: "Open Sans"; font-style: italic; font-weight: italic; font-display: swap; - src: local('Open Sans'), - /* Super Modern Browsers */ url('/assets/font/opensans/opensans-italic.woff2') format('woff2'), - /* Modern Browsers */ url('/assets/font/opensans/opensans-italic.woff') format('woff'), - /* Safari, Android, iOS */ url('/assets/font/opensans/opensans-italic.ttf') format('truetype'); - + src: + local("Open Sans"), + /* Super Modern Browsers */ url("/assets/font/opensans/opensans-italic.woff2") format("woff2"), + /* Modern Browsers */ url("/assets/font/opensans/opensans-italic.woff") format("woff"), + /* Safari, Android, iOS */ url("/assets/font/opensans/opensans-italic.ttf") format("truetype"); } diff --git a/_sass/tallneck/footer.scss b/_sass/tallneck/footer.scss index 06b817c..f6211f8 100644 --- a/_sass/tallneck/footer.scss +++ b/_sass/tallneck/footer.scss @@ -1,52 +1,57 @@ .page-footer { - position: relative; - padding-left: 1rem; - padding-right: 1rem; - margin-top: 2.5rem; - margin-bottom: 2rem; - } - - .footer-nav { + position: relative; + padding-left: 1rem; + padding-right: 1rem; + margin-top: 2.5rem; + margin-bottom: 2rem; +} + +.footer-nav { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + + gap: 1rem; + + height: 2rem; + + a { display: flex; - flex-direction: row; - align-items: center; justify-content: center; - - gap: 1rem; - - height: 2rem; - - a { - display: flex; - justify-content: center; - align-items: center; - height: 100%; - - min-width: 4rem; - max-width: 6rem; - - border-radius: 3px; - - padding-left: 0.5rem; - padding-right: 0.5rem; - - text-decoration: none; - color: var(--text-primary); - - &:hover { - text-decoration: underline; - text-underline-offset: 2px; - } + align-items: center; + height: 100%; + + min-width: 4rem; + max-width: 6rem; + + border-radius: 3px; + + padding-left: 0.5rem; + padding-right: 0.5rem; + + text-decoration: none; + color: var(--text-primary); + + &:hover { + text-decoration: underline; + text-underline-offset: 2px; } } - - .footer-hr { - max-width: $main-max-width + calc($content-width-overflow/2); - border: 0; - border-top: 1px solid var(--border-primary); - - margin-left: auto; - margin-right: auto; - } - - \ No newline at end of file +} + +.footer-hr { + max-width: $main-max-width + calc($content-width-overflow/2); + border: 0; + border-top: 1px solid var(--border-primary); + + margin-left: auto; + margin-right: auto; +} + +.footer-text { + font-size: 0.8em; + opacity: 0.75; + text-align: center; + margin-top: 0.5rem; +} diff --git a/_sass/tallneck/header.scss b/_sass/tallneck/header.scss index 2c10348..2c03ff7 100644 --- a/_sass/tallneck/header.scss +++ b/_sass/tallneck/header.scss @@ -28,63 +28,63 @@ justify-content: space-between; align-items: center; } +} - .header-logo { - float: left; - height: 100%; +.header-logo { + float: left; + height: 100%; - padding-top: 0.15rem; - padding-bottom: 0.15rem; + padding-top: 0.15rem; + padding-bottom: 0.15rem; - a { - display: inline-block; - text-decoration: none; - color: var(--header-text-primary); - height: 100%; - } - - img { - height: 100%; - width: auto; - max-height: 38px; - } + a { + display: inline-block; + text-decoration: none; + color: var(--header-text-primary); + height: 100%; } - .header-nav { + img { height: 100%; - float: right; + width: auto; + max-height: 38px; + } +} - display: flex; - justify-content: space-between; - align-items: center; - flex-direction: row; +.header-nav { + height: 100%; + float: right; - gap: 0.75rem; + display: flex; + justify-content: space-between; + align-items: center; + flex-direction: row; - @media screen and (max-width: 380px) { - gap: 0.5rem; - } + gap: 0.75rem; - a { - display: flex; - justify-content: center; - align-items: center; - height: 100%; + @media screen and (max-width: 380px) { + gap: 0.5rem; + } + + a { + display: flex; + justify-content: center; + align-items: center; + height: 100%; - min-width: 3rem; - max-width: 6rem; + min-width: 3rem; + max-width: 6rem; - border-radius: 3px; + border-radius: 3px; - padding-left: 0.5rem; - padding-right: 0.5rem; + padding-left: 0.5rem; + padding-right: 0.5rem; - text-decoration: none; - color: var(--header-text-primary); + text-decoration: none; + color: var(--header-text-primary); - &:hover { - background-color: var(--nav-link-hover); - } + &:hover { + background-color: var(--nav-link-hover); } } } diff --git a/_sass/tallneck/layout.scss b/_sass/tallneck/layout.scss index 25a5b11..4fa5539 100644 --- a/_sass/tallneck/layout.scss +++ b/_sass/tallneck/layout.scss @@ -1,6 +1,5 @@ @import "footer", "header"; - .page-main { position: relative; margin: 0 auto; @@ -26,7 +25,6 @@ } } - .hidden-link { text-decoration: none; color: var(--text-primary); @@ -50,4 +48,4 @@ max-width: $content-width; margin-left: auto; margin-right: auto; -} \ No newline at end of file +} diff --git a/_sass/tallneck/variables.scss b/_sass/tallneck/variables.scss index 9aa85b6..40a1cb6 100644 --- a/_sass/tallneck/variables.scss +++ b/_sass/tallneck/variables.scss @@ -3,7 +3,12 @@ @charset "utf-8"; // Define defaults for each variable. -$base-font-family: "Open Sans", -apple-system, system-ui, sans-serif, Arial !default; +$base-font-family: + "Open Sans", + -apple-system, + system-ui, + sans-serif, + Arial !default; $code-font-family: "Consolas", "Courier New", monospace !default; $base-font-size: 15px !default; $base-font-weight: 400 !default; @@ -22,7 +27,6 @@ $card-max-height: 440px !default; $preview-max-height: 15rem !default; - // Colors :root { --background-color: #fff; @@ -49,11 +53,10 @@ $preview-max-height: 15rem !default; --svg-fill: #000; - --accent-primary: #FE7A36; - --accent-secondary: #3652AD; + --accent-primary: #fe7a36; + --accent-secondary: #3652ad; } - @media (prefers-color-scheme: dark) { :root { --background-color: #121212; @@ -74,4 +77,4 @@ $preview-max-height: 15rem !default; --svg-fill: #fff; } -} \ No newline at end of file +} From a31a0399975209f40f6f7a2bb1857fd4bc600b2a Mon Sep 17 00:00:00 2001 From: John Toniutti Date: Wed, 28 Feb 2024 20:01:48 +0100 Subject: [PATCH 32/36] Add about page with icons --- README.md | 4 +- _config.yml | 16 ++++- _includes/head.html | 6 ++ _includes/header.html | 2 +- _layouts/about.html | 100 ++++++++++++++++++++++++++ _layouts/post.html | 33 +++++---- _posts/2024-02-22-test-02.md | 6 +- _posts/2024-02-24-test-04.md | 1 + _posts/2024-02-24-test-05.md | 1 + _sass/tallneck/components.scss | 2 +- _sass/tallneck/components/about.scss | 76 ++++++++++++++++++++ assets/icon/discord.svg | 5 ++ assets/icon/github.svg | 5 ++ assets/icon/gitlab.svg | 5 ++ assets/icon/instagram.svg | 5 ++ assets/icon/linkedin.svg | 5 ++ assets/icon/reddit.svg | 5 ++ assets/icon/telegram.svg | 5 ++ assets/icon/threads.svg | 5 ++ assets/icon/x.svg | 5 ++ assets/image/about.webp | Bin 0 -> 52786 bytes assets/{images => image}/default.webp | Bin assets/{images => image}/logo.svg | 0 assets/sitemanifest.json | 0 24 files changed, 269 insertions(+), 23 deletions(-) create mode 100644 _layouts/about.html create mode 100644 _sass/tallneck/components/about.scss create mode 100644 assets/icon/discord.svg create mode 100644 assets/icon/github.svg create mode 100644 assets/icon/gitlab.svg create mode 100644 assets/icon/instagram.svg create mode 100644 assets/icon/linkedin.svg create mode 100644 assets/icon/reddit.svg create mode 100644 assets/icon/telegram.svg create mode 100644 assets/icon/threads.svg create mode 100644 assets/icon/x.svg create mode 100644 assets/image/about.webp rename assets/{images => image}/default.webp (100%) rename assets/{images => image}/logo.svg (100%) create mode 100644 assets/sitemanifest.json diff --git a/README.md b/README.md index 8b9fa92..4dc2f98 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ theme: jekyll-theme-tallneck - [privacy.md](privacy.md) - [terms.md](terms.md) -4. Create the `assets/images` folder and put a replacement for the default image named `default.webp` or change its name in the `_config.yml` file. +4. Create the `assets/image` folder and put a replacement for the default image named `default.webp` or change its name in the `_config.yml` file. 5. In the same folder, put also a replacement for `favicon.ico`, `favicon.svg` and `logo.svg` (logo.svg will be used as the home button). 6. [Optional] Customize the theme by creating the `_sass` folder and editing `custom_variables.scss` and `custom_styles.scss` files. 7. Edit the `_config.yml` file to your liking (you can use the [config](/_config.yml) file in this repo as a template). @@ -74,7 +74,7 @@ layout: post # Optional, post is default title: "First post!" subtitle: "Written in Go." # Optional date: 2023-01-16 17:40:28 +0100 -image: /assets/images/golang.jpg # Optional +image: /assets/image/golang.jpg # Optional --- ``` diff --git a/_config.yml b/_config.yml index 8565a26..91792f2 100644 --- a/_config.yml +++ b/_config.yml @@ -3,18 +3,30 @@ language: en copyright: "Copyright (c) 2024 John Toniutti" -# For jekyll-seo-tag author: John Toniutti +keywords: "tallneck, test, jekyll, theme, jekyll-theme-tallneck" tagline: "Tallneck test | This a tagline" description: "This is a description" url: "https://jotonedev.github.io/tallneck-test" +social: true +github_url: https://example.com/ +gitlab_url: https://example.com/ +discord_url: https://example.com/ +linkedin_url: https://example.com/ +reddit_url: https://example.com/ +instagram_url: https://example.com/ +threads_url: https://example.com/ +x_url: https://example.com/ +telegram_url: https://example.com/ + +about_image: "/assets/image/about.webp" defaults: - scope: type: "posts" values: layout: "post" - image: "/assets/images/default.webp" + image: "/assets/image/default.webp" seo: type: BlogPosting diff --git a/_includes/head.html b/_includes/head.html index 581532d..6845a28 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -12,6 +12,12 @@ {% if page.private %} {% else %} + {% if page.keywords %} + + {% else if site.keywords %} + + {% endif %} + {% seo %} {% endif %} diff --git a/_includes/header.html b/_includes/header.html index 54a46b5..e03451d 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -2,7 +2,7 @@
diff --git a/_layouts/about.html b/_layouts/about.html new file mode 100644 index 0000000..00fe3a6 --- /dev/null +++ b/_layouts/about.html @@ -0,0 +1,100 @@ +--- +layout: base +--- +
+ {% if page.title %} +

{{ page.title }}

+ {% else %} +

About me

+ {% endif %} + + {% if site.social %} + + {% endif %} + +
+
+ About me +
+
+ {{ content }} +
+
+
\ No newline at end of file diff --git a/_layouts/post.html b/_layouts/post.html index 02496ab..92846cc 100644 --- a/_layouts/post.html +++ b/_layouts/post.html @@ -2,18 +2,23 @@ layout: base --- -
-

{{ page.title }}

- {% if page.no_meta %} - {% else %} -

- -

- {% endif %} -
+
+
+

{{ page.title }}

+ {% if page.no_meta %} + {% else %} +

+ + {% if page.keywords %} + | {{ page.keywords }} + {% endif %} +

+ {% endif %} +
-
- {{ content }} -
+
+ {{ content }} +
+
\ No newline at end of file diff --git a/_posts/2024-02-22-test-02.md b/_posts/2024-02-22-test-02.md index 5f0bcb4..e0e4620 100644 --- a/_posts/2024-02-22-test-02.md +++ b/_posts/2024-02-22-test-02.md @@ -141,8 +141,8 @@ Autoconverted link https://github.com/nodeca/pica (enable linkify to see) ## Images -![Minion](https://octodex.github.com/images/minion.png) -![Stormtroopocat](https://octodex.github.com/images/stormtroopocat.jpg "The Stormtroopocat") +![Minion](https://octodex.github.com/image/minion.png) +![Stormtroopocat](https://octodex.github.com/image/stormtroopocat.jpg "The Stormtroopocat") Like links, Images also have a footnote style syntax @@ -150,7 +150,7 @@ Like links, Images also have a footnote style syntax With a reference later in the document defining the URL location: -[id]: https://octodex.github.com/images/dojocat.jpg "The Dojocat" +[id]: https://octodex.github.com/image/dojocat.jpg "The Dojocat" ## Plugins diff --git a/_posts/2024-02-24-test-04.md b/_posts/2024-02-24-test-04.md index 82dca2f..dab631b 100644 --- a/_posts/2024-02-24-test-04.md +++ b/_posts/2024-02-24-test-04.md @@ -1,6 +1,7 @@ --- title: "The Dark Forest" date: 2024-02-24 11:40:28 +0100 +keywords: "story, forest, dark, adventure" --- Once upon a time, in a land far away, there was a mysterious forest known as the Dark Forest. Legends spoke of its eerie atmosphere and the strange creatures that lurked within its depths. diff --git a/_posts/2024-02-24-test-05.md b/_posts/2024-02-24-test-05.md index f4b21ba..b982d49 100644 --- a/_posts/2024-02-24-test-05.md +++ b/_posts/2024-02-24-test-05.md @@ -1,6 +1,7 @@ --- title: "The Radiant Sun" date: 2024-02-24 12:40:28 +0100 +keywords: "story, sun, light, life" --- Once upon a time, in a faraway galaxy, there was a magnificent star called the Sun. It was the center of the solar system, radiating warmth and light to all the planets that orbited around it. diff --git a/_sass/tallneck/components.scss b/_sass/tallneck/components.scss index 83ce8e3..6c42110 100644 --- a/_sass/tallneck/components.scss +++ b/_sass/tallneck/components.scss @@ -1 +1 @@ -@import "components/post", "components/post-card", "components/post-preview"; +@import "components/post", "components/post-card", "components/post-preview", "components/about.scss"; diff --git a/_sass/tallneck/components/about.scss b/_sass/tallneck/components/about.scss new file mode 100644 index 0000000..fb6d738 --- /dev/null +++ b/_sass/tallneck/components/about.scss @@ -0,0 +1,76 @@ +.about { + display: flex; + flex-flow: row wrap; + justify-content: space-between; + + margin-left: auto; + margin-right: auto; + + + .about--img { + flex: 0 0 40%; + + height: fit-content; + + @media screen and (max-width: 500px){ + flex: 0 0 100%; + } + + img { + width: 100%; + height: auto; + } + border: 3px solid transparent; + border-image: linear-gradient(45deg, var(--accent-primary), var(--accent-secondary)) 1; + } + + .about--content { + flex: 0 0 60%; + padding: 0 20px; + + @media screen and (min-width: 500px){ + p { + margin-block-start: 0; + margin-block-end: 0; + } + } + } +} + +.about-social { + width: 100%; + + display: flex; + flex-flow: row nowrap; + justify-content: center; + gap: 20px; + + a { + display: flex; + flex-flow: row nowrap; + align-items: center; + gap: 10px; + text-decoration: none; + color: var(--text-primary); + transition: color 0.3s ease; + + &:hover { + color: var(--accent-primary); + } + + svg { + aspect-ratio: 1/1; + max-width: 2rem; + max-height: 2rem; + + width: 100%; + height: auto; + + display: inline-block; + + fill: var(--svg-fill); + color: var(--svg-fill); + object-fit: fill; + } + } +} \ No newline at end of file diff --git a/assets/icon/discord.svg b/assets/icon/discord.svg new file mode 100644 index 0000000..46798de --- /dev/null +++ b/assets/icon/discord.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/icon/github.svg b/assets/icon/github.svg new file mode 100644 index 0000000..5ffef05 --- /dev/null +++ b/assets/icon/github.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/icon/gitlab.svg b/assets/icon/gitlab.svg new file mode 100644 index 0000000..92d024c --- /dev/null +++ b/assets/icon/gitlab.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/icon/instagram.svg b/assets/icon/instagram.svg new file mode 100644 index 0000000..b0fb777 --- /dev/null +++ b/assets/icon/instagram.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/icon/linkedin.svg b/assets/icon/linkedin.svg new file mode 100644 index 0000000..ee1bd87 --- /dev/null +++ b/assets/icon/linkedin.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/icon/reddit.svg b/assets/icon/reddit.svg new file mode 100644 index 0000000..40dc537 --- /dev/null +++ b/assets/icon/reddit.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/icon/telegram.svg b/assets/icon/telegram.svg new file mode 100644 index 0000000..849f5be --- /dev/null +++ b/assets/icon/telegram.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/icon/threads.svg b/assets/icon/threads.svg new file mode 100644 index 0000000..deb0bab --- /dev/null +++ b/assets/icon/threads.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/icon/x.svg b/assets/icon/x.svg new file mode 100644 index 0000000..e722f43 --- /dev/null +++ b/assets/icon/x.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/image/about.webp b/assets/image/about.webp new file mode 100644 index 0000000000000000000000000000000000000000..f9eb35e59b8675cf86eaeed27074383ac4d246f9 GIT binary patch literal 52786 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 literal 0 HcmV?d00001 diff --git a/assets/images/default.webp b/assets/image/default.webp similarity index 100% rename from assets/images/default.webp rename to assets/image/default.webp diff --git a/assets/images/logo.svg b/assets/image/logo.svg similarity index 100% rename from assets/images/logo.svg rename to assets/image/logo.svg diff --git a/assets/sitemanifest.json b/assets/sitemanifest.json new file mode 100644 index 0000000..e69de29 From 20e3034ce812475fd3233341ef2f9a63456ce7e8 Mon Sep 17 00:00:00 2001 From: John Toniutti Date: Thu, 29 Feb 2024 11:09:18 +0100 Subject: [PATCH 33/36] Improve about page and various optimizations --- _config.yml | 1 + _includes/head.html | 9 +++- _includes/header.html | 2 +- _layouts/about.html | 13 ++++- _posts/2024-02-22-test-02.md | 6 +-- _sass/tallneck.scss | 4 -- _sass/tallneck/base.scss | 2 +- _sass/tallneck/components/about.scss | 73 ++++++++++++--------------- _sass/tallneck/font.scss | 14 ----- _sass/tallneck/variables.scss | 2 + about.md | 4 +- assets/css/code.scss | 6 +++ assets/icon/mail.svg | 5 ++ assets/icon/x.svg | 2 +- assets/image/about.webp | Bin 52786 -> 18248 bytes 15 files changed, 74 insertions(+), 69 deletions(-) create mode 100644 assets/css/code.scss create mode 100644 assets/icon/mail.svg diff --git a/_config.yml b/_config.yml index 91792f2..4afc71e 100644 --- a/_config.yml +++ b/_config.yml @@ -10,6 +10,7 @@ description: "This is a description" url: "https://jotonedev.github.io/tallneck-test" social: true +email: "test@example.com" github_url: https://example.com/ gitlab_url: https://example.com/ discord_url: https://example.com/ diff --git a/_includes/head.html b/_includes/head.html index 6845a28..5ed42a6 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -22,11 +22,16 @@ {% endif %} + + + + - - + + + diff --git a/_includes/header.html b/_includes/header.html index e03451d..ef77932 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -2,7 +2,7 @@
diff --git a/_layouts/about.html b/_layouts/about.html index 00fe3a6..d1e5b70 100644 --- a/_layouts/about.html +++ b/_layouts/about.html @@ -9,7 +9,7 @@

About me

{% endif %} {% if site.social %} -