Skip to content

Commit

Permalink
Index page revamp
Browse files Browse the repository at this point in the history
  • Loading branch information
Krever committed Nov 6, 2024
1 parent f054a7e commit 720320d
Show file tree
Hide file tree
Showing 3 changed files with 274 additions and 191 deletions.
8 changes: 1 addition & 7 deletions 2024-11-scala-io/slides.html
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
<div id=left-6 style="font-family: ldr-ofer-michael">
<h1 style="text-transform: none">Decisions4s</h1>
<h1 style="text-transform: none">Decisions<span style="color: red">4</span>s</h1>
<div class="container" style="align-items: center">
<div class="col" style="font-size: 0.6em">
<h2>Complicated conditionals</h2>
</div>
<!-- <div class="col" style="font-size: 0.6em">-->
<!-- <h2>❤️</h2>-->
<!-- </div>-->
<div class="col" style="font-size: 0.6em">
<h2>Scala&nbsp;3</h2>
</div>
<!-- <div class="col" style="font-size: 0.6em">-->
<!-- <h2>❤️</h2>-->
<!-- </div>-->
<div class="col" style="font-size: 0.6em">
<h2>Higher-Kinded <br/> Data</h2>
</div>
Expand Down
254 changes: 254 additions & 0 deletions assets/build-accordion.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
// Sample data in JSON format
const presentationsData = [
{
title: "Decisions4s: Complicated Conditionals, Higher-Kinded Data and Scala 3",
conferences: [
{
name: "Art of Scala 2024",
link: "https://artofscala.com/",
slides: "2024-10-art-of-scala",
video: "https://www.youtube.com/watch?v=J4ZXsR25M7k"
},
{
name: "Scala.io 2024",
link: "https://scala.io/",
slides: "2024-11-scala-io",
video: null
}
]
},
{
title: "Communication For Developers",
conferences: [
{
name: "Sphere.it 2023",
link: "https://sphere.it/event/sphere-it-conf-2023",
slides: "2023-09-sphere-it",
video: "https://www.youtube.com/watch?v=rXSu3Q6wFj0"
},
{
name: "Voxxed Days Zurich 2024",
link: "https://voxxeddays.com/zurich/",
slides: "2024-03-voxxed-days-zurich",
video: "https://www.youtube.com/watch?v=bVRbxVCHrPE&list=PLRsbF2sD7JVrJJWeSPM7WjYNO42O-aF_o&index=21"
},
{
name: "Geecon 2024",
link: "https://2024.geecon.org",
slides: "2024-03-voxxed-days-zurich",
video: "https://www.youtube.com/watch?v=i3T9_ntm1S4&list=PLxZQe6I1pYpet-lLqg22YWMiANXGhJxCN&index=67"
},
{
name: "Dev Days Europe 2024",
link: "https://devdays.lt",
slides: "2024-03-voxxed-days-zurich",
video: "https://www.youtube.com/watch?v=NLYLHZQ-Qj8&list=PLqYhGsQ9iSEpFD1hBBle_VkpJ-S-FC4Lc&index=53"
}
]
},
{
title: "Love, Hate And Workflows",
conferences: [
{
name: "Functional Scala 2022",
link: "https://www.functionalscala.com",
slides: "2022-12-functional-scala",
video: "https://www.youtube.com/watch?v=jLN1ibwUwuY"
},
{
name: "Art of Scala 2022",
link: "https://www.eventbrite.com/e/a-unique-conference-for-scala-engineers-and-enthusiasts-tickets-431525433187",
slides: "2022-09-yava-conf",
video: null
},
{
name: "Functional World #5",
link: "https://www.meetup.com/functionalworld/events/288622105/",
slides: "2022-09-yava-conf",
video: "https://youtu.be/S5lohF1YTl0"
},
{
name: "Ya!va Conf 2022",
link: "https://yavaconf.com/",
slides: "2022-09-yava-conf",
video: null
}
]
},
{
title: "Magic Of Integrations. Ecosystem Better Than Any Framework",
conferences: [
{
name: "ScalaConf.ru 2019",
link: "https://scalaconf.ru/en/2019",
slides: "2019-11-scalaconfru",
video: "https://www.youtube.com/watch?v=CxitC7fNTRU"
},
]
},
{
title: "Functional Frontend. Practical Survival Guide For Backend Engineers",
conferences: [
{
name: "Scala.io 2019",
link: "https://scala.io/",
slides: "2019-10-scalaio",
video: "https://www.youtube.com/watch?v=72GyZuStsvM"
},
]
},
{
title: "Pragmatic, Object-Oriented Tagless Final",
conferences: [
{
name: "Kraków SUG 2020",
link: "https://www.meetup.com/krakow-scala-user-group/events/268614614/",
slides: "2020-02-krakow-sug",
video: null
},
{
name: "Scala Italy 2019",
link: "http://2019.scala-italy.it",
slides: "2019-09-scalaitaly",
video: "https://vimeo.com/363249962"
},
{
name: "LxScala 2019",
link: "https://www.facebook.com/LXScala/",
slides: "2019-09-scalaitaly",
video: null
},
]
},
{
title: "That's Enough, Bash. That's Enough.",
conferences: [
{
name: "Scalawave 2018",
link: "https://scalawave.io",
slides: "2018-09-scalawave",
video: "https://youtu.be/xHdgeOco-OU"
},
]
},
{
title: "Object Algebras And Why You Won't Touch Http Library Ever Again",
conferences: [
{
name: "Scalar 2018",
link: "https://scalar-conf.com/2018/",
slides: "2018-04-scalar",
video: "https://youtu.be/2Jo75rgnVW0"
},
]
},
{
"title": "It's Just A Monoid In The Category Of Endofunctors",
"conferences": [
{
"name": "Functional Tricity #7",
"slides": "2017-06-functional-tricity/index.html",
"video": "https://youtu.be/5JfddiM3uHk",
"link": "https://www.meetup.com/functionalworld/events/239505311/"
}
]
},
{
"title": "Why Do We Need 9 Different Data Processing Engines? What Makes Spark 2.32 Times Better Than Flink?",
"conferences": [
{
"name": "Datamass 2017",
"slides": "2017-09-datamass/index.html",
"video": "https://youtu.be/sMEfvnIX4Co",
"link": "https://summit.datamass.io/"
}
]
},
{
"title": "[code_smarter => test_less] Functional Guide To Reasonable Development",
"conferences": [
{
"name": "Norwegian IT Night Tricity 2017",
"slides": "2017-10-norwegian-it-night-tricity/index.html",
"video": null,
"link": "https://norwegian-it-night-tricity.confetti.events/"
}
]
}
];

