Skip to content

Commit 8b6665d

Browse files
authored
Update versions and include 2026 information (#7)
1 parent 7bdb8c4 commit 8b6665d

File tree

13 files changed

+880
-443
lines changed

13 files changed

+880
-443
lines changed

_cms.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
11
import cms from "top/_cms.ts";
22

3+
// YouTube block definition for CMS
4+
const youtubeBlock = {
5+
type: "object",
6+
name: "youtube",
7+
fields: [
8+
{
9+
type: "text",
10+
name: "youtube",
11+
description:
12+
"YouTube video ID. It's in the URL: <code>https://www.youtube.com/watch?v={id}</code> or <code>https://youtu.be/{id}</code>",
13+
},
14+
{
15+
type: "file",
16+
name: "cover",
17+
description: "Custom cover image (optional, uses YouTube thumbnail by default)",
18+
},
19+
"alt: text",
20+
"caption: markdown",
21+
"id: text",
22+
{
23+
type: "radio",
24+
name: "mode",
25+
options: ["default", "background"],
26+
description: "Video mode: default shows play button, background autoplays muted",
27+
},
28+
],
29+
};
30+
31+
// Get the existing "Pages" collection and add YouTube block to it
32+
const pagesCollection = cms.collections.get("Pages");
33+
if (pagesCollection) {
34+
// Find the blocks field and add YouTube to it
35+
const blocksField = pagesCollection.fields.find(
36+
(f: { name?: string }) => f.name === "blocks"
37+
);
38+
if (blocksField && "fields" in blocksField && Array.isArray(blocksField.fields)) {
39+
blocksField.fields.push(youtubeBlock);
40+
}
41+
}
42+
343
export default cms;

_config.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
import lume from "lume/mod.ts";
22
import top from "top/mod.ts";
33

4-
const site = lume();
4+
const site = lume({
5+
server: {
6+
hostname: "0.0.0.0", // Required for Docker - bind to all interfaces
7+
},
8+
});
59

610
site.use(top());
711

12+
// Add the custom script.js to the build
13+
site.add("script.js");
14+
815
export default site;

_data.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,16 @@ metas:
66
twitter: MadridJUG
77
color: '#d4617c'
88
generator: true
9-
image: /files/Java29.png
9+
image: logos/JMad.png
1010
state: pre-event
1111
cta:
1212
text: ¡Consigue tu entrada!
1313
url: /tickets
1414
footer:
1515
logo: /files/logos/JMad.png
16-
copyright: "© 2025<br>\r\nCreated with [Lume](https://lume.land) & TOP Theme<br>\r\n"
16+
copyright: |
17+
© 2026<br>
18+
Created with [Lume](https://lume.land) & TOP Theme<br>
1719
menu:
18-
# - text: Legal terms
19-
# href: /legal-terms/
20-
# - text: Privacy
21-
# href: /privacy/
2220
- text: Código de conducta
2321
href: /codigo-de-conducta/
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{{- set videoId = block.youtube -}}
2+
{{- set coverUrl = block.cover || `https://img.youtube.com/vi/${videoId}/maxresdefault.jpg` -}}
3+
{{- set videoMode = block.mode || "default" -}}
4+
<figure
5+
id="{{ block.id }}"
6+
class="block-youtube theme is-light box-fill no-padding width-full"
7+
>
8+
<top-youtube id="youtube_{{ videoId }}" data-id="{{ videoId }}" data-mode="{{ videoMode }}">
9+
<img src="{{ coverUrl }}" alt="{{ block.alt }}">
10+
</top-youtube>
11+
12+
{{ if block.caption }}
13+
<figcaption>
14+
{{ block.caption |> md }}
15+
</figcaption>
16+
{{ /if }}
17+
</figure>

block_pages/index.yml

Lines changed: 74 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,45 @@ blocks:
1616
id: intro
1717
theme: is-secondary width-box box-fill
1818
src: /files/logos/JMad.png
19-
text: "# JMad OpenSpace\r\n\r\nEn conmemoración del 30 aniversario de Java, MadridJUG quiere rendir homenaje a este lenguaje icónico organizando un evento especial para su comunidad. Para ello, llevará a cabo un Open Space, un formato dinámico y participativo que permitirá a los asistentes compartir sus experiencias, debatir sobre las tecnologías del ecosistema de la JVM y explorar juntos los avances más recientes en el mundo del desarrollo en Java."
19+
text: >-
20+
# JMad OpenSpace
21+
22+
23+
En conmemoración del 31 aniversario de Java, MadridJUG quiere rendir
24+
homenaje a este lenguaje icónico organizando un evento especial para su
25+
comunidad. Para ello, llevará a cabo un Open Space, un formato dinámico y
26+
participativo que permitirá a los asistentes compartir sus experiencias,
27+
debatir sobre las tecnologías del ecosistema de la JVM y explorar juntos
28+
los avances más recientes en el mundo del desarrollo en Java.
29+
- type: youtube
30+
youtube: Fxy6GzhHZaE
31+
cover: ''
32+
id: video
33+
mode: default
2034
- type: imagetext
21-
id: aniversary29
35+
id: photo-aniversary
2236
theme: is-primary width-full box-fill
23-
src: /files/grupo-29-aniversario.jpg
24-
text: "Este encuentro será una oportunidad única para que desarrolladores de todos los niveles intercambien conocimientos, planteen preguntas y reflexionen sobre el impacto que ha tenido Java a lo largo de estas tres décadas. Desde sus inicios hasta su evolución actual con nuevas versiones y mejoras en rendimiento, el evento servirá como punto de encuentro para entusiastas, profesionales y expertos que deseen profundizar en los desafíos y oportunidades que ofrece la plataforma.\r\n\r\nMadridJUG invita a toda la comunidad a sumarse a esta celebración, en la que podrán no solo aprender y compartir, sino también fortalecer la red de contactos con otros apasionados por Java y su ecosistema. ¡No te lo pierdas!"
37+
src: /files/grupo-30-aniversario.jpg
38+
text: >-
39+
Este encuentro será una oportunidad única para que desarrolladores de
40+
todos los niveles intercambien conocimientos, planteen preguntas y
41+
reflexionen sobre el impacto que ha tenido Java a lo largo de estas tres
42+
décadas. Desde sus inicios hasta su evolución actual con nuevas versiones
43+
y mejoras en rendimiento, el evento servirá como punto de encuentro para
44+
entusiastas, profesionales y expertos que deseen profundizar en los
45+
desafíos y oportunidades que ofrece la plataforma.
46+
47+
48+
MadridJUG invita a toda la comunidad a sumarse a esta celebración, en la
49+
que podrán no solo aprender y compartir, sino también fortalecer la red de
50+
contactos con otros apasionados por Java y su ecosistema. ¡No te lo
51+
pierdas!
2552
- type: multitrack-calendar
2653
title: Agenda
2754
id: calendar
2855
fullwidth: false
2956
days:
30-
- title: 17 de Mayo
57+
- title: 23 de Mayo 2026
3158
tracks:
3259
- title: Area James Gosling
3360
id: Track1
@@ -39,7 +66,7 @@ blocks:
3966
id: Recepción y registro
4067
speakers: []
4168
- time: '9:30'
42-
title: 'Keynote: 30 años de Java'
69+
title: 'Keynote'
4370
speakers: []
4471
- time: '10:00'
4572
title: ¿Qué es un OpenSpace?
@@ -48,46 +75,46 @@ blocks:
4875
title: Mercadillo de ideas
4976
speakers: []
5077
- time: '11:00'
51-
title: 'Técnicas de optimización de memoria'
78+
title: Sesión 1
5279
track: Track1
5380
speakers: []
5481
- time: '11:00'
55-
title: 'Técnicas para manter equipos full remote cohesionados y felices'
82+
title: Sesión 2
5683
track: Track2
5784
speakers: []
5885
- time: '12:00'
59-
title: 'Tutorizando juniors: experiencia y consejos'
86+
title: Sesión 3
6087
track: Track1
6188
speakers: []
6289
- time: '12:00'
63-
title: 'Observabilidad'
90+
title: Sesión 4
6491
track: Track2
6592
speakers: []
6693
- time: '13:00'
67-
title: 'Experiencia con asistentes AI'
94+
title: Sesión 5
6895
track: Track1
6996
speakers: []
7097
- time: '13:00'
71-
title: 'Novedades Java 25: Mejoras y cambios en estos 30 años'
98+
title: Sesión 6
7299
track: Track2
73100
speakers: []
74101
- time: '14:00'
75102
title: Comida y networking
76103
speakers: []
77104
- time: '15:25'
78-
title: 'JSpecify y nullability'
105+
title: Sesión 7
79106
track: Track1
80107
speakers: []
81108
- time: '15:25'
82-
title: 'Fun short Java Quiz'
109+
title: Sesión 8
83110
track: Track2
84111
speakers: []
85112
- time: '16:20'
86-
title: 'Virtual Threads'
113+
title: Sesión 9
87114
track: Track1
88115
speakers: []
89116
- time: '16:20'
90-
title: 'Buenas prácticas: Código seguro'
117+
title: Sesión 10
91118
track: Track2
92119
speakers: []
93120
- time: '17:10'
@@ -101,7 +128,23 @@ blocks:
101128
id: openspace
102129
theme: is-light width-box box-border
103130
columns: false
104-
text: "Un Open Space o \"desconferencia\" es una forma de organizar reuniones y conferencias que se basa en la autoorganización y la participación activa de todos los asistentes. A diferencia de las conferencias tradicionales, donde se sigue una agenda predefinida, en un Open Space los participantes proponen los temas que les interesan y crean su propia agenda. Esto fomenta la libertad de discusión y permite que surjan ideas innovadoras y soluciones creativas.\r\n\r\nEn un Open Space, todos los participantes son responsables de su propio aprendizaje y de contribuir al aprendizaje de los demás. Se fomenta la colaboración y el intercambio de conocimientos, y se anima a los participantes a moverse libremente entre las diferentes sesiones y a participar en aquellas que les resulten más interesantes. El resultado es un evento dinámico y participativo, donde se generan conversaciones significativas y se construyen redes de colaboración."
131+
text: >-
132+
Un Open Space o "desconferencia" es una forma de organizar reuniones y
133+
conferencias que se basa en la autoorganización y la participación activa
134+
de todos los asistentes. A diferencia de las conferencias tradicionales,
135+
donde se sigue una agenda predefinida, en un Open Space los participantes
136+
proponen los temas que les interesan y crean su propia agenda. Esto
137+
fomenta la libertad de discusión y permite que surjan ideas innovadoras y
138+
soluciones creativas.
139+
140+
141+
En un Open Space, todos los participantes son responsables de su propio
142+
aprendizaje y de contribuir al aprendizaje de los demás. Se fomenta la
143+
colaboración y el intercambio de conocimientos, y se anima a los
144+
participantes a moverse libremente entre las diferentes sesiones y a
145+
participar en aquellas que les resulten más interesantes. El resultado es
146+
un evento dinámico y participativo, donde se generan conversaciones
147+
significativas y se construyen redes de colaboración.
105148
- type: location
106149
title: Paseo de la Habana 9-11
107150
id: location
@@ -134,12 +177,12 @@ blocks:
134177
- alt: NextDigital
135178
img: /files/logos/NextDigital.png
136179
url: 'https://www.nextdigital.es/'
137-
- alt: MadridGUG
138-
img: /files/logos/MadridGUG.png
139-
url: 'https://www.madridgug.com/'
140180
- alt: Incremental Steps
141181
img: /files/logos/IncrementalSteps.png
142182
url: 'https://incsteps.com/'
183+
- alt: MadridGUG
184+
img: /files/logos/MadridGUG.png
185+
url: 'https://www.madridgug.com/'
143186
- type: separator
144187
width: is-default
145188
- type: people
@@ -181,7 +224,13 @@ blocks:
181224
los asistentes y la sala que esté disponible disponga de
182225
proyector/pantalla.
183226
- question: 'Creo que tengo poco que aportar, ¿debería ir?'
184-
answer: "Por supuesto!! Seguro que sabes muchas cosas que podrás compartir con otros asistentes. \r\n\r\nAdemás, recuerda: la única pregunta estúpida es aquella que se queda sin preguntar."
227+
answer: >-
228+
Por supuesto!! Seguro que sabes muchas cosas que podrás compartir con
229+
otros asistentes.
230+
231+
232+
Además, recuerda: la única pregunta estúpida es aquella que se queda
233+
sin preguntar.
185234
- question: ¿Se van a grabar las sesiones?
186235
answer: >-
187236
No, debido a la dinámica de las interacciones, donde muchas personas
@@ -196,7 +245,10 @@ blocks:
196245
info: madridjug-coordinators@googlegroups.com
197246
links: []
198247
- title: Redes Sociales
199-
info: "Twitter: [MadridJUG](https://x.com/MadridJUG)\r\n<br/>\r\nBlueSky: [@madridjug.es](https://bsky.app/profile/madridjug.es)"
248+
info: |-
249+
Twitter: [MadridJUG](https://x.com/MadridJUG)
250+
<br/>
251+
BlueSky: [@madridjug.es](https://bsky.app/profile/madridjug.es)
200252
links: []
201253
metas:
202254
image: ''

block_pages/tickets.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ blocks:
1111
ticketing y comida.
1212
- type: tickets
1313
id: tickets
14+
theme: is-light width-box box-fill
1415
features:
1516
- id: entrada
1617
text: Entrada al evento y comida.
@@ -25,20 +26,20 @@ blocks:
2526
en redes sociales, mención en apertura y cierre.
2627
tickets:
2728
- name: Entrada general
28-
pricing: 30€ (IVA incluido)
29+
pricing: 35€ (IVA incluido)
2930
img: /files/tickets/ticket.png
3031
buy:
3132
text: Comprar
32-
url: 'https://my.weezevent.com/jmad-openspace-2025'
33+
url: 'https://my.weezevent.com/jmad-openspace-2026'
3334
disabled: false
3435
features:
3536
- entrada
3637
- name: Entrada Diversity
37-
pricing: 15€ (IVA incluido)
38+
pricing: 17€ (IVA incluido)
3839
img: /files/tickets/ticket.png
3940
buy:
4041
text: Comprar
41-
url: 'https://my.weezevent.com/jmad-openspace-2025'
42+
url: 'https://my.weezevent.com/jmad-openspace-2026'
4243
disabled: false
4344
features:
4445
- diversity
@@ -47,7 +48,7 @@ blocks:
4748
img: /files/tickets/ticket.png
4849
buy:
4950
text: Comprar
50-
url: 'https://my.weezevent.com/jmad-openspace-2025'
51+
url: 'https://my.weezevent.com/jmad-openspace-2026'
5152
disabled: false
5253
features:
5354
- entrada

deno.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"imports": {
3-
"lume/": "https://deno.land/x/lume@v2.5.0/",
4-
"top/": "https://cdn.jsdelivr.net/gh/tarugoconf/top@0.2.1/",
5-
"lume/cms/": "https://cdn.jsdelivr.net/gh/lumeland/cms@v0.8.3/"
3+
"lume/": "https://deno.land/x/lume@v3.0.5/",
4+
"top/": "https://cdn.jsdelivr.net/gh/tarugoconf/top@0.4.1/",
5+
"lume/cms/": "https://cdn.jsdelivr.net/gh/lumeland/cms@0.12.5/"
66
},
77
"tasks": {
88
"lume": "echo \"import 'lume/cli.ts'\" | deno run -A -",

0 commit comments

Comments
 (0)