diff --git a/.gitignore b/.gitignore index 867d379..42dd6f4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ .bundle .sass-cache _site -Gemfile.lock +.jekyll-cache diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4ee067f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM ruby:3-bookworm +ARG DEBIAN_FRONTEND=noninteractive + +ENV GEM_HOME /gems +ENV PATH $GEM_HOME/bin:$PATH + +RUN gem install jekyll bundler + +VOLUME [ "/app" ] +WORKDIR /app + +COPY Gemfile* ./ +RUN bundle install diff --git a/Gemfile b/Gemfile index c031e2a..7e2d258 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ # frozen_string_literal: true source "https://rubygems.org" -gemspec +gem "jekyll-theme-yat", "1.10.0" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..4d53ddd --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,97 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.5) + public_suffix (>= 2.0.2, < 6.0) + colorator (1.1.0) + concurrent-ruby (1.2.2) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.15.5) + forwardable-extended (2.6.0) + gemoji (3.0.1) + google-protobuf (3.24.0-x86_64-linux) + http_parser.rb (0.8.0) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + jekyll (4.3.2) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-paginate (1.1.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-spaceship (0.10.2) + gemoji (~> 3.0) + jekyll (>= 3.6, < 5.0) + nokogiri (~> 1.6) + rainbow (~> 3.0) + jekyll-theme-yat (1.10.0) + jekyll (> 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-paginate (~> 1.1) + jekyll-seo-tag (~> 2.1) + jekyll-sitemap (~> 1.3) + jekyll-spaceship (~> 0.2) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + nokogiri (1.15.3-x86_64-linux) + racc (~> 1.4) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.3) + racc (1.7.1) + rainbow (3.1.1) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.6) + rouge (4.1.3) + safe_yaml (1.0.5) + sass-embedded (1.64.2-x86_64-linux-gnu) + google-protobuf (~> 3.23) + sass-embedded (1.64.2-x86_64-linux-musl) + google-protobuf (~> 3.23) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.4.2) + webrick (1.8.1) + +PLATFORMS + x86_64-linux + x86_64-linux-musl + +DEPENDENCIES + jekyll-theme-yat (= 1.10.0) + +BUNDLED WITH + 2.3.25 diff --git a/_config.yml b/_config.yml index 2570dbc..b922ed7 100644 --- a/_config.yml +++ b/_config.yml @@ -1,31 +1,11 @@ -# Welcome to Jekyll! -# -# About Theme -# -# Yet another theme for elegant writers with modern flat style and beautiful -# night/dark mode. -# -# Website: https://github.com/jeffreytse/jekyll-theme-yat +# Docs: https://github.com/jeffreytse/jekyll-theme-yat # # You can do anything you want, including projects for your clients, as long # as you mention an attribution back (credit links in footer or project). # See the LICENCE file. -# -# This config file is meant for settings that affect your whole blog, values -# which you are expected to set up once and rarely edit after that. -# -# For technical reasons, this file is *NOT* reloaded automatically when you -# use 'bundle exec jekyll serve'. If you change this file, please restart -# the server process. -# -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. title: Hackerspace Kraków -email: your-email@domain.com +email: info@hackerspace-krk.pl author: Hackerspace Kraków # Copyright setting diff --git a/_includes/sidebar/sponsors.html b/_includes/sidebar/sponsors.html index 20643eb..c8e96df 100644 --- a/_includes/sidebar/sponsors.html +++ b/_includes/sidebar/sponsors.html @@ -1,30 +1,38 @@
-

- Sponsorują nas: -

+

Sponsorują nas

-

- Nasi partnerzy: -

+

Nasi partnerzy

