Skip to content

Commit

Permalink
Merge branch 'master' into fix/useless-push
Browse files Browse the repository at this point in the history
  • Loading branch information
arnaudambro authored Mar 4, 2024
2 parents c8b4206 + ba4bb60 commit 5e236da
Show file tree
Hide file tree
Showing 73 changed files with 12,685 additions and 7,444 deletions.
6 changes: 5 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
.dockerignore
Dockerfile
.git
.github
.k8s
.kontinuous
.socialgouv.yaml
.releaserc.yml
*.md
**/node_modules
**/.next/cache
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/.yarn/releases/** binary
/.yarn/plugins/** binary
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,11 @@ yarn-error.log*

# vercel
.vercel

# Yarn Berry
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
19 changes: 19 additions & 0 deletions .yarn/plugins/@yarnpkg/plugin-fetch.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/* eslint-disable */
//prettier-ignore
module.exports = {
name: "@yarnpkg/plugin-fetch",
factory: function (require) {
var plugin=(()=>{var le=Object.defineProperty;var pe=(s,e,t)=>e in s?le(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var c=(s=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(s,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):s)(function(s){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+s+'" is not supported')});var i=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var f=(s,e,t)=>(pe(s,typeof e!="symbol"?e+"":e,t),t);var $=i((Ue,A)=>{"use strict";A.exports=function(e){return e.map(function(t){return t&&typeof t=="object"?t.op.replace(/(.)/g,"\\$1"):/["\s]/.test(t)&&!/'/.test(t)?"'"+t.replace(/(['\\])/g,"\\$1")+"'":/["'\s]/.test(t)?'"'+t.replace(/(["\\$`!])/g,"\\$1")+'"':String(t).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g,"$1\\$2")}).join(" ")}});var H=i((Ve,v)=>{var C=c("fs"),ue=c("path"),{parseSyml:fe}=c("@yarnpkg/parsers"),ke=["patch","npm","portal","link"],B=s=>{let e=s.trim().split("@");return s.startsWith("@")?e=e.slice(0,2):e=e.slice(0,1),e.join("@")},Y=(s,e)=>{let[t,r]=s.trim().split(`@${e}:`);return{key:t,version:r}},de=s=>{let[,e]=s.split("::")[0].split("#");return e};v.exports=function(){let e=C.readFileSync("yarn.lock","utf8"),t=fe(e),r=Object.keys(t).filter(o=>o.includes("@workspace:")),n=r.map(o=>{let[,l]=t[o].resolution.trim().split("@workspace:");return l==="."?null:l}).filter(Boolean);r.forEach(o=>{let{dependencies:l,dependenciesMeta:u,peerDependencies:b,peerDependenciesMeta:P,resolution:D,bin:ce}=t[o],[ae,w]=D.trim().split("@workspace:"),ie=ue.join(w,"package.json"),y={name:ae,version:"0.0.0",description:"**DON'T COMMIT** Generated file for caching",private:!0,dependencies:l,peerDependencies:b,peerDependenciesMeta:P,bin:ce};if(u){let m={};Object.keys(u).forEach(d=>{m[d]=l[d],delete l[d]}),y.optionalDependencies=m}if(w==="."){n.length>0&&(y.workspaces={packages:n});let m=Object.keys(t),d=new Map;m.forEach(p=>{p.split(",").forEach(k=>{if(k.includes("builtin<compat/"))return;let a=B(k);d.has(a)||d.set(a,[]),d.get(a).push(k)})}),y.resolutions=m.filter(p=>{var a;if(p.includes("@workspace:"))return!1;if(p.includes("@patch:"))return!((a=de(Y(p,"patch").version).match(/(\.\.\/)+/))!=null&&a.length);if(p.includes(", "))return!1;let k=B(p);return d.get(k).length===1}).reduce((p,k)=>(ke.forEach(a=>{if(!k.includes(`@${a}:`))return;let{key:x,version:g}=Y(k,a);switch(a){case"npm":p[x]=g.includes("@")?`${a}:${g}`:g;break;case"patch":k.includes("builtin<compat/")||(p[x]=`${a}:${g.split("::")[0]}`);break;case"portal":case"link":p[x]=`${a}:${g.split("::")[0]}`;break}}),p),{})}C.mkdirSync(w,{recursive:!0}),C.writeFileSync(ie,`${JSON.stringify(y,null,2)}
`)})}});var j=i((Ze,R)=>{var he=H();R.exports=s=>{s.context.stdout.write(`[YARN-FETCH] extracting package.json file(s) from yarn.lock
`),he()}});var K=i((Xe,L)=>{var h=c("fs"),me=c("path"),{execSync:ge}=c("child_process"),{parseSyml:ye}=c("@yarnpkg/parsers"),{BaseCommand:xe}=c("@yarnpkg/cli"),{Command:qe,Option:M}=c("clipanion"),be=$(),Pe=j(),q;L.exports=(q=class extends xe{protectPackageJson=M.Boolean("--protect-package-json");args=M.Proxy();async execute(){let{protectPackageJson:e=process.stdout.isTTY}=this,t=[];if(e){this.context.stdout.write(`[YARN-FETCH] backup possible package.json file(s)
`);let n=h.readFileSync("yarn.lock","utf8"),o=ye(n);t=Object.keys(o).filter(u=>u.includes("@workspace:")).map(u=>{let{resolution:b}=o[u],[,P]=b.trim().split("@workspace:");return me.join(P,"package.json")}),t.forEach(u=>{h.existsSync(u)&&!h.existsSync(`${u}.yarn-plugin-fetch-bak`)&&h.copyFileSync(u,`${u}.yarn-plugin-fetch-bak`)})}Pe(this);let r=`yarn ${be(this.args)}`;this.context.stdout.write(`[YARN-FETCH] ${r}
`);try{ge(r,{stdio:"inherit"})}catch(n){throw n}finally{e&&(this.context.stdout.write(`[YARN-FETCH] restoring possible package.json file(s)
`),t.forEach(n=>{h.existsSync(`${n}.yarn-plugin-fetch-bak`)?h.renameSync(`${n}.yarn-plugin-fetch-bak`,n):h.unlinkSync(n)}))}}},f(q,"paths",[["fetch"]]),f(q,"usage",qe.Usage({description:"fetch dependencies from yarn.lock in Docker build",details:`
expand yarn.lock to package.json file(s) and install dependencies in Docker build.
`,examples:[["yarn fetch --immutable","yarn fetch workspace my-package focus"]]})),q)});var W=i((st,I)=>{var{BaseCommand:we}=c("@yarnpkg/cli"),$e=j(),S;I.exports=(S=class extends we{async execute(){$e(this)}},f(S,"paths",[["fetch-tools","expand-lock"]]),S)});var z=i((rt,_)=>{function Ce(s,e,t){let r=e.split("."),n=s;for(let o of r){if(n[o]===void 0)return t;n=n[o]}return n}function je(s,e,t){let r=e.split("."),n=s;for(let o=0;o<r.length-1;o++){let l=r[o];(!n[l]||typeof n[l]!="object")&&(n[l]={}),n=n[l]}return n[r[r.length-1]]=t,s}function Se(s,e){let t=e.split("."),r=s;for(let n=0;n<t.length-1;n++){let o=t[n];if(!r[o])return!1;r=r[o]}return delete r[t[t.length-1]],!0}_.exports={get:Ce,set:je,unset:Se}});var E=i((ot,U)=>{var G=c("fs"),{get:Ee,set:Fe,unset:Je}=z();U.exports=function(e,t){let r=JSON.parse(G.readFileSync("package.json","utf-8")),n=Ee(r,e);n!==void 0&&(Fe(r,t,n),Je(r,e),G.writeFileSync("package.json",JSON.stringify(r,null,2)))}});var F=i((ct,V)=>{var Ne=E();V.exports=function(){Ne("scripts._postinstall","scripts.postinstall")}});var Q=i((it,Z)=>{var{BaseCommand:Te}=c("@yarnpkg/cli"),Oe=F(),J;Z.exports=(J=class extends Te{async execute(){Oe()}},f(J,"paths",[["fetch-tools","disable-postinstall"]]),J)});var N=i((pt,X)=>{var De=E();X.exports=function(){De("scripts.postinstall","scripts._postinstall")}});var te=i((ft,ee)=>{var{BaseCommand:Ae}=c("@yarnpkg/cli"),Be=N(),T;ee.exports=(T=class extends Ae{async execute(){Be()}},f(T,"paths",[["fetch-tools","disable-postinstall"]]),T)});var re=i((ht,ne)=>{var{execSync:Ye}=c("child_process"),{BaseCommand:ve}=c("@yarnpkg/cli"),{Option:se}=c("clipanion"),He=$(),Re=F(),Me=N(),O;ne.exports=(O=class extends ve{postinstall=se.Boolean("--postinstall");args=se.Proxy();async execute(){this.postinstall||(this.context.stdout.write(`[YARN-FETCH] disable postinstall command in package.json
`),Me());let e=`yarn workspaces focus --production ${He(this.args)}`;this.context.stdout.write(`[YARN-FETCH] ${e}
`),Ye(e,{stdio:"inherit"}),this.postinstall||(this.context.stdout.write(`[YARN-FETCH] re-enable postinstall command in package.json
`),Re())}},f(O,"paths",[["fetch-tools","production"]]),O)});var ze=i((gt,oe)=>{var Le=K(),Ke=W(),Ie=Q(),We=te(),_e=re();oe.exports={commands:[Le,Ke,We,Ie,_e]}});return ze();})();
return plugin;
}
};
28 changes: 28 additions & 0 deletions .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs

Large diffs are not rendered by default.

875 changes: 875 additions & 0 deletions .yarn/releases/yarn-3.7.0.cjs

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
nodeLinker: node-modules

plugins:
- path: .yarn/plugins/@yarnpkg/plugin-fetch.cjs
spec: "https://codeberg.org/devthefuture/yarn-plugin-fetch/raw/branch/master/bundles/@yarnpkg/plugin-fetch.js"
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"

yarnPath: .yarn/releases/yarn-3.7.0.cjs
10 changes: 5 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@ WORKDIR /app

RUN chown node:node /app

COPY ./package.json .
COPY ./yarn.lock .

RUN yarn --frozen-lockfile --ignore-engines
COPY yarn.lock .yarnrc.yml ./
COPY .yarn .yarn
RUN yarn fetch --immutable && yarn cache clean

COPY . .

ENV NEXT_PUBLIC_MATOMO_SITE_ID="34"
ENV NEXT_PUBLIC_MATOMO_URL="https://matomo.fabrique.social.gouv.fr/"
ENV NODE_ENV=production

RUN yarn --ignore-engines build-static
ENV YARN_IGNORE_NODE=1
RUN yarn build-static

FROM ghcr.io/socialgouv/docker/nginx:8.2.0

Expand Down
5 changes: 3 additions & 2 deletions components/Footer.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ export default function Footer() {
text="Nous contacter ?"
link="mailto:[email protected]"
/> */}
<ArrowList text="Ils parlent de nous" link="/partners" />
<button
className="block underline text-sm font-light mb-2 cursor-pointer"
onClick={() => setShowContactPopup(true)}
Expand All @@ -83,11 +84,11 @@ export default function Footer() {
</div>
<ArrowList
text="Mentions légales"
link="/files/25012023-Oz_Ensemble-Mentions_legales_site_V2.pdf"
link="/files/23012024-Oz_Ensemble-Mentions_legales_site_V3.pdf"
/>
<ArrowList
text="Politique de confidentialité"
link="/files/25012023-Oz_Ensemble-Politique_de_confidentialite_site_V3.pdf"
link="/files/23012024-Oz_Ensemble-Politique_de_confidentialite_site_V4.pdf"
/>
<ArrowList text="Statistiques" link="/stats" />

Expand Down
7 changes: 6 additions & 1 deletion components/Navigation.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ export default function Navigation({ showPopup, setShowPopup }) {
<Link name="Accueil" target="/" setIsOpen={setIsOpen} />
<Link
name="Comment ça marche"
target="#how-it-works"
target="/#how-it-works"
setIsOpen={setIsOpen}
/>
{/* <Link
Expand All @@ -65,6 +65,11 @@ export default function Navigation({ showPopup, setShowPopup }) {
onClick={() => setShowContactPopup(true)}
/> */}
<Link name="Blog" target="/blog" setIsOpen={setIsOpen} />
<Link
name="Ils parlent de nous"
target="/partners"
setIsOpen={setIsOpen}
/>
<ContactPopupTrigger setShowPopup={setShowContactPopup} />
<DownloadPopupTrigger setShowPopup={setShowPopup} />
</div>
Expand Down
74 changes: 74 additions & 0 deletions content/arreter-l-alcool-oz-ensemble.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: "Arrêter l'Alcool avec Oz Ensemble : Votre Guide Complet pour une Vie Sans Alcool"
order: 10
category: "Santé et bien-être"
date: Mars 1, 2024
image: ../images/articles/Février article 10.jpg
description: "L’application Oz Ensemble vous aide à arrêter la consommation d’alcool. Découvrez notre guide complet"
---

## Comprendre la motivation derrière l'arrêt de l'alcool

Lorsqu'il s'agit de faire des changements significatifs dans nos vies, la compréhension de nos motivations est un facteur clé de succès. Cesser de consommer de l'alcool peut être un défi considérable, et c'est pourquoi il est crucial de réfléchir profondément aux raisons qui nous poussent à vouloir arrêter. Ainsi, nous pouvons renforcer notre engagement et concevoir un plan d'action qui résonne avec nos valeurs et nos objectifs personnels.

### Identifier vos raisons personnelles

Pourquoi souhaitez-vous arrêter de boire? Est-ce pour des raisons de santé, des considérations financières, ou afin d'améliorer vos relations avec vos proches? Chaque individu a ses propres raisons qui le motivent à réduire sa consommation d'alcool ou à s'abstenir totalement. C'est en identifiant ces motivations personnelles que vous parviendrez à construire un engagement solide. Ce dernier servira de fondement à votre volonté de changer et vous aidera à surmonter les obstacles qui se présenteront sur votre chemin. Pour en savoir plus sur l'identification de ces motivations, [Alcool-info-service](https://www.alcool-info-service.fr/alcool-et-vous/arreter-consommation-alcool/comment-arreter-alcool) offre des informations utiles.

### Évaluer les bénéfices d'une vie sans alcool

La prise de conscience des avantages d'une vie sans alcool peut être extrêmement motivante. Les bénéfices sont multiples: amélioration de l'état général de santé, gain en qualité de sommeil, augmentation de la productivité, et bien d'autres. Ces avantages peuvent fonctionner comme un moteur de changement, vous incitant à poursuivre vos efforts même lorsque la tentation est forte. Il est important de se rappeler que chaque personne expérimente des bénéfices différents, mais tous sont significatifs pour le bien-être à long terme.

### Se fixer des objectifs clairs

L'établissement d'objectifs clairs et mesurables est un aspect indispensable de votre parcours vers l'abstinence. Il s'agit de définir ce que vous souhaitez atteindre et dans quel délai. Voulez-vous réduire votre consommation d'alcool progressivement ou arrêter complètement? Quels sont les marqueurs que vous utiliserez pour mesurer vos progrès? Lorsque vos objectifs sont bien définis, ils fournissent une feuille de route claire et vous aident à rester concentré.e et motivé.e. Ils permettent également de célébrer les victoires, petites et grandes, qui jalonnent votre parcours. Pour mieux comprendre comment se fixer des objectifs efficaces, consultez les recommandations sur le site de [Qare](https://www.qare.fr/sante/alcoolisme/arret/).

En résumé, la compréhension de vos motivations personnelles, l'évaluation des bénéfices d'une vie sans alcool et la définition d'objectifs clairs sont des étapes fondamentales qui vous aideront à surmonter la dépendance à l'alcool. Avec ces bases bien en place, vous serez mieux équipé pour faire les premiers pas vers l'abstinence et entamer un parcours de changement durable.

## Les premiers pas vers l'abstinence

L'abstinence de l'alcool est un chemin personnel et parfois complexe, mais qui mène à de nombreux bénéfices pour la santé et le bien-être. Pour entreprendre les premiers pas vers la sobriété, voici quelques étapes fondamentales.

### La préparation au changement

Commencer par un examen de conscience et préparer le terrain pour un changement positif est crucial. Cela peut impliquer de repenser votre routine quotidienne, d'éliminer les boissons alcoolisées de votre domicile ou de communiquer vos intentions à vos proches pour qu'ils puissent vous soutenir. On peut réduire la tentation en évitant les situations où l'alcool est omniprésent et rechercher des loisirs ou des activités qui n'impliquent pas de boire.

### Comprendre le sevrage et ses effets

Le sevrage alcoolique peut s'accompagner de symptômes désagréables tels que l'anxiété, les tremblements ou l'insomnie, surtout si la consommation préalable était importante. Il est essentiel de s'informer sur ces [effets](https://www.livi.fr/en-bonne-sante/arret-alcool-bienfaits/) et, dans certains cas, de consulter un professionnel de santé pour gérer le sevrage en toute sécurité.

### Adopter des habitudes saines

Pour remplacer l'habitude de consommer de l'alcool, intégrer des pratiques saines est une stratégie efficace. Activités physiques, méditation, passe-temps créatifs, tout est bon pour occuper l'esprit et le corps. Ces nouvelles habitudes contribueront non seulement à éloigner l'envie de boire, mais aussi à améliorer votre santé globale et votre qualité de vie.

## Stratégies de réduction de la consommation d'alcool

Diminuer sa consommation d'alcool est souvent l'étape initiale vers l'abstinence complète. Voici quelques méthodes pour y parvenir.

### Techniques de réduction progressive

Diminuer progressivement permet de réduire les risques liés au sevrage. Cela peut vouloir dire boire moins souvent ou choisir des boissons avec un degré d'alcool plus bas. L'objectif est de réduire l'impact physique et psychologique de la diminution de la consommation en douceur.

### Importance du suivi de consommation

Tenir un journal de votre consommation d'alcool est un moyen efficace de prendre conscience de vos habitudes. Cela vous aide également à fixer des objectifs réalistes et à mesurer vos progrès. Vous pouvez y noter les quantités consommées, les circonstances, et vos sentiments associés à ces moments de consommation.

### S'appuyer sur des outils d'aide

Des applications telles que Oz Ensemble proposent des fonctionnalités pratiques pour accompagner les individus dans leur démarche de réduction de l'alcool.

## Trouver du soutien tout au long du processus

L'accompagnement par des pairs ou des professionnels peut grandement influencer le succès de votre démarche d'abstinence.

### Soutien professionnel et thérapie

Faire appel à des professionnels de santé spécialisés dans la dépendance peut apporter des conseils personnalisés et des stratégies adaptées. Les thérapeutes peuvent outiller les individus afin de gérer les envies de consommer et d'identifier les sources de leur dépendance.

### L'impact de l'entourage et de la famille

L'entourage joue un rôle primordial. En les impliquant dans votre parcours, ils peuvent devenir une source de motivation et de soutien constant. Expliquez-leur vos besoins et comment ils peuvent vous aider, que ce soit en respectant votre choix lors d'événements sociaux ou en participant à certaines de vos nouvelles activités sans alcool.

Réduire sa consommation d'alcool ou s'orienter vers l'abstinence complète est une démarche bénéfique sur de nombreux plans, dont vous pouvez découvrir davantage sur des [sites spécialisés](https://www.livi.fr/en-bonne-sante/6-bonnes-raisons-de-diminuer-sa-consommation-dalcool/). Avec les bonnes stratégies, le soutien adéquat et une volonté ferme, chaque pas en avant peut mener à un mode de vie plus sain et épanouissant.

Le suivi régulier permet également de visualiser les réductions de consommation au fil du temps, ce qui peut renforcer la motivation et la détermination à continuer sur la voie de la réduction ou de l'abstinence.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Comment l'Application Peut Vous Aider à Tirer le Meilleur de Dry January"
order: 2
order: 13
category: "Santé et bien-être"
date: Décembre 22, 2023
image: ../images/articles/Dry january - article 2.png
Expand Down
Loading

0 comments on commit 5e236da

Please sign in to comment.