diff --git a/assets/cover/cover.jpg b/assets/cover/cover.jpg new file mode 100644 index 0000000..8ec8708 Binary files /dev/null and b/assets/cover/cover.jpg differ diff --git a/assets/cover/cover_v2_01.jpg b/assets/cover/cover_v2_01.jpg new file mode 100644 index 0000000..97f3d99 Binary files /dev/null and b/assets/cover/cover_v2_01.jpg differ diff --git a/assets/images/assemble/ag_2023-09_1.jpg b/assets/images/assemble/ag_2023-09_1.jpg new file mode 100644 index 0000000..27a349f Binary files /dev/null and b/assets/images/assemble/ag_2023-09_1.jpg differ diff --git a/assets/images/assemble/ag_2023-09_2.jpg b/assets/images/assemble/ag_2023-09_2.jpg new file mode 100644 index 0000000..dc0ba58 Binary files /dev/null and b/assets/images/assemble/ag_2023-09_2.jpg differ diff --git a/assets/images/cards/inventaire.png b/assets/images/cards/inventaire.png new file mode 100644 index 0000000..9256720 Binary files /dev/null and b/assets/images/cards/inventaire.png differ diff --git a/assets/images/icons/bicycle-1.svg b/assets/images/icons/bicycle-1.svg new file mode 100644 index 0000000..403da11 --- /dev/null +++ b/assets/images/icons/bicycle-1.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/assets/images/icons/circle-play.svg b/assets/images/icons/circle-play.svg new file mode 100644 index 0000000..3aefb67 --- /dev/null +++ b/assets/images/icons/circle-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/icons/document.svg b/assets/images/icons/document.svg new file mode 100644 index 0000000..370519e --- /dev/null +++ b/assets/images/icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/icons/email.svg b/assets/images/icons/email.svg new file mode 100644 index 0000000..9b5c4de --- /dev/null +++ b/assets/images/icons/email.svg @@ -0,0 +1,37 @@ + + + + + diff --git a/assets/images/icons/external.svg b/assets/images/icons/external.svg new file mode 100644 index 0000000..20dc0cd --- /dev/null +++ b/assets/images/icons/external.svg @@ -0,0 +1,4 @@ + + diff --git a/assets/images/icons/facebook.svg b/assets/images/icons/facebook.svg new file mode 100644 index 0000000..f94f854 --- /dev/null +++ b/assets/images/icons/facebook.svg @@ -0,0 +1,37 @@ + + + + + diff --git a/assets/images/icons/helloasso.svg b/assets/images/icons/helloasso.svg new file mode 100644 index 0000000..27d0aad --- /dev/null +++ b/assets/images/icons/helloasso.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/icons/mastodon-color.svg b/assets/images/icons/mastodon-color.svg new file mode 100644 index 0000000..5b519d1 --- /dev/null +++ b/assets/images/icons/mastodon-color.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/icons/mastodon.svg b/assets/images/icons/mastodon.svg new file mode 100644 index 0000000..d28c218 --- /dev/null +++ b/assets/images/icons/mastodon.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/icons/peertube.svg b/assets/images/icons/peertube.svg new file mode 100644 index 0000000..7e9f2fb --- /dev/null +++ b/assets/images/icons/peertube.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/icons/pretty_bicycle_icon.svg b/assets/images/icons/pretty_bicycle_icon.svg new file mode 100644 index 0000000..2e2ae50 --- /dev/null +++ b/assets/images/icons/pretty_bicycle_icon.svg @@ -0,0 +1,65 @@ + + + + error_bike + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/icons/quote.svg b/assets/images/icons/quote.svg new file mode 100644 index 0000000..a68a32b --- /dev/null +++ b/assets/images/icons/quote.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/icons/twitter.svg b/assets/images/icons/twitter.svg new file mode 100644 index 0000000..bb8fbb7 --- /dev/null +++ b/assets/images/icons/twitter.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/icons/wikipedia_globe.svg b/assets/images/icons/wikipedia_globe.svg new file mode 100644 index 0000000..79a28ac --- /dev/null +++ b/assets/images/icons/wikipedia_globe.svg @@ -0,0 +1 @@ +Wikipedia logo version 2 diff --git a/assets/images/icons/youtube.svg b/assets/images/icons/youtube.svg new file mode 100644 index 0000000..5f1cab9 --- /dev/null +++ b/assets/images/icons/youtube.svg @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/assets/images/logos/7.jpg b/assets/images/logos/7.jpg new file mode 100644 index 0000000..d532531 Binary files /dev/null and b/assets/images/logos/7.jpg differ diff --git a/assets/images/logos/logo.png b/assets/images/logos/logo.png new file mode 100644 index 0000000..249b931 Binary files /dev/null and b/assets/images/logos/logo.png differ diff --git a/assets/images/logos/logo_beta_1.jpg b/assets/images/logos/logo_beta_1.jpg new file mode 100644 index 0000000..ef718f9 Binary files /dev/null and b/assets/images/logos/logo_beta_1.jpg differ diff --git a/assets/images/velo_femme.jpg b/assets/images/velo_femme.jpg new file mode 100644 index 0000000..cc52826 Binary files /dev/null and b/assets/images/velo_femme.jpg differ diff --git a/assets/images/velo_homme.jpg b/assets/images/velo_homme.jpg new file mode 100644 index 0000000..d5a74df Binary files /dev/null and b/assets/images/velo_homme.jpg differ diff --git a/assets/images/velos/IMG_20220910_153514.jpg b/assets/images/velos/IMG_20220910_153514.jpg new file mode 100644 index 0000000..48b445f Binary files /dev/null and b/assets/images/velos/IMG_20220910_153514.jpg differ diff --git a/assets/images/velos/cycle_path_1.jpg b/assets/images/velos/cycle_path_1.jpg new file mode 100644 index 0000000..aaf50c1 Binary files /dev/null and b/assets/images/velos/cycle_path_1.jpg differ diff --git a/assets/images/velos/cycle_path_1.jpg_sharable.jpg b/assets/images/velos/cycle_path_1.jpg_sharable.jpg new file mode 100644 index 0000000..fa30bec Binary files /dev/null and b/assets/images/velos/cycle_path_1.jpg_sharable.jpg differ diff --git a/assets/images/velos/cycle_path_1_cropped.jpg b/assets/images/velos/cycle_path_1_cropped.jpg new file mode 100644 index 0000000..7330516 Binary files /dev/null and b/assets/images/velos/cycle_path_1_cropped.jpg differ diff --git a/assets/images/velos/cycle_path_2.jpg b/assets/images/velos/cycle_path_2.jpg new file mode 100644 index 0000000..90e93ad Binary files /dev/null and b/assets/images/velos/cycle_path_2.jpg differ diff --git a/assets/images/velos/parking/insa_rouen_arceaux.jpg b/assets/images/velos/parking/insa_rouen_arceaux.jpg new file mode 100644 index 0000000..f9ecb2d Binary files /dev/null and b/assets/images/velos/parking/insa_rouen_arceaux.jpg differ diff --git a/assets/images/velos/parking/insa_rouen_arceaux_cropped.jpg b/assets/images/velos/parking/insa_rouen_arceaux_cropped.jpg new file mode 100644 index 0000000..2f0b1d2 Binary files /dev/null and b/assets/images/velos/parking/insa_rouen_arceaux_cropped.jpg differ diff --git a/assets/images/velos/parking/insa_rouen_arceaux_final.jpg b/assets/images/velos/parking/insa_rouen_arceaux_final.jpg new file mode 100644 index 0000000..8d6e236 Binary files /dev/null and b/assets/images/velos/parking/insa_rouen_arceaux_final.jpg differ diff --git a/assets/images/velos/parking/parking_arcos.jpg b/assets/images/velos/parking/parking_arcos.jpg new file mode 100644 index 0000000..ad748f6 Binary files /dev/null and b/assets/images/velos/parking/parking_arcos.jpg differ diff --git a/assets/images/velos/parking/parking_gare_aubevoye.jpg b/assets/images/velos/parking/parking_gare_aubevoye.jpg new file mode 100644 index 0000000..7177256 Binary files /dev/null and b/assets/images/velos/parking/parking_gare_aubevoye.jpg differ diff --git a/assets/images/velos/parking/parking_intermarche_aubevoye.jpg b/assets/images/velos/parking/parking_intermarche_aubevoye.jpg new file mode 100644 index 0000000..a4c3f62 Binary files /dev/null and b/assets/images/velos/parking/parking_intermarche_aubevoye.jpg differ diff --git a/assets/images/velos/parking/semo_velo_lycee.jpg b/assets/images/velos/parking/semo_velo_lycee.jpg new file mode 100644 index 0000000..9215724 Binary files /dev/null and b/assets/images/velos/parking/semo_velo_lycee.jpg differ diff --git a/assets/images/velos/velos_semos.jpg b/assets/images/velos/velos_semos.jpg new file mode 100644 index 0000000..42b456d Binary files /dev/null and b/assets/images/velos/velos_semos.jpg differ diff --git a/assets/sass/landing.scss b/assets/sass/landing.scss new file mode 100644 index 0000000..5f6e284 --- /dev/null +++ b/assets/sass/landing.scss @@ -0,0 +1,17 @@ +.tmp_logo_container { + display: flex; + justify-content: center; +} + + +.split-two { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 2rem; +} + +@media(max-width: $md-breakpoint) { + .split-two { + display: block; + } +} diff --git a/assets/sass/main.scss b/assets/sass/main.scss new file mode 100644 index 0000000..443d48d --- /dev/null +++ b/assets/sass/main.scss @@ -0,0 +1,18 @@ +$xl-breakpoint: 1800px; +$lg-breakpoint: 1600px; +$md-breakpoint: 1100px; +$sm-breakpoint: 900px; +$xs-breakpoint: 400px; + + +$background-dark: #1f1f1e; +$background: #303131; +$primary: #db8d42; +$secondary: #f15a24; + + +@import "./vendor/skeleton.scss"; +@import "./vendor/normalize.scss"; +@import "./page_container.scss"; +@import "./landing.scss"; + diff --git a/assets/sass/page_container.scss b/assets/sass/page_container.scss new file mode 100644 index 0000000..a1297b6 --- /dev/null +++ b/assets/sass/page_container.scss @@ -0,0 +1,47 @@ +.large-container { + width: 90%; + margin: 0 auto; +} + +.page-container { + width: 80%; + margin: 0 auto; +} +.page-full { + padding: 0 2rem; +} + +@media (min-width: $xl-breakpoint) { + .page-container { + width: 70% !important; + } +} + +@media (min-width: $lg-breakpoint) { + .page-container { + width: 70%; + } +} + +@media (min-width: $md-breakpoint) { + .page-container { + width: 70%; + } +} + +@media (max-width: $md-breakpoint) { + .page-container { + width: 75%; + } +} + +@media (max-width: $sm-breakpoint) { + .page-container { + width: 100%; + padding: 0 .8rem; + } + .page-full { + padding: 0 .8rem; + } +} + diff --git a/assets/sass/pico.scss b/assets/sass/pico.scss new file mode 100644 index 0000000..e69de29 diff --git a/assets/sass/vendor/normalize.scss b/assets/sass/vendor/normalize.scss new file mode 100644 index 0000000..81c6f31 --- /dev/null +++ b/assets/sass/vendor/normalize.scss @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} \ No newline at end of file diff --git a/assets/sass/vendor/skeleton.scss b/assets/sass/vendor/skeleton.scss new file mode 100644 index 0000000..f28bf6c --- /dev/null +++ b/assets/sass/vendor/skeleton.scss @@ -0,0 +1,418 @@ +/* +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– +- Grid +- Base Styles +- Typography +- Links +- Buttons +- Forms +- Lists +- Code +- Tables +- Spacing +- Utilities +- Clearing +- Media Queries +*/ + + +/* Grid +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.container { + position: relative; + width: 100%; + max-width: 960px; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; } +.column, +.columns { + width: 100%; + float: left; + box-sizing: border-box; } + +/* For devices larger than 400px */ +@media (min-width: 400px) { + .container { + width: 85%; + padding: 0; } +} + +/* For devices larger than 550px */ +@media (min-width: 550px) { + .container { + width: 80%; } + .column, + .columns { + margin-left: 4%; } + .column:first-child, + .columns:first-child { + margin-left: 0; } + + .one.column, + .one.columns { width: 4.66666666667%; } + .two.columns { width: 13.3333333333%; } + .three.columns { width: 22%; } + .four.columns { width: 30.6666666667%; } + .five.columns { width: 39.3333333333%; } + .six.columns { width: 48%; } + .seven.columns { width: 56.6666666667%; } + .eight.columns { width: 65.3333333333%; } + .nine.columns { width: 74.0%; } + .ten.columns { width: 82.6666666667%; } + .eleven.columns { width: 91.3333333333%; } + .twelve.columns { width: 100%; margin-left: 0; } + + .one-third.column { width: 30.6666666667%; } + .two-thirds.column { width: 65.3333333333%; } + + .one-half.column { width: 48%; } + + /* Offsets */ + .offset-by-one.column, + .offset-by-one.columns { margin-left: 8.66666666667%; } + .offset-by-two.column, + .offset-by-two.columns { margin-left: 17.3333333333%; } + .offset-by-three.column, + .offset-by-three.columns { margin-left: 26%; } + .offset-by-four.column, + .offset-by-four.columns { margin-left: 34.6666666667%; } + .offset-by-five.column, + .offset-by-five.columns { margin-left: 43.3333333333%; } + .offset-by-six.column, + .offset-by-six.columns { margin-left: 52%; } + .offset-by-seven.column, + .offset-by-seven.columns { margin-left: 60.6666666667%; } + .offset-by-eight.column, + .offset-by-eight.columns { margin-left: 69.3333333333%; } + .offset-by-nine.column, + .offset-by-nine.columns { margin-left: 78.0%; } + .offset-by-ten.column, + .offset-by-ten.columns { margin-left: 86.6666666667%; } + .offset-by-eleven.column, + .offset-by-eleven.columns { margin-left: 95.3333333333%; } + + .offset-by-one-third.column, + .offset-by-one-third.columns { margin-left: 34.6666666667%; } + .offset-by-two-thirds.column, + .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } + + .offset-by-one-half.column, + .offset-by-one-half.columns { margin-left: 52%; } + +} + + +/* Base Styles +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* NOTE +html is set to 62.5% so that all the REM measurements throughout Skeleton +are based on 10px sizing. So basically 1.5rem = 15px :) */ +html { + font-size: 62.5%; } +body { + font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ + line-height: 1.6; + font-weight: 400; + font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #222; } + + +/* Typography +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 2rem; + font-weight: 300; } +h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} +h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } +h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } +h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } +h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } +h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } + +/* Larger than phablet */ +@media (min-width: 550px) { + h1 { font-size: 5.0rem; } + h2 { font-size: 4.2rem; } + h3 { font-size: 3.6rem; } + h4 { font-size: 3.0rem; } + h5 { font-size: 2.4rem; } + h6 { font-size: 1.5rem; } +} + +p { + margin-top: 0; } + + +/* Links +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +a { + color: #1EAEDB; } +a:hover { + color: #0FA0CE; } + + +/* Buttons +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.button, +button, +input[type="submit"], +input[type="reset"], +input[type="button"] { + display: inline-block; + height: 38px; + padding: 0 30px; + color: #555; + text-align: center; + font-size: 11px; + font-weight: 600; + line-height: 38px; + letter-spacing: .1rem; + text-transform: uppercase; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border-radius: 4px; + border: 1px solid #bbb; + cursor: pointer; + box-sizing: border-box; } +.button:hover, +button:hover, +input[type="submit"]:hover, +input[type="reset"]:hover, +input[type="button"]:hover, +.button:focus, +button:focus, +input[type="submit"]:focus, +input[type="reset"]:focus, +input[type="button"]:focus { + color: #333; + border-color: #888; + outline: 0; } +.button.button-primary, +button.button-primary, +input[type="submit"].button-primary, +input[type="reset"].button-primary, +input[type="button"].button-primary { + color: #FFF; + background-color: #33C3F0; + border-color: #33C3F0; } +.button.button-primary:hover, +button.button-primary:hover, +input[type="submit"].button-primary:hover, +input[type="reset"].button-primary:hover, +input[type="button"].button-primary:hover, +.button.button-primary:focus, +button.button-primary:focus, +input[type="submit"].button-primary:focus, +input[type="reset"].button-primary:focus, +input[type="button"].button-primary:focus { + color: #FFF; + background-color: #1EAEDB; + border-color: #1EAEDB; } + + +/* Forms +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, +select { + height: 38px; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + background-color: #fff; + border: 1px solid #D1D1D1; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; } +/* Removes awkward default styles on some inputs for iOS */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } +textarea { + min-height: 65px; + padding-top: 6px; + padding-bottom: 6px; } +input[type="email"]:focus, +input[type="number"]:focus, +input[type="search"]:focus, +input[type="text"]:focus, +input[type="tel"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +textarea:focus, +select:focus { + border: 1px solid #33C3F0; + outline: 0; } +label, +legend { + display: block; + margin-bottom: .5rem; + font-weight: 600; } +fieldset { + padding: 0; + border-width: 0; } +input[type="checkbox"], +input[type="radio"] { + display: inline; } +label > .label-body { + display: inline-block; + margin-left: .5rem; + font-weight: normal; } + + +/* Lists +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +ul { + list-style: circle inside; } +ol { + list-style: decimal inside; } +ol, ul { + padding-left: 0; + margin-top: 0; } +ul ul, +ul ol, +ol ol, +ol ul { + margin: 1.5rem 0 1.5rem 3rem; + font-size: 90%; } +li { + margin-bottom: 1rem; } + + +/* Code +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +code { + padding: .2rem .5rem; + margin: 0 .2rem; + font-size: 90%; + white-space: nowrap; + background: #F1F1F1; + border: 1px solid #E1E1E1; + border-radius: 4px; } +pre > code { + display: block; + padding: 1rem 1.5rem; + white-space: pre; } + + +/* Tables +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +th, +td { + padding: 12px 15px; + text-align: left; + border-bottom: 1px solid #E1E1E1; } +th:first-child, +td:first-child { + padding-left: 0; } +th:last-child, +td:last-child { + padding-right: 0; } + + +/* Spacing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +button, +.button { + margin-bottom: 1rem; } +input, +textarea, +select, +fieldset { + margin-bottom: 1.5rem; } +pre, +blockquote, +dl, +figure, +table, +p, +ul, +ol, +form { + margin-bottom: 2.5rem; } + + +/* Utilities +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.u-full-width { + width: 100%; + box-sizing: border-box; } +.u-max-full-width { + max-width: 100%; + box-sizing: border-box; } +.u-pull-right { + float: right; } +.u-pull-left { + float: left; } + + +/* Misc +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #E1E1E1; } + + +/* Clearing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ + +/* Self Clearing Goodness */ +.container:after, +.row:after, +.u-cf { + content: ""; + display: table; + clear: both; } + + +/* Media Queries +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* +Note: The best way to structure the use of media queries is to create the queries +near the relevant code. For example, if you wanted to change the styles for buttons +on small devices, paste the mobile query code up in the buttons section and style it +there. +*/ + + +/* Larger than mobile */ +@media (min-width: 400px) {} + +/* Larger than phablet (also point when grid becomes active) */ +@media (min-width: 550px) {} + +/* Larger than tablet */ +@media (min-width: 750px) {} + +/* Larger than desktop */ +@media (min-width: 1000px) {} + +/* Larger than Desktop HD */ +@media (min-width: 1200px) {} diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..963ae9b --- /dev/null +++ b/content/_index.md @@ -0,0 +1,58 @@ +--- +title: Accueil +body_class: "landing-page" +--- + +Bienvenue sur se site web, il est en construction. + +
+
+ +## L'association VMEMS + +### Nos actions + +- Montrer et promouvoir la solution vélo auprès du grand public +- Faire interface entre les élus et les usagers + - Être force de proposition, signaler les problèmes et faire des critiques constuctives des projets cyclables +- Aider les cyclistes, plus particulièrement les novices + +### Juridique + +Notre association est une association de loi 1901 déclaré en prefecture de l'Eure, inscrite au RNA sous le numéro `W271006679`. + +### Statuts + +[Vous pouvez consulter les statuts, approuvé par l'assemblée constituante le 4 octobre 2023.](/statuts) + +### Représentation + +- Sebastien DENISE, Président +- Matthieu BESSAT, Secrétaire +- Alexis Martini, Secrétaire-Adjoint + +
+
+ +## Contact + +N'hésitez pas à nous faire part de vos remarques, critiques par e-mail : [contact@vmems.fr](contact@vmems.fr) + +## Rejoindre l'association + +Rien de plus simple il suffit d'envoyer un e-mail afin de vous présenter rapidement, il vous sera fait une proposition d'intégration du groupe [Signal](https://www.signal.org/fr) interne de l'association. + +## Actualités + +### Réunion projet RD316 + +L'agglo Seine-Eure prépare un projet d'infrastructure cyclable longeant la RD316, profitons de cette opportunité pour proposer un projet pratique et utile pour les usagers. + +Une rencontre est organisé le samedi 28 octobre 2023, RDV de 17h à 17h30, arpentage terrain jusqu'a 18h30, puis discussion ensemble (au chaud!) et présentation de l'association jusqu'a 19h30. + +### Assemblée générale constituante + +Elle a eu lieu le 4 octobre 2023 à la maison des associations de Gaillon. 11 personnes se sont manifestés et ont répondus à l'appel 💪. + +
+
diff --git a/content/statuts.md b/content/statuts.md new file mode 100644 index 0000000..ab93e6a --- /dev/null +++ b/content/statuts.md @@ -0,0 +1,138 @@ +--- +title: Statuts de l'association VMEMS +--- + +Approuvé par l'assemblée générale constituante le 4 octobre 2023 à Gaillon. + +## 1. Nom de l'association + +Il est fondé entre les adhérents aux présents statuts une association régie par la loi du 1er juillet 1901 et le décret du 16 août 1901, ayant pour titre **Vélo mobilités Eure Madrie Seine** + +## 2. Objet + +Cette association a pour objet de **promouvoir l'usage du vélo et des mobilités douces comme moyen de transport dans l'agglomération Seine-Eure.** + +- rencontre avec les collectivités locales pour participer à la conception des aménagements cyclables (…) +- éducation à l’utilisation du vélo et fonctionnalités du vélo +- ateliers de remise en état de vélos (ou soutien à) +- cobicyclettage pour accompagner les cyclistes les moins expérimentés dans leurs déplacements +- animations diverses autour du vélo +- communication sur les vertus des déplacements à vélo +- travail en synergie avec les autres acteurs favorisant le développement du vélo +- toute autre activité permettant la réalisation de l’objet associatif + +## 3. Siège social + +Le siège social est fixé à **La Mairie de Gaillon. 2 rue du général de Gaulle. 27600 Gaillon France.** +Il pourra être transféré par simple décision du conseil d'administration. + +## 4. Durée + +La durée de l’association est illimitée. + +## 5. Composition + +L'association se compose de : +- membres actifs ou adhérents +- membres bienfaiteurs + +Les membres peuvent être des personnes physiques ou des personnes morales. Les personnes morales ne peuvent pas faire partie du bureau mais peuvent être représentées dans le conseil d’administration. + +## 6. Admission + +Pour faire partie de l'association, il faut adhérer en remplissant une feuille d'inscription, l'adhésion au règlement intérieur et en payant la cotisation dont le montant est fixé chaque année en Assemblée générale. + +## 7. Membres, Cotisations + +Sont membres actifs ceux qui ont versé annuellement une cotisation dont le montant est fixé par l’assemblée constitutive et peut être révisé par l’assemblée générale et par l'acceptation du règlement intérieur. + +Sont membres bienfaiteurs, les personnes qui ont versé un don à l’association. + +Seuls les membres actifs peuvent voter à l’assemblée générale. Les membres bienfaiteurs peuvent participer à l'assemblée générale. + +## 8. Radiations + +La qualité de membre se perd par : +- la démission; +- le décès; +- le non paiement de la cotisation annuellement +- la radiation prononcée par le conseil d'administration pour non respect du règlement intérieur + +## 9. Affiliation + +La présente association peut s’affilier à une fédération et se conformer à ses statuts et à son règlement intérieur. +Elle peut par ailleurs adhérer à d’autres associations, unions ou regroupements par décision du conseil d’administration. + +## 10. Ressources + +Les ressources de l'association comprennent : +- le montant des cotisations et des dons, +- les subventions publiques, +- les soutiens venant de fondations ou de fonds de dotation, +- toutes les ressources autorisées par les lois et règlements en vigueur. + +## 11. Assemblée génerale ordinaire + +L'assemblée générale ordinaire comprend tous les membres de l'association à quelque titre qu'ils soient. Elle se réunit chaque année. + +Quinze jours au moins avant la date fixée, les membres de l'association sont convoqués par le conseil d’administration. L'ordre du jour figure sur les convocations. + +L’ordre du jour de l’assemblée générale est déterminé par le conseil d’administration. Il comprend notamment la présentation d’un rapport d’activité et d’un rapport financier une fois par an. Ne peuvent être abordés que les points inscrits à l'ordre du jour. + +Les décisions sont prises à la majorité des voix des membres présents ou représentés. + +Il est procédé, après épuisement de l'ordre du jour, au renouvellement des membres sortants du conseil. + +Toutes les délibérations sont prises à main levée, excepté l’élection des membres du conseil. + +Les décisions des assemblées générales s’imposent à tous les membres, y compris absents ou représentés. + +## 12. Assemblée générale extraordinaire + +Sur la demande du conseil d’administration ou sur la demande d’au moins la moitié des membres inscrits, le président peut convoquer une assemblée générale extraordinaire, suivant les modalités prévues aux présents statuts et uniquement pour les motifs suivants : +- dissolution de l’association, +- changement des statuts, +- révocation du conseil d’administration pour motif grave, +- constitution d’un nouveau conseil d’administration en cas de défaillance ou révocation de celui-ci. +Les modalités de convocation sont les mêmes que pour l’assemblée générale ordinaire. +Les délibérations sont prises à la majorité des membres présents ou représentés. + +## 13. Conseil d'administration + +L'association est dirigée par un conseil d’au moins deux membres volontaires, élus pour deux années par l'assemblée générale. Les membres sont rééligibles. + +Le conseil étant renouvelé chaque année par moitié, la première année, les membres sortants sont désignés par tirage au sort. + +En cas de vacances, le conseil pourvoit provisoirement au remplacement de ses membres. Il est procédé à leur remplacement définitif par la plus prochaine assemblée générale. Les pouvoirs des membres ainsi élus prennent fin à l'expiration du mandat des membres remplacés. + +Le conseil d'administration se réunit au moins une fois tous les six mois. + +Les décisions sont prises par consensus ou à défaut à la majorité des voix; en cas de partage, la voix du président est prépondérante. + +Tout membre du conseil qui, sans excuse, n'aura pas assisté à trois réunions consécutives sera considéré comme démissionnaire. + +## 14. Le bureau + +Le conseil d'administration élit parmi ses membres, un bureau composé au minimum d’un président et d’un secrétaire. + +Si besoin le bureau peut être complété par : +- un trésorier +- un ou plusieurs vice-présidents, +- un secrétaire adjoint, +- un trésorier adjoint. + +## 15. Indemnités + +Toutes les fonctions, y compris celles des membres du conseil d’administration et du bureau, sont gratuites et bénévoles. Seuls les frais occasionnés par l’accomplissement de leur mandat peuvent être remboursés sur justificatifs. + +## 16. Réglement interieur + +Un règlement intérieur est établi par le conseil d'administration, qui le fait alors approuver par l'assemblée générale. + +Ce règlement éventuel est destiné à fixer les divers points non prévus par les présents statuts, notamment ceux qui ont trait à l'administration interne de l'association. + +## 17. Dissolution + +En cas de dissolution prononcée selon les modalités prévues à l’article 12, un ou plusieurs liquidateurs sont nommés, et l'actif, s'il y a lieu, est dévolu conformément aux décisions de l’assemblée générale extraordinaire qui statue sur la dissolution. + + diff --git a/hugo.toml b/hugo.toml index f80234d..352d9f4 100644 --- a/hugo.toml +++ b/hugo.toml @@ -1,4 +1,23 @@ -baseURL = 'https://example.org/' -languageCode = 'en-us' -title = 'Vélo et Mobilités en Eure-Madrie-Seine' -theme = 'ananke' +baseURL = '/' +languageCode = 'fr' +defaultContentLanguage = 'fr' +assetDir = "assets" +summaryLength = 50 +title = "Vélo et Mobilités en Eure-Madrie-Seine" + +[params] +dateFmt = "2006-01-02 15:04" + [params.contact] + email = "contact@vmems.fr" + website = "https://vmems.fr" + # helloasso = "" + # helloasso_adhesion = "" + # paper_adhesion = "https://static.vmems.fr/" + # [params.socials] + # facebook = "https://www.facebook.com/groups/bethleemaubevoye" + # youtube = "https://www.youtube.com/@letoiledebethleem9895" + + + +[markup.goldmark.renderer] +unsafe = true diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 0000000..a76580f --- /dev/null +++ b/layouts/404.html @@ -0,0 +1,3 @@ +{{ define "main" }} +

