diff --git a/README.md b/README.md index 42d39098..9fbbde8f 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,15 @@ npm install pip install -r requirements.txt ``` +## Local dev + +In order to get the visual feedback of the website (without docs), you can run a local version: + +```sh +npm run dev +# Open http://localhost:4321/ +``` + # Generating Run `make` to generate the HTML files, which can then be found in `dist/`. diff --git a/docs/releases.md b/docs/releases.md index 371349e1..c1a0ffbe 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -28,6 +28,89 @@ } +## Version 6 + +### v6.0.0 + +Released on Oct 26, 2024 + +#### Dropping Livewire for Vue3 + +When we released version 5, we did not realize how much of a mistake switching to Livewire was. +Lychee's front-end became slow and sluggish, plagued with issues. +Most of the time as a work around, we had to advise users to disable version 5 of the front-end +by setting the environment variable `LIVEWIRE_ENABLED=false`. + +With this in mind, at the end of June we came to the conclusion that we needed to build a new front-end from scratch. +We decided to go with Vue3, as it is a more mature framework and has a lot of support. This marks the begining of the Lychee version 6. + +For more context on those changes, see our blog posts: + +- Jun 25, 2024 - [Livewire performances problems ๐Ÿ“‰](/2024-06-25-performance-problems/) +- Jun 29, 2024 - [The future of Lychee: what is coming next. ๐Ÿš€](/2024-06-29-future-of-lychee/) +- Sep 24, 2024 - [About Lychee API documentation](/2024-09-24-v6-scramble/) + + +#### Introducing Lychee SE + +For the past few years, Lychee has been developed by a [small group of people](https://lycheeorg.github.io/support/) who have been working on it in their free time. We are proud to offer this software for free and we will continue to do so. However with time our team has decreased to the point where maintaining Lychee has become a challenge. We have been thinking about ways to keep Lychee alive, to be able to keep providing support, and to add more features. + +We have come to the conclusion that we need to add a sponsor tier system. We have extended Lychee with a new version called SE (Supporter Edition) which will be available for our GitHub supporters. This SE version comes with enhanced features and configurations, helping us fund ongoing improvements while offering a bit extra to our supporters. The free version of Lychee will continue to be available but with a more streamlined feature set. + +We strongly encourage you to check the full comparison between the [free and supporter edition](https://lycheeorg.github.io/get-supporter-edition). +If you enjoy using Lychee, please consider [supporting us](https://github.com/sponsors/LycheeOrg). + +Thank you for helping us keep Lychee alive and growing! + +#### Important Docker Changes + +If you are consuming Lychee via Docker, you will probably need to update your `docker-compose.yml` file. +In order solve the issue of temporary folders in the container, we added an extra volume `/lychee-tmp` which +by default with the updated `docker-compose.yml` will be mapped to `./lychee/tmp`, see [here](https://github.com/LycheeOrg/Lychee-Docker/blob/master/docker-compose.yml). + +This volume allows you to control the temporary folder and avoid the issue of running out of space in the container. + +#### Changes + +`SE` refers to functionalities that are aimed at the Supporter Edition. + +* `new` #106 : have "Search" on all views by @ildyria. +* `fixes` #126 : Add (optional) lossless rotation by @ildyria. + > Add the ability to over-write the original image with a temporary backup if the image was rotated. + > All the smaller sizes are normalized but the original is reverted back. + > Effectively, this is not lossless rotation, this is just no rotation for the original. +* `fixes` #226 `SE` : Add counters for total pictures and subalbums by @ildyria. + > We added a statistic page, allowing the users to check how much space they are using + > and the total number of pictures and album that are in the library. +* `new` #520 `SE` : Show and limit the space used by @ildyria. + > We introduced a quota system, allowing the admin to set a limit on the space used by each user. +* `fixes` #987 : Open image in new tab by @ildyria. + > With the switch to Vue3, this feature is now fully functional. +* `new` #1420 : Album name in link preview by @ildyria. +* `new` #1641 `SE` : User note (only available to admin) by @ildyria. + > Admin can now add notes to users. Those are only visible to the admin users. +* `fixes` #1987 : No space left on device by @ildyria. + > This error was mostly due to having temporary folders in the containers but without any ability to empty them. + > We now provide a UI to clean those folders, furthermore, those can now be mapped to a host directory. +* `new` #2082 : SEO optimization 1/3 - Setting `` and `<meta>` tags by @ildyria. + > The title and meta tag are directly fetched from the album targetted by the link. +* `new` #2086 : Feature request: light theme for Lychee by @ildyria. + > Lychee now comes also with a Light theme, the user no longer needs to tweak their custom.css + > as there is now a native support for both dark and light sides. +* `fixes` #2168 : Universal Drag & Drop and Paste to upload no longer work when using Livewire by @ildyria. + > When moving to version 5, this functionality was lost. We now re-introduce it. +* `fixes` #2194 : Change album cover picture creates a slide show of all the picture after the selected one by @ildyria. + > Version 5 had this annoying re-rendering of the album when changing the cover picture which was completely messed up. + > By switching to Vue3, this is now fixed. +* `fixes` #2361 : Image selecting does not work on chrome + MacOS by @ildyria. + > One of the main complaints of MacOs user was that CTRL was also opening the context menu. + > We now support the CMD key for MacOs users, this should fix this issue. +* `fixes` #2495 : Inverted date on album tiles with multiple months by @ildyria. + > We provide the ability to change the order of the dates displayed both in the thumbs and hero on albums, cathering to either user preferences. +* `dropped` : API Documentation. + > We have decided to drop the API documentation end-point as it was not working anymore. + > Read [more](https://lycheeorg.test/2024-09-24-v6-scramble/). + ## Version 5 ### v5.5.1 diff --git a/makefile b/makefile index 41d52707..70e74dee 100644 --- a/makefile +++ b/makefile @@ -2,7 +2,7 @@ all: assets @echo "" @python3 gen.py -.PHONY: assets +.PHONY: assets docs node_modules: npm install @@ -25,4 +25,8 @@ update-python: pip3 list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip3 install -U clean: - @rm -fr dist \ No newline at end of file + @rm -fr dist + +docs: + @echo "" + @python3 gen.py diff --git a/public/blog/v6/v6-live.png b/public/blog/v6/v6-live.png new file mode 100644 index 00000000..4cd8be11 Binary files /dev/null and b/public/blog/v6/v6-live.png differ diff --git a/src/components/ui/Soon.astro b/src/components/ui/Soon.astro new file mode 100644 index 00000000..a6625cf5 --- /dev/null +++ b/src/components/ui/Soon.astro @@ -0,0 +1,7 @@ +--- +import { twMerge } from 'tailwind-merge'; + +const { tag = 'Soon <span class="hidden sm:inline">in v6</span>', classes = {} } = Astro.props; +--- + +<span class={twMerge("rounded-full text-xs text-white bg-sky-600 dark:text-neutral-200 dark:bg-sky-900 px-2 shadow-sm shadow-black/20 ml-2", classes)}><Fragment set:html={tag} /></span> \ No newline at end of file diff --git a/src/components/ui/Tag.astro b/src/components/ui/Tag.astro index bfeae862..dd041b89 100644 --- a/src/components/ui/Tag.astro +++ b/src/components/ui/Tag.astro @@ -4,4 +4,4 @@ import { twMerge } from 'tailwind-merge'; const { tag = '<span class="hidden sm:inline">New in </span>V6', classes = {} } = Astro.props; --- -<span class={twMerge("rounded-full text-xs text-white bg-sky-300 dark:text-neutral-300 dark:bg-sky-600 px-2 shadow-sm shadow-black/20 ml-2", classes)}><Fragment set:html={tag} /></span> \ No newline at end of file +<span class={twMerge("rounded-full text-xs text-white bg-sky-300 dark:text-neutral-200 dark:bg-sky-600 px-2 shadow-sm shadow-black/20 ml-2", classes)}><Fragment set:html={tag} /></span> \ No newline at end of file diff --git a/src/components/widgets/Announcement.astro b/src/components/widgets/Announcement.astro index fd8785fe..98e704fa 100644 --- a/src/components/widgets/Announcement.astro +++ b/src/components/widgets/Announcement.astro @@ -3,15 +3,15 @@ --- <div - class="dark text-muted text-sm bg-black dark:bg-transparent dark:border-b dark:border-slate-800 dark:text-slate-400 hidden md:flex gap-1 overflow-hidden px-3 py-2 relative text-ellipsis whitespace-nowrap" + class="dark text-slate-200 text-sm bg-black dark:bg-transparent dark:border-b dark:border-slate-800 dark:text-slate-300 hidden md:flex gap-1 overflow-hidden px-3 py-2 relative text-ellipsis whitespace-nowrap" > <span - class="dark:bg-slate-700 bg-white/40 dark:text-slate-300 font-semibold px-1 py-0.5 text-xs mr-0.5 rtl:mr-0 rtl:ml-0.5 inline-block" + class="text-slate-200 dark:bg-sky-700 bg-sky-600 dark:text-slate-200 font-semibold px-1 py-0.5 text-xs mr-0.5 rtl:mr-0 rtl:ml-0.5 inline-block" >NEW</span > <a - href="https://github.com/LycheeOrg/Lychee/releases/tag/v5.5.1" - class="text-muted hover:underline dark:text-slate-400 font-medium">Lychee 5.5.1 is now available! ยป</a + href="https://github.com/LycheeOrg/Lychee/releases/tag/v6.0.0" + class="text-slate-200 hover:underline dark:text-slate-200 font-medium">Lychee 6.0.0 is now available! ยป</a > <a target="_blank" diff --git a/src/components/widgets/FeaturesList.astro b/src/components/widgets/FeaturesList.astro index 50314d45..22382495 100644 --- a/src/components/widgets/FeaturesList.astro +++ b/src/components/widgets/FeaturesList.astro @@ -4,6 +4,7 @@ import WidgetWrapper from '~/components/ui/WidgetWrapper.astro'; import type { FeaturesList as Props } from '~/types'; import Tick from '../ui/Tick.astro'; import Tag from '../ui/Tag.astro'; +import Soon from '../ui/Soon.astro'; const { title = await Astro.slots.render('title'), @@ -11,6 +12,7 @@ const { tagline = await Astro.slots.render('tagline'), products = [], specs = [], + extra = await Astro.slots.render('extra'), id, isDark = false, @@ -37,11 +39,11 @@ const { </thead> <tbody> { - specs.map(({ feature, isHeader, isV6, values, available }) => ( + specs.map(({ feature, isHeader, isV6, isSoon, values, available }) => ( <tr class={(isHeader && ' bg-neutral-50 dark:bg-neutral-800') || ''}> {isHeader && <td class="p-2 font-semibold"><Fragment set:html={feature} /></td>} {isHeader && products.map(() => <td class="p-2 text-center" />)} - {!isHeader && <td class="px-2 text-muted"><Fragment set:html={feature} />{ isV6 && <Tag/> }</td> } + {!isHeader && <td class="px-2 text-muted"><Fragment set:html={feature} />{ (!isSoon && isV6) && <Tag/> }{ isSoon && <Soon/> }</td> } {!isHeader && values && (values.map((val) => <td class="px-2 text-muted text-center">{val}</td>))} {!isHeader && available && available.map((yes) => <td class="px-2 text-muted text-center">{yes && <Tick />}</td>)} </tr> @@ -49,5 +51,6 @@ const { } </tbody> </table> + <div class="text-xs text-muted pt-2"><Fragment set:html={extra} /></div> </div> </WidgetWrapper> diff --git a/src/content/post/2024-10-26-v6.mdx b/src/content/post/2024-10-26-v6.mdx new file mode 100644 index 00000000..dd5a20e4 --- /dev/null +++ b/src/content/post/2024-10-26-v6.mdx @@ -0,0 +1,57 @@ +--- +publishDate: 2024-10-26T23:00:00Z +author: ildyria +title: 'Lychee Version 6 is Live!' +excerpt: We are excited to announce the release of Lychee version 6, a complete rewrite of the frontend for an drastically improved user experience. +image: /blog/v6/v6-live.png +category: Release Notes +tags: + - release + - lychee + - vuejs + - v6 + - Supporter Edition +--- + +First and foremost, we are excited to announce the release of [Lychee version 6](https://github.com/LycheeOrg/Lychee/releases/tag/v6.0.0)! +This new version brings a major upgrade with a completely reworked frontend built on [Vue.js](https://vuejs.org/). +By leveraging the power and flexibility of Vue, we have enhanced the overall user experience, +making the interface significantly more responsive, modern, and easier to navigate. + +If you are wondering what motivated such changes, we invite you to check our previous blog posts on the subject: +- Jun 25, 2024 - [Livewire performances problems ๐Ÿ“‰](/2024-06-25-performance-problems/) +- Jun 29, 2024 - [The future of Lychee: what is coming next. ๐Ÿš€](/2024-06-29-future-of-lychee/) +- Sep 24, 2024 - [About Lychee API documentation](/2024-09-24-v6-scramble/) + +### Some of the new Features + +While we originally did not plan to add new features and just rewrite the front-end, we ended up sneaking a few new things along the way: + +- **Improved User Interface**: A more responsive and modern frontend, providing an improved better user experience. +- **Slideshow Mode**: A new slideshow mode has been added, allowing you to view your photos in a more dynamic way. Just press the space bar or click the play button in the header to start the slideshow. +- **Dark and Light themes**: By popular demand, we have added the ability to chose between a dark and light themes. No more fiddling with CSS files! +- **Upload by chunk**: Be free of the limitation imposed by your server. Large files are now automatically split into smaller chunks at your convenience. + +To know more about the changes, we invite you to check the [release notes](/docs/releases.html#v600). + +### Introducing Lychee <span class="text-sky-500">SE</span> + +For the past few years, Lychee has been developed by a [small group of people](/support/) who have been working on it in their free time. We are proud to offer this software for free and we will continue to do so. However with time our team has decreased to the point where maintaining Lychee has become a challenge. We have been thinking about ways to keep Lychee alive, to be able to keep providing support, and to add more features. + +We have come to the conclusion that we need to add a sponsor tier system. We have extended Lychee with a new version called <span class="text-sky-500">SE</span> (Supporter Edition) which will be available for our GitHub supporters. This <span class="text-sky-500">SE</span> version comes with enhanced features and configurations, helping us fund ongoing improvements while offering a bit extra to our supporters. The free version of Lychee will continue to be available but with a more streamlined feature set. + +We strongly encourage you to check the full comparison between the [free and supporter edition](/get-supporter-edition). +If you enjoy using Lychee, please consider [supporting us](https://github.com/sponsors/LycheeOrg). + +Thank you for helping us keep Lychee alive and growing! + +### Thanks + +Finally, I ([ildyria](https://github.com/ildyria)) have been working on this new front-end for the past few months and I am very proud of the result. +Nevertheless, that release would not have been possible without the incredible support of two individuals: +- [Martin Stone](https://github.com/d7415), +- [Tino Hager](https://github.com/tinohager). + +Tino has been a great help in the development of the new front-end, providing critical and constructive feedback on how to improve things. +Martin has been an rock star reviewer, not shying away from a Pull Request with 1200+ files changes and more than 70 000 lines of code changed. +Both of you are amazing and I am very grateful for your help! diff --git a/src/navigation.js b/src/navigation.js index 6ed38388..a4e1553c 100644 --- a/src/navigation.js +++ b/src/navigation.js @@ -10,11 +10,11 @@ export const headerData = { href: getBlogPermalink(), }, { - text: 'The future of lychee', - href: getPermalink('2024-06-29-future-of-lychee', 'post'), + text: 'Lychee Version 6 is Live!', + href: getPermalink('2024-10-26-v6', 'post'), }, { - text: 'About Version 6', + text: 'Current developments', href: getPermalink('v6', 'tag'), }, ], diff --git a/src/pages/get-supporter-edition.astro b/src/pages/get-supporter-edition.astro index 30ba8d3e..d3aab9bc 100644 --- a/src/pages/get-supporter-edition.astro +++ b/src/pages/get-supporter-edition.astro @@ -7,7 +7,7 @@ import FAQs from '~/components/widgets/FAQs.astro'; import FeaturesList from '~/components/widgets/FeaturesList.astro'; const metadata = { - title: 'Pre-Launch Landing Page', + title: 'Lyche SE - Unlock the full capabilities of Lychee with the Supporter Edition.', }; --- @@ -15,9 +15,9 @@ const metadata = { <!-- Hero2 Widget ******************* --> <Hero - tagline="<span class='text-sky-600 dark:text-sky-400'>Coming Soon...</span>" - title='<span class="text-5xl"> Lychee <span class="text-sky-600 dark:text-sky-400">SE</span></span>' - subtitle="Unlock the full capabilities of <span class='font-bold text-black dark:text-white'>Lychee</span> with the <span class='text-sky-600 dark:text-sky-400 font-bold'>Supporter Edition</span>.<br>Get exclusive features and support the development of Lychee." + tagline="<span class='text-sky-600 dark:text-sky-300'></span>" + title='<span class="text-5xl"> Lychee <span class="text-sky-600 dark:text-sky-300">SE</span></span>' + subtitle="Unlock the full capabilities of <span class='font-bold text-black dark:text-white'>Lychee</span> with the <span class='text-sky-600 dark:text-sky-300 font-bold'>Supporter Edition</span>.<br>Get exclusive features and support the development of Lychee." > <Fragment slot="bg"> @@ -65,7 +65,7 @@ const metadata = { }, }, { - title: '<span class="text-sky-600 font-bold">Supporter Edition</span>', + title: '<span class="text-sky-600 dark:text-sky-300 font-bold">Supporter Edition</span>', subtitle: 'Optimal choice if you would like to support the development of Lychee.', price: 5, period: 'Per Month', @@ -109,7 +109,8 @@ const metadata = { <FeaturesList title="Full comparison" tagline="the essentials and a few more" - products={['Free', 'Lychee <span class="text-sky-600">SE</span>']} + products={['Free', 'Lychee <span class="text-sky-600 dark:text-sky-300">SE</span>']} + extra="<sup>*</sup>A lot of default values are still in English. Any pull requests with translation to your own language would help." specs={[ { feature: 'Global', @@ -133,9 +134,15 @@ const metadata = { available: [true, true], }, { - feature: 'Mutliple language supported', + feature: 'Multiple languages supported<sup>*</sup>', available: [true, true], }, + { + feature: 'Hide Lychee <span class="text-sky-600 dark:text-sky-300">SE</span> call for actions.', + available: [true, false], + isV6: true, + }, + { feature: 'Photo management', @@ -158,13 +165,13 @@ const metadata = { available: [true, true], }, { - feature: 'Upload by chunks', + feature: 'Zip & download', available: [true, true], - isV6: true, }, { - feature: 'Zip & download', + feature: 'Upload by chunks', available: [true, true], + isV6: true, }, { @@ -188,19 +195,32 @@ const metadata = { available: [true, true], }, { - feature: 'Custom sorting per album', + feature: 'Justified/Masonry/Square photo layouts', available: [true, true], }, { - feature: 'Justified/Masonry/Square photo layouts', + feature: 'Slideshow with previous & next', available: [true, true], + isV6: true, }, { - feature: 'Photo layout custom per album', - available: [true, true], + feature: 'Statistics data per album', + available: [false, true], + isV6: true, }, { - feature: 'Thumbs album aspect-ratio custom per album', + feature: 'Timeline view', + available: [false, false], + isV6: true, + isSoon: true, + }, + + { + feature: 'Per Album customizations', + isHeader: true, + }, + { + feature: 'Customizable sorting', available: [true, true], }, { @@ -212,11 +232,20 @@ const metadata = { available: [true, true], }, { - feature: 'Slideshow with previous & next', + feature: 'Customizable thumbs album aspect-ratio', + available: [true, true], + }, + { + feature: 'Customizable photo layout', available: [true, true], isV6: true, }, - + { + feature: 'Customizable timeline', + available: [false, false], + isV6: true, + isSoon: true, + }, { feature: 'User management', isHeader: true, @@ -303,61 +332,60 @@ const metadata = { available: [false, true], isV6: true, } - ]} /> <FAQs title="FAQs" - subtitle="With the new <span class='font-bold'>Lychee <span class='text-sky-600'>SE</span></span> coming soon, we understand that you must have some questions. We try to answer some of them here." + subtitle="With the new <span class='font-bold dark:text-neutral-200'>Lychee <span class='text-sky-600 dark:text-sky-300'>SE</span></span> coming soon, we understand that you must have some questions. We try to answer some of them here." columns={1} items={[ { title: 'What is the difference between the Free and Supporter Edition?', description: - 'The <span class="font-bold">Free</span> Edition is a great choice for personal use, offering unlimited albums, users, and photo uploads.<br/> \ - <span class="font-bold">Lychee</span> <span class="text-sky-600 font-bold">SE</span> includes all the features of the Free Edition, plus some exclusive features as a thank-you for supporting the development of Lychee.', + 'The <span class="font-bold dark:text-neutral-200">Free</span> Edition is a great choice for personal use, offering unlimited albums, users, and photo uploads.<br/> \ + <span class="font-bold dark:text-neutral-200">Lychee</span> <span class="text-sky-600 dark:text-sky-300 font-bold">SE</span> includes all the features of the Free Edition, plus some exclusive features as a thank-you for supporting the development of Lychee.', }, { title: 'I am running an old version of Lychee and I want to upgrade to version 6.<br>Will I be losing features if I do not use the Supporter Edition?', description: - 'No. The version 6 of Lychee is pretty much the same as version 5 but with a different front-end. It is faster, more fluid, more reactive, and less buggy. \ - The Free version 6 has not been crippled to incentivise you to upgrade to <span class="font-bold">Lychee</span> <span class="text-sky-600 font-bold">SE</span>. We are not in that kind of mindset. We want you to use Lychee, and we want you to be happy with it.', + '<span class="dark:text-neutral-200 font-semibold">No</span>. The version 6 of Lychee is pretty much the same as version 5 but with a different front-end. It is faster, more fluid, more reactive, and less buggy. \ + The Free version 6 has not been crippled to incentivise you to upgrade to <span class="font-bold dark:text-neutral-200">Lychee</span> <span class="text-sky-600 dark:text-sky-300 font-bold">SE</span>. We are not in that kind of mindset. We want you to use Lychee, and we want you to be happy with it.', }, { title: 'Is there a trial period for the Supporter Edition?', description: - "Unfortunately, we do not offer trial periods nor refunds. For this reason we recommend that you try the Free Edition first to see if Lychee fits your needs as it already comes packed with a lot of features.", + 'Unfortunately, we do not offer trial periods nor refunds. For this reason we recommend that you try the Free Edition first to see if Lychee fits your needs as it already comes packed with a lot of features.', }, { title: 'How do I get the Supporter Edition? How do I register it?', description: "Once you support us via GitHub, you will get a personal license key that you can use in your Lychee instance to unlock the exclusive features.\ If you support us directly via Open Collective, please contact us by mail or via discord to get your personal license key.<br/><br/>\ - Once you have your license key, just go into the <span class='font-semibold'>Left menu</span>, open the <span class='font-semibold'>About Lychee</span> dialog, and enter your license key in the dedicated field.", + Once you have your license key, just go into the <span class='font-semibold dark:text-neutral-300'>Left menu</span>, open the <span class='font-semibold dark:text-neutral-300'>About Lychee</span> dialog, and enter your license key in the dedicated field.", }, { title: 'Is there a limit on the number of Lychee instances I can use my license key on?', description: - "No. You can use your personal license key on as many instances of Lychee as you have.", + '<span class="dark:text-neutral-200 font-semibold">No</span>. You can use your personal license key on as many instances of Lychee as you have.', }, { title: 'I want to contribute to Lychee, where does my code fall between the Free and the Supporter Edition?', description: "That is a good question, and it really boils down to what you are adding/modifying. Our general rule of thumb is that:\ <ul class='list-disc list-inside text-muted'>\ - <li class='mt-3 sm:mt-1.5'>if you are <span class='font-bold'>adding a new feature</span> to Lychee that is not already part of the core, \ - we will include it in the <span class='font-bold'>Free Edition</span>.</li>\ - <li class='mt-3 sm:mt-0'>If you are <span class='font-bold'>improving a feature</span> that is part of the <span class='font-bold'>Free Edition</span>, that improvement will be included in the <span class='font-bold'>Free Edition</span>.</li>\ - <li class='mt-3 sm:mt-0'>If you are <span class='font-bold'>improving a feature</span> that is part of <span class='font-bold'>Lychee</span> <span class='text-sky-600 font-bold'>SE</span>, that feature will have to stay in <span class='font-bold'>Lychee</span> <span class='text-sky-600 font-bold'>SE</span>.</li>\ + <li class='mt-3 sm:mt-1.5'>if you are <span class='font-bold dark:text-neutral-200'>adding a new feature</span> to Lychee that is not already part of the core, \ + we will include it in the <span class='font-bold dark:text-neutral-200'>Free Edition</span>.</li>\ + <li class='mt-3 sm:mt-0'>If you are <span class='font-bold dark:text-neutral-200'>improving a feature</span> that is part of the <span class='font-bold dark:text-neutral-200'>Free Edition</span>, that improvement will be included in the <span class='font-bold dark:text-neutral-200'>Free Edition</span>.</li>\ + <li class='mt-3 sm:mt-0'>If you are <span class='font-bold dark:text-neutral-200'>improving a feature</span> that is part of <span class='font-bold dark:text-neutral-200'>Lychee</span> <span class='text-sky-600 dark:text-sky-300 font-bold'>SE</span>, that feature will have to stay in <span class='font-bold dark:text-neutral-200'>Lychee</span> <span class='text-sky-600 dark:text-sky-300 font-bold'>SE</span>.</li>\ </ul>\ <p class='text-muted mt-3 sm:mt-1.5'>It is as simple as that and any other way would not be fair to our users.</p>" }, { title: 'Is there a different code license between the Free and the Supporter Edition?', description: - "No. The license is the same for both editions: the <a href='/license' class='text-default hover:text-sky-600'>MIT license</a>.\ - Lychee remains fully Open Source. And as crazy at it sounds, the code of the Supporter Edition is fully available on GitHub.", + 'No. <span class="dark:text-neutral-200 font-semibold">The license is the same</span> for both editions: the <a href="/license" class="text-default hover:text-sky-600 hover:dark:text-sky-300">MIT license</a>.\ + Lychee remains fully Open Source. And as crazy at it sounds, the code of the Supporter Edition is fully available on GitHub.', } // { // title: 'Do the plans come with customer support?', diff --git a/src/types.d.ts b/src/types.d.ts index a78811bc..70457690 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -258,6 +258,7 @@ export interface Spec { feature: string; isHeader?: boolean; isV6?: boolean; + isSoon?: boolean; values?: string[]; available?: boolean[]; } @@ -266,7 +267,7 @@ export interface Spec { export interface FeaturesList extends Omit<Headline, 'classes'>, Widget { products: string[]; specs: Spec[]; - + extra?: string; } export interface Faqs extends Omit<Headline, 'classes'>, Widget {