feat(frontend): add static page support at /page/[name], add tos + privacy link to login
This commit is contained in:
		
							parent
							
								
									17cc57a31d
								
							
						
					
					
						commit
						78d6a817ed
					
				
					 4 changed files with 51 additions and 2 deletions
				
			
		
							
								
								
									
										43
									
								
								frontend/pages/page/[page].tsx
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								frontend/pages/page/[page].tsx
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | |||
| import { GetStaticProps } from "next"; | ||||
| import { readdirSync } from "fs"; | ||||
| import ReactMarkdown from "react-markdown"; | ||||
| import { readFile } from "fs/promises"; | ||||
| import { join } from "path"; | ||||
| import Head from "next/head"; | ||||
| 
 | ||||
| export async function getStaticPaths() { | ||||
|   const names = readdirSync("./static_pages").filter((name) => | ||||
|     name.endsWith(".md") | ||||
|   ); | ||||
| 
 | ||||
|   const paths = names.map((name) => ({ | ||||
|     params: { page: name.slice(0, -3) }, | ||||
|   })); | ||||
| 
 | ||||
|   return { | ||||
|     paths: paths, | ||||
|     fallback: false, | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| export const getStaticProps: GetStaticProps<{ text: string }> = async ({ | ||||
|   params, | ||||
| }) => { | ||||
|   const text = await readFile(join("./static_pages", params!.page + ".md")); | ||||
|   return { props: { text: text.toString("utf8") } }; | ||||
| }; | ||||
| 
 | ||||
| export default function Page(props: { text: string }) { | ||||
|   const title = props.text.split("\n")[0].slice(2); | ||||
| 
 | ||||
|   return ( | ||||
|     <> | ||||
|       <Head> | ||||
|         <title key="title">{`${title} - pronouns.cc`}</title> | ||||
|       </Head> | ||||
|       <div className="prose prose-slate dark:prose-invert"> | ||||
|         <ReactMarkdown>{props.text}</ReactMarkdown> | ||||
|       </div> | ||||
|     </> | ||||
|   ); | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue