speakers.jinja2 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. {# -*- mode: jinja2; -*- #}
  2. {#
  3. SPDX-License-Identifier: CC0-1.0
  4. This file is part of lpschedule-generator.
  5. #}
  6. {# make speakers header macro #}
  7. {% macro mk_speakers_header(speaker_type) %}
  8. <header class="{{ speaker_type }}-header">
  9. <hgroup>
  10. {% if speaker_type == 'keynote-speakers' %}
  11. <h2>Keynote speakers</h2>
  12. {% else %}
  13. <h2>Speakers</h2>
  14. {% endif %}
  15. </hgroup>
  16. </header>
  17. {% endmacro %}
  18. {# make keynote speaker header macro #}
  19. {% macro mk_keynote_speaker_header(speaker, id) %}
  20. <header id="{{ id }}" class="keynote-speaker-header">
  21. <hgroup>
  22. <h2>{{ speaker }}</h2>
  23. </hgroup>
  24. </header>
  25. {% endmacro %}
  26. {# make speaker header macro #}
  27. {% macro mk_speaker_header(speaker, id) %}
  28. <header id="{{ id }}" class="speaker-header">
  29. <hgroup>
  30. <h2>{{ speaker }}</h2>
  31. </hgroup>
  32. </header>
  33. {% endmacro %}
  34. {# make bio macro #}
  35. {% macro mk_bio(bio_list) %}
  36. {% for bio_p in bio_list %}
  37. <p>{{ bio_p }}</p>
  38. {% endfor %}
  39. {% endmacro %}
  40. {# populate keynote speakers macro #}
  41. {% macro populate_keynote_speakers(speakers) %}
  42. {% for speaker in speakers %}
  43. <section class="speaker-block" id="lp-keynote-speaker-{{ loop.index }}">
  44. <!-- keynote-speaker-{{ loop.index }} row start -->
  45. <div class="row">
  46. {% if speaker.img_url %}
  47. <!-- keynote-speaker-{{ loop.index }} img column start -->
  48. <div class="col-md-3 col-sm-4 col-xs-5">
  49. <img class="img-responsive" src="{{ speaker.img_url }}"
  50. alt="[ {{ speaker.img_alt }} ]" />
  51. </div> <!-- keynote-speaker-{{ loop.index }} img column end -->
  52. <!-- keynote-speaker-{{ loop.index }} content column start -->
  53. <div class="col-md-9 col-sm-8 col-xs-7">
  54. {% else %}
  55. <!-- keynote-speaker-{{ loop.index }} content column start -->
  56. <div class="col-md-offset-3 col-sm-offset-4 col-xs-offset-5 col-md-9 col-sm-8 col-xs-7">
  57. {% endif %}
  58. {{ mk_keynote_speaker_header(speaker.speaker, speaker.id) }}
  59. {{ mk_bio(speaker.bio) }}
  60. </div> <!-- keynote-speaker-{{ loop.index }} content column end -->
  61. </div> <!-- keynote-speaker-{{ loop.index }} row end -->
  62. </section>
  63. {% endfor %}
  64. {% endmacro %}
  65. {# populate speakers macro #}
  66. {% macro populate_speakers(speakers) %}
  67. {% for speaker in speakers %}
  68. <section class="speaker-block" id="lp-speaker-{{ loop.index }}">
  69. <div class="row"> <!-- speaker-{{ loop.index }} row start -->
  70. {% if speaker.img_url %}
  71. <!-- speaker-{{ loop.index }} img column start -->
  72. <div class="col-md-2 col-sm-3 col-xs-4">
  73. <img class="img-responsive" src="{{ speaker.img_url }}"
  74. alt="[ {{ speaker.img_alt }} ]" />
  75. </div> <!-- speaker-{{ loop.index }} img column end -->
  76. <!-- speaker-{{ loop.index }} content column start -->
  77. <div class="col-md-10 col-sm-9 col-xs-8">
  78. {% else %}
  79. <!-- speaker-{{ loop.index }} content column start -->
  80. <div class="col-md-offset-2 col-sm-offset-3 col-xs-offset-4 col-md-10 col-sm-9 col-xs-8">
  81. {% endif %}
  82. {{ mk_speaker_header(speaker.speaker, speaker.id) }}
  83. {{ mk_bio(speaker.bio) }}
  84. </div> <!-- speaker-{{ loop.index }} content column end -->
  85. </div> <!-- speaker-{{ loop.index }} row end -->
  86. </section>
  87. {% endfor %}
  88. {% endmacro %}
  89. {# lp speakers 2016 template start #}
  90. {% for speaker_type, speakers in lp_dict.items() %}
  91. <article class="speakers-block" id="lp-{{ speaker_type }}">
  92. {% if speaker_type == 'keynote-speakers' %}
  93. {{ mk_speakers_header(speaker_type) }}
  94. {{ populate_keynote_speakers(speakers) }}
  95. {% elif speaker_type == 'speakers' %}
  96. {{ mk_speakers_header(speaker_type) }}
  97. {{ populate_speakers(speakers) }}
  98. {% endif %}
  99. </article>
  100. {% endfor %}
  101. {# lp speakers 2016 template end #}