aboutsummaryrefslogtreecommitdiff
path: root/src/pages.ml
blob: d343ef2f0e4b3786f87051e07432f1b0fe6d65e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
(*
 *    Copyright (C) 2020  Alban Gruin
 *
 *    ucs is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU Affero General Public License as published
 *    by the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    ucs is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU Affero General Public License for more details.
 *
 *    You should have received a copy of the GNU Affero General Public License
 *    along with ucs.  If not, see <http://www.gnu.org/licenses/>.
 *)

let common content =
{|<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>µCS</title>
    <link rel="stylesheet" href="/css/style.css">
  </head>
  <body>
    <header>
      <h1><a href="/">µCS</a></h1>
    </header>
    <article>|} ^ content ^
{|    </article>
    <footer>
      <p>(c) 2020 &ndash; Alban Gruin &ndash; µCS 0.1.1 «CANIS MINOR»</p>
    </footer>
  </body>
</html>
|}

let main = common {|
      <section>
        <h3>Récupérer un emploi du temps au format ICS</h3>
        <form action="/lnk" method="get">
          <label for="id_group">Nom du groupe</label>
          <input type="text" name="group" id="id_group" required />
          <input type="submit" value="Générer un ICS" />
        </form>
      </section>
      <section>
        <p>
          Le format ICS (ou iCalendar) permet dimporter un calendrier
          dans un agenda électronique.<br />
          <a href="https://fr.wikipedia.org/wiki/ICalendar">En savoir plus</a>
        <p>
          Il existe plusieurs logiciels ou services permettant
          dutiliser ces fichiers :
        <ul>
          <li>sur Linux et Windows, lextension Lightning du logiciel
          Thunderbird ;</li>
          <li>sur Mac et iOS, iCloud ;</li>
          <li>sur Android, lapplication libre ICSx<sup>5</sup> peut les
          récupérer périodiquement et les afficher sur lapplication
          Agenda de base.
          <a href="https://f-droid.org/fr/packages/at.bitfire.icsdroid/">Elle
          est gratuite sur F-Droid</a> ;</li>
          <li>sur Web, NextCloud.</li>
        </ul>
        <p>
          <b>Nutilisez pas Google Calendar pour synchroniser un
          calendrier ICS</b>.  Ce service empêche de définir la
          fréquence de synchronisation ou de forcer une mise à jour et
          conserve les événements en cache, même si on supprime le
          calendrier.  À cause de cela, il peut y avoir un délai de un
          jour entre le changement dune information sur celcatsanitizer
          et sa prise en compte sans aucun recours possible.
          <!-- Le lecteur attentif pourra se demander si il ny a pas de
conflit dintérêt entre lécosystème Android, dans lequel
lapplication de base (Agenda) ne peut se synchroniser quà Google
Calendar à moins dinstaller une application tierce (telles que
DAVDroid ou ICSDroid, malheureusement payantes sur le Play Store mais
gratuites sur F-Droid).

Il pourra aussi se questionner sur la raison du mauvais support des
ICS par ce service - serait-ce une technique pour inciter les
utilisateurs à se servir de Google Calendar en priorité, au détriment
des formats standards et des autres écosystèmes (par exemple, celui
dApple), et ainsi attirer plus dutilisateurs ? -->
      </section>
|}

let link lnk = common @@ {|
      <section>
        <h3>Lien de l'emploi du temps</h3>
        <a href="|} ^ lnk ^ {|">|} ^ lnk ^ {|</a>
      </section>
|}