Page non trouvé

+{{ end }} diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000..41008ca --- /dev/null +++ b/layouts/_default/_markup/render-image.html @@ -0,0 +1,11 @@ +{{ if .Title }} +
+ {{ .Text }} +
{{ .Title }}
+
+{{ else }} +
+ {{ .Text }} +
+{{ end }} + diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html new file mode 100644 index 0000000..8238987 --- /dev/null +++ b/layouts/_default/baseof.html @@ -0,0 +1,23 @@ + + + + {{ partial "head.html" . }} + + {{- block "head" . -}}{{ end }} + + + {{ if or (not (isset .Params "with_normal_config")) .Params.with_normal_config }} + + {{ if or (not (isset .Params "with_footer")) .Params.with_footer }} + {{ partial "footer" . }} + {{ end }} + {{ else }} + {{ block "main" . }}{{ end }} + {{ end }} + + diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..eeb4745 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,26 @@ +{{ define "main" }} +
+ {{ $listtitle := .Title }} + {{ if or .Title .Content }} +
+ {{ with .Title }}

{{ . }}

{{ end }} + {{ with .Content }}
{{ . }}
{{ end }} +
+ {{ end }} + + + {{ partial "pagination.html" . }} +
+{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..b35ed48 --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,32 @@ +{{ define "main" }} +
+
+

{{ .Title }}

+ + {{ with .Date }} +
Publié le
+ {{ end }} + + + {{ if .Params.featured_image }} + {{ $featuredImage := .Resources.GetMatch (.Params.featured_image.src | safeURL) }} + {{ if $featuredImage }} + {{ $featuredImage = $featuredImage.Resize "600x" }} +
+ + {{ with .Params.featured_image.caption }} +
{{ . }}
+ {{ end }} +
+ {{ end }} + {{ end }} + + {{ range .Params.tags }} + {{ . }} + {{ end }} +
+ {{ .Content }} +
+
+
+{{ end }} diff --git a/layouts/_default/summary.html b/layouts/_default/summary.html new file mode 100644 index 0000000..a347932 --- /dev/null +++ b/layouts/_default/summary.html @@ -0,0 +1,13 @@ +
+

{{ .Title }}

+ + {{ range .Params.tags }} + {{ . }} + {{ end }} +
+ {{ .Summary }} + {{ if .Truncated }} + Read more... + {{ end }} +
+
diff --git a/layouts/actualites/list.html b/layouts/actualites/list.html new file mode 100644 index 0000000..6d175ae --- /dev/null +++ b/layouts/actualites/list.html @@ -0,0 +1,53 @@ +{{ define "main" }} +
+ {{ $listtitle := .Title }} + {{ if or .Title .Content }} +
+ {{ with .Title }}

{{ . }}

{{ end }} + {{ with .Content }}
{{ . }}
{{ end }} +
+ {{ end }} + + + {{ partial "pagination.html" . }} +
+{{ end }} diff --git a/layouts/actualites/single.html b/layouts/actualites/single.html new file mode 100644 index 0000000..11454c0 --- /dev/null +++ b/layouts/actualites/single.html @@ -0,0 +1,36 @@ +{{ define "main" }} +
+
+

{{ .Title }}

+ + {{ if .Date }} + + {{ end }} + + + {{ if .Params.featured_image }} + {{ $featuredImage := .Resources.GetMatch (.Params.featured_image.src | safeURL) }} + {{ if $featuredImage }} + {{ $featuredImage = $featuredImage.Resize "600x" }} +
+ + {{ with .Params.featured_image.caption }} +
{{ . }}
+ {{ end }} +
+ {{ end }} + {{ end }} + + {{ range .Params.tags }} + {{ . }} + {{ end }} +
+ {{ .Content }} +
+
+
+{{ end }} diff --git a/layouts/adhesion/list.html b/layouts/adhesion/list.html new file mode 100644 index 0000000..503f864 --- /dev/null +++ b/layouts/adhesion/list.html @@ -0,0 +1,87 @@ +{{ define "main" }} +
+
+
+
+ {{ partial "helpers/svg" (dict "path" "all_logos/square_notext_white_transparent" "class" "back-icon") }} + +
+
+ +

Regarder le teaser

+
+
+ +
+ + +
+ + + +{{ end }} + diff --git a/layouts/association/list.html b/layouts/association/list.html new file mode 100644 index 0000000..68cd03d --- /dev/null +++ b/layouts/association/list.html @@ -0,0 +1,34 @@ +{{ define "main" }} +
+
+ +
+
+ +
+ {{ $listtitle := .Title }} + + {{ with .Title }}

{{ . }}

{{ end }} + + + {{ if .Content }} +
+ {{ with .Content }}
{{ . }}
{{ end }} +
+ {{ end }} +
+ +{{ end }} + diff --git a/layouts/index.html b/layouts/index.html new file mode 100644 index 0000000..e753178 --- /dev/null +++ b/layouts/index.html @@ -0,0 +1,31 @@ +{{ define "main" }} +
+

Vélo et mobilités en Eure-Madrie-Seine

+ + {{/* + {{ $image := resources.Get "images/velo_homme.jpg" }} + {{ $image = $image.Resize "400x" }} + Homme et un vélo + {{ $image := resources.Get "images/velo_femme.jpg" }} + {{ $image = $image.Resize "400x" }} + Une femme à vélo + */}} + +
+ {{ $image := resources.Get "images/logos/logo.png" }} + Logo VMEMS représentant un vélo en transition +
+ + {{ .Content }} +
+{{ end }} + diff --git a/layouts/partials/FormatHistoricalDate.html b/layouts/partials/FormatHistoricalDate.html new file mode 100644 index 0000000..bcdf487 --- /dev/null +++ b/layouts/partials/FormatHistoricalDate.html @@ -0,0 +1,36 @@ +{{ $formattedDate := "" }} +{{ $rawDate := . }} +{{- $date := "1800-01-01" -}} +{{- $datePrecision := "day" -}} + +{{ if reflect.IsMap $rawDate }} + {{ partial "FormatHistoricalDate" ($rawDate.from) }} + - + {{ partial "FormatHistoricalDate" ($rawDate.to) }} +{{ else }} + {{ $rawDate = string $rawDate }} + {{ if eq (len $rawDate) 4 }} + {{ $datePrecision = "year" }} + {{ $date = printf "%s-01-01" $rawDate }} + {{ end }} + {{ if eq (len $rawDate) 7 }} + {{ $datePrecision = "month" }} + {{ $date = printf "%s-01" $rawDate }} + {{ end }} + {{ if eq (len $rawDate) 10 }} + {{ $datePrecision = "day" }} + {{ $date = $rawDate }} + {{ end }} + + {{- if eq $datePrecision "year" -}} + {{ $formattedDate = ($date | time.Format "2006") }} + {{- end -}} + {{- if eq $datePrecision "month" -}} + {{ $formattedDate = ($date | time.Format "January 2006") }} + {{- end -}} + {{- if eq $datePrecision "day" -}} + {{ $formattedDate = ($date | time.Format "2 January 2006") }} + {{- end -}} +{{ end }} + +{{ printf "%s" $formattedDate }} diff --git a/layouts/partials/data/description.html b/layouts/partials/data/description.html new file mode 100644 index 0000000..4127b2a --- /dev/null +++ b/layouts/partials/data/description.html @@ -0,0 +1,13 @@ + +{{ $description := .Site.Params.sidebar.subtitle }} + +{{ if .Description }} + + {{ $description = .Description }} +{{ else if .IsPage }} + + {{ $description = .Summary }} +{{ end }} + +{{ return ($description | plainify)}} + diff --git a/layouts/partials/data/title.html b/layouts/partials/data/title.html new file mode 100644 index 0000000..8193fe7 --- /dev/null +++ b/layouts/partials/data/title.html @@ -0,0 +1,39 @@ +{{- $title := .Title -}} +{{- $siteTitle := .Site.Title -}} + +{{- if .IsHome -}} + + + + {{ $pages := where .Site.RegularPages "Section" "in" .Site.Params.mainSections }} + {{ $notHidden := where .Site.RegularPages "Params.hidden" "!=" true }} + {{ $filtered := ($pages | intersect $notHidden) }} + {{ $pag := .Paginate ($filtered) }} + + {{ if .Paginator.HasPrev }} + + {{ $title = printf "%s - %s" .Paginator $siteTitle }} + {{ else }} + {{ $title = $siteTitle}} + {{ end }} +{{- else if eq .Kind "term" -}} + + + + {{ $notHidden := where .Pages "Params.hidden" "!=" true }} + {{ $pag := .Paginate ($notHidden) }} + + + {{ $title = slice (title .Data.Singular) ": " $title }} + + {{ if .Paginator.HasPrev }} + + {{ $title = $title | append " - " .Paginator }} + {{ end }} + + {{ $title = $title | append " - " $siteTitle }} + {{ $title = delimit $title "" }} +{{- end -}} + +{{ return $title }} + diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..46b6c5d --- /dev/null +++ b/layouts/partials/footer.html @@ -0,0 +1,2 @@ + diff --git a/layouts/partials/fullmod.html b/layouts/partials/fullmod.html new file mode 100644 index 0000000..b37752b --- /dev/null +++ b/layouts/partials/fullmod.html @@ -0,0 +1,4 @@ +{{- $a := index . 0 -}} +{{- $b := index . 1 -}} +{{- $c := mod $a $b -}} +{{- if lt $c 0 -}}{{- add $c $b -}}{{- else -}}{{- $c -}}{{- end -}} diff --git a/layouts/partials/head.html b/layouts/partials/head.html new file mode 100644 index 0000000..d1e4a92 --- /dev/null +++ b/layouts/partials/head.html @@ -0,0 +1,44 @@ + + + +{{- $description := partialCached "data/description" . .RelPermalink -}} + + +{{- with .Site.Params.author -}} + +{{ end }} + +{{- $title := partialCached "data/title" . .RelPermalink -}} + +{{ $title }} {{ if not .IsHome }}- L'Étoile de Bethléem{{ end }} + + + +{{ partial "opengraph/include.html" . }} + +{{ range .AlternativeOutputFormats }} + +{{ end }} + + + + + + + + + + + + + + + + + + + + +{{ $style := resources.Get "sass/main.scss" | resources.ToCSS | resources.Fingerprint }} + + diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..15b3a26 --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,2 @@ + diff --git a/layouts/partials/helpers/image.html b/layouts/partials/helpers/image.html new file mode 100644 index 0000000..373a113 --- /dev/null +++ b/layouts/partials/helpers/image.html @@ -0,0 +1,60 @@ + +{{ $result := dict "exists" false "permalink" nil "resource" nil "isDefault" false }} +{{ $imageField := "featured_image" }} +{{ $imageValue := index .Context.Params $imageField }} + +{{ if $imageValue }} + {{ $imageValue := index $imageValue "src" }} + + {{ $result = merge $result (dict "exists" true) }} + {{ $url := urls.Parse $imageValue }} + + {{ if or (eq $url.Scheme "http") (eq $url.Scheme "https") }} + + {{ $result = merge $result (dict "permalink" $imageValue) }} + {{ else }} + {{ $pageResourceImage := resources.GetMatch (printf "%s" ($imageValue | safeURL)) }} + + {{ if $pageResourceImage }} + + {{ $result = merge $result (dict "permalink" $pageResourceImage.RelPermalink) }} + + + {{ if ne (path.Ext $imageValue) ".svg" }} + {{ $result = merge $result (dict "resource" $pageResourceImage) }} + {{ end }} + {{ else }} + + {{ $result = merge $result (dict "permalink" (relURL $imageValue)) }} + {{ end }} + + {{ end }} + +{{ else }} + + {{ $defaultImageSetting := .Context.Site.Params.defaultCoverImage }} + + {{ $result = merge $result (dict "isDefault" true) }} + {{ $result = merge $result (dict "exists" true) }} + + {{ if $defaultImageSetting.local }} + {{ $siteResourceImage := resources.GetMatch (printf "%s" ($defaultImageSetting.src | safeURL)) }} + + {{ if $siteResourceImage }} + + {{ $result = merge $result (dict "permalink" $siteResourceImage.RelPermalink) }} + {{ $result = merge $result (dict "resource" $siteResourceImage) }} + {{ else }} + + {{ errorf "Failed loading image: %q" $defaultImageSetting.src }} + {{ $result = merge $result (dict "exists" false) }} + {{ end }} + + {{ else }} + + {{ $result = merge $result (dict "permalink" (relURL $defaultImageSetting.src)) }} + {{ end }} +{{ end }} + +{{ return $result }} + diff --git a/layouts/partials/helpers/svg.html b/layouts/partials/helpers/svg.html new file mode 100644 index 0000000..d3bae81 --- /dev/null +++ b/layouts/partials/helpers/svg.html @@ -0,0 +1,7 @@ +{{ $svg := .path }} +{{ $match := `((\s|\S)*)` }} + +{{ $input := (printf "/assets/images/%s.svg" $svg | readFile) }} +{{ $replaceWith := printf `${2}` .class }} + +{{ return (replaceRE $match $replaceWith $input | safeHTML) }} diff --git a/layouts/partials/images-list.html b/layouts/partials/images-list.html new file mode 100644 index 0000000..a5f4599 --- /dev/null +++ b/layouts/partials/images-list.html @@ -0,0 +1,54 @@ + diff --git a/layouts/partials/opengraph/include.html b/layouts/partials/opengraph/include.html new file mode 100644 index 0000000..ad5cd18 --- /dev/null +++ b/layouts/partials/opengraph/include.html @@ -0,0 +1,44 @@ +{{- $title := partialCached "data/title" . .RelPermalink -}} +{{- $description := partialCached "data/description" . .RelPermalink -}} + +{{/* OpenGraph protocol reference https://ogp.me/ */}} + + + + + + + + + +{{- if .IsPage -}} + + {{- range .Params.tags -}} + + {{- end -}} +{{- end -}} + +{{- if .IsPage -}} + {{- if not .Date.IsZero -}} + + {{- end -}} + {{- if not .Lastmod.IsZero -}} + + {{- end -}} +{{- else -}} + {{ if not .Site.LastChange.IsZero }} + + {{- end -}} +{{- end -}} + +{{ $image := partial "helpers/image" (dict "Context" . "Type" "opengraph") .RelPermalink "opengraph" }} +{{ if $image.exists }} + +{{- end -}} + diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html new file mode 100644 index 0000000..902d4e3 --- /dev/null +++ b/layouts/partials/pagination.html @@ -0,0 +1,19 @@ +
+
+ {{ if .Paginator.HasPrev }} + + Page précédente + + {{ end }} +
+
+ {{ .Paginator.PageNumber }} de {{ .Paginator.TotalPages }} +
+
+ {{ if .Paginator.HasNext }} + + Page suivante + + {{ end }} +
+
diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html new file mode 100644 index 0000000..92bbd80 --- /dev/null +++ b/layouts/partials/sidebar.html @@ -0,0 +1,14 @@ + diff --git a/layouts/sandbox-1/list.html b/layouts/sandbox-1/list.html new file mode 100644 index 0000000..06d9ea5 --- /dev/null +++ b/layouts/sandbox-1/list.html @@ -0,0 +1,9 @@ +{{ define "main" }} +

Sandbox 1

+ +
+{{ mod -1 2 }}
+{{ partial "fullmod" (slice -1 5) }}
+
+ +{{ end }} diff --git a/layouts/shortcodes/featured_image.html b/layouts/shortcodes/featured_image.html new file mode 100644 index 0000000..e0865a0 --- /dev/null +++ b/layouts/shortcodes/featured_image.html @@ -0,0 +1,6 @@ +
+{{ $img_src := .Get "src" }} +{{ $description := .Get "description" }} + {{ $description }} +
{{ $description }}
+
diff --git a/layouts/shortcodes/fig-img.html b/layouts/shortcodes/fig-img.html new file mode 100644 index 0000000..b59bada --- /dev/null +++ b/layouts/shortcodes/fig-img.html @@ -0,0 +1,30 @@ +
+ {{- if .Get "link" -}} + + {{- end -}} + + {{ $options := .Get "options" }} + {{ $img := (.Page.Resources.GetMatch (.Get "src")).Fit $options }} + {{ with .Get + {{- if .Get "link" }}{{ end -}} + {{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") -}} +
+ {{ with (.Get "title") -}} +

{{ . }}

+ {{- end -}} + {{- if or (.Get "caption") (.Get "attr") -}}

+ {{- .Get "caption" | markdownify -}} + {{- with .Get "attrlink" }} + + {{- end -}} + {{- .Get "attr" | markdownify -}} + {{- if .Get "attrlink" }}{{ end }}

+ {{- end }} +
+ {{- end }} +
+ diff --git a/layouts/shortcodes/fullmod.html b/layouts/shortcodes/fullmod.html new file mode 100644 index 0000000..062988d --- /dev/null +++ b/layouts/shortcodes/fullmod.html @@ -0,0 +1,2 @@ +{{ $c := mod (.Get 0) (.Get 1) }} +{{ if lt $c 0 }}{{ add (.Get 1) $c }}{{ else }}{{ $c }}{{ end }} diff --git a/layouts/shortcodes/wikipedia_link.html b/layouts/shortcodes/wikipedia_link.html new file mode 100644 index 0000000..0f85760 --- /dev/null +++ b/layouts/shortcodes/wikipedia_link.html @@ -0,0 +1,8 @@ +{{ $link := printf "https://%s.wikipedia.org/wiki/%s" (.Get "lang") (.Get "name") }} + + + {{ partial "helpers/svg" (dict "path" "icons/wikipedia_globe" "class" "btn__icon") }} +
Voir l'article sur Wikipedia + {{ partial "helpers/svg" (dict "path" "icons/external" "class" "icon_inline") }} +
+