cv.html.eex 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" integrity="sha512NhSC1YmyruXifcj/KFRWoC561YpHpc5Jtzgvbuzx5VozKpWvQ+4nXhPdFgmx8xqexRcpAglTj9sIBWINXa8x5w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  9. <style>
  10. @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800);
  11. @charset "utf-8";
  12. @-webkit-viewport {
  13. width: device-width;
  14. }
  15. @-moz-viewport {
  16. width: device-width;
  17. }
  18. @-ms-viewport {
  19. width: device-width;
  20. }
  21. @-o-viewport {
  22. width: device-width;
  23. }
  24. @viewport {
  25. width: device-width;
  26. }
  27. html {
  28. background-color: rgb(51, 73, 96);
  29. }
  30. * {
  31. box-sizing: border-box;
  32. }
  33. body {
  34. width: 80ch;
  35. margin-top: 2em;
  36. margin-bottom: 2em;
  37. margin-right: auto;
  38. margin-left: auto;
  39. padding: 1em;
  40. background-color: white;
  41. font-family: 'Open Sans', Arial, Tahoma;
  42. font-weight: 400;
  43. }
  44. ol,
  45. ul {
  46. list-style: none;
  47. }
  48. dl {
  49. display: grid;
  50. grid-template-columns: auto 1fr;
  51. }
  52. dt {
  53. grid-column: 1/2;
  54. }
  55. dd {
  56. grid-column: 2/3;
  57. }
  58. #basics {
  59. display: grid;
  60. justify-items: center;
  61. }
  62. #basics>h1,
  63. #basics>h2 {
  64. text-transform: uppercase;
  65. }
  66. data.name::after {
  67. content: attr(value);
  68. }
  69. data.position[lang="fr"]::after {
  70. content: 'Poste: ' attr(value);
  71. }
  72. data.position[lang="en"]::after {
  73. display: none;
  74. }
  75. dt.work_location+dd::before,
  76. data.work_location::after {
  77. content: '🏢 ' attr(value);
  78. }
  79. dt.location::after,
  80. data.location::after {
  81. content: '🏠 ' attr(value);
  82. }
  83. time::after {
  84. content: attr(datetime);
  85. }
  86. li h1,
  87. li h2,
  88. li h3 {
  89. font-weight: 500;
  90. }
  91. .highlights {
  92. font-size: 0.6em;
  93. }
  94. #skills .tools::after {
  95. content: "Outils";
  96. }
  97. </style>
  98. </head>
  99. <body>
  100. <div id="basics">
  101. <h1><%= @basics.name %></h1>
  102. <h2><%= @basics.label %></h2>
  103. <dl>
  104. <dt class="location">Lieu</dt>
  105. <dd><%= @basics.location.city %></dd>
  106. </dl>
  107. </div>
  108. <div id="work">
  109. <h1>Expériences professionnelles</h1>
  110. <ol>
  111. <%= for work <- @work do %>
  112. <li>
  113. <div>
  114. <h1><%= work.name %></h1>
  115. <dl>
  116. <dt class="position" lang="fr">Poste</dt>
  117. <dd lang="fr"><%= work.position %></dd>
  118. <dt class="start_date">Date début</dt>
  119. <dd><time class="start_date" datetime="<%= work.startDate %>"></time></dd>
  120. <dt class="end_date">Date fin</dt>
  121. <dd><time class="end_date" datetime="<%= work.endDate %>"></time></dd>
  122. <dt class="work_location"></dt>
  123. <dd>Paris</dd>
  124. </dl>
  125. <p class="summary" lang="en"><%= work.summary %></p>
  126. <ul class="highlights">
  127. <%= for highlight <- work.highlights do %>
  128. <li><%= highlight %></li>
  129. <% end %>
  130. </ul>
  131. </div>
  132. </li>
  133. <% end %>
  134. </ol>
  135. </div>
  136. <div id="skills">
  137. <h1>Compétences</h1>
  138. <ul>
  139. <%= for skill <- @skills do %>
  140. <li>
  141. <h1><%= skill.name %></h1>
  142. <ul>
  143. <%= for kw <- skill.keywords do %>
  144. <li><%= kw %></li>
  145. <% end %>
  146. </ul>
  147. </li>
  148. <% end %>
  149. </ul>
  150. </div>
  151. <div id="education">
  152. <h1>Formation</h1>
  153. <ol>
  154. <%= for educ <- @education do %>
  155. <li>
  156. <h1><%= educ.institution %></h1>
  157. <dl>
  158. <dt class="location"></dt>
  159. <dd><%= educ[:location] %></dd>
  160. <dt class="start_date">Date début</dt>
  161. <dd><time class="start_date" datetime="<%= educ.startDate %>"></time></dd>
  162. <dt class="end_date">Date fin</dt>
  163. <dd><time class="end_date" datetime="<%= educ.endDate %>"></time></dd>
  164. </dl>
  165. </li>
  166. <% end %>
  167. </ol>
  168. </div>
  169. <div id="languages">
  170. <h1>Langues</h1>
  171. <ul>
  172. <%= for lang <- @languages do %>
  173. <li><%= lang.language %> (<%= lang.fluency %>)</li>
  174. <% end %>
  175. </ul>
  176. </div>
  177. </body>
  178. </html>