Updated design of the site as well as added new event

This commit is contained in:
Bashy 2026-02-10 17:35:59 +01:00
parent 1e33326b03
commit 6b0249f5dc
13 changed files with 433 additions and 47 deletions

View file

@ -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

116
package-lock.json generated
View file

@ -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",

View file

@ -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",

View file

@ -29,3 +29,15 @@
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
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."

View file

@ -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: '<iframe title="OpenAlt Romania #1 - January 2026" width="560" height="315" src="https://vhsky.cz/videos/embed/bSdLQJV81PfBvzbHn75qLX" allow="fullscreen" sandbox="allow-same-origin allow-scripts allow-popups allow-forms" style="border: 0px;"></iframe>'
---
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.
Were currently looking for Speakers whod 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/)

View file

@ -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"
---

51
source/rss2.xml Normal file
View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>{{ config.title }}</title>
<link>{{ url }}</link>
{% if icon %}
<image>
<url>{{ icon }}</url>
<title>{{ config.title }}</title>
<link>{{ url }}</link>
</image>
{% endif %}
<atom:link href="{{ feed_url | uriencode }}" rel="self" type="application/rss+xml"/>
{% if config.feed.hub %}<atom:link href="{{ config.feed.hub | uriencode }}" rel="hub"/>{% endif %}
<description>{{ config.description }}</description>
<pubDate>{% if posts.first().updated %}{{ posts.first().updated.toDate().toUTCString() }}{% else %}{{ posts.first().date.toDate().toUTCString() }}{% endif %}</pubDate>
<generator>http://hexo.io/</generator>
{% for post in posts.toArray() %}
<item>
<title>{{ post.title }}</title>
<link>{{ post.permalink | uriencode }}</link>
<guid>{{ post.permalink | uriencode }}</guid>
<pubDate>{{ post.date.toDate().toUTCString() }}</pubDate>
{% if post.description %}
<description>{{ post.description }}</description>
{% elif post.intro %}
<description>{{ post.intro }}</description>
{% elif post.excerpt %}
<description>{{ post.excerpt }}</description>
{% endif %}
{% if post.photos %}
<enclosure url="{{ url + post.photos[0] | uriencode }}" type="image/jpeg"/>
{% endif %}
{% if config.feed.content and post.content %}
<content:encoded><![CDATA[{{ post.content | noControlChars | safe }}]]></content:encoded>
{% endif %}
{% for category in post.categories.toArray() %}
<category domain="{{ url + category.path | uriencode }}">{{ category.name }}</category>
{% endfor %}
{% for tag in post.tags.toArray() %}
<category domain="{{ url + tag.path | uriencode }}">{{ tag.name }}</category>
{% endfor %}
{% if post.comments %}
<comments>{{ post.permalink | uriencode }}#disqus_thread</comments>
{% endif %}
</item>
{% endfor %}
</channel>
</rss>

View file

@ -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

View file

@ -0,0 +1,44 @@
<% if(page.event.video != "TBD") { %>
<div>
<%- page.event.video %>
</div>
<%} %>
<div>
<h1 class="event">
<%- page.event.date %> at <%- page.event.time %>
</h1>
</div>
<div>
<h3 class="event">
<% if(page.event.place != "TBD") { %>
<a href='<%- page.event.place.link %>'><i class="fa fa-map-marker-alt"></i> <%- page.event.place.name %></a>
<%} else { %>
<i class="fa fa-map-marker-alt"></i>TBD
<% } %>
</h3>
</div>
<% if(page.event.program != "TBD") { %>
<div>
<h2> AGENDA </h2>
<!-- When agenda is public -->
<h2 class="program"><%- page.event.program[0].name %> by <a href="<%- page.event.program[0].speaker.url %>"><%- page.event.program[0].speaker.name %></a></h2>
<h2 class="program break">B R E A K</h2>
<h2 class="program"><%- page.event.program[1].name %> by <a href="<%- page.event.program[1].speaker.url %>"><%- page.event.program[1].speaker.name %></a></h2>
<h2 class="program break">B R E A K</h2>
<h2 class="program"><%- page.event.program[2].name %> by <a href="<%- page.event.program[2].speaker.url %>"><%- page.event.program[2].speaker.name %></a></h2>
</div>
<% } %>
<div class="smoll">
Would you like to speak on this or our next meetup? <br> Submit your talk here: <a href="http://speakers.openalt.ro/">speakers.openalt.ro</a>.
</div>
<div class="post-content">
<%- page.content %>
</div>

