aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2020-06-07 18:24:25 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2020-06-07 19:13:08 +0200
commit7130402cfecc196ce79c8f07a9dba71974f085e3 (patch)
tree072e82de987c0a1f9d1fac8be9c8f097e9a9f37f /modules
parentfe4199f8ab922735b81557f71199fa73a378e540 (diff)
downloadNix-7130402cfecc196ce79c8f07a9dba71974f085e3.tar.gz
Nix-7130402cfecc196ce79c8f07a9dba71974f085e3.tar.zst
Nix-7130402cfecc196ce79c8f07a9dba71974f085e3.zip
Add history page
Diffstat (limited to 'modules')
-rw-r--r--modules/private/websites/immae/history/.gitignore3
-rw-r--r--modules/private/websites/immae/history/Gemfile31
-rw-r--r--modules/private/websites/immae/history/Gemfile.lock75
-rw-r--r--modules/private/websites/immae/history/LICENSE9
-rw-r--r--modules/private/websites/immae/history/_config.yml47
-rw-r--r--modules/private/websites/immae/history/_data/categories.yml13
-rw-r--r--modules/private/websites/immae/history/_includes/footer.html5
-rw-r--r--modules/private/websites/immae/history/_includes/head.html18
-rw-r--r--modules/private/websites/immae/history/_includes/header.html36
-rw-r--r--modules/private/websites/immae/history/_includes/post.html26
-rw-r--r--modules/private/websites/immae/history/_includes/scripts.html3
-rw-r--r--modules/private/websites/immae/history/_layouts/default.html47
-rw-r--r--modules/private/websites/immae/history/_layouts/post.html7
-rw-r--r--modules/private/websites/immae/history/_posts/2020-06-07-historique.md8
-rw-r--r--modules/private/websites/immae/history/_sass/style.scss127
-rw-r--r--modules/private/websites/immae/history/_sass/syntex.scss38
-rw-r--r--modules/private/websites/immae/history/_sass/variables.scss16
-rw-r--r--modules/private/websites/immae/history/assets/css/main.scss6
-rw-r--r--modules/private/websites/immae/history/assets/js/script.js17
-rw-r--r--modules/private/websites/immae/history/default.nix27
-rw-r--r--modules/private/websites/immae/history/gemset.nix297
-rw-r--r--modules/private/websites/immae/history/index.html18
-rw-r--r--modules/private/websites/immae/production.nix8
-rw-r--r--modules/private/websites/tools/tools/landing/config.yml3
24 files changed, 885 insertions, 0 deletions
diff --git a/modules/private/websites/immae/history/.gitignore b/modules/private/websites/immae/history/.gitignore
new file mode 100644
index 0000000..64af247
--- /dev/null
+++ b/modules/private/websites/immae/history/.gitignore
@@ -0,0 +1,3 @@
1_site
2.sass-cache
3.jekyll-metadata \ No newline at end of file
diff --git a/modules/private/websites/immae/history/Gemfile b/modules/private/websites/immae/history/Gemfile
new file mode 100644
index 0000000..35f655f
--- /dev/null
+++ b/modules/private/websites/immae/history/Gemfile
@@ -0,0 +1,31 @@
1source "https://rubygems.org"
2
3# Hello! This is where you manage which Jekyll version is used to run.
4# When you want to use a different version, change it below, save the
5# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
6#
7# bundle exec jekyll serve
8#
9# This will help ensure the proper Jekyll version is running.
10# Happy Jekylling!
11gem "jekyll", "~> 3.8.5"
12
13# This is the default theme for new Jekyll sites. You may change this to anything you like.
14gem "minima", "~> 2.0"
15
16# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
17# uncomment the line below. To upgrade, run `bundle update github-pages`.
18# gem "github-pages", group: :jekyll_plugins
19
20# If you have any plugins, put them here!
21group :jekyll_plugins do
22 gem "jekyll-feed", "~> 0.6"
23 gem 'jekyll-paginate-v2', '1.9.0'
24end
25
26# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
27gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
28
29# Performance-booster for watching directories on Windows
30gem "wdm", "~> 0.1.0" if Gem.win_platform?
31
diff --git a/modules/private/websites/immae/history/Gemfile.lock b/modules/private/websites/immae/history/Gemfile.lock
new file mode 100644
index 0000000..9a3cb5e
--- /dev/null
+++ b/modules/private/websites/immae/history/Gemfile.lock
@@ -0,0 +1,75 @@
1GEM
2 remote: https://rubygems.org/
3 specs:
4 addressable (2.7.0)
5 public_suffix (>= 2.0.2, < 5.0)
6 colorator (1.1.0)
7 concurrent-ruby (1.1.6)
8 em-websocket (0.5.1)
9 eventmachine (>= 0.12.9)
10 http_parser.rb (~> 0.6.0)
11 eventmachine (1.2.7)
12 ffi (1.13.0)
13 forwardable-extended (2.6.0)
14 http_parser.rb (0.6.0)
15 i18n (0.9.5)
16 concurrent-ruby (~> 1.0)
17 jekyll (3.8.7)
18 addressable (~> 2.4)
19 colorator (~> 1.0)
20 em-websocket (~> 0.5)
21 i18n (~> 0.7)
22 jekyll-sass-converter (~> 1.0)
23 jekyll-watch (~> 2.0)
24 kramdown (~> 1.14)
25 liquid (~> 4.0)
26 mercenary (~> 0.3.3)
27 pathutil (~> 0.9)
28 rouge (>= 1.7, < 4)
29 safe_yaml (~> 1.0)
30 jekyll-feed (0.13.0)
31 jekyll (>= 3.7, < 5.0)
32 jekyll-paginate-v2 (1.9.0)
33 jekyll (~> 3.0)
34 jekyll-sass-converter (1.5.2)
35 sass (~> 3.4)
36 jekyll-seo-tag (2.6.1)
37 jekyll (>= 3.3, < 5.0)
38 jekyll-watch (2.2.1)
39 listen (~> 3.0)
40 kramdown (1.17.0)
41 liquid (4.0.3)
42 listen (3.2.1)
43 rb-fsevent (~> 0.10, >= 0.10.3)
44 rb-inotify (~> 0.9, >= 0.9.10)
45 mercenary (0.3.6)
46 minima (2.5.1)
47 jekyll (>= 3.5, < 5.0)
48 jekyll-feed (~> 0.9)
49 jekyll-seo-tag (~> 2.1)
50 pathutil (0.16.2)
51 forwardable-extended (~> 2.6)
52 public_suffix (4.0.5)
53 rb-fsevent (0.10.4)
54 rb-inotify (0.10.1)
55 ffi (~> 1.0)
56 rouge (3.19.0)
57 safe_yaml (1.0.5)
58 sass (3.7.4)
59 sass-listen (~> 4.0.0)
60 sass-listen (4.0.0)
61 rb-fsevent (~> 0.9, >= 0.9.4)
62 rb-inotify (~> 0.9, >= 0.9.7)
63
64PLATFORMS
65 ruby
66
67DEPENDENCIES
68 jekyll (~> 3.8.5)
69 jekyll-feed (~> 0.6)
70 jekyll-paginate-v2 (= 1.9.0)
71 minima (~> 2.0)
72 tzinfo-data
73
74BUNDLED WITH
75 2.1.4
diff --git a/modules/private/websites/immae/history/LICENSE b/modules/private/websites/immae/history/LICENSE
new file mode 100644
index 0000000..0e87543
--- /dev/null
+++ b/modules/private/websites/immae/history/LICENSE
@@ -0,0 +1,9 @@
1MIT License
2
3Copyright (c) 2019 bansal.io
4
5Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
7The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
9THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/modules/private/websites/immae/history/_config.yml b/modules/private/websites/immae/history/_config.yml
new file mode 100644
index 0000000..56da0e4
--- /dev/null
+++ b/modules/private/websites/immae/history/_config.yml
@@ -0,0 +1,47 @@
1title: Historique d’ImmaeEu
2heading: Mises à jour
3logo: /logo.jpg
4website: https://www.immae.eu
5
6# the base hostname & protocol for your site,
7# e.g. https://updates.changelog.site
8# Note Don't put trailing slash https://updates.changelog.site/
9url: "https://www.immae.eu" # (required)
10
11baseurl: '/history' # optional
12
13rss-feed-icon: true #(optional)
14
15defaults:
16 -
17 scope:
18 path: "_posts"
19 type: "posts"
20 values:
21 layout: "post"
22 -
23 scope:
24 path: "assets"
25 values:
26 sitemap: false
27
28permalink: /:title/
29markdown: kramdown
30highlighter: rouge
31sass:
32 sass_dir: _sass
33 style: compressed
34
35exclude: [ "Gemfile", "Gemfile.lock", "gemset.nix", "LICENSE", "default.nix", "shell.nix", "readme.md" ]
36
37plugins:
38 - jekyll-feed
39 - jekyll-paginate-v2
40
41pagination:
42 enabled: true
43 per_page: 20
44 title: ':title - page :num of :max'
45 limit: 0
46 sort_field: 'date'
47 sort_reverse: true
diff --git a/modules/private/websites/immae/history/_data/categories.yml b/modules/private/websites/immae/history/_data/categories.yml
new file mode 100644
index 0000000..fa7189b
--- /dev/null
+++ b/modules/private/websites/immae/history/_data/categories.yml
@@ -0,0 +1,13 @@
1# Available colors: blue, red, orange, green, purple
2- name: Nouveautés
3 color: green
4
5- name: Pannes
6 color: red
7
8- name: Informations
9 color: blue
10
11- name: Maintenance
12 color: purple
13
diff --git a/modules/private/websites/immae/history/_includes/footer.html b/modules/private/websites/immae/history/_includes/footer.html
new file mode 100644
index 0000000..a6adafb
--- /dev/null
+++ b/modules/private/websites/immae/history/_includes/footer.html
@@ -0,0 +1,5 @@
1<footer class="p-3 text-center mt-5">
2 <div class="w-25 border-top mb-3 mx-auto"></div>
3 <a href="https://changelog.site">Powered By ChangeLog.Site</a>
4</footer>
5{% include scripts.html %} \ No newline at end of file
diff --git a/modules/private/websites/immae/history/_includes/head.html b/modules/private/websites/immae/history/_includes/head.html
new file mode 100644
index 0000000..cd9112e
--- /dev/null
+++ b/modules/private/websites/immae/history/_includes/head.html
@@ -0,0 +1,18 @@
1<head>
2 <meta charset="utf-8">
3 <meta name="viewport" content="width=device-width, initial-scale=1">
4 <title>{% if page.title %}{{ page.title }}{% else %}{{ site.name }}{% endif %}</title>
5 <link rel="icon" type="image/png" href="/favicon.png">
6 <!-- CSS -->
7 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
8 <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css" type="text/css">
9
10 <!-- Font -->
11 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro">
12
13 <link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
14 <link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ "/feed.xml" | relative_url }}">
15
16 </head>
17
18 \ No newline at end of file
diff --git a/modules/private/websites/immae/history/_includes/header.html b/modules/private/websites/immae/history/_includes/header.html
new file mode 100644
index 0000000..42eda83
--- /dev/null
+++ b/modules/private/websites/immae/history/_includes/header.html
@@ -0,0 +1,36 @@
1 <nav class="bg-light border-bottom px-5 py-3">
2
3 <div class="w-75 mx-auto">
4
5 <div class="row">
6 <div class="col-md-6">
7 <div class="d-flex align-items-center">
8 <a href="{{ site.website }}">
9 <img src="{{ site.logo }}" alt="{{ site.name }}" class="logo" alt="Logo">
10 </a>
11 <a href="{{ site.url }}">
12 <span class="text-muted mx-3">
13 Changes
14 </span>
15 </a>
16 </div>
17 </div>
18
19 <div class="col-md-6 ml-auto d-flex align-items-center justify-content-end">
20 {% if site.rss-feed-icon %}
21 <a href="{{ site.baseurl }}/feed.xml"
22 class="inline-block mt-3 mt-md-0 text-orange d-flex align-items-center">
23 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 22 22" fill="none"
24 stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"
25 class="feather feather-rss">
26 <path d="M4 11a9 9 0 0 1 9 9"></path>
27 <path d="M4 4a16 16 0 0 1 16 16"></path>
28 <circle cx="5" cy="19" r="1"></circle>
29 </svg>
30 </a>
31 {% endif %}
32 </div>
33 </div>
34
35 </div>
36 </nav>
diff --git a/modules/private/websites/immae/history/_includes/post.html b/modules/private/websites/immae/history/_includes/post.html
new file mode 100644
index 0000000..04f4a77
--- /dev/null
+++ b/modules/private/websites/immae/history/_includes/post.html
@@ -0,0 +1,26 @@
1<div class="row p-3">
2 <div class="col-md-3 mb-3">
3 <a href="{{ include.url | prepend: site.baseurl | replace: '//', '/' }}" class="post-date text-muted">
4 {{ include.date | date: '%F' }}
5 </a>
6 </div>
7 <div class="col-md-9">
8 <h2 class="title">
9 {{ include.title }}
10 </h2>
11 <div>
12 {% if include.category %}
13
14 {% for category in site.data.categories %}
15 {% if category.name == include.category %}
16 {% assign color = category.color | downcase | prepend: 'bg-' %}
17 {% endif %}
18 {% endfor %}
19 <span class="category {% if color %}{{ color }}{% endif %}">{{ include.category }}</span>
20 {% endif %}
21 </div>
22 <div class="post-content my-4 text-grey-darker leading-normal text-base font-thin">
23 {{ include.content }}
24 </div>
25 </div>
26 </div>
diff --git a/modules/private/websites/immae/history/_includes/scripts.html b/modules/private/websites/immae/history/_includes/scripts.html
new file mode 100644
index 0000000..b566db8
--- /dev/null
+++ b/modules/private/websites/immae/history/_includes/scripts.html
@@ -0,0 +1,3 @@
1<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
2<script src="//unpkg.com/jscroll/dist/jquery.jscroll.min.js"></script>
3<script src="{{ site.baseurl }}/assets/js/script.js"></script>
diff --git a/modules/private/websites/immae/history/_layouts/default.html b/modules/private/websites/immae/history/_layouts/default.html
new file mode 100644
index 0000000..24c76ed
--- /dev/null
+++ b/modules/private/websites/immae/history/_layouts/default.html
@@ -0,0 +1,47 @@
1<!DOCTYPE html>
2<html>
3{% include head.html %}
4
5<body>
6
7<div id="fb-root"></div>
8
9 {% include header.html %}
10 <div class="p-4">
11 <div class="row no-gutters">
12 <div class="col-md-7 offset-md-2">
13 {% if page.name == 'index.html' %}
14 <div class="d-flex">
15 <a href="javascript:void(0);" id="expand-list" class="text-muted ml-auto"><svg
16 xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none"
17 stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
18 class="feather feather-list">
19 <line x1="8" y1="6" x2="21" y2="6"></line>
20 <line x1="8" y1="12" x2="21" y2="12"></line>
21 <line x1="8" y1="18" x2="21" y2="18"></line>
22 <line x1="3" y1="6" x2="3" y2="6"></line>
23 <line x1="3" y1="12" x2="3" y2="12"></line>
24 <line x1="3" y1="18" x2="3" y2="18"></line>
25 </svg></a>
26 <a href="javascript:void(0);" id="collapse-list" class="text-muted ml-3"><svg
27 xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none"
28 stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
29 class="feather feather-server">
30 <rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect>
31 <rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect>
32 <line x1="6" y1="6" x2="6" y2="6"></line>
33 <line x1="6" y1="18" x2="6" y2="18"></line>
34 </svg></a>
35 </div>
36 {% endif %}
37 <div class=" pt-5">
38 {{ content }}
39 </div>
40 </div>
41 </div>
42 </div>
43
44 {% include footer.html %}
45</body>
46
47</html> \ No newline at end of file
diff --git a/modules/private/websites/immae/history/_layouts/post.html b/modules/private/websites/immae/history/_layouts/post.html
new file mode 100644
index 0000000..664eaed
--- /dev/null
+++ b/modules/private/websites/immae/history/_layouts/post.html
@@ -0,0 +1,7 @@
1---
2layout: default
3---
4{% include post.html title=page.title category=page.category url=page.url date=page.date content=content %}
5
6<hr>
7
diff --git a/modules/private/websites/immae/history/_posts/2020-06-07-historique.md b/modules/private/websites/immae/history/_posts/2020-06-07-historique.md
new file mode 100644
index 0000000..7fc9abe
--- /dev/null
+++ b/modules/private/websites/immae/history/_posts/2020-06-07-historique.md
@@ -0,0 +1,8 @@
1---
2title: "Nouvelle page d’historique"
3category: Nouveautés
4date: 2020-06-07
5---
6ImmaeEu intègre dorénavant une page d’historique, pour lister l’ensemble
7des changements importants de l’infrastructure : pannes, nouveautés,
8maintenance, etc.
diff --git a/modules/private/websites/immae/history/_sass/style.scss b/modules/private/websites/immae/history/_sass/style.scss
new file mode 100644
index 0000000..cb2702a
--- /dev/null
+++ b/modules/private/websites/immae/history/_sass/style.scss
@@ -0,0 +1,127 @@
1body {
2 font-family: $primary-font;
3 font-size: 16px;
4 line-height: 1.8;
5 min-height: 100vh;
6 color: $text-color-primary;
7}
8
9.logo {
10 max-height: 45px;
11}
12
13footer a {
14 color: rgba(0, 0, 0, 0.4);
15 font-size: 0.8rem;
16}
17
18.category {
19 padding: 3px 10px;
20 background: $primary-color;
21 color: rgba(255, 255, 255, 0.9);
22 border-radius: 20px;
23 font-size: 12px;
24 line-height: 1.2;
25}
26
27@each $color,
28$value in $tag-colors {
29 .text-#{$color} {
30 color: $value;
31 }
32
33 .bg-#{$color} {
34 background-color: $value;
35 }
36}
37
38.title {
39 color: rgba(0, 0, 0, 0.9);
40 font-weight: 600;
41 font-size: 1.8rem;
42}
43
44.post-content {
45
46
47 h1,
48 h2,
49 h3,
50 h4,
51 h5,
52 h6 {
53 margin-top: 1.5rem;
54 margin-bottom: 0.8rem;
55 }
56
57 strong{
58 color: darken($text-color-primary, 50%);
59 font-weight: 600;
60 }
61
62 table {
63 border: 1px solid $border-color;
64 width: 100%;
65 margin-bottom: 1rem;
66 border-collapse: collapse;
67
68 th,
69 td {
70 border: 1px solid $border-color;
71 padding: .75rem;
72 vertical-align: top;
73 border-top: 1px solid $border-color;
74 }
75
76 thead {
77
78 th,
79 td {
80 border-bottom-width: 2px;
81 padding: .75rem;
82 vertical-align: top;
83 border-top: 1px solid $border-color;
84 }
85 }
86 }
87
88 // Blockquote
89
90 blockquote {
91 background: $bg-light;
92 font-style: italic;
93 border-left: 8px solid $border-color;
94 padding: 20px;
95 margin: 20px 0px;
96 box-sizing: border-box;
97 }
98
99 a {
100 color: $primary-color;
101 &:hover {
102 color: darken($primary-color, 15%);
103 }
104 }
105
106
107
108 p code,
109 li code {
110 font-size: .8rem;
111 line-height: 1.8571;
112 color: rgba(0, 0, 0, 1);
113 background-color: $bg-light;
114 border: 1px solid $border-color;
115 -webkit-border-radius: 4px;
116 -moz-border-radius: 4px;
117 border-radius: 4px;
118 margin: 0 2px;
119 padding: 0 5px;
120 }
121
122 img {
123 max-width: 100%;
124 height: auto;
125 margin: 10px 0px;
126 }
127} \ No newline at end of file
diff --git a/modules/private/websites/immae/history/_sass/syntex.scss b/modules/private/websites/immae/history/_sass/syntex.scss
new file mode 100644
index 0000000..d09a98f
--- /dev/null
+++ b/modules/private/websites/immae/history/_sass/syntex.scss
@@ -0,0 +1,38 @@
1.highlight .hll { background-color: #ffffcc }
2.highlight { background: #f8f8f8; padding: 0.5em 1em; border-radius: 4px; margin-bottom: 0em;}
3.highlight .c { color: #008000 } /* Comment */
4.highlight .err { border: 1px solid #FF0000 } /* Error */
5.highlight .k { color: #0000ff } /* Keyword */
6.highlight .ch { color: #008000 } /* Comment.Hashbang */
7.highlight .cm { color: #008000 } /* Comment.Multiline */
8.highlight .cp { color: #0000ff } /* Comment.Preproc */
9.highlight .cpf { color: #008000 } /* Comment.PreprocFile */
10.highlight .c1 { color: #008000 } /* Comment.Single */
11.highlight .cs { color: #008000 } /* Comment.Special */
12.highlight .ge { font-style: italic } /* Generic.Emph */
13.highlight .gh { font-weight: bold } /* Generic.Heading */
14.highlight .gp { font-weight: bold } /* Generic.Prompt */
15.highlight .gs { font-weight: bold } /* Generic.Strong */
16.highlight .gu { font-weight: bold } /* Generic.Subheading */
17.highlight .kc { color: #0000ff } /* Keyword.Constant */
18.highlight .kd { color: #0000ff } /* Keyword.Declaration */
19.highlight .kn { color: #0000ff } /* Keyword.Namespace */
20.highlight .kp { color: #0000ff } /* Keyword.Pseudo */
21.highlight .kr { color: #0000ff } /* Keyword.Reserved */
22.highlight .kt { color: #2b91af } /* Keyword.Type */
23.highlight .s { color: #a31515 } /* Literal.String */
24.highlight .nc { color: #2b91af } /* Name.Class */
25.highlight .ow { color: #0000ff } /* Operator.Word */
26.highlight .sa { color: #a31515 } /* Literal.String.Affix */
27.highlight .sb { color: #a31515 } /* Literal.String.Backtick */
28.highlight .sc { color: #a31515 } /* Literal.String.Char */
29.highlight .dl { color: #a31515 } /* Literal.String.Delimiter */
30.highlight .sd { color: #a31515 } /* Literal.String.Doc */
31.highlight .s2 { color: #a31515 } /* Literal.String.Double */
32.highlight .se { color: #a31515 } /* Literal.String.Escape */
33.highlight .sh { color: #a31515 } /* Literal.String.Heredoc */
34.highlight .si { color: #a31515 } /* Literal.String.Interpol */
35.highlight .sx { color: #a31515 } /* Literal.String.Other */
36.highlight .sr { color: #a31515 } /* Literal.String.Regex */
37.highlight .s1 { color: #a31515 } /* Literal.String.Single */
38.highlight .ss { color: #a31515 } /* Literal.String.Symbol */ \ No newline at end of file
diff --git a/modules/private/websites/immae/history/_sass/variables.scss b/modules/private/websites/immae/history/_sass/variables.scss
new file mode 100644
index 0000000..5719431
--- /dev/null
+++ b/modules/private/websites/immae/history/_sass/variables.scss
@@ -0,0 +1,16 @@
1$primary-font: 'Source Sans Pro', sans-serif;
2$primary-color: #0775F8;
3$text-color-primary: #48586b;
4$border-color: #dae1e7;
5$bg-light: #f1f5f8;
6$blue: #0775F8;
7$purple: #6D75F1;
8$green: #00CECE;
9$red: #F7444E;
10$orange: #F27013;
11
12$tag-colors: ("blue": $blue,
13 "purple": $purple,
14 "green": $green,
15 "red": $red,
16 "orange": $orange); \ No newline at end of file
diff --git a/modules/private/websites/immae/history/assets/css/main.scss b/modules/private/websites/immae/history/assets/css/main.scss
new file mode 100644
index 0000000..7df8776
--- /dev/null
+++ b/modules/private/websites/immae/history/assets/css/main.scss
@@ -0,0 +1,6 @@
1---
2sitemap: false
3---
4@import "variables";
5@import "syntex";
6@import "style"; \ No newline at end of file
diff --git a/modules/private/websites/immae/history/assets/js/script.js b/modules/private/websites/immae/history/assets/js/script.js
new file mode 100644
index 0000000..65115d3
--- /dev/null
+++ b/modules/private/websites/immae/history/assets/js/script.js
@@ -0,0 +1,17 @@
1$(function() {
2 var options = {
3 padding: 0,
4 nextSelector: 'a.next-page:last',
5 contentSelector: '.post_list',
6 autoTrigger: false,
7 debug: true
8 };
9
10 $('.post_list').jscroll(options);
11 $(document).on('click', '#expand-list', function(){
12 $('.post-content').hide();
13 });
14 $(document).on('click', '#collapse-list', function(){
15 $('.post-content').show();
16 });
17}); \ No newline at end of file
diff --git a/modules/private/websites/immae/history/default.nix b/modules/private/websites/immae/history/default.nix
new file mode 100644
index 0000000..2335627
--- /dev/null
+++ b/modules/private/websites/immae/history/default.nix
@@ -0,0 +1,27 @@
1{ lib, bundlerEnv, ruby, stdenv }:
2
3# rebuild with bundix -l
4let
5 jekyll = bundlerEnv rec {
6 name = pname + "-" + version;
7 pname = "jekyll";
8 version = (import ./gemset.nix).jekyll.version;
9
10 inherit ruby;
11 gemdir = ./.;
12 };
13in
14 stdenv.mkDerivation rec {
15 pname = "changelog";
16 version = "1";
17 src = ./.;
18 buildInputs = [ jekyll ];
19 phases = [ "unpackPhase" "buildPhase" "installPhase"];
20 buildPhase = ''
21 jekyll build
22 '';
23
24 installPhase = ''
25 cp -a _site $out
26 '';
27 }
diff --git a/modules/private/websites/immae/history/gemset.nix b/modules/private/websites/immae/history/gemset.nix
new file mode 100644
index 0000000..55bb74a
--- /dev/null
+++ b/modules/private/websites/immae/history/gemset.nix
@@ -0,0 +1,297 @@
1{
2 addressable = {
3 dependencies = ["public_suffix"];
4 groups = ["default" "jekyll_plugins"];
5 platforms = [];
6 source = {
7 remotes = ["https://rubygems.org"];
8 sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
9 type = "gem";
10 };
11 version = "2.7.0";
12 };
13 colorator = {
14 groups = ["default" "jekyll_plugins"];
15 platforms = [];
16 source = {
17 remotes = ["https://rubygems.org"];
18 sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72";
19 type = "gem";
20 };
21 version = "1.1.0";
22 };
23 concurrent-ruby = {
24 groups = ["default" "jekyll_plugins"];
25 platforms = [];
26 source = {
27 remotes = ["https://rubygems.org"];
28 sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
29 type = "gem";
30 };
31 version = "1.1.6";
32 };
33 em-websocket = {
34 dependencies = ["eventmachine" "http_parser.rb"];
35 groups = ["default" "jekyll_plugins"];
36 platforms = [];
37 source = {
38 remotes = ["https://rubygems.org"];
39 sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
40 type = "gem";
41 };
42 version = "0.5.1";
43 };
44 eventmachine = {
45 groups = ["default" "jekyll_plugins"];
46 platforms = [];
47 source = {
48 remotes = ["https://rubygems.org"];
49 sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
50 type = "gem";
51 };
52 version = "1.2.7";
53 };
54 ffi = {
55 groups = ["default" "jekyll_plugins"];
56 platforms = [];
57 source = {
58 remotes = ["https://rubygems.org"];
59 sha256 = "1y9y4pkfbjvzp7fdvikz5nxccan8v1x0ppb18a5333v0z3pv3y86";
60 type = "gem";
61 };
62 version = "1.13.0";
63 };
64 forwardable-extended = {
65 groups = ["default" "jekyll_plugins"];
66 platforms = [];
67 source = {
68 remotes = ["https://rubygems.org"];
69 sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v";
70 type = "gem";
71 };
72 version = "2.6.0";
73 };
74 "http_parser.rb" = {
75 groups = ["default" "jekyll_plugins"];
76 platforms = [];
77 source = {
78 remotes = ["https://rubygems.org"];
79 sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
80 type = "gem";
81 };
82 version = "0.6.0";
83 };
84 i18n = {
85 dependencies = ["concurrent-ruby"];
86 groups = ["default" "jekyll_plugins"];
87 platforms = [];
88 source = {
89 remotes = ["https://rubygems.org"];
90 sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
91 type = "gem";
92 };
93 version = "0.9.5";
94 };
95 jekyll = {
96 dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"];
97 groups = ["default" "jekyll_plugins"];
98 platforms = [];
99 source = {
100 remotes = ["https://rubygems.org"];
101 sha256 = "13gi6v6ib925v9r0w3a3dqvbhj9rrwbbpkr3slisfxwpwy6k0kyp";
102 type = "gem";
103 };
104 version = "3.8.7";
105 };
106 jekyll-feed = {
107 dependencies = ["jekyll"];
108 groups = ["jekyll_plugins"];
109 platforms = [];
110 source = {
111 remotes = ["https://rubygems.org"];
112 sha256 = "1lx8nvkhd8l1wm3b6s506rycwbmpbzbsbjl65p21asjz6vbwf1ir";
113 type = "gem";
114 };
115 version = "0.13.0";
116 };
117 jekyll-paginate-v2 = {
118 dependencies = ["jekyll"];
119 groups = ["jekyll_plugins"];
120 platforms = [];
121 source = {
122 remotes = ["https://rubygems.org"];
123 sha256 = "0hkl5vfgrz4p0j5dgji0rhnv081y4mrvsy2lnnzl0zv9rd5gqsn7";
124 type = "gem";
125 };
126 version = "1.9.0";
127 };
128 jekyll-sass-converter = {
129 dependencies = ["sass"];
130 groups = ["default" "jekyll_plugins"];
131 platforms = [];
132 source = {
133 remotes = ["https://rubygems.org"];
134 sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk";
135 type = "gem";
136 };
137 version = "1.5.2";
138 };
139 jekyll-seo-tag = {
140 dependencies = ["jekyll"];
141 groups = ["default"];
142 platforms = [];
143 source = {
144 remotes = ["https://rubygems.org"];
145 sha256 = "1p9fl2r4ni10lbx143zp41caldjs4hg27az5wg42sbwzb7s6z66m";
146 type = "gem";
147 };
148 version = "2.6.1";
149 };
150 jekyll-watch = {
151 dependencies = ["listen"];
152 groups = ["default" "jekyll_plugins"];
153 platforms = [];
154 source = {
155 remotes = ["https://rubygems.org"];
156 sha256 = "1qd7hy1kl87fl7l0frw5qbn22x7ayfzlv9a5ca1m59g0ym1ysi5w";
157 type = "gem";
158 };
159 version = "2.2.1";
160 };
161 kramdown = {
162 groups = ["default" "jekyll_plugins"];
163 platforms = [];
164 source = {
165 remotes = ["https://rubygems.org"];
166 sha256 = "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq";
167 type = "gem";
168 };
169 version = "1.17.0";
170 };
171 liquid = {
172 groups = ["default" "jekyll_plugins"];
173 platforms = [];
174 source = {
175 remotes = ["https://rubygems.org"];
176 sha256 = "0zhg5ha8zy8zw9qr3fl4wgk4r5940n4128xm2pn4shpbzdbsj5by";
177 type = "gem";
178 };
179 version = "4.0.3";
180 };
181 listen = {
182 dependencies = ["rb-fsevent" "rb-inotify"];
183 groups = ["default" "jekyll_plugins"];
184 platforms = [];
185 source = {
186 remotes = ["https://rubygems.org"];
187 sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
188 type = "gem";
189 };
190 version = "3.2.1";
191 };
192 mercenary = {
193 groups = ["default" "jekyll_plugins"];
194 platforms = [];
195 source = {
196 remotes = ["https://rubygems.org"];
197 sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a";
198 type = "gem";
199 };
200 version = "0.3.6";
201 };
202 minima = {
203 dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"];
204 groups = ["default"];
205 platforms = [];
206 source = {
207 remotes = ["https://rubygems.org"];
208 sha256 = "1gk7jmriiswda1ykjzpsw9cpiya4m9n0yrh0h6xnrc8zcfy543jj";
209 type = "gem";
210 };
211 version = "2.5.1";
212 };
213 pathutil = {
214 dependencies = ["forwardable-extended"];
215 groups = ["default" "jekyll_plugins"];
216 platforms = [];
217 source = {
218 remotes = ["https://rubygems.org"];
219 sha256 = "12fm93ljw9fbxmv2krki5k5wkvr7560qy8p4spvb9jiiaqv78fz4";
220 type = "gem";
221 };
222 version = "0.16.2";
223 };
224 public_suffix = {
225 groups = ["default" "jekyll_plugins"];
226 platforms = [];
227 source = {
228 remotes = ["https://rubygems.org"];
229 sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
230 type = "gem";
231 };
232 version = "4.0.5";
233 };
234 rb-fsevent = {
235 groups = ["default" "jekyll_plugins"];
236 platforms = [];
237 source = {
238 remotes = ["https://rubygems.org"];
239 sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
240 type = "gem";
241 };
242 version = "0.10.4";
243 };
244 rb-inotify = {
245 dependencies = ["ffi"];
246 groups = ["default" "jekyll_plugins"];
247 platforms = [];
248 source = {
249 remotes = ["https://rubygems.org"];
250 sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
251 type = "gem";
252 };
253 version = "0.10.1";
254 };
255 rouge = {
256 groups = ["default" "jekyll_plugins"];
257 platforms = [];
258 source = {
259 remotes = ["https://rubygems.org"];
260 sha256 = "102rc07d78k5bkl0s9nd1gw6wz0w0zcvg4g5sl7z9xxi4r793c35";
261 type = "gem";
262 };
263 version = "3.19.0";
264 };
265 safe_yaml = {
266 groups = ["default" "jekyll_plugins"];
267 platforms = [];
268 source = {
269 remotes = ["https://rubygems.org"];
270 sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
271 type = "gem";
272 };
273 version = "1.0.5";
274 };
275 sass = {
276 dependencies = ["sass-listen"];
277 groups = ["default" "jekyll_plugins"];
278 platforms = [];
279 source = {
280 remotes = ["https://rubygems.org"];
281 sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0";
282 type = "gem";
283 };
284 version = "3.7.4";
285 };
286 sass-listen = {
287 dependencies = ["rb-fsevent" "rb-inotify"];
288 groups = ["default" "jekyll_plugins"];
289 platforms = [];
290 source = {
291 remotes = ["https://rubygems.org"];
292 sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
293 type = "gem";
294 };
295 version = "4.0.0";
296 };
297} \ No newline at end of file
diff --git a/modules/private/websites/immae/history/index.html b/modules/private/websites/immae/history/index.html
new file mode 100644
index 0000000..e9226e4
--- /dev/null
+++ b/modules/private/websites/immae/history/index.html
@@ -0,0 +1,18 @@
1---
2layout: default
3permalink: /
4pagination:
5 permalink: /page/:num/
6 enabled: true
7 indexpage: 'index'
8---
9<div class="post_list">
10{% for post in paginator.posts %}
11 {% include post.html title=post.title category=post.category url=post.url date=post.date content=post.content %}
12 <hr>
13{% endfor %}
14
15 {% if paginator.next_page %}
16 <a href="{{ paginator.next_page_path | replace: 'index.html', '' | prepend: site.baseurl }}" class="d-block text-center p-3 text-muted next-page">Load More Updates</a>
17 {% endif %}
18</div> \ No newline at end of file
diff --git a/modules/private/websites/immae/production.nix b/modules/private/websites/immae/production.nix
index dc89ae3..ae4abe0 100644
--- a/modules/private/websites/immae/production.nix
+++ b/modules/private/websites/immae/production.nix
@@ -5,6 +5,7 @@ let
5 coursDir = "/var/lib/buildbot/outputs/cours"; 5 coursDir = "/var/lib/buildbot/outputs/cours";
6 rechercheDir = "/var/lib/buildbot/outputs/recherche"; 6 rechercheDir = "/var/lib/buildbot/outputs/recherche";
7 recettesDir = "/var/lib/buildbot/outputs/recettes"; 7 recettesDir = "/var/lib/buildbot/outputs/recettes";
8 historyDir = pkgs.callPackage ./history {};
8 env = config.myEnv.websites.immae; 9 env = config.myEnv.websites.immae;
9in { 10in {
10 options.myServices.websites.immae.production.enable = lib.mkEnableOption "enable Immae's website"; 11 options.myServices.websites.immae.production.enable = lib.mkEnableOption "enable Immae's website";
@@ -65,6 +66,13 @@ in {
65 AllowOverride All 66 AllowOverride All
66 Require all granted 67 Require all granted
67 </Directory> 68 </Directory>
69
70 Alias /history ${historyDir}
71 <Directory ${historyDir}>
72 DirectoryIndex index.html
73 AllowOverride None
74 Require all granted
75 </Directory>
68 '' 76 ''
69 ]; 77 ];
70 }; 78 };
diff --git a/modules/private/websites/tools/tools/landing/config.yml b/modules/private/websites/tools/tools/landing/config.yml
index 81a99d5..f3de6fc 100644
--- a/modules/private/websites/tools/tools/landing/config.yml
+++ b/modules/private/websites/tools/tools/landing/config.yml
@@ -129,6 +129,9 @@ services:
129 - name: "Page principale" 129 - name: "Page principale"
130 icon: "fas fa-user" 130 icon: "fas fa-user"
131 url: "https://www.immae.eu" 131 url: "https://www.immae.eu"
132 - name: "Historique infrastructure / Changelog"
133 icon: "fas fa-history"
134 url: "https://www.immae.eu/history"
132 - name: "Atelier d’écriture" 135 - name: "Atelier d’écriture"
133 icon: "fas fa-pen" 136 icon: "fas fa-pen"
134 url: "https://www.immae.eu/atelier" 137 url: "https://www.immae.eu/atelier"