From 6b0249f5dc34af1d3333a34757156cb3af4eee40 Mon Sep 17 00:00:00 2001 From: Bashynx Date: Tue, 10 Feb 2026 17:35:59 +0100 Subject: [PATCH] Updated design of the site as well as added new event --- _config.yml | 16 ++- package-lock.json | 116 ++++++++++++++++++ package.json | 1 + source/_data/partners.yml | 12 ++ source/_posts/2026/events/2026_01_16.md | 29 +++-- source/_posts/2026/events/2026_03_12.md | 18 +++ source/rss2.xml | 51 ++++++++ themes/openalt/_config.yml | 5 +- themes/openalt/layout/_partial/event.ejs | 44 +++++++ .../layout/_partial/index_minifeed.ejs | 37 +++--- .../openalt/layout/_partial/post_preview.ejs | 55 +++++++-- themes/openalt/layout/post.ejs | 15 +++ themes/openalt/source/css/style.css | 81 ++++++++++-- 13 files changed, 433 insertions(+), 47 deletions(-) create mode 100644 source/_posts/2026/events/2026_03_12.md create mode 100644 source/rss2.xml create mode 100644 themes/openalt/layout/_partial/event.ejs diff --git a/_config.yml b/_config.yml index a6d8b16..286a142 100644 --- a/_config.yml +++ b/_config.yml @@ -13,7 +13,7 @@ timezone: '' # URL ## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project' -url: http://openalt.ro +url: https://openalt.ro permalink: :year/:month/:day/:title/ permalink_defaults: pretty_urls: @@ -102,3 +102,17 @@ theme: openalt ## Docs: https://hexo.io/docs/one-command-deployment deploy: type: '' + +feed: + enable: true + type: rss2 + path: rss2.xml + limit: 15 + hub: + content: + content_limit: 140 + content_limit_delim: ' ' + order_by: -date + icon: ./source/images/assets/OpenAltRomania.svg + autodiscovery: true + url: https://openalt.ro \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 7773fdd..ba72505 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "hexo": "^8.0.0", "hexo-generator-archive": "^2.0.0", "hexo-generator-category": "^2.0.0", + "hexo-generator-feed": "^3.0.0", "hexo-generator-index": "^4.0.0", "hexo-generator-tag": "^2.0.0", "hexo-renderer-ejs": "^2.0.0", @@ -1339,6 +1340,121 @@ "node": ">=14" } }, + "node_modules/hexo-generator-feed": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hexo-generator-feed/-/hexo-generator-feed-3.0.0.tgz", + "integrity": "sha512-Jo35VSRSNeMitS2JmjCq3OHAXXYU4+JIODujHtubdG/NRj2++b3Tgyz9pwTmROx6Yxr2php/hC8og5AGZHh8UQ==", + "license": "MIT", + "dependencies": { + "hexo-util": "^2.1.0", + "nunjucks": "^3.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/hexo-generator-feed/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/hexo-generator-feed/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/hexo-generator-feed/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/hexo-generator-feed/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/hexo-generator-feed/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/hexo-generator-feed/node_modules/hexo-util": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/hexo-util/-/hexo-util-2.7.0.tgz", + "integrity": "sha512-hQM3h34nhDg0bSe/Tg1lnpODvNkz7h2u0+lZGzlKL0Oufp+5KCAEUX9wal7/xC7ax3/cwEn8IuoU75kNpZLpJQ==", + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.2", + "camel-case": "^4.0.0", + "cross-spawn": "^7.0.0", + "deepmerge": "^4.2.2", + "highlight.js": "^11.0.1", + "htmlparser2": "^7.0.0", + "prismjs": "^1.17.1", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/hexo-generator-feed/node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, "node_modules/hexo-generator-index": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/hexo-generator-index/-/hexo-generator-index-4.0.0.tgz", diff --git a/package.json b/package.json index 9dd9528..b156bad 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "hexo": "^8.0.0", "hexo-generator-archive": "^2.0.0", "hexo-generator-category": "^2.0.0", + "hexo-generator-feed": "^3.0.0", "hexo-generator-index": "^4.0.0", "hexo-generator-tag": "^2.0.0", "hexo-renderer-ejs": "^2.0.0", diff --git a/source/_data/partners.yml b/source/_data/partners.yml index df94e42..18d028f 100644 --- a/source/_data/partners.yml +++ b/source/_data/partners.yml @@ -18,6 +18,18 @@ logo: /images/site/partners/HackmanClub.png bio: - title: "Friendly Events" + list: + - enable: false + name: REAM + url: https://www.linkedin.com/company/dcg40264/posts/?feedView=all + logo: /images/site/partners/REAM.png + bio: "REAM (Read and Examine Articles en Masse) is a type of get together where we talk about an article that was voted on by regular members. You can think of it like a book club, but instead of books, we read articles. They are (usually) much shorter than books, and there are lots to talk about and discuss." + - enable: false + name: DefCon Group Cluj + url: https://www.linkedin.com/company/dcg40264/posts/?feedView=all + logo: /images/site/partners/defcon.jpg + bio: "Bringing together Cluj hackers and security professionals to learn, collaborate, and network in an open space." +- title: "Venue" list: - enable: false name: REAM diff --git a/source/_posts/2026/events/2026_01_16.md b/source/_posts/2026/events/2026_01_16.md index 8960146..cba7cb4 100644 --- a/source/_posts/2026/events/2026_01_16.md +++ b/source/_posts/2026/events/2026_01_16.md @@ -1,8 +1,8 @@ --- title: "First OpenAlt Romania Meetup" -author: Bashy +author: "OpenAlt Romania" date: 2026-01-16 18:00:00 -description: First ever OpenAlt Romania meetup. The meeting will take place on 16th January 2026 at 6PM. The meeting location will be TBD. +description: First ever OpenAlt Romania meetup. The meeting will take place on 16th January 2026 at 6PM. The meeting location will be at Broadridge. categories: - "Events" tags: @@ -13,9 +13,24 @@ event: date: "16th January 2026" time: "6 PM" place: - name: "TBD" - link: "https://openalt.org" ---- + name: "Broadridge" + link: "https://maps.app.goo.gl/sDkLTFna7XbgVqgk8" + program: + - name: "Welcome to OpenAlt" + speaker: + name: "Viski Barbora" + url: https://bashynx.com/ + length: 15 + - name: "What is Git?" + speaker: + name: "Kovács György" + url: http://gyuri.world/ + length: 30 + - name: "FOSS in Education" + speaker: + name: "Natsakis Tassos" + url: https://natsakis.com + length: 60 + video: '' +--- First in a series of meetups focused on Free and Open Source Technologies, where you can socialize with like-minded individuals and learn something new. - -We’re currently looking for Speakers who’d like to give a talk on any interesting topic related to Free and Open Source Software, Hardware, Data, or other technologies. If you have something exciting to share, sign up [here](http://speakers.openalt.ro/) diff --git a/source/_posts/2026/events/2026_03_12.md b/source/_posts/2026/events/2026_03_12.md new file mode 100644 index 0000000..2378118 --- /dev/null +++ b/source/_posts/2026/events/2026_03_12.md @@ -0,0 +1,18 @@ +--- +title: "OpenAlt Romania #2" +author: "OpenAlt Romania" +date: 2026-03-12 18:00:00 +description: Second OpenAlt Romania meetup. +categories: + - "Events" +tags: + - "OpenAlt Romania" + - "IRL Events" + - "Events" +event: + date: "12th March 2026" + time: "6 PM" + place: "TBD" + program: "TBD" + video: "TBD" +--- diff --git a/source/rss2.xml b/source/rss2.xml new file mode 100644 index 0000000..ca13536 --- /dev/null +++ b/source/rss2.xml @@ -0,0 +1,51 @@ + + + + {{ config.title }} + {{ url }} + {% if icon %} + + {{ icon }} + {{ config.title }} + {{ url }} + + {% endif %} + + {% if config.feed.hub %}{% endif %} + {{ config.description }} + {% if posts.first().updated %}{{ posts.first().updated.toDate().toUTCString() }}{% else %}{{ posts.first().date.toDate().toUTCString() }}{% endif %} + http://hexo.io/ + {% for post in posts.toArray() %} + + {{ post.title }} + {{ post.permalink | uriencode }} + {{ post.permalink | uriencode }} + {{ post.date.toDate().toUTCString() }} + {% if post.description %} + {{ post.description }} + {% elif post.intro %} + {{ post.intro }} + {% elif post.excerpt %} + {{ post.excerpt }} + {% endif %} + {% if post.photos %} + + {% endif %} + {% if config.feed.content and post.content %} + + {% endif %} + {% for category in post.categories.toArray() %} + {{ category.name }} + {% endfor %} + {% for tag in post.tags.toArray() %} + {{ tag.name }} + {% endfor %} + {% if post.comments %} + {{ post.permalink | uriencode }}#disqus_thread + {% endif %} + + {% endfor %} + + diff --git a/themes/openalt/_config.yml b/themes/openalt/_config.yml index 05baf23..cfdbb22 100644 --- a/themes/openalt/_config.yml +++ b/themes/openalt/_config.yml @@ -20,13 +20,16 @@ social: - url: https://mastodon.social/@OpenAltRo icon: fab fa-mastodon enable: true + - url: https://vhsky.cz/c/openaltro/videos + icon: fa-solid fa-circle-play + enable: true - url: https://www.linkedin.com/company/openaltro/ icon: fab fa-linkedin enable: true - url: https://matrix.to/#/#OpenAltRO:matrix.org icon: fab fa-hashtag enable: true - - url: https://gitlab.com/oss-bashynx/openalt_ro + - url: https://gitlab.com/OpenAlt/OpenAltRO icon: fab fa-gitlab enable: true diff --git a/themes/openalt/layout/_partial/event.ejs b/themes/openalt/layout/_partial/event.ejs new file mode 100644 index 0000000..740951f --- /dev/null +++ b/themes/openalt/layout/_partial/event.ejs @@ -0,0 +1,44 @@ + + +<% if(page.event.video != "TBD") { %> +
+ <%- page.event.video %> +
+<%} %> + +
+