// Function to create the accordion HTML structure from JSON
function createAccordion(data) {
const container = document.getElementById("accordionContainer");

data.forEach(presentation => {
// Title
const titleDiv = document.createElement("div");
titleDiv.className = "title";
titleDiv.innerHTML = `<i class="dropdown icon"></i>${presentation.title}
<div class="ui mini label">
<i class="microphone icon"></i>
${presentation.conferences.length}
</div>
`;
container.appendChild(titleDiv);

// Content
const contentDiv = document.createElement("div");
contentDiv.className = "content";

const cardsDiv = document.createElement("div");
cardsDiv.className = "ui cards";

presentation.conferences.forEach(conference => {
const cardDiv = document.createElement("div");
cardDiv.className = "fluid card";

const cardContent = document.createElement("div");
cardContent.className = "content";

const headerDiv = document.createElement("a");
headerDiv.href = conference.link;
headerDiv.target = "blank"
headerDiv.className = "header";
headerDiv.textContent = conference.name;

const descriptionDiv = document.createElement("div");
descriptionDiv.className = "description";

// Slides link
if (conference.slides) {
const slidesLabel = document.createElement("a");
slidesLabel.href = conference.slides;
slidesLabel.target = "blank"
slidesLabel.className = "ui blue tiny label";
slidesLabel.innerHTML = `<i class="file alternate outline icon"></i>Slides`;
descriptionDiv.appendChild(slidesLabel);
}

// Video link
if (conference.video) {
const videoLabel = document.createElement("a");
videoLabel.href = conference.video;
videoLabel.target = "blank"
videoLabel.className = "ui green tiny label";
videoLabel.innerHTML = `<i class="video icon"></i>Video</a>`;
descriptionDiv.appendChild(videoLabel);
}

cardContent.appendChild(headerDiv);
cardContent.appendChild(descriptionDiv);
cardDiv.appendChild(cardContent);
cardsDiv.appendChild(cardDiv);
});

contentDiv.appendChild(cardsDiv);
container.appendChild(contentDiv);
});

// Initialize the Semantic UI accordion
$('.ui.accordion').accordion();
}

// Initialize the accordion with data
createAccordion(presentationsData);
Loading

0 comments on commit 720320d

Please sign in to comment.