Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

372 changed files with 19781 additions and 7932 deletions

View File

@ -1,31 +1,27 @@
import rssPlugin from '@11ty/eleventy-plugin-rss'; const rssPlugin = require('@11ty/eleventy-plugin-rss');
import syntaxHighlight from '@11ty/eleventy-plugin-syntaxhighlight'; const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight');
import fs from 'fs'; const fs = require('fs');
import util from 'util'; const util = require('util')
// Import filters // Import filters
import dateFilter from './src/filters/date-filter.js'; const dateFilter = require('./src/filters/date-filter.js');
import markdownFilter from './src/filters/markdown-filter.js'; const markdownFilter = require('./src/filters/markdown-filter.js');
import w3DateFilter from './src/filters/w3-date-filter.js'; const w3DateFilter = require('./src/filters/w3-date-filter.js');
// Import transforms // Import transforms
import htmlMinTransform from './src/transforms/html-min-transform.js'; const htmlMinTransform = require('./src/transforms/html-min-transform.js');
import parseTransform from './src/transforms/parse-transform.js'; const parseTransform = require('./src/transforms/parse-transform.js');
// Import data files // Import data files
import {createRequire} from 'node:module';
const require = createRequire(import.meta.url);
// need this because of issue when using ESM : https://github.com/11ty/eleventy-dependency-tree-esm/issues/2
// This will get soon resolved
const site = require('./src/_data/site.json'); const site = require('./src/_data/site.json');
export default function(config) { module.exports = function(config) {
// Filters // Filters
config.addFilter('dateFilter', dateFilter); config.addFilter('dateFilter', dateFilter);
config.addFilter('markdownFilter', markdownFilter); config.addFilter('markdownFilter', markdownFilter);
config.addFilter('w3DateFilter', w3DateFilter); config.addFilter('w3DateFilter', w3DateFilter);
config.addFilter('dump', obj => { config.addFilter('dump', obj => {
return util.inspect(obj); return util.inspect(obj)
}); });
// Layout aliases // Layout aliases
@ -52,9 +48,11 @@ export default function(config) {
const livePosts = post => post.date <= now && !post.data.draft; const livePosts = post => post.date <= now && !post.data.draft;
const newsPosts = post => post.data.type === 'news'; const newsPosts = post => post.data.type === 'news';
const eventPosts = post => post.data.type === 'event'; const eventPosts = post => post.data.type === 'event';
config.addCollection('posts', collection => { config.addCollection('posts', collection => {
return [...collection.getFilteredByGlob('./src/posts/*.md')].reverse(); return [
...collection.getFilteredByGlob('./src/posts/*.md')
].reverse();
}); });
config.addCollection('news', collection => { config.addCollection('news', collection => {
return [ return [
@ -72,59 +70,56 @@ export default function(config) {
.slice(0, site.maxNewsPerPage); .slice(0, site.maxNewsPerPage);
}); });
config.addCollection('members', collection => { config.addCollection('members', collection => {
return [...collection.getFilteredByGlob('./src/members/*.md')]; return [...collection.getFilteredByGlob("./src/members/*.md")];
}); });
config.addCollection('profiles', collection => { config.addCollection('profiles', collection => {
return [...collection.getFilteredByGlob('./src/members/*.md')] return [...collection.getFilteredByGlob("./src/members/*.md")]
.reverse() .reverse()
.slice(0, site.maxProfilePreview); .slice(0, site.maxProfilePreview)
;
}); });
config.addCollection('tagsList', function(collectionApi) { config.addCollection("tagsList", function(collectionApi) {
const tagsList = new Set(); const tagsList = new Set();
collectionApi.getAll().map(item => { collectionApi.getAll().map( item => {
if (item.data.tags) { if (item.data.tags) { // handle pages that don't have tags
// handle pages that don't have tags item.data.tags.map( tag => tagsList.add(tag))
item.data.tags.map(tag => tagsList.add(tag)); }
}
}); });
return tagsList; return tagsList;
}); });
config.addCollection('skillsList', function(collectionApi) { config.addCollection("skillsList", function(collectionApi) {
const skillsList = new Set(); const skillsList = new Set();
collectionApi.getFilteredByGlob('./src/members/*.md').map(item => { collectionApi.getFilteredByGlob("./src/members/*.md").map( item => {
if (item.data.tags) { if (item.data.tags) { // handle pages that don't have skills
// handle pages that don't have skills item.data.tags.map( skill => { // exclude non related tags
item.data.tags.map(skill => { if (['post', 'news', 'event'].indexOf(skill) == -1) {
// exclude non related tags skillsList.add(skill)
if (['post', 'news', 'event'].indexOf(skill) == -1) { }
skillsList.add(skill); })
} }
});
}
}); });
return skillsList; return skillsList;
}); });
config.addCollection('membersLocations', function(collectionApi) { config.addCollection("membersLocations", function(collectionApi) {
return collectionApi return collectionApi.getFilteredByGlob("./src/members/*.md")
.getFilteredByGlob('./src/members/*.md')
.filter(item => typeof item.data.location !== 'undefined') .filter(item => typeof item.data.location !== 'undefined')
.map(member => { .map( member => {
return { return {
name: member.data.name, name: member.data.name,
url: member.data.url, url: member.data.url,
location: member.data.location location: member.data.location,
}; };
}); });
}); });
config.addCollection('customers', collection => { config.addCollection('customers', collection => {
return [...collection.getFilteredByGlob('./src/customers/*.md')] return [...collection.getFilteredByGlob("./src/customers/*.md")]
.reverse() .reverse()
.slice(0, site.maxCustomerPerPage); .slice(0, site.maxCustomerPerPage);
}); });
config.addCollection('partners', collection => { config.addCollection('partners', collection => {
return [...collection.getFilteredByGlob('./src/partners/*.md')] return [...collection.getFilteredByGlob("./src/partners/*.md")]
.reverse() .reverse()
.slice(0, site.maxPartnerPerPage); .slice(0, site.maxPartnerPerPage);
}); });
// Plugins // Plugins
@ -151,6 +146,6 @@ export default function(config) {
input: 'src', input: 'src',
output: 'dist' output: 'dist'
}, },
passthroughFileCopy: true passthroughFileCopy: true,
}; };
} };

2
.gitignore vendored
View File

@ -1,5 +1,3 @@
#.gitignore
*~
*.log *.log
npm-debug.* npm-debug.*
*.scssc *.scssc

View File

@ -1,17 +1,6 @@
This project is under MIT License for all its code except following subdirectories and its content :
- src/members
- src/images/astrolabe
- src/images/customers
- src/images/partners
- src/images/profiles
- src/images/posts/AG2022
- src/images/posts/AG2023
- src/images/posts/copyright
MIT License MIT License
Copyright (c) 2019-2023 Astrolabe CAE Copyright (c) 2019 andy-bell.design and other contributors
Copyright (c) 20172023 Zach Leatherman @zachleat
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -9,7 +9,7 @@ Requirements :
### Install ### Install
1. Clone or fork this repo: `git clone ssh://gitea@git.astrolabe.coop:2106/AstrolabeCAE/SiteWebAstrolabe.git` 1. Clone or fork this repo: `git clone https://git.ouvaton.coop/astrolabe/SiteWebAstrolabe`
2. `cd` into the project directory and run `npm install` 2. `cd` into the project directory and run `npm install`
3. Once all the dependencies are installed run `npm start` 3. Once all the dependencies are installed run `npm start`
4. Open your browser at `http://localhost:8080` and away you go! 4. Open your browser at `http://localhost:8080` and away you go!

View File

