Compare commits

..

31 Commits

Author SHA1 Message Date
Renovate Bot
922ffbbf97 Update dependency typescript to v5.7.3
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 36m41s
Build Nginx-based docker image / build-static-assets (push) Successful in 18m36s
2025-01-09 03:07:15 +00:00
Renovate Bot
046207a7fd Update dependency @docusaurus/module-type-aliases to v3.7.0
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 54m0s
Build Nginx-based docker image / build-static-assets (push) Successful in 13m53s
2025-01-06 03:06:47 +00:00
Renovate Bot
76f020cbbe Update dependency @docusaurus/tsconfig to v3.7.0
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 32m56s
Build Nginx-based docker image / build-static-assets (push) Successful in 14m9s
2025-01-05 03:08:07 +00:00
Renovate Bot
2b4a2c3f0e Update dependency @docusaurus/types to v3.7.0
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 1h4m43s
Build Nginx-based docker image / build-static-assets (push) Successful in 8m52s
2025-01-04 03:08:58 +00:00
Renovate Bot
fe5992153b Update dependency prism-react-renderer to v2.4.1
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 22m49s
Build Nginx-based docker image / build-static-assets (push) Successful in 7m9s
2024-12-12 01:11:17 +00:00
a5f12f6016 Merge pull request 'Update renovate configuration to allow auto-merge' (#16) from renovate-config into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 8m31s
Reviewed-on: #16
2024-12-06 07:23:08 +00:00
05fa571472 Merge pull request 'Update dependency typescript to ~5.7.0' (#14) from renovate/typescript-5.x into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Failing after 43s
Reviewed-on: #14
2024-12-06 07:17:13 +00:00
4dc0162545 Merge pull request 'Update dependency @docusaurus/tsconfig to v3.6.3' (#12) from renovate/docusaurus-tsconfig-3.x into main
Some checks failed
Build Nginx-based docker image / build-static-assets (push) Has been cancelled
Reviewed-on: #12
2024-12-06 07:16:56 +00:00
c8100f34fc Update renovate configuration to allow auto-merge
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 6m34s
2024-12-06 07:16:24 +00:00
Renovate Bot
c4047b24a8 Update dependency typescript to ~5.7.0
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 28m45s
2024-12-04 01:09:19 +00:00
Renovate Bot
c6b0ceb008 Update dependency @docusaurus/tsconfig to v3.6.3
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 30m3s
2024-12-04 01:09:10 +00:00
d097224314 Merge pull request 'Update dependency @docusaurus/types to v3.6.3' (#13) from renovate/docusaurus-types-3.x into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 7m5s
Reviewed-on: #13
2024-12-03 07:33:14 +00:00
Renovate Bot
92b0237879 Update dependency @docusaurus/types to v3.6.3
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 39m23s
2024-12-03 01:08:34 +00:00
6040793b67 Merge pull request 'Update public documentation with latest changes' (#15) from dec-1-updates into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 3m19s
Reviewed-on: #15
2024-12-02 07:27:19 +00:00
134bf1c63c Update public documentation with latest changes
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 4m33s
2024-12-02 08:22:27 +01:00
9bce64e7f3 Merge pull request 'Include a link to request features' (#8) from feature-request-form into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 2m48s
Reviewed-on: #8
2024-11-18 07:47:51 +00:00
4aa5ed26f4 Include a link to request features
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 2m47s
2024-11-18 08:44:38 +01:00
87ff6f1329 Merge pull request 'Fix URL of documentation edition link' (#7) from fix-documentation-edit-path into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 2m55s
Reviewed-on: #7
2024-11-17 22:29:00 +00:00
5c60e10b96 Fix URL of documentation edition link
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 2m41s
2024-11-17 23:26:04 +01:00
b9ad05a578 Merge pull request 'Configure Renovate' (#4) from renovate/configure into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 4m34s
Reviewed-on: #4
2024-11-17 15:15:15 +00:00
0b413549cc Merge pull request 'Remove unnecessary debugging styles' (#6) from remove-debugging-css-border into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 3m17s
Reviewed-on: #6
2024-11-17 12:06:04 +00:00
a8899d5ff6 Remove unnecessary debugging styles
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 3m37s
2024-11-17 13:02:07 +01:00
814e3bf49b Merge pull request 'Indicate that the hosted version will be for free' (#5) from change-plans-for-hosted-version into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 3m54s
Reviewed-on: #5
2024-11-17 08:46:30 +00:00
67122ac533 Indicate that the hosted version will be for free
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 5m46s
2024-11-17 09:40:25 +01:00
Renovate Bot
c48e39582b Add renovate.json
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 4m55s
2024-11-17 01:08:53 +00:00
b0246b946a Merge pull request 'documentation' (#3) from documentation into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 3m52s
Reviewed-on: #3
2024-11-16 17:47:32 +00:00
b1ebb22559 Remove unused images
All checks were successful
Build Nginx-based docker image / build-static-assets (pull_request) Successful in 3m23s
2024-11-16 18:36:23 +01:00
2b86bc4600 Remove blog references for now 2024-11-16 18:34:31 +01:00
0eb9150360 Remove unused image 2024-11-16 18:33:07 +01:00
17108cb03a Include project documentation 2024-11-16 18:32:41 +01:00
27f36391a5 Merge pull request 'Include basic information about the project' (#2) from basic-info into main
All checks were successful
Build Nginx-based docker image / build-static-assets (push) Successful in 3m35s
Reviewed-on: #2
2024-11-16 16:56:35 +00:00
32 changed files with 668 additions and 755 deletions

View File

@ -1,12 +0,0 @@
---
slug: first-blog-post
title: First Blog Post
authors: [slorber, yangshun]
tags: [hola, docusaurus]
---
Lorem ipsum dolor sit amet...
<!-- truncate -->
...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

View File

@ -1,44 +0,0 @@
---
slug: long-blog-post
title: Long Blog Post
authors: yangshun
tags: [hello, docusaurus]
---
This is the summary of a very long blog post,
Use a `<!--` `truncate` `-->` comment to limit blog post size in the list view.
<!-- truncate -->
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet

View File

@ -1,24 +0,0 @@
---
slug: mdx-blog-post
title: MDX Blog Post
authors: [slorber]
tags: [docusaurus]
---
Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).
:::tip
Use the power of React to create interactive blog posts.
:::
{/* truncate */}
For example, use JSX to create an interactive button:
```js
<button onClick={() => alert('button clicked!')}>Click me!</button>
```
<button onClick={() => alert('button clicked!')}>Click me!</button>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

View File

@ -1,29 +0,0 @@
---
slug: welcome
title: Welcome
authors: [slorber, yangshun]
tags: [facebook, hello, docusaurus]
---
[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).
Here are a few tips you might find useful.
<!-- truncate -->
Simply add Markdown files (or folders) to the `blog` directory.
Regular blog authors can be added to `authors.yml`.
The blog post date can be extracted from filenames, such as:
- `2019-05-30-welcome.md`
- `2019-05-30-welcome/index.md`
A blog post folder can be convenient to co-locate blog post images:
![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg)
The blog supports tags as well!
**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config.

View File

@ -1,23 +0,0 @@
yangshun:
name: Yangshun Tay
title: Front End Engineer @ Facebook
url: https://github.com/yangshun
image_url: https://github.com/yangshun.png
page: true
socials:
x: yangshunz
github: yangshun
slorber:
name: Sébastien Lorber
title: Docusaurus maintainer
url: https://sebastienlorber.com
image_url: https://github.com/slorber.png
page:
# customize the url of the author page at /blog/authors/<permalink>
permalink: '/all-sebastien-lorber-articles'
socials:
x: sebastienlorber
linkedin: sebastienlorber
github: slorber
newsletter: https://thisweekinreact.com

View File

@ -1,19 +0,0 @@
facebook:
label: Facebook
permalink: /facebook
description: Facebook tag description
hello:
label: Hello
permalink: /hello
description: Hello tag description
docusaurus:
label: Docusaurus
permalink: /docusaurus
description: Docusaurus tag description
hola:
label: Hola
permalink: /hola
description: Hola tag description

View File

@ -2,46 +2,49 @@
sidebar_position: 1 sidebar_position: 1
--- ---
# Tutorial Intro # Project status
Let's discover **Docusaurus in less than 5 minutes**. Libre Wedding Planner is a project that was born a few months ago, and **is not production-ready just yet**. We are currently
working on the basic features we need from this software, and hope to release them during the upcoming months.
## Getting Started ## Features supported
Get started by **creating a new site**. The following list includes features that are already developed and ready for use:
Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. - Email/password authentication
- Multitenancy (manage multiple weddings on a single host)
### What you'll need ### Guest management
- [Node.js](https://nodejs.org/en/download/) version 18.0 or above: - List, create, modify, and remove guests along with their RSVP status:
- When installing Node.js, you are recommended to check all checkboxes related to dependencies. - Invited: The guest is (or will be) invited to the wedding, but they have not confirmed or denied attendance yet.
- Tentative: The guest has confirmed their attendance, but there are external factors (e.g., visas) that may affect their commitment.
- Accepted: The guest has confirmed their attendance.
- Declined: The guest won't attend to the event.
- Considered: The guest has not been invited yet, but they may be depending on a number of factors.
- Display a list of groups along with their color and the number of guests per RSVP status.
- Display a list of expenses with the amount and type (fixed or per guest).
## Generate a new site ### Seating plan simulations
Generate a new Docusaurus site using the **classic template**. - Calculate the affinity between groups based on their proximity in the groups hierarchy trees.
- Generate seating plan simulations, favoring the proximity among guests sitting down at the table.
- Automatic regeneration of the simulations after a RSVP change.
## Upcoming features
The classic template will automatically be added to your project after you run the command: We want to improve existing features as well as build completely new ones. Here are some ideas we have in mind:
```bash - (WIP) Improve the overall experience of managing guests, groups and expenses, allowing the creation, modification and deletion of any element.
npm init docusaurus@latest my-website classic - (WIP) Dashboard with a summary of all relevant numbers.
``` we will need to sort out before offering a hosted version of Libre Wedding Planner.
- (WIP) Sign up flow, allowing users to create their own wedding.
- Allow multiple users to manage the wedding.
- Generation of wedding website with public information.
- Generation of RSVP links and forms to collect dietary restrictions and transport preferences.
- Internationalization
You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor. The software is currently tailored to the specific needs of those developing it. For example, currencies are hard-coded as Euros for the time
being, which is something we'll need to change to support other regions.
The command also installs all necessary dependencies you need to run Docusaurus. We're still defining the procedures to take part in the project, either by reporting issues, suggesting features, or adding features to
the codebase. Please, stay patient while we set up the procedures.
## Start your site
Run the development server:
```bash
cd my-website
npm run start
```
The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.
Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.

View File

@ -1,8 +0,0 @@
{
"label": "Tutorial - Basics",
"position": 2,
"link": {
"type": "generated-index",
"description": "5 minutes to learn the most important Docusaurus concepts."
}
}

View File

@ -1,23 +0,0 @@
---
sidebar_position: 6
---
# Congratulations!
You have just learned the **basics of Docusaurus** and made some changes to the **initial template**.
Docusaurus has **much more to offer**!
Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
## What's next?
- Read the [official documentation](https://docusaurus.io/)
- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
- Add a [search bar](https://docusaurus.io/docs/search)
- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)

View File

@ -1,34 +0,0 @@
---
sidebar_position: 3
---
# Create a Blog Post
Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
## Create your first Post
Create a file at `blog/2021-02-28-greetings.md`:
```md title="blog/2021-02-28-greetings.md"
---
slug: greetings
title: Greetings!
authors:
- name: Joel Marcey
title: Co-creator of Docusaurus 1
url: https://github.com/JoelMarcey
image_url: https://github.com/JoelMarcey.png
- name: Sébastien Lorber
title: Docusaurus maintainer
url: https://sebastienlorber.com
image_url: https://github.com/slorber.png
tags: [greetings]
---
Congratulations, you have made your first post!
Feel free to play around and edit this post as much as you like.
```
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).

View File

@ -1,57 +0,0 @@
---
sidebar_position: 2
---
# Create a Document
Documents are **groups of pages** connected through:
- a **sidebar**
- **previous/next navigation**
- **versioning**
## Create your first Doc
Create a Markdown file at `docs/hello.md`:
```md title="docs/hello.md"
# Hello
This is my **first Docusaurus document**!
```
A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
## Configure the Sidebar
Docusaurus automatically **creates a sidebar** from the `docs` folder.
Add metadata to customize the sidebar label and position:
```md title="docs/hello.md" {1-4}
---
sidebar_label: 'Hi!'
sidebar_position: 3
---
# Hello
This is my **first Docusaurus document**!
```
It is also possible to create your sidebar explicitly in `sidebars.js`:
```js title="sidebars.js"
export default {
tutorialSidebar: [
'intro',
// highlight-next-line
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
};
```

View File

@ -1,43 +0,0 @@
---
sidebar_position: 1
---
# Create a Page
Add **Markdown or React** files to `src/pages` to create a **standalone page**:
- `src/pages/index.js``localhost:3000/`
- `src/pages/foo.md``localhost:3000/foo`
- `src/pages/foo/bar.js``localhost:3000/foo/bar`
## Create your first React Page
Create a file at `src/pages/my-react-page.js`:
```jsx title="src/pages/my-react-page.js"
import React from 'react';
import Layout from '@theme/Layout';
export default function MyReactPage() {
return (
<Layout>
<h1>My React page</h1>
<p>This is a React page</p>
</Layout>
);
}
```
A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
## Create your first Markdown Page
Create a file at `src/pages/my-markdown-page.md`:
```mdx title="src/pages/my-markdown-page.md"
# My Markdown page
This is a Markdown page
```
A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).

View File

@ -1,31 +0,0 @@
---
sidebar_position: 5
---
# Deploy your site
Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**).
It builds your site as simple **static HTML, JavaScript and CSS files**.
## Build your site
Build your site **for production**:
```bash
npm run build
```
The static files are generated in the `build` folder.
## Deploy your site
Test your production build locally:
```bash
npm run serve
```
The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).

View File

@ -1,152 +0,0 @@
---
sidebar_position: 4
---
# Markdown Features
Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**.
## Front Matter
Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/):
```text title="my-doc.md"
// highlight-start
---
id: my-doc-id
title: My document title
description: My document description
slug: /my-custom-url
---
// highlight-end
## Markdown heading
Markdown text with [links](./hello.md)
```
## Links
Regular Markdown links are supported, using url paths or relative file paths.
```md
Let's see how to [Create a page](/create-a-page).
```
```md
Let's see how to [Create a page](./create-a-page.md).
```
**Result:** Let's see how to [Create a page](./create-a-page.md).
## Images
Regular Markdown images are supported.
You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`):
```md
![Docusaurus logo](/img/docusaurus.png)
```
![Docusaurus logo](/img/docusaurus.png)
You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:
```md
![Docusaurus logo](./img/docusaurus.png)
```
## Code Blocks
Markdown code blocks are supported with Syntax highlighting.
````md
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return <h1>Hello, Docusaurus!</h1>;
}
```
````
```jsx title="src/components/HelloDocusaurus.js"
function HelloDocusaurus() {
return <h1>Hello, Docusaurus!</h1>;
}
```
## Admonitions
Docusaurus has a special syntax to create admonitions and callouts:
```md
:::tip My tip
Use this awesome feature option
:::
:::danger Take care
This action is dangerous
:::
```
:::tip My tip
Use this awesome feature option
:::
:::danger Take care
This action is dangerous
:::
## MDX and React Components
[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**:
```jsx
export const Highlight = ({children, color}) => (
<span
style={{
backgroundColor: color,
borderRadius: '20px',
color: '#fff',
padding: '10px',
cursor: 'pointer',
}}
onClick={() => {
alert(`You clicked the color ${color} with label ${children}`)
}}>
{children}
</span>
);
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
This is <Highlight color="#1877F2">Facebook blue</Highlight> !
```
export const Highlight = ({children, color}) => (
<span
style={{
backgroundColor: color,
borderRadius: '20px',
color: '#fff',
padding: '10px',
cursor: 'pointer',
}}
onClick={() => {
alert(`You clicked the color ${color} with label ${children}`);
}}>
{children}
</span>
);
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
This is <Highlight color="#1877F2">Facebook blue</Highlight> !

View File

@ -1,7 +0,0 @@
{
"label": "Tutorial - Extras",
"position": 3,
"link": {
"type": "generated-index"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,55 +0,0 @@
---
sidebar_position: 1
---
# Manage Docs Versions
Docusaurus can manage multiple versions of your docs.
## Create a docs version
Release a version 1.0 of your project:
```bash
npm run docusaurus docs:version 1.0
```
The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created.
Your docs now have 2 versions:
- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs
- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs**
## Add a Version Dropdown
To navigate seamlessly across versions, add a version dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
export default {
themeConfig: {
navbar: {
items: [
// highlight-start
{
type: 'docsVersionDropdown',
},
// highlight-end
],
},
},
};
```
The docs version dropdown appears in your navbar:
![Docs Version Dropdown](./img/docsVersionDropdown.png)
## Update an existing version
It is possible to edit versioned docs in their respective folder:
- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello`
- `docs/hello.md` updates `http://localhost:3000/docs/next/hello`

View File

@ -1,88 +0,0 @@
---
sidebar_position: 2
---
# Translate your site
Let's translate `docs/intro.md` to French.
## Configure i18n
Modify `docusaurus.config.js` to add support for the `fr` locale:
```js title="docusaurus.config.js"
export default {
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr'],
},
};
```
## Translate a doc
Copy the `docs/intro.md` file to the `i18n/fr` folder:
```bash
mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/
cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md
```
Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French.
## Start your localized site
Start your site on the French locale:
```bash
npm run start -- --locale fr
```
Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated.
:::caution
In development, you can only use one locale at a time.
:::
## Add a Locale Dropdown
To navigate seamlessly across languages, add a locale dropdown.
Modify the `docusaurus.config.js` file:
```js title="docusaurus.config.js"
export default {
themeConfig: {
navbar: {
items: [
// highlight-start
{
type: 'localeDropdown',
},
// highlight-end
],
},
},
};
```
The locale dropdown now appears in your navbar:
![Locale Dropdown](./img/localeDropdown.png)
## Build your localized site
Build your site for a specific locale:
```bash
npm run build -- --locale fr
```
Or build your site to include all the locales at once:
```bash
npm run build
```

View File

@ -28,7 +28,7 @@ const config: Config = {
docs: { docs: {
sidebarPath: './sidebars.ts', sidebarPath: './sidebars.ts',
editUrl: editUrl:
'https://gitea.bustikiller.com/bustikiller/wedding-planner-website/', 'https://gitea.bustikiller.com/bustikiller/wedding-planner-website/src/branch/main/',
}, },
blog: { blog: {
showReadingTime: true, showReadingTime: true,
@ -50,7 +50,7 @@ const config: Config = {
], ],
themeConfig: { themeConfig: {
image: 'img/docusaurus-social-card.jpg', image: 'img/logo.png',
navbar: { navbar: {
title: 'Libre Wedding Planner', title: 'Libre Wedding Planner',
logo: { logo: {
@ -62,19 +62,18 @@ const config: Config = {
type: 'docSidebar', type: 'docSidebar',
sidebarId: 'tutorialSidebar', sidebarId: 'tutorialSidebar',
position: 'left', position: 'left',
label: 'Tutorial', label: 'Documentation',
}, },
{to: '/blog', label: 'Blog', position: 'left'},
], ],
}, },
footer: { footer: {
style: 'dark', style: 'dark',
links: [ links: [
{ {
title: 'Docs', title: 'Resources',
items: [ items: [
{ {
label: 'Tutorial', label: 'Documentation',
to: '/docs/intro', to: '/docs/intro',
}, },
], ],
@ -97,15 +96,15 @@ const config: Config = {
], ],
}, },
{ {
title: 'More', title: 'Give feedback',
items: [ items: [
{ {
label: 'Blog', label: 'Request a feature',
to: '/blog', href: 'https://my.liberaforms.org/libreweddingplanner-feature-request'
}
],
}, },
], ],
}
],
copyright: `Copyright © ${new Date().getFullYear()} Manuel Bustillo. Built with Docusaurus.`, copyright: `Copyright © ${new Date().getFullYear()} Manuel Bustillo. Built with Docusaurus.`,
}, },
prism: { prism: {

598
package-lock.json generated
View File

@ -17,10 +17,10 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "3.6.1", "@docusaurus/module-type-aliases": "3.7.0",
"@docusaurus/tsconfig": "3.6.1", "@docusaurus/tsconfig": "3.7.0",
"@docusaurus/types": "3.6.1", "@docusaurus/types": "3.7.0",
"typescript": "~5.6.2" "typescript": "~5.7.0"
}, },
"engines": { "engines": {
"node": ">=18.0" "node": ">=18.0"
@ -2325,6 +2325,41 @@
} }
} }
}, },
"node_modules/@docusaurus/bundler/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/bundler/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/core": { "node_modules/@docusaurus/core": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.1.tgz",
@ -2455,17 +2490,18 @@
} }
}, },
"node_modules/@docusaurus/module-type-aliases": { "node_modules/@docusaurus/module-type-aliases": {
"version": "3.6.1", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.7.0.tgz",
"integrity": "sha512-J+q1jgm7TnEfVIUZImSFeLA1rghb6nwtoB9siHdcgKpDqFJ9/S7xhQL2aEKE7iZMZYzpu+2F390E9A7GkdEJNA==", "integrity": "sha512-g7WdPqDNaqA60CmBrr0cORTrsOit77hbsTj7xE2l71YhBn79sxdm7WMK7wfhcaafkbpIh7jv5ef5TOpf1Xv9Lg==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@docusaurus/types": "3.6.1", "@docusaurus/types": "3.7.0",
"@types/history": "^4.7.11", "@types/history": "^4.7.11",
"@types/react": "*", "@types/react": "*",
"@types/react-router-config": "*", "@types/react-router-config": "*",
"@types/react-router-dom": "*", "@types/react-router-dom": "*",
"react-helmet-async": "*", "react-helmet-async": "npm:@slorber/react-helmet-async@*",
"react-loadable": "npm:@docusaurus/react-loadable@6.0.0" "react-loadable": "npm:@docusaurus/react-loadable@6.0.0"
}, },
"peerDependencies": { "peerDependencies": {
@ -2507,6 +2543,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-content-blog/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-content-blog/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/plugin-content-docs": { "node_modules/@docusaurus/plugin-content-docs": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.1.tgz",
@ -2539,6 +2610,60 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/module-type-aliases": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.1.tgz",
"integrity": "sha512-J+q1jgm7TnEfVIUZImSFeLA1rghb6nwtoB9siHdcgKpDqFJ9/S7xhQL2aEKE7iZMZYzpu+2F390E9A7GkdEJNA==",
"license": "MIT",
"dependencies": {
"@docusaurus/types": "3.6.1",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
"@types/react-router-dom": "*",
"react-helmet-async": "*",
"react-loadable": "npm:@docusaurus/react-loadable@6.0.0"
},
"peerDependencies": {
"react": "*",
"react-dom": "*"
}
},
"node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-content-docs/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/plugin-content-pages": { "node_modules/@docusaurus/plugin-content-pages": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.1.tgz",
@ -2562,6 +2687,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-content-pages/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-content-pages/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/plugin-debug": { "node_modules/@docusaurus/plugin-debug": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.1.tgz",
@ -2583,6 +2743,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-debug/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-debug/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/plugin-google-analytics": { "node_modules/@docusaurus/plugin-google-analytics": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.1.tgz",
@ -2602,6 +2797,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-google-analytics/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-google-analytics/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/plugin-google-gtag": { "node_modules/@docusaurus/plugin-google-gtag": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.1.tgz",
@ -2622,6 +2852,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-google-gtag/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-google-gtag/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/plugin-google-tag-manager": { "node_modules/@docusaurus/plugin-google-tag-manager": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.1.tgz",
@ -2641,6 +2906,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-google-tag-manager/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-google-tag-manager/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/plugin-sitemap": { "node_modules/@docusaurus/plugin-sitemap": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.1.tgz",
@ -2665,6 +2965,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/plugin-sitemap/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/plugin-sitemap/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/preset-classic": { "node_modules/@docusaurus/preset-classic": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.1.tgz",
@ -2693,6 +3028,41 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/preset-classic/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/theme-classic": { "node_modules/@docusaurus/theme-classic": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.1.tgz",
@ -2734,6 +3104,60 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/module-type-aliases": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.1.tgz",
"integrity": "sha512-J+q1jgm7TnEfVIUZImSFeLA1rghb6nwtoB9siHdcgKpDqFJ9/S7xhQL2aEKE7iZMZYzpu+2F390E9A7GkdEJNA==",
"license": "MIT",
"dependencies": {
"@docusaurus/types": "3.6.1",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
"@types/react-router-dom": "*",
"react-helmet-async": "*",
"react-loadable": "npm:@docusaurus/react-loadable@6.0.0"
},
"peerDependencies": {
"react": "*",
"react-dom": "*"
}
},
"node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/theme-classic/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/theme-common": { "node_modules/@docusaurus/theme-common": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.1.tgz",
@ -2762,6 +3186,60 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
} }
}, },
"node_modules/@docusaurus/theme-common/node_modules/@docusaurus/module-type-aliases": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.1.tgz",
"integrity": "sha512-J+q1jgm7TnEfVIUZImSFeLA1rghb6nwtoB9siHdcgKpDqFJ9/S7xhQL2aEKE7iZMZYzpu+2F390E9A7GkdEJNA==",
"license": "MIT",
"dependencies": {
"@docusaurus/types": "3.6.1",
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router-config": "*",
"@types/react-router-dom": "*",
"react-helmet-async": "*",
"react-loadable": "npm:@docusaurus/react-loadable@6.0.0"
},
"peerDependencies": {
"react": "*",
"react-dom": "*"
}
},
"node_modules/@docusaurus/theme-common/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/theme-common/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/theme-search-algolia": { "node_modules/@docusaurus/theme-search-algolia": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.1.tgz",
@ -2807,16 +3285,17 @@
} }
}, },
"node_modules/@docusaurus/tsconfig": { "node_modules/@docusaurus/tsconfig": {
"version": "3.6.1", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.7.0.tgz",
"integrity": "sha512-RvjMG9M9YK8N/I5oudqJed8jjfWGI7csr4XCkGXBToNkkoi2QgkTz2DxH+obKdfLejQaASdIMynYaE5Lv7Qw9Q==", "integrity": "sha512-vRsyj3yUZCjscgfgcFYjIsTcAru/4h4YH2/XAE8Rs7wWdnng98PgWKvP5ovVc4rmRpRg2WChVW0uOy2xHDvDBQ==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@docusaurus/types": { "node_modules/@docusaurus/types": {
"version": "3.6.1", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.7.0.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==", "integrity": "sha512-kOmZg5RRqJfH31m+6ZpnwVbkqMJrPOG5t0IOl4i/+3ruXyNfWzZ0lVtVrD0u4ONc/0NOsS9sWYaxxWNkH1LdLQ==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@mdx-js/mdx": "^3.0.0", "@mdx-js/mdx": "^3.0.0",
@ -2824,20 +3303,21 @@
"@types/react": "*", "@types/react": "*",
"commander": "^5.1.0", "commander": "^5.1.0",
"joi": "^17.9.2", "joi": "^17.9.2",
"react-helmet-async": "^1.3.0", "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0",
"utility-types": "^3.10.0", "utility-types": "^3.10.0",
"webpack": "^5.95.0", "webpack": "^5.95.0",
"webpack-merge": "^5.9.0" "webpack-merge": "^5.9.0"
}, },
"peerDependencies": { "peerDependencies": {
"react": "^18.0.0", "react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0" "react-dom": "^18.0.0 || ^19.0.0"
} }
}, },
"node_modules/@docusaurus/types/node_modules/webpack-merge": { "node_modules/@docusaurus/types/node_modules/webpack-merge": {
"version": "5.10.0", "version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"clone-deep": "^4.0.1", "clone-deep": "^4.0.1",
@ -2893,6 +3373,41 @@
"node": ">=18.0" "node": ">=18.0"
} }
}, },
"node_modules/@docusaurus/utils-common/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/utils-common/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@docusaurus/utils-validation": { "node_modules/@docusaurus/utils-validation": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.1.tgz", "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.1.tgz",
@ -2912,6 +3427,41 @@
"node": ">=18.0" "node": ">=18.0"
} }
}, },
"node_modules/@docusaurus/utils/node_modules/@docusaurus/types": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.1.tgz",
"integrity": "sha512-hCB1hj9DYutVYBisnPNobz9SzEmCcf1EetJv09O49Cov3BqOkm+vnnjB3d957YJMtpLGQoKBeN/FF1DZ830JwQ==",
"license": "MIT",
"dependencies": {
"@mdx-js/mdx": "^3.0.0",
"@types/history": "^4.7.11",
"@types/react": "*",
"commander": "^5.1.0",
"joi": "^17.9.2",
"react-helmet-async": "^1.3.0",
"utility-types": "^3.10.0",
"webpack": "^5.95.0",
"webpack-merge": "^5.9.0"
},
"peerDependencies": {
"react": "^18.0.0",
"react-dom": "^18.0.0"
}
},
"node_modules/@docusaurus/utils/node_modules/webpack-merge": {
"version": "5.10.0",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
"integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
"license": "MIT",
"dependencies": {
"clone-deep": "^4.0.1",
"flat": "^5.0.2",
"wildcard": "^2.0.0"
},
"engines": {
"node": ">=10.0.0"
}
},
"node_modules/@hapi/hoek": { "node_modules/@hapi/hoek": {
"version": "9.3.0", "version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
@ -12686,9 +13236,9 @@
} }
}, },
"node_modules/prism-react-renderer": { "node_modules/prism-react-renderer": {
"version": "2.4.0", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.0.tgz", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz",
"integrity": "sha512-327BsVCD/unU4CNLZTWVHyUHKnsqcvj2qbPlQ8MiBE2eq2rgctjigPA1Gp9HLF83kZ20zNN6jgizHJeEsyFYOw==", "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@types/prismjs": "^1.26.0", "@types/prismjs": "^1.26.0",
@ -14964,9 +15514,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.6.3", "version": "5.7.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",

View File

@ -24,10 +24,10 @@
"react-dom": "^18.0.0" "react-dom": "^18.0.0"
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "3.6.1", "@docusaurus/module-type-aliases": "3.7.0",
"@docusaurus/tsconfig": "3.6.1", "@docusaurus/tsconfig": "3.7.0",
"@docusaurus/types": "3.6.1", "@docusaurus/types": "3.7.0",
"typescript": "~5.6.2" "typescript": "~5.7.0"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [

11
renovate.json Normal file
View File

@ -0,0 +1,11 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"labels": ["dependencies"],
"packageRules": [
{
"matchUpdateTypes": ["minor", "patch"],
"matchCurrentVersion": "!/^0/",
"automerge": true
}
]
}

View File

@ -5,7 +5,6 @@ import styles from './styles.module.css';
import guestsFeatureImage from '@site/static/img/guests.png'; import guestsFeatureImage from '@site/static/img/guests.png';
import expensesFeatureImage from '@site/static/img/expenses.png'; import expensesFeatureImage from '@site/static/img/expenses.png';
import seatingFeatureImage from '@site/static/img/tables.png'; import seatingFeatureImage from '@site/static/img/tables.png';
import openSourceFeatureImage from '@site/static/img/gift.png';
type FeatureItem = { type FeatureItem = {
title: string; title: string;
@ -61,7 +60,6 @@ function Feature({ title, imagePath, description }: FeatureItem) {
export default function HomepageFeatures(): JSX.Element { export default function HomepageFeatures(): JSX.Element {
return ( return (
<> <>
<h2>Features</h2>
<section className={styles.features}> <section className={styles.features}>
<div className="container"> <div className="container">
<div className="row "> <div className="row ">
@ -71,25 +69,6 @@ export default function HomepageFeatures(): JSX.Element {
</div> </div>
</div> </div>
</section> </section>
<h2>Free & Open Source Software</h2>
<section className={styles.project}>
<p>
This project was created to help individuals organize their own wedding, without the need to rely on proprietary software or services.
We firmly believe that the data related to your wedding should be owned by you, and not by a third party. For that reason, our
recommendation is that you host your own instance of Libre Wedding Planner, either at home, on your own server or on a cloud provider
of your choice.
</p>
<p>
However, we are well aware that most users don't have the technical skills or resources to host their own instance. For that reason,
we are working on a hosted version of Libre Wedding Planner you will be able to use <em>as a service</em> for an affordable fee. Still, we encourage you to
not use this service if you can host your own instance. We don't care, and don't need to know how much you're going to spend,
or who your guests are.
</p>
<p>
Libre Wedding Planner is free (as in freedom), open source software, licensed under the AGPLv3. You are free to download the source code, use it,
modify it, and distribute it according to the license terms. Please, find links to the source code in the footer of this page.
</p>
</section>
</> </>
); );
} }

View File

@ -9,15 +9,3 @@
height: 200px; height: 200px;
width: 200px; width: 200px;
} }
h2 {
text-align: center;
padding: 2rem;
font-size: 2rem;
}
.project {
padding: 2rem 0;
width: 60%;
margin: auto;
}

View File

@ -21,3 +21,15 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.h2 {
text-align: center;
padding: 2rem;
font-size: 2rem;
}
.project {
padding: 2rem 0;
width: 60%;
margin: auto;
}

View File

@ -28,7 +28,28 @@ export default function Home(): JSX.Element {
description="Free and Open Soruce software to assist the organization of weddings"> description="Free and Open Soruce software to assist the organization of weddings">
<HomepageHeader /> <HomepageHeader />
<main> <main>
<h2 className={styles.h2}>Features</h2>
<HomepageFeatures /> <HomepageFeatures />
<h2 className={styles.h2}>Free & Open Source Software</h2>
<section className={styles.project}>
<p>
This project was created to help individuals organize their own wedding, without the need to rely on proprietary software or services.
We firmly believe that the data related to your wedding should be owned by you, and not by a third party. For that reason, our
recommendation is that you host your own instance of Libre Wedding Planner, either at home, on your own server or on a cloud provider
of your choice.
</p>
<p>
However, we are well aware that most users don't have the technical skills or resources to host their own instance. For that reason,
we are working on a hosted version of Libre Wedding Planner you will be able to use <em>as a service</em> for free (as long as we can
afford the server costs). Still, we encourage you to not use this service if you can host your own instance. We don't care, and don't
need to know how much you're going to spend, or who your guests are.
</p>
<p>
Libre Wedding Planner is free (as in freedom), open source software, licensed under the AGPLv3. You are free to download the source code, use it,
modify it, and distribute it according to the license terms. Please, find links to the source code in the footer of this page.
</p>
</section>
</main> </main>
</Layout> </Layout>
); );

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.3 KiB