cv.html.eex 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  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. h1, h2, h3, h4, h5, h6 {
  34. font-size: 1em;
  35. }
  36. ol,
  37. ul {
  38. list-style: none;
  39. padding-inline: 0;
  40. }
  41. body {
  42. width: 80;
  43. max-width: 120ch;
  44. margin-top: 2em;
  45. margin-bottom: 2em;
  46. margin-right: auto;
  47. margin-left: auto;
  48. padding: 1em;
  49. background-color: white;
  50. font-family: 'Open Sans', Arial, Tahoma;
  51. font-weight: 400;
  52. display: grid;
  53. grid-template-areas:
  54. "basics basics"
  55. "work education"
  56. "work skills"
  57. "work languages"
  58. "work _";
  59. }
  60. dl {
  61. display: grid;
  62. grid-template-columns: auto 1fr;
  63. }
  64. dt {
  65. grid-column: 1/2;
  66. }
  67. dd {
  68. grid-column: 2/3;
  69. }
  70. #basics {
  71. grid-area: basics;
  72. display: grid;
  73. justify-items: center;
  74. }
  75. #work {
  76. grid-area: work;
  77. }
  78. #basics>h1,
  79. #basics>h2 {
  80. text-transform: uppercase;
  81. }
  82. data.name::after {
  83. content: attr(value);
  84. }
  85. data.position[lang="fr"]::after {
  86. content: 'Poste: ' attr(value);
  87. }
  88. data.position[lang="en"]::after {
  89. display: none;
  90. }
  91. dt.work_location+dd::before,
  92. data.work_location::after {
  93. content: '🏢 ' attr(value);
  94. }
  95. dt.location::after,
  96. data.location::after {
  97. content: '🏠 ' attr(value);
  98. }
  99. time::after {
  100. content: attr(datetime);
  101. }
  102. li h1,
  103. li h2,
  104. li h3 {
  105. font-weight: 500;
  106. }
  107. #skills .tools::after {
  108. content: "Outils";
  109. }
  110. </style>
  111. </head>
  112. <body>
  113. <div id="basics">
  114. <h1><%= @basics.name %></h1>
  115. <h2><%= @basics.label %></h2>
  116. <dl>
  117. <dt class="location">Lieu</dt>
  118. <dd><%= @basics.location.city %></dd>
  119. </dl>
  120. </div>
  121. <div id="work">
  122. <h1>Expériences professionnelles</h1>
  123. <ol>
  124. <%= for work <- @work do %>
  125. <li>
  126. <div>
  127. <h1><%= work.name %></h1>
  128. <dl>
  129. <dt class="position" lang="fr">Poste</dt>
  130. <dd lang="fr"><%= work.position %></dd>
  131. <dt class="start_date">Date début</dt>
  132. <dd><time class="start_date" datetime="<%= work.startDate %>"></time></dd>
  133. <%= unless is_nil(work[:endDate]) do %>
  134. <dt class="end_date">Date fin</dt>
  135. <dd><time class="end_date" datetime="<%= work.endDate %>"></time></dd>
  136. <% end %>
  137. <dt class="work_location"></dt>
  138. <dd>Paris</dd>
  139. </dl>
  140. <p class="summary" lang="en"><%= work.summary %></p>
  141. <ul class="highlights">
  142. <%= for highlight <- work.highlights do %>
  143. <li><%= highlight %></li>
  144. <% end %>
  145. </ul>
  146. </div>
  147. </li>
  148. <% end %>
  149. </ol>
  150. </div>
  151. <div id="skills">
  152. <h1>Compétences</h1>
  153. <ul>
  154. <%= for skill <- @skills do %>
  155. <li>
  156. <h1><%= skill.name %></h1>
  157. <ul>
  158. <%= for kw <- skill.keywords do %>
  159. <li><%= kw %></li>
  160. <% end %>
  161. </ul>
  162. </li>
  163. <% end %>
  164. </ul>
  165. </div>
  166. <div id="education">
  167. <h1>Formation</h1>
  168. <ol>
  169. <%= for educ <- @education do %>
  170. <li>
  171. <h1><%= educ.institution %></h1>
  172. <dl>
  173. <dt class="location"></dt>
  174. <dd><%= educ[:location] %></dd>
  175. <dt class="start_date">Date début</dt>
  176. <dd><time class="start_date" datetime="<%= educ.startDate %>"></time></dd>
  177. <dt class="end_date">Date fin</dt>
  178. <dd><time class="end_date" datetime="<%= educ.endDate %>"></time></dd>
  179. </dl>
  180. </li>
  181. <% end %>
  182. </ol>
  183. </div>
  184. <div id="languages">
  185. <h1>Langues</h1>
  186. <ul>
  187. <%= for lang <- @languages do %>
  188. <li><%= lang.language %> (<%= lang.fluency %>)</li>
  189. <% end %>
  190. </ul>
  191. </div>
  192. </body>
  193. </html>