@@ -9,54 +9,70 @@ Description = "Meet our speakers for DevOpsDays Amsterdam 2025"
9
9
<div class =" pretalx-widget " >
10
10
<div class="pretalx-widget-info-message">
11
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-amsterdam-2025/speakers /">click here</a>.
12
+ please <a target="_blank" href="https://talks.devopsdays.org/devopsdays-amsterdam-2025/speaker /">click here</a>.
13
13
</div>
14
14
</div>
15
15
</noscript >
16
16
17
17
<script >
18
18
const ul = document .getElementById (' speakers' );
19
19
const list = document .createDocumentFragment ();
20
- const url = ' https://talks.devopsdays.org/api/events/devopsdays-amsterdam-2025/speakers/?limit =50' ;
20
+ const url = ' https://talks.devopsdays.org/api/events/devopsdays-amsterdam-2025/speakers/?page=1&page_size =50' ;
21
21
22
22
fetch (url)
23
- .then ((response ) => {
24
- return response .json ();
25
- })
23
+ .then ((response ) => response .json ())
26
24
.then ((data ) => {
27
25
let speakers = data .results ;
28
-
29
26
console .log (speakers);
30
27
31
- speakers .map (function (speaker ) {
28
+ speakers .forEach (function (speaker ) {
32
29
let li = document .createElement (' div' );
33
- li .className = ` col-lg-3 col-md-6 p-3` ;
30
+ li .className = ' col-lg-3 col-md-6 p-3' ;
31
+
34
32
let name = document .createElement (' h3' );
33
+ name .textContent = speaker .name ;
34
+
35
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
+
36
42
let bio = document .createElement (' details' );
37
- bio .className = ` p-1` ;
38
- let talk = document .createElement (' a' );
39
-
40
- name .innerHTML = ` ${ speaker .name } ` ;
41
- pic .src = speaker .avatar .length != 0 ? ` ${ speaker .avatar } ` : ' /img/speaker-default.jpg' ;
42
- pic .className = ` speakers-page` ;
43
- bio .innerHTML = ` <summary ><b >About ${ speaker .name } </b ></summary ><p >${ speaker .biography ? ` ${ speaker .biography } ` : ` Ipsum` } </p >` ;
44
- talk .setAttribute (' href' , speaker .submissions [0 ] ? ` https://talks.devopsdays.org/devopsdays-amsterdam-2025/talk/${ speaker .submissions [0 ]} ` : ` ` );
45
- talk .setAttribute (' target' , ' _blank' );
46
- talk .className = ` btn btn-primary` ;
47
- talk .innerHTML = ` Link to talk` ;
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>` ;
48
50
49
51
li .appendChild (name);
50
52
li .appendChild (pic);
51
53
li .appendChild (bio);
52
- li .appendChild (talk);
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-amsterdam-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
+
53
68
list .appendChild (li);
54
69
});
55
70
})
56
71
.catch (function (error ) {
57
- console .log ( error);
72
+ console .error ( ' Error fetching speaker data: ' , error);
58
73
})
59
74
.finally (() => {
60
75
ul .appendChild (list);
61
76
});
62
- </script >
77
+ </script >
78
+
0 commit comments