Compare commits
	
		
			1 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | c7c6acbace | 
| @ -28,9 +28,10 @@ Our Content Management System (CMS) that uses [Strapi](https://strapi.io/). | ||||
| 
 | ||||
| ### [img.accords-library.com](https://github.com/Accords-Library/img.accords-library.com) | ||||
| 
 | ||||
| A custom made image processor to overcome the lack of customization offered by Strapi build-in image processor. There is a python script to bulk process all images uploaded to Strapi. Subsequent changes to Strapi's media library can be handled using webhooks. The repo includes a server that listen to these webhook calls, and another to serve the images.   | ||||
| A custom made image processor to overcome the lack of customization offered by Strapi build-in image processor. There is a python script to bulk process all images uploaded to Strapi. Subsequent changes to Strapi's media library can be handled using webhooks. The repo includes a server that listen to these webhook calls, and another to serve the images. | ||||
| 
 | ||||
| Each image in Strapi's media library is converted to four different formats: | ||||
| 
 | ||||
| - Small: 512x512, quality 60, .webp | ||||
| - Medium: 1024x1024, quality 75, .webp | ||||
| - Large: 2048x2048, quality 80, .webp | ||||
| @ -39,7 +40,7 @@ Each image in Strapi's media library is converted to four different formats: | ||||
| ### [search.accords-library.com](https://github.com/Accords-Library/search.accords-library.com) | ||||
| 
 | ||||
| A search engine that uses [Meilisearch](https://www.meilisearch.com/). | ||||
| The repo includes a docker-compose file to run an instance of Meilisearch. There is also a server that populates Meilisearch's documents at startup, then listen to webhooks sent by Strapi for subsequent changes.  | ||||
| The repo includes a docker-compose file to run an instance of Meilisearch. There is also a server that populates Meilisearch's documents at startup, then listen to webhooks sent by Strapi for subsequent changes. | ||||
| 
 | ||||
| ### [gallery.accords-library.com](https://github.com/Accords-Library/gallery.accords-library.com) | ||||
| 
 | ||||
| @ -139,7 +140,6 @@ A detailled look at the technologies used in this repository: | ||||
|   - Handle query params using [Zod](https://zod.dev/) | ||||
|   - A secret "Terminal" mode. Can you find it? | ||||
| 
 | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| ```bash | ||||
|  | ||||
| @ -179,7 +179,8 @@ | ||||
|           "x_results": "{ x, plural, =0 {No results} one {# result} other {# results} }", | ||||
|           "definition_x": "Definition {x}", | ||||
|           "subitem_of_x": "Subitem of {x}", | ||||
|           "variant_of_x": "Variant of {x}" | ||||
|           "variant_of_x": "Variant of {x}", | ||||
|           "dark_mode_extension_warning": "This website offers a light and dark theme. If you are using a \"dark mode\" browser extension, make sure to disable it for an optimal experience." | ||||
|         } | ||||
|       }, | ||||
|       { | ||||
| @ -360,7 +361,8 @@ | ||||
|           "x_results": "{ x, plural, =0 {Pas de résultat} one {# résultat} other {# résultats} }", | ||||
|           "definition_x": "Définition {x}", | ||||
|           "subitem_of_x": "Sous-item de {x}", | ||||
|           "variant_of_x": "Variante de {x}" | ||||
|           "variant_of_x": "Variante de {x}", | ||||
|           "dark_mode_extension_warning": "Ce site web propose un thème clair et un thème sombre. Si vous utilisez une extension de navigateur qui simule un thème sombre, veillez à la désactiver pour une expérience optimale." | ||||
|         } | ||||
|       }, | ||||
|       { | ||||
| @ -541,7 +543,8 @@ | ||||
|           "x_results": null, | ||||
|           "definition_x": null, | ||||
|           "subitem_of_x": null, | ||||
|           "variant_of_x": null | ||||
|           "variant_of_x": null, | ||||
|           "dark_mode_extension_warning": null | ||||
|         } | ||||
|       }, | ||||
|       { | ||||
| @ -722,7 +725,8 @@ | ||||
|           "x_results": null, | ||||
|           "definition_x": null, | ||||
|           "subitem_of_x": null, | ||||
|           "variant_of_x": null | ||||
|           "variant_of_x": null, | ||||
|           "dark_mode_extension_warning": null | ||||
|         } | ||||
|       }, | ||||
|       { | ||||
| @ -903,7 +907,8 @@ | ||||
|           "x_results": null, | ||||
|           "definition_x": null, | ||||
|           "subitem_of_x": null, | ||||
|           "variant_of_x": null | ||||
|           "variant_of_x": null, | ||||
|           "dark_mode_extension_warning": null | ||||
|         } | ||||
|       } | ||||
|     ] | ||||
|  | ||||
| @ -47,8 +47,8 @@ export const Popup = ({ | ||||
|       )}> | ||||
|       <div | ||||
|         className={cJoin( | ||||
|           "fixed inset-0 bg-shade transition-all duration-500", | ||||
|           cIf(isVisible, "bg-opacity-50", "bg-opacity-0") | ||||
|           "fixed inset-0 transition-colors duration-500", | ||||
|           cIf(isVisible, "bg-shade/50", "bg-shade/0") | ||||
|         )} | ||||
|         onClick={onCloseRequest} | ||||
|       /> | ||||
|  | ||||
| @ -61,8 +61,8 @@ export const LightBox = ({ | ||||
|       )}> | ||||
|       <div | ||||
|         className={cJoin( | ||||
|           "fixed inset-0 bg-shade transition-all duration-500", | ||||
|           cIf(isVisible, "bg-opacity-50", "bg-opacity-0") | ||||
|           "fixed inset-0 transition-colors duration-500", | ||||
|           cIf(isVisible, "bg-shade/50", "bg-shade/0") | ||||
|         )} | ||||
|       /> | ||||
|       <div | ||||
|  | ||||
| @ -15,6 +15,7 @@ import { useAtomGetter, useAtomPair } from "helpers/atoms"; | ||||
| import { ThemeMode } from "contexts/settings"; | ||||
| import { Ico } from "components/Ico"; | ||||
| import { useFormat } from "hooks/useFormat"; | ||||
| import { ToolTip } from "components/ToolTip"; | ||||
| 
 | ||||
| export const SettingsPopup = (): JSX.Element => { | ||||
|   const [preferredLanguages, setPreferredLanguages] = useAtomPair( | ||||
| @ -95,7 +96,12 @@ export const SettingsPopup = (): JSX.Element => { | ||||
|             cIf(!is1ColumnLayout, "grid-cols-2") | ||||
|           )}> | ||||
|           <div> | ||||
|             <h3 className="text-xl">{format("theme")}</h3> | ||||
|             <div className="flex place-content-center place-items-center gap-1"> | ||||
|               <h3 className="text-xl">{format("theme")}</h3> | ||||
|               <ToolTip content={format("dark_mode_extension_warning")} placement="top"> | ||||
|                 <Ico icon="info" /> | ||||
|               </ToolTip> | ||||
|             </div> | ||||
|             <ButtonGroup | ||||
|               buttonsProps={[ | ||||
|                 { | ||||
|  | ||||
| @ -139,8 +139,8 @@ export const PreviewCard = ({ | ||||
|             {hoverlay && hoverlay.__typename === "Video" && ( | ||||
|               <> | ||||
|                 <div | ||||
|                   className="absolute inset-0 grid place-content-center bg-shade bg-opacity-0 | ||||
|                   text-light transition-colors group-hover:bg-opacity-50"> | ||||
|                   className="absolute inset-0 grid place-content-center bg-shade/0 | ||||
|                    text-light transition-colors group-hover:bg-shade/50"> | ||||
|                   <Ico | ||||
|                     icon="play_circle" | ||||
|                     className="!text-6xl text-light opacity-0 drop-shadow-lg transition-opacity | ||||
|  | ||||
| @ -178,4 +178,5 @@ export interface ICUParams { | ||||
|   definition_x: { x: Date | boolean | number | string }; | ||||
|   subitem_of_x: { x: Date | boolean | number | string }; | ||||
|   variant_of_x: { x: Date | boolean | number | string }; | ||||
|   dark_mode_extension_warning: never; | ||||
| } | ||||
|  | ||||
| @ -185,6 +185,7 @@ query localDataGetWebsiteInterfaces { | ||||
|         definition_x | ||||
|         subitem_of_x | ||||
|         variant_of_x | ||||
|         dark_mode_extension_warning | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
| @ -45,7 +45,6 @@ export default FiveHundred; | ||||
| export const getStaticProps: GetStaticProps = (context) => { | ||||
|   const { format } = getFormat(context.locale); | ||||
|   const props: Props = { | ||||
|     /* TODO: Langui */ | ||||
|     openGraph: getOpenGraph(format, "500 - Internal Server Error"), | ||||
|   }; | ||||
|   return { | ||||
|  | ||||
| @ -374,7 +374,7 @@ const Editor = (props: Props): JSX.Element => { | ||||
|               const textarea = event.target as HTMLTextAreaElement; | ||||
|               handleInput(textarea.value); | ||||
|             }} | ||||
|             className="h-[70vh] w-full rounded-xl bg-mid !bg-opacity-40 p-8 | ||||
|             className="h-[70vh] w-full rounded-xl bg-mid/40 p-8 | ||||
|               font-mono text-black outline-none" | ||||
|             value={markdown} | ||||
|             title="Input textarea" | ||||
| @ -382,7 +382,7 @@ const Editor = (props: Props): JSX.Element => { | ||||
|         </div> | ||||
|         <div> | ||||
|           <h2>Preview</h2> | ||||
|           <div className="h-[70vh] overflow-scroll rounded-xl bg-mid bg-opacity-40 p-8"> | ||||
|           <div className="h-[70vh] overflow-scroll rounded-xl bg-mid/40 p-8"> | ||||
|             <Markdawn className="w-full" text={markdown} /> | ||||
|           </div> | ||||
|         </div> | ||||
|  | ||||
| @ -5,7 +5,6 @@ import { Terminal } from "components/Cli/Terminal"; | ||||
| import { atoms } from "contexts/atoms"; | ||||
| import { useAtomGetter } from "helpers/atoms"; | ||||
| import { getOpenGraph } from "helpers/openGraph"; | ||||
| import { useFormat } from "hooks/useFormat"; | ||||
| import { getFormat } from "helpers/i18n"; | ||||
| import { getReadySdk } from "graphql/sdk"; | ||||
| import { PostWithTranslations } from "types/types"; | ||||
| @ -16,7 +15,6 @@ import { PostWithTranslations } from "types/types"; | ||||
|  */ | ||||
| 
 | ||||
| const Home = (props: PostStaticProps): JSX.Element => { | ||||
|   const { format } = useFormat(); | ||||
|   const isTerminalMode = useAtomGetter(atoms.layout.terminalMode); | ||||
| 
 | ||||
|   if (isTerminalMode) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user