View file

@ -1,4 +1,6 @@
<section id="minifeed">
<h1>Blog posts</h1>
<div class="minifeed">
<% counter = 3 %>
<% page.posts.forEach(function(post) { %>
<% if (counter != 0) { %>
@ -18,4 +20,5 @@
<% } %>
<% } %>
<% }); %>
</div>
</section>

View file

@ -8,24 +8,55 @@
%>
<!-- This is the template for the post. It is used to display the posts in the feeds. -->
<% if(isEvent && (source == "index") && (event == 2) ) { %>
<% if(isEvent) { %>
<% if(source == "index") { %>
<% if(event == 2) { %>
<div class="event-wrapper">
<img src="/images/assets/OpenAltRomania.svg" alt="<%= post.title || "Untitled" %>" style="max-height: 250px" width="300px" />
<a href='<%= url_for(post.path) %>'><h1><%= post.title || "Untitled" %></h1></a>
<%- include('event', { page: post }) %>
</div>
<% } else if(event == 1) { %>
<a href='<%= url_for(post.path) %>'><h1>Video of our last event: <%= post.title || "Untitled" %></h1></a>
<h2 class="event-spacer">
<%- post.event.date %> at <%- post.event.time %>
</h2>
<% if(post.event.video != "TBD") { %>
<div class="vhsky-video">
<%- post.event.video %>
</div>
<%} %>
<% } %>
<% } else { %>
<div class="post">
<div class="post-feed">
<% if(post.event.video != "TBD") { %>
<div class="post-with-video">
<% } else { %>
<div class="post-without-video">
<% } %>>
<div class="post-blerp">
<a href='<%= url_for(post.path) %>'><h2><%= post.title || "Untitled" %></h2>
<div class="date smoll">
<%- include('date', { date: post.date.toISOString() }) %></a>
</div>
<p class="post_description"><%= post.description %></p>
<h3 class="event-spacer"Bashy.jpg>
<a href='<%- post.event.place.link %>'><i class="fa fa-map-marker-alt"></i> <%- post.event.place.name %></a>
</h3>
<a href='<%= url_for(post.path) %>'><p>Read More...</p></a>
<div class="post-content">
<%- post.content %>
<div class="tags smoll">
<% post.tags.data.forEach(function(tag) { %>
<a href="<%= url_for('/tags/' + tag.slug || tag.name.replace(/\s+/g, '-')) %>">#<%= tag.name %></a>
<% }); %>
</div>
</div>
<% if(post.event.video != "TBD") { %>
<div class="post-vhsky-cover">
<%- post.event.video %>
</div>
<% } %>
</div>
</div>
</div>
<% } %>
<% } else { %>
<div class="post">
<% if(post.photos && post.photos.length) { %>

View file

@ -1,3 +1,12 @@
<%
isEvent = false
page.tags.data.forEach(function(tag) {
if ( (tag.name == "Events") && (!isEvent) ) {
isEvent = true
}
});
%>
<div class="post-page post">
<% if(page.photos && page.photos.length) { %>
<div class="post-cover">
@ -6,6 +15,10 @@
<% } %>
<div class="post-text-wrapper">
<% if(isEvent) { %>
<div class="post-event">
<%- include('_partial/event') %>
<% } else { %>
<div class="post-text">
<div class="post-header">
<h1 class="article"><%= page.title || "Untitled" %></h1>
@ -24,6 +37,8 @@
<% } else {console.log(page)} %>
</div>
</div>
<% } %>
</div>
</div>
</div>

View file

@ -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%;
}