+ <%- page.event.date %> at <%- page.event.time %> +

+
+ +
+

+ <% if(page.event.place != "TBD") { %> + <%- page.event.place.name %> + <%} else { %> + TBD + <% } %> +

+
+ +<% if(page.event.program != "TBD") { %> +
+

AGENDA

+ +

<%- page.event.program[0].name %> by <%- page.event.program[0].speaker.name %>

+

B R E A K

+

<%- page.event.program[1].name %> by <%- page.event.program[1].speaker.name %>

+

B R E A K

+

<%- page.event.program[2].name %> by <%- page.event.program[2].speaker.name %>

+
+<% } %> + +
+ Would you like to speak on this or our next meetup?
Submit your talk here: speakers.openalt.ro. +
+ +
+<%- page.content %> +
+ diff --git a/themes/openalt/layout/_partial/index_minifeed.ejs b/themes/openalt/layout/_partial/index_minifeed.ejs index d5af294..915dd03 100644 --- a/themes/openalt/layout/_partial/index_minifeed.ejs +++ b/themes/openalt/layout/_partial/index_minifeed.ejs @@ -1,21 +1,24 @@
- <% counter = 3 %> - <% page.posts.forEach(function(post) { %> - <% if (counter != 0) { %> - <% isEvent = false %> - <% post.tags.data.forEach(function(tag) { %> - <% if (tag.name == "Events") { %> - <% isEvent = true %> - <% } %> - <% }); %> +

Blog posts

+
+ <% counter = 3 %> + <% page.posts.forEach(function(post) { %> + <% if (counter != 0) { %> + <% isEvent = false %> + <% post.tags.data.forEach(function(tag) { %> + <% if (tag.name == "Events") { %> + <% isEvent = true %> + <% } %> + <% }); %> - <% if (isEvent == false) { %> - <%- include('post_preview', - { post: post, - source: "index" - }) %> - <% counter = counter - 1 %> + <% if (isEvent == false) { %> + <%- include('post_preview', + { post: post, + source: "index" + }) %> + <% counter = counter - 1 %> + <% } %> <% } %> - <% } %> - <% }); %> + <% }); %> +
\ No newline at end of file diff --git a/themes/openalt/layout/_partial/post_preview.ejs b/themes/openalt/layout/_partial/post_preview.ejs index 701c570..09987cd 100644 --- a/themes/openalt/layout/_partial/post_preview.ejs +++ b/themes/openalt/layout/_partial/post_preview.ejs @@ -8,24 +8,55 @@ %> -<% if(isEvent && (source == "index") && (event == 2) ) { %> -
- <%=  post.title || " style="max-height: 250px" width="300px" /> +<% if(isEvent) { %> + <% if(source == "index") { %> + <% if(event == 2) { %> +
+ <%=  post.title || " style="max-height: 250px" width="300px" /> -

<%= post.title || "Untitled" %>

+ <%- include('event', { page: post }) %> +
+ <% } else if(event == 1) { %> +

Video of our last event: <%= post.title || "Untitled" %>

-

- <%- post.event.date %> at <%- post.event.time %> -

+ <% if(post.event.video != "TBD") { %> +
+ <%- post.event.video %> +
+ <%} %> + <% } %> + <% } else { %> +
+
+ <% if(post.event.video != "TBD") { %> +
+ <% } else { %> +
+ <% } %>> +
+

<%= post.title || "Untitled" %>

+
+

<%= post.description %>

-

- <%- post.event.place.name %> -

+

Read More...

-
- <%- post.content %> +
+ <% post.tags.data.forEach(function(tag) { %> + #<%= tag.name %> + <% }); %> +
+
+ <% if(post.event.video != "TBD") { %> +
+ <%- post.event.video %> +
+ <% } %> +
+ <% } %> <% } else { %>
<% if(post.photos && post.photos.length) { %> diff --git a/themes/openalt/layout/post.ejs b/themes/openalt/layout/post.ejs index b622273..9c1e7b9 100644 --- a/themes/openalt/layout/post.ejs +++ b/themes/openalt/layout/post.ejs @@ -1,3 +1,12 @@ +<% + isEvent = false + page.tags.data.forEach(function(tag) { + if ( (tag.name == "Events") && (!isEvent) ) { + isEvent = true + } + }); +%> +
<% if(page.photos && page.photos.length) { %>
@@ -6,6 +15,10 @@ <% } %>
+ <% if(isEvent) { %> +
+ <%- include('_partial/event') %> + <% } else { %>

<%= page.title || "Untitled" %>

@@ -24,6 +37,8 @@ <% } else {console.log(page)} %>
+ <% } %> +
\ No newline at end of file diff --git a/themes/openalt/source/css/style.css b/themes/openalt/source/css/style.css index 5b75c75..09892be 100644 --- a/themes/openalt/source/css/style.css +++ b/themes/openalt/source/css/style.css @@ -54,6 +54,11 @@ h4 { color: #dcdcdf; } +.vhsky-video { + width: 75%; + margin-bottom: 1em; +} + a { text-decoration: none; color: #31486b; @@ -132,6 +137,15 @@ main { flex: 1; } +.program{ + padding: 10px !important; +} + +.break{ + font-weight: 100 !important; + letter-spacing: 0.5em !important; +} + /* Homepage settings */ .post-home img { border-radius: 5px 5px 0 0; @@ -166,8 +180,33 @@ main { flex-direction: column; } +.post-feed .post-with-video { + display: flex; + flex-wrap: wrap; + align-items: stretch; + gap: 0; +} + +.post-feed .post-with-video iframe { + border-radius: 0 5px 5px 0; + height: 100%; + object-fit: cover; +} + +.post-feed .post-with-video .post-vhsky-cover { + width: 49.4% !important; + display: flex; +} + +.post-feed .post-with-video .post-blerp { + border-radius: 5px 0 0 5px; + width: 49.4% !important; + display: flex; + flex-direction: column; +} + .post-feed .post-without-image .post-blerp, -.post-event .post-without-image .post-blerp { +.post-feed .post-without-video .post-blerp { border-radius: 5px; } @@ -223,6 +262,12 @@ iframe { padding: 40px 0; } +.post .post-event{ + width: 75%; + margin: 0 auto; + padding: 40px 0; +} + /* Post - Tags */ .tags { text-align: right; @@ -263,10 +308,6 @@ section { max-width: 600px; } -.event-spacer{ - margin: 10px 0; -} - .event-wrapper img{ vertical-align: middle; margin: auto; @@ -283,14 +324,36 @@ section { } +/* Event blog page */ +.post-event { + text-align: center; + margin: 0 auto; + min-height: calc(100vh - 63px); + display: block; +} + +.event-wrapper div, +.post-event div{ + margin: 2.5em 0; +} + +.event .post-event { + padding-bottom: 5px; +} + +.event .post-event a { + color: #fcd116; +} + + /* Feed Preview */ -#minifeed { +.minifeed { display: flex; flex-wrap: wrap; gap: 1.25%; } -#minifeed .post { +.minifeed .post { width: 32.5%; } @@ -399,11 +462,11 @@ section { @media (max-width: 1250px) { - #minifeed { + .minifeed { flex-direction: column; } - #minifeed .post { + .minifeed .post { width: 100%; }