@ -13,7 +13,7 @@ var config = {
// e.g. exclude sourcemaps, and ALL files in node_modules (including dot files) // e.g. exclude sourcemaps, and ALL files in node_modules (including dot files)
exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"], exclude: ["dist/**/*.map", "node_modules/**", "node_modules/**/.*", ".git/**"],
// delete ALL existing files at destination before uploading, if true // delete ALL existing files at destination before uploading, if true
deleteRemote: true, deleteRemote: false,
// Passive mode is forced (EPSV command is not sent) // Passive mode is forced (EPSV command is not sent)
forcePasv: true forcePasv: true
}; };

12977
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,10 +3,9 @@
"version": "0.1.0", "version": "0.1.0",
"description": "Site web de la coopérative Astrolabe CAE", "description": "Site web de la coopérative Astrolabe CAE",
"main": "index.js", "main": "index.js",
"type": "module",
"dependencies": { "dependencies": {
"@11ty/eleventy": "^3.0.0", "@11ty/eleventy": "^1.0.0",
"@11ty/eleventy-plugin-rss": "^2.0.2", "@11ty/eleventy-plugin-rss": "^1.0.7",
"@11ty/eleventy-plugin-syntaxhighlight": "^2.0.3", "@11ty/eleventy-plugin-syntaxhighlight": "^2.0.3",
"@tbranyen/jsdom": "^13.0.0", "@tbranyen/jsdom": "^13.0.0",
"bootstrap": "^5.1.3", "bootstrap": "^5.1.3",
@ -30,7 +29,7 @@
"make-dir-cli": "^3.0.0", "make-dir-cli": "^3.0.0",
"prettier": "^1.19.1", "prettier": "^1.19.1",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"rollup": "^4.24.0", "rollup": "^1.32.1",
"rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-json": "^4.0.0", "rollup-plugin-json": "^4.0.0",
"rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-node-resolve": "^5.2.0",
@ -53,13 +52,13 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://git.astrolabe.coop/AstrolabeCAE/SiteWebAstrolabe.git" "url": "git+https://git.ouvaton.coop/astrolabe/SiteWebAstrolabe.git"
}, },
"keywords": [], "keywords": [],
"author": "Yves Gatesoupe", "author": "Yves Gatesoupe",
"license": "MIT", "license": "MIT",
"bugs": { "bugs": {
"url": "https://git.astrolabe.coop/AstrolabeCAE/SiteWebAstrolabe/issues" "url": "https://git.ouvaton.coop/astrolabe/SiteWebAstrolabe/issues"
}, },
"homepage": "https://git.astrolabe.coop/AstrolabeCAE/SiteWebAstrolabe" "homepage": "https://git.ouvaton.coop/astrolabe/SiteWebAstrolabe"
} }

View File

@ -1,16 +1,12 @@
# Prevent viewing of htaccess file. # Prevent viewing of htaccess file.
<Files .htaccess> <Files .htaccess>
<IfModule mod_access_compat.c> order allow,deny
Order Allow,Deny deny from all
Deny from all
</IfModule>
</Files> </Files>
# Prevent directory listings # Prevent directory listings
Options All -Indexes Options All -Indexes
ErrorDocument 404 /404.html ErrorDocument 404 /404.html
<IfModule mod_rewrite.c> RewriteEngine On
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR] RewriteCond %{HTTP_HOST} ^astrolabe\.coop [NC]
RewriteCond %{HTTP_HOST} ^astrolabe\.coop [NC] RewriteRule ^ https://www.astrolabe.coop%{REQUEST_URI} [L,NE,R=301]
RewriteRule ^ https://www.astrolabe.coop%{REQUEST_URI} [L,NE,R=301]
</IfModule>

View File

@ -1,4 +1,4 @@
export default { module.exports = {
random() { random() {
const segment = () => { const segment = () => {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);

View File

@ -1,4 +1,4 @@
export default { module.exports = {
getNextHeadingLevel(currentLevel) { getNextHeadingLevel(currentLevel) {
return parseInt(currentLevel, 10) + 1; return parseInt(currentLevel, 10) + 1;
}, },

View File

@ -1,7 +1,7 @@
{ {
"showThemeCredit": true, "showThemeCredit": true,
"name": "Astrolabe CAE", "name": "Astrolabe CAE",
"shortDesc": "Site web de la Coopérative d'Entrepreneur·e·s spécialisée dans le numérique Astrolabe CAE, pour les indépendant·e·s qui ne veulent pas être seul.", "shortDesc": "Site web de la coopérative SCOP d'Activités et d'Entrepreneur·e·s spécialisée en informatique Astrolabe CAE, pour les indépendant·e·s qui ne veulent pas être seul.",
"url": "https://www.astrolabe.coop", "url": "https://www.astrolabe.coop",
"authorEmail": "contact@astrolabe.coop", "authorEmail": "contact@astrolabe.coop",
"authorHandle": "@AstrolabeCae", "authorHandle": "@AstrolabeCae",
@ -10,16 +10,13 @@
"authorCity": "35000 Rennes", "authorCity": "35000 Rennes",
"authorSocial": { "authorSocial": {
"mastodon": "https://framapiaf.org/@AstrolabeCAE", "mastodon": "https://framapiaf.org/@AstrolabeCAE",
"twitter": "https://twitter.com/AstrolabeCae",
"linkedin": "https://www.linkedin.com/company/astrolabe-cae/", "linkedin": "https://www.linkedin.com/company/astrolabe-cae/",
"facebook": "https://www.facebook.com/profile.php?id=61558600207926", "meetup": "https://www.meetup.com/fr-FR/Astrolabe-CAE/",
"instagram": "https://www.instagram.com/cae_astrolabe/", "mobilizon": "https://mobilizon.fr/@discussion_astrolabe_cae"
"peertube" : "https://tube.troopers.agency/a/astrolabe_peertube/video-channels",
"youtube" : "https://www.youtube.com/channel/UCdxBGpXwL_A5rOcGbN_Xiag",
"twitch" : "https://www.twitch.tv/astrolabe_cae",
"rss" : "https://www.astrolabe.coop/feed.xml"
}, },
"designerName": "Yves Gatesoupe et Astrolabe", "designerName": "Yves Gatesoupe",
"designerHandle": "/equipe/", "designerHandle": "/members/yves-gatesoupe/",
"illustrators": "Igé Maulana, Leopold Merleau, Visual Glow, Galaxicon, Made, Eucalyp, yurr", "illustrators": "Igé Maulana, Leopold Merleau, Visual Glow, Galaxicon, Made, Eucalyp, yurr",
"enableThirdPartyComments": false, "enableThirdPartyComments": false,
"maxPostsPerPage": 5, "maxPostsPerPage": 5,
@ -27,5 +24,5 @@
"maxProfilePreview": 3, "maxProfilePreview": 3,
"maxCustomerPerPage": 8, "maxCustomerPerPage": 8,
"maxPartnerPerPage": 8, "maxPartnerPerPage": 8,
"faviconPath": "/images/astrolabe/favicon.png" "faviconPath": "/images/favicon.png"
} }

View File

@ -1,11 +1,6 @@
import {createRequire} from 'node:module';
const require = createRequire(import.meta.url);
// need this because of issue when using ESM : https://github.com/11ty/eleventy-dependency-tree-esm/issues/2
// This will get soon resolved
const tokens = require('./tokens.json'); const tokens = require('./tokens.json');
export default { module.exports = {
colors() { colors() {
let response = []; let response = [];

View File

@ -1,7 +1,7 @@
{ {
"size-scale": { "size-scale": {
"base": "1rem", "base": "1rem",
"300": ".8rem", "300": "0.8rem",
"500": "1.25rem", "500": "1.25rem",
"600": "1.56rem", "600": "1.56rem",
"700": "1.95rem", "700": "1.95rem",

View File

@ -3,7 +3,6 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="google-site-verification" content="-haql21y-2aWWdYUVglG0kBA4yjCcyG6y8mAzTrZ-Eg" />
<meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" href="{{ site.faviconPath }}" type="image/png" /> <link rel="icon" href="{{ site.faviconPath }}" type="image/png" />
{% include "partials/global/meta-info.njk" %} {% include "partials/global/meta-info.njk" %}
@ -41,23 +40,5 @@
try {document.addEventListener("DOMContentLoaded", $buo_f,false)} try {document.addEventListener("DOMContentLoaded", $buo_f,false)}
catch(e){window.attachEvent("onload", $buo_f)} catch(e){window.attachEvent("onload", $buo_f)}
</script> </script>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["setDoNotTrack", true]);
_paq.push(["disableCookies"]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.astrolabe.coop/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="https://analytics.astrolabe.coop/matomo.php?idsite=1&amp;rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->
</body> </body>
</html> </html>

View File

@ -2,10 +2,9 @@
{% block content %} {% block content %}
<main id="main-content" tabindex="-1"> <main id="main-content" tabindex="-1">
{% include "partials/components/meeting.njk" %}
{% include "partials/components/faq.njk" %} {% include "partials/components/faq.njk" %}
{% include "partials/components/contact-form.njk" %} {% include "partials/components/contact-form.njk" %}
</main> </main>
{% endblock %} {% endblock %}
{{ content | safe }} {{ content | safe }}

View File

@ -9,7 +9,6 @@
{% block content %} {% block content %}
<main id="main-content" class="home" tabindex="-1"> <main id="main-content" class="home" tabindex="-1">
{% include "partials/components/intro.njk" %} {% include "partials/components/intro.njk" %}
{% include "partials/components/meeting.njk" %}
{% include "partials/components/posts-list-home.njk" %} {% include "partials/components/posts-list-home.njk" %}
{% include "partials/components/presentation.njk" %} {% include "partials/components/presentation.njk" %}
{% include "partials/components/customers.njk" %} {% include "partials/components/customers.njk" %}

View File

@ -21,7 +21,6 @@
</p> </p>
{% endif %} {% endif %}
<ul class="social-links"> <ul class="social-links">
<li><a href="{{ [url , "/contact/"] | join | url }}" title="Écrire à {{ name }}" class="member-contact-at"><span>@</span></a></li>
{% if socialMastodon %} {% if socialMastodon %}
<li><a href="{{ socialMastodon }}" title="mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z"/></svg></a></li> <li><a href="{{ socialMastodon }}" title="mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z"/></svg></a></li>
{% endif %} {% endif %}
@ -43,7 +42,7 @@
<ul class="tag-list mt-3"> <ul class="tag-list mt-3">
{% for item in tags %} {% for item in tags %}
<li class="tag-item"> <li class="tag-item">
<a href="/equipe/{{ item }}/">{{ item }}</a> <a href="/equipe/{{ item }}">{{ item }}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
@ -51,14 +50,8 @@
</div> </div>
</div> </div>
</article> </article>
<a class="return-link" href="/equipe/">Voir tous les membres</a> <a class="return-link" href="/equipe">Voir tous les membres</a>
</section> </section>
{% if emailSlug %}
{% set contactMember = emailSlug %}
{% elif url %}
{% set contactMember = url | replace("/members/","") | replace("-",".") %}
{% endif %}
{% set contactTitle = ["Écrire à ",name] | join %}
{% include "partials/components/contact-form.njk" %} {% include "partials/components/contact-form.njk" %}
</main> </main>
{% endblock %} {% endblock %}

View File

@ -12,7 +12,7 @@
<img class="post-pic" src="{{ illustration }}" alt="illustration de l'article"> <img class="post-pic" src="{{ illustration }}" alt="illustration de l'article">
{% endif %} {% endif %}
{{ content | safe }} {{ content | safe }}
<a class="return-link" href="/posts/">Voir toute l'actualité</a> <a class="return-link" href="/posts">Voir toute l'actualité</a>
</div> </div>
</article> </article>
{% include "partials/components/contact-form.njk" %} {% include "partials/components/contact-form.njk" %}

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1> <h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter"> <ul class="post-filter">
<li> <li>
<a href="/posts/">Tout</a> <a href="/posts">Tout</a>
</li> </li>
<li> <li>
<a href="/posts-news/">Actualités</a> <a href="/posts-news">Actualités</a>
</li> </li>
<li class="active"> <li class="active">
<a href="/posts-events/">Évènements</a> <a href="/posts-events">Évènements</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1> <h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter"> <ul class="post-filter">
<li> <li>
<a href="/posts/">Tout</a> <a href="/posts">Tout</a>
</li> </li>
<li class="active"> <li class="active">
<a href="/posts-news/">Actualités</a> <a href="/posts-news">Actualités</a>
</li> </li>
<li> <li>
<a href="/posts-events/">Évènements</a> <a href="/posts-events">Évènements</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1> <h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter"> <ul class="post-filter">
<li class="active"> <li class="active">
<a href="/posts/">Tout</a> <a href="/posts">Tout</a>
</li> </li>
<li> <li>
<a href="/posts-news/">Actualités</a> <a href="/posts-news">Actualités</a>
</li> </li>
<li> <li>
<a href="/posts-events/">Évènements</a> <a href="/posts-events">Évènements</a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -13,7 +13,7 @@
</div> </div>
<ul class="tag-list mt-3" id="tagList"> <ul class="tag-list mt-3" id="tagList">
{% for skill in collections.skillsList %} {% for skill in collections.skillsList %}
<li class="tag-item visually-hidden"><a href="/equipe/{{ skill }}/">{{ skill }}</a></li> <li class="tag-item visually-hidden"><a href="/equipe/{{ skill }}">{{ skill }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>

View File

@ -1,15 +1,9 @@
{% from "macros/form.njk" import label, field, select, option, textarea, checkboxes, button, hidden_field %} {% from "macros/form.njk" import label, field, select, option, textarea, checkboxes, button %}
<section class="[ form-container ]"> <section class="[ form-container ]">
{% if not removeWave %} <svg aria-hidden="true" viewBox="0 0 1440 131" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M0 0h1440v131H0z"/><path d="M0 4.643l40-2.326c40-2.5 120-6.888 200 11.67 80 18.735 160 60.854 240 74.894 80 14.04 160 0 240-16.365 80-16.54 160-34.968 240-28.08 80 7.152 160 39.619 240 39.75 80-.131 160-32.598 200-49.139l40-16.365V131H0V4.643z" fill="#D6F253"/></svg>
<svg aria-hidden="true" viewBox="0 0 1440 131" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M0 0h1440v131H0z"/><path d="M0 4.643l40-2.326c40-2.5 120-6.888 200 11.67 80 18.735 160 60.854 240 74.894 80 14.04 160 0 240-16.365 80-16.54 160-34.968 240-28.08 80 7.152 160 39.619 240 39.75 80-.131 160-32.598 200-49.139l40-16.365V131H0V4.643z" fill="#D6F253"/></svg>
{% endif %}
<div class="[ inner-wrapper ]"> <div class="[ inner-wrapper ]">
{% if not contactMember %} <h2 id="contact-form" class="[ contact-heading ]">Nous contacter</h2>
<h2 id="contact-form" class="[ contact-heading ]">Nous contacter</h2>
{% elif contactTitle %}
<h2 id="contact-form" class="[ contact-heading ]">{{ contactTitle }}</h2>
{% endif %}
<form name="contact" method="POST" action="/form/contact-form-handler.php"> <form name="contact" method="POST" action="/form/contact-form-handler.php">
<ol class="[ field-list ]"> <ol class="[ field-list ]">
<li class="[ field-list__field-group ]"> <li class="[ field-list__field-group ]">
@ -22,31 +16,20 @@
</li> </li>
<li class="[ field-list__field-group ] [ full-width ]"> <li class="[ field-list__field-group ] [ full-width ]">
{{ label("Je vous contacte pour :", "select") }} {{ label("Je vous contacte pour :", "select") }}
{% if contactMember %} {{ select( "select", [
{{ select( "select", [ {label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"}, {label: "Obtenir des précisions sur le statut dentrepreneur salarié", value: "option 2"},
{label: "Proposer une mission à un coopérateur", value: "option 3"} {label: "Proposer une mission à un coopérateur", value: "option 3"},
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }} {label: "Proposer un partenariat", value: "option 4"}
{% else %} ], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{{ select( "select", [
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Obtenir des précisions sur le statut dentrepreneur salarié", value: "option 2"},
{label: "Proposer une mission à un coopérateur", value: "option 3"},
{label: "Proposer un partenariat", value: "option 4"}
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{% endif %}
</li> </li>
<li class="[ field-list__field-group ] [ full-width ]"> <li class="[ field-list__field-group ] [ full-width ]">
{{ label("Votre message", "message") }} {{ label("Votre message", "message") }}
{{ textarea( "message", { required: true, autocapitalize: "sentences", spellcheck: "true" } ) }} {{ textarea( "message", { required: true, autocapitalize: "sentences", spellcheck: "true" } ) }}
</li> </li>
{% if contactMember %} <li class="[ field-list__field-group ] [ full-width ]">
{{ hidden_field('subscribe', '') }} {{ checkboxes("", "subscribe", [ "Je souhaite être tenu au courant de lactualité Astrolabe"], { description: "" } ) }}
{% else %} </li>
<li class="[ field-list__field-group ] [ full-width ]">
{{ checkboxes("", "subscribe", [ "Je souhaite être tenu au courant de lactualité Astrolabe"], { description: "" } ) }}
</li>
{% endif %}
<!-- H o n e y p o t --> <!-- H o n e y p o t -->
<li aria-hidden="true"> <li aria-hidden="true">
<label class="ohnohoney" for="name"></label> <label class="ohnohoney" for="name"></label>
@ -57,9 +40,6 @@
<input tabindex="-1" class="ohnohoney" autocomplete="off" type="email" id="email" name="email" placeholder="Your e-mail here"> <input tabindex="-1" class="ohnohoney" autocomplete="off" type="email" id="email" name="email" placeholder="Your e-mail here">
</li> </li>
</ol> </ol>
{% if contactMember %}
{{ hidden_field('contactTo', contactMember) }}
{% endif %}
{{ button("Envoyer") }} {{ button("Envoyer") }}
</form> </form>
</div> </div>

View File

@ -3,11 +3,10 @@
<h1 class="[ intro__heading ]">{{ brandHeading }}</h1> <h1 class="[ intro__heading ]">{{ brandHeading }}</h1>
<svg viewBox="0 0 127 237" width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M116.77 20.74c-.472-1.843-2.433-5.326-6.48-5.326h-4.283C105.395 6.814 98.249 0 89.533 0c-9.116 0-16.534 7.448-16.534 16.605v20.597L10.073 61.124a2.422 2.422 0 00-1.403 3.124c6.302 16.578 22.13 26.795 38.897 26.795 2.778 0 5.582-.315 8.375-.895 2.026.425 4.09.704 6.169.824v21.449a2.422 2.422 0 104.842 0V90.962a41.398 41.398 0 006.046-.8v22.259a2.422 2.422 0 104.843 0v-23.59c16.39-5.573 28.22-21.102 28.22-39.352V20.256h4.228c1.262 0 1.737 1.513 1.793 1.708a2.425 2.425 0 002.94 1.723 2.424 2.424 0 001.747-2.948zM32.478 82.973c-8.206-3.684-14.61-10.117-18.31-18.225l62.113-23.615c.013-.004.023-.013.034-.017.09-.036.173-.083.257-.128.058-.032.119-.058.174-.093.066-.044.124-.096.186-.146.06-.05.127-.095.184-.151.05-.05.092-.109.138-.162.054-.063.112-.124.159-.192.043-.065.077-.136.116-.203.037-.067.079-.131.11-.202.03-.07.05-.146.074-.22.024-.076.053-.15.07-.229.015-.065.019-.132.028-.199.013-.093.028-.187.03-.282l.003-.039V16.605c0-6.485 5.245-11.762 11.69-11.762 6.416 0 11.637 5.226 11.687 11.667v30.547H86.663a2.421 2.421 0 00-2.422 2.422c0 .023.007.043.007.068-.033 15.12-9.538 28.88-23.678 34.255-9.166 3.483-19.144 3.192-28.092-.828zm34.639 3.12c12.614-6.78 21.023-19.79 21.88-34.194h12.133c-1.194 18.255-15.785 32.903-34.013 34.195z" fill="#1E1E1E"/><path d="M89.53 20.256h4.464a2.421 2.421 0 100-4.842h-4.463a2.421 2.421 0 100 4.842zM123.897 194.561h-4.496V114.15a2.241 2.241 0 00-2.248-2.233H6.994c-1.24 0-2.248 1-2.248 2.233v80.411H2.498a2.242 2.242 0 00-2.248 2.234v37.971A2.242 2.242 0 002.498 237h121.399a2.243 2.243 0 002.249-2.234v-37.971a2.243 2.243 0 00-2.249-2.234zM9.243 116.384h105.662v78.177H9.243v-78.177zm112.406 116.149H4.746v-33.505H121.65v33.505z" fill="#1E1E1E"/><path d="M103.663 125.318h-83.18a2.242 2.242 0 00-2.249 2.234v55.841a2.241 2.241 0 002.248 2.233h83.181c1.241 0 2.248-1 2.248-2.233v-55.841a2.242 2.242 0 00-2.248-2.234zm-2.248 55.841H22.73v-51.373h78.685v51.373zM114.904 206.846h-13.488a2.242 2.242 0 00-2.248 2.234v13.401a2.242 2.242 0 002.248 2.234h13.488a2.243 2.243 0 002.249-2.234V209.08a2.243 2.243 0 00-2.249-2.234zm-2.248 13.402h-8.992v-8.935h8.992v8.935zM92.423 206.846h-13.49a2.242 2.242 0 00-2.247 2.234v13.401a2.242 2.242 0 002.248 2.234h13.489a2.242 2.242 0 002.248-2.234V209.08a2.242 2.242 0 00-2.248-2.234zm-2.248 13.402h-8.993v-8.935h8.993v8.935z" fill="#1E1E1E"/><path d="M78.934 134.253H27.227v4.467h51.707v-4.467zM63.197 143.187h-35.97v4.468h35.97v-4.468zM45.212 152.122H27.227v4.467h17.985v-4.467zM58.7 152.122h-8.993v4.467h8.992v-4.467z" fill="#111"/></svg> <svg viewBox="0 0 127 237" width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M116.77 20.74c-.472-1.843-2.433-5.326-6.48-5.326h-4.283C105.395 6.814 98.249 0 89.533 0c-9.116 0-16.534 7.448-16.534 16.605v20.597L10.073 61.124a2.422 2.422 0 00-1.403 3.124c6.302 16.578 22.13 26.795 38.897 26.795 2.778 0 5.582-.315 8.375-.895 2.026.425 4.09.704 6.169.824v21.449a2.422 2.422 0 104.842 0V90.962a41.398 41.398 0 006.046-.8v22.259a2.422 2.422 0 104.843 0v-23.59c16.39-5.573 28.22-21.102 28.22-39.352V20.256h4.228c1.262 0 1.737 1.513 1.793 1.708a2.425 2.425 0 002.94 1.723 2.424 2.424 0 001.747-2.948zM32.478 82.973c-8.206-3.684-14.61-10.117-18.31-18.225l62.113-23.615c.013-.004.023-.013.034-.017.09-.036.173-.083.257-.128.058-.032.119-.058.174-.093.066-.044.124-.096.186-.146.06-.05.127-.095.184-.151.05-.05.092-.109.138-.162.054-.063.112-.124.159-.192.043-.065.077-.136.116-.203.037-.067.079-.131.11-.202.03-.07.05-.146.074-.22.024-.076.053-.15.07-.229.015-.065.019-.132.028-.199.013-.093.028-.187.03-.282l.003-.039V16.605c0-6.485 5.245-11.762 11.69-11.762 6.416 0 11.637 5.226 11.687 11.667v30.547H86.663a2.421 2.421 0 00-2.422 2.422c0 .023.007.043.007.068-.033 15.12-9.538 28.88-23.678 34.255-9.166 3.483-19.144 3.192-28.092-.828zm34.639 3.12c12.614-6.78 21.023-19.79 21.88-34.194h12.133c-1.194 18.255-15.785 32.903-34.013 34.195z" fill="#1E1E1E"/><path d="M89.53 20.256h4.464a2.421 2.421 0 100-4.842h-4.463a2.421 2.421 0 100 4.842zM123.897 194.561h-4.496V114.15a2.241 2.241 0 00-2.248-2.233H6.994c-1.24 0-2.248 1-2.248 2.233v80.411H2.498a2.242 2.242 0 00-2.248 2.234v37.971A2.242 2.242 0 002.498 237h121.399a2.243 2.243 0 002.249-2.234v-37.971a2.243 2.243 0 00-2.249-2.234zM9.243 116.384h105.662v78.177H9.243v-78.177zm112.406 116.149H4.746v-33.505H121.65v33.505z" fill="#1E1E1E"/><path d="M103.663 125.318h-83.18a2.242 2.242 0 00-2.249 2.234v55.841a2.241 2.241 0 002.248 2.233h83.181c1.241 0 2.248-1 2.248-2.233v-55.841a2.242 2.242 0 00-2.248-2.234zm-2.248 55.841H22.73v-51.373h78.685v51.373zM114.904 206.846h-13.488a2.242 2.242 0 00-2.248 2.234v13.401a2.242 2.242 0 002.248 2.234h13.488a2.243 2.243 0 002.249-2.234V209.08a2.243 2.243 0 00-2.249-2.234zm-2.248 13.402h-8.992v-8.935h8.992v8.935zM92.423 206.846h-13.49a2.242 2.242 0 00-2.247 2.234v13.401a2.242 2.242 0 002.248 2.234h13.489a2.242 2.242 0 002.248-2.234V209.08a2.242 2.242 0 00-2.248-2.234zm-2.248 13.402h-8.993v-8.935h8.993v8.935z" fill="#1E1E1E"/><path d="M78.934 134.253H27.227v4.467h51.707v-4.467zM63.197 143.187h-35.97v4.468h35.97v-4.468zM45.212 152.122H27.227v4.467h17.985v-4.467zM58.7 152.122h-8.993v4.467h8.992v-4.467z" fill="#111"/></svg>
<div class="btn-grp"> <div class="btn-grp">
<a role="button" href="/comprendre-la-cae/" class="btn btn-secondary">Une CAE c'est quoi ?</a> <a role="button" href="/comprendre-la-cae" class="btn btn-secondary">Une CAE c'est quoi ?</a>
<a role="button" href="/nous-rejoindre/" class="btn btn-primary">Nous rejoindre <a role="button" href="/nous-rejoindre" class="btn btn-primary">Nous rejoindre
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"/></svg> <svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"/></svg>
</a> </a>
<a role="button" href="/posts/flyer-2023/" class="btn btn-secondary">Notre flyer 📄</a>
</div> </div>
</div> </div>
</header> </header>

View File

@ -21,7 +21,7 @@
}); });
var iconMarkerAlt = L.icon({ var iconMarkerAlt = L.icon({
iconUrl: '/images/astrolabe/marker-logo-alt.svg', iconUrl: '/images/marker-logo-alt.svg',
iconSize: [40, 40], iconSize: [40, 40],
iconAnchor: [20, 40], iconAnchor: [20, 40],
popupAnchor: [0, -40] popupAnchor: [0, -40]
@ -30,7 +30,7 @@
var members = {{ collections.membersLocations | dump | safe }}; var members = {{ collections.membersLocations | dump | safe }};
var markerGroup = members.map( member => { var markerGroup = members.map( member => {
return new L.marker(member.location, {icon: iconMarker}).bindPopup('<a href="'+member.url+'/">'+member.name+'</a>'); return new L.marker(member.location, {icon: iconMarker}).bindPopup('<a href="'+member.url+'">'+member.name+'</a>');
}); });
var markerSiege = L.marker([48.10494125597395, -1.6795760019626425], {icon: iconMarkerAlt}).bindPopup('Siège Astrolabe CAE') var markerSiege = L.marker([48.10494125597395, -1.6795760019626425], {icon: iconMarkerAlt}).bindPopup('Siège Astrolabe CAE')

View File

@ -1,6 +0,0 @@
<section id="Meeting" class="[ meeting ]">
<a class="[ meeting__link btn btn-secondary ]" href="https://nuage.astrolabe.coop/apps/forms/embed/jiKKjDLEJZ7DEck3tacdRMX3" target="_blank">
Réunions d'information&nbsp;
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#FFF"></path></svg>
</a>
</section>

View File

@ -4,7 +4,7 @@
<ol class="[ member-list__items ]" reversed> <ol class="[ member-list__items ]" reversed>
{% for item in teamListItems %} {% for item in teamListItems %}
<li class="member-list__item"> <li class="member-list__item">
<a href="{{ item.data.url }}/" class=""> <a href="{{ item.data.url }}" class="">
<img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}"> <img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}">
<span class="member-name btn btn-primary">{{ item.data.name }}</span> <span class="member-name btn btn-primary">{{ item.data.name }}</span>
</a> </a>

View File

@ -4,7 +4,7 @@
<ol class="[ member-list__items ]" reversed> <ol class="[ member-list__items ]" reversed>
{% for item in teamListItems %} {% for item in teamListItems %}
<li class="member-list__item"> <li class="member-list__item">
<a href="{{ item.data.url }}/" class=""> <a href="{{ item.data.url }}" class="">
<img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}"> <img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}">
<span class="member-name btn btn-primary">{{ item.data.name }}</span> <span class="member-name btn btn-primary">{{ item.data.name }}</span>
</a> </a>
@ -16,7 +16,7 @@
{% endfor %} {% endfor %}
<li class="member-list__item info"> <li class="member-list__item info">
<p>Vous êtes porteur dun projet entrepreneurial en numérique et nouvelles technologies ?</p> <p>Vous êtes porteur dun projet entrepreneurial en numérique et nouvelles technologies ?</p>
<a role="button" href="/nous-rejoindre/" class="btn btn-secondary">Rejoignez-nous</a> <a role="button" href="/nous-rejoindre" class="btn btn-secondary">Rejoignez-nous</a>
</li> </li>
</ol> </ol>
{% endif %} {% endif %}

View File

@ -4,7 +4,7 @@
<div class="news-list__inner"> <div class="news-list__inner">
<h2 class="[ news-list__heading ]">{{ newsListHeading }}</h2> <h2 class="[ news-list__heading ]">{{ newsListHeading }}</h2>
{% include "partials/components/posts-list.njk" %} {% include "partials/components/posts-list.njk" %}
<a href="/posts/" class="return-link">Voir tout</a> <a href="/posts" class="return-link">Voir tout</a>
</div> </div>
</div> </div>
</section> </section>

View File

@ -14,7 +14,7 @@
{# <figure> #} {# <figure> #}
<img src="/images/crew-join.svg" alt="équipage astrolabe" loading="lazy" style="width: 22rem;"> <img src="/images/crew-join.svg" alt="équipage astrolabe" loading="lazy" style="width: 22rem;">
{# </figure> #} {# </figure> #}
<a role="button" href="/nous-rejoindre/" class="btn btn-primary">Nous rejoindre <a role="button" href="/nous-rejoindre" class="btn btn-primary">Nous rejoindre
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"></path></svg> <svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"></path></svg>
</a> </a>
</div> </div>
@ -23,15 +23,15 @@
<div class="content"> <div class="content">
<h2>Communs numérique</h2> <h2>Communs numérique</h2>
<p> <p>
Chez Astrolabe nous aimons et faisons la promotion du <a href="https://fr.wikipedia.org/wiki/Logiciel_libre" target="_blank" rel="noreferrer noopener">logiciel libre</a>. Nos sommes membres d<a href="http://www.alliance-libre.org/" target="_blank" rel="noreferrer noopener">Alliance Libre</a> Chez Astrolabe nous aimons et faisons la promotion du <b>logiciel libre</b>. Nos sommes membres d<a href="http://www.alliance-libre.org/" target="_blank" rel="noreferrer noopener">Alliance Libre</a>
et nous mettons nos documents et projets internes à disposition sur <a href="https://git.astrolabe.coop/explore/repos" target="_blank" rel="noreferrer noopener">notre instance Gitea</a>. et nous mettons nos documents et projets internes à disposition sur notre gitlab.
</p> </p>
</div> </div>
<div class="side-info"> <div class="side-info">
<figure> <figure>
<img src="/images/gitea.svg" alt="logo Gitea" loading="lazy" width="100" height="100"> <img src="/images/gitlab.svg" alt="logo Gitlab" loading="lazy" width="110" height="101">
</figure> </figure>
<a role="button" href="https://git.astrolabe.coop/explore/repos" class="btn btn-primary btn-icon" target="_blank" rel="noreferrer noopener">Gitea</a> <a role="button" href="https://framagit.org/astrolabe" class="btn btn-primary btn-icon" target="_blank" rel="noreferrer noopener">Gitlab</a>
</div> </div>
</article> </article>
<article> <article>
@ -40,22 +40,20 @@
<p> <p>
Nos coopérateurs possèdent des compétences propres allant de développement linux embarqué au web design et créent ainsi la <b>pluralité</b> de nos prestations. Nos coopérateurs possèdent des compétences propres allant de développement linux embarqué au web design et créent ainsi la <b>pluralité</b> de nos prestations.
<br><br> <br><br>
Nous sommes également <b>fournisseur de service SAAS</b> de la solution logicielle libre de gestion de CAE <a href="https://www.baloop-erp.fr/" target="_blank" rel="noreferrer noopener">Baloop</a>. Nous sommes également <b>distributeurs</b> de la solution logicielle <a href="https://www.crealead.com/naega#bootstrap-fieldgroup-nav-item--prsentation" target="_blank" rel="noreferrer noopener">Naega</a>.
<br><br>
Nous sommes détenteur de l'<a href="https://www.astrolabe.coop/posts/agrement-cir-2024/" target="_blank" rel="noreferrer noopener">Agrément CIR</a> utile pour nos membres qui travaillent dans le domaine de la R&D.
</p> </p>
</div> </div>
<div class="side-info"> <div class="side-info">
<ul class="profile-preview"> <ul class="profile-preview">
{% for profile in profilePics %} {% for profile in profilePics %}
<li> <li>
<a href="{{ profile.data.url }}/" title="{{ profile.data.name }}"> <a href="{{ profile.data.url }}" title="{{ profile.data.name }}">
<img src="{{ profile.data.profile }}" alt="photo de {{ profile.data.name }}"> <img src="{{ profile.data.profile }}" alt="photo de {{ profile.data.name }}">
</a> </a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
<a role="button" href="/equipe/" class="btn btn-primary">Voir l'équipe</a> <a role="button" href="/equipe" class="btn btn-primary">Voir l'équipe</a>
</div> </div>
</article> </article>
</div> </div>

View File

@ -7,13 +7,12 @@
{% set pageTitle = metaTitle %} {% set pageTitle = metaTitle %}
{% endif %} {% endif %}
{% if description %} {% if metaDesc %}
{% set pageDesc = description %} {% set pageDesc = metaDesc %}
{% endif %} {% endif %}
<title>{{ pageTitle }}</title> <title>{{ pageTitle }}</title>
<link rel="canonical" href="{{ currentUrl }}" /> <link rel="canonical" href="{{ currentUrl }}" />
<link rel="alternate" type="application/rss+xml" title="Astrolabe CAE's RSS Feed" href="/feed.xml" />
<meta property="og:site_name" content="{{ siteTitle }}" /> <meta property="og:site_name" content="{{ siteTitle }}" />
<meta property="og:title" content="{{ pageTitle }}" /> <meta property="og:title" content="{{ pageTitle }}" />
@ -24,10 +23,10 @@
<meta name="twitter:creator" content="@{{ site.authorHandle | replace('@', '') }}" /> <meta name="twitter:creator" content="@{{ site.authorHandle | replace('@', '') }}" />
{% endif %} {% endif %}
{% if description %} {% if metaDesc %}
<meta name="description" content="{{ description }}" /> <meta name="description" content="{{ metaDesc }}" />
<meta name="twitter:description" content="{{ description }}" /> <meta name="twitter:description" content="{{ metaDesc }}" />
<meta property="og:description" content="{{ description }}" /> <meta property="og:description" content="{{ metaDesc }}" />
{% endif %} {% endif %}
{% if socialImage %} {% if socialImage %}

View File

@ -10,23 +10,18 @@
</p> </p>
</div> </div>
<div class=""> <div class="">
<h3><a class="footer-link" href="{{site.url}}/mentions-legales/" title="Mentions légales">Mentions légales</a></h3> <h3>Mentions légales</h3>
<p><a class="footer-link" href="{{site.url}}/rgpd/" title="Protection des données">Protection des données</a></p> <p>Protection des données</p>
</div> </div>
<div class=""> <div class="">
<h3>Contact</h3> <h3>Contact</h3>
<p>{{site.authorName}}</p> <p>{{site.authorName}}</p>
<p>{{site.authorAddress}}<br>{{site.authorCity}}</p> <p>{{site.authorAddress}}<br>{{site.authorCity}}</p>
<div class="socials"> <a href="{{site.authorSocial.mastodon}}" class="social" title="mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.mastodon}}" class="social" title="Mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z" fill="#fff"/></svg></a> <a href="{{site.authorSocial.twitter}}" class="social" title="twitter"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 4.309a9.83 9.83 0 01-2.828.775 4.932 4.932 0 002.165-2.724 9.864 9.864 0 01-3.127 1.195A4.916 4.916 0 0016.616 2c-3.179 0-5.515 2.966-4.797 6.045A13.978 13.978 0 011.671 2.901a4.93 4.93 0 001.523 6.574 4.903 4.903 0 01-2.229-.616c-.054 2.281 1.581 4.415 3.949 4.89a4.935 4.935 0 01-2.224.084 4.928 4.928 0 004.6 3.419A9.9 9.9 0 010 19.292a13.94 13.94 0 007.548 2.212c9.142 0 14.307-7.721 13.995-14.646A10.025 10.025 0 0024 4.309z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.facebook}}" class="social" title="Facebook"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="24px" height="24px"><path d="M24,4C12.972,4,4,12.972,4,24c0,10.006,7.394,18.295,17,19.75V29h-4c-0.552,0-1-0.447-1-1v-3c0-0.553,0.448-1,1-1h4v-3.632 C21,15.617,23.427,13,27.834,13c1.786,0,3.195,0.124,3.254,0.129C31.604,13.175,32,13.607,32,14.125V17.5c0,0.553-0.448,1-1,1h-2 c-1.103,0-2,0.897-2,2V24h4c0.287,0,0.56,0.123,0.75,0.338c0.19,0.216,0.278,0.502,0.243,0.786l-0.375,3 C31.555,28.624,31.129,29,30.625,29H27v14.75c9.606-1.455,17-9.744,17-19.75C44,12.972,35.028,4,24,4z"/></svg></a> <a href="{{site.authorSocial.linkedin}}" class="social" title="linkedin"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.98 2.5A2.49 2.49 0 012.5 5 2.49 2.49 0 01.02 2.5C.02 1.12 1.13 0 2.5 0a2.49 2.49 0 012.48 2.5zM5 7H0v16h5V7zm7.982 0H8.014v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0V23H24V12.869c0-7.88-8.922-7.593-11.018-3.714V7z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.linkedin}}" class="social" title="Linkedin"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.98 2.5A2.49 2.49 0 012.5 5 2.49 2.49 0 01.02 2.5C.02 1.12 1.13 0 2.5 0a2.49 2.49 0 012.48 2.5zM5 7H0v16h5V7zm7.982 0H8.014v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0V23H24V12.869c0-7.88-8.922-7.593-11.018-3.714V7z" fill="#fff"/></svg></a> <a href="{{site.authorSocial.meetup}}" class="social" title="meetup"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M16.001 17.372c.002 1.856 1.194 3.497 2.884 4.055.847.28 1.721.412 2.608.451.633.028 1.265-.016 1.85-.308.46-.23.676-.609.656-1.114-.021-.509-.249-.89-.736-1.092a2.458 2.458 0 00-.52-.159c-.537-.096-1.076-.176-1.61-.282-.882-.176-1.251-.642-1.263-1.534-.01-.788.203-1.532.446-2.268.444-1.346 1.042-2.63 1.616-3.924.553-1.25 1.133-2.489 1.524-3.805.216-.723.319-1.448.123-2.196-.298-1.134-.978-1.895-2.151-2.113-1.073-.2-2.141-.223-3.112.417-.323.212-.633.162-.913-.086-.214-.188-.418-.387-.627-.58-.991-.914-2.3-.959-3.363-.124-.429.337-.79.755-1.255 1.047-.417.262-.837.336-1.298.09-.439-.234-.893-.44-1.347-.646-.459-.207-.904-.464-1.422-.507-1.635-.14-3.347.833-4.068 2.31a20.107 20.107 0 00-.83 2.017c-1.144 3.16-2.077 6.389-3.041 9.606-.433 1.44.077 2.857 1.297 3.634.951.606 1.992.756 3.071.432.873-.263 1.352-.966 1.686-1.756 1.111-2.62 2.112-5.285 3.171-7.927.291-.726.574-1.456.883-2.175.312-.726 1.209-.974 1.741-.492.325.294.411.685.379 1.103-.035.447-.208.86-.371 1.27-.689 1.743-1.391 3.48-2.083 5.221-.14.352-.292.701-.353 1.079-.106.649.151 1.224.681 1.453.542.233 1.104.272 1.665.069.653-.237 1.044-.748 1.344-1.339 1.034-2.029 2.059-4.063 3.091-6.092.477-.938.963-1.871 1.45-2.803.181-.345.393-.672.731-.887a.882.882 0 01.947-.032c.306.171.326.484.313.792a1.42 1.42 0 01-.117.482c-.134.321-.259.646-.407.961-.859 1.806-1.731 3.606-2.582 5.416-.359.765-.732 1.532-.688 2.336z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.instagram}}" class="social" title="Instagram"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M 16 3 C 8.83 3 3 8.83 3 16 L 3 34 C 3 41.17 8.83 47 16 47 L 34 47 C 41.17 47 47 41.17 47 34 L 47 16 C 47 8.83 41.17 3 34 3 L 16 3 z M 37 11 C 38.1 11 39 11.9 39 13 C 39 14.1 38.1 15 37 15 C 35.9 15 35 14.1 35 13 C 35 11.9 35.9 11 37 11 z M 25 14 C 31.07 14 36 18.93 36 25 C 36 31.07 31.07 36 25 36 C 18.93 36 14 31.07 14 25 C 14 18.93 18.93 14 25 14 z M 25 16 C 20.04 16 16 20.04 16 25 C 16 29.96 20.04 34 25 34 C 29.96 34 34 29.96 34 25 C 34 20.04 29.96 16 25 16 z"/></svg></a> <a href="{{site.authorSocial.mobilizon}}" class="social" title="mobilizon"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.42 15.192c0-2.985-.795-5.279-2.384-6.883A6.831 6.831 0 0012 6.395a6.831 6.831 0 00-5.036 1.914C5.375 9.898 4.58 12.192 4.58 15.192c0 2.999.791 5.295 2.373 6.888a6.83 6.83 0 005.036 1.914 6.831 6.831 0 005.036-1.914c1.597-1.593 2.395-3.889 2.395-6.888zm-7.414 5.64c-2.116 0-3.173-1.88-3.173-5.64 0-3.761 1.057-5.641 3.173-5.641 2.115 0 3.172 1.88 3.172 5.641 0 3.76-1.057 5.64-3.172 5.64zm-1.953-17a4.123 4.123 0 01-.336-1.679 4.135 4.135 0 01.336-1.678 4.51 4.51 0 012.165-.47 3.939 3.939 0 012.065.47c.228.53.343 1.101.336 1.678a4.14 4.14 0 01-.336 1.679 4.174 4.174 0 01-2.165.47 3.633 3.633 0 01-2.065-.47z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.peertube}}" class="social" title="Peertube"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M8.83,4.5l16.89,9.75L42.6,24,25.72,33.75,8.83,43.5V24l8.36,4.83,8.42,4.87V14.27l-8.42,4.87L8.83,24V4.5Z"/></g></svg></a>
<a href="{{site.authorSocial.youtube}}" class="social" title="Youtube"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M44.9,14.5c-0.4-2.2-2.3-3.8-4.5-4.3C37.1,9.5,31,9,24.4,9c-6.6,0-12.8,0.5-16.1,1.2c-2.2,0.5-4.1,2-4.5,4.3C3.4,17,3,20.5,3,25s0.4,8,0.9,10.5c0.4,2.2,2.3,3.8,4.5,4.3c3.5,0.7,9.5,1.2,16.1,1.2s12.6-0.5,16.1-1.2c2.2-0.5,4.1-2,4.5-4.3c0.4-2.5,0.9-6.1,1-10.5C45.9,20.5,45.4,17,44.9,14.5z M19,32V18l12.2,7L19,32z"/></g></svg></a>
<a href="{{site.authorSocial.twitch}}" class="social" title="Twitch"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M31.16,12.16v8.19h2.47V12.16Zm-7.75,0v8.19H26V12.16ZM14.11,4.5,7.23,11.34l0,25.12h8.3l0,7,7.06-7H28.2L40.77,24V4.5Zm1.42,2.89H38v15.2L32.55,28H26.94l-5.12,5.13V28H15.53Z"/></g></svg></a>
<a href="{{site.authorSocial.rss}}" class="social" title="RSS"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path class="a" d="M5.5,13.5729A28.9269,28.9269,0,0,1,34.4271,42.5v0H42.5a37,37,0,0,0-37-37Z"></path><path class="a" d="M29.7179,42.5h-7.4A16.818,16.818,0,0,0,5.5,25.6819v-7.4A24.2183,24.2183,0,0,1,29.7181,42.5Z"></path><circle class="a" cx="10.2459" cy="37.7549" r="4.7453"></circle>/svg></a>
</div>
</div> </div>
</div> </div>
</footer> </footer>

View File

@ -4,7 +4,7 @@
<div class="[ site-head__inner ]"> <div class="[ site-head__inner ]">
<a href="/" class="[ site-head__site-name ]"> <a href="/" class="[ site-head__site-name ]">
<span class="visually-hidden">{{ site.name }} - Home</span> <span class="visually-hidden">{{ site.name }} - Home</span>
{% include "../../../images/astrolabe/astrolabe_logo.svg" %} {% include "../../../images/astrolabe_logo.svg" %}
</a> </a>
<button class="menu-toggle" onclick="menuToggle(this)" title="ouvrir / fermer le menu"> <button class="menu-toggle" onclick="menuToggle(this)" title="ouvrir / fermer le menu">
<svg id="icon-show" aria-hidden="true" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 10h12M6 16h19m-15 6h15" stroke="#111" stroke-width="2" stroke-linecap="round"/></svg> <svg id="icon-show" aria-hidden="true" width="32" height="32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13 10h12M6 16h19m-15 6h15" stroke="#111" stroke-width="2" stroke-linecap="round"/></svg>

View File

@ -0,0 +1,5 @@
---
name: 'Technicolor'
thumbnail: '/images/customers/logo-technicolor.png'
url: 'https://www.technicolor.com/'
---

View File

@ -1,5 +0,0 @@
---
name: 'Vantiva'
thumbnail: '/images/customers/logo-vantiva.png'
url: 'https://www.vantiva.com/'
---

View File

@ -1,35 +0,0 @@
---json
{
"permalink": "feed.xml",
"eleventyExcludeFromCollections": true,
"metadata": {
"title": "Actualité d'Astrolabe",
"description": "Retrouvez nos dernières actualités",
"language": "fr",
"base": "https://www.astrolabe.coop/",
"author": "Astrolabe CAE"
}
}
---
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="{{ metadata.base | addPathPrefixToFullUrl }}" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ metadata.title }}</title>
<link>{{ metadata.base | addPathPrefixToFullUrl }}</link>
<atom:link href="{{ permalink | htmlBaseUrl(metadata.base) }}" rel="self" type="application/rss+xml" />
<description>{{ metadata.description }}</description>
<language>{{ metadata.language or page.lang }}</language>
{%- for post in collections.posts %}
{%- set absolutePostUrl = post.url | htmlBaseUrl(metadata.base) %}
<item>
<title>{{ post.data.title }}</title>
<link>{{ absolutePostUrl }}</link>
<description>{{ post.data.description }}</description>
<pubDate>{{ post.date | dateToRfc822 }}</pubDate>
<category>{{ post.data.type }}</category>
<dc:creator>{{ post.data.author or metadata.author }}</dc:creator>
<guid>{{ absolutePostUrl }}</guid>
</item>
{%- endfor %}
</channel>
</rss>

View File

@ -5,28 +5,13 @@ const appendSuffix = n => {
return n + (s[(v - 20) % 10] || s[v] || s[0]); return n + (s[(v - 20) % 10] || s[v] || s[0]);
}; };
export default function dateFilter(value) { module.exports = function dateFilter(value) {
const dateObject = new Date(value); const dateObject = new Date(value);
// const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; // const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
const months = [ const months = ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juill.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'];
'janv.',
'févr.',
'mars',
'avr.',
'mai',
'juin',
'juill.',
'août',
'sept.',
'oct.',
'nov.',
'déc.'
];
const dayWithSuffix = appendSuffix(dateObject.getDate()); const dayWithSuffix = appendSuffix(dateObject.getDate());
// return `${dayWithSuffix} ${months[dateObject.getMonth()]} ${dateObject.getFullYear()}`; // return `${dayWithSuffix} ${months[dateObject.getMonth()]} ${dateObject.getFullYear()}`;
return `${dateObject.getDate()} ${ return `${dateObject.getDate()} ${months[dateObject.getMonth()]} ${dateObject.getFullYear()}`;
months[dateObject.getMonth()] };
} ${dateObject.getFullYear()}`;
}

View File

@ -1,11 +1,9 @@
import markdownIt from 'markdown-it'; const markdownIt = require('markdown-it')({
const m = markdownIt({
html: true, html: true,
breaks: true, breaks: true,
linkify: true linkify: true
}); });
export default function markdown(value) { module.exports = function markdown(value) {
return m.render(value); return markdownIt.render(value);
} };

View File

@ -1,5 +1,5 @@
export default function w3cDate(value) { module.exports = function w3cDate(value) {
const dateObject = new Date(value); const dateObject = new Date(value);
return dateObject.toISOString(); return dateObject.toISOString();
} };

View File

@ -1,116 +1,84 @@
<?php <?php
require("/usr/share/php/libphp-phpmailer/autoload.php"); $errors = '';
use PHPMailer\PHPMailer\PHPMailer; $myEmail = 'contact-form@astrolabe.coop'; // email address to send form content
use PHPMailer\PHPMailer\Exception;
if(empty($_POST['namezzz']) || empty($_POST['emailzzz']) || empty($_POST['message'])) {
$mail = new PHPMailer(true); $errors .= "\n Error: all fields are required";
}
$errors = '';
$myEmail = getenv('ASTRO_SMTP_FROM'); if(!empty($_POST['name']) && !empty($_POST['email'])) {
$myEmailSplitted = explode('@', $myEmail); $errors .= "\n Error: spam";
$domainFromMyEmail = ( }
empty($myEmailSplitted[1])
|| count($myEmailSplitted) != 2 $name = $_POST['namezzz'];
) ? '' $emailAddress = $_POST['emailzzz'];
: $myEmailSplitted[1]; $select = $_POST['select'];
$message = $_POST['message'];
$wantedContact = filter_input(INPUT_POST, 'contactTo', FILTER_SANITIZE_SPECIAL_CHARS); $subscribe = $_POST['subscribe'];
$wantedContact = (
empty($wantedContact) if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
|| strpos($wantedContact, '@') !== false $errors .= "\n Error: Invalid email address $emailAddress";
|| strpos($wantedContact, '&') !== false }
|| empty($domainFromMyEmail)
) ? $myEmail : "$wantedContact@$domainFromMyEmail" ; if( empty($errors)) {
$headers = array(
if(empty($_POST['namezzz']) || empty($_POST['emailzzz']) || empty($_POST['message'])) { "From: " .$myEmail,
$errors .= "\n Error: all fields are required"; "Reply-To: " .$emailAddress,
} "MIME-Version: 1.0",
"Content-Type: text/html;charset=UTF-8",
if(!empty($_POST['name']) && !empty($_POST['email'])) { "Content-Transfer-Encoding:8bit"
$errors .= "\n Error: spam"; );
}
$to = $myEmail;
$name = $_POST['namezzz']; $emailSubject = "[Formulaire Astrolabe] Nouveau message";
$emailAddress = $_POST['emailzzz'];
$select = $_POST['select']; switch ($select) {
$message = $_POST['message']; case "option 1":
$subscribe = $_POST['subscribe']; $purpose = "Demande de rendez-vous";
break;
if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { case "option 2":
$errors .= "\n Error: Invalid email address $emailAddress"; $purpose = "Demande de précisions sur le statut dentrepreneur salarié";
} break;
case "option 3":
if(empty($errors)) { $purpose = "Proposition de misson";
$emailSubject = "[Formulaire Astrolabe] Nouveau message"; break;
case "option 4":
switch ($select) { $purpose = "Proposition de partenariat";
case "option 1": break;
$purpose = "Demande de rendez-vous"; default:
break; $purpose = "Autre demande";
case "option 2": }
$purpose = "Demande de précisions sur le statut dentrepreneur salarié";
break; $messageWrap = wordwrap($message, 70, "\r\n", false);
case "option 3":
$purpose = "Proposition de misson"; $emailBody = "Vous avez reçu un nouveau message depuis le formulaire du site Astrolabe :".
break; "\r\n\r\nNom: $name \r\nEmail: $emailAddress \r\nRaison: $purpose\r\nSubscribe: $subscribe\r\n\r\n$messageWrap";
case "option 4":
$purpose = "Proposition de partenariat"; $emailBodyHTML = str_replace("\r\n", "<br>", $emailBody);
break;
default: // send the email
$purpose = "Autre demande"; mail($to, $emailSubject, $emailBodyHTML, implode("\r\n", $headers));
}
$emailSubject .= " : $purpose"; // if subscribe add to mailing list
if(!empty($subscribe)) {
$emailBody = "Vous avez reçu un nouveau message depuis le formulaire du site Astrolabe :". // process
"\r\n\r\nNom: $name \r\nEmail: $emailAddress \r\nRaison: $purpose\r\nSubscribe: $subscribe\r\n\r\n$message"; // enovoi mail add to mailing list
}
$emailBodyHTML = str_replace("\r\n", "<br>", $emailBody);
// redirect to the 'thank you' page
$mail->isSMTP(); header("Location: /thank-you/index.html");
$mail->Host = getenv('ASTRO_SMTP_HOSTNAME'); }
$mail->SMTPAuth = true; ?>
$mail->Username = getenv('ASTRO_SMTP_USERNAME'); <!DOCTYPE html>
$mail->Password = getenv('ASTRO_SMTP_PASSWORD'); <html>
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; <head>
$mail->Port = 587; <title>Contact form handler</title>
</head>
//Options
$mail->CharSet = 'UTF-8'; <body>
$mail->WordWrap = 70; <!-- This page is displayed only if there is some error -->
<?php
//Recipients echo nl2br($errors);
$mail->setFrom($myEmail); ?>
$mail->addAddress($wantedContact); </body>
$mail->addReplyTo($emailAddress, $name); </html>
// Content
$mail->isHTML(true);
$mail->Subject = $emailSubject;
$mail->Body = $emailBodyHTML;
$mail->AltBody = $emailBody;
$mail->send();
// if subscribe add to mailing list
if(!empty($subscribe)) {
// process
// enovoi mail add to mailing list
}
// redirect to the 'thank you' page
header("Location: /thank-you/index.html");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Contact form handler</title>
</head>
<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>
</body>
</html>

View File

@ -1,4 +0,0 @@
Copyright 2023 Astrolabe CAE : All rights reserved
This licence applies to the current folder.
It is not authorized to copy, display, use, adapt, change, include, translate, sell part or the whole of contents of this folder without a preciding written authorization from owners of this website.

View File

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -1,4 +0,0 @@
Copyright 2023 Astrolabe CAE : All rights reserved
This licence applies to the current folder.
It is not authorized to copy, display, use, adapt, change, include, translate, sell part or the whole of contents of this folder without a preciding written authorization from owners of this website.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" id="main_outline" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 640 640" style="enable-background:new 0 0 640 640;" xml:space="preserve">
<g>
<path id="teabag" style="fill:#FFFFFF" d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8 c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4 c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"/>
<g>
<g>
<path style="fill:#609926" d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2 c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5 c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5 c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3 c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1 C633.2,157.9,624.7,151.8,622.7,149.8z M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4 c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7 S142.5,359.9,125.6,353.9z M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55 c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8 l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"/>
<path style="fill:#609926" d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4 c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1 c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9 c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3 c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3 c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29 c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8 C343.2,346.5,335,363.3,326.8,380.1z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

1
src/images/gitlab.svg Normal file
View File

@ -0,0 +1 @@
<svg width="110" height="101" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M109.052 56.536l-5.704-17.493a2.415 2.415 0 00-.138-.47L91.766 3.412a4.54 4.54 0 00-1.669-2.251 4.555 4.555 0 00-2.674-.846 4.478 4.478 0 00-2.661.856 4.464 4.464 0 00-1.632 2.266L72.222 36.942H37.795L26.871 3.438a4.465 4.465 0 00-1.624-2.26 4.478 4.478 0 00-2.65-.862h-.025a4.555 4.555 0 00-4.331 3.125L6.788 38.643c0 .032-.026.057-.035.09L.946 56.538a6.485 6.485 0 002.364 7.272l50.17 36.386a2.57 2.57 0 003.032-.016l50.179-36.37a6.493 6.493 0 002.361-7.275zM34.061 42.085l13.984 42.96-33.57-42.96H34.06zm27.911 42.97l13.41-41.187.578-1.783h19.602L65.19 80.92l-3.218 4.133zM87.467 6.735l9.827 30.206h-19.67l9.844-30.206zm-16.91 35.33l-9.743 29.927L55 89.816l-15.534-47.75h31.09zM22.55 6.736l9.846 30.206H12.739l9.81-30.206zM6.33 59.668a1.38 1.38 0 01-.501-1.547l4.311-13.225 31.624 40.466L6.329 59.668zm97.345 0L68.238 85.352l.118-.154 31.505-40.302 4.312 13.219a1.383 1.383 0 01-.498 1.55" fill="#111"/></svg>

After

Width:  |  Height:  |  Size: 998 B

View File

Before

Width:  |  Height:  |  Size: 946 B

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

View File

@ -1,4 +0,0 @@
Copyright 2023 Astrolabe CAE : All rights reserved
This licence applies to the current folder.
It is not authorized to copy, display, use, adapt, change, include, translate, sell part or the whole of contents of this folder without a preciding written authorization from owners of this website.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 1021 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -1,4 +0,0 @@
Copyright 2023 Astrolabe CAE : All rights reserved
This licence applies to the current folder.
It is not authorized to copy, display, use, adapt, change, include, translate, sell part or the whole of contents of this folder without a preciding written authorization from owners of this website.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,4 +0,0 @@
Copyright 2023 Astrolabe CAE : All rights reserved
This licence applies to the current folder.
It is not authorized to copy, display, use, adapt, change, include, translate, sell part or the whole of contents of this folder without a preciding written authorization from owners of this website.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Some files were not shown because too many files have changed in this diff Show More