@@ -3,3 +3,76 @@ Title = "Speakers"
33Type = " speakers"
44Description = " Speakers for devopsdays Vilnius 2025"
55+++
6+
7+ <div id =" speakers " class =" row " ></div >
8+ <noscript >
9+ <div class =" pretalx-widget " >
10+ <div class="pretalx-widget-info-message">
11+ JavaScript is disabled in your browser. To access our speaker list without JavaScript,
12+ please <a target="_blank" href="https://talks.devopsdays.org/devopsdays-vilnius-2025/speaker/">click here</a>.
13+ </div>
14+ </div>
15+ </noscript >
16+
17+ <script >
18+ const ul = document .getElementById (' speakers' );
19+ const list = document .createDocumentFragment ();
20+ const url = ' https://talks.devopsdays.org/api/events/devopsdays-vilnius-2025/speakers/?page=1&page_size=50' ;
21+
22+ fetch (url)
23+ .then ((response ) => response .json ())
24+ .then ((data ) => {
25+ let speakers = data .results ;
26+ console .log (speakers);
27+
28+ speakers .forEach (function (speaker ) {
29+ let li = document .createElement (' div' );
30+ li .className = ' col-lg-3 col-md-6 p-3' ;
31+
32+ let name = document .createElement (' h3' );
33+ name .textContent = speaker .name ;
34+
35+ let pic = document .createElement (' img' );
36+ pic .className = ' speakers-page' ;
37+ pic .src =
38+ (typeof speaker .avatar_url === ' string' && speaker .avatar_url .trim ().length > 0 )
39+ ? speaker .avatar_url
40+ : ' /img/speaker-default.jpg' ;
41+
42+ let bio = document .createElement (' details' );
43+ bio .className = ' p-1' ;
44+ bio .innerHTML =
45+ ` <summary><b>About ${ speaker .name } </b></summary><p>${
46+ speaker .biography
47+ ? speaker .biography
48+ : ` No biography found for ${ speaker .name } . If you are ${ speaker .name } , please email the organizers with a biography to be used here.`
49+ } </p>` ;
50+
51+ li .appendChild (name);
52+ li .appendChild (pic);
53+ li .appendChild (bio);
54+
55+ if (
56+ Array .isArray (speaker .submissions ) &&
57+ speaker .submissions .length > 0 &&
58+ speaker .submissions [0 ]
59+ ) {
60+ let talk = document .createElement (' a' );
61+ talk .href = ` https://talks.devopsdays.org/devopsdays-vilnius-2025/talk/${ speaker .submissions [0 ]} ` ;
62+ talk .target = ' _blank' ;
63+ talk .className = ' btn btn-primary' ;
64+ talk .textContent = ' Link to talk' ;
65+ li .appendChild (talk);
66+ }
67+
68+ list .appendChild (li);
69+ });
70+ })
71+ .catch (function (error ) {
72+ console .error (' Error fetching speaker data:' , error);
73+ })
74+ .finally (() => {
75+ ul .appendChild (list);
76+ });
77+ </script >
78+
0 commit comments