diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..32bb0f76f --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +deploy/fdc.db.zip filter=lfs diff=lfs merge=lfs -text diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index d7af92055..07bef0f04 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,7 +1,7 @@ - + sqlite.xerial true org.sqlite.JDBC diff --git a/deploy/fdc.db.zip b/deploy/fdc.db.zip index 734396bdc..94e8f1aa2 100644 Binary files a/deploy/fdc.db.zip and b/deploy/fdc.db.zip differ diff --git a/docs/papers/Information Extraction from Unstructured Recipe Data.pdf b/docs/papers/Information Extraction from Unstructured Recipe Data.pdf deleted file mode 100644 index 7bc9dd202..000000000 Binary files a/docs/papers/Information Extraction from Unstructured Recipe Data.pdf and /dev/null differ diff --git a/docs/website/content/_index.md b/docs/website/content/en/_index.md similarity index 77% rename from docs/website/content/_index.md rename to docs/website/content/en/_index.md index 82c88fbe6..503e72c0e 100644 --- a/docs/website/content/_index.md +++ b/docs/website/content/en/_index.md @@ -3,40 +3,38 @@ title: Recipya layout: hextra-home --- -
+
{{< hextra/hero-headline >}} Recipya {{< /hextra/hero-headline >}}
-
+
{{< hextra/hero-subtitle >}} A clean, simple and powerful recipe manager your whole family can enjoy. {{< /hextra/hero-subtitle >}}
-
-{{< hextra/hero-button text="Get Started" link="/guide/docs" style="margin-right: 0.5rem" >}} -{{< hextra/hero-button text="Open App" link="/guide/login" style="background-color: rgb(139 92 246)">}} +
+{{< hextra/hero-button text="Get Started" link="/guide/docs/" style="margin-right: 0.5rem" >}} +{{< hextra/hero-button text="Open App" link="/guide/auth/login" style="background-color: rgb(139 92 246)">}}
-
- {{< hextra/feature-grid >}} {{< hextra/feature-card title="Curate Recipes" subtitle="Effortlessly import your favorite recipes from around the web, digitize paper recipes, and add recipes manually." - class="aspect-auto md:aspect-[1.1/1] max-md:min-h-[340px]" + class="hxaspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" image="/images/curate.webp" - imageClass="small w-[180%] left-[36px] sm:w-[110%] dark:opacity-80" + imageClass="small hx-w-[180%] hx-left-[36px] sm:hx-w-[110%] dark:hx-opacity-80" style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));" >}} {{< hextra/feature-card title="One Measurement System" subtitle="All your recipes can be converted to your preferred measurement system. Say goodbye to imperial or metric." - class="aspect-auto md:aspect-[1.1/1] max-lg:min-h-[340px]" + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-lg:hx-min-h-[340px]" image="/images/view-recipe.webp" - imageClass="small w-[110%] sm:w-[110%] dark:opacity-80" + imageClass="small hx-w-[110%] sm:hx-w-[110%] dark:hx-opacity-80" icon="globe" style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));" >}} @@ -44,9 +42,9 @@ layout: hextra-home title="Self-Hostable" subtitle="Easily self-host the software on your server with Docker." icon="desktop-computer" - class="aspect-auto md:aspect-[1.1/1] max-md:min-h-[340px]" + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" image="/images/devices.svg" - imageClass="small w-[110%] sm:w-[110%] dark:opacity-80" + imageClass="small hx-w-[110%] sm:hx-w-[110%] dark:hx-opacity-80" style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));" >}} {{< hextra/feature-card diff --git a/docs/website/content/about/_index.md b/docs/website/content/en/about/_index.md similarity index 95% rename from docs/website/content/about/_index.md rename to docs/website/content/en/about/_index.md index 1c550eb4b..3e5180531 100644 --- a/docs/website/content/about/_index.md +++ b/docs/website/content/en/about/_index.md @@ -13,7 +13,7 @@ It is focused on simplicity for the whole family to enjoy. - Import recipes from around the web - Digitize paper recipes - Organize your recipes into cookbooks -- Works seamlessly with [Nextcloud Cookbook](https://apps.nextcloud.com/apps/cookbook) +- Easily migrate your recipes from [Mealie](https://mealie.io), [Tandoor](https://tandoor.dev) and [Nextcloud Cookbook](https://apps.nextcloud.com/apps/cookbook) - Automatic conversion to your preferred measurement system (imperial/metric) - Calculate nutritional information automatically - Print any recipe in your collection diff --git a/docs/website/content/about/changelog/_index.md b/docs/website/content/en/about/changelog/_index.md similarity index 71% rename from docs/website/content/about/changelog/_index.md rename to docs/website/content/en/about/changelog/_index.md index 688bf5d9f..7caa501d0 100644 --- a/docs/website/content/about/changelog/_index.md +++ b/docs/website/content/en/about/changelog/_index.md @@ -8,15 +8,15 @@ weight: 1 Overview of Recipya's releases. {{< cards >}} - {{< card link="/guide/about/changelog/v1.2.0/" + {{< card link="/guide/en/about/changelog/v1.2.0/" title="v1.2.0" subtitle="View changelog for v1.2.0." icon="newspaper">}} - {{< card link="/guide/about/changelog/v1.1.0/" + {{< card link="/guide/en/about/changelog/v1.1.0/" title="v1.1.0" subtitle="View changelog for v1.1.0." icon="newspaper">}} - {{< card link="/guide/about/changelog/v1.0.1/" + {{< card link="/guide/en/about/changelog/v1.0.1/" title="v1.0.1" subtitle="View changelog for v1.0.1." icon="newspaper">}} diff --git a/docs/website/content/about/changelog/images/v1.0.1/fixed-salmon.webp b/docs/website/content/en/about/changelog/images/v1.0.1/fixed-salmon.webp similarity index 100% rename from docs/website/content/about/changelog/images/v1.0.1/fixed-salmon.webp rename to docs/website/content/en/about/changelog/images/v1.0.1/fixed-salmon.webp diff --git a/docs/website/content/about/changelog/v1.0.1.md b/docs/website/content/en/about/changelog/v1.0.1.md similarity index 99% rename from docs/website/content/about/changelog/v1.0.1.md rename to docs/website/content/en/about/changelog/v1.0.1.md index c2a699c7d..7fddeb12a 100644 --- a/docs/website/content/about/changelog/v1.0.1.md +++ b/docs/website/content/en/about/changelog/v1.0.1.md @@ -1,6 +1,6 @@ --- title: v1.0.1 (11 January 2024) -weight: 3 +weight: 4 --- ## Authentication diff --git a/docs/website/content/about/changelog/v1.1.0.md b/docs/website/content/en/about/changelog/v1.1.0.md similarity index 96% rename from docs/website/content/about/changelog/v1.1.0.md rename to docs/website/content/en/about/changelog/v1.1.0.md index 72c78fcf2..060f5769b 100644 --- a/docs/website/content/about/changelog/v1.1.0.md +++ b/docs/website/content/en/about/changelog/v1.1.0.md @@ -1,6 +1,6 @@ --- title: v1.1.0 (28 March 2024) -weight: 2 +weight: 3 --- ## Authentication @@ -53,7 +53,7 @@ field of the recipes. Now, you can choose either **By name** or **Full search**. Application data is now backed up automatically every third day. It is possible to restore a previous backup. -Please consult the [features tour](/guide/docs/features/backups) for more information. +Please consult the [features tour](/guide/en/docs/features/backups) for more information. ### Directory @@ -152,7 +152,7 @@ The default is by order of insertion into the database. ## Reports Reports are generated after importing recipes. They are accessible from the /reports endpoint. -Please consult the [features tour](/guide/docs/features/reports) for more information. +Please consult the [features tour](/guide/en/docs/features/reports) for more information. ## Scraper diff --git a/docs/website/content/about/changelog/v1.2.0.md b/docs/website/content/en/about/changelog/v1.2.0.md similarity index 99% rename from docs/website/content/about/changelog/v1.2.0.md rename to docs/website/content/en/about/changelog/v1.2.0.md index 83e67d29d..147cd5f59 100644 --- a/docs/website/content/about/changelog/v1.2.0.md +++ b/docs/website/content/en/about/changelog/v1.2.0.md @@ -1,11 +1,11 @@ --- title: v1.2.0 (16 July 2024) -weight: 1 +weight: 2 --- ## Added -- 🔍 **Advanced search**: The advanced search lets you tweak your search query for the desired results. Please consult the [docs](/docs/features/recipes/search/) to learn how to use it. +- 🔍 **Advanced search**: The advanced search lets you tweak your search query for the desired results. Please consult the [docs](guide/en/docs/features/recipes/search/) to learn how to use it. - đŸŽ© **Configuration**: Added the ability to change most of the fields in the configuration file from the UI under the settings page. - đŸ–±ïž **Filter by category**: It is now possible to click the category of a recipe from the home page to display all recipes with the same category. - đŸȘ” **Logs**: A logging mechanism has been introduced using [log/slog](https://pkg.go.dev/log/slog). The logs are stored diff --git a/docs/website/content/about/changelog/v1.3.0.md b/docs/website/content/en/about/changelog/v1.3.0.md similarity index 82% rename from docs/website/content/about/changelog/v1.3.0.md rename to docs/website/content/en/about/changelog/v1.3.0.md index 9f06691f6..fb3a409af 100644 --- a/docs/website/content/about/changelog/v1.3.0.md +++ b/docs/website/content/en/about/changelog/v1.3.0.md @@ -1,5 +1,5 @@ --- -title: v1.2.0 (16 July 2024) +title: v1.3.0 (TBD) weight: 1 --- @@ -7,6 +7,7 @@ weight: 1 - [EMOJI] **Bypass Guide option**: You may now bypass the guide and go straight to the login page when anonymous by setting the `server.bypassGuide` configuration variable or the `RECIPYA_SERVER_BYPASS_GUIDE` environment variable to `true`. You may also do so from the settings. - [EMOJI] **Share**: It's now possible to share to multiple installed apps, e.g. WhatsApp, Gmail and Telegram. +- [EMOJI] **Docs translations**: The documentation has been translated to French. ## Fixed diff --git a/docs/website/content/about/coc.md b/docs/website/content/en/about/coc.md similarity index 100% rename from docs/website/content/about/coc.md rename to docs/website/content/en/about/coc.md diff --git a/docs/website/content/about/community-guide.md b/docs/website/content/en/about/community-guide.md similarity index 100% rename from docs/website/content/about/community-guide.md rename to docs/website/content/en/about/community-guide.md diff --git a/docs/website/content/about/credits.md b/docs/website/content/en/about/credits.md similarity index 100% rename from docs/website/content/about/credits.md rename to docs/website/content/en/about/credits.md diff --git a/docs/website/content/about/roadmap.md b/docs/website/content/en/about/roadmap.md similarity index 100% rename from docs/website/content/about/roadmap.md rename to docs/website/content/en/about/roadmap.md diff --git a/docs/website/content/blog/2023-08-26-welcome.md b/docs/website/content/en/blog/2023-08-26-welcome.md similarity index 100% rename from docs/website/content/blog/2023-08-26-welcome.md rename to docs/website/content/en/blog/2023-08-26-welcome.md diff --git a/docs/website/content/blog/2024-01-02-launch.md b/docs/website/content/en/blog/2024-01-02-launch.md similarity index 100% rename from docs/website/content/blog/2024-01-02-launch.md rename to docs/website/content/en/blog/2024-01-02-launch.md diff --git a/docs/website/content/blog/2024-03-28-v1.1.md b/docs/website/content/en/blog/2024-03-28-v1.1.md similarity index 100% rename from docs/website/content/blog/2024-03-28-v1.1.md rename to docs/website/content/en/blog/2024-03-28-v1.1.md diff --git a/docs/website/content/blog/2024-07-16-v1.2.0.md b/docs/website/content/en/blog/2024-07-16-v1.2.0.md similarity index 100% rename from docs/website/content/blog/2024-07-16-v1.2.0.md rename to docs/website/content/en/blog/2024-07-16-v1.2.0.md diff --git a/docs/website/content/blog/_index.md b/docs/website/content/en/blog/_index.md similarity index 100% rename from docs/website/content/blog/_index.md rename to docs/website/content/en/blog/_index.md diff --git a/docs/website/content/blog/authors.yml b/docs/website/content/en/blog/authors.yml similarity index 100% rename from docs/website/content/blog/authors.yml rename to docs/website/content/en/blog/authors.yml diff --git a/docs/website/content/docs/_index.md b/docs/website/content/en/docs/_index.md similarity index 100% rename from docs/website/content/docs/_index.md rename to docs/website/content/en/docs/_index.md diff --git a/docs/website/content/docs/deployment/_index.md b/docs/website/content/en/docs/deployment/_index.md similarity index 100% rename from docs/website/content/docs/deployment/_index.md rename to docs/website/content/en/docs/deployment/_index.md diff --git a/docs/website/content/docs/deployment/internet.md b/docs/website/content/en/docs/deployment/internet.md similarity index 100% rename from docs/website/content/docs/deployment/internet.md rename to docs/website/content/en/docs/deployment/internet.md diff --git a/docs/website/content/docs/deployment/local-network.md b/docs/website/content/en/docs/deployment/local-network.md similarity index 100% rename from docs/website/content/docs/deployment/local-network.md rename to docs/website/content/en/docs/deployment/local-network.md diff --git a/docs/website/content/docs/development/_index.md b/docs/website/content/en/docs/development/_index.md similarity index 100% rename from docs/website/content/docs/development/_index.md rename to docs/website/content/en/docs/development/_index.md diff --git a/docs/website/content/docs/development/build.md b/docs/website/content/en/docs/development/build.md similarity index 100% rename from docs/website/content/docs/development/build.md rename to docs/website/content/en/docs/development/build.md diff --git a/docs/website/content/docs/development/devcontainer.md b/docs/website/content/en/docs/development/devcontainer.md similarity index 100% rename from docs/website/content/docs/development/devcontainer.md rename to docs/website/content/en/docs/development/devcontainer.md diff --git a/docs/website/content/docs/development/intro.md b/docs/website/content/en/docs/development/intro.md similarity index 100% rename from docs/website/content/docs/development/intro.md rename to docs/website/content/en/docs/development/intro.md diff --git a/docs/website/content/docs/development/test.md b/docs/website/content/en/docs/development/test.md similarity index 100% rename from docs/website/content/docs/development/test.md rename to docs/website/content/en/docs/development/test.md diff --git a/docs/website/content/docs/development/workflow/_index.md b/docs/website/content/en/docs/development/workflow/_index.md similarity index 100% rename from docs/website/content/docs/development/workflow/_index.md rename to docs/website/content/en/docs/development/workflow/_index.md diff --git a/docs/website/content/docs/development/workflow/add-endpoint.md b/docs/website/content/en/docs/development/workflow/add-endpoint.md similarity index 100% rename from docs/website/content/docs/development/workflow/add-endpoint.md rename to docs/website/content/en/docs/development/workflow/add-endpoint.md diff --git a/docs/website/content/docs/development/workflow/import-website.md b/docs/website/content/en/docs/development/workflow/import-website.md similarity index 100% rename from docs/website/content/docs/development/workflow/import-website.md rename to docs/website/content/en/docs/development/workflow/import-website.md diff --git a/docs/website/content/docs/features/_index.md b/docs/website/content/en/docs/features/_index.md similarity index 100% rename from docs/website/content/docs/features/_index.md rename to docs/website/content/en/docs/features/_index.md diff --git a/docs/website/content/docs/features/admin.md b/docs/website/content/en/docs/features/admin.md similarity index 100% rename from docs/website/content/docs/features/admin.md rename to docs/website/content/en/docs/features/admin.md diff --git a/docs/website/content/docs/features/backups.md b/docs/website/content/en/docs/features/backups.md similarity index 98% rename from docs/website/content/docs/features/backups.md rename to docs/website/content/en/docs/features/backups.md index 2a3d2f9c5..4a5506a9b 100644 --- a/docs/website/content/docs/features/backups.md +++ b/docs/website/content/en/docs/features/backups.md @@ -77,7 +77,7 @@ Restoring a global backup is done only by the one who has access to the server. 2. Navigate to `path/to/recipya/data/Backup/global/` 3. Unzip the backup you wish to restore 4. Replace the content under `path/to/recipya/data/*` with the one from the unzipped backup -5. If applicable, delete `path/to/recipya/data/Database/recipya.db-shm` and `path/to/recipya/data/Database/recipya.db-wal +5. If applicable, delete `path/to/recipya/data/Database/recipya.db-shm` and `path/to/recipya/data/Database/recipya.db-wal` 6. Start the application ### User diff --git a/docs/website/content/docs/features/cookbooks/_index.md b/docs/website/content/en/docs/features/cookbooks/_index.md similarity index 100% rename from docs/website/content/docs/features/cookbooks/_index.md rename to docs/website/content/en/docs/features/cookbooks/_index.md diff --git a/docs/website/content/docs/features/cookbooks/add.md b/docs/website/content/en/docs/features/cookbooks/add.md similarity index 100% rename from docs/website/content/docs/features/cookbooks/add.md rename to docs/website/content/en/docs/features/cookbooks/add.md diff --git a/docs/website/content/docs/features/cookbooks/delete.md b/docs/website/content/en/docs/features/cookbooks/delete.md similarity index 93% rename from docs/website/content/docs/features/cookbooks/delete.md rename to docs/website/content/en/docs/features/cookbooks/delete.md index adac24ab6..c9f51901d 100644 --- a/docs/website/content/docs/features/cookbooks/delete.md +++ b/docs/website/content/en/docs/features/cookbooks/delete.md @@ -1,6 +1,7 @@ --- title: Delete weight: 4 +next: /docs/features/measurement-systems --- To delete a cookbook from your collection, first click the three vertical dots at the top right of diff --git a/docs/website/content/docs/features/cookbooks/download.md b/docs/website/content/en/docs/features/cookbooks/download.md similarity index 100% rename from docs/website/content/docs/features/cookbooks/download.md rename to docs/website/content/en/docs/features/cookbooks/download.md diff --git a/docs/website/content/docs/features/cookbooks/edit.md b/docs/website/content/en/docs/features/cookbooks/edit.md similarity index 100% rename from docs/website/content/docs/features/cookbooks/edit.md rename to docs/website/content/en/docs/features/cookbooks/edit.md diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-add.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-add.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-add.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-add.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-delete-aftermath.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-delete-aftermath.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-delete-aftermath.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-delete-aftermath.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-delete.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-delete.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-delete.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-delete.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-download.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-download.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-download.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-download.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-no-recipes.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-no-recipes.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-no-recipes.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-no-recipes.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-recipe-added.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-recipe-added.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-recipe-added.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-recipe-added.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-recipes-after-reorder.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-recipes-after-reorder.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-recipes-after-reorder.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-recipes-after-reorder.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-recipes-before-reorder.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-recipes-before-reorder.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-recipes-before-reorder.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-recipes-before-reorder.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-search-results-add.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-search-results-add.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-search-results-add.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-search-results-add.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-share-anonymous.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-share-anonymous.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-share-anonymous.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-share-anonymous.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-share-link.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-share-link.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-share-link.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-share-link.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbook-share.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbook-share.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbook-share.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbook-share.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbooks-grid-mode.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbooks-grid-mode.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbooks-grid-mode.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbooks-grid-mode.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbooks-grid.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbooks-grid.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbooks-grid.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbooks-grid.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbooks-list.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbooks-list.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbooks-list.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbooks-list.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbooks-update-image.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbooks-update-image.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbooks-update-image.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbooks-update-image.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbooks-updated-image.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbooks-updated-image.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbooks-updated-image.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbooks-updated-image.webp diff --git a/docs/website/content/docs/features/cookbooks/images/cookbooks-view.webp b/docs/website/content/en/docs/features/cookbooks/images/cookbooks-view.webp similarity index 100% rename from docs/website/content/docs/features/cookbooks/images/cookbooks-view.webp rename to docs/website/content/en/docs/features/cookbooks/images/cookbooks-view.webp diff --git a/docs/website/content/docs/features/cookbooks/share.md b/docs/website/content/en/docs/features/cookbooks/share.md similarity index 93% rename from docs/website/content/docs/features/cookbooks/share.md rename to docs/website/content/en/docs/features/cookbooks/share.md index d8363c333..455172e93 100644 --- a/docs/website/content/docs/features/cookbooks/share.md +++ b/docs/website/content/en/docs/features/cookbooks/share.md @@ -1,7 +1,6 @@ --- title: Share weight: 5 -next: /docs/features/measurement-systems --- You can share a cookbook to your family and friends. To do so, you must first generate the cookbook's share diff --git a/docs/website/content/docs/features/export-data.md b/docs/website/content/en/docs/features/export-data.md similarity index 100% rename from docs/website/content/docs/features/export-data.md rename to docs/website/content/en/docs/features/export-data.md diff --git a/docs/website/content/docs/features/images/admin-access.webp b/docs/website/content/en/docs/features/images/admin-access.webp similarity index 100% rename from docs/website/content/docs/features/images/admin-access.webp rename to docs/website/content/en/docs/features/images/admin-access.webp diff --git a/docs/website/content/docs/features/images/admin-overview.webp b/docs/website/content/en/docs/features/images/admin-overview.webp similarity index 100% rename from docs/website/content/docs/features/images/admin-overview.webp rename to docs/website/content/en/docs/features/images/admin-overview.webp diff --git a/docs/website/content/docs/features/images/reports-access-after.webp b/docs/website/content/en/docs/features/images/reports-access-after.webp similarity index 100% rename from docs/website/content/docs/features/images/reports-access-after.webp rename to docs/website/content/en/docs/features/images/reports-access-after.webp diff --git a/docs/website/content/docs/features/images/reports-access.webp b/docs/website/content/en/docs/features/images/reports-access.webp similarity index 100% rename from docs/website/content/docs/features/images/reports-access.webp rename to docs/website/content/en/docs/features/images/reports-access.webp diff --git a/docs/website/content/docs/features/images/reports-errors.webp b/docs/website/content/en/docs/features/images/reports-errors.webp similarity index 100% rename from docs/website/content/docs/features/images/reports-errors.webp rename to docs/website/content/en/docs/features/images/reports-errors.webp diff --git a/docs/website/content/docs/features/images/reports-fresh.webp b/docs/website/content/en/docs/features/images/reports-fresh.webp similarity index 100% rename from docs/website/content/docs/features/images/reports-fresh.webp rename to docs/website/content/en/docs/features/images/reports-fresh.webp diff --git a/docs/website/content/docs/features/images/reports-latest.webp b/docs/website/content/en/docs/features/images/reports-latest.webp similarity index 100% rename from docs/website/content/docs/features/images/reports-latest.webp rename to docs/website/content/en/docs/features/images/reports-latest.webp diff --git a/docs/website/content/docs/features/images/settings-access.webp b/docs/website/content/en/docs/features/images/settings-access.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-access.webp rename to docs/website/content/en/docs/features/images/settings-access.webp diff --git a/docs/website/content/docs/features/images/settings-convert-automatically.webp b/docs/website/content/en/docs/features/images/settings-convert-automatically.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-convert-automatically.webp rename to docs/website/content/en/docs/features/images/settings-convert-automatically.webp diff --git a/docs/website/content/docs/features/images/settings-export.webp b/docs/website/content/en/docs/features/images/settings-export.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-export.webp rename to docs/website/content/en/docs/features/images/settings-export.webp diff --git a/docs/website/content/docs/features/images/settings-integrations-nextcloud.webp b/docs/website/content/en/docs/features/images/settings-integrations-nextcloud.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-integrations-nextcloud.webp rename to docs/website/content/en/docs/features/images/settings-integrations-nextcloud.webp diff --git a/docs/website/content/docs/features/images/settings-integrations.webp b/docs/website/content/en/docs/features/images/settings-integrations.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-integrations.webp rename to docs/website/content/en/docs/features/images/settings-integrations.webp diff --git a/docs/website/content/docs/features/images/settings-measurement-system.webp b/docs/website/content/en/docs/features/images/settings-measurement-system.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-measurement-system.webp rename to docs/website/content/en/docs/features/images/settings-measurement-system.webp diff --git a/docs/website/content/docs/features/images/settings-nutrition-facts.webp b/docs/website/content/en/docs/features/images/settings-nutrition-facts.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-nutrition-facts.webp rename to docs/website/content/en/docs/features/images/settings-nutrition-facts.webp diff --git a/docs/website/content/docs/features/images/settings-restore-backup.webp b/docs/website/content/en/docs/features/images/settings-restore-backup.webp similarity index 100% rename from docs/website/content/docs/features/images/settings-restore-backup.webp rename to docs/website/content/en/docs/features/images/settings-restore-backup.webp diff --git a/docs/website/content/docs/features/images/update-available.webp b/docs/website/content/en/docs/features/images/update-available.webp similarity index 100% rename from docs/website/content/docs/features/images/update-available.webp rename to docs/website/content/en/docs/features/images/update-available.webp diff --git a/docs/website/content/docs/features/images/update-button.webp b/docs/website/content/en/docs/features/images/update-button.webp similarity index 100% rename from docs/website/content/docs/features/images/update-button.webp rename to docs/website/content/en/docs/features/images/update-button.webp diff --git a/docs/website/content/docs/features/images/update-success-restart.webp b/docs/website/content/en/docs/features/images/update-success-restart.webp similarity index 100% rename from docs/website/content/docs/features/images/update-success-restart.webp rename to docs/website/content/en/docs/features/images/update-success-restart.webp diff --git a/docs/website/content/docs/features/integrations.md b/docs/website/content/en/docs/features/integrations.md similarity index 99% rename from docs/website/content/docs/features/integrations.md rename to docs/website/content/en/docs/features/integrations.md index 6950c2f90..83a23d8d1 100644 --- a/docs/website/content/docs/features/integrations.md +++ b/docs/website/content/en/docs/features/integrations.md @@ -1,7 +1,7 @@ --- title: Integrations weight: 4 -next: /docs/installation +next: /docs/measurement-system --- Recipya offers data import integrations with other recipe manager applications. diff --git a/docs/website/content/docs/features/measurement-systems.md b/docs/website/content/en/docs/features/measurement-systems.md similarity index 100% rename from docs/website/content/docs/features/measurement-systems.md rename to docs/website/content/en/docs/features/measurement-systems.md diff --git a/docs/website/content/docs/features/nutrition-facts.md b/docs/website/content/en/docs/features/nutrition-facts.md similarity index 100% rename from docs/website/content/docs/features/nutrition-facts.md rename to docs/website/content/en/docs/features/nutrition-facts.md diff --git a/docs/website/content/docs/features/recipes/_index.md b/docs/website/content/en/docs/features/recipes/_index.md similarity index 100% rename from docs/website/content/docs/features/recipes/_index.md rename to docs/website/content/en/docs/features/recipes/_index.md diff --git a/docs/website/content/docs/features/recipes/add.md b/docs/website/content/en/docs/features/recipes/add.md similarity index 100% rename from docs/website/content/docs/features/recipes/add.md rename to docs/website/content/en/docs/features/recipes/add.md diff --git a/docs/website/content/docs/features/recipes/categories.md b/docs/website/content/en/docs/features/recipes/categories.md similarity index 87% rename from docs/website/content/docs/features/recipes/categories.md rename to docs/website/content/en/docs/features/recipes/categories.md index c40c0cb94..94c84dcb9 100644 --- a/docs/website/content/docs/features/recipes/categories.md +++ b/docs/website/content/en/docs/features/recipes/categories.md @@ -1,7 +1,6 @@ --- -title: Wakelock +title: Categories weight: 8 -next: /docs/features/cookbooks --- You can manage your categories from the **Categories** option in the **Recipes** tab of the settings. diff --git a/docs/website/content/docs/features/recipes/delete.md b/docs/website/content/en/docs/features/recipes/delete.md similarity index 100% rename from docs/website/content/docs/features/recipes/delete.md rename to docs/website/content/en/docs/features/recipes/delete.md diff --git a/docs/website/content/docs/features/recipes/edit.md b/docs/website/content/en/docs/features/recipes/edit.md similarity index 100% rename from docs/website/content/docs/features/recipes/edit.md rename to docs/website/content/en/docs/features/recipes/edit.md diff --git a/docs/website/content/docs/features/recipes/images/add-recipe-import.webp b/docs/website/content/en/docs/features/recipes/images/add-recipe-import.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/add-recipe-import.webp rename to docs/website/content/en/docs/features/recipes/images/add-recipe-import.webp diff --git a/docs/website/content/docs/features/recipes/images/add-recipe-manual.webp b/docs/website/content/en/docs/features/recipes/images/add-recipe-manual.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/add-recipe-manual.webp rename to docs/website/content/en/docs/features/recipes/images/add-recipe-manual.webp diff --git a/docs/website/content/docs/features/recipes/images/add-recipe-options.webp b/docs/website/content/en/docs/features/recipes/images/add-recipe-options.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/add-recipe-options.webp rename to docs/website/content/en/docs/features/recipes/images/add-recipe-options.webp diff --git a/docs/website/content/docs/features/recipes/images/add-recipe-scan.webp b/docs/website/content/en/docs/features/recipes/images/add-recipe-scan.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/add-recipe-scan.webp rename to docs/website/content/en/docs/features/recipes/images/add-recipe-scan.webp diff --git a/docs/website/content/docs/features/recipes/images/add-recipe-website.gif b/docs/website/content/en/docs/features/recipes/images/add-recipe-website.gif similarity index 100% rename from docs/website/content/docs/features/recipes/images/add-recipe-website.gif rename to docs/website/content/en/docs/features/recipes/images/add-recipe-website.gif diff --git a/docs/website/content/docs/features/recipes/images/add-recipe.webp b/docs/website/content/en/docs/features/recipes/images/add-recipe.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/add-recipe.webp rename to docs/website/content/en/docs/features/recipes/images/add-recipe.webp diff --git a/docs/website/content/docs/features/recipes/images/delete-recipe.webp b/docs/website/content/en/docs/features/recipes/images/delete-recipe.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/delete-recipe.webp rename to docs/website/content/en/docs/features/recipes/images/delete-recipe.webp diff --git a/docs/website/content/docs/features/recipes/images/edit-recipe-enter.webp b/docs/website/content/en/docs/features/recipes/images/edit-recipe-enter.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/edit-recipe-enter.webp rename to docs/website/content/en/docs/features/recipes/images/edit-recipe-enter.webp diff --git a/docs/website/content/docs/features/recipes/images/edit-recipe.webp b/docs/website/content/en/docs/features/recipes/images/edit-recipe.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/edit-recipe.webp rename to docs/website/content/en/docs/features/recipes/images/edit-recipe.webp diff --git a/docs/website/content/docs/features/recipes/images/print-dialog.webp b/docs/website/content/en/docs/features/recipes/images/print-dialog.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/print-dialog.webp rename to docs/website/content/en/docs/features/recipes/images/print-dialog.webp diff --git a/docs/website/content/docs/features/recipes/images/print-icon.webp b/docs/website/content/en/docs/features/recipes/images/print-icon.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/print-icon.webp rename to docs/website/content/en/docs/features/recipes/images/print-icon.webp diff --git a/docs/website/content/docs/features/recipes/images/recipes-categories.webp b/docs/website/content/en/docs/features/recipes/images/recipes-categories.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/recipes-categories.webp rename to docs/website/content/en/docs/features/recipes/images/recipes-categories.webp diff --git a/docs/website/content/docs/features/recipes/images/recipes-search-help.webp b/docs/website/content/en/docs/features/recipes/images/recipes-search-help.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/recipes-search-help.webp rename to docs/website/content/en/docs/features/recipes/images/recipes-search-help.webp diff --git a/docs/website/content/docs/features/recipes/images/recipes-search-query.webp b/docs/website/content/en/docs/features/recipes/images/recipes-search-query.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/recipes-search-query.webp rename to docs/website/content/en/docs/features/recipes/images/recipes-search-query.webp diff --git a/docs/website/content/docs/features/recipes/images/recipes-search-view.webp b/docs/website/content/en/docs/features/recipes/images/recipes-search-view.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/recipes-search-view.webp rename to docs/website/content/en/docs/features/recipes/images/recipes-search-view.webp diff --git a/docs/website/content/docs/features/recipes/images/recipya-bookmarklet.gif b/docs/website/content/en/docs/features/recipes/images/recipya-bookmarklet.gif similarity index 100% rename from docs/website/content/docs/features/recipes/images/recipya-bookmarklet.gif rename to docs/website/content/en/docs/features/recipes/images/recipya-bookmarklet.gif diff --git a/docs/website/content/docs/features/recipes/images/search-settings.webp b/docs/website/content/en/docs/features/recipes/images/search-settings.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/search-settings.webp rename to docs/website/content/en/docs/features/recipes/images/search-settings.webp diff --git a/docs/website/content/docs/features/recipes/images/sharing-dialog.webp b/docs/website/content/en/docs/features/recipes/images/sharing-dialog.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/sharing-dialog.webp rename to docs/website/content/en/docs/features/recipes/images/sharing-dialog.webp diff --git a/docs/website/content/docs/features/recipes/images/sharing-icon.webp b/docs/website/content/en/docs/features/recipes/images/sharing-icon.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/sharing-icon.webp rename to docs/website/content/en/docs/features/recipes/images/sharing-icon.webp diff --git a/docs/website/content/docs/features/recipes/images/view-recipe-enter.webp b/docs/website/content/en/docs/features/recipes/images/view-recipe-enter.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/view-recipe-enter.webp rename to docs/website/content/en/docs/features/recipes/images/view-recipe-enter.webp diff --git a/docs/website/content/docs/features/recipes/images/view-recipe-scale.webp b/docs/website/content/en/docs/features/recipes/images/view-recipe-scale.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/view-recipe-scale.webp rename to docs/website/content/en/docs/features/recipes/images/view-recipe-scale.webp diff --git a/docs/website/content/docs/features/recipes/images/view-recipe.webp b/docs/website/content/en/docs/features/recipes/images/view-recipe.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/view-recipe.webp rename to docs/website/content/en/docs/features/recipes/images/view-recipe.webp diff --git a/docs/website/content/docs/features/recipes/images/wakelock-off.webp b/docs/website/content/en/docs/features/recipes/images/wakelock-off.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/wakelock-off.webp rename to docs/website/content/en/docs/features/recipes/images/wakelock-off.webp diff --git a/docs/website/content/docs/features/recipes/images/wakelock-on.webp b/docs/website/content/en/docs/features/recipes/images/wakelock-on.webp similarity index 100% rename from docs/website/content/docs/features/recipes/images/wakelock-on.webp rename to docs/website/content/en/docs/features/recipes/images/wakelock-on.webp diff --git a/docs/website/content/docs/features/recipes/print.md b/docs/website/content/en/docs/features/recipes/print.md similarity index 100% rename from docs/website/content/docs/features/recipes/print.md rename to docs/website/content/en/docs/features/recipes/print.md diff --git a/docs/website/content/docs/features/recipes/search.md b/docs/website/content/en/docs/features/recipes/search.md similarity index 100% rename from docs/website/content/docs/features/recipes/search.md rename to docs/website/content/en/docs/features/recipes/search.md diff --git a/docs/website/content/docs/features/recipes/share.md b/docs/website/content/en/docs/features/recipes/share.md similarity index 100% rename from docs/website/content/docs/features/recipes/share.md rename to docs/website/content/en/docs/features/recipes/share.md diff --git a/docs/website/content/docs/features/recipes/view.md b/docs/website/content/en/docs/features/recipes/view.md similarity index 100% rename from docs/website/content/docs/features/recipes/view.md rename to docs/website/content/en/docs/features/recipes/view.md diff --git a/docs/website/content/docs/features/recipes/wakelock.md b/docs/website/content/en/docs/features/recipes/wakelock.md similarity index 97% rename from docs/website/content/docs/features/recipes/wakelock.md rename to docs/website/content/en/docs/features/recipes/wakelock.md index f16cd1088..adffee959 100644 --- a/docs/website/content/docs/features/recipes/wakelock.md +++ b/docs/website/content/en/docs/features/recipes/wakelock.md @@ -1,6 +1,7 @@ --- title: Wakelock weight: 8 +next: /docs/features/cookbooks --- Imagine you are cooking a recipe from a mobile device. You gather all the ingredients, and you are ready to start, diff --git a/docs/website/content/docs/features/reports.md b/docs/website/content/en/docs/features/reports.md similarity index 100% rename from docs/website/content/docs/features/reports.md rename to docs/website/content/en/docs/features/reports.md diff --git a/docs/website/content/docs/features/updater.md b/docs/website/content/en/docs/features/updater.md similarity index 98% rename from docs/website/content/docs/features/updater.md rename to docs/website/content/en/docs/features/updater.md index a8e099139..2dad948df 100644 --- a/docs/website/content/docs/features/updater.md +++ b/docs/website/content/en/docs/features/updater.md @@ -17,6 +17,6 @@ Finally, click the `Update` button. ![](images/update-button.webp) -On success, the application will reload automatically after five secconds. +On success, the application will reload automatically after five seconds. ![](images/update-success-restart.webp) diff --git a/docs/website/content/docs/installation/_index.md b/docs/website/content/en/docs/installation/_index.md similarity index 100% rename from docs/website/content/docs/installation/_index.md rename to docs/website/content/en/docs/installation/_index.md diff --git a/docs/website/content/docs/installation/build/Install.md b/docs/website/content/en/docs/installation/build/Install.md similarity index 94% rename from docs/website/content/docs/installation/build/Install.md rename to docs/website/content/en/docs/installation/build/Install.md index 48aa5411e..bbde8c693 100644 --- a/docs/website/content/docs/installation/build/Install.md +++ b/docs/website/content/en/docs/installation/build/Install.md @@ -17,14 +17,14 @@ Then, start the server by opening a command prompt in the folder, and run the fo The application will perform a one-time setup if not already done. ```bash -./recipya-{os}-{architecture} serve +./recipya serve ``` You can now access the website at the address specified. ## Example -Let's say you have a Windows 11 computer, and you want to install Recipya v1.0.0 on it. +Let's say you have a Windows 11 computer, and you want to install Recipya v1.2.0 on it. {{% steps %}} @@ -34,7 +34,7 @@ You would first access the [releases page](https://github.com/reaper47/recipya/r ### Download -Identify version `v1.0.0` and download `recipya-windows-amd64.zip` under the **Assets** section. +Identify version `v1.2.0` and download `recipya-windows-amd64.zip` under the **Assets** section. ### Extract diff --git a/docs/website/content/docs/installation/build/_index.md b/docs/website/content/en/docs/installation/build/_index.md similarity index 100% rename from docs/website/content/docs/installation/build/_index.md rename to docs/website/content/en/docs/installation/build/_index.md diff --git a/docs/website/content/docs/installation/build/config-file.md b/docs/website/content/en/docs/installation/build/config-file.md similarity index 53% rename from docs/website/content/docs/installation/build/config-file.md rename to docs/website/content/en/docs/installation/build/config-file.md index a99280c0d..f080096ae 100644 --- a/docs/website/content/docs/installation/build/config-file.md +++ b/docs/website/content/en/docs/installation/build/config-file.md @@ -25,12 +25,3 @@ The admin may change most of these options from the settings. - **noSignups**: Whether to disable user account registrations. Set to `true` when you don't want people to create accounts. Default: `false`. - **port**: The port the app will be served through if localhost. __Is required__. - **url**: The website the app is served on. This URL will serve as the base link in the emails. Default: `http://0.0.0.0`. - -### Deprecations - -The following table lists deprecated environment variables in v1.2.0. They will be removed in v1.3.0. - -| Variable | Reason | -|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **integrations.azureComputerVision.resourceKey** | Replaced the use of [Azure AI Vision](https://azure.microsoft.com/en-us/products/ai-services/ai-vision) to digitize recipes in favor of [Azure AI Document Intelligence](https://azure.microsoft.com/en-us/products/ai-services/ai-document-intelligence). | -| **integrations.azureComputerVision.visionEndpoint** | Same as above. | | diff --git a/docs/website/content/docs/installation/docker.md b/docs/website/content/en/docs/installation/docker.md similarity index 100% rename from docs/website/content/docs/installation/docker.md rename to docs/website/content/en/docs/installation/docker.md diff --git a/docs/website/content/docs/installation/integrations.md b/docs/website/content/en/docs/installation/integrations.md similarity index 100% rename from docs/website/content/docs/installation/integrations.md rename to docs/website/content/en/docs/installation/integrations.md diff --git a/docs/website/content/docs/installation/system-requirements.md b/docs/website/content/en/docs/installation/system-requirements.md similarity index 100% rename from docs/website/content/docs/installation/system-requirements.md rename to docs/website/content/en/docs/installation/system-requirements.md diff --git a/docs/website/content/docs/installation/windows-users.md b/docs/website/content/en/docs/installation/windows-users.md similarity index 88% rename from docs/website/content/docs/installation/windows-users.md rename to docs/website/content/en/docs/installation/windows-users.md index 52c5be997..c80d4c818 100644 --- a/docs/website/content/docs/installation/windows-users.md +++ b/docs/website/content/en/docs/installation/windows-users.md @@ -1,7 +1,7 @@ --- title: Windows Users weight: 4 -next: /docs/deployment +next: /docs/integrations --- Please follow these [instructions](/guide/docs/installation/build/) to install Recipya without Docker. @@ -20,7 +20,7 @@ If you intend to access the website on other devices within your home network, p ## Windows Defender -If you executed the `recipya-windows-{arch}.exe` binary from the GitHub releases page and Windows Defender quarantined the +If you executed the `recipya.exe` binary from the GitHub releases page and Windows Defender quarantined the executable, then you should add the folder or file to the exclusion list. This happens because the builds are not signed yet. 1. Unzip a fresh instance of the build. diff --git a/docs/website/content/fr/_index.md b/docs/website/content/fr/_index.md new file mode 100644 index 000000000..21fc1731f --- /dev/null +++ b/docs/website/content/fr/_index.md @@ -0,0 +1,85 @@ +--- +title: Recipya +layout: hextra-home +--- + +
+{{< hextra/hero-headline >}} + Recipya +{{< /hextra/hero-headline >}} +
+ +
+{{< hextra/hero-subtitle >}} + Un gestionnaire de recettes propre, simple et puissant dont toute la famille aimera. +{{< /hextra/hero-subtitle >}} +
+ +
+{{< hextra/hero-button text="Commencer" link="docs" style="margin-right: 0.5rem" >}} +{{< hextra/hero-button text="Ouvrir l'application" link="/guide/fr/auth/login" style="background-color: rgb(139 92 246)">}} +
+ +{{< hextra/feature-grid >}} +{{< hextra/feature-card + title="Collectionner des recettes" + subtitle="Importez sans effort vos recettes prĂ©fĂ©rĂ©es sur le Web, numĂ©risez les recettes papier et ajoutez des recettes manuellement." + class="hxaspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="/images/curate.webp" + imageClass="small hx-w-[180%] hx-left-[36px] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));" + >}} +{{< hextra/feature-card + title="Un systĂšme de mesures" + subtitle="Toutes vos recettes peuvent ĂȘtre converties vers votre systĂšme de mesure prĂ©fĂ©rĂ©. Dites au revoir Ă  l'impĂ©rial ou au mĂ©trique." + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-lg:hx-min-h-[340px]" + image="/images/view-recipe.webp" + imageClass="small hx-w-[110%] sm:hx-w-[110%] dark:hx-opacity-80" + icon="globe" + style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));" + >}} +{{< hextra/feature-card + title="Auto-hĂ©bergable" + subtitle="Auto-hĂ©bergez facilement le logiciel sur votre serveur avec Docker." + icon="desktop-computer" + class="hx-aspect-auto md:hx-aspect-[1.1/1] max-md:hx-min-h-[340px]" + image="/images/devices.svg" + imageClass="small hx-w-[110%] sm:hx-w-[110%] dark:hx-opacity-80" + style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));" + >}} +{{< hextra/feature-card + title="Information nutritionnelle" + icon="information-circle" + subtitle="Laissez le logiciel calculer automatiquement les informations nutritionnelles lors de l'ajout de recettes." + >}} +{{< hextra/feature-card + title="IntĂ©grations" + icon="chip" + subtitle="Importez vos recettes Ă  partir de diffĂ©rentes solutions, telles que Mealie, Tandoor, Nextcloud Cookbook, MasterCook et Paprika." + >}} +{{< hextra/feature-card + title="Verrouillage de rĂ©veil" + icon="light-bulb" + subtitle="EmpĂȘchez votre appareil de se mettre en veille pendant l'affichage d'une recette." + >}} +{{< hextra/feature-card + title="Imprimer" + icon="printer" + subtitle="Imprimez n'importe quelle recette ou livre de cuisine de votre collection." + >}} +{{< hextra/feature-card + title="Adaptif" + icon="device-mobile" + subtitle="L'application a une bonne allure sur diffĂ©rentes tailles d'Ă©cran." + >}} +{{< hextra/feature-card + title="Compilation croisĂ©e" + icon="chip" + subtitle="Peut ĂȘtre installer sur Windows, Linux, and macOS." + >}} +{{< hextra/feature-card + title="Et beaucoup plus..." + icon="sparkles" + subtitle="Assurez-vous de ne pas nĂ©gliger la visite guidĂ©e des fonctionnalitĂ©s dans la documentation pour en savoir plus!" + >}} +{{< /hextra/feature-grid >}} diff --git a/docs/website/content/fr/about/_index.md b/docs/website/content/fr/about/_index.md new file mode 100644 index 000000000..edf5dc938 --- /dev/null +++ b/docs/website/content/fr/about/_index.md @@ -0,0 +1,71 @@ +--- +title: About +cascade: + type: docs +--- + +Un gestionnaire de recettes propre, simple et puissant dont toute la famille aimera. +Il est axĂ© sur la simplicitĂ© pour que toute la famille puisse en profiter. + +## Features + +- GĂ©rez vos recettes prĂ©fĂ©rĂ©es +- Importez des recettes du Web +- NumĂ©risez des recettes papier +- Organisez vos recettes dans des livres de cuisine +- Migrez facilement vos recettes depuis [Mealie](https://mealie.io), [Tandoor](https://tandoor.dev) et [Nextcloud Cookbook](https://apps.nextcloud.com/apps/cookbook) +- Conversion automatique vers votre systĂšme de mesure prĂ©fĂ©rĂ© (impĂ©rial/mĂ©trique) +- Calculez automatiquement les informations nutritionnelles +- Imprimez n'importe quelle recette de votre collection +- EmpĂȘchez votre appareil de se mettre en veille pendant que vous consultez une recette +- Suivez le thĂšme de votre systĂšme (clair/foncĂ©) +- Compilation croisĂ©e pour Windows, Linux et macOS + +## Mise en route + +Les instructions d'installation sont Ă©crites dans la [section installation](/guide/fr/docs/installation/) de la documentation. + +## Contribution + +Les contributions sont toujours les bienvenues ! Veuillez ouvrir un ticket, dĂ©marrer une [discussion](https://github.com/reaper47/recipya/discussions), ouvrir une pull request ou envoyer un e-mail Ă  macpoule@gmail.com. +Il en va de mĂȘme si vous avez des commentaires ou si vous avez besoin d'aide. + +Vous pouvez Ă©galement rejoindre notre canal de dĂ©veloppement et d'assistance sur +[l'espace Matrix: #recipya:matrix.org](https://app.element.io/#/room/#recipya:matrix.org). +Matrix est similaire Ă  Discord mais est open source. + +## Sponsors + +Je suis reconnaissant pour tout soutien qui m'aide Ă  continuer Ă  dĂ©velopper ce projet et Ă  l'hĂ©berger de maniĂšre fiable. Votre parrainage m'aidera +Ă  payer le plan SendGrid Essentials pour augmenter le nombre d'e-mails pouvant ĂȘtre envoyĂ©s. Le plan gratuit actuellement +utilisĂ© permet d'envoyer jusqu'Ă  100 e-mails par jour. + +Vous pouvez me sponsoriser sur +[GitHub Sponsors](https://github.com/sponsors/reaper47) ou +[Buy Me a Coffee](https://www.buymeacoffee.com/macpoule). + +Votre soutien est grandement apprĂ©ciĂ© ! Un tiers des dons sera envoyĂ© aux forces armĂ©es ukrainiennes đŸ‡ș🇩 + +## Autres applications de gestion de recettes + +- [Tandoor](https://github.com/TandoorRecipes/recipes) +- [Mealie](https://github.com/mealie-recipes/mealie) +- [Paprika](https://www.paprikaapp.com/) +- [Grocy](https://grocy.info/) +- [Cooklist](https://cooklist.com/) +- [Grossr](https://grossr.com/) +- [Awesome List](https://github.com/awesome-selfhosted/awesome-selfhosted#recipe-management) + +# Inspiration + +Ce projet a Ă©tĂ© principalement codĂ© en blastant les albums suivants: +- [Archspire - Bleed the Future](https://www.youtube.com/watch?v=o8H9ahswldM) +- [Sonata Arctica - Talviyö](https://www.youtube.com/watch?v=x6rEDMqM36I) +- [Cattle Decapitation - Terrasite](https://www.youtube.com/watch?v=x6rEDMqM36I) +- [Mozart - Requiem Dm](https://www.youtube.com/watch?v=pBGVfwOLU1w0) +- [Ensiferum - From Afar](https://www.youtube.com/watch?v=6r8OPu3SRSM) +- [Pain - You Only Live Twice](https://www.youtube.com/watch?v=obgCEoLzLs4) +- [Abysmal Dawn - Phylogenesis](https://www.youtube.com/watch?v=xJMybqRMedk&pp=ygUMYWJ5c21hbCBkYXdu) +- [Lofi Girl - lofi hip hop radio](https://www.youtube.com/watch?v=jfKfPfyJRdk) +- [Lofi Girl - synthwave radio](https://www.youtube.com/watch?v=4xDzrJKXOOY) +- [4am](https://www.youtube.com/watch?v=tBcPji_jRDc) diff --git a/docs/website/content/fr/about/changelog/_index.md b/docs/website/content/fr/about/changelog/_index.md new file mode 100644 index 000000000..ef418a5f1 --- /dev/null +++ b/docs/website/content/fr/about/changelog/_index.md @@ -0,0 +1,23 @@ +--- +title: Journal des modifications +cascade: + type: docs +weight: 1 +--- + +Aperçu des versions de Recipya. + +{{< cards >}} + {{< card link="/guide/fr/about/changelog/v1.2.0/" + title="v1.2.0" + subtitle="Afficher le journal des modifications pour la version 1.2.0." + icon="newspaper">}} + {{< card link="/guide/fr/about/changelog/v1.1.0/" + title="v1.1.0" + subtitle="Afficher le journal des modifications pour la version v1.1.0." + icon="newspaper">}} + {{< card link="/guide/fr/about/changelog/v1.0.1/" + title="v1.0.1" + subtitle="Afficher le journal des modifications pour la version v1.0.1." + icon="newspaper">}} +{{< /cards >}} diff --git a/docs/website/content/fr/about/changelog/images/v1.0.1/fixed-salmon.webp b/docs/website/content/fr/about/changelog/images/v1.0.1/fixed-salmon.webp new file mode 100644 index 000000000..3c455cf54 Binary files /dev/null and b/docs/website/content/fr/about/changelog/images/v1.0.1/fixed-salmon.webp differ diff --git a/docs/website/content/fr/about/changelog/v1.0.1.md b/docs/website/content/fr/about/changelog/v1.0.1.md new file mode 100644 index 000000000..0621b6152 --- /dev/null +++ b/docs/website/content/fr/about/changelog/v1.0.1.md @@ -0,0 +1,53 @@ +--- +title: v1.0.1 (11 January 2024) +weight: 4 +--- + +## Authentification + +Les utilisateurs peuvent dĂ©sormais se connecter lorsque la clĂ© `server.isProduction` dans le fichier de configuration est dĂ©finie sur `true` et que la valeur de la clĂ© `server.url` utilise le protocole HTTP. + +## Crashes + +Les utilisateurs pouvaient tĂ©lĂ©charger un fichier ou un fichier zip et le serveur plantait. C'est maintenant gĂ©rĂ©. + +## Docker + +Une image Docker `nightly` avec prise en charge arm64 a Ă©tĂ© ajoutĂ©e. + +## Scraper + +### Corrections + +Le symbole du degrĂ© a Ă©tĂ© standardisĂ© pour les conversions de tempĂ©rature. + +### Actualiser +Le module scraper a Ă©tĂ© actualisĂ© pour le maintenir Ă  jour. + +### Sites Web + +Le site Web `mob.co.uk` a Ă©tĂ© supprimĂ©, car la balise de script de la recette dans le HTML rĂ©cupĂ©rĂ© contient du JSON non valide. +Les bibliothĂšques `json` et `yaml` ne peuvent malheureusement pas dĂ©coder le JSON. + +Le site `nutritionbynathalie.com` a Ă©tĂ© supprimĂ©, car il ne peut plus ĂȘtre scrapĂ©. + +## Recettes + +### CatĂ©gories + +De nombreux utilisateurs mĂ©langeaient les mots-clĂ©s avec les catĂ©gories. Par consĂ©quent, une recette peut dĂ©sormais avoir jusqu'Ă  une catĂ©gorie plutĂŽt que plusieurs. + +### Base de donnĂ©es + +Correction d'un bug oĂč l'utilisateur 2+ voyait les recettes de l'utilisateur 1 lors de l'accĂšs Ă  la page `/` ou `/recipes`. + +### IngrĂ©dients + +Suppression du barrĂ© lorsque l'utilisateur vĂ©rifie un ingrĂ©dient. + +### Valeurs nutritionnelles par portion + +Les informations nutritionnelles sont dĂ©sormais affichĂ©es par portion lors de l'importation d'un site Web dont les informations nutritionnelles sont fournies par portion plutĂŽt que par 100 g. +![](images/v1.0.1/fixed-salmon.webp) + +Sous le capot, le champ `NutritionSchema.Servings` doit ĂȘtre un nombre reprĂ©sentĂ© sous forme de chaĂźne. Si le champ est vide, les informations nutritionnelles seront affichĂ©es par 100 g. Sinon, par portion. \ No newline at end of file diff --git a/docs/website/content/fr/about/changelog/v1.1.0.md b/docs/website/content/fr/about/changelog/v1.1.0.md new file mode 100644 index 000000000..cd2ff1e66 --- /dev/null +++ b/docs/website/content/fr/about/changelog/v1.1.0.md @@ -0,0 +1,209 @@ +--- +title: v1.1.0 (28 March 2024) +weight: 3 +--- + +## Authentification + +### Enregistrements de compte + +Il est dĂ©sormais possible de dĂ©sactiver les enregistrements de compte. Ceci est utile lorsque vous souhaitez Ă©viter que des personnes alĂ©atoires enregistrent un compte lorsque l'application est exposĂ©e Ă  Internet. + +Pour dĂ©sactiver les comptes d'utilisateur, dĂ©finissez l'option **server.noSignups** dans le fichier de configuration sur `true`. Pour les utilisateurs de Docker, +dĂ©finissez la variable d'environnement `RECIPYA_SERVER_NO_SIGNUPS` sur `true`. + +Vous pourrez gĂ©rer vos utilisateurs depuis le tableau de bord `/admin`. + +### Connexion automatique + +Il est dĂ©sormais possible de se connecter automatiquement Ă  l'application. Ceci est utile lorsque les comptes d'utilisateur ne sont pas nĂ©cessaires. + +Pour activer cette fonctionnalitĂ©, dĂ©finissez l'option **server.autologin** dans le fichier de configuration sur `true`. Pour les utilisateurs de Docker, +dĂ©finissez la variable d'environnement `RECIPYA_SERVER_AUTOLOGIN` sur `true`. + +Un compte par dĂ©faut sera crĂ©Ă© au dĂ©marrage de l'application lorsque aucun compte n'a encore Ă©tĂ© crĂ©Ă©. Ses identifiants sont les suivants : +- **email** : admin@autologin.com +- **mot de passe** : admin + +### Cookies + +Correction d'un problĂšme oĂč le cookie *se souvenir de moi* ne fonctionnait pas. + +## Admin + +Une page d'administration accessible via le point de terminaison `/admin` a Ă©tĂ© dĂ©marrĂ©e. + +## Livres de cuisine + +Correction d'un problĂšme oĂč l'utilisateur ne pouvait pas accĂ©der Ă  ses livres de cuisine. + +Correction d'un problĂšme oĂč un livre de cuisine sans recettes pouvait ĂȘtre tĂ©lĂ©chargĂ©. + +Le nom des livres de cuisine est dĂ©sormais automatiquement ajustĂ© Ă  la casse du titre. Il n'est dorĂ©navant plus possible de crĂ©er un livre de cuisine nommĂ© +`meilleur petit-dĂ©jeuner` lorsque `Meilleur petit-dĂ©jeuner` existe, car ils ont le mĂȘme nom. + +Auparavant, le mode de recherche de recettes par dĂ©faut Ă©tait par nom, ce qui signifie que votre requĂȘte de recherche ne recherchait que le +champ titre des recettes. DĂ©sormais, vous pouvez choisir **Par nom** ou **Recherche complĂšte**. + +## DonnĂ©es + +### Sauvegardes et restauration + +Les donnĂ©es de l'application sont dĂ©sormais sauvegardĂ©es automatiquement tous les trois jours. +Il est possible de restaurer une sauvegarde prĂ©cĂ©dente. + +Veuillez consulter la [visite des fonctionnalitĂ©s](/guide/fr/docs/features/backups) pour plus d'informations. + +### RĂ©pertoire + +La base de donnĂ©es a Ă©tĂ© dĂ©placĂ©e de `path/to/recipya/` vers `path/to/recipya/data/backup/database/`. Ce changement permet +aux utilisateurs de Docker de conserver les donnĂ©es de l'application. Les utilisateurs n'ont aucune action Ă  effectuer, car la migration vers le nouveau dossier +est automatique au dĂ©marrage de l'application. + +### TĂąches + +La tĂąche de nettoyage des images non rĂ©fĂ©rencĂ©es Ă©vite dĂ©sormais de supprimer les images de livre de recettes rĂ©fĂ©rencĂ©es. + +## Docker + +Les variables d'environnement peuvent dĂ©sormais ĂȘtre transmises via la commande `docker run` et le fichier `docker-compose`. + +## Infrastructure + +Ajout d'un environnement de dĂ©veloppement `.devcontainer`, qui vous permet de configurer tout ce dont vous avez besoin pour dĂ©velopper et exĂ©cuter Recipya. + +Mise Ă  niveau de la version Go de 1.21 Ă  1.22. + +Mise Ă  jour de tous les packages Go et NPM. + +## Recettes + +### Bookmarklet Recipya + +Le bookmarklet Recipya permet Ă  un utilisateur d'exĂ©cuter un extrait JavaScript Ă  partir de son navigateur qui extrait une recette d'une page Web. + +C'est pour les sites Web qui, Ă  la fois : +- ne peuvent pas ĂȘtre rĂ©cupĂ©rĂ©s via une requĂȘte serveur, c'est-Ă -dire qui ont quelque chose comme un captcha ou une dĂ©tection de bot +- qui ont des extraits de script de recette json+ld sur leur page + +Pour obtenir le bookmarklet : +1. AccĂ©dez Ă  `/recipes/add` +2. Ajoutez le lien `Recipya Bookmarklet` Ă  vos favoris dans la carte `Import`. + +Pour l'utiliser : +1. Ouvrez une page Web de recette, par exemple [pain aux noix et bananes doubles](https://www.allrecipes.com/recipe/231961/double-banana-nut-bread/) +2. Cliquez sur le bookmarklet +3. Un fichier JSON est tĂ©lĂ©chargĂ© lorsqu'il rĂ©ussit. + +Vous pouvez ensuite importer la recette extraite depuis `Ajouter une recette -> Importer`. + +### Importer + +#### Fichiers texte + +Il est dĂ©sormais possible d'importer des fichiers texte de recettes au format « .txt ». +Les fichiers texte doivent idĂ©alement ĂȘtre structurĂ©s comme suit : + +```texte +Titre + +Description + +MĂ©tadonnĂ©es, comme le temps de prĂ©paration, le temps de cuisson, le temps total, les portions, etc. + +Liste des ingrĂ©dients +QuantitĂ© | UnitĂ© de mesure | IngrĂ©dient | Éventuellement des instructions + +Instructions + +Éventuellement une URL d'oĂč provient la recette +``` + +#### Sites Web + +L'importation en masse d'URL est dĂ©sormais possible. Pour ce faire, accĂ©dez Ă  la boĂźte de dialogue depuis *Ajouter une recette → Site Web → RĂ©cupĂ©rer*. +Dans la zone de texte, collez votre liste d'URL, chacune sur une nouvelle ligne et appuyez sur *Envoyer*. + +### Recherche + +La pagination de recherche a Ă©tĂ© implĂ©mentĂ©e lors de la recherche de recettes et lors de la recherche de recettes Ă  ajouter Ă  un livre de cuisine. + +Vous pouvez dĂ©sormais choisir parmi les modes de recherche suivants : +- Par nom +- Recherche complĂšte + +La recherche complĂšte est la valeur par dĂ©faut. + +### Trier + +Les recettes peuvent dĂ©sormais ĂȘtre triĂ©es de la maniĂšre suivante : + +- Par nom : +- De A Ă  Z +- De Z Ă  A +- Par date de crĂ©ation : +- Du plus rĂ©cent au plus ancien +- Du plus ancien au plus rĂ©cent +- AlĂ©atoire + +La valeur par dĂ©faut est par ordre d'insertion dans la base de donnĂ©es. + +## Rapports + +Les rapports sont gĂ©nĂ©rĂ©s aprĂšs l'importation des recettes. Ils sont accessibles depuis le point de terminaison /reports. +Veuillez consulter la [visite des fonctionnalitĂ©s](/guide/fr/docs/features/reports) pour plus d'informations. + +## Scraper + +Le scraper a Ă©tĂ© actualisĂ©. + +Ajout de la prise en charge des sites Web suivants : +- aberlehome.com +- ah.nl +- all-clad.com +- argiro.gr +- bergamot.app +- bettybossi.ch +- bingingwithbabish.com +- brianlagerstrom.com +- chuckycruz.substack.com +- drinkoteket.se +- foodbag.be +- foodnetwork.com +- francescakookt.nl +- jaimyskitchen.nl +- kuchynalidla.sk +- lidl-kochen.de +- leukerecepten.nl +- livingthegreenlife.com +- maangchi.com +- marmiton.org +- moulinex.fr +- myjewishlearning.com +- puurgezond.nl +- quitoque.fr +- recipescommunity.com.au +- reddit.com +- yumelise.fr + +## SystĂšme + +### Utilisation de la mĂ©moire + +RĂ©duisez l'utilisation de la mĂ©moire de moitiĂ© en supprimant la dĂ©pendance sur [Boostport/mjml-go](https://github.com/Boostport/mjml-go). +Lors de l'analyse de profilage du tas, il a Ă©tĂ© observĂ© que l'application conservait une instance de *wazero* en mĂ©moire. +Reconnaissant ce comportement comme indĂ©sirable, le package a Ă©tĂ© supprimĂ©. À sa place, une commande `build:mjml` a Ă©tĂ© ajoutĂ©e +au fichier `package.json` pour convertir les fichiers `.mjml` en `.gohtml` pendant le processus de construction. + +RĂ©duisez encore davantage l'utilisation de la mĂ©moire d'environ 10 % en utilisant [templ](https://github.com/a-h/templ) au lieu de stocker les modĂšles `gohtml` en mĂ©moire. + +## UI/UX + +L'ensemble du frontend a Ă©tĂ© repensĂ© pour s'adapter Ă  n'importe quel appareil et prĂ©senter un design plus propre et plus beau. + +La mise en page d'impression des recettes a Ă©tĂ© amĂ©liorĂ©e. + +## Mise Ă  jour + +Le logiciel peut dĂ©sormais se mettre Ă  jour automatiquement lorsqu'une mise Ă  jour est disponible. Vous remarquerez une icĂŽne de notification Ă  cĂŽtĂ© de votre avatar +lorsqu'il est temps de procĂ©der Ă  la mise Ă  jour. diff --git a/docs/website/content/fr/about/changelog/v1.2.0.md b/docs/website/content/fr/about/changelog/v1.2.0.md new file mode 100644 index 000000000..2a2dd2cf4 --- /dev/null +++ b/docs/website/content/fr/about/changelog/v1.2.0.md @@ -0,0 +1,227 @@ +--- +title: v1.2.0 (16 July 2024) +weight: 2 +--- + +## Ajouts + +- 🔍 **Recherche AvancĂ©e** : La recherche avancĂ©e vous permet d'affiner votre requĂȘte de recherche pour obtenir les rĂ©sultats souhaitĂ©s. Veuillez consulter la [doc](/guide/fr/docs/features/recipes/search/) pour savoir comment l'utiliser. +- đŸŽ© **Configuration** : Ajout de la possibilitĂ© de modifier la plupart des champs du fichier de configuration Ă  partir de l'interface utilisateur sous la page des paramĂštres. +- đŸ–±ïž **Filtrer par catĂ©gorie** : Il est dĂ©sormais possible de cliquer sur la catĂ©gorie d'une recette depuis la page d'accueil pour afficher toutes les recettes ayant la mĂȘme catĂ©gorie. +- đŸȘ” **Journaux** : un mĂ©canisme de journalisation a Ă©tĂ© introduit Ă  l'aide de [log/slog](https://pkg.go.dev/log/slog). Les journaux sont stockĂ©s sous `%APPDATA%\Recipya\Logs`. Les journaux changent une fois que la taille d'un fichier journal atteint 500 Mo. Jusqu'Ă  trois fichiers journaux sont stockĂ©s Ă  la fois. +- đŸ§‘â€đŸ’» **Importer depuis des applications** : Il est dĂ©sormais possible d'importer des recettes depuis les applications suivantes. + - AccuChef + - ChefTap + - Crouton + - Easy Recipe Deluxe + - Kalorio + - Mealie + - Paprika + - Recipe Keeper + - RecipeSage + - Saffron + - Tandoor +- đŸ—ïž **Mots-clĂ©s** : Ajout d'une section de mots-clĂ©s aux recettes. +- 📋 **GĂ©rer les catĂ©gories** : L'utilisateur peut dĂ©sormais contrĂŽler ses catĂ©gories de recettes Ă  partir de la boĂźte de dialogue des paramĂštres. +- đŸ˜» **Mascotte** : Bananacat est dĂ©sormais la mascotte de Recipya. +- đŸ“· **Images multiples** : Prise en charge de l'ajout de plusieurs images aux recettes. +- đŸ—ïž **SchĂ©ma de recette** : Ajout de `nutrition.transFat`, `thumbnailUrl` et `video` au schĂ©ma de recette. +- đŸ„˜ **Sous-catĂ©gories** : Ajout de la possibilitĂ© de sous-catĂ©goriser les catĂ©gories. Par exemple, la catĂ©gorie `boissons:cocktails:vodka` signifie ce qui suit : + - `boissons` est la catĂ©gorie principale + - `cocktails` est une sous-catĂ©gorie de `boissons` + - `vodka` est une sous-catĂ©gorie de `cocktails` +- 🧰 **Outils** : Ajout d'une section d'outils aux recettes. +- 🌊 **Transitions** : Ajout de transitions de vue lorsque l'utilisateur saisit une recette, sĂ©lectionne une page dans la pagination et lorsqu'il bascule entre + les onglets dans la barre latĂ©rale. Cette fonctionnalitĂ© n'est pas disponible dans Firefox. +- đŸ“ș **VidĂ©os** : Ajout de la possibilitĂ© d'ajouter des vidĂ©os aux recettes. +- đŸ•žïž **Sites Web** : Ajout de la prise en charge de 109 sites Web, Ă©numĂ©rĂ©s au bas de ces notes. + +## Corrections + +- ➕ **Ajouter Ă  la collection** : correction du bouton « Ajouter une recette Ă  la collection » qui ne fonctionnait pas. +- 🗾 **Sites Web approuvĂ©s** : les sites Web prĂ©cĂ©demment approuvĂ©s, mais qui ont Ă©chouĂ© lors de leur ajout via l'interface utilisateur, ont Ă©tĂ© corrigĂ©s. +- 🙈 **Liste des catĂ©gories** : correction de la liste des catĂ©gories en mode d'Ă©dition de recette qui n'affichait pas la liste des catĂ©gories de l'utilisateur. +- 🙊 **Suppression du livre de recettes** : correction d'un problĂšme oĂč le mauvais livre de recettes Ă©tait supprimĂ©. +- đŸŽïž **Course de donnĂ©es** : prĂ©vention d'une condition de course de donnĂ©es causĂ©e par des lectures et des Ă©critures simultanĂ©es sur la carte des sessions. +- đŸ—œïž **Compression d'image** : correction de la recompression des images aprĂšs chaque modification. +- 📏 **Conversion d'ingrĂ©dients** : correction d'une conversion d'ingrĂ©dients incorrecte. +- ⚖ **Mise Ă  l'Ă©chelle des ingrĂ©dients** : correction de certains problĂšmes de mise Ă  l'Ă©chelle des ingrĂ©dients. +- đŸ„ł **jamieoliver.com** : AmĂ©lioration du scraper jamieoliver.com. +- 👑 **kingarthurbaking** : Analyse raffinĂ©e de kingarthurbaking.com. +- 🔹 **Maangchi.com** : Analyse corrigĂ©e et amĂ©liorĂ©e de maangchi.com. +- đŸ”© **ParenthĂšse manquante** : Correction de la parenthĂšse fermante manquante dans l'en-tĂȘte de la premiĂšre colonne du tableau nutritionnel. +- đŸ«˜ **Normaliser la nutrition** : Normalisation des propriĂ©tĂ©s nutritionnelles. +- 🧼 **Calcul nutritionnel** : Calculer la nutrition lorsque les ingrĂ©dients d'une recette sont mis Ă  jour. +- 💣 **Exportation de recettes** : Correction d'un crash lors de l'exportation des recettes au format PDF. +- ⭐ **Importations de recettes** : Le logiciel importait uniquement une partie des recettes Ă  partir du fichier JSON exportĂ©. Par exemple, si votre fichier ZIP exportĂ© contenait + 350 recettes, seules 40 pourraient ĂȘtre importĂ©es avec succĂšs. Ce problĂšme a Ă©tĂ© rĂ©solu, garantissant qu'aucune recette dans + l'archive exportĂ©e ne soit ignorĂ©e. +- đŸȘ **Redirection** : correction d'une erreur de redirection lors de la connexion lorsqu'un cookie de session existe. +- đŸȘč **Recharger** : la page ne se recharge plus lorsque la requĂȘte de recherche est vide. +- đŸ“„ **Restaurer la sauvegarde** : restauration de la sauvegarde utilisateur corrigĂ©e lorsque des fichiers facultatifs dans l'archive de sauvegarde sont manquants. +## Modifications + +- đŸ’Ÿ **Data directory**: The database has been moved from `path/to/recipya/data/backup/database/` to where user data is stored. + - Windows: `%APPDATA%\Recipya` + - Linux: `$XDG_CONFIG_HOME/Recipya` + - MacOS: `$HOME/Library/Application Support/Recipya` + +Users do not have to take any action because the migration to the new folder is automatic on application startup. + +{{< callout type="warning" >}} +__Utilisateurs Docker__: +Assurez-vous d'ajuster le chemin de votre volume Ă  `recipya-data:/root/.config/Recipya`. +{{< /callout >}} +- đŸ“°ïž **AccĂšs Ă  la documentation** : DĂ©placement du lien vers la documentation de la boĂźte de dialogue À propos vers le menu Avatar. +- đŸ©» **Type de fichier image** : Les images sont dĂ©sormais stockĂ©es au format WebP plutĂŽt que JPG pour une meilleure compression et une meilleure qualitĂ© d'image. +- đŸ›ïž **Page d'index** : La page d'index de la vue mobile des recettes et des livres de cuisine affiche dĂ©sormais deux colonnes au lieu d'une. +- 1ïžâƒŁ **Liste des catĂ©gories** : Seule la premiĂšre catĂ©gorie est conservĂ©e lors de l'insertion d'une recette dans la base de donnĂ©es. +- đŸ«§ **Notifications** : La plupart des notifications sont dĂ©sormais envoyĂ©es via des websockets au lieu de htmx, ce qui signifie que tous vos onglets ouverts afficheront les mĂȘmes notifications envoyĂ©es. +- 💧 **Prise en charge de la plateforme** : Abandon de la prise en charge des plateformes suivantes, car le logiciel ne se compilait pas : + - Linux sur architecture x86 32 bits (linux/386). + - Linux sur architecture ARMv6 (linux/arm) + - Linux sur architecture RISC-V 64 bits (linux/riscv64) + - Linux sur architecture IBM System z (linux/s390x) +- đŸČ **CatĂ©gorie de recette** : Le rĂ©glage de la catĂ©gorie est dĂ©sormais facultatif et la valeur par dĂ©faut est « non catĂ©gorisĂ© » lorsqu'elle n'est pas dĂ©finie. +- đŸ–č **Description de la recette** : Le champ de description est dĂ©sormais facultatif. Masquez Ă©galement la section sur mobile si elle est vide. +- đŸš« **Champs de recette (manuel)** : Les champs obligatoires manquants gĂ©nĂšrent dĂ©sormais une erreur. +- 📩 **Export JSON de recette** : L'archive zip des recettes exportĂ©es au format JSON ne contient dĂ©sormais que des fichiers JSON, un par recette. Avant, nous + avions un dossier par recette. Chacun contenait l'image de la recette et son schĂ©ma JSON. Inclure les fichiers image dans l'archive + n'est plus nĂ©cessaire, car les images et les vignettes sont dorĂ©navant dans le schĂ©ma de recette. +- 🚜 **Source de la recette** : Le rĂ©glage de la source est dĂ©sormais facultatif et la valeur par dĂ©faut est « Inconnu » lorsqu'elle n'est pas dĂ©finie. +- 3ïžâƒŁ **Rendement de la recette** : Un rendement non dĂ©fini est dĂ©sormais par dĂ©faut de 1. +- ⌚ **Raccourci de la barre de recherche** : Suppression du raccourci `Crtl + /` pour focaliser la barre de recherche. +- 🌙 **Mode de recherche** : Le mode de recherche a Ă©tĂ© supprimĂ© au profit d'une recherche avancĂ©e. +- đŸ–„ïž **URL du serveur** : La variable de configuration `server.url` et la variable d'environnement `RECIPYA_SERVER_URL` sont dĂ©sormais facultatives et la valeur par dĂ©faut est `http://0.0.0.0` +- ⚙ **ParamĂštres** : Les paramĂštres ont Ă©tĂ© remaniĂ©s pour un aspect plus propre et plus soignĂ© inspirĂ© de la boĂźte de dialogue des paramĂštres de ChatGPT et d'Open WebUI. +- 🈮 **Moteur OCR** : l'utilisation d'[Azure AI Vision](https://azure.microsoft.com/en-us/products/ai-services/ai-vision) pour numĂ©riser les + recettes est dĂ©conseillĂ©e au profit d'[Azure AI Document Intelligence](https://azure.microsoft.com/en-us/products/ai-services/ai-document-intelligence), car il est plus prĂ©cis et accepte plusieurs formats de fichiers. + +**Important** : le bloc *integrations.azureComputerVision* dans le fichier de configuration et les variables d’environnement +`RECIPYA_VISION_ENDPOINT`/`RECIPYA_VISION_KEY` sont obsolĂštes et seront supprimĂ©s dans la version 1.3.0. + +Pour migrer : +1. Ajoutez la ressource *Document intelligences* Ă  votre [compte Azure](https://portal.azure.com/#allservices) +2. AccĂ©dez Ă  la ressource. +3. Dans la barre latĂ©rale, sĂ©lectionnez *ClĂ©s et point de terminaison* sous *Gestion des ressources*. + ![texte alternatif](https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/media/containers/keys-and-endpoint.png?view=doc-intel-3.1.0) +4. Copiez *KEY 1* dans le champ **integrations.azureDocumentIntelligence.key** de votre fichier de configuration ou dans la variable d'environnement `RECIPYA_DI_KEY` si vous utilisez Docker. +5. Copiez *Endpoint* dans le champ **integrations.azureDocumentIntelligence.endpoint** de votre fichier de configuration ou dans la variable d'environnement `RECIPYA_DI_ENDPOINT` si vous utilisez Docker. +6. RedĂ©marrez Recipya et testez la connexion *Azure AI Document Intelligence* Ă  partir des paramĂštres. +7. +- **Limitations** + - Pour les formats PDF et TIFF, jusqu'Ă  2000 pages peuvent ĂȘtre traitĂ©es (avec un abonnement gratuit, seules les deux premiĂšres pages sont traitĂ©es). + - La taille du fichier pour l'analyse des documents est de 500 Mo pour le niveau payant (S0) et de 4 Mo pour le niveau gratuit (F0). + - Si vos PDF sont verrouillĂ©s par un mot de passe, vous devez supprimer le verrou avant la soumission. + +## Nouveaux sites Web pris en charge + +- 24kitchen.nl +- ah.be +- aflavorjournal.com +- aldi.com.au +- alexandracooks.com +- alittlebityummy.com +- allthehealthythings.com +- aniagotuje.pl +- americastestkitchen.com +- angielaeats.com +- antilliaans-eten.nl +- avocadoskillet.com +- bakels.com.au +- barefeetinthekitchen.com +- beyondkimchee.com +- bottomlessgreens.com +- breadtopia.com +- britishbakels.co.uk +- chatelaine.com +- chejorge.com +- chetnamakan.co.uk +- chinesecookingdemystified.substack.com +- colruyt.be +- culy.nl +- cuisineandtravel.com +- daringgourmet.com +- dherbs.com +- damndelicious.net +- dinnerthendessert.com +- dinneratthezoo.com +- dish.co.nz +- donnahay.com.au +- dreenaburton.com +- elephantasticvegan.com +- entertainingwithbeth.com +- etenvaneefke.nl +- evolvingtable.com +- familyfoodonthetable +- feastingathome.com +- felix.kitchen +- findingtimeforcooking.com +- foodal.com +- foodbymaria.com +- foodiecrush.com +- food-guide.canada.ca +- foolproofliving.com +- gastroplant.com +- gazoakleychef.com +- glutenfreetables.com +- goodeatings.com +- goodto.com +- gourmettraveller.com.au +- gousto.co.uk +- greenevi.com +- gurki.no +- healthylittlefoodies.com +- hellofresh.se +- homebrewanswers.com +- inbloombakery.com +- instantpot.com +- jaroflemons.com +- jocooks.com +- joythebaker.com +- jumbo.com +- keepinitkind.com +- kitchenaid.com +- kitchensanctuary.com +- kookjij.nl +- kristineskitchenblog.com +- lahbco.com +- lekkerensimpel.com +- lidl.nl +- lithuanianintheusa.com +- loveandlemons.com +- madewithlau.com +- mccormick.com +- mexicanmademeatless.com +- modernhoney.com +- momontimeout.com +- mygingergarlickitchen.com +- mykoreankitchen.com +- natashaskitchen.com +- notenoughcinnamon.com +- nigella.com +- ohmyveggies.com +- okokorecepten.nl +- onesweetappetite.com +- parsleyandparm.com +- plentyvegan.com +- potatorolls.com +- purewow.com +- radiofrance.fr +- recipegirl.com +- robinasbell.com +- saltandlavender.com +- sarahsveganguide.com +- savorynothings.com +- smittenkitchen.com +- spiceboxtravels.com +- tasteatlas.com +- thatvegandad.com +- thecookierookie.com +- thefoodflamingo.com +- theguccha.com +- theheartysoul.com +- thesaltymarshmallow.com +- twosleevers.com +- unsophisticook.com +- vegan-pratique.fr diff --git a/docs/website/content/fr/about/changelog/v1.3.0.md b/docs/website/content/fr/about/changelog/v1.3.0.md new file mode 100644 index 000000000..28010b695 --- /dev/null +++ b/docs/website/content/fr/about/changelog/v1.3.0.md @@ -0,0 +1,16 @@ +--- +title: v1.3.0 (TBD) +weight: 1 +--- + +## Added + +- [EMOJI] **Option Contourner le guide** : Vous pouvez dĂ©sormais contourner le guide et accĂ©der directement Ă  la page de connexion en mode anonyme en dĂ©finissant la variable de configuration `server.bypassGuide` ou la variable d'environnement `RECIPYA_SERVER_BYPASS_GUIDE` sur `true`. Vous pouvez Ă©galement le faire Ă  partir des paramĂštres. +- [EMOJI] **Partager** : Il est dĂ©sormais possible de partager avec plusieurs applications installĂ©es, par exemple WhatsApp, Gmail et Telegram. +- [EMOJI] **Traductions de la documentation** : La documentation a Ă©tĂ© traduite en français. + +## Fixed + +## Changed + +## Newly-supported Websites diff --git a/docs/website/content/fr/about/coc.md b/docs/website/content/fr/about/coc.md new file mode 100644 index 000000000..ffd9a726c --- /dev/null +++ b/docs/website/content/fr/about/coc.md @@ -0,0 +1,133 @@ +--- +title: Code de conduite Contributor Covenant +weight: 3 +--- + +## Notre engagement + +En tant que membres, contributeur·trice·s et dirigeant·e·s, nous nous engageons +Ă  faire de la participation Ă  notre communautĂ© une expĂ©rience sans harcĂšlement, +quel que soit l'Ăąge, la taille, le handicap visible ou non, l'ethnicitĂ©, les +caractĂ©ristiques sexuelles, l'identitĂ© et l'expression de genre, le niveau +d'expĂ©rience, l'Ă©ducation, le statut socio-Ă©conomique, la nationalitĂ©, +l'apparence, la race, la caste, la couleur de peau, la religion, ou +l'identitĂ© et l'orientation sexuelle. + +Nous nous engageons Ă  agir et interagir de maniĂšre Ă  contribuer Ă  une communautĂ© +ouverte, accueillante, diversifiĂ©e, inclusive et saine. + +## Nos critĂšres + +Exemples de comportements qui contribuent Ă  crĂ©er un environnement positif : + +* Faire preuve d'empathie et de bienveillance envers les autres +* Être respectueux des opinions, points de vue et expĂ©riences divergents +* Donner et recevoir avec grĂące les critiques constructives +* Assumer ses responsabilitĂ©s et s'excuser auprĂšs des personnes affectĂ©es par nos erreurs et apprendre de ces expĂ©riences +* Se concentrer sur ce qui est le meilleur non pas uniquement pour nous en tant qu'individu, mais aussi pour l'ensemble de la communautĂ© + +Exemples de comportements inacceptables : + +* L'utilisation de langage ou d'images sexualisĂ©s et d'attentions ou d'avances sexuelles de toute nature +* Le _trolling_, les commentaires insultants ou dĂ©sobligeants et les attaques + personnelles ou d'ordre politique +* Le harcĂšlement en public ou en privĂ© +* La publication d'informations privĂ©es d'autrui, telle qu'une + adresse postale ou une adresse Ă©lectronique, sans leur autorisation explicite +* Toute autre conduite qui pourrait raisonnablement ĂȘtre considĂ©rĂ©e comme inappropriĂ©e + dans un cadre professionnel + +## ResponsabilitĂ©s d'application + +Les dirigeant·e·s de la communautĂ© sont chargé·e·s de clarifier et de faire respecter nos normes de +comportements acceptables et prendront des mesures correctives appropriĂ©es et Ă©quitables en +rĂ©ponse Ă  tout comportement qu'ils ou elles jugent inappropriĂ©, menaçant, offensant ou nuisible. + +Les dirigeant·e·s de la communautĂ© ont le droit et la responsabilitĂ© de supprimer, modifier ou rejeter +les commentaires, les contributions, le code, les modifications de wikis, les rapports d'incidents ou de bogues et autres contributions qui +ne sont pas alignĂ©s sur ce code de conduite, et communiqueront les raisons des dĂ©cisions de modĂ©ration +le cas Ă©chĂ©ant. + +## PortĂ©e d'application + +Ce code de conduite s'applique Ă  la fois au sein des espaces du projet ainsi que +dans les espaces publics lorsqu'un individu reprĂ©sente officiellement le projet ou sa +communautĂ©. Font parties des exemples de reprĂ©sentation d'un projet ou d'une +communautĂ© l'utilisation d'une adresse Ă©lectronique officielle, la publication sur +les rĂ©seaux sociaux Ă  l'aide d'un compte officiel ou le fait d'agir en tant que reprĂ©sentant·e dĂ©signé·e +lors d'un Ă©vĂ©nement en ligne ou hors-ligne. + +## Application + +Les cas de comportements abusifs, harcelants ou tout autre comportement +inacceptables peuvent ĂȘtre signalĂ©s aux dirigeant·e·s de la communautĂ© responsables de l'application du code de conduite Ă  +[INSÉRER UNE ADRESSE EMAIL]. +Toutes les plaintes seront examinĂ©es et feront l'objet d'une enquĂȘte rapide et Ă©quitable. + +Tou·te·s les dirigeant·e·s de la communautĂ© sont tenu·e·s de respecter la vie privĂ©e et la sĂ©curitĂ© des +personnes ayant signalĂ© un incident. + +## Directives d'application + +Les dirigeant·e·s de communautĂ© suivront ces directives d'application sur l'impact communautaire afin de dĂ©terminer +les consĂ©quences de toute action qu'ils jugent contraire au prĂ©sent code de conduite : + +### 1. Correction + +**Impact communautaire** : utilisation d'un langage inappropriĂ© ou tout autre comportement jugĂ© +non professionnel ou indĂ©sirable dans la communautĂ©. + +**ConsĂ©quence** : un avertissement Ă©crit et privĂ© de la part des dirigeant·e·s de la communautĂ©, clarifiant +la nature du non-respect et expliquant pourquoi +le comportement Ă©tait inappropriĂ©. Des excuses publiques peuvent ĂȘtre demandĂ©es. + +### 2. Avertissement + +**Impact communautaire** : un non-respect par un seul incident ou une sĂ©rie d'actions. + +**ConsĂ©quence** : un avertissement avec des consĂ©quences dĂ» Ă  la poursuite du comportement. +Aucune interaction avec les personnes concernĂ©es, y compris l'interaction non sollicitĂ©e avec +celles et ceux qui sont chargé·e·s de l'application de ce code de conduite, pendant une pĂ©riode dĂ©terminĂ©e. +Cela comprend le fait d'Ă©viter les interactions dans les espaces communautaires ainsi que sur les canaux externes +comme les mĂ©dias sociaux. Le non-respect de ces conditions peut entraĂźner +un bannissement temporaire ou permanent. + +### 3. Bannissement temporaire + +**Impact communautaire** : un non-respect grave des normes communautaires, notamment +un comportement inappropriĂ© soutenu. + +**ConsĂ©quence** : un bannissement temporaire de toutes formes d'interactions ou de +communications avec la communautĂ© pendant une pĂ©riode dĂ©terminĂ©e. Aucune interaction publique ou +privĂ©e avec les personnes concernĂ©es, y compris les interactions non sollicitĂ©es +avec celles et ceux qui appliquent ce code de conduite, n'est autorisĂ©e pendant cette pĂ©riode. +Le non-respect de ces conditions peut entraĂźner un bannissement permanent. + +### 4. Bannissement permanent + +**Impact communautaire** : dĂ©montrer un schĂ©ma rĂ©current de non-respect des normes de la +communautĂ© y compris un comportement inappropriĂ© soutenu, le harcĂšlement d'un individu +ainsi que l'agression ou le dĂ©nigrement de catĂ©gories d'individus. + +**ConsĂ©quence** : un bannissement permanent de toutes formes d'interactions publiques au sein de +la communautĂ©. + +## Attributions + +Ce code de conduite est adaptĂ© du +[Contributor Covenant][homepage], version 2.1, +disponible Ă  +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Les Directives d'application ont Ă©tĂ© inspirĂ©es par le +[Code of conduct enforcement ladder][Mozilla CoC] de Mozilla. + +Pour obtenir des rĂ©ponses aux questions courantes sur ce code de conduite, consultez la FAQ Ă  +[https://www.contributor-covenant.org/faq][FAQ]. Les traductions sont disponibles +sur [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/docs/website/content/fr/about/community-guide.md b/docs/website/content/fr/about/community-guide.md new file mode 100644 index 000000000..480c4b240 --- /dev/null +++ b/docs/website/content/fr/about/community-guide.md @@ -0,0 +1,88 @@ +--- +title: Guide communautaire +weight: 2 +--- + +Bienvenue dans le guide communautaire du projet ! + +## Canaux de support + +- [Espace Matrix](https://app.element.io/#/room/#recipya:matrix.org) +- [GitHub Issues](https://github.com/reaper47/recipya/issues) +- [GitHub Discussions](https://github.com/reaper47/recipya/discussions) + +## Façons de contribuer + +Recipya est un projet open source collaboratif. Nous accueillons tous ceux qui souhaitent nous aider Ă  faire de ce gestionnaire de +recettes le meilleur possible ! Votre contribution et vos contributions sont essentielles alors que nous travaillons Ă  la crĂ©ation +une solution Ă©tonnante de gestion de recettes. Ne pas savoir coder n'est pas une condition pour contribuer ! + +Les sous-sections suivantes dĂ©taillent les diffĂ©rentes maniĂšres dont vous pouvez contribuer. + +### DĂ©veloppement de fonctionnalitĂ©s + +N'hĂ©sitez pas Ă  travailler sur des fonctionnalitĂ©s qui ne sont pas [assignĂ©es](https://github.com/reaper47/recipya/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement+no%3Aassignee). +Je vous encourage Ă©galement Ă  ouvrir une [demande de fonctionnalitĂ©](https://github.com/reaper47/recipya/issues/new?assignees=&labels=enhancement&projects=&template=feature_request.md&title=) +lorsque vous avez des idĂ©es qui peuvent amĂ©liorer le logiciel. + +Vous n'ĂȘtes pas obligĂ© d'implĂ©menter les fonctionnalitĂ©s vous-mĂȘme si vous ne vous sentez pas Ă  l'aise. Cependant, si vous le souhaitez, la procĂ©dure est la suivante. + +1. VĂ©rifiez la liste des fonctionnalitĂ©s actuellement [demandĂ©es](https://github.com/reaper47/recipya/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement+no%3Aassignee). +2. SĂ©lectionnez celle sur laquelle vous souhaitez travailler. +3. Indiquez en commentaire que vous souhaitez la corriger ou envoyez-moi un message dans l'espace [Matrix](https://app.element.io/#/room/#recipya:matrix.org) + afin que je puisse dĂ©placer la tĂąche vers la colonne « en cours » du [board](https://github.com/users/reaper47/projects/2) et vous l'attribuer. +4. Forkez le dĂ©pĂŽt si vous ne l'avez pas encore fait. +5. ImplĂ©mentez la fonctionnalitĂ© et Ă©crivez des tests. +6. Envoyez les modifications Ă  votre fork. +7. Ouvrez un pull request afin que je puisse fusionner votre travail dans « main ». + +{{< callout type="info" >}} +Sachez que travailler sur une fonctionnalitĂ© sans ouvrir d'abord un problĂšme sur GitHub peut entraĂźner un rejet si j'estime que +cela ne convient pas Ă  Recipya. +{{< /callout >}} + +### Bugs + +N'hĂ©sitez pas Ă  signaler des bugs lorsque vous en dĂ©couvrez ! Veuillez vous assurer que le bug que vous avez trouvĂ© n'a pas Ă©tĂ© signalĂ© dans le +[GitHub issues](https://github.com/reaper47/recipya/issues?q=is%3Aopen+is%3Aissue+label%3Abug) before d'en [ouvrir un](https://github.com/reaper47/recipya/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=) +pour rĂ©duire le nombre de doublons. + +Vous n'ĂȘtes pas obligĂ© de corriger le bug vous-mĂȘme si vous ne vous sentez pas Ă  l'aise. Cependant, si vous le souhaitez, la procĂ©dure est la suivante. + +1. VĂ©rifiez la liste des bugs actuellement [enregistrĂ©s](https://github.com/reaper47/recipya/issues?q=is%3Aopen+is%3Aissue+label%3Abug). +2. SĂ©lectionnez un problĂšme sur lequel vous souhaitez travailler. +3. Indiquez en commentaire que vous souhaitez le rĂ©soudre ou envoyez-moi un message dans l'espace [Matrix](https://app.element.io/#/room/#recipya:matrix.org) + afin que je puisse dĂ©placer la tĂąche vers la colonne « en cours » du [board](https://github.com/users/reaper47/projects/2) + et vous l'assigner. +4. Forkez le dĂ©pĂŽt si vous ne l'avez pas encore fait. +5. Corrigez le bug, testez-le correctement et transmettez les modifications Ă  votre fork. +6. Ouvrez un pull request afin que je puisse fusionner votre travail dans « main ». + +### Documentation + +Ce site Web est la documentation officielle de Recipya. Il est construit Ă  l'aide de [Hextra](https://imfing.github.io/hextra/), qui +est un gĂ©nĂ©rateur de site statique trĂšs simple Ă  utiliser et Ă  comprendre. Vous n'avez pas besoin d'ouvrir un problĂšme concernant les mises Ă  jour +de la documentation. N'hĂ©sitez pas Ă  mettre Ă  jour comme vous le jugez appropriĂ© et Ă  ouvrir une demande d'extraction. Vous pouvez nous aider avec +les traductions, l'ajout d'une langue, la correction des fautes de frappe, l'amĂ©lioration de la grammaire, l'ajout de sections, la mise Ă  jour des images, le contrĂŽle de version, etc. + +Pour dĂ©velopper la documentation localement, vous devez d'abord [fork](https://github.com/reaper47/recipya/fork) le projet. + +Ensuite, ouvrez une invite de commande ou un terminal et accĂ©dez Ă  `recipya/docs/website`. + +```bash +cd path/to/recipya/docs/website +``` + +Ensuite, diffusez le site Web localement. + +```bash +hugo serve +``` + +Le site Web devrait s'ouvrir automatiquement dans votre navigateur Ă  l'adresse http://localhost:3000. +Vous ĂȘtes maintenant libre de modifier le texte et les modifications seront reflĂ©tĂ©es dans le navigateur lors de l'enregistrement du fichier. + +### Aider les autres + +C'est toujours un plaisir d'aider quelqu'un qui a besoin d'aide. Veuillez consulter les [canaux d'assistance](#canaux-de-support) +pour savoir oĂč vous pouvez apporter votre aide. diff --git a/docs/website/content/fr/about/credits.md b/docs/website/content/fr/about/credits.md new file mode 100644 index 000000000..5ad0e8eb8 --- /dev/null +++ b/docs/website/content/fr/about/credits.md @@ -0,0 +1,18 @@ +--- +title: CrĂ©dits +weight: 5 +--- + +## Core + +- [Marc-AndrĂ© Charland](https://github.com/reaper47) - PropriĂ©taire du projet et dĂ©veloppeur principal + +## Contributors + +- [bakker](https://github.com/bakker) +- [Daim Bin Khalid](https://github.com/daimbk) +- [Daniel Simpson](https://github.com/daniel-simpson) +- [ged](https://github.com/gedw99) +- [Julian](https://github.com/jesp1999) +- [Marcus BlennegĂ„rd](https://github.com/mblennegard) +- [thehijacker](https://github.com/thehijacker) diff --git a/docs/website/content/fr/about/roadmap.md b/docs/website/content/fr/about/roadmap.md new file mode 100644 index 000000000..fa936b19c --- /dev/null +++ b/docs/website/content/fr/about/roadmap.md @@ -0,0 +1,184 @@ +--- +title: Feuille de route +weight: 4 +--- + +{{< tabs items="v1.3.0,v1.4.0" >}} + +{{< tab >}} +**Types de base d'ingrĂ©dients**: +Mappage des donnĂ©es des ingrĂ©dients standards avec les types rĂ©els de ces ingrĂ©dients. +[Issue](https://github.com/reaper47/recipya/issues/116). + +**PossibilitĂ© d'ajouter des images aux instructions** +Il devrait ĂȘtre possible pour les utilisateurs d'ajouter des images aux instructions. +[Issue](https://github.com/reaper47/recipya/issues/262) + +**i18n**: +L'utilisateur pourra changer la langue de l'application. +[Issue](https://github.com/reaper47/recipya/issues/125). + +**AmĂ©liorer le systĂšme de mesure** +Offrir un contrĂŽle plus prĂ©cis du systĂšme de mesure. +[Issue](https://github.com/reaper47/recipya/issues/175). + +**DiffĂ©rences de soutien entre les États-Unis, le Royaume-Uni et l'Australie** +Soutenir les diffĂ©rences entre les États-Unis, le Royaume-Uni et l’Australie. +[Issue](https://github.com/reaper47/recipya/issues/181). + +**Partager des recettes entre comptes** +Autoriser le partage d'une recette sur plusieurs comptes locaux. +[Issue](https://github.com/reaper47/recipya/issues/203) + +**Ajoutez des balises et des icĂŽnes pour les rĂ©gimes spĂ©ciaux** +Les recettes peuvent ĂȘtre marquĂ©es pour des rĂ©gimes spĂ©ciaux, tels que vĂ©gĂ©talien, vĂ©gĂ©tarien, cĂ©togĂšne, sans gluten, etc. +[Issue](https://github.com/reaper47/recipya/issues/208) + +**Soutenez RTL** +Certaines langues fonctionnent comme RTL. +[Issue](https://github.com/reaper47/recipya/issues/237) + +**Sections de support dans les ingrĂ©dients et les instructions** +Offrir la possibilitĂ© d'Ă©tiqueter les sections dans les ingrĂ©dients et les instructions. +[Issue](https://github.com/reaper47/recipya/issues/254) + +**Images des instructions** +Permettre aux utilisateurs d'ajouter des images aux instructions. +[Issue](https://github.com/reaper47/recipya/issues/262) + +**Traduire la documentation** +Le site de documentation est uniquement en anglais. D'autres langues seront bientĂŽt disponibles. +[Issue](https://github.com/reaper47/recipya/issues/269) + +**Conversion de mesures dynamiques** +Conversion en direct entre les systĂšmes impĂ©rial et mĂ©trique ou offre l'option des deux systĂšmes. +[Issue](https://github.com/reaper47/recipya/issues/335) + +**ParamĂštre permettant de modifier la force de compression de l'image** +Autoriser diffĂ©rentes forces de compression. +[Issue](https://github.com/reaper47/recipya/issues/339) + +**Ajouter une conversion au poids** +Ajoutez la possibilitĂ© de convertir entre les mesures de volume et de poids. +[Issue](https://github.com/reaper47/recipya/issues/346) + +**Ajoutez des en-tĂȘtes aux ingrĂ©dients et aux instructions** +Permettre d'ajouter des en-tĂȘtes aux ingrĂ©dients et aux instructions. +[Issue](https://github.com/reaper47/recipya/issues/347) + +**Ajouter une section Notes** +Ajoutez une section de notes au schĂ©ma de recette et Ă  la vue de recette. +[Issue](https://github.com/reaper47/recipya/issues/348) + +**Afficher les valeurs utilisateur lors de la recherche** +Lorsqu'un utilisateur tape un mot-clĂ© de recherche, par exemple « tag: », une liste de tags lui est proposĂ©e. +[Issue](https://github.com/reaper47/recipya/issues/349) + +**Paginer la liste des rapports** +La liste des rapports sur /reports devient assez longue. +[Issue](https://github.com/reaper47/recipya/issues/350) + +**Partage Ă  l'aide de l'API de partage Web** +Autoriser le partage avec diffĂ©rentes applications installĂ©es par l'utilisateur. +[Issue](https://github.com/reaper47/recipya/issues/358) + +**Autoriser d'autres moteurs OCR** +Proposer d'autres moteurs OCR qu'Azure Document Intelligence. +[Issue](https://github.com/reaper47/recipya/issues/359) + +**PossibilitĂ© de contourner le guide** +Ajoutez une option (ParamĂštres -> Serveur) pour contourner le guide et accĂ©der directement Ă  la page de connexion. +[Issue](https://github.com/reaper47/recipya/issues/372) + +**Extraire plusieurs images lors de l'ajout d'une recette via une URL** +Extraire toutes les images de l'URL. +[Issue](https://github.com/reaper47/recipya/issues/374) + +**Ajoutez la possibilitĂ© de scrapper manuellement les sites web** +Être capable de re-gratter la recette sans avoir Ă  supprimer manuellement l'ancienne, puis de gratter la recette comme une toute nouvelle recette. +[Issue](https://github.com/reaper47/recipya/issues/376) + +**AmĂ©liorer l'interface utilisateur pour les temps de recette** +Pour faciliter la lecture, ajoutez un espace entre chaque unitĂ©. +[Issue](https://github.com/reaper47/recipya/issues/380) + +**Utiliser la taille de la portion Ă  partir des informations nutritionnelles** +Utilisez la taille de la portion Ă  partir des informations nutritionnelles, si le rendement de la recette n'est pas disponible dans le schĂ©ma. +[Issue](https://github.com/reaper47/recipya/issues/384) + +**DĂ©finissez les valeurs nutritionnelles par portion et par 100 g** +Ajout de la possibilitĂ© de dĂ©finir des valeurs nutritionnelles par portion et par 100 g pour la mĂȘme recette. +[Issue](https://github.com/reaper47/recipya/issues/385) + +**Ajouter des thĂšmes frontend** +Ajoutez plus de thĂšmes frontaux Ă  l'application. Nous avons actuellement des thĂšmes clairs et sombres. +[Issue](https://github.com/reaper47/recipya/issues/388) + +**Évaluer une recette** +Ajouter la possibilitĂ© de noter une recette. +[Issue](https://github.com/reaper47/recipya/issues/390) + +**Ajouter une fonction de minuterie** +Lors de la visualisation d'une recette, il serait utile d'avoir la possibilitĂ© d'activer un ou plusieurs minuteurs de cuisine. +[Issue](https://github.com/reaper47/recipya/issues/392) + +**Marquer une recette comme favorite** +Ajouter un bouton pour marquer une recette comme favorite. +[Issue](https://github.com/reaper47/recipya/issues/393) + +**DĂ©placer les boutons mobiles** +Mobile : dĂ©placer les boutons du titre vers le menu Ă  trois points. +[Issue](https://github.com/reaper47/recipya/issues/394) + +**Ajouter des fonctionnalitĂ©s d'accessibilitĂ©** +L'application web pourrait bĂ©nĂ©ficier de fonctionnalitĂ©s d'accessibilitĂ©. +[Issue](https://github.com/reaper47/recipya/issues/395) + +**RĂ©essayer les importations ayant Ă©chouĂ©** +ImplĂ©menter la possibilitĂ© de rĂ©essayer les importations ayant Ă©chouĂ©. +[Issue](https://github.com/reaper47/recipya/issues/398) + +**Gratter les aliments Samsung** +Grattez depuis https://app.samsungfood.com. +[Issue](https://github.com/reaper47/recipya/issues/399) +{{< /tab >}} + +{{< tab >}} +**Installateur de Windows**: +Sous Windows, l'utilisateur pourra installer le logiciel comme n'importe quel autre logiciel. Peut-ĂȘtre que d'autres plateformes seront prises en charge. +[Issue](https://github.com/reaper47/recipya/issues/29). + +**Substituts d'ingrĂ©dients**: +L'utilisateur pourra visualiser les substituts des ingrĂ©dients qu'il souhaite remplacer. +[Issue](https://github.com/reaper47/recipya/issues/37). + +**Listes de courses**: +L'utilisateur pourra crĂ©er des listes de courses Ă  partir de l'application. +[Issue](https://github.com/reaper47/recipya/issues/103). + +**CapacitĂ© de planification des repas** +Mettre en Ɠuvre le planificateur de repas. +[Issue](https://github.com/reaper47/recipya/issues/178) + +**L'API REST de Recipya** +ImplĂ©menter l'API REST de Recipya. +[Issue](https://github.com/reaper47/recipya/issues/234) + +**Soutenir davantage de bases de donnĂ©es nutritionnelles** +La base de donnĂ©es nutritionnelle amĂ©ricaine n’est pas la seule qui existe. +[Issue](https://github.com/reaper47/recipya/issues/259) + +**Ajouter une fonction de chronologie pour les recettes cuisinĂ©es** +Dans ces cas-lĂ , il serait trĂšs agrĂ©able d'avoir une fonction de chronologie, similaire Ă  celle de Mealie.. +[Issue](https://github.com/reaper47/recipya/issues/391) + +**IntĂ©grer ComfyUI pour gĂ©nĂ©rer des images par dĂ©faut** +Une image par dĂ©faut de sushi sur une assiette est utilisĂ©e lorsqu'une recette n'a pas d'image. Il n'y a pas de variĂ©tĂ© lorsque vous avez une page entiĂšre de recettes sans images. +[Issue](https://github.com/reaper47/recipya/issues/396) + +**IntĂ©grer l'API d'Ollama** +L'IA gĂ©nĂ©rative pourrait ĂȘtre intĂ©grĂ©e Ă  Recipya. +[Issue](https://github.com/reaper47/recipya/issues/397) +{{< /tab >}} + +{{< /tabs >}} \ No newline at end of file diff --git a/docs/website/content/fr/blog/2023-08-26-welcome.md b/docs/website/content/fr/blog/2023-08-26-welcome.md new file mode 100644 index 000000000..78b9c9aa1 --- /dev/null +++ b/docs/website/content/fr/blog/2023-08-26-welcome.md @@ -0,0 +1,31 @@ +--- +title: Bienvue +date: 2023-08-23 +authors: + - name: reaper47 + link: https://github.com/reaper47 + image: https://github.com/reaper47.png +tags: + - auto-hĂ©bergeable + - technologie + - recettes +excludeSearch: true +--- + +Je suis ravie de vous prĂ©senter le site officiel de Recipya ! Ce projet de gestionnaire de recettes est axĂ© sur la simplicitĂ© et la facilitĂ© d'utilisation. +Il est destinĂ© Ă  ĂȘtre utilisĂ© et apprĂ©ciĂ© par toute la famille. + +La raison est qu'aucune de ces solutions ne me satisfait. Soit elles Ă©taient soit trop lentes, difficiles Ă  installer, avaient trop de fonctionnalitĂ©s dont +je ne voulais pas ou dont je n'avais pas besoin, soit le site Web n'Ă©tait pas Ă  mon goĂ»t. Il n'existe pas non plus de gestionnaire de recettes Ă©crit +dans mon langage de programmation prĂ©fĂ©rĂ©, [Go](https://go.dev). J'ai donc dĂ©cidĂ© de tenter le coup et de crĂ©er l'un des meilleurs +programmes de gestion de recettes du marchĂ©. Le chemin Ă  parcourir sera semĂ© d'embĂ»ches et de longues Ă©tapes, car les autres solutions sont bien plus +matures que l'Ă©tat actuel de Recipya. Cependant, je crois que l'effort sera rĂ©compensĂ©. + +GrĂące Ă  Go, vous pouvez ĂȘtre sĂ»r que le logiciel est bien testĂ©, solide, facile Ă  lire et Ă  entretenir, et simple Ă  crĂ©er et Ă  installer. Le dĂ©veloppement doit +ĂȘtre simple. Veuillez lire le [guide du dĂ©veloppeur](/guide/fr/docs/development) si vous souhaitez contribuer avec du code. + +L'objectif principal du projet aujourd'hui est de progresser vers l'Ă©tape 1.0.0. Les problĂšmes restant Ă  rĂ©soudre avant de +cĂ©lĂ©brer la premiĂšre version officielle sur [GitHub](https://github.com/reaper47/recipya/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.0.0). + +Merci de votre lecture ! Si vous croyez en ce projet, n'hĂ©sitez pas Ă  nous donner un coup de main. Le [guide communautaire](/guide/fr/about/community-guide) +explique comment vous pouvez aider. Vous n'ĂȘtes pas obligĂ© de savoir coder 😊 \ No newline at end of file diff --git a/docs/website/content/fr/blog/2024-01-02-launch.md b/docs/website/content/fr/blog/2024-01-02-launch.md new file mode 100644 index 000000000..a0df92040 --- /dev/null +++ b/docs/website/content/fr/blog/2024-01-02-launch.md @@ -0,0 +1,44 @@ +--- +title: Le future est maintenant +date: 2024-01-02 +authors: + - name: reaper47 + link: https://github.com/reaper47 + image: https://github.com/reaper47.png +tags: + - auto-hĂ©bergeable + - technologie + - recettes + - version + - lancement +excludeSearch: true +--- + +Voici, votre cuisine tremblante pour [Recipya] https://github.com/reaper47/recipya) a Ă©tĂ© officiellement dĂ©chaĂźnĂ©e +dans la nature ! + +Je suis heureux de pouvoir enfin montrer au monde le logiciel de gestion de recettes sur lequel je travaille dur depuis +mon premier commit en mai 2021. Vous vous demandez peut-ĂȘtre pourquoi un autre gestionnaire de recettes alors que nous +avons [Tandoor](https://github.com/TandoorRecipes/recipes), [Mealie](https://github.com/mealie-recipes/mealie), [Paprika](https://www.paprikaapp.com/), +[Grocy](https://grocy.info/), [Cooklist](https://cooklist.com/), [Grossr](https://grossr.com/), et bien [d'autres encore*](https://github.com/awesome-selfhosted/awesome-selfhosted#recipe-management) ? +La rĂ©ponse est simple : aucun d'entre eux ne rĂ©pond Ă  mes besoins. Soit ils n'Ă©taient pas gratuits et open source, soit ils avaient trop de fonctionnalitĂ©s inutiles, soit leur interface Ă©tait lente, +soit ils Ă©taient trop difficiles Ă  installer. MĂȘme si je dois admettre que Tandoor Recipes est le roi aprĂšs l'avoir dĂ©couvert il y a quelques mois. + +Et c'est ainsi que j'ai commencĂ© ce projet ambitieux dans [Go](https://go.dev). L'objectif Ă©tait de crĂ©er un gestionnaire de recettes simple, propre +et puissant dont toute ma famille puisse profiter. Comme avec toute autre solution de ce type, vous pouvez ajouter des recettes Ă  votre collection de +recettes en constante augmentation, crĂ©er des livres de cuisine, afficher et imprimer des recettes. Une grande fonctionnalitĂ© qui diffĂ©rencie Recipya +des autres est son module de systĂšmes de mesure. Essentiellement, le logiciel peut convertir toutes les nouvelles recettes dans votre systĂšme de mesure +prĂ©fĂ©rĂ©, soit l'insatiable impĂ©rial ou le puissant mĂ©trique. Fini le temps oĂč vous convertissiez toutes vos cuillĂšres Ă  cafĂ© et tasses en grammes. Une +autre fonctionnalitĂ© puissante est le scraper de site Web. La plupart des autres solutions sont Ă©crites en Python et utilisent donc le +package [hhursev/recipe-scrapers](https://github.com/hhursev/recipe-scrapers) pour importer des recettes du Web. Comme il n'y en a pas d'Ă©crit en Go, +j'ai dĂ©cidĂ© de crĂ©er [le mien](https://github.com/reaper47/recipya/tree/main/internal/scraper) de toutes piĂšces. Il a Ă©tĂ© largement testĂ© et supporte +entiĂšrement [264](https://github.com/reaper47/recipya/blob/main/internal/services/migrations/20230522154229_websites.sql#L11) sites web au moment de la +rĂ©daction de cet article. Une autre fonctionnalitĂ© intĂ©ressante de Recipya est le calcul automatique des valeurs nutritionnelles pour 100 g lors de l'ajout +d'une recette. Consultez le [visiteur des fonctionnalitĂ©s](/guide/fr/docs/features/) pour dĂ©couvrir tout ce que le logiciel peut faire. + +Essayez-le ! Ne vous inquiĂ©tez pas si ce logiciel ne vous convient pas :) Le moyen le plus simple est d'essayer la [dĂ©mo](https://recipes.musicavis.ca). +D'autres moyens incluent l'installation de la [version 1.0.0](/guide/fr/docs/installation/build/) localement ou avec [Docker](/guide/fr/docs/installation/docker/). +Vous pouvez suivre les [instructions](/guide/fr/docs/installation/). + +Et cela marque le dĂ©but du voyage de Recipya. Les contributions sont [encouragĂ©es et bienvenues](/guide/fr/about/community-guide/). +La feuille de route est disponible [ici](/guide/fr/about/roadmap/). Merci ! diff --git a/docs/website/content/fr/blog/2024-03-28-v1.1.md b/docs/website/content/fr/blog/2024-03-28-v1.1.md new file mode 100644 index 000000000..ccfbce958 --- /dev/null +++ b/docs/website/content/fr/blog/2024-03-28-v1.1.md @@ -0,0 +1,41 @@ +--- +title: DĂ©couvrez la montagne montante +date: 2024-03-28 +authors: + - name: reaper47 + link: https://github.com/reaper47 + image: https://github.com/reaper47.png +tags: + - version + - auto-hĂ©bergeable + - technologie + - recettes +excludeSearch: true +--- + +Levez vos Ă©pĂ©es haut vers le soleil Ă©ternel alors que nous sortons victorieux d'une bataille monumentale ! +Nous rentrons Ă  notre taverne pour cĂ©lĂ©brer la fin de ces jours sombres. L'alcool et l'Ă©lan nous attendent. +Alors que nous sirotons notre septiĂšme biĂšre, nous remarquons une lumiĂšre Ă©blouissante dans la cuisine, l'ignorant +d'abord. Elle brille de plus en plus fort, si fort qu'elle nous aveugle. Nous nous levons, Ă©pĂ©es Ă  la main, marchant +ivres vers la source, pour dĂ©couvrir quelque chose d'un autre monde. La lumiĂšre aveuglante s'estompe Ă  mesure que +nous nous en approchons, rĂ©vĂ©lant une boĂźte rectangulaire, fine et inconnue. Nous nous rĂ©jouissons lorsque l'Ă©cran +affiche "Recipya v1.1.0 est maintenant disponible". Jared, as-tu compris ? Recipya v1.1.0 est sorti ! + +Une attention monumentale et mĂ©ticuleuse a Ă©tĂ© accordĂ©e Ă  l'interface utilisateur. Vous remarquerez Ă  quel point l'interface +amĂ©liorĂ©e est plus agrĂ©able et rĂ©active par rapport Ă  la version 1.0.0. Vous pouvez dĂ©sormais dĂ©sactiver les enregistrements +de compte si vous hĂ©bergez vous-mĂȘme une instance via le rĂ©seau. Vous pouvez Ă©galement vous connecter automatiquement si vous +n'avez pas l'intention d'avoir plus d'un compte utilisateur. Les recettes peuvent dorĂ©navant ĂȘtre triĂ©es et recherchĂ©es de diffĂ©rentes +maniĂšres. Avez-vous des recettes de fichiers texte ? Si c'est le cas, Recipya peut les importer. Veuillez ouvrir un problĂšme si +l'importation rĂ©sultante est dĂ©sactivĂ©e. Le dernier point fort que je souhaite mentionner est qu'un module de mise Ă  jour automatique +a Ă©tĂ© implĂ©mentĂ©, ce qui signifie que vous serez averti dans l'application dĂšs qu'une mise Ă  jour sera disponible. C'est vraiment cool ! +De plus, le module de rĂ©cupĂ©ration de recettes a Ă©tĂ© actualisĂ© pour garantir que tous les sites fonctionnent comme prĂ©vu. De plus, +vous pouvez dĂ©sormais rĂ©cupĂ©rer 28 sites Web supplĂ©mentaires. + +Veuillez lire les [notes de publication](/guide/fr/about/changelog/v1.1.0/) pour dĂ©couvrir tous les autres bonus gratuits apportĂ©s par cette mise Ă  jour ! + +La mise Ă  niveau est simple. Si vous utilisez Docker, rĂ©cupĂ©rez la derniĂšre image. Sinon, tĂ©lĂ©chargez la derniĂšre version depuis GitHub et remplacez +votre exĂ©cutable Recipya actuel par le dernier. Assurez-vous de sauvegarder votre base de donnĂ©es avant d'exĂ©cuter le nouvel exĂ©cutable au cas oĂč quelque +chose se passerait mal. + +Les contributions sont encouragĂ©es et bienvenues. Un conteneur de dĂ©veloppement a Ă©tĂ© ajoutĂ© pour vous permettre de commencer Ă  Ă©crire du code en un rien de +temps. La feuille de route a Ă©tĂ© mise Ă  jour et est disponible [ici](/guide/fr/about/roadmap/). Merci ! diff --git a/docs/website/content/fr/blog/2024-07-16-v1.2.0.md b/docs/website/content/fr/blog/2024-07-16-v1.2.0.md new file mode 100644 index 000000000..11ad5b6a5 --- /dev/null +++ b/docs/website/content/fr/blog/2024-07-16-v1.2.0.md @@ -0,0 +1,53 @@ +--- +title: Le voyage continue +date: 2024-07-16 +authors: + - name: reaper47 + link: https://github.com/reaper47 + image: https://github.com/reaper47.png +tags: + - version +excludeSearch: true +--- + +Ouf, quelle aventure ces 4 derniers mois ont Ă©tĂ© ! Aujourd'hui marque le jour oĂč Recipya v1.2.0 est officiellement sorti 🎉 +Alors, quoi de neuf ? Beaucoup de choses. Passons en revue quatre points marquants. + +Tout d'abord, le module de recettes prend dĂ©sormais en charge les outils, les mots-clĂ©s et les vidĂ©os. Oui, c'est vrai ! +Vous pouvez dorĂ©navant joindre des vidĂ©os aux recettes, et les recettes rĂ©cupĂ©rĂ©es qui contiennent des vidĂ©os intĂ©grĂ©es, +par exemple une vidĂ©o YouTube, les afficheront dans le carrousel multimĂ©dia. + +DeuxiĂšmement, la [recherche avancĂ©e](/guide/fr/docs/features/recipes/search/). Cette fonctionnalitĂ© vous permet d'affiner +votre requĂȘte de recherche pour obtenir les rĂ©sultats souhaitĂ©s. Par exemple, disons que votre base de donnĂ©es contient +plus de 200 recettes et que vous souhaitez rechercher toutes celles dont le titre contient `poulet`. Dans la barre de +recherche, vous devez saisir `nom:poulet` et appuyer sur EntrĂ©e. Toutes les recettes dont le titre contient `poulet` s'afficheront alors. + +TroisiĂšmement, l'importation est prise en charge depuis des dizaines d'applications de gestion de recettes. Vous pouvez dĂ©sormais importer des +recettes depuis Mealie, Tandoor, Paprika, AccuChef, ChefTap, Crouton, Easy Recipe Deluxe, Kalorio, Recipe Keeper, RecipeSage, Saffron. +Veuillez consulter la [documentation](/guide/fr/docs/features/integrations/) pour obtenir des instructions spĂ©cifiques au logiciel. + +Enfin, la page des paramĂštres a Ă©tĂ© dĂ©placĂ©e vers une boĂźte de dialogue de paramĂštres inspirĂ©e de [Open WebUI](https://github.com/open-webui/open-webui). +Elle a l'air fraĂźche, moderne et bien organisĂ©e. + +En bonus, Recipya a dĂ©sormais une mascotte officielle, Bananacat la mignonne ! + +![](https://github.com/raw/reaper47/recipya/main/web/static/mstile-150x150.png) + +De plus, de nombreux bugs, tels que des problĂšmes avec les importations de recettes JSON, la conversion et la mise Ă  l'Ă©chelle des ingrĂ©dients, +les courses de donnĂ©es et les recompressions d'images, ont heureusement Ă©tĂ© corrigĂ©s. Et, plus important pour beaucoup, plus de 100 sites Web +supplĂ©mentaires sont dĂ©sormais pris en charge ! Veuillez lire les [notes de version](/guide/fr/about/changelog/v1.2.0/) pour connaĂźtre toutes +les derniĂšres nouveautĂ©s. + +Ce qui m'a Ă©tonnĂ©, c'est que de nombreuses personnes ont ouvert une ou plusieurs demandes d'extraction pour cette version. C'est vraiment gĂ©nial ! +Je remercie tous les contributeurs — [bakker](https://github.com/bakker), [ged](https://github.com/gedw99), [Julian](https://github.com/jesp1999) et +[Marcus BlennegĂ„rd](https://github.com/mblennegard) — d'avoir fouillĂ© dans ma base de code, dont beaucoup n'ont jamais touchĂ© Ă  Go, et d'avoir amĂ©liorĂ© +ce qui devait l'ĂȘtre. Continuez votre excellent travail, les gars, et je suis heureux que vous apprĂ©ciez le logiciel. + +Vous vous demandez peut-ĂȘtre ce qui va suivre dans la version 1.3.0 et au-delĂ . Eh bien, attachez vos ceintures et vĂ©rifiez ce qui est prĂ©vu sur +la [feuille de route](/guide/about/roadmap/) ou dans les [problĂšmes GitHub](https://github.com/reaper47/recipya/issues). Je suis particuliĂšrement +enthousiaste Ă  l'idĂ©e d'amĂ©liorer le systĂšme de mesure. N'hĂ©sitez pas Ă  ouvrir des problĂšmes si vous avez des idĂ©es sur la façon dont Recipya peut +ĂȘtre amĂ©liorĂ©, en particulier sur la façon dont l'IA gĂ©nĂ©rative [pourrait ĂȘtre utilisĂ©e](https://github.com/reaper47/recipya/issues/397) +pourrait ĂȘtre utilisĂ©e. Vous ĂȘtes invitĂ©s Ă  travailler sur certains problĂšmes ouverts. Ne vous inquiĂ©tez pas, je ne mords pas ! + +Bon, il est temps pour moi de continuer Ă  coder et pour vous de commencer Ă  cuisiner. À plus tard, vous tous ! +[screenshot-recipes.webp](..%2F..%2F..%2F..%2F.github%2Fscreenshot-recipes.webp) \ No newline at end of file diff --git a/docs/website/content/fr/blog/_index.md b/docs/website/content/fr/blog/_index.md new file mode 100644 index 000000000..1d4f4a3c7 --- /dev/null +++ b/docs/website/content/fr/blog/_index.md @@ -0,0 +1,10 @@ +--- +title: Blog +--- + +
+{{< hextra/hero-badge link="index.xml" >}} + Flux RSS + {{< icon name="rss" attributes="height=14" >}} +{{< /hextra/hero-badge >}} +
diff --git a/docs/website/content/fr/blog/authors.yml b/docs/website/content/fr/blog/authors.yml new file mode 100644 index 000000000..46495a606 --- /dev/null +++ b/docs/website/content/fr/blog/authors.yml @@ -0,0 +1,5 @@ +reaper47: + name: reaper47 + title: Lead developer of Recipya + url: https://github.com/reaper47 + image_url: https://github.com/reaper47.png diff --git a/docs/website/content/fr/docs/_index.md b/docs/website/content/fr/docs/_index.md new file mode 100644 index 000000000..9d5cdc66c --- /dev/null +++ b/docs/website/content/fr/docs/_index.md @@ -0,0 +1,23 @@ +--- +linkTitle: Documentation +title: Introduction +weight: 1 +next: /docs/getting-started +--- + +Recipya est une application web propre pour la gestion de vos recettes familiales inoubliables, vous permettant de gĂ©rer et +partagez vos recettes prĂ©fĂ©rĂ©es. Il est axĂ© sur la simplicitĂ© pour que toute la famille puisse en profiter. + +## Features + +- [GĂ©rez vos recettes prĂ©fĂ©rĂ©es](features/recipes) +- [Importez des recettes de partout sur le web](features/recipes/add#website) +- [NumĂ©risez les recettes papier](features/recipes/add#scan) +- [Organisez vos recettes dans des livres de cuisine](features/cookbooks) +- [Migrez facilement vos recettes depuis Mealie, Tandoor et Nextcloud Cookbook](features/integrations) +- [Conversion automatique vers votre systĂšme de mesure prĂ©fĂ©rĂ©](features/measurement-systems) (imperial/metric) +- [Calculer automatiquement les informations nutritionnelles](features/nutrition-facts) +- [Imprimez n'importe quelle recette de votre collection](features/recipes/print) +- [EmpĂȘchez votre appareil de se mettre en veille pendant l'affichage d'une recette](features/recipes/wakelock) +- Suit le thĂšme de votre systĂšme (light/dark) +- Compilation croisĂ©e pour Windows, Linux, and macOS diff --git a/docs/website/content/fr/docs/deployment/_index.md b/docs/website/content/fr/docs/deployment/_index.md new file mode 100644 index 000000000..0fff7b48b --- /dev/null +++ b/docs/website/content/fr/docs/deployment/_index.md @@ -0,0 +1,19 @@ +--- +title: DĂ©ploiement +weight: 3 +next: /docs/deployment/local-network +prev: /docs/installation/windows-users +--- + +Apprenez comment dĂ©ployer Recipya pour le monde entier. L'application est auto-hĂ©bergeable. + +{{< cards >}} +{{< card link="local-network/" + title="RĂ©seau local" + icon="newspaper" + subtitle="Le projet peut ĂȘtre auto-hĂ©bergĂ© sur l'ensemble de votre rĂ©seau local pour y accĂ©der Ă  partir d'appareils autres que l'ordinateur sur lequel vous l'avez installĂ©." >}} +{{< card link="internet" + title="HĂ©bergement Web" + subtitle="Apprenez comment configurer votre serveur pour dĂ©ployer le logiciel." + icon="newspaper" >}} +{{< /cards >}} diff --git a/docs/website/content/fr/docs/deployment/internet.md b/docs/website/content/fr/docs/deployment/internet.md new file mode 100644 index 000000000..4842106ba --- /dev/null +++ b/docs/website/content/fr/docs/deployment/internet.md @@ -0,0 +1,96 @@ +--- +title: HĂ©bergement web +weight: 2 +next: /docs/development +--- + +## Apache + +Le [serveur HTTP Apache](https://httpd.apache.org) est un logiciel de serveur web open source qui set du contenu web sur l'internet. +Il est largement utilisĂ© en raison de sa fiabilitĂ©, de sa flexibilitĂ© et de son extensibilitĂ© dans la prise en charge de divers +technologies du Web. + +Le bloc suivant montre le minimum requis dans le fichier de configuration d'Apache pour hĂ©berger Recipya sur le rĂ©seau. + +```text + + + ServerAdmin [email] + ServerName [subdomain.domain.com] + + ProxyPass / http://127.0.0.1:/ + ProxyPassReverse / http://127.0.0.1:/ + + RewriteEngine on + RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] + RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] + RewriteRule .* ws://127.0.0.1:%{REQUEST_URI} [P] + + ErrorLog ${APACHE_LOG_DIR}/[log file] + CustomLog ${APACHE_LOG_DIR}/[log file] + + SSLCertificateFile [letsencrypt file] + SSLCertificateKeyFile [letsencrypt file] + Include [letsencrypt ssl file] + + +``` + +## Caddy + +[Caddy](https://caddyserver.com/) est un serveur web open source lĂ©ger et extensible qui obtient et renouvelle automatiquement les certificats TLS pour tous vos sites. + +Le bloc suivant montre le minimum requis dans le fichier de configuration de Caddy, nommĂ© Caddyfile, pour hĂ©berger Recipya sur le rĂ©seau. +Si vous utilisez Linux, assurez-vous que Recipya s'exĂ©cute en tant que [service](/guide/docs/deployment/local-network/#linux). + +```text +$ sudo cat /etc/caddy/Caddyfile + +domain.com { + encode zstd gzip + reverse_proxy localhost:PORT + + header /static/* Cache-Control "public, max-age=2678400, must-revalidate" + + log { + output file /var/log/caddy/domain.com.access.log + } +} +``` + +## Nginx + +[Nginx](https://en.wikipedia.org/wiki/Nginx) est un serveur web puissant qui peut Ă©galement ĂȘtre utilisĂ© comme proxy inverse, Ă©quilibreur de charge, proxy de messagerie et cache HTTP. +Il est largement utilisĂ© pour ses hautes performances, son efficacitĂ© dans la gestion des connexions simultanĂ©es et sa faible consommation de ressources. + +Le bloc suivant montre le minimum requis dans le fichier de configuration de Nginx pour hĂ©berger Recipya sur le rĂ©seau. + +```text +server { + listen 80; + server_name domain.com; + + gzip on; + gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript; + + location / { + proxy_pass http://127.0.0.1:/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location ~* /static/ { + add_header Cache-Control "public, max-age=2678400, must-revalidate"; + } + + location /ws { + proxy_pass http://127.0.0.1:8125; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + } +} +``` \ No newline at end of file diff --git a/docs/website/content/fr/docs/deployment/local-network.md b/docs/website/content/fr/docs/deployment/local-network.md new file mode 100644 index 000000000..c1323174f --- /dev/null +++ b/docs/website/content/fr/docs/deployment/local-network.md @@ -0,0 +1,50 @@ +--- +title: RĂ©seau local +weight: 1 +prev: /docs/installation/windows-users +--- + +Le projet est auto-hĂ©bergeable sur l'ensemble de votre rĂ©seau local pour y accĂ©der Ă  partir d'appareils autres que +l'ordinateur sur lequel vous l'avez installĂ©. + +## Docker + +AprĂšs avoir [installĂ© l'image Docker](/guide/docs/installation/docker), vous pouvez accĂ©der Ă  l'ensemble du rĂ©seau du site Ă  l'adresse http://:[](/guide/docs/installation/build/config-file/]. + +## Release Build + +### Linux + +CrĂ©ez un service pour exĂ©cuter l'application automatiquement au dĂ©marrage. + +```bash +sudo nano /etc/systemd/system/recipya.service +``` + +Copiez le contenu suivant dans le fichier nouvellement crĂ©Ă©. + +```bash +[Unit] +Description=Recipya Service +Wants=network.target + +[Service] +ExecStart=/path/to/binary/recipya serve +Environment=HOME=/root + +[Install] +WantedBy=multi-user.target +``` + +DĂ©marrez le service au dĂ©marrage. + +```bash +sudo systemctl start recipya.service +sudo systemctl enable recipya.service +``` + +Vous pouvez dĂ©sormais accĂ©der l'application sur votre rĂ©seau local Ă  l'adresse http://:[](/docs/installation/build/config-file)]. + +### Windows + +La faisabilitĂ© sur Windows reste Ă  explorer. diff --git a/docs/website/content/fr/docs/development/_index.md b/docs/website/content/fr/docs/development/_index.md new file mode 100644 index 000000000..8963cebb3 --- /dev/null +++ b/docs/website/content/fr/docs/development/_index.md @@ -0,0 +1,31 @@ +--- +title: Development +weight: 4 +next: /docs/development/intro +prev: /docs/deployment/internet +--- + +Learn how developing Recipya works. + +{{< cards >}} + {{< card link="/guide/docs/development/intro/" + title="Introduction" + icon="newspaper" + subtitle="This chapter serves as the developer's guide to building the application." >}} + {{< card link="/guide/docs/development/dependencies/" + title="Dependencies" + subtitle="Install the software required to build the application." + icon="newspaper" >}} + {{< card link="/guide/docs/development/build/" + title="Build" + subtitle="Learn how to build the application." + icon="newspaper" >}} + {{< card link="/guide/docs/development/test/" + title="Test" + subtitle="Learn how to write tests for the application." + icon="newspaper" >}} + {{< card link="/guide/docs/development/workflow/" + title="Workflow" + subtitle="2 items" + icon="book-open" >}} +{{< /cards >}} diff --git a/docs/website/content/fr/docs/development/build.md b/docs/website/content/fr/docs/development/build.md new file mode 100644 index 000000000..76891f21e --- /dev/null +++ b/docs/website/content/fr/docs/development/build.md @@ -0,0 +1,25 @@ +--- +title: Build +weight: 3 +--- + +Go to the project directory. + +```bash +cd recipya +``` + +Build the project. + +```bash +task build +``` + +Start the server. You will go through the interactive setup process if +your [configuration file](/docs/installation/build/config-file) is nonexistent. + +```bash +./bin/recipya serve +``` + +Access the application through a web browser at the address specified in the terminal. diff --git a/docs/website/content/fr/docs/development/devcontainer.md b/docs/website/content/fr/docs/development/devcontainer.md new file mode 100644 index 000000000..8d2ffbd11 --- /dev/null +++ b/docs/website/content/fr/docs/development/devcontainer.md @@ -0,0 +1,32 @@ +--- +title: Dev Container +weight: 2 +--- + +A dev container is a lightweight, portable development environment defined by a `devcontainer.json` file inside the .devcontainer folder, typically used with containerization technologies like Docker. +It allows developers to quickly set up their environment, with containerization technology being the only prerequisite, as the container defines the necessary tools, dependencies, and settings for +a consistent development environment across any platform. + + +## Visual Studio Code + +### Setup + +First follow the [vsccode](https://code.visualstudio.com/docs/devcontainers/containers#_installation) installation instructions. + +Then, clone the Recipya repository. +```bash +git clone --recurse-submodules https://github.com/reaper47/recipya.git +``` + +Finally, open the folder in a container by following these [steps](https://code.visualstudio.com/docs/devcontainers/containers#_quick-start-open-an-existing-folder-in-a-container). + +### Debugging + +To debug from the container: +1. Build the debug recipya: `task build-debug` +2. Start recipya: `./bin/recipya_debug serve` +3. Press F5 to start the VS Code debugger +4. Select the `recipya_debug` process from the list + + diff --git a/docs/website/content/fr/docs/development/intro.md b/docs/website/content/fr/docs/development/intro.md new file mode 100644 index 000000000..474f73cc3 --- /dev/null +++ b/docs/website/content/fr/docs/development/intro.md @@ -0,0 +1,41 @@ +--- +title: Introduction +weight: 1 +--- + +This chapter serves as the developer's guide to building Recipya. + +## Fetch the Code + +Run the following command to get the code. + +```bash +git clone --recurse-submodules https://github.com/reaper47/recipya.git +``` + +## Dependencies + +The following software is required to build the project. + +| Software | Version | +|-------------------------------------------|----------| +| [Go](https://go.dev/dl) | 1.22+ | +| [Node.js](https://nodejs.org/en/download) | 20.10.0+ | +| [Task](https://taskfile.dev/) | latest | +| [Templ](https://templ.guide/) | latest | +| [Hugo](https://gohugo.io/installation/) | latest | + +## Recommended CLI Programs + +The following lists CLI programs you should install to help you develop the project. + +- The [Goose](https://github.com/pressly/goose?tab=readme-ov-file#install) database migration tool + +## Technology Stack + +| Frontend | Backend | +|------------------------------------------|---------------------------------------------| +| [daisyUI](https://daisyui.com/) | [Go](https://go.dev/) | +| [htmx](https://htmx.org/) | [SQLite](https://www.sqlite.org/index.html) | +| [_hyperscript](https://hyperscript.org/) | | +| [templ](https://templ.guide/) | | \ No newline at end of file diff --git a/docs/website/content/fr/docs/development/test.md b/docs/website/content/fr/docs/development/test.md new file mode 100644 index 000000000..7a6575b2e --- /dev/null +++ b/docs/website/content/fr/docs/development/test.md @@ -0,0 +1,26 @@ +--- +title: Test +weight: 4 +next: /docs/development/workflow +--- + +Recipya has extensive test suites to ensure the software works as expected. +The tests are run during the [Go workflow](https://github.com/reaper47/recipya/blob/main/.github/workflows/go.yml) +when you open a pull request against the main branch. + +Execute the following when you wish to run all the tests locally. + +```bash +task test-no-build +``` + +## Writing Tests + +It is of vital important to write tests when submitting pull requests. This +[article](https://www.codemag.com/Article/1901071/10-Reasons-Why-Unit-Testing-Matters) explains why +unit testing matters. + +You will see many files under the `internal` folder that finish with `*_test.go`. That is where tests are written. +Please refer to the [development workflow](/guide/docs/development/workflow) section for more information and examples. + +Please feel free to add as many tests as you deem fit to any of those files. diff --git a/docs/website/content/fr/docs/development/workflow/_index.md b/docs/website/content/fr/docs/development/workflow/_index.md new file mode 100644 index 000000000..063d441fd --- /dev/null +++ b/docs/website/content/fr/docs/development/workflow/_index.md @@ -0,0 +1,19 @@ +--- +title: Workflow +weight: 4 +next: /docs/development/workflow/add-endpoint +prev: /docs/development/test +--- + +Learn the development workflow for features and enhancements. + +{{< cards >}} + {{< card link="/guide/docs/development/workflow/add-endpoint/" + title="Add an Endpoint" + icon="newspaper" + subtitle="It is essential to grasp how the server works before bringing any modifications." >}} + {{< card link="/guide/docs/development/workflow/import-website/" + title="Support a Website" + subtitle="You first need to understand how the scraper works to support a website." + icon="newspaper" >}} +{{< /cards >}} diff --git a/docs/website/content/fr/docs/development/workflow/add-endpoint.md b/docs/website/content/fr/docs/development/workflow/add-endpoint.md new file mode 100644 index 000000000..54deb8e67 --- /dev/null +++ b/docs/website/content/fr/docs/development/workflow/add-endpoint.md @@ -0,0 +1,217 @@ +--- +title: Add an Endpoint +--- + +It is essential to grasp how the server works before bringing any modifications. +Then, we will guide you through the process of incorporating an HTTP endpoint into the server. + +## The Server + +Recipya's server code is located within the `internal/server` package. The main file +is [server.go](https://github.com/reaper47/recipya/blob/main/internal/server/server.go). It exports a single with +a receiver function and a corresponding struct. + +- `Server`: This struct holds the HTTP router, the repository, the email service and the files service. You can + find the declaration of each service in the [internal/services/service.go](https://github.com/reaper47/recipya/blob/main/internal/services/service.go) + file. +- `Server.Run`: Starts the web server. +- `NewServer`: Creates a server that is ready for use. It requires the services to be passed as arguments. + +The HTTP router is initialized during the server's creation. We use [chi](https://github.com/go-chi/chi) due to +its simplicity in organizing endpoints. Please read the `mountHandlers` function to observe the router in action. + +## Example + +Let's walk through an example aimed at adding an endpoint that searches for recipes. + +### Router + +The first step involves adding the endpoint to the router. A suitable endpoint is `GET /recipes/search?q=query`. Open the +[internal/server/server.go](https://github.com/reaper47/recipya/blob/main/internal/server/server.go) file and include the +endpoint within the `/recipes` route block. The handler should be named `recipesSearchHandler`, following the + `{resource}{LastWordEndpoint}{Handler}` naming convention. + +```go {filename="internal/server/server.go"} +r.Route("/recipes", func(r chi.Router) { + r.Use(s.mustBeLoggedInMiddleware) + + r.Get("/search", recipesSearchHandler) + ... +}) +``` + +With the route established, it is time to declare the handler. Since we are dealing with the `/recipes` resource, +add the handler to the [handlers_recipes.go](https://github.com/reaper47/recipya/blob/main/internal/server/handlers_recipes.go) +file. + +```go {filename="internal/server/handlers_recipes.go"} +func (s *Server) recipesSearchHandler(w http.ResponseWriter, r *http.Request) { + panic("TODO: To implement") +} +``` + +We are now ready to create tests for our route. + +### Test + +Tests related to the server are written in the `handlers_{resource}_test.go` files. The tests for our handlers are +stored in the [handlers_recipes_test.go](https://github.com/reaper47/recipya/blob/main/internal/server/handlers_recipes_test.go) +file. The naming convention for test functions is `TestHandlers_{Resource}_{Endpoint}`. Let's write the foundation +function of our tests. + +```go {filename="internal/server/handlers_recipes_test.go"} +func TestHandlers_Recipes_AddManual(t *testing.T) { + srv := newServerTest() + + uri := "/recipes/search" +} +``` + +The subsequent step involves writing the different tests that add value to the users. + +```go {filename="internal/server/handlers_recipes_test.go"} +func TestHandlers_Recipes_AddManual(t *testing.T) { + srv := newServerTest() + + uri := "/recipes/search" + + t.Run("must be logged in", func(t *testing.T) { + assertMustBeLoggedIn(t, srv, http.MethodGet, uri) + }) + + t.Run("search fails", func(t *testing.T) { + t.Fail() + }) + + t.Run("user has no recipes", func(t *testing.T) { + t.Fail() + }) + + t.Run("user searches empty string", func(t *testing.T) { + t.Fail() + }) + + testcases := []struct { + name string + in string + want models.Recipes + }{ + {name: "user searches empty string", in: "", want: ...}, + {name: "user searches for lunch", in: "lunch", want: ...}, + ... + } + for _, tc := range testcases { + t.Run(tc.name, func(t *testing.T) { + rr := sendHxRequestAsLoggedIn(srv, http.MethodGet, uri+"?q="+tc.in, noHeader, nil) + + ... + }) + } +} +``` + +The body of the tests is omitted for brevity. Run the tests to ensure that they fail. + +### Handler + +The next step entails crafting the handler's code. Return to the `handles_recipes.go` file, and implement +the `recipesSearchHandler` function that will make the tests go green. For instance, the implementation could resemble +the following. + +```go {filename="internal/server/handlers_recipes.go"} +func (s *Server) recipesSearchHandler(w http.ResponseWriter, r *http.Request) { + userID := getUserID(r) + query := chi.URLParam(r, "q") + + recipes, err := s.Repository.SearchRecipes(query, userID) + if err != nil { + w.Header().Set("HX-Trigger", makeToast("Failed to search recipes.", errorToast)) + w.WriteHeader(http.StatusInternalServerError) + return + } + + templates.RenderComponent(w, "recipes", "search-recipes", templates.Data{Recipes: recipes}) +} +``` + +This code gets the logged-in user's ID and the search query, then passes them to the `SearchRecipes` function of the +repository. If this function encounters an error, an HTMX toast is sent to the user, accompanied by an HTTP 500 +status code. Otherwise, the HTML containing the recipes is sent. + +The `templates.RenderComponent` function displays a template from the [web/templates/components](https://github.com/reaper47/recipya/tree/main/web/templates/components) +directory. Its second parameter is the name of one of the files within that directory, excluding the extension. +The third parameter is the name of the template within a file in that folder. Lastly, the fourth parameter is +a [struct](https://github.com/reaper47/recipya/blob/main/internal/templates/data.go) containing data for the +GoHTML template. + +### Repository + +The final piece of the puzzle involves writing the `s.Repository.SearchRecipes` function. The repository is an interface +that declares functions for interacting with a database. Currently, Recipya supports [sqlite](https://github.com/reaper47/recipya/blob/main/internal/services/sqlite_service.go) +only. To support other databases, we need define a struct to satisfy the [RepositoryService](https://github.com/reaper47/recipya/blob/main/internal/services/service.go) +interface. + +Let's declare the function within the `RepositoryService` interface. The functions are declared alphabetically. + +```go {filename="internal/services/service.go"} +type RepositoryService interface { + // AddAuthToken adds an authentication token to the database. + AddAuthToken(selector, validator string, userID int64) error + + // AddRecipe adds a recipe to the user's collection. + AddRecipe(r *models.Recipe, userID int64) (int64, error) + + ... + + // SearchRecipes gets the user's recipes that include the search query. + SearchRecipes(query string, userID int64) (models.Recipes, error) + + ... + + // VerifyLogin checks whether the user provided correct login credentials. + // If yes, their user ID will be returned. Otherwise, -1 is returned. + VerifyLogin(email, password string) int64 + + // Websites gets the list of supported websites from which to extract the recipe. + Websites() models.Websites +} +``` + +Subsequently, let's implement the function within the `sqlite_service.go` file. + +```go {filename="internal/services/sqlite_service.go"} +func (s *SQLiteService) SearchRecipes(query string, userID int64) (models.Recipes, error) { + // s.Mutex.Lock() // Lock when you are inserting, updating or deleting from the database. + // defer s.Mutex.Unlock() + + ctx, cancel := context.WithTimeout(context.Background(), shortCtxTimeout) + defer cancel() + + rows, err := s.DB.QueryContext(ctx, statements.SelectSearchRecipes, query, userID) + if err != nil { + return nil, err + } + defer rows.Close() + + var recipes models.Recipes + for rows.Next() { + // code to scan a recipe + ... + recipes = append(recipes, c) + } + return recipes, nil +} +``` + +Remember, invoking `s.Mutex.Lock()` and `defer s.Mutex.Unlock()` is necessary when inserting, updating, or deleting +database entries. However, in this scenario, we're merely fetching data, rendering the mutex unnecessary. + +SQL statements are organized by action within the [internal/services/statements](https://github.com/reaper47/recipya/tree/main/internal/services/statements) +directory. The naming convention is `{Action}{Resource}`. In our case, a `SELECT` statement for fetching recipes is termed +`SelectSearchRecipes` and would reside in the +[select.go](https://github.com/reaper47/recipya/tree/main/internal/services/statements) file. + +Every statement is a `const` whose value is the SQLite statement itself. If Recipya ever supports other databases, we +shall find a way to organize the statements per database type. + +You can call it a day and open a PR once you wrote your SQL and the tests pass. \ No newline at end of file diff --git a/docs/website/content/fr/docs/development/workflow/import-website.md b/docs/website/content/fr/docs/development/workflow/import-website.md new file mode 100644 index 000000000..898a235db --- /dev/null +++ b/docs/website/content/fr/docs/development/workflow/import-website.md @@ -0,0 +1,85 @@ +--- +title: Support a Website +--- + +You first need to understand how the scraper works to support a website. +Then, we will guide you through adding a website to the supported list with an example. + +## The Scraper + +Recipya developed its own recipe scraper, which resides in the [internal/scraper](https://github.com/reaper47/recipya/tree/main/internal/scraper) +package. This scraper uses [goquery](https://github.com/PuerkitoBio/goquery) to extract information from web pages. +Its main file is [scraper.go](https://github.com/reaper47/recipya/blob/main/internal/scraper/scraper.go). You will find a single exposed function named `Scrape`, which +takes a URL and a [files service](https://github.com/reaper47/recipya/blob/main/internal/services/service.go#L102) as parameters. The files services is an interface with functions to +manipulate files in the OS. The use of an interface simplifies the process of mocking file operations during testing. + +You can read how the function works, but essentially it involves fetching the web page using Go's HTTP client, +creating a `goquery` document from the response, extracting into a +[models.RecipeSchema](https://github.com/reaper47/recipya/blob/main/internal/models/schema-recipe.go) struct, uploading +the image to the server, and finally returning the recipe schema model. The image is compressed and resized. +Whether compression is too high remains is subject to evaluation. + +## Workflow + +Let's assume a user requests https://www.example.com/recipes/declicious-bbq-steak to be supported. +This section will help you understand how to add this website to the list of supported sites. + +### Database + +Initially, a SQLite migration file needs to be created using Goose to insert the desired website into the +websites table. To do so, open a terminal and navigate to the root of the project. Then, generate +the migration file. + +```bash +task new-migration name=support_website +``` + +The `support_website` is the name of the migration. It can be anything else. The command will create a new file of the +form `timestamp_name_of_migration.sql` under `internal/services/migrations`. It will be embedded into the executable on build +and will be executed when the user starts the server. + +The final step involves inserting the website into the database: + +```sql {filename="internal/services/migrations/timestamp_support_website.sql"} +-- +goose Up +INSERT INTO websites (host, url) +VALUES ('example.com', 'https://www.example.com/recipes/declicious-bbq-steak'); + +-- +goose Down +DELETE FROM websites +WHERE host IN ('example.com'); +``` + +The host field could eventually be removed because we can determine it from Go using +the [net/url](https://pkg.go.dev/net/url#URL.Hostname) package. + +### Test + +Setting up a test involves accessing the website and creating a test case within `internal/scraper/scraper_{letter}_test.go`. +In our case, open [internal/scraper/scraper_E_test.go](https://github.com/reaper47/recipya/blob/main/internal/scraper/scraper_E_test.go) +because `example` begins with `E`. The tests within the `testcases` slice are listed alphabetically so insert your `name: "example.com"` +test where appropriate. You can use an existing struct as a template. + +Next, alternate between the recipe web page and the test to modify the `models.RecipeSchema` of +the `want` field. You can proceed to writing code once the setup is done. + +Executing the test by clicking the green play button to the left it should confirm its failure. +If you notice the test returns a `models.RecipeSchema` that looks valid, then replace the empty schema +of the test with the one from the output and make the test go green. Otherwise, continue to the next section. + +### The Go Code + +The initial step is to include the `example.com` case within the list of supported websites. To achieve this, open +[internal/scraper/websites.go](https://github.com/reaper47/recipya/blob/main/internal/scraper/websites.go). This file contains the `scrapeWebsite` function, which executes the relevant +scrape function for the parsed HTML web page. Your task involves adding the host within the switch-case block. +Therefore, add `case "example"` to the switch-case block +of [case 'e'](https://github.com/reaper47/recipya/blob/main/internal/scraper/websites.go#L64). + +Following this, the body of the case must be added by calling a custom HTML parser function. +Its naming convention is `scrape{Host}`. In your case, it would be `return scrapeExample(doc)`. +Then, create a new file named `example.go` under `internal/scraper` and add the +`func scrapeKuchniadomova(root *goquery.Document) (models.RecipeSchema, error)` function. Please check any +custom scraper file to understand how to write your own. + +Congratulations! That is all you need to know to support a website. Feel free to open a PR once your scrape function is +written and the tests pass. diff --git a/docs/website/content/fr/docs/features/_index.md b/docs/website/content/fr/docs/features/_index.md new file mode 100644 index 000000000..97c0f6a56 --- /dev/null +++ b/docs/website/content/fr/docs/features/_index.md @@ -0,0 +1,51 @@ +--- +title: Visite des fonctionnalitĂ©s +weight: 2 +prev: /docs +next: /docs/features/recipes +--- + +Aperçu des fonctionnalitĂ©s de Recipya. + +{{< cards >}} + {{< card link="admin/" + title="Administration" + subtitle="En savoir plus sur la page d'administration." + icon="newspaper" >}} + {{< card link="backups/" + title="Sauvegardes" + subtitle="DĂ©couvrez comment fonctionnent les sauvegardes et comment restaurer vos donnĂ©es." + icon="newspaper" >}} + {{< card link="cookbooks/" + title="Livres de cuisine" + subtitle="5 items" + icon="book-open" >}} + {{< card link="export-data/" + title="Exporter des donnĂ©es" + subtitle="Apprenez Ă  tĂ©lĂ©charger vos donnĂ©es." + icon="newspaper" >}} + {{< card link="integrations/" + title="IntĂ©grations" + subtitle="L'application propose des intĂ©grations avec d'autres applications de gestion de recettes." + icon="newspaper" >}} + {{< card link="measurement-systems/" + title="SystĂšmes de mesure" + subtitle="Les utilisateurs adhĂšrent gĂ©nĂ©ralement Ă  un systĂšme de mesure prĂ©fĂ©rĂ© et se sentent rarement Ă  l’aise avec plusieurs systĂšmes." + icon="newspaper" >}} + {{< card link="nutrition-facts/" + title="Information nutritionnelle" + subtitle="De nombreuses recettes manquent d'informations nutritionnelles que les utilisateurs peuvent ĂȘtre rĂ©ticents Ă  calculer eux-mĂȘmes. Recipya rĂ©sout ce problĂšme." + icon="newspaper" >}} + {{< card link="recipes/" + title="Recettes" + icon="book-open" + subtitle="8 items" >}} + {{< card link="reports/" + title="Rapports" + subtitle="DĂ©couvrez en quoi consiste le module de rapports." + icon="newspaper" >}} + {{< card link="updater/" + title="Mise Ă  jour" + subtitle="DĂ©couvrez en quoi consiste le module de mise Ă  jour automatique." + icon="newspaper" >}} +{{< /cards >}} diff --git a/docs/website/content/fr/docs/features/admin.md b/docs/website/content/fr/docs/features/admin.md new file mode 100644 index 000000000..4e4a0c532 --- /dev/null +++ b/docs/website/content/fr/docs/features/admin.md @@ -0,0 +1,15 @@ +--- +title: Administration +weight: 1 +--- + +Un administrateur est dĂ©fini comme l'utilisateur initial, gĂ©nĂ©ralement celui qui a configurĂ© Recipya. +Seul l'administrateur peut accĂ©der Ă  la page d'administration. + +Pour y accĂ©der, sĂ©lectionnez l'option « Admin » dans le menu de l'avatar. + +![](images/admin-access.webp) + +Vous pouvez ajouter et supprimer des utilisateurs. + +![](images/admin-overview.webp) diff --git a/docs/website/content/fr/docs/features/backups.md b/docs/website/content/fr/docs/features/backups.md new file mode 100644 index 000000000..a49d9e177 --- /dev/null +++ b/docs/website/content/fr/docs/features/backups.md @@ -0,0 +1,93 @@ +--- +title: Sauvegardes +weight: 2 +--- + +Il existe deux types de sauvegardes de donnĂ©es, chacune effectuĂ©e une fois tous les trois jours. +Un maximum de dix sauvegardes sont stockĂ©es pour chaque type, la sauvegarde la plus ancienne +ayant donc un mois. + +### Global + +Une sauvegarde globale est une sauvegarde qui enregistre l'Ă©tat actuel des donnĂ©es de l'application. +Elle est stockĂ©e sous `path/to/recipya/data/backup/global/`. + +Sa structure est la suivante : + +{{< filetree/container >}} + {{< filetree/folder name="recipya.{year-month-day}.zip" >}} + {{< filetree/folder name="Recipya" state="open" >}} + {{< filetree/folder name="Database" state="open" >}} + {{< filetree/file name="recipya.db" >}} + {{< /filetree/folder >}} + {{< filetree/folder name="Images" state="open" >}} + {{< filetree/folder name="Thumbnails" state="closed" >}} + {{< filetree/file name="{uuid_1}.webp" >}} + {{< filetree/file name="{uuid_2}.webp" >}} + {{< filetree/file name="{uuid_...}.webp" >}} + {{< filetree/file name="{uuid_N}.webp" >}} + {{< /filetree/folder >}} + {{< filetree/file name="{uuid_1}.webp" >}} + {{< filetree/file name="{uuid_2}.webp" >}} + {{< filetree/file name="{uuid_...}.webp" >}} + {{< filetree/file name="{uuid_N}.webp" >}} + {{< /filetree/folder >}} + {{< filetree/folder name="Logs" state="open" >}} + {{< filetree/file name="recipya.log" >}} + {{< /filetree/folder >}} + {{< filetree/folder name="Videos" state="open" >}} + {{< filetree/file name="{uuid_1}.webm" >}} + {{< filetree/file name="{uuid_2}.webm" >}} + {{< filetree/file name="{uuid_...}.webm" >}} + {{< filetree/file name="{uuid_N}.webm" >}} + {{< /filetree/folder >}} + {{< filetree/file name="config.json" >}} + {{< /filetree/folder >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +### Utilisateur + +Une sauvegarde utilisateur est une sauvegarde qui enregistre l'Ă©tat actuel des donnĂ©es d'un utilisateur. Les Ă©lĂ©ments suivants sont enregistrĂ©s : +- Recettes +- Livres de cuisine +- Recettes partagĂ©es +- Livres de cuisine partagĂ©s + +Les sauvegardes utilisateur sont stockĂ©es sous `path/to/recipya/data/Backup/users/{userID}`. + +Its structure is as follows: +{{< filetree/container >}} + {{< filetree/folder name="recipya.{year-month-day}.zip" >}} + {{< filetree/file name="recipes.zip" >}} + {{< filetree/file name="backup-deletes.sql" >}} + {{< filetree/file name="backup-inserts.sql" >}} + {{< /filetree/folder >}} +{{< /filetree/container >}} + +## Restaurer + +Il est possible de restaurer une sauvegarde prĂ©cĂ©dente. Les instructions pour procĂ©der dĂ©pendent de son type. + +### Sauvegarde globale + +La restauration d'une sauvegarde globale est effectuĂ©e uniquement par la personne ayant accĂšs au serveur. + +1. Fermez l'application +2. AccĂ©dez Ă  `path/to/recipya/data/Backup/global/` +3. DĂ©compressez la sauvegarde que vous souhaitez restaurer +4. Remplacez le contenu sous `path/to/recipya/data/*` par celui de la sauvegarde dĂ©compressĂ©e +5. Le cas Ă©chĂ©ant, supprimez `path/to/recipya/data/Database/recipya.db-shm` et `path/to/recipya/data/Database/recipya.db-wal` +6. DĂ©marrez l'application + +### Utilisateur + +La restauration d'une sauvegarde utilisateur s'effectue via l'interface utilisateur de l'application Web. + +1. AccĂ©dez Ă  la boĂźte de dialogue des paramĂštres +2. Cliquez sur l'onglet « DonnĂ©es » +3. Identifiez le paramĂštre **Restaurer Ă  partir de la sauvegarde** +4. SĂ©lectionnez la date de sauvegarde +5. Cliquez sur l'icĂŽne de lancement de fusĂ©e + +![](images/settings-restore-backup.webp) diff --git a/docs/website/content/fr/docs/features/cookbooks/_index.md b/docs/website/content/fr/docs/features/cookbooks/_index.md new file mode 100644 index 000000000..b0f99d212 --- /dev/null +++ b/docs/website/content/fr/docs/features/cookbooks/_index.md @@ -0,0 +1,31 @@ +--- +title: Livres de cuisine +weight: 3 +next: /docs/features/cookbooks/add +prev: /docs/features/backups +--- + +Un livre de cuisine est un recueil de recettes. Vous pouvez accĂ©der Ă  cette fonctionnalitĂ© Ă  partir de l'onglet « Livre de cuisine » de la barre latĂ©rale. + +{{< cards >}} + {{< card link="cookbooks/add" + title="CrĂ©er" + subtitle="Cliquez sur le bouton Ajouter un livre de recettes dans l'onglet de la fonction Livre de recettes pour crĂ©er un livre de recettes." + icon="newspaper" >}} + {{< card link="cookbooks/edit" + title="Modifier" + subtitle="Vous pouvez mettre Ă  jour l'image d'un livre de cuisine ainsi que rĂ©organiser les recettes." + icon="newspaper" >}} + {{< card link="cookbooks/delete" + title="Supprimer" + subtitle="Pour supprimer un livre de recettes de votre collection, cliquez d'abord sur les trois points verticaux en haut Ă  droite du livre de recettes que vous souhaitez supprimer." + icon="newspaper" >}} + {{< card link="cookbooks/download" + title="TĂ©lĂ©charger" + subtitle="N'importe lequel de vos livres de cuisine peut ĂȘtre tĂ©lĂ©chargĂ© sous forme de fichier PDF Ă  des fins physiques, hors ligne ou d'archivage." + icon="newspaper" >}} + {{< card link="cookbooks/share" + title="Partager" + subtitle="Vous pouvez partager un livre de cuisine avec votre famille et vos amis." + icon="newspaper" >}} +{{< /cards >}} diff --git a/docs/website/content/fr/docs/features/cookbooks/add.md b/docs/website/content/fr/docs/features/cookbooks/add.md new file mode 100644 index 000000000..a85faba4c --- /dev/null +++ b/docs/website/content/fr/docs/features/cookbooks/add.md @@ -0,0 +1,28 @@ +--- +title: CrĂ©er +weight: 1 +prev: /docs/features/cookbooks +--- + +Cliquez sur le bouton *Ajouter un livre de recettes* dans l'onglet de la fonction Livre de recettes pour crĂ©er un livre de recettes. Vous serez invitĂ© Ă  saisir son titre. + +![](images/cookbook-add.webp) + +Le livre de recettes s'affiche alors immĂ©diatement. L'image suivante montre deux livres de recettes crĂ©Ă©s. + +![](images/cookbooks-view.webp) + +## Ajout de recettes + +Votre livre de recettes est vide aprĂšs sa crĂ©ation. Vous pouvez ajouter des recettes en les recherchant dans la zone de recherche. + +![](images/cookbook-no-recipes.webp) + +AprĂšs avoir tapĂ©, appuyez sur **EntrĂ©e** ou cliquez sur la loupe pour soumettre votre demande de recherche. Les rĂ©sultats +s'afficheront sous la zone de recherche. Les requĂȘtes ne sont pas sensibles Ă  la casse. + +Enfin, cliquez sur le bouton *Ajouter* sur les recettes que vous souhaitez ajouter au livre de cuisine. + +![](images/cookbook-search-results-add.webp) + +![](images/cookbook-recipe-added.webp) diff --git a/docs/website/content/fr/docs/features/cookbooks/delete.md b/docs/website/content/fr/docs/features/cookbooks/delete.md new file mode 100644 index 000000000..643be094b --- /dev/null +++ b/docs/website/content/fr/docs/features/cookbooks/delete.md @@ -0,0 +1,19 @@ +--- +title: Supprimer +weight: 4 +next: /docs/features/measurement-systems +--- + +Pour supprimer un livre de recettes de votre collection, cliquez d'abord sur les trois points verticaux en haut Ă  droite +du livre de recettes que vous souhaitez supprimer. Cliquez ensuite sur l'Ă©lĂ©ment de sous-menu **Supprimer**. Vous serez invitĂ© Ă  +continuer avant la suppression. + +![](images/cookbook-delete.webp) + +{{< callout type="error" >}} +La suppression d'un livre de cuisine est irrĂ©versible. Il disparaĂźtra dĂ©finitivement. Cependant, ses recettes resteront intactes. +{{< /callout >}} + +Le livre de recettes sera alors supprimĂ© de votre collection et les modifications seront immĂ©diatement rĂ©percutĂ©es. + +![](images/cookbook-delete-aftermath.webp) diff --git a/docs/website/content/fr/docs/features/cookbooks/download.md b/docs/website/content/fr/docs/features/cookbooks/download.md new file mode 100644 index 000000000..06005b4f3 --- /dev/null +++ b/docs/website/content/fr/docs/features/cookbooks/download.md @@ -0,0 +1,13 @@ +--- +title: TĂ©lĂ©charger +weight: 5 +--- + +N'importe lequel de vos livres de cuisine peut ĂȘtre tĂ©lĂ©chargĂ© sous forme de fichier PDF Ă  des fins physiques, hors ligne ou d'archivage. +Cliquez [ici](https://sea.musicavis.ca/f/9f87258f6d5f485692d1) pour voir un Ă©chantillon. + +Pour tĂ©lĂ©charger un livre de cuisine, cliquez d'abord sur les trois points verticaux en haut Ă  droite +du livre de cuisine que vous souhaitez tĂ©lĂ©charger. Cliquez ensuite sur l'Ă©lĂ©ment de sous-menu **TĂ©lĂ©charger**. Le fichier sera +tĂ©lĂ©chargĂ© immĂ©diatement. + +![](images/cookbook-download.webp) diff --git a/docs/website/content/fr/docs/features/cookbooks/edit.md b/docs/website/content/fr/docs/features/cookbooks/edit.md new file mode 100644 index 000000000..b5ddc9f2b --- /dev/null +++ b/docs/website/content/fr/docs/features/cookbooks/edit.md @@ -0,0 +1,49 @@ +--- +title: Modifier +weight: 3 +--- + +Vous pouvez mettre Ă  jour l'image d'un livre de recettes ainsi que rĂ©organiser les recettes. + +## Mettre Ă  jour l'image + +Cliquez sur l'image d'un livre de recettes pour la mettre Ă  jour. +Vous serez alors invitĂ© Ă  utiliser le sĂ©lecteur de fichiers du systĂšme d'exploitation pour sĂ©lectionner une image. + +![](images/cookbooks-update-image.webp) + +L'image du livre de recettes sera mise Ă  jour immĂ©diatement aprĂšs la sĂ©lection du fichier. + +![](images/cookbooks-updated-image.webp) + +## RĂ©organiser les recettes + +Vous pouvez rĂ©organiser les recettes d'un livre de cuisine. Cela est utile lorsque vous souhaitez que les recettes +s'enchaĂźnent d'une certaine maniĂšre. Par exemple, vous pouvez vouloir que toutes les entrĂ©es apparaissent en premier, puis les dĂ©jeuners et +enfin les dĂźners. + +Pour les rĂ©organiser, ouvrez d'abord un livre de cuisine. Dans l'image suivante, nous voulons Ă©changer la position de la +premiĂšre recette avec celle de la derniĂšre. + +![](images/cookbook-recipes-before-reorder.webp) + +Ensuite, faites glisser le numĂ©ro de page de la recette que vous souhaitez mettre Ă  jour. Une fois Ă  la position souhaitĂ©e, +relĂąchez la souris. Les pages seront immĂ©diatement mises Ă  jour. + +![](images/cookbook-recipes-after-reorder.webp) + +## Changer de mode d'affichage + +Les livres de recettes peuvent ĂȘtre affichĂ©s dans les modes suivants : +- Grille +- Liste + +Pour les afficher sous forme de grille, cliquez sur l'icĂŽne de grille sous votre avatar. + +![](images/cookbooks-grid.webp) + +![](images/cookbooks-grid-mode.webp) + +Pour les afficher sous forme de liste, cliquez sur l’icĂŽne de liste. + +![](images/cookbooks-list.webp) diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-add.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-add.webp new file mode 100644 index 000000000..e5c369bee Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-add.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-delete-aftermath.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-delete-aftermath.webp new file mode 100644 index 000000000..e965efaa2 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-delete-aftermath.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-delete.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-delete.webp new file mode 100644 index 000000000..086dcb9ac Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-delete.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-download.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-download.webp new file mode 100644 index 000000000..557eaf7a0 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-download.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-no-recipes.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-no-recipes.webp new file mode 100644 index 000000000..2830762c3 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-no-recipes.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipe-added.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipe-added.webp new file mode 100644 index 000000000..d3258ee67 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipe-added.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipes-after-reorder.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipes-after-reorder.webp new file mode 100644 index 000000000..e7239fca4 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipes-after-reorder.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipes-before-reorder.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipes-before-reorder.webp new file mode 100644 index 000000000..7c6c43144 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-recipes-before-reorder.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-search-results-add.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-search-results-add.webp new file mode 100644 index 000000000..8ff96973c Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-search-results-add.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share-anonymous.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share-anonymous.webp new file mode 100644 index 000000000..e38cc0cf3 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share-anonymous.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share-link.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share-link.webp new file mode 100644 index 000000000..2d600fec6 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share-link.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share.webp new file mode 100644 index 000000000..9bd42030d Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbook-share.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-grid-mode.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-grid-mode.webp new file mode 100644 index 000000000..b877f43c5 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-grid-mode.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-grid.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-grid.webp new file mode 100644 index 000000000..741bc9c3a Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-grid.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-list.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-list.webp new file mode 100644 index 000000000..85ad24c6d Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-list.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-update-image.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-update-image.webp new file mode 100644 index 000000000..bda6dab31 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-update-image.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-updated-image.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-updated-image.webp new file mode 100644 index 000000000..b133f9c4b Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-updated-image.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-view.webp b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-view.webp new file mode 100644 index 000000000..dc7462ce2 Binary files /dev/null and b/docs/website/content/fr/docs/features/cookbooks/images/cookbooks-view.webp differ diff --git a/docs/website/content/fr/docs/features/cookbooks/share.md b/docs/website/content/fr/docs/features/cookbooks/share.md new file mode 100644 index 000000000..e94623bf0 --- /dev/null +++ b/docs/website/content/fr/docs/features/cookbooks/share.md @@ -0,0 +1,18 @@ +--- +title: Partager +weight: 5 +--- + +Vous pouvez partager un livre de recettes avec votre famille et vos amis. Pour ce faire, vous devez d'abord gĂ©nĂ©rer le lien de partage du livre +de recettes en cliquant sur l'option de sous-menu **Partager** dans le menu de l'icĂŽne Ă  trois points. + +![](images/cookbook-share.webp) + +Le lien vous sera alors affichĂ©, prĂȘt Ă  ĂȘtre envoyĂ© Ă  votre famille et Ă  vos amis. + +![](images/cookbook-share-link.webp) + +Toute personne qui ouvre ce lien verra les recettes que vous avez ajoutĂ©es au livre de cuisine que vous avez partagĂ©. +Toute recette peut alors ĂȘtre consultĂ©e sans avoir Ă  se connecter. + +![](images/cookbook-share-anonymous.webp) \ No newline at end of file diff --git a/docs/website/content/fr/docs/features/export-data.md b/docs/website/content/fr/docs/features/export-data.md new file mode 100644 index 000000000..2fba94b01 --- /dev/null +++ b/docs/website/content/fr/docs/features/export-data.md @@ -0,0 +1,25 @@ +--- +title: Exporter des donnĂ©es +weight: 3 +prev: /docs/features/cookbooks +--- + +Vous pouvez tĂ©lĂ©charger vos donnĂ©es depuis l'onglet « DonnĂ©es » dans les paramĂštres. + +![](images/settings-export.webp) + +La liste dĂ©roulante est organisĂ©e en groupes. Passons-les en revue. + +## Recettes + +Vous pouvez exporter vos recettes dans les formats suivants. +- JSON +- PDF + +Le format JSON exporte toutes vos recettes dans une archive zippĂ©e organisĂ©e hiĂ©rarchiquement, chaque dossier +contenant un fichier JSON de la recette. Le fichier de recette suit la +norme [SchĂ©ma de recette](https://schema.org/Recipe). + +Le format PDF exporte toutes vos recettes dans une archive zippĂ©e. Chaque fichier de l'archive suit la convention de +dĂ©nomination +`{nom de la recette}.pdf`. \ No newline at end of file diff --git a/docs/website/content/fr/docs/features/images/admin-access.webp b/docs/website/content/fr/docs/features/images/admin-access.webp new file mode 100644 index 000000000..554b0c5b5 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/admin-access.webp differ diff --git a/docs/website/content/fr/docs/features/images/admin-overview.webp b/docs/website/content/fr/docs/features/images/admin-overview.webp new file mode 100644 index 000000000..0c8292206 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/admin-overview.webp differ diff --git a/docs/website/content/fr/docs/features/images/reports-access-after.webp b/docs/website/content/fr/docs/features/images/reports-access-after.webp new file mode 100644 index 000000000..ad13a3a55 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/reports-access-after.webp differ diff --git a/docs/website/content/fr/docs/features/images/reports-access.webp b/docs/website/content/fr/docs/features/images/reports-access.webp new file mode 100644 index 000000000..b375e4c2d Binary files /dev/null and b/docs/website/content/fr/docs/features/images/reports-access.webp differ diff --git a/docs/website/content/fr/docs/features/images/reports-errors.webp b/docs/website/content/fr/docs/features/images/reports-errors.webp new file mode 100644 index 000000000..af0b46a81 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/reports-errors.webp differ diff --git a/docs/website/content/fr/docs/features/images/reports-fresh.webp b/docs/website/content/fr/docs/features/images/reports-fresh.webp new file mode 100644 index 000000000..5d21e42d0 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/reports-fresh.webp differ diff --git a/docs/website/content/fr/docs/features/images/reports-latest.webp b/docs/website/content/fr/docs/features/images/reports-latest.webp new file mode 100644 index 000000000..1f9feed92 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/reports-latest.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-access.webp b/docs/website/content/fr/docs/features/images/settings-access.webp new file mode 100644 index 000000000..df506c634 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-access.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-convert-automatically.webp b/docs/website/content/fr/docs/features/images/settings-convert-automatically.webp new file mode 100644 index 000000000..b6d88e6b7 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-convert-automatically.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-export.webp b/docs/website/content/fr/docs/features/images/settings-export.webp new file mode 100644 index 000000000..20f6cbb1f Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-export.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-integrations-nextcloud.webp b/docs/website/content/fr/docs/features/images/settings-integrations-nextcloud.webp new file mode 100644 index 000000000..124794793 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-integrations-nextcloud.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-integrations.webp b/docs/website/content/fr/docs/features/images/settings-integrations.webp new file mode 100644 index 000000000..e2233e8d9 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-integrations.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-measurement-system.webp b/docs/website/content/fr/docs/features/images/settings-measurement-system.webp new file mode 100644 index 000000000..5e88434e3 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-measurement-system.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-nutrition-facts.webp b/docs/website/content/fr/docs/features/images/settings-nutrition-facts.webp new file mode 100644 index 000000000..1cd5fc971 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-nutrition-facts.webp differ diff --git a/docs/website/content/fr/docs/features/images/settings-restore-backup.webp b/docs/website/content/fr/docs/features/images/settings-restore-backup.webp new file mode 100644 index 000000000..92e4b2157 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/settings-restore-backup.webp differ diff --git a/docs/website/content/fr/docs/features/images/update-available.webp b/docs/website/content/fr/docs/features/images/update-available.webp new file mode 100644 index 000000000..4ba889fae Binary files /dev/null and b/docs/website/content/fr/docs/features/images/update-available.webp differ diff --git a/docs/website/content/fr/docs/features/images/update-button.webp b/docs/website/content/fr/docs/features/images/update-button.webp new file mode 100644 index 000000000..2d0903fd4 Binary files /dev/null and b/docs/website/content/fr/docs/features/images/update-button.webp differ diff --git a/docs/website/content/fr/docs/features/images/update-success-restart.webp b/docs/website/content/fr/docs/features/images/update-success-restart.webp new file mode 100644 index 000000000..1f6b6f61c Binary files /dev/null and b/docs/website/content/fr/docs/features/images/update-success-restart.webp differ diff --git a/docs/website/content/fr/docs/features/integrations.md b/docs/website/content/fr/docs/features/integrations.md new file mode 100644 index 000000000..690af13b0 --- /dev/null +++ b/docs/website/content/fr/docs/features/integrations.md @@ -0,0 +1,185 @@ +--- +title: IntĂ©grations +weight: 4 +next: /docs/measurement-system +--- + +Recipya propose des intĂ©grations d'importation de donnĂ©es avec d'autres applications de gestion de recettes. + +Vous pouvez importer vos recettes depuis Nextcloud Cookbook, Mealie et Tandoor en utilisant leurs API respectives depuis l'onglet +`Data` dans les paramĂštres. Il vous suffit de sĂ©lectionner la solution Ă  partir de laquelle vous souhaitez importer, ainsi que son +URL de base et vos identifiants. + +![](images/settings-integrations.webp) + +Comme pour les autres applications, vous pouvez le faire depuis la fonctionnalitĂ© [Add recipe → Import](/guide/fr/docs/features/recipes/add/#import). + +## CompatibilitĂ© + +| IntĂ©gration | Importer | Emplacement | +|------------------------------------------------------------------------|:--------------------:|:------------------------:| + | [AccuChef](https://www.accuchef.com) | {{< icon "check" >}} | Add recipe → Import | +| [ChefTap](https://cheftap.com) | {{< icon "check" >}} | Add recipe → Import | +| [Crouton](https://crouton.app) | {{< icon "check" >}} | Add recipe → Import | +| [Easy Recipe Deluxe](https://easy-recipe-deluxe.software.informer.com) | {{< icon "check" >}} | Add recipe → Import | + | [Kalorio](https://www.kalorio.de) | {{< icon "check" >}} | Add recipe → Import | +| [MasterCook](https://www.mastercook.com) | {{< icon "check" >}} | Add recipe → Import | + | [Mealie](https://mealie.io) | {{< icon "check" >}} | Settings → Data → Import | +| [Nextcloud Cookbook](https://apps.nextcloud.com/apps/cookbook) | {{< icon "check" >}} | Settings → Data → Import | + | [Paprika](https://www.paprikaapp.com) | {{< icon "check" >}} | Add recipe → Import | +| [Recipe Keeper](https://www.paprikaapp.com) | {{< icon "check" >}} | Add recipe → Import | +| [RecipeSage](https://recipesage.com/#/welcome) | {{< icon "check" >}} | Add recipe → Import | + | [Saffron](https://www.mysaffronapp.com) | {{< icon "check" >}} | Add recipe → Import | + | [Tandoor](https://tandoor.dev) | {{< icon "check" >}} | Settings → Data → Import | + +## Instructions spĂ©cifiques Ă  l'application. + +### AccuChef + +Suivez ces Ă©tapes pour importer vos recettes depuis AccuChef : + +1. Exportez vos recettes dans AccuChef. +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier « .txt » exportĂ©. +5. Cliquez sur « Soumettre ». + +### ChefTap + +Suivez ces Ă©tapes pour importer vos recettes depuis ChefTap : + +1. Depuis l'application mobile « ChefTap », exportez vos recettes au format texte. +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier « .zip » exportĂ©. +5. Cliquez sur « Soumettre ». + +### Crouton + +Suivez ces Ă©tapes pour importer vos recettes depuis Crouton : + +1. Exportez vos recettes dans « Crouton ». +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier « .zip » exportĂ©. +5. Cliquez sur « Envoyer ». + +### Easy Recipe Deluxe + +Suivez ces Ă©tapes pour importer vos recettes depuis Easy Recipe Deluxe : + +1. Exportez vos recettes dans « Easy Recipe Deluxe » : Publier -> Texte. +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier « .txt » exportĂ©. +5. Cliquez sur « Envoyer ». + +## ChefTap + +Suivez ces Ă©tapes pour importer vos recettes depuis ChefTap : + +1. Depuis l'application mobile « ChefTap », exportez vos recettes au format texte. +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier « .zip » exportĂ©. +5. Cliquez sur « Soumettre ». + +## Easy Recipe Deluxe + +Suivez ces Ă©tapes pour importer vos recettes depuis Easy Recipe Deluxe : + +1. Exportez vos recettes dans « Easy Recipe Deluxe » : Publier -> Texte. +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier « .txt » exportĂ©. +5. Cliquez sur « Envoyer ». + +### Kalorio + +Suivez ces Ă©tapes pour importer des recettes depuis Kalorio. + +1. Exportez vos recettes [Kalorio](https://www.kalorio.de/index.php?Mod=Ka&Cap=EI&SCa=kal_export) au format `CookML`. +2. Dans Recipya, cliquez sur le bouton `Ajouter une recette`. +3. Cliquez sur le bouton `Importer`. +4. SĂ©lectionnez le fichier exportĂ©. +5. Cliquez sur `Soumettre`. + +## MasterCook + +Vous pouvez importer vos recettes MasterCook Ă  partir du bouton d'importation de la page +[ajouter une recette](/guide/fr/docs/features/recipes/add#import). Vous pouvez soit tĂ©lĂ©charger un seul +fichier `.mxp`, soit une archive zip contenant plusieurs fichiers `.mxp`. + +Ce [site Web](https://www.grassrootsrecipes.com/) contient d'innombrables collections de recettes MasterCook que vous pouvez essayer. + +### Mealie + +Suivez ces Ă©tapes pour importer vos recettes depuis une instance Mealie : + +1. AccĂ©dez au paramĂštre **IntĂ©grations** et sĂ©lectionnez l'option **Mealie**. +2. Cliquez sur le bouton adjacent au menu d'options. +3. Dans la boĂźte de dialogue qui s'affiche, saisissez l'URL et les informations d'identification d'une instance Mealie. +4. Cliquez sur le bouton **Importer**. + +## Nextcloud Cookbook + +[Nextcloud Cookbook](https://github.com/nextcloud/cookbook) est une application pour [Nextcloud](https://nextcloud.com/). +Suivez ces Ă©tapes pour importer vos recettes Ă  partir d'une instance Nextcloud Cookbook : + +1. AccĂ©dez au paramĂštre **IntĂ©grations** et sĂ©lectionnez l'option **Nextcloud**. +2. Cliquez sur le bouton adjacent. +3. Dans la boĂźte de dialogue qui s'affiche, saisissez l'URL et les informations d'identification de votre instance Nextcloud. + ![](images/settings-integrations-nextcloud.webp) +4. Cliquez sur le bouton **Importer**. + +### Paprika + +Suivez ces Ă©tapes pour importer des recettes depuis Paprika. + +1. [Exportez](https://www.paprikaapp.com/help/windows/#exportrecipes) vos recettes Paprika au format « Paprika Recipe Format ». +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez votre fichier « .paprikarecipes ». Vous pouvez Ă©galement compresser plusieurs fichiers « .paprikarecipes » ensemble et sĂ©lectionner le fichier rĂ©sultant. +5. Cliquez sur « Soumettre ». + +### Recipe Keeper + +Suivez ces Ă©tapes pour importer des recettes depuis Recipe Keeper. + +1. AccĂ©dez aux paramĂštres dans Recipe Keeper. +2. AccĂ©dez Ă  l'onglet « Importer/Exporter ». +3. Cliquez sur le bouton « Fichier .zip Recipe Keeper » en haut. +4. Enregistrez le fichier. +5. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +6. Cliquez sur le bouton « Importer ». +7. SĂ©lectionnez le fichier zip que vous avez enregistrĂ©. +8. Cliquez sur « Soumettre ». + +### RecipeSage + +Suivez ces Ă©tapes pour importer des recettes depuis RecipeSage. + +1. Exportez vos recettes [RecipeSage](https://docs.recipesage.com/docs/tutorials/settings/export/) au format « JSON-LD ». +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier exportĂ©. +5. Cliquez sur « Envoyer ». + +### Saffron + +Suivez ces Ă©tapes pour importer des recettes depuis Saffron. + +1. Exportez vos recettes [Saffron](https://www.mysaffronapp.com/account). +2. Dans Recipya, cliquez sur le bouton « Ajouter une recette ». +3. Cliquez sur le bouton « Importer ». +4. SĂ©lectionnez le fichier « .zip » exportĂ©. +5. Cliquez sur « Soumettre ». + +### Tandoor + +Suivez ces Ă©tapes pour importer vos recettes Ă  partir d'une instance Tandoor : + +1. AccĂ©dez au paramĂštre **IntĂ©grations** et sĂ©lectionnez l'option **Tandoor**. +2. Cliquez sur le bouton adjacent. +3. Dans la boĂźte de dialogue qui s'affiche, saisissez l'URL et les informations d'identification d'une instance Tandoor. +4. Cliquez sur le bouton **Importer**. diff --git a/docs/website/content/fr/docs/features/measurement-systems.md b/docs/website/content/fr/docs/features/measurement-systems.md new file mode 100644 index 000000000..c8697f9be --- /dev/null +++ b/docs/website/content/fr/docs/features/measurement-systems.md @@ -0,0 +1,36 @@ +--- +title: SystĂšmes de mesure +weight: 5 +prev: /docs/features/cookbooks/share +--- + +Les utilisateurs adhĂšrent gĂ©nĂ©ralement Ă  un systĂšme de mesure prĂ©fĂ©rĂ© et se sentent rarement Ă  l’aise avec plusieurs systĂšmes. + +Dans Recipya, vous avez la possibilitĂ© de dĂ©finir votre systĂšme de mesure prĂ©fĂ©rĂ©. Les systĂšmes actuellement pris en charge sont +les systĂšmes impĂ©rial et mĂ©trique. Les EuropĂ©ens utilisent principalement le systĂšme mĂ©trique, tandis que les AmĂ©ricains +favoriser l’impĂ©rial. + +Toutes les options liĂ©es Ă  cela se trouvent sous l'onglet **Recipes** dans les paramĂštres. + +## Changement de systĂšme + +Vous pouvez modifier le systĂšme de mesure en fonction de votre prĂ©fĂ©rence en sĂ©lectionnant un systĂšme dans la liste dĂ©roulante Ă  cĂŽtĂ© du paramĂštre **Measurement system**. + +{{< callout type="info" >}} +Le systĂšme de mesure par dĂ©faut est impĂ©rial. +{{< /callout >}} + +![](images/settings-measurement-system.webp) + +Toutes vos recettes de votre collection seront converties dans le systĂšme de mesure que vous avez sĂ©lectionnĂ©. +Ce processus est automatique si vous avez cochĂ© l'option **Convert automatically**. + +## Conversion automatique + +SĂ©lectionnez cette option si vous souhaitez convertir automatiquement les nouvelles recettes selon votre systĂšme de mesure prĂ©fĂ©rĂ©. + +Par exemple, supposons que vous prĂ©fĂ©rez le systĂšme de mesure mĂ©trique et que vous souhaitiez importer une dĂ©licieuse recette Ă  partir d'un +site Web amĂ©ricain. Le site Web utilise le systĂšme impĂ©rial. Lors de l'importation, la recette sera automatiquement convertie au systĂšme mĂ©trique +si la case **Convert automatically** est cochĂ©e. Sinon, la recette restera dans le systĂšme impĂ©rial. + +![](images/settings-convert-automatically.webp) diff --git a/docs/website/content/fr/docs/features/nutrition-facts.md b/docs/website/content/fr/docs/features/nutrition-facts.md new file mode 100644 index 000000000..9c6ac0192 --- /dev/null +++ b/docs/website/content/fr/docs/features/nutrition-facts.md @@ -0,0 +1,25 @@ +--- +title: Information nutritionnelle +weight: 6 +--- + +De nombreuses recettes manquent d’informations nutritionnelles et les utilisateurs peuvent ne pas vouloir calculer eux-mĂȘmes. Pour rĂ©soudre ce problĂšme, +Recipya peut calculer automatiquement les informations nutritionnelles pour vous lors de l'ajout d'une recette. + +Pour activer cette fonctionnalitĂ©, accĂ©dez Ă  la boĂźte de dialogue des paramĂštres depuis l'avatar, cliquez sur l'onglet `Recipes` Ă  gauche et +cochez la case du paramĂštre **Calculate nutrition facts**. + +![](images/settings-nutrition-facts.webp) + +Ce paramĂštre est initialement dĂ©sactivĂ©, car l'ajout d'une recette peut prendre jusqu'Ă  quelques secondes supplĂ©mentaires. Cela se produit, car +l'interrogation de la base de donnĂ©es nutritionnelles pour chaque ingrĂ©dient prend du temps. Le traitement est effectuĂ© en arriĂšre-plan +pour garantir que votre interaction avec l'application ne soit pas interrompue. + +Recipya fait de son mieux pour calculer les informations nutritionnelles en fonction des ingrĂ©dients d'une recette. Cependant, veuillez +comprendre que le calcul est plus indicatif qu'absolu. Les informations sont basĂ©es sur le [FoodData Central](https://fdc.nal.usda.gov) du dĂ©partement +de l'agriculture des États-Unis, qui est un systĂšme de donnĂ©es intĂ©grĂ© qui fournit des donnĂ©es de profil nutritionnel Ă©tendues. Veuillez [ouvrir un problĂšme](https://github.com/reaper47/recipya/issues/new?assignees=&labels=bug&projects=&template=bug_report.md&title=Problem+with+nutrition+facts) +sur GitHub si jamais vous remarquez une recette avec des informations nutritionnelles qui semblent trĂšs inexactes. + +{{< callout type="info" >}} +Le calcul ne peut ĂȘtre effectuĂ© qu'avec des ingrĂ©dients Ă©crits en anglais, car la base de donnĂ©es est uniquement en anglais. +{{< /callout >}} diff --git a/docs/website/content/fr/docs/features/recipes/_index.md b/docs/website/content/fr/docs/features/recipes/_index.md new file mode 100644 index 000000000..78ad86b3c --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/_index.md @@ -0,0 +1,47 @@ +--- +title: Recettes +weight: 7 +next: /docs/features/recipes/add +prev: /docs/features/nutrition-facts +--- + +Vous pouvez ajouter, afficher, modifier et supprimer n'importe quelle recette de votre collection. + +{{< cards >}} + {{< card link="recipes/add" + title="Ajouter" + icon="newspaper" + subtitle="Vous pouvez ajouter une recette en cliquant sur le bouton bleu Ajouter une recette au milieu de la barre d'application." >}} + {{< card link="recipes/view" + title="Vue" + subtitle="Pour visualiser une recette, vous devez d'abord consulter votre collection de recettes." + icon="newspaper" >}} + {{< card link="recipes/edit" + title="Modifier" + subtitle="Pour modifier une recette dans votre collection, vous devez d'abord afficher une recette." + icon="newspaper" >}} + {{< card link="recipes/delete" + title="Supprimer" + subtitle="Pour supprimer une recette de votre collection, vous devez d'abord afficher une recette." + icon="newspaper" >}} + {{< card link="recipes/search" + title="Recherche" + subtitle="Vous pouvez rechercher des recettes Ă  partir de la zone de texte de recherche situĂ©e sous le bouton Ajouter des recettes de la page d'affichage des recettes." + icon="newspaper" >}} + {{< card link="recipes/share" + title="Partager" + subtitle="Une recette peut ĂȘtre partagĂ©e avec toute personne disposant du lien de partage." + icon="newspaper" >}} + {{< card link="recipes/print" + title="Imprimer" + subtitle="Une recette peut ĂȘtre imprimĂ©e pour votre commoditĂ© et vos prĂ©fĂ©rences." + icon="newspaper" >}} + {{< card link="recipes/wakelock" + title="Verrouillage de rĂ©veil" + subtitle="Apprenez Ă  garder votre appareil Ă©veillĂ© pendant que vous cuisinez." + icon="newspaper" >}} + {{< card link="recipes/categories" + title="CatĂ©gories" + subtitle="Apprenez Ă  gĂ©rer vos catĂ©gories de recettes." + icon="newspaper" >}} +{{< /cards >}} diff --git a/docs/website/content/fr/docs/features/recipes/add.md b/docs/website/content/fr/docs/features/recipes/add.md new file mode 100644 index 000000000..f97105f9b --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/add.md @@ -0,0 +1,134 @@ +--- +title: Ajouter +weight: 1 +prev: /docs/features/recipes +--- + +Vous pouvez ajouter une recette en cliquant sur le bouton bleu **Ajouter une recette** au milieu de la barre d'application. + +![](images/add-recipe.webp) + +## Ajout de recettes + +Quatre façons diffĂ©rentes d’ajouter une recette Ă  votre collection vous seront prĂ©sentĂ©es. + +- [Manuellement](#manuellement) +- [Scan](#scan) +- [Site Web](#site-web) +- [Importer](#importer) + +![](images/add-recipe-options.webp) + +### Manuellement + +La mĂ©thode la plus simple pour saisir une recette consiste Ă  remplir un formulaire dĂ©crivant votre plat. + +Les champs suivants, indiquĂ©s par un astĂ©risque (*), sont obligatoires : +- Titre +- IngrĂ©dients +- Instructions + +Les valeurs par dĂ©faut des champs vides aprĂšs la soumission sont les suivantes : +- MĂ©dia → Image de sushi par dĂ©faut +- CatĂ©gorie → « non catĂ©gorisĂ© » +- Portions → 1 +- Source → « Inconnu » +- Mots-clĂ©s → aucun +- Temps → 15 min (prĂ©paration), 30 min (cuisson) +- Description → vide +- Outils → aucun + +![](images/add-recipe-manual.webp) + +Ces raccourcis pourraient vous ĂȘtre utiles si vous remplissez le formulaire depuis votre ordinateur. + +| Raccourci | Comment activer | RĂ©sultat | +|---------------|----------------------------------------------|----------------------------------| +| EntrĂ©e | Focus sur la saisie de texte d'un ingrĂ©dient | Ajouter une ligne d'ingrĂ©dients | +| Ctrl + EntrĂ©e | Focus sur une zone de texte d'instruction | Ajouter une ligne d'instructions | + +Vous pouvez Ă©galement rĂ©organiser les ingrĂ©dients et les instructions en faisant glisser la flĂšche verticalement. + +### Scan + +Vous pouvez tĂ©lĂ©charger une image ou un scan d'une recette manuscrite ou imprimĂ©e pour l'ajouter Ă  votre collection. +Cette option est utile pour numĂ©riser vos recettes papier et celles de votre famille. + +Pour ce faire, cliquez sur le bouton *TĂ©lĂ©charger* et sĂ©lectionnez un document sur votre ordinateur. + +![](images/add-recipe-scan.webp) + +Vous pouvez tĂ©lĂ©charger des fichiers dans les formats suivants : +- Images (JPEG/JPG, PNG, BMP, HEIF) +- PDF +- TIFF + +{{< callout type="warning" >}} +Vous devez disposer d’une instance [Azure AI Document Intelligence](/guide/fr/docs/installation/integrations#azure-AI Document Intelligence) pour utiliser cette fonctionnalitĂ©. +{{< /callout >}} + +### Site Web + +Vous pouvez importer n'importe quelle recette Ă  partir des sites Web pris en charge. Pour ce faire, cliquez sur le bouton **RĂ©cupĂ©rer**, +collez l'URL ou les URL de la recette, chacune sur une nouvelle ligne, et cliquez sur *Envoyer*. Une notification +apparaĂźtra lorsque l'opĂ©ration sera terminĂ©e. + +Son bouton d'action exĂ©cute une action en fonction du rĂ©sultat. Lorsque vous avez importĂ© une URL et que +l'opĂ©ration rĂ©ussit, l'action vous redirige vers la recette. Sinon, vous serez redirigĂ© +vers le dernier rapport. + +Pour afficher tous les sites Web pris en charge, veuillez cliquer sur le mot supported. Vous pouvez extraire un +site Web qui ne figure pas dans la liste prise en charge, mais l'extraction de la recette peut Ă©chouer. Veuillez ouvrir un problĂšme sur GitHub si +c'est le cas. + +![](images/add-recipe-website.gif) + +### Importer + +Vous pouvez importer des recettes dans les formats suivants : +- `.json` : si elles sont conformes Ă  la norme [Recipe schema](https://schema.org/Recipe) +- `.mxp` : recettes exportĂ©es depuis [MasterCook](https://www.mastercook.com) +- `.paprikarecipes` : recettes exportĂ©es depuis [Paprika](https://www.paprikaapp.com) dans le format `Paprika Recipe Format` +- `.txt` +- `.zip` + +![](images/add-recipe-import.webp) + +Vous pouvez tĂ©lĂ©charger un fichier unique ou une archive zip contenant plusieurs recettes. Les recettes d'un fichier zip peuvent ĂȘtre +organisĂ©es par dossier. Chaque dossier peut contenir le fichier `.json` de la recette. Tous les autres fichiers d'un dossier +seront ignorĂ©s pendant le traitement. + +Vous pouvez Ă©galement tĂ©lĂ©charger des recettes exportĂ©es Ă  partir des applications suivantes : +- AccuChef +- ChefTap +- Crouton +- Easy Recipe Deluxe +- Kalorio +- MasterCook +- Paprika +- Recipe Keeper +- RecipeSage +- Saffron + +Veuillez vous rĂ©fĂ©rer Ă  la [page des intĂ©grations](/guide/fr/docs/features/integrations/) pour obtenir des instructions spĂ©cifiques Ă  l'application. + +#### Bookmarklet de Recipya + +Le bookmarklet Recipya permet Ă  un utilisateur d'exĂ©cuter un extrait JavaScript Ă  partir de son navigateur qui extrait une recette d'une page Web. + +Il est destinĂ© aux sites Web qui Ă  la fois : +- ne peuvent pas ĂȘtre rĂ©cupĂ©rĂ©s via une requĂȘte serveur, c'est-Ă -dire qui ont quelque chose comme un captcha ou une dĂ©tection de bot +- qui ont des extraits de script de recette json+ld sur leur page + +Pour obtenir le bookmarklet : +1. AccĂ©dez Ă  `/recipes/add` +2. Ajoutez le lien `Recipya Bookmarklet` Ă  vos favoris dans la carte `Import`. + +Pour l'utiliser : +1. Ouvrez une page Web de recette, par exemple [double banana nut bread](https://www.allrecipes.com/recipe/231961/double-banana-nut-bread/) +2. Cliquez sur le bookmarklet +3. Un fichier JSON est tĂ©lĂ©chargĂ© lorsqu'il rĂ©ussit. + +Vous pouvez ensuite importer la recette extraite depuis `Ajouter une recette -> Importer`. + +![](images/recipya-bookmarklet.gif) diff --git a/docs/website/content/fr/docs/features/recipes/categories.md b/docs/website/content/fr/docs/features/recipes/categories.md new file mode 100644 index 000000000..e84a9fd86 --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/categories.md @@ -0,0 +1,12 @@ +--- +title: CatĂ©gories +weight: 8 +--- + +Vous pouvez gĂ©rer vos catĂ©gories depuis l'option **CatĂ©gories** dans l'onglet **Recettes** des paramĂštres. + +![](images/recipes-categories.webp) + +Pour ajouter une catĂ©gorie, saisissez-la dans le dernier badge vide et cliquez sur la coche. + +Pour supprimer une catĂ©gorie, cliquez sur le bouton « x » Ă  droite de n'importe quel badge de catĂ©gorie. \ No newline at end of file diff --git a/docs/website/content/fr/docs/features/recipes/delete.md b/docs/website/content/fr/docs/features/recipes/delete.md new file mode 100644 index 000000000..dfefccc52 --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/delete.md @@ -0,0 +1,14 @@ +--- +title: Supprimer +weight: 4 +--- + +Pour supprimer une recette de votre collection, vous devez d'abord [afficher](/guide/fr/docs/features/recipes/view) +une recette. Cliquez ensuite sur l'icĂŽne de la corbeille Ă  droite du titre de la recette. Il vous sera demandĂ© si +vous souhaitez continuer avant la suppression. + +![](images/delete-recipe.webp) + +{{< callout type="error" >}} +La suppression d'une recette est irrĂ©versible. Elle disparaĂźtra dĂ©finitivement. +{{< /callout >}} diff --git a/docs/website/content/fr/docs/features/recipes/edit.md b/docs/website/content/fr/docs/features/recipes/edit.md new file mode 100644 index 000000000..a17542c9a --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/edit.md @@ -0,0 +1,14 @@ +--- +title: Modifier +weight: 3 +--- + +Pour Ă©diter une recette de votre collection, vous devez d'abord [visualiser](/guide/fr/docs/features/recipes/view) une recette. +Cliquez ensuite sur l'icĂŽne en forme de crayon Ă  gauche du titre de la recette. + +![](images/edit-recipe-enter.webp) + +Vous entrerez dans le mode Ă©dition, qui vous permettra de modifier n'importe quelle information de la recette. +Appuyez sur le bouton bleu **Mettre Ă  jour** en bas du formulaire pour enregistrer vos modifications. + +![](images/edit-recipe.webp) diff --git a/docs/website/content/fr/docs/features/recipes/images/add-recipe-import.webp b/docs/website/content/fr/docs/features/recipes/images/add-recipe-import.webp new file mode 100644 index 000000000..303f7aa71 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/add-recipe-import.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/add-recipe-manual.webp b/docs/website/content/fr/docs/features/recipes/images/add-recipe-manual.webp new file mode 100644 index 000000000..fe2eecef7 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/add-recipe-manual.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/add-recipe-options.webp b/docs/website/content/fr/docs/features/recipes/images/add-recipe-options.webp new file mode 100644 index 000000000..e122c4fb2 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/add-recipe-options.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/add-recipe-scan.webp b/docs/website/content/fr/docs/features/recipes/images/add-recipe-scan.webp new file mode 100644 index 000000000..0d5c10116 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/add-recipe-scan.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/add-recipe-website.gif b/docs/website/content/fr/docs/features/recipes/images/add-recipe-website.gif new file mode 100644 index 000000000..fe5bdcbcf Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/add-recipe-website.gif differ diff --git a/docs/website/content/fr/docs/features/recipes/images/add-recipe.webp b/docs/website/content/fr/docs/features/recipes/images/add-recipe.webp new file mode 100644 index 000000000..80c8a8f42 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/add-recipe.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/delete-recipe.webp b/docs/website/content/fr/docs/features/recipes/images/delete-recipe.webp new file mode 100644 index 000000000..cf54b4fa7 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/delete-recipe.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/edit-recipe-enter.webp b/docs/website/content/fr/docs/features/recipes/images/edit-recipe-enter.webp new file mode 100644 index 000000000..1b0657db8 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/edit-recipe-enter.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/edit-recipe.webp b/docs/website/content/fr/docs/features/recipes/images/edit-recipe.webp new file mode 100644 index 000000000..c62e3cbad Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/edit-recipe.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/print-dialog.webp b/docs/website/content/fr/docs/features/recipes/images/print-dialog.webp new file mode 100644 index 000000000..b13d63abb Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/print-dialog.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/print-icon.webp b/docs/website/content/fr/docs/features/recipes/images/print-icon.webp new file mode 100644 index 000000000..8f5979408 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/print-icon.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/recipes-categories.webp b/docs/website/content/fr/docs/features/recipes/images/recipes-categories.webp new file mode 100644 index 000000000..1c45fef5d Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/recipes-categories.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/recipes-search-help.webp b/docs/website/content/fr/docs/features/recipes/images/recipes-search-help.webp new file mode 100644 index 000000000..eeb89afb4 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/recipes-search-help.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/recipes-search-query.webp b/docs/website/content/fr/docs/features/recipes/images/recipes-search-query.webp new file mode 100644 index 000000000..141fcb607 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/recipes-search-query.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/recipes-search-view.webp b/docs/website/content/fr/docs/features/recipes/images/recipes-search-view.webp new file mode 100644 index 000000000..85eebd889 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/recipes-search-view.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/recipya-bookmarklet.gif b/docs/website/content/fr/docs/features/recipes/images/recipya-bookmarklet.gif new file mode 100644 index 000000000..42afce6eb Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/recipya-bookmarklet.gif differ diff --git a/docs/website/content/fr/docs/features/recipes/images/search-settings.webp b/docs/website/content/fr/docs/features/recipes/images/search-settings.webp new file mode 100644 index 000000000..04ea6340e Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/search-settings.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/sharing-dialog.webp b/docs/website/content/fr/docs/features/recipes/images/sharing-dialog.webp new file mode 100644 index 000000000..bcbc836ba Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/sharing-dialog.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/sharing-icon.webp b/docs/website/content/fr/docs/features/recipes/images/sharing-icon.webp new file mode 100644 index 000000000..51b86613e Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/sharing-icon.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/view-recipe-enter.webp b/docs/website/content/fr/docs/features/recipes/images/view-recipe-enter.webp new file mode 100644 index 000000000..7bd9acb41 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/view-recipe-enter.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/view-recipe-scale.webp b/docs/website/content/fr/docs/features/recipes/images/view-recipe-scale.webp new file mode 100644 index 000000000..1d171b056 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/view-recipe-scale.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/view-recipe.webp b/docs/website/content/fr/docs/features/recipes/images/view-recipe.webp new file mode 100644 index 000000000..f605f9a1c Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/view-recipe.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/wakelock-off.webp b/docs/website/content/fr/docs/features/recipes/images/wakelock-off.webp new file mode 100644 index 000000000..e2cd7bee9 Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/wakelock-off.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/images/wakelock-on.webp b/docs/website/content/fr/docs/features/recipes/images/wakelock-on.webp new file mode 100644 index 000000000..75feab9ae Binary files /dev/null and b/docs/website/content/fr/docs/features/recipes/images/wakelock-on.webp differ diff --git a/docs/website/content/fr/docs/features/recipes/print.md b/docs/website/content/fr/docs/features/recipes/print.md new file mode 100644 index 000000000..168993cd9 --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/print.md @@ -0,0 +1,15 @@ +--- +title: Imprimer +weight: 7 +--- + +Une recette peut ĂȘtre imprimĂ©e selon vos prĂ©fĂ©rences et votre convenance. + +Pour imprimer, vous devez d'abord [afficher une recette](/guide/fr/docs/features/recipes/view). +Ensuite, cliquez sur l'icĂŽne d'imprimante Ă  droite du titre de la recette. + +![](images/print-icon.webp) + +La boĂźte de dialogue d’impression s’affichera alors. + +![](images/print-dialog.webp) diff --git a/docs/website/content/fr/docs/features/recipes/search.md b/docs/website/content/fr/docs/features/recipes/search.md new file mode 100644 index 000000000..ea37cd0e6 --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/search.md @@ -0,0 +1,67 @@ +--- +title: Recherche +weight: 5 +--- + +Vous pouvez rechercher des recettes Ă  partir de la zone de texte de recherche situĂ©e sous le bouton Ajouter des recettes de la page d'affichage des recettes. +Tapez vos mots-clĂ©s dĂ©limitĂ©s par un espace, une virgule ou les deux. Appuyez ensuite sur la touche EntrĂ©e pour lancer la recherche. +![](images/recipes-search-view.webp) + +## Recherche de base + +La recherche de base est celle dans laquelle l'utilisateur saisit quelque chose dans la zone de recherche sans utiliser aucun +des concepts de recherche avancĂ©e. + +Le mode de recherche par dĂ©faut est __Recherche complĂšte__. En d'autres termes, votre requĂȘte recherchera les champs suivants de toutes les +recettes vous appartenant : +- Titre +- Description +- CatĂ©gorie +- IngrĂ©dients +- Instructions +- Mots-clĂ©s +- Source +- Outils + +Les rĂ©sultats seront classĂ©s en fonction de leur pertinence par rapport aux termes de recherche. + +![](images/recipes-search-query.webp) + +## Recherche AvancĂ©e + +La fonction de recherche avancĂ©e vous permet d'adapter la requĂȘte de recherche Ă  des besoins spĂ©cifiques. Elle est similaire Ă  l'utilisation des fonctions de recherche +avancĂ©es de Google. Par exemple, la recherche de `magnetic declination site:.edu` dans Google donnera des rĂ©sultats +contenant les termes « dĂ©clinaison magnĂ©tique » pour les sites Web du domaine de premier niveau `.edu`. + +Le tableau suivant fournit des exemples de la maniĂšre d'effectuer diffĂ©rentes recherches. Vous pouvez combiner n'importe laquelle des recherches dans n'importe quel ordre. + +| Recherche | Exemple | +|----------------------------------------|--------------------------------------------------------| +| N'importe quel champ | big green squash | +| Par catĂ©gorie | cat:dinner | +| Plusieurs catĂ©gories | cat:breakfast,dinner | +| Sous-catĂ©gorie | cat:beverages:cocktails | +| N'importe quel champ de catĂ©gorie | chicken cat:dinner | +| Par nom | name:chicken kyiv | +| Par nom et par catĂ©gorie | name:chicken kyiv cat:lunch | +| N'importe quel champ, nom et catĂ©gorie | best name:chicken kyiv cat:lunch | +| Par description | desc:tender savory stacked | +| Plusieurs descriptions | desc:tender savory stacked,juicy crispy pieces chicken | +| Par cuisine | cuisine:ukrainian | +| Plusieurs cuisines | cuisine:ukrainian,japanese | +| Par ingrĂ©dient | ing:onions | +| Plusieurs ingrĂ©dients | ing:olive oil,thyme,butter | +| Par instruction | ins:preheat oven 350 | +| Plusieurs instructions | ins:preheat oven 350,melt butter | +| Par mot-clĂ© | tag:biscuits | +| Plusieurs mots-clĂ©s | tag:biscuits,mardi gras | +| Par outil | tool:frying pan | +| Plusieurs outils | tool:frying pan,wok | +| Par source | src:allrecipes.com | +| Plusieurs sources | src:allrecipes.com,tasteofhome.com | + +### Aide + +Vous pouvez accĂ©der Ă  la boĂźte de dialogue d'aide Ă  la recherche avancĂ©e en cliquant sur le bouton d'information Ă  l'extrĂȘme gauche de la barre de recherche. + +![](images/recipes-search-help.webp) diff --git a/docs/website/content/fr/docs/features/recipes/share.md b/docs/website/content/fr/docs/features/recipes/share.md new file mode 100644 index 000000000..22927227f --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/share.md @@ -0,0 +1,17 @@ +--- +title: Partager +weight: 6 +--- + +Une recette peut ĂȘtre partagĂ©e avec toute personne disposant du lien de partage. + +Pour gĂ©nĂ©rer le lien, vous devez d'abord [afficher une recette](/guide/fr/docs/features/recipes/view). +Ensuite, cliquez sur l'icĂŽne de partage Ă  droite du titre de la recette. + +![](images/sharing-icon.webp) + +Le lien sera gĂ©nĂ©rĂ© et affichĂ© pour que vous puissiez le copier, prĂȘt Ă  ĂȘtre envoyĂ© Ă  vos amis. +Sa convention de nommage est `{host}/r/{UUID}`. L'UUID empĂȘchera tout conflit avec la recette partagĂ©e +de quelqu'un d'autre, car aucun UUID n'est identique. + +![](images/sharing-dialog.webp) diff --git a/docs/website/content/fr/docs/features/recipes/view.md b/docs/website/content/fr/docs/features/recipes/view.md new file mode 100644 index 000000000..c3571f6a2 --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/view.md @@ -0,0 +1,52 @@ +--- +title: Vue +weight: 2 +--- + +Pour visualiser une recette, vous devez d’abord cliquer sur le bouton « Afficher » ou sur l’image d’une recette sous votre collection de recettes. + +![](images/view-recipe-enter.webp) + +Les informations de la recette vous seront ensuite prĂ©sentĂ©es afin que vous puissiez les suivre pendant la cuisson. + +![](images/view-recipe.webp) + +{{< callout type="info" >}} +Vous pouvez cliquer ou appuyer sur les ingrĂ©dients et les instructions pour les rayer. +{{< /callout >}} + +## Mise Ă  l'Ă©chelle + +Pour adapter une recette, utilisez le nombre saisi dans le carrĂ© de rendement pour sĂ©lectionner le nombre de portions que vous souhaitez prĂ©parer. + +Si vous souhaitez prĂ©parer plus de portions, saisissez un nombre plus Ă©levĂ©. +Si vous souhaitez en prĂ©parer moins, saisissez un nombre plus faible. + +Par exemple, la recette ci-dessus donne 4 portions. Pour doubler la recette, dĂ©finissez le nombre de portions Ă  8. +La recette sera alors automatiquement adaptĂ©e pour prĂ©parer 8 portions de shiitake et de riz au poulet, comme indiquĂ© ci-dessous. + +![](images/view-recipe-scale.webp) + +{{< callout type="warning" >}} +La fonction de mise Ă  l'Ă©chelle ne met actuellement Ă  l'Ă©chelle que les ingrĂ©dients, laissant les instructions intactes. Cela +signifie que si une instruction mentionne une quantitĂ© spĂ©cifique d'un ingrĂ©dient, cette quantitĂ© ne sera pas mise Ă  l'Ă©chelle. +Cette limitation sera abordĂ©e Ă  l'avenir. +{{< /callout >}} + +## VidĂ©os + +Il est possible de joindre des vidĂ©os aux recettes. Chaque vidĂ©o sera convertie au format de fichier multimĂ©dia audiovisuel +[WebM](https://en.wikipedia.org/wiki/WebM) Ă  l'aide de [FFmpeg](https://en.wikipedia.org/wiki/FFmpeg). + +FFmpeg est inclus dans la version Docker. + +Sinon : +- Si vous utilisez Windows, le programme d'installation tentera de l'installer Ă  l'aide de [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/). +- Si vous utilisez Linux, vous devez l'installer vous-mĂȘme en exĂ©cutant la commande appropriĂ©e pour votre distribution. +- Si vous utilisez macOS, vous devez l'installer vous-mĂȘme en exĂ©cutant `brew install ffmpeg`. + +La conversion vidĂ©o peut ĂȘtre lente. Par consĂ©quent, la vidĂ©o peut ne pas ĂȘtre immĂ©diatement disponible pour la visualisation aprĂšs l'avoir jointe Ă  une recette. + +Les recettes des sites Web incluent parfois des vidĂ©os, par exemple [celle-ci](https://www.allrecipes.com/recipe/10813/best-chocolate-chip-cookies/). +Elles seront extraites automatiquement et seront affichĂ©es dans le carrousel d'images. Elles ne sont pas tĂ©lĂ©chargĂ©es localement ni +converties en WebM Ă  l'aide de FFmpeg. Ils sont conservĂ©s dans leur format d'origine. diff --git a/docs/website/content/fr/docs/features/recipes/wakelock.md b/docs/website/content/fr/docs/features/recipes/wakelock.md new file mode 100644 index 000000000..7bd404728 --- /dev/null +++ b/docs/website/content/fr/docs/features/recipes/wakelock.md @@ -0,0 +1,28 @@ +--- +title: Verrouillage de rĂ©veil +weight: 8 +next: /docs/features/cookbooks +--- + +Imaginez que vous prĂ©parez une recette Ă  partir d'un appareil mobile. Vous rassemblez tous les ingrĂ©dients et vous ĂȘtes prĂȘt Ă  commencer, +mais votre appareil se met en veille. Vous dĂ©verrouillez votre appareil et commencez Ă  vous salir les mains dans la farine. Votre appareil +s'endort Ă  nouveau. Vous vous lavez les mains, dĂ©verrouillez votre tĂ©lĂ©phone et continuez la recette. Votre appareil se met +en veille Ă  nouveau. Vous ĂȘtes frustrĂ©. Ce processus se rĂ©pĂšte encore et encore. Votre appareil est sale et votre nourriture aussi. + +Vous ne voulez pas que l'appareil se mette en veille pendant que vous cuisinez. + +Recipya rĂ©sout ce problĂšme en fournissant un wakelock du navigateur lors de la visualisation d'une recette, empĂȘchant ainsi l'appareil +de se mettre en veille. + +{{< callout type="info" >}} +Le wakelock est activĂ© automatiquement lors de la visualisation d'une recette. +{{< /callout >}} + +Sur les navigateurs pris en charge, vous remarquerez une icĂŽne d'ampoule Ă  l'extrĂȘme gauche du titre d'une recette. Lorsque l'ampoule +est allumĂ©e, le wakelock est activĂ© et l'Ă©cran ne se met pas en veille. + +![](images/wakelock-on.webp) + +Lorsqu'il est dĂ©sactivĂ©, le wakelock est dĂ©sactivĂ© et l'Ă©cran finira par se mettre en veille. + +![](images/wakelock-off.webp) diff --git a/docs/website/content/fr/docs/features/reports.md b/docs/website/content/fr/docs/features/reports.md new file mode 100644 index 000000000..b118e0657 --- /dev/null +++ b/docs/website/content/fr/docs/features/reports.md @@ -0,0 +1,52 @@ +--- +title: Rapports +weight: 8 +prev: /docs/features/recipes +--- + +La page des rapports vous permet de visualiser les journaux d'opĂ©rations aprĂšs l'importation de recettes. + +## AccĂ©der + +Il existe deux façons d'accĂ©der Ă  la page. + +### Menu avatar + +![](images/reports-access.webp) + +La page des rapports rĂ©pertorie tous les rapports dans le volet de gauche. Aucun rapport ne sera sĂ©lectionnĂ© initialement. + +![](images/reports-fresh.webp) + +### AprĂšs les importations + +![](images/reports-access-after.webp) + +La page des rapports rĂ©pertorie Ă©galement tous les rapports dans le volet de gauche. Le rapport le plus rĂ©cent sera sĂ©lectionnĂ©. + +![](images/reports-latest.webp) + +## Structure + +La page des rapports est structurĂ©e en deux volets d'affichage. Celui de gauche rĂ©pertorie tous les rapports disponibles pour le +type de rapport, tandis que le volet de droite affiche le contenu du rapport sĂ©lectionnĂ©. Le type de rapport est sĂ©lectionnĂ© dans la +barre latĂ©rale Ă  cĂŽtĂ© de la liste des rapports. + +Vous pouvez choisir parmi les types suivants : +- **Importation** : un rapport d'importation est un rapport gĂ©nĂ©rĂ© aprĂšs l'importation de recettes. +- +### Volet gauche + +Le volet de gauche rĂ©pertorie tous les rapports du type sĂ©lectionnĂ©. Chaque Ă©lĂ©ment affiche les informations suivantes : +- **Time stamp** : le titre de l'Ă©lĂ©ment. Indique le moment oĂč le rapport a Ă©tĂ© gĂ©nĂ©rĂ©. +- **Execution time** : le temps nĂ©cessaire Ă  l'importation des recettes. +- **Log count** : situĂ© Ă  droite de l'heure d'exĂ©cution. Indique le nombre d'entrĂ©es associĂ©es au rapport. + +### Volet droit + +Le volet de droite affiche toutes les entrĂ©es de journal associĂ©es au rapport sĂ©lectionnĂ© dans un tableau. Vous pouvez trier n'importe quelle colonne, par ordre dĂ©croissant ou +croissant, en cliquant sur son en-tĂȘte. + +Les opĂ©rations ayant Ă©chouĂ© seront surlignĂ©es en rouge. + +![](images/reports-errors.webp) diff --git a/docs/website/content/fr/docs/features/updater.md b/docs/website/content/fr/docs/features/updater.md new file mode 100644 index 000000000..df9b122e3 --- /dev/null +++ b/docs/website/content/fr/docs/features/updater.md @@ -0,0 +1,21 @@ +--- +title: Mise Ă  jour +weight: 9 +prev: /docs/features/reports +--- + +Vous pouvez mettre Ă  jour l'application depuis l'application Web dĂšs qu'une mise Ă  jour est disponible. Vos donnĂ©es seront prĂ©alablement sauvegardĂ©es +sous `/path/to/recipya/Backup/global` au cas oĂč quelque chose tourne mal. Le vĂ©rificateur de mise Ă  jour est exĂ©cutĂ© une fois tous les trois jours. + +Vous remarquerez d'abord un badge rose `New update` sur votre avatar. + +![](images/update-available.webp) + +Cliquez sur votre avatar, accĂ©dez Ă  la boĂźte de dialogue des paramĂštres et sĂ©lectionnez l'onglet +`About`. Enfin, cliquez sur le bouton `Update`. + +![](images/update-button.webp) + +En cas de succĂšs, l'application se rechargera automatiquement aprĂšs cinq secondes. + +![](images/update-success-restart.webp) diff --git a/docs/website/content/fr/docs/installation/_index.md b/docs/website/content/fr/docs/installation/_index.md new file mode 100644 index 000000000..c32578932 --- /dev/null +++ b/docs/website/content/fr/docs/installation/_index.md @@ -0,0 +1,32 @@ +--- +title: Installation +weight: 2 +next: /docs/installation/system-requirements +prev: /docs/features/integrations +--- + +DĂ©couvrez comment installer Recipya. + +{{< cards >}} + {{< card link="system-requirements/" + title="PrĂ©requis" + icon="newspaper" + subtitle="DĂ©couvrez quelle est la configuration systĂšme requise." >}} + {{< card link="build/config-file/" + title="Fichier de configuration" + subtitle="Explorer le fichier de configuration." + icon="newspaper" >}} + {{< card link="docker/" + title="Docker" + subtitle="Installez l'application avec Docker." + icon="newspaper" >}} + {{< card link="build/" + title="Version release" + subtitle="Installez une version release de l'application." + icon="newspaper" >}} + {{< card link="windows-users/" + title="Utilisateurs Windows" + subtitle="Informations importantes pour les utilisateurs Windows." + icon="newspaper" >}} +{{< /cards >}} + diff --git a/docs/website/content/fr/docs/installation/build/Install.md b/docs/website/content/fr/docs/installation/build/Install.md new file mode 100644 index 000000000..530c17ca1 --- /dev/null +++ b/docs/website/content/fr/docs/installation/build/Install.md @@ -0,0 +1,76 @@ +--- +title: Install +weight: 1 +prev: /docs/installation/build +--- + +Cette section cible une installation sans Docker. + +Les versions portables et autonomes sont disponibles sur la [page des versions](https://github.com/reaper47/recipya/releases) sur GitHub. +La [version nocturne](https://github.com/reaper47/recipya/releases/tag/nightly) est mise Ă  jour tous les soirs si la branche principale a de nouveaux commits. + +Tout d’abord, tĂ©lĂ©chargez la version du logiciel que vous souhaitez installer compatible avec votre systĂšme et extrayez le fichier zip. +Veuillez consulter le tableau des [plateformes prises en charge](/guide/fr/docs/installation/system-requirements) si vous ne savez pas quel fichier tĂ©lĂ©charger. + +Ensuite, dĂ©marrez le serveur en ouvrant une invite de commande dans le dossier et exĂ©cutez la commande suivante. +L'application effectuera une configuration de dĂ©marrage unique si ce n'est dĂ©jĂ  fait. + +```bash +./recipya serve +``` + +Vous pouvez dĂ©sormais accĂ©der au site Internet Ă  l'adresse indiquĂ©e. + +## Example + +Supposons que vous ayez un ordinateur Windows 11 et que vous souhaitiez y installer Recipya v1.2.0. + +{{% steps %}} + +### AccĂšs + +Vous accĂ©derez d'abord Ă  la [page des versions](https://github.com/reaper47/recipya/releases). + +### TĂ©lĂ©charger + +Identifiez la version « v1.2.0 » et tĂ©lĂ©chargez « recipya-windows-amd64.zip » dans la section **Assets**. + +### Extraire + +Extrayez le fichier zip sur votre ordinateur. + +### ExĂ©cuter + +130 / 5,000 +Ouvrez une [invite de commande](https://en.wikiversity.org/wiki/Command_Prompt/Open) et accĂ©dez au dossier que vous avez prĂ©cĂ©demment extrait. + +```text +cd C:\path\to\recipya +``` + +Ensuite, exĂ©cutez Recipya une fois que votre invite de commande est dans son dossier. + +```text +.\recipya serve +``` + +### Profite bien + +Ouvrez votre navigateur Ă  l'adresse spĂ©cifiĂ©e dans le texte de l'invite de commande. + +Si vous voyez le rĂ©sultat suivant: +```text +OK FDC database +OK Configuration file +Recipya is properly set up +File locations: + - Backups: C:\Users\\AppData\Roaming\Recipya\Backup + - Database: C:\Users\\AppData\Roaming\Recipya\Database + - Images: C:\Users\\AppData\Roaming\Recipya\Images + - Logs: C:\Users\\AppData\Roaming\Recipya\Logs +2024/05/23 07:46:46 goose: no migrations to run. current version: 20240522133726 +``` + +Tout est beau et vous accĂ©derez ensuite Ă  « http://127.0.0.1:8078 ». + +{{% /steps %}} diff --git a/docs/website/content/fr/docs/installation/build/_index.md b/docs/website/content/fr/docs/installation/build/_index.md new file mode 100644 index 000000000..2698a5efd --- /dev/null +++ b/docs/website/content/fr/docs/installation/build/_index.md @@ -0,0 +1,19 @@ +--- +title: Version de logiciel +weight: 2 +next: /docs/installation/build/install +prev: /docs/installation/system-requirements +--- + +Vous pouvez installer une version stable de Recipya si vous n'utilisez pas Docker. C'est simple Ă  faire. + +{{< cards >}} + {{< card link="install" + title="Installation" + icon="newspaper" + subtitle="DĂ©couvrez comment installer la version release." >}} + {{< card link="config-file" + title="Fichier de configuration" + subtitle="En savoir plus sur le fichier de configuration important." + icon="newspaper" >}} +{{< /cards >}} diff --git a/docs/website/content/fr/docs/installation/build/config-file.md b/docs/website/content/fr/docs/installation/build/config-file.md new file mode 100644 index 000000000..7516a769b --- /dev/null +++ b/docs/website/content/fr/docs/installation/build/config-file.md @@ -0,0 +1,27 @@ +--- +title: Configuration File +weight: 2 +next: /docs/installation/docker +--- + +Le [fichier de configuration](https://github.com/reaper47/recipya/blob/main/deploy/config.example.json) dĂ©finit des variables importantes pour l'application. +Examinons chacun d'eux. + +{{< callout type="info" >}} +L'administrateur peut modifier la plupart de ces options Ă  partir des paramĂštres. +{{< /callout >}} + +- **email** + - **from**: L'adresse e-mail de votre compte [SendGrid](https://sendgrid.com/). DĂ©faut: `""`. + - **sendGridAPIKey**: Votre clĂ© API [SendGrid](https://app.sendgrid.com/settings/api_keys). Le niveau gratuit devrait ĂȘtre suffisant pour vos besoins. DĂ©faut: `""`. +- **integrations** + - **azureDocumentIntelligence** + - **key**: La variable *CLÉ 1* affichĂ© dans l'onglet *ClĂ©s et point de terminaison* de votre ressource [Azure AI Document Intelligence](https://azure.microsoft.com/en-us/products/ai-services/ai-document-intelligence) dans le [portail Azure](https://portal.azure.com/#home). DĂ©faut: `""`. + - **endpoint**: La variable *Endpoint* affichĂ©e dans l'onglet *ClĂ©s et point de terminaison* de votre ressource *Document Intelligence* dans le portail Azure. DĂ©faut: `""`. +- **server** + - **autologin**: S'il faut se connecter automatiquement Ă  l'application. Utile lorsque vous n'avez pas besoin de comptes d'utilisateurs. Peut ĂȘtre `true` ou `false`. DĂ©fault: `false`. + - **isDemo**: Si l’application est une version dĂ©mo. Peut ĂȘtre `true` ou `false`. DĂ©fault: `false`. + - **isProduction**: Si l'application est en production. Peut ĂȘtre `true` ou `false`. DĂ©fault: `false`. + - **noSignups**: S'il faut dĂ©sactiver les enregistrements de comptes utilisateur. DĂ©finissez sur `true` lorsque vous ne souhaitez pas que les gens crĂ©ent des comptes. DĂ©fault: `false`. + - **port**: Le port via lequel l'application sera servie s'il est localhost. __Est requis__. + - **url**: Le site web sur lequel l'application est diffusĂ©e. Cette URL servira de lien de base dans les e-mails. DĂ©fault: `http://0.0.0.0`. diff --git a/docs/website/content/fr/docs/installation/docker.md b/docs/website/content/fr/docs/installation/docker.md new file mode 100644 index 000000000..48fefbaca --- /dev/null +++ b/docs/website/content/fr/docs/installation/docker.md @@ -0,0 +1,137 @@ +--- +title: Docker +weight: 3 +--- + +Une image Docker [stable](https://hub.docker.com/layers/reaper99/recipya/v1.2.0/images/sha256-a32780f33d0c50388ebb955fb837f6ee9b1339987e3898a53ddd5b1f737c7f6e?context=repo) est produite Ă  chaque version. +Une image [instable](https://hub.docker.com/layers/reaper99/recipya/nightly/images/sha256-b2238a11a53982953df5bbcfd7796a19fa382abf75d316b62fa05ac1c867332c?context=repo) est produite le soir Ă  chaque fois la branche `main` a de nouveaux commits. + +Vous pouvez installer l'application Ă  l'aide de [Docker](https://www.docker.com/) ou de [Docker Compose](https://docs.docker.com/compose/). + +## Utiliser Docker + +Il faut d'abord tirer l'image. + +```bash +docker pull reaper99/recipya:nightly +``` + +Ensuite, exĂ©cutez l'image. Les variables d'environnement `-e` sont dĂ©crites ci-dessous. + +```bash +docker run -d \ + --name recipya + --restart unless-stopped + -p 8085:8078 \ + -v recipya-data:/root/.config/Recipya \ + -e RECIPYA_SERVER_PORT=8078 \ + reaper99/recipya:nightly +``` + +Recipya est accessible depuis votre machine hĂŽte Ă  l'adresse [http://localhost:8085](http://localhost:8085). + +### Mettre Ă  jour votre conteneur + +ExĂ©cutez la commande ci-dessous pour une mise Ă  jour rapide avec Watchtower. + +N'oubliez pas de remplacer `recipya` par le nom rĂ©el de votre conteneur s'il diffĂšre et de [sauvegarder les donnĂ©es de votre volume](#sauvegarder-un-volume). + +```bash +docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once recipya +``` + +### Synology NAS + +La commande Docker suivante devrait ĂȘtre utilisĂ©e si vous utilisez Synology. + +```bash +docker run -d \ + --name recipya + --restart unless-stopped + -p 8085:8078 \ + -v /shared/path/here:/root/.config/Recipya/:rw \ + -e RECIPYA_SERVER_PORT=8078 \ + reaper99/recipya:nightly +``` + +## Utiliser Docker Composer + +Vous pouvez utiliser Docker Compose pour exĂ©cuter le conteneur. Tout d'abord, tĂ©lĂ©chargez le fichier [compose.yaml](https://github.com/reaper47/recipya/blob/main/deploy/compose.yaml). +Modifier les sections `environment` et `ports`. Les variables d'environnement sont dĂ©crites ci-dessous. Ensuite, dĂ©marrez l'application. + +```bash +docker-compose up -d +``` + +AccĂ©dez Ă  l'application via votre navigateur Ă  l'adresse `http://localhost:[host port]`. + +Si vous utilisez Windows et que vous avez l'intention d'accĂ©der Ă  l'application sur d'autres appareils de votre rĂ©seau domestique, +assurez-vous d'« Autoriser la connexion » de la rĂšgle de pare-feu Windows Defender entrant « Docker Desktop Backend ». + +### Mettre Ă  jour votre conteneur + +Suivez ces Ă©tapes pour mettre Ă  jour Recipya. N'oubliez pas de [sauvegarder vos donnĂ©es de volume](#sauvegarder-un-volume) au cas oĂč quelque chose tournerait mal. + +1. Tirez la derniĂšre image +```bash +docker compose pull +``` +2. RecrĂ©ez le conteneur avec la derniĂšre image +```bash +docker compose up -d +``` + +## Variables d'environnement + +| Variable | Description | +|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| RECIPYA_DI_ENDPOINT | La variable **Endpoint** affichĂ©e dans l'onglet *ClĂ©s et point de terminaison* de votre [Azure AI Intelligence documentaire](https://azure.microsoft.com/en-us/products/ai-services/ai-document-intelligence) ressource dans le portail Azure.
Par défaut: `""`. | +| RECIPYA_DI_KEY | La variable **KEY 1** affichée dans l'onglet *Clés et point de terminaison* de votre ressource *Document Intelligence* dans le [portail Azure](https://portal.azure.com/#home).
Par défaut: `""`. | +| RECIPYA_EMAIL | L'adresse e-mail de votre compte [SendGrid](https://sendgrid.com/).
Par défaut: `""`. | +| RECIPYA_EMAIL_SENDGRID | Your [SendGrid](https://app.sendgrid.com/settings/api_keys) API key. The free tier should be sufficient for your needs.
Default: `""`. | +| RECIPYA_SERVER_AUTOLOGIN | Si vous souhaitez vous connecter automatiquement Ă  l'application. Peut ĂȘtre `true` ou `false`.
Par dĂ©faut: `false`. | +| RECIPYA_SERVER_BYPASS_GUIDE | S'il faut accĂ©der directement Ă  la page de connexion en cas d'anonymat. Peut ĂȘtre `true` ou `false`.
Par dĂ©faut: `false`. | +| RECIPYA_SERVER_IS_DEMO | Si l'application est une version de dĂ©monstration. Peut ĂȘtre `true` ou `false`.
Par dĂ©faut: `false`. | +| RECIPYA_SERVER_IS_PROD | Si l'application est en production. Peut ĂȘtre `true` ou `false`.
Par défaut : `false`. | +| RECIPYA_SERVER_NO_SIGNUPS | S'il faut désactiver les enregistrements de comptes utilisateur. Défini sur « true » lorsque vous ne souhaitez pas que les gens créent des comptes.
Par défaut: « false ». | +| RECIPYA_SERVER_PORT | Le port via lequel l'application sera servie si localhost.
**Est requis**. | +| RECIPYA_SERVER_URL | Le site Web sur lequel l'application est diffusée. Cette URL servira de lien de base dans les e-mails.
Par dĂ©faut: `http://0.0.0.0`. | + +## Sauvegarder un volume + +Il est d'une importance vitale de sauvegarder vos donnĂ©es de volume avant de mettre Ă  jour le logiciel au cas oĂč quelque chose tournerait mal et que vous perdriez votre base de donnĂ©es. + +### Docker Desktop + +Si vous utilisez Docker Desktop, alors +1. SĂ©lectionnez l'onglet « Volumes » Ă  gauche +2. Identifiez le volume «recipya-data» +3. Cliquez sur le bouton d'action « Exporter » +4. SĂ©lectionnez « Fichier local », sĂ©lectionnez le rĂ©pertoire cible et cliquez sur « Exporter ». + +### Terminale + +Sinon, exĂ©cutez la commande suivante: +```bash +docker run --rm --volumes-from recipya -v $(pwd):/backup ubuntu tar cvf /backup/recipya-volume-backup.tar /root/.config/Recipya +``` + +## Restaurer le volume Ă  partir d'une sauvegarde + +Supposons que vous ayez mis Ă  jour l'image Docker et que vous ayez par consĂ©quent perdu vos donnĂ©es. GrĂące Ă  une sauvegarde externe, la journĂ©e sera sauvĂ©e. + +### Docker Desktop + +Suivez ces Ă©tapes pour restaurer vos donnĂ©es Ă  l'aide de Docker desktop: +1. SĂ©lectionnez l'onglet « Volumes » Ă  gauche +2. Identifiez le volume «recipya-data» +3. Cliquez sur le bouton d'action « Importer » +4. SĂ©lectionnez le volume sauvegardĂ© et cliquez sur « Importer » + +### Terminale + +Sinon, exĂ©cutez la commande suivante : + +```bash +docker run --rm --volumes-from recipya -v $(pwd):/backup ubuntu bash -c "cd /root && tar xvf /backup/recipya-volume-backup.tar --strip 1" +``` diff --git a/docs/website/content/fr/docs/installation/integrations.md b/docs/website/content/fr/docs/installation/integrations.md new file mode 100644 index 000000000..c7818def1 --- /dev/null +++ b/docs/website/content/fr/docs/installation/integrations.md @@ -0,0 +1,48 @@ +--- +title: IntĂ©grations +weight: 5 +--- + +Recipya utilise les services tiers suivants pour amĂ©liorer l'expĂ©rience du produit. + +## SendGrid + +[SendGrid](https://sendgrid.com) fournit un service cloud qui aide les entreprises Ă  envoyer des e-mails. +Ils offrent un [forfait gratuit](https://sendgrid.com/en-us/pricing) qui vous permet d'envoyer jusqu'Ă  100 e-mails par jour. + +Au sein de Recipya, le module email est utilisĂ© pour les Ă©vĂ©nements suivants : +- Envoyer un email de confirmation Ă  un utilisateur inscrit. +- Envoyer un e-mail de mot de passe oubliĂ© + +Si aucune de ces raisons ne vous persuade d'utiliser ce service, laissez les champs `email.from` et `email.sendGridAPIKey` dans le +[fichier de configuration](https://github.com/reaper47/recipya/blob/main/) dĂ©ployer/config.example.json) vide. Aucun email ne sera alors envoyĂ©. + +## Azure AI Intelligence documentaire + +[Azure AI Intelligence documentaire](https://azure.microsoft.com/en-us/products/ai-services/ai-vision) est un service d'intelligence +artificielle qui applique l'apprentissage automatique avancĂ© pour extraire automatiquement et avec prĂ©cision du texte, des paires clĂ©-valeur, +des tableaux et des structures Ă  partir de documents. Microsoft offre un [plan gratuit](https://azure.microsoft.com/en-us/pricing/details/ai-document-intelligence/) +(F0) qui vous permet d'effectuer jusqu'Ă  500 transactions gratuites par mois. + +Au sein de Recipya, ce service est utilisĂ© pour [numĂ©riser des recettes](/guide/fr/docs/features/recipes/add#scan). + +Si vous ne prĂ©voyez pas de numĂ©riser des recettes, laissez les champs `integrations.azureDocumentIntelligence.key` et `integrations.azureDocumentIntelligence.endpoint` +dans le [fichier de configuration](https://github.com/reaper47/recipya/blob/main/deploy/config.example.json) vide. +Laissez les variables d'environnement `RECIPYA_DI_ENDPOINT` et `RECIPYA_DI_KEY` vides si vous utilisez Docker. +Cette fonctionnalitĂ© sera alors dĂ©sactivĂ©e. + +Suivez ces Ă©tapes pour utiliser cette intĂ©gration: +1. Obtenez un abonnement Azure. Vous pouvez [en crĂ©er un gratuitement](https://azure.microsoft.com/free/cognitive-services/). +2. Ajoutez une [instance Intelligence documentaire](https://portal.azure.com/#create/Microsoft.CognitiveServicesFormRecognizer) dans le portail Azure. Vous pouvez utiliser le niveau tarifaire gratuit (F0) pour essayer le service. +3. Sous **DĂ©tails de l'instance**, sĂ©lectionnez **RĂ©gion** _East US_, _West US2_ ou _West Europe_. Les autres rĂ©gions sont incompatibles avec cette ressource. +4. Une fois votre ressource dĂ©ployĂ©e, sĂ©lectionnez *ClĂ©s et point de terminaison* sous *Gestion des ressources* dans la barre de navigation. + ![alt text](https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/media/containers/keys-and-endpoint.png?view=doc-intel-3.1.0) +5. Copiez *KEY 1* dans le champ correspondant dans les paramĂštres de Recipya. Vous pouvez Ă©galement le copier dans le champ **integrations.azureDocumentIntelligence.key** de votre fichier de configuration ou dans la variable d'environnement `RECIPYA_DI_KEY` si vous utilisez Docker. +6. Copiez *Endpoint* dans le champ correspondant dans les paramĂštres de Recipya. Vous pouvez Ă©galement le copier dans le champ **integrations.azureDocumentIntelligence.endpoint** de votre fichier de configuration ou dans la variable d'environnement `RECIPYA_DI_ENDPOINT` si vous utilisez Docker. +7. RedĂ©marrez Recipya et testez la connexion *Azure AI Document Intelligence* Ă  partir des paramĂštres. + +### Limitations + +- Pour les PDF et TIFF, jusqu'Ă  2000 pages peuvent ĂȘtre traitĂ©es (avec un abonnement gratuit, seules les deux premiĂšres pages sont traitĂ©es). +- La taille du fichier pour l'analyse des documents est de 500 Mo pour le niveau payant (S0) et de 4 Mo pour le niveau gratuit (F0). +- Si vos fichiers PDF sont verrouillĂ©s par mot de passe, vous devez supprimer le verrou avant de les soumettre. diff --git a/docs/website/content/fr/docs/installation/system-requirements.md b/docs/website/content/fr/docs/installation/system-requirements.md new file mode 100644 index 000000000..3ee4429b6 --- /dev/null +++ b/docs/website/content/fr/docs/installation/system-requirements.md @@ -0,0 +1,48 @@ +--- +title: PrĂ©requis +weight: 1 +next: /docs/installation/build/ +prev: /docs/installation/ +--- + +## Configuration requise + +Le tableau suivant rĂ©pertorie les plateformes et appareils pris en charge. + +| Plateforme | Explication | Exemples d'appareils | +|---------------|-----------------------------------------------|-------------------------------------------------------------------------| +| darwin/amd64 | macOS sur architecture Intel 64 bits (x86-64) | Apple MacBook, iMac, Mac Mini, Mac Pro | +| darwin/arm64 | macOS sur architecture ARM64 | MacBook Air (M1), MacBook Pro (M1), Mac Mini (M1) | +| linux/amd64 | Linux sur architecture x86 64 bits (x86-64) | Ordinateurs de bureau, ordinateurs portables, serveurs, instances cloud | +| linux/arm64 | Linux sur architecture ARMv8 64 bits | Raspberry Pi 3e/4e gĂ©nĂ©ration, smartphones modernes | +| windows/amd64 | Windows sur architecture x86 64 bits | PC, serveurs et machines virtuelles Windows modernes | +| windows/arm64 | Windows sur architecture ARM64 | Microsoft Surface Pro X, appareils Windows basĂ©s sur ARM | + +De plus, vous devez disposer d'au moins 300 Mo d'espace libre. + +## CompatibilitĂ© du navigateur + +| Navigateur | Version | CompatibilitĂ© | +|------------|:-------:|:----------------------:| +| Brave | 37+ | {{< icon "check" >}} | +| Chrome | 114+ | {{< icon "check" >}} | +| Edge | 114+ | {{< icon "check" >}} | +| Firefox | 125+ | {{< icon "check" >}} | +| IE | N/A | {{< icon "x" >}} | +| Opera | 100+ | {{< icon "check" >}} | +| Safari | 17+ | {{< icon "check" >}} | +| Vanadium | 114+ | {{< icon "check" >}} | + +## DĂ©pendances logicielles + +| Logiciel | Version | Facultatif | +|----------|:-------:|:--------------------:| +| FFmpeg | 7+ | {{< icon "check" >}} | + +### FFmpeg + +[FFmpeg](https://en.wikipedia.org/wiki/FFmpeg) est utilisĂ© pour convertir des fichiers vidĂ©o au format de fichier multimĂ©dia audiovisuel [WebM](https://en.wikipedia.org/wiki/WebM). +Il est inclus dans l'image Docker. Sinon, il sera automatiquement installĂ© si vous utilisez Windows. +Si vous utilisez macOS ou Linux, vous devez l'installer manuellement. + +La fonction vidĂ©o sera dĂ©sactivĂ©e si FFmpeg n'est pas installĂ©. Vous n'avez pas besoin de ce logiciel si vous n'avez pas l'intention d'ajouter des vidĂ©os aux recettes. diff --git a/docs/website/content/fr/docs/installation/windows-users.md b/docs/website/content/fr/docs/installation/windows-users.md new file mode 100644 index 000000000..392a246f3 --- /dev/null +++ b/docs/website/content/fr/docs/installation/windows-users.md @@ -0,0 +1,32 @@ +--- +title: Utilisateurs Windows +weight: 4 +next: /docs/integrations +--- + +Veuillez suivre ces [instructions](/guide/fr/docs/installation/build/) pour installer Recipya sans Docker. + +## AccĂšs Ă  l'ensemble du rĂ©seau + +Si vous avez l'intention d'accĂ©der au site Web sur d'autres appareils au sein de votre rĂ©seau domestique, veuillez vous assurer que le programme est autorisĂ© via le pare-feu. +Pour vĂ©rifier: + +1. Ouvrez le « ParamĂštre de protection pare-feu et rĂ©seau » +2. Cliquez sur « Autoriser une application via le pare-feu » +3. DĂ©filer jusqu'Ă  recipya*.exe +4. Assurez-vous que les cases privĂ©es et publiques sont cochĂ©es +5. Appliquez les paramĂštres +6. Recherchez l'adresse IP de votre machine (ParamĂštres Wi-Fi -> Cliquez sur le rĂ©seau auquel vous ĂȘtes connectĂ© -> Adresse IPv4) +7. Sur votre autre appareil, accĂ©dez http://[adresse IPv4]:[port] + +## Windows Defender + +Si vous avez exĂ©cutĂ© le binaire « recipya.exe » Ă  partir de la page des versions de GitHub et que Windows Defender a mis l'exĂ©cutable +en quarantaine, vous devez alors ajouter le dossier ou le fichier Ă  la liste d'exclusion. Cela se produit car les versions ne sont pas encore signĂ©es. + +1. DĂ©compressez une nouvelle instance de la build. +2. Ouvrez la sĂ©curitĂ© Windows. +3. SĂ©lectionnez « Protection contre les virus et les menaces ». +4. Cliquez sur « GĂ©rer les paramĂštres » sous « ParamĂštres de protection contre les virus et les menaces ». +5. Cliquez sur « Ajouter ou supprimer des exclusions » sous « Exclusions ». +6. Cliquez sur le bouton « Ajouter une exclusion », sĂ©lectionnez le fichier et sĂ©lectionnez l'exĂ©cutable. diff --git a/docs/website/hugo.yaml b/docs/website/hugo.yaml index 59e32e345..8a5bca7ca 100644 --- a/docs/website/hugo.yaml +++ b/docs/website/hugo.yaml @@ -6,16 +6,91 @@ enableInlineShortcodes: true enableRobotsTXT: true enableGitInfo: true -languageCode: en-us defaultContentLanguage: en +defaultContentLanguageInSubdir: true languages: en: + contentDir: content/en languageName: English - weight: 1 + languageCode: en-US title: Recipya + weight: 1 + menu: + main: + - name: Open App + params: + rel: external + url: /login + weight: 1 + - identifier: documentation + name: Documentation + pageRef: /docs + weight: 2 + - identifier: blog + name: Blog + pageRef: /blog + weight: 3 + - identifier: about + name: About + pageRef: /about + weight: 4 + - identifier: searchPlaceholder + name: Search + weight: 5 + params: + type: search + - identifier: sponsor + name: Sponsor + url: "https://github.com/sponsors/reaper47" + weight: 6 + params: + icon: heart + - name: GitHub + weight: 7 + url: "https://github.com/reaper47/recipya" + params: + icon: github fr: + contentDir: content/fr languageName: Français + languageCode: fr-CA + title: Recipya weight: 2 + menu: + main: + - name: Ouvrir l'application + params: + rel: external + url: /login + weight: 1 + - identifier: documentation + name: Documentation + pageRef: /docs + weight: 2 + - identifier: blog + name: Blog + pageRef: /blog + weight: 3 + - identifier: about + name: À propos + pageRef: /about + weight: 4 + - identifier: searchPlaceholder + name: Search + weight: 5 + params: + type: search + - identifier: sponsor + name: Sponsor + url: "https://github.com/sponsors/reaper47" + weight: 6 + params: + icon: heart + - name: GitHub + weight: 7 + url: "https://github.com/reaper47/recipya" + params: + icon: github markup: goldmark: diff --git a/docs/website/i18n/en.yaml b/docs/website/i18n/en.yaml deleted file mode 100644 index 7e5a7a223..000000000 --- a/docs/website/i18n/en.yaml +++ /dev/null @@ -1,17 +0,0 @@ -backToTop: "Scroll to top" -blog: Blog -changeLanguage: "Change language" -changeTheme: "Change theme" -copyCode: "Copy code" -copyright: "© 2023 Marc-AndrĂ© Charland" -dark: "Dark" -documentation: Documentation -editThisPage: "Edit this page on GitHub →" -lastUpdated: "Last updated on" -light: "Light" -noResultsFound: "No results found." -onThisPage: "On this page" -poweredBy: "Powered by Hextra" -readMore: "Read more →" -searchPlaceholder: "Search..." -sponsor: Sponsor \ No newline at end of file diff --git a/docs/website/i18n/fr.yaml b/docs/website/i18n/fr.yaml deleted file mode 100644 index 59f17b842..000000000 --- a/docs/website/i18n/fr.yaml +++ /dev/null @@ -1,4 +0,0 @@ -documentation: Documentation -blog: Blog -searchPlaceholder: "Rechercher..." -sponsor: Sponsor \ No newline at end of file diff --git a/docs/website/i18n/sl.yaml b/docs/website/i18n/sl.yaml deleted file mode 100644 index 6849fd85b..000000000 --- a/docs/website/i18n/sl.yaml +++ /dev/null @@ -1,17 +0,0 @@ -backToTop: "Pomakni se na vrh" -blog: Blog -changeLanguage: "Zamenjaj jezik" -changeTheme: "Zamenjaj temo" -copyCode: "Kopiraj kodo" -copyright: "© 2023 Marc-AndrĂ© Charland" -dark: "Temna" -documentation: Dokumentacija -editThisPage: "Uredi to stran na GitHub →" -lastUpdated: "Zadnja posodobitev ob" -light: "Svetla" -noResultsFound: "Ni zadetkov." -onThisPage: "Na tej strani" -poweredBy: "Stran poganja Hextra" -readMore: "Preberi več →" -searchPlaceholder: "Iơči..." -sponsor: Sponzor \ No newline at end of file diff --git a/internal/server/handlers_general.go b/internal/server/handlers_general.go index a77f0070b..e68e4765c 100644 --- a/internal/server/handlers_general.go +++ b/internal/server/handlers_general.go @@ -71,7 +71,7 @@ func (s *Server) indexHandler(w http.ResponseWriter, r *http.Request) { return } - redirectURL := "/guide" + redirectURL := "/guide/en" if app.Config.Server.IsBypassGuide { redirectURL = "/auth/login" } diff --git a/internal/server/handlers_general_test.go b/internal/server/handlers_general_test.go index e19037c4a..f2b3d8cc9 100644 --- a/internal/server/handlers_general_test.go +++ b/internal/server/handlers_general_test.go @@ -85,7 +85,7 @@ func TestHandlers_General_Index(t *testing.T) { assertStatus(t, rr.Code, http.StatusSeeOther) got := getBodyHTML(rr) want := []string{ - `See Other`, + `See Other`, } assertStringsInHTML(t, got, want) notWant := []string{ @@ -136,7 +136,7 @@ func TestHandlers_General_Index(t *testing.T) { ``, ``, diff --git a/internal/server/handlers_settings_test.go b/internal/server/handlers_settings_test.go index 001fad0af..8a84d8f19 100644 --- a/internal/server/handlers_settings_test.go +++ b/internal/server/handlers_settings_test.go @@ -117,7 +117,7 @@ func TestHandlers_Settings(t *testing.T) { assertStatus(t, rr.Code, http.StatusOK) assertStringsInHTML(t, getBodyHTML(rr), []string{ - `

Recipya Version

v1.3.0 (update available)

Last checked: 0001-01-01
Last updated: 0001-01-01

Read the release notes

`, + `

Recipya Version

v1.3.0 (update available)

Last checked: 0001-01-01
Last updated: 0001-01-01

Read the release notes

`, }) }) @@ -158,7 +158,7 @@ func TestHandlers_Settings(t *testing.T) { ``, ``, ``, - `
`, + ``, } assertStringsInHTML(t, getBodyHTML(rr), want) }) diff --git a/internal/server/server.go b/internal/server/server.go index 2dc97bbda..61705fbe4 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -81,9 +81,9 @@ func (s *Server) mountHandlers() { // Static files routes subFS, _ := fs.Sub(docs.FS, "website/public") - mux.HandleFunc("GET /guide", http.StripPrefix("/guide", http.FileServerFS(subFS)).ServeHTTP) - mux.HandleFunc("GET /guide/*", http.StripPrefix("/guide", http.FileServerFS(subFS)).ServeHTTP) - mux.HandleFunc("GET /guide/login", guideLoginHandler) + mux.HandleFunc("GET /guide/en", http.StripPrefix("/guide/en", http.FileServerFS(subFS)).ServeHTTP) + mux.HandleFunc("GET /guide/en/*", http.StripPrefix("/guide/en", http.FileServerFS(subFS)).ServeHTTP) + mux.HandleFunc("GET /guide/en/login", guideLoginHandler) mux.HandleFunc("GET /static/*", http.StripPrefix("/static", http.FileServerFS(static.FS)).ServeHTTP) mux.HandleFunc("GET /data/images/*", http.StripPrefix("/data/images", http.FileServer(http.Dir(app.ImagesDir))).ServeHTTP) mux.HandleFunc("GET /data/images/thumbnails/*", http.StripPrefix("/data/images/thumbnails", http.FileServer(http.Dir(app.ThumbnailsDir))).ServeHTTP) diff --git a/internal/services/migrations/20240710054825_refresh_scraper.sql b/internal/services/migrations/20240710054825_refresh_scraper.sql index 79f35cbef..4406e30e9 100644 --- a/internal/services/migrations/20240710054825_refresh_scraper.sql +++ b/internal/services/migrations/20240710054825_refresh_scraper.sql @@ -10,4 +10,4 @@ WHERE host IN ( -- +goose Down INSERT INTO websites (host, url) VALUES ('bingingwithbabish.com', 'https://www.bingingwithbabish.com'), - ('chuckycruz.substack.com', 'https://chuckycruz.substack.com'),; + ('chuckycruz.substack.com', 'shadow_last_inserted_recipehttps://chuckycruz.substack.com'),; diff --git a/web/components/core.templ b/web/components/core.templ index 15feec106..8204d212b 100644 --- a/web/components/core.templ +++ b/web/components/core.templ @@ -434,7 +434,7 @@ templ SettingsAbout(data templates.Data) { Last updated: { data.About.LastUpdatedAt.Format(time.DateOnly) }

- Read the release notes + Read the release notes

diff --git a/web/components/layouts.templ b/web/components/layouts.templ index 521d35920..4128e2005 100644 --- a/web/components/layouts.templ +++ b/web/components/layouts.templ @@ -127,7 +127,7 @@ templ layoutMain(title string, data templates.Data) {
  • - + @iconBook() Guide