diff --git a/_sass/misc/article-menu.scss b/_sass/misc/article-menu.scss index 418b4f3..356357d 100644 --- a/_sass/misc/article-menu.scss +++ b/_sass/misc/article-menu.scss @@ -16,13 +16,15 @@ .post-menu-content { ul { border-left: 1px solid #e9ecef; - $indent: $base-font-size / 4; + $indent: calc($base-font-size / 4); $active-bgcolor: #ecebec; @for $i from 2 to 7 { .h-h#{$i} { - padding-inline-start: $indent + ($i - 2) * $base-font-size * 1.3; - font-size: $base-font-size * 1.1; + padding-inline-start: calc( + $indent + ($i - 2) * $base-font-size * 1.3 + ); + font-size: calc($base-font-size * 1.1); line-height: 1.4; } } @@ -38,7 +40,7 @@ &:hover { text-decoration: none; - color: lighten($text-color, 30%)!important; + color: lighten($text-color, 30%) !important; } } diff --git a/_sass/misc/theme-toggle.scss b/_sass/misc/theme-toggle.scss index 4b79078..87cda00 100644 --- a/_sass/misc/theme-toggle.scss +++ b/_sass/misc/theme-toggle.scss @@ -1,18 +1,19 @@ .theme-toggle { position: relative; - width: $base-font-size * 7.65; + width: calc($base-font-size * 7.65); margin-top: 10px; margin-right: 60px; margin-left: auto; - transition: .3s cubic-bezier(.4,.03,0,1); + transition: 0.3s cubic-bezier(0.4, 0.03, 0, 1); - label, .toggle { + label, + .toggle { border-radius: 100px; } label { display: block; - background-color: rgba(120,120,120,.15); + background-color: rgba(120, 120, 120, 0.15); cursor: pointer; } @@ -21,8 +22,8 @@ width: 50%; height: 100%; background-color: #fff; - box-shadow: 0 2px 15px rgba(0,0,0,.15); - transition: transform .2s cubic-bezier(0.25, 0.46, 0.45, 0.94); + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.15); + transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .names { @@ -39,7 +40,7 @@ .names p { margin-bottom: 0; line-height: 24px; - opacity: .5; + opacity: 0.5; } label .light { @@ -58,7 +59,7 @@ /* Toggle */ [type="checkbox"]:checked ~ label .toggle { transform: translateX(100%); - background-color: #34323D; + background-color: #34323d; } [type="checkbox"]:checked ~ label .dark { @@ -78,7 +79,7 @@ margin-right: 20px; .names { - font-size: .85em; + font-size: 0.85em; } } } diff --git a/_sass/yat/_base.scss b/_sass/yat/_base.scss index cb83d82..6e6aaee 100644 --- a/_sass/yat/_base.scss +++ b/_sass/yat/_base.scss @@ -1,15 +1,26 @@ /** * Reset some basic elements */ -body, h1, h2, h3, h4, h5, h6, -p, blockquote, pre, hr, -dl, dd, ol, ul, figure { +body, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +hr, +dl, +dd, +ol, +ul, +figure { margin: 0; padding: 0; } - - /** * Basic styling */ @@ -23,9 +34,9 @@ body { background-color: $background-color; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; - -moz-font-feature-settings: "kern" 1; - -o-font-feature-settings: "kern" 1; - font-feature-settings: "kern" 1; + -moz-font-feature-settings: "kern" 1; + -o-font-feature-settings: "kern" 1; + font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; @@ -33,20 +44,26 @@ body { transition-duration: $base-transition-duration; } - - /** * Set `margin-bottom` to maintain vertical rhythm */ -h1, h2, h3, h4, h5, h6, -p, blockquote, pre, -ul, ol, dl, figure, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +ul, +ol, +dl, +figure, %vertical-rhythm { - margin-bottom: $spacing-unit / 2; + margin-bottom: calc($spacing-unit / 2); } - - /** * `main` element */ @@ -54,8 +71,6 @@ main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ } - - /** * Images */ @@ -64,8 +79,6 @@ img { vertical-align: middle; } - - /** * Figures */ @@ -77,12 +90,11 @@ figcaption { font-size: $small-font-size; } - - /** * Lists */ -ul, ol { +ul, +ol { margin-left: $spacing-unit; } @@ -93,12 +105,15 @@ li { } } - - /** * Headings */ -h1, h2, h3, h4, h5, h6 { +h1, +h2, +h3, +h4, +h5, +h6 { font-weight: $base-font-weight * 1.5; } @@ -128,7 +143,7 @@ a { blockquote { color: $grey-color; border-left: 4px solid $grey-color-light; - padding-left: $spacing-unit / 2; + padding-left: calc($spacing-unit / 2); @include relative-font-size(1.125); letter-spacing: -1px; font-style: italic; @@ -138,8 +153,6 @@ blockquote { } } - - /** * Code formatting */ @@ -163,23 +176,23 @@ pre { > code { display: inline-block; - padding: 20px!important; + padding: 20px !important; background-color: transparent; border: 0; } - table, pre { + table, + pre { margin-bottom: 0; - .gutter, .code { + .gutter, + .code { padding: 6px; border: none; } } } - - /** * Wrapper */ @@ -191,8 +204,6 @@ pre { @extend %clearfix; } - - /** * Clearfix */ @@ -202,7 +213,6 @@ pre { clear: both; } - /** * Tables */ @@ -221,8 +231,9 @@ table { } } - th, td { - padding: ($spacing-unit / 3) ($spacing-unit / 2); + th, + td { + padding: calc($spacing-unit / 3) calc($spacing-unit / 2); } th { @@ -298,7 +309,8 @@ table { color: $selection-color; background-color: $selection-background-color; } -::-moz-selection { /* Code for Firefox */ +::-moz-selection { + /* Code for Firefox */ color: $selection-color; background-color: $selection-background-color; } diff --git a/_sass/yat/_layout.scss b/_sass/yat/_layout.scss index 4772a22..b14c7f8 100644 --- a/_sass/yat/_layout.scss +++ b/_sass/yat/_layout.scss @@ -8,14 +8,15 @@ html { } } - &[data-scroll-status='top'] { + &[data-scroll-status="top"] { header.site-header-transparent { height: 0; background-color: transparent; - transition: 0.1s height,background-color,box-shadow; + transition: 0.1s height, background-color, box-shadow; &.site-header { - .site-brand-inner, .page-link { + .site-brand-inner, + .page-link { color: #333; transition: 0.1s color; } @@ -44,7 +45,7 @@ html { } } - &[data-scroll-status='down'] { + &[data-scroll-status="down"] { header.site-header { top: -$header-height; } @@ -63,7 +64,7 @@ html { height: $header-height; width: 100%; transition: height 0.2s, text-shadow 0.2s, top 0.2s; - box-shadow: 0 1px 0 0 rgba(0, 0, 0, .06); + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.06); // Positioning context for the mobile navigation icon @include flex-sticky(0); @@ -74,7 +75,7 @@ html { padding: 0 60px; max-width: 100%; transition: 0.2s margin; - background: rgba(238,238,238,0.86); + background: rgba(238, 238, 238, 0.86); @include media-query(1024px) { margin: 0; @@ -102,13 +103,14 @@ html { letter-spacing: -1px; transition: 0.1s filter color; - &, &:visited { + &, + &:visited { color: $header-text-color; } .site-favicon { display: inline-block; - height: $header-height / 1.2; + height: calc($header-height / 1.2); margin-right: 5px; } } @@ -169,7 +171,7 @@ html { clear: both; display: none; border-radius: 3px; - box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, .06); + box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.06); } input:checked ~ .trigger { @@ -190,7 +192,7 @@ html { * Site footer */ .site-footer { - @include relative-font-size(1.0); + @include relative-font-size(1); color: $footer-text-color; background-color: $footer-background-color; text-align: left; @@ -251,7 +253,7 @@ html { .page-content { @extend %flex-1; /* <-- Keep footer on the bottom */ -ms-flex: none; /* <-- Fix IE footer issue */ - padding: 2em 0 ; + padding: 2em 0; } .page-heading { @@ -288,7 +290,7 @@ html { text-decoration: none; &:after { - content: 'NEW'; + content: "NEW"; position: absolute; margin-left: 8px; margin-top: 3px; @@ -310,14 +312,14 @@ html { .post-link { @include relative-font-size(1.65); - font-weight: $base-font-weight * 1.5; + font-weight: calc($base-font-weight * 1.5); color: #333; } .post-meta { color: $grey-color; font-size: $base-font-size; - margin-bottom: $spacing-unit * 0.5; + margin-bottom: calc($spacing-unit * 0.5); } .post-excerpt { @@ -348,7 +350,7 @@ html { text-align: center; & > .previous:before { - content: ' '; + content: " "; border: solid #787878; border-width: 0 2px 2px 0; display: inline-block; @@ -359,7 +361,7 @@ html { } & > .next:after { - content: ' '; + content: " "; border: solid #787878; border-width: 0 2px 2px 0; display: inline-block; @@ -369,7 +371,8 @@ html { -webkit-transform: rotate(-45deg); } - .previous span, .next span { + .previous span, + .next span { color: #b3b3b3; } @@ -379,7 +382,6 @@ html { } } - /** * Posts */ @@ -435,21 +437,30 @@ html { } } - img, svg, iframe { + img, + svg, + iframe { margin-left: auto; margin-right: auto; } - img:not(.emoji), svg, iframe { + img:not(.emoji), + svg, + iframe { display: block; max-height: 50vh; } - h2, h3, h4, h5, h6 { + h2, + h3, + h4, + h5, + h6 { margin: 60px 0 19px; } - p, hr { + p, + hr { margin-bottom: 24px; } @@ -461,7 +472,7 @@ html { } .post-related { - &>*:first-child { + & > *:first-child { @include relative-font-size(1.425); color: #333; margin-bottom: 14px; @@ -480,7 +491,7 @@ html { } &:after { - content: 'NEW'; + content: "NEW"; position: absolute; margin-left: 8px; margin-top: 3px; @@ -504,7 +515,6 @@ html { padding-top: 25px; } - /** * Posts misc */ @@ -522,7 +532,7 @@ html { } .previous:before { - content: ' '; + content: " "; border: solid #787878; border-width: 0 2px 2px 0; display: inline-block; @@ -533,7 +543,7 @@ html { } .next:after { - content: ' '; + content: " "; border: solid #787878; border-width: 0 2px 2px 0; display: inline-block; @@ -544,7 +554,6 @@ html { } } - /** * Archives page */ @@ -569,7 +578,6 @@ html { } } - /** * Page banner */ @@ -686,16 +694,15 @@ html { } @include media-query($on-palm) { - height: $banner-height / 1.5; + height: calc($banner-height / 1.5); } } - /** * Layout and sidebar */ .framework { - @extend %flex; + @extend %flex; .main { @extend %flex-1; @@ -710,11 +717,9 @@ html { @include media-query($on-laptop) { display: none; } - } } - /** * Segments page */ @@ -725,7 +730,7 @@ html { } .segment-name { - font-weight: $base-font-weight * 1.5; + font-weight: calc($base-font-weight * 1.5); margin-bottom: 8px; position: relative; @@ -736,7 +741,7 @@ html { } &:hover:before { - content: '#'; + content: "#"; left: -1em; position: absolute; } @@ -759,7 +764,7 @@ html { } &:after { - content: 'NEW'; + content: "NEW"; position: absolute; margin-left: 8px; margin-top: 3px; @@ -787,6 +792,22 @@ html { vertical-align: baseline; } +div.sponsors { + border-left: solid 1px #00000018; + padding-left: 1em; + padding-right: 1em; + margin-top: 0em; + padding-top: 0em; +} + +.sponsors h2:not(:first-child) { + margin-top: 2em; +} + +.sponsors h2 { + text-align: center; +} + img.sponsors { max-height: 5em; margin: 0 auto; diff --git a/assets/css/main.scss b/assets/css/main.scss index bc45b8a..02d5b23 100644 --- a/assets/css/main.scss +++ b/assets/css/main.scss @@ -24,22 +24,22 @@ $brand-color: map-get($brand-colors, "orangered"); @if map-has-key($theme-colors, $theme-name) { $theme-color: map-get($theme-colors, $theme-name); } @else if str-index($theme-name, "#") == 1 { - $theme-color: {{ site.theme_color | default: '#ffffff' }}; + $theme-color: "{{ site.theme_color | default: '#ffffff' }}"; } @if map-has-key($brand-colors, $brand-name) { $brand-color: map-get($brand-colors, $brand-name); } @else if str-index($brand-name, "#") == 1 { - $brand-color: {{ site.brand_color | default: '#ff5100' }}; + $brand-color: "{{ site.brand_color | default: '#ff5100' }}"; } -$content-width: {{ site.content_width | default: '920px' }}; +$content-width: "{{ site.content_width | default: '920px' }}"; // Click to top theme -$click-to-top-light-background-color: {{ site.click_to_top.light.background_color | default: "white" }}; -$click-to-top-light-color: {{ site.click_to_top.light.color | default: "#454545" }}; -$click-to-top-dark-background-color: {{ site.click_to_top.dark.background_color | default: "#34323d" }}; -$click-to-top-dark-color: {{ site.click_to_top.dark.color | default: "#bbb" }}; +$click-to-top-light-background-color: "{{ site.click_to_top.light.background_color | default: white }}"; +$click-to-top-light-color: "{{ site.click_to_top.light.color | default: '#454545' }}"; +$click-to-top-dark-background-color: "{{ site.click_to_top.dark.background_color | default: '#34323d' }}"; +$click-to-top-dark-color: "{{ site.click_to_top.dark.color | default: '#bbb' }}"; // Selection styles $selection-color: unquote("{{ site.selection.color }}"); diff --git a/docker-compose.yml b/docker-compose.yml index 677734b..9f105c0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,11 @@ -version: '3' +version: "3" services: jekyll: - image: jekyll/builder - command: jekyll serve + build: . + command: jekyll serve --trace --host 0.0.0.0 volumes: - - .:/srv/jekyll:Z + - .:/app ports: - "4000:4000" restart: "no"