Compare commits

...

No commits in common. "main" and "pages" have entirely different histories.
main ... pages

49 changed files with 74 additions and 4937 deletions

View file

@ -1,17 +0,0 @@
{
"extends": "next/core-web-vitals",
"rules": {
"indent": [
"error",
2
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}

View file

@ -1,28 +0,0 @@
name: Deploy Website
on:
push:
branches: 'main'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout The Repository
uses: actions/checkout@v3
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install PNPM
uses: https://github.com/pnpm/action-setup@v3.0.0
with:
version: 8
- name: Build
run: |
pnpm install
pnpm run build
- name: Deploy The Website
uses: Forgejo/pages-deploy@v1.2
with:
folder: ./out

36
.gitignore vendored
View file

@ -1,36 +0,0 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# local env files
.env*.local
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts

1
404.html Normal file
View file

@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" as="style"/><link rel="stylesheet" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="http://localhost:3000/flint/website/pages/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/webpack-9c7c914903c40936.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/framework-5eea1a21a68cb00b.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/main-07012346e9070645.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/_app-4ccee90bcc2790a3.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/_error-5a1d767a1fff0bcd.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_buildManifest.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>!function(){try{var d=document.documentElement,n='data-theme',s='setAttribute';var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';d[s](n,'dark')}else{d.style.colorScheme = 'light';d[s](n,'light')}}else if(e){d[s](n,e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"a1a648446da3299e166eeebe6e7bd8c6a468eb6f","assetPrefix":"http://localhost:3000/flint/website/pages","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>

View file

@ -1,40 +0,0 @@
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.

View file

@ -0,0 +1 @@
{"pageProps":{"pageData":{"metadata":{"title":"Home","description":"Documentation for the project."},"content":"\nThis will be the documentation for the project!"}},"__N_SSG":true}

View file

@ -0,0 +1 @@
self.__BUILD_MANIFEST=function(s){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},"/":[s,"static/css/fd1296dd328479a7.css","static/chunks/pages/index-967a9e2234b3d8b9.js"],"/_error":["static/chunks/pages/_error-5a1d767a1fff0bcd.js"],"/docs/[[...path]]":[s,"static/css/4cce76e404edced7.css","static/chunks/pages/docs/[[...path]]-b1d4dfb429ead08c.js"],"/servers":[s,"static/css/9e9055d25d22cff4.css","static/chunks/pages/servers-34f81ea630456164.js"],sortedPages:["/","/_app","/_error","/docs/[[...path]]","/servers"]}}("static/chunks/327-137fe86e00dcec2a.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();

View file

@ -0,0 +1 @@
self.__SSG_MANIFEST=new Set(["\u002Fdocs\u002F[[...path]]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{7462:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return n(2818)}])},2818:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});var r=n(1527);n(6520);var a=n(4467);function o(e){let{Component:t,pageProps:n}=e;return(0,r.jsx)(a.f,{children:(0,r.jsx)(t,{...n})})}},6520:function(){},4467:function(e,t,n){"use strict";n.d(t,{F:function(){return c},f:function(){return u}});var r=n(959),a=["light","dark"],o="(prefers-color-scheme: dark)",l="undefined"==typeof window,s=r.createContext(void 0),i={setTheme:e=>{},themes:[]},c=()=>{var e;return null!=(e=r.useContext(s))?e:i},u=e=>r.useContext(s)?e.children:r.createElement(d,{...e}),m=["light","dark"],d=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:n=!0,enableColorScheme:l=!0,storageKey:i="theme",themes:c=m,defaultTheme:u=n?"system":"light",attribute:d="data-theme",value:$,children:g,nonce:b})=>{let[w,p]=r.useState(()=>f(i,u)),[S,E]=r.useState(()=>f(i)),T=$?Object.values($):c,C=r.useCallback(e=>{let r=e;if(!r)return;"system"===e&&n&&(r=v());let o=$?$[r]:r,s=t?y():null,i=document.documentElement;if("class"===d?(i.classList.remove(...T),o&&i.classList.add(o)):o?i.setAttribute(d,o):i.removeAttribute(d),l){let e=a.includes(u)?u:null,t=a.includes(r)?r:e;i.style.colorScheme=t}null==s||s()},[]),k=r.useCallback(e=>{let t="function"==typeof e?e(e):e;p(t);try{localStorage.setItem(i,t)}catch(e){}},[e]),_=r.useCallback(t=>{E(v(t)),"system"===w&&n&&!e&&C("system")},[w,e]);r.useEffect(()=>{let e=window.matchMedia(o);return e.addListener(_),_(e),()=>e.removeListener(_)},[_]),r.useEffect(()=>{let e=e=>{e.key===i&&k(e.newValue||u)};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[k]),r.useEffect(()=>{C(null!=e?e:w)},[e,w]);let x=r.useMemo(()=>({theme:w,setTheme:k,forcedTheme:e,resolvedTheme:"system"===w?S:w,themes:n?[...c,"system"]:c,systemTheme:n?S:void 0}),[w,k,e,S,n,c]);return r.createElement(s.Provider,{value:x},r.createElement(h,{forcedTheme:e,disableTransitionOnChange:t,enableSystem:n,enableColorScheme:l,storageKey:i,themes:c,defaultTheme:u,attribute:d,value:$,children:g,attrs:T,nonce:b}),g)},h=r.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:l,enableColorScheme:s,defaultTheme:i,value:c,attrs:u,nonce:m})=>{let d="system"===i,h="class"===n?`var d=document.documentElement,c=d.classList;c.remove(${u.map(e=>`'${e}'`).join(",")});`:`var d=document.documentElement,n='${n}',s='setAttribute';`,f=s?(a.includes(i)?i:null)?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${i}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",y=(e,t=!1,r=!0)=>{let o=c?c[e]:e,l=t?e+"|| ''":`'${o}'`,i="";return s&&r&&!t&&a.includes(e)&&(i+=`d.style.colorScheme = '${e}';`),"class"===n?t||o?i+=`c.add(${l})`:i+="null":o&&(i+=`d[s](n,${l})`),i},v=e?`!function(){${h}${y(e)}}()`:l?`!function(){try{${h}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${d})){var t='${o}',m=window.matchMedia(t);if(m.media!==t||m.matches){${y("dark")}}else{${y("light")}}}else if(e){${c?`var x=${JSON.stringify(c)};`:""}${y(c?"x[e]":"e",!0)}}${d?"":"else{"+y(i,!1,!1)+"}"}${f}}catch(e){}}()`:`!function(){try{${h}var e=localStorage.getItem('${t}');if(e){${c?`var x=${JSON.stringify(c)};`:""}${y(c?"x[e]":"e",!0)}}else{${y(i,!1,!1)};}${f}}catch(t){}}();`;return r.createElement("script",{nonce:m,dangerouslySetInnerHTML:{__html:v}})}),f=(e,t)=>{let n;if(!l){try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t}},y=()=>{let e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},v=e=>(e||(e=window.matchMedia(o)),e.matches?"dark":"light")}},function(e){var t=function(t){return e(e.s=t)};e.O(0,[774,179],function(){return t(7462),t(9129)}),_N_E=e.O()}]);

View file

@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[820],{9264:function(n,_,u){(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return u(5811)}])}},function(n){n.O(0,[888,774,179],function(){return n(n.s=9264)}),_N_E=n.O()}]);

View file

@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[104],{7442:function(n,e,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/docs/[[...path]]",function(){return a(8893)}])},330:function(n,e,a){"use strict";a.d(e,{Z:function(){return u}});var s=a(1527),t=a(2371),r=a.n(t),i=a(926),c=a.n(i),o=a(4568),l=a(4566),d=a(4460),_=a(959);function u(n){let{currentPage:e}=n,[a,t]=(0,_.useState)(!1),[i,u]=(0,_.useState)(!1);return(0,_.useEffect)(()=>{a?document.body.style.overflow="hidden":document.body.style.overflow="auto"},[a]),(0,_.useEffect)(()=>{window.scrollY<=10?u(!1):u(!0),document.addEventListener("scroll",()=>{window.scrollY<=10?u(!1):u(!0),console.log(window.scrollY)})},[]),(0,s.jsx)("nav",{className:r().navBar,"data-open":a,"data-scrolled":i,children:(0,s.jsxs)("div",{className:r().container,children:[(0,s.jsxs)("div",{className:r().navMain,children:[(0,s.jsx)(o.Z,{}),(0,s.jsx)("button",{onClick:()=>{t(!a)},children:a?(0,s.jsx)(d.Z,{}):(0,s.jsx)(l.Z,{})})]}),(0,s.jsx)("div",{className:r().navCollapse,children:(0,s.jsxs)("ul",{className:r().navLinks,children:[(0,s.jsx)("li",{children:(0,s.jsx)(c(),{href:"/",className:"home"===e?r().active:"",children:"Home"})}),(0,s.jsx)("li",{children:(0,s.jsx)(c(),{href:"/docs",className:"docs"===e?r().active:"",children:"Documentation"})}),(0,s.jsx)("li",{children:(0,s.jsx)(c(),{href:"/servers",className:"servers"===e?r().active:"",children:"Servers"})}),(0,s.jsx)("li",{children:(0,s.jsx)(c(),{href:"/blog",className:"blog"===e?r().active:"",children:"Blog"})})]})})]})})}},8893:function(n,e,a){"use strict";a.r(e),a.d(e,{__N_SSG:function(){return d},default:function(){return _}});var s=a(1527),t=a(5245),r=a.n(t),i=a(330),c=a(707),o=a.n(c);function l(n){let{metadata:e,children:a}=n;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(o(),{children:[(0,s.jsx)("title",{children:"Flint Docs • ".concat(null==e?void 0:e.title)}),(0,s.jsx)("link",{rel:"icon",href:"/favicon.ico"}),(0,s.jsx)("meta",{name:"description",content:null==e?void 0:e.description})]}),(0,s.jsx)(i.Z,{currentPage:"docs"}),(0,s.jsxs)("div",{className:"".concat(r().pageContent," ").concat(r().container),children:[(0,s.jsx)("aside",{className:r().sideBar,children:(0,s.jsx)("nav",{children:"tba"})}),(0,s.jsxs)("main",{className:r().markdownContent,children:[(0,s.jsx)("h1",{children:null==e?void 0:e.title}),(0,s.jsx)("div",{children:a})]})]}),(0,s.jsx)("footer",{children:(0,s.jsxs)("p",{children:["Copyright \xa9 ",new Date().getFullYear()," Flint & Flint Contributors."]})})]})}var d=!0;function _(n){let{pageData:e}=n;return(0,s.jsx)(l,{metadata:e.metadata,children:e.content})}},5245:function(n){n.exports={container:"MarkdownPage_container__gSnW2",pageContent:"MarkdownPage_pageContent__09B87",sideBar:"MarkdownPage_sideBar__AoeKe",markdownContent:"MarkdownPage_markdownContent__J_6Mj"}},2371:function(n){n.exports={container:"Navbar_container__PNqjh",navBar:"Navbar_navBar__lM_ii",navMain:"Navbar_navMain__V_HU3",navCollapse:"Navbar_navCollapse__yDKv_",navLinks:"Navbar_navLinks__g9902",active:"Navbar_active__Q6b4D"}}},function(n){n.O(0,[327,888,774,179],function(){return n(n.s=7442)}),_N_E=n.O()}]);

View file

@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{3913:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return s(9970)}])},330:function(e,n,s){"use strict";s.d(n,{Z:function(){return u}});var a=s(1527),t=s(2371),r=s.n(t),i=s(926),l=s.n(i),c=s(4568),o=s(4566),d=s(4460),h=s(959);function u(e){let{currentPage:n}=e,[s,t]=(0,h.useState)(!1),[i,u]=(0,h.useState)(!1);return(0,h.useEffect)(()=>{s?document.body.style.overflow="hidden":document.body.style.overflow="auto"},[s]),(0,h.useEffect)(()=>{window.scrollY<=10?u(!1):u(!0),document.addEventListener("scroll",()=>{window.scrollY<=10?u(!1):u(!0),console.log(window.scrollY)})},[]),(0,a.jsx)("nav",{className:r().navBar,"data-open":s,"data-scrolled":i,children:(0,a.jsxs)("div",{className:r().container,children:[(0,a.jsxs)("div",{className:r().navMain,children:[(0,a.jsx)(c.Z,{}),(0,a.jsx)("button",{onClick:()=>{t(!s)},children:s?(0,a.jsx)(d.Z,{}):(0,a.jsx)(o.Z,{})})]}),(0,a.jsx)("div",{className:r().navCollapse,children:(0,a.jsxs)("ul",{className:r().navLinks,children:[(0,a.jsx)("li",{children:(0,a.jsx)(l(),{href:"/",className:"home"===n?r().active:"",children:"Home"})}),(0,a.jsx)("li",{children:(0,a.jsx)(l(),{href:"/docs",className:"docs"===n?r().active:"",children:"Documentation"})}),(0,a.jsx)("li",{children:(0,a.jsx)(l(),{href:"/servers",className:"servers"===n?r().active:"",children:"Servers"})}),(0,a.jsx)("li",{children:(0,a.jsx)(l(),{href:"/blog",className:"blog"===n?r().active:"",children:"Blog"})})]})})]})})}},9970:function(e,n,s){"use strict";s.r(n),s.d(n,{default:function(){return f}});var a=s(1527),t=s(1121),r=s.n(t),i=s(857),l=s.n(i),c=s(926),o=s.n(c);function d(e){let{href:n,children:s,className:t,disabled:r,type:i,...c}=e;return(0,a.jsx)(a.Fragment,{children:n?(0,a.jsx)(o(),{href:n,className:t?"".concat(t," ").concat(l().button):l().button,"data-type":i,"data-disabled":r,...c,children:s}):(0,a.jsx)("button",{className:t?"".concat(t," ").concat(l().button):l().button,disabled:r,"data-type":i,"data-disabled":r,...c,children:s})})}var h=s(330),u=s(959),x=s(4467);function j(){let[e,n]=(0,u.useState)(!1),{theme:s,setTheme:t}=(0,x.F)();return((0,u.useEffect)(()=>{n(!0)},[]),e)?(0,a.jsxs)("select",{value:s,onChange:e=>t(e.target.value),children:[(0,a.jsx)("option",{value:"system",children:"System"}),(0,a.jsx)("option",{value:"dark",children:"Dark"}),(0,a.jsx)("option",{value:"light",children:"Light"})]}):null}var v=s(707),_=s.n(v);function f(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(_(),{children:[(0,a.jsx)("title",{children:"Flint • Git Hosting That Just Works."}),(0,a.jsx)("meta",{name:"description",content:"A free and open-source, self hostable federated git platform."})]}),(0,a.jsx)(h.Z,{currentPage:"home"}),(0,a.jsxs)("header",{className:r().headLine,children:[(0,a.jsx)("h3",{children:"Flint"}),(0,a.jsx)("h1",{children:"Git Hosting That Just Works."}),(0,a.jsx)("p",{children:"A free and open-source, self hostable federated git platform."}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:(0,a.jsx)(d,{href:"/servers",type:"primary",children:"Find a Server"})}),(0,a.jsx)("li",{children:(0,a.jsx)(d,{href:"/docs",type:"outlined",children:"Get Started"})})]}),(0,a.jsx)("span",{className:r().gradient})]}),(0,a.jsx)("main",{className:r().container,children:(0,a.jsxs)("section",{children:[(0,a.jsx)("h2",{children:"Features"}),(0,a.jsxs)("ul",{children:[(0,a.jsx)("li",{children:"Self-Hostable"}),(0,a.jsx)("li",{children:"Federated"}),(0,a.jsx)("li",{children:"Open-Source"}),(0,a.jsx)("li",{children:"Easy to Use"})]})]})}),(0,a.jsx)(j,{})]})}},857:function(e){e.exports={button:"Button_button__J1uoJ"}},1121:function(e){e.exports={container:"Home_container__B1VFq",headLine:"Home_headLine__v0JEl",gradient:"Home_gradient__YRn8m"}},2371:function(e){e.exports={container:"Navbar_container__PNqjh",navBar:"Navbar_navBar__lM_ii",navMain:"Navbar_navMain__V_HU3",navCollapse:"Navbar_navCollapse__yDKv_",navLinks:"Navbar_navLinks__g9902",active:"Navbar_active__Q6b4D"}}},function(e){e.O(0,[327,888,774,179],function(){return e(e.s=3913)}),_N_E=e.O()}]);

View file

@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[745],{2313:function(e,n,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/servers",function(){return s(3235)}])},330:function(e,n,s){"use strict";s.d(n,{Z:function(){return u}});var r=s(1527),a=s(2371),i=s.n(a),c=s(926),t=s.n(c),l=s(4568),o=s(4566),d=s(4460),v=s(959);function u(e){let{currentPage:n}=e,[s,a]=(0,v.useState)(!1),[c,u]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{s?document.body.style.overflow="hidden":document.body.style.overflow="auto"},[s]),(0,v.useEffect)(()=>{window.scrollY<=10?u(!1):u(!0),document.addEventListener("scroll",()=>{window.scrollY<=10?u(!1):u(!0),console.log(window.scrollY)})},[]),(0,r.jsx)("nav",{className:i().navBar,"data-open":s,"data-scrolled":c,children:(0,r.jsxs)("div",{className:i().container,children:[(0,r.jsxs)("div",{className:i().navMain,children:[(0,r.jsx)(l.Z,{}),(0,r.jsx)("button",{onClick:()=>{a(!s)},children:s?(0,r.jsx)(d.Z,{}):(0,r.jsx)(o.Z,{})})]}),(0,r.jsx)("div",{className:i().navCollapse,children:(0,r.jsxs)("ul",{className:i().navLinks,children:[(0,r.jsx)("li",{children:(0,r.jsx)(t(),{href:"/",className:"home"===n?i().active:"",children:"Home"})}),(0,r.jsx)("li",{children:(0,r.jsx)(t(),{href:"/docs",className:"docs"===n?i().active:"",children:"Documentation"})}),(0,r.jsx)("li",{children:(0,r.jsx)(t(),{href:"/servers",className:"servers"===n?i().active:"",children:"Servers"})}),(0,r.jsx)("li",{children:(0,r.jsx)(t(),{href:"/blog",className:"blog"===n?i().active:"",children:"Blog"})})]})})]})})}},3235:function(e,n,s){"use strict";s.r(n),s.d(n,{default:function(){return o}});var r=s(1527),a=s(1455),i=s.n(a),c=s(330),t=s(707),l=s.n(t);function o(){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l(),{children:(0,r.jsx)("title",{children:"Flint • Find a Server"})}),(0,r.jsx)(c.Z,{currentPage:"servers"}),(0,r.jsx)("main",{className:i().container,children:(0,r.jsxs)("section",{children:[(0,r.jsx)("h2",{children:"Find a Server"}),(0,r.jsx)("p",{children:"Flint is a federated git platform, meaning that you can host your own server and connect with other servers. Below is a list of servers that you can join."})]})})]})}},2371:function(e){e.exports={container:"Navbar_container__PNqjh",navBar:"Navbar_navBar__lM_ii",navMain:"Navbar_navMain__V_HU3",navCollapse:"Navbar_navCollapse__yDKv_",navLinks:"Navbar_navLinks__g9902",active:"Navbar_active__Q6b4D"}},1455:function(e){e.exports={container:"Servers_container___dk8T"}}},function(e){e.O(0,[327,888,774,179],function(){return e(e.s=2313)}),_N_E=e.O()}]);

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
!function(){"use strict";var e,n,r,t,o={},u={};function i(e){var n=u[e];if(void 0!==n)return n.exports;var r=u[e]={exports:{}},t=!0;try{o[e](r,r.exports,i),t=!1}finally{t&&delete u[e]}return r.exports}i.m=o,e=[],i.O=function(n,r,t,o){if(r){o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,t,o];return}for(var f=1/0,u=0;u<e.length;u++){for(var r=e[u][0],t=e[u][1],o=e[u][2],l=!0,a=0;a<r.length;a++)f>=o&&Object.keys(i.O).every(function(e){return i.O[e](r[a])})?r.splice(a--,1):(l=!1,o<f&&(f=o));if(l){e.splice(u--,1);var c=t();void 0!==c&&(n=c)}}return n},i.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(n,{a:n}),n},i.d=function(e,n){for(var r in n)i.o(n,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},i.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="http://localhost:3000/flint/website/pages/_next/",n={272:0},i.O.j=function(e){return 0===n[e]},r=function(e,r){var t,o,u=r[0],f=r[1],l=r[2],a=0;if(u.some(function(e){return 0!==n[e]})){for(t in f)i.o(f,t)&&(i.m[t]=f[t]);if(l)var c=l(i)}for(e&&e(r);a<u.length;a++)o=u[a],i.o(n,o)&&n[o]&&n[o][0](),n[o]=0;return i.O(c)},(t=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))}();

View file

@ -0,0 +1 @@
.MarkdownPage_container__gSnW2{max-width:1200px;margin:0 auto}@media(max-width:1200px){.MarkdownPage_container__gSnW2{padding:0 1rem}}@media(max-width:768px){.MarkdownPage_container__gSnW2{padding:0 1rem}}.MarkdownPage_pageContent__09B87{display:flex}.MarkdownPage_pageContent__09B87>.MarkdownPage_sideBar__AoeKe{position:-webkit-sticky;position:sticky;top:0;height:100vh;width:300px;margin-right:20px}.MarkdownPage_pageContent__09B87>.MarkdownPage_markdownContent__J_6Mj{flex:1 1}.Navbar_container__PNqjh{max-width:1200px;margin:0 auto}@media(max-width:1200px){.Navbar_container__PNqjh{padding:0 1rem}}@media(max-width:768px){.Navbar_container__PNqjh{padding:0 1rem}}.Navbar_navBar__lM_ii{position:fixed;top:0;left:0;right:0}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh{padding-top:.5rem;padding-bottom:.5rem}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh,.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3{display:flex;justify-content:space-between;align-items:center}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button{display:none;justify-content:center;align-items:center;padding:.15rem;background:none;border:none;cursor:pointer}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button>svg{width:1.5rem;height:1.5rem;fill:rgba(15,23,42,.75)}[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button>svg{fill:rgba(248,250,252,.75)}@media(max-width:768px){.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button{display:flex}}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902{list-style:none;display:flex;gap:.5rem}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li{padding:1rem}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a{text-decoration:none;color:rgba(15,23,42,.75)}[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a{color:rgba(248,250,252,.75)}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a.Navbar_active__Q6b4D,.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a:hover{color:#3b0764}[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a.Navbar_active__Q6b4D,[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a:hover{color:#f8fafc}.Navbar_navBar__lM_ii[data-scrolled=true]{background:rgba(248,250,252,.95)}[data-theme=dark] .Navbar_navBar__lM_ii[data-scrolled=true]{background:rgba(15,23,42,.95)}@media(max-width:768px){.Navbar_navBar__lM_ii>.Navbar_container__PNqjh{flex-direction:column;justify-content:flex-start;padding:1rem!important;height:100%}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3{width:100%}.Navbar_navBar__lM_ii .Navbar_navCollapse__yDKv_{display:none;flex:1 1;width:100%;margin-top:1rem}.Navbar_navBar__lM_ii .Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902{flex-direction:column;justify-content:center;align-items:flex-end;height:100%}.Navbar_navBar__lM_ii .Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li{padding:.75rem 0!important}.Navbar_navBar__lM_ii[data-open=true]{height:100dvh;background:rgba(248,250,252,.95)}.Navbar_navBar__lM_ii[data-open=true] .Navbar_navCollapse__yDKv_{display:block}[data-theme=dark] .Navbar_navBar__lM_ii[data-open=true]{background:rgba(15,23,42,.95)}}

View file

@ -0,0 +1 @@
.Servers_container___dk8T{max-width:1200px;margin:0 auto}@media(max-width:1200px){.Servers_container___dk8T{padding:0 1rem}}@media(max-width:768px){.Servers_container___dk8T{padding:0 1rem}}.Navbar_container__PNqjh{max-width:1200px;margin:0 auto}@media(max-width:1200px){.Navbar_container__PNqjh{padding:0 1rem}}@media(max-width:768px){.Navbar_container__PNqjh{padding:0 1rem}}.Navbar_navBar__lM_ii{position:fixed;top:0;left:0;right:0}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh{padding-top:.5rem;padding-bottom:.5rem}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh,.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3{display:flex;justify-content:space-between;align-items:center}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button{display:none;justify-content:center;align-items:center;padding:.15rem;background:none;border:none;cursor:pointer}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button>svg{width:1.5rem;height:1.5rem;fill:rgba(15,23,42,.75)}[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button>svg{fill:rgba(248,250,252,.75)}@media(max-width:768px){.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3>button{display:flex}}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902{list-style:none;display:flex;gap:.5rem}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li{padding:1rem}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a{text-decoration:none;color:rgba(15,23,42,.75)}[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a{color:rgba(248,250,252,.75)}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a.Navbar_active__Q6b4D,.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a:hover{color:#3b0764}[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a.Navbar_active__Q6b4D,[data-theme=dark] .Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li>a:hover{color:#f8fafc}.Navbar_navBar__lM_ii[data-scrolled=true]{background:rgba(248,250,252,.95)}[data-theme=dark] .Navbar_navBar__lM_ii[data-scrolled=true]{background:rgba(15,23,42,.95)}@media(max-width:768px){.Navbar_navBar__lM_ii>.Navbar_container__PNqjh{flex-direction:column;justify-content:flex-start;padding:1rem!important;height:100%}.Navbar_navBar__lM_ii>.Navbar_container__PNqjh>.Navbar_navMain__V_HU3{width:100%}.Navbar_navBar__lM_ii .Navbar_navCollapse__yDKv_{display:none;flex:1 1;width:100%;margin-top:1rem}.Navbar_navBar__lM_ii .Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902{flex-direction:column;justify-content:center;align-items:flex-end;height:100%}.Navbar_navBar__lM_ii .Navbar_navCollapse__yDKv_>.Navbar_navLinks__g9902>li{padding:.75rem 0!important}.Navbar_navBar__lM_ii[data-open=true]{height:100dvh;background:rgba(248,250,252,.95)}.Navbar_navBar__lM_ii[data-open=true] .Navbar_navCollapse__yDKv_{display:block}[data-theme=dark] .Navbar_navBar__lM_ii[data-open=true]{background:rgba(15,23,42,.95)}}

View file

@ -0,0 +1 @@
@import"https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap";*{padding:0;margin:0;box-sizing:border-box;font-size:1rem}body{font-family:Noto Sans,sans;color:#0f172a;background:#f8fafc}[data-theme=dark] body{color:#f8fafc;background:#0f172a}code,pre{font-family:Noto Sans Mono,monospace}::selection{background:rgba(59,7,100,.7);color:#fff}

File diff suppressed because one or more lines are too long

View file

@ -1,28 +0,0 @@
import styles from '@/styles/Button.module.scss';
import Link from 'next/link';
type Props = {
href?: string;
children: React.ReactNode;
className?: string;
disabled?: boolean;
type: 'primary' | 'outlined';
[key: string]: any;
};
export default function Button({ href, children, className, disabled, type, ...props }: Props) {
return (
<>
{href ? (
<Link href={href} className={className ? `${className} ${styles.button}` : styles.button} data-type={type} data-disabled={disabled} {...props}>
{children}
</Link>
) : (
<button className={className ? `${className} ${styles.button}` : styles.button} disabled={disabled} data-type={type} data-disabled={disabled} {...props}>
{children}
</button>
)}
</>
);
}

View file

@ -1,46 +0,0 @@
import styles from '@/styles/MarkdownPage.module.scss';
import Navbar from './Navbar';
import Head from 'next/head';
type Props = {
metadata?: any;
children: React.ReactNode;
};
export default function MarkdownPage({ metadata, children }: Props) {
return (
<>
<Head>
<title>{`Flint Docs • ${metadata?.title}`}</title>
<link rel="icon" href="/favicon.ico" />
<meta name="description" content={metadata?.description} />
</Head>
<Navbar currentPage="docs" />
<div className={`${styles.pageContent} ${styles.container}`}>
<aside className={styles.sideBar}>
<nav>
tba
</nav>
</aside>
<main className={styles.markdownContent}>
<h1>{metadata?.title}</h1>
<div>{children}</div>
</main>
</div>
<footer>
<p>
Copyright &copy; { new Date().getFullYear() } Flint &amp; Flint Contributors.
</p>
</footer>
</>
);
}

View file

@ -1,83 +0,0 @@
import styles from '@/styles/Navbar.module.scss';
import Link from 'next/link';
import {
Menu,
Mountain,
X
} from 'lucide-react';
import {
useEffect,
useRef,
useState
} from 'react';
type Props = {
currentPage: string;
}
export default function Navbar({ currentPage }: Props) {
const [ navOpen, setNavOpen ] = useState(false);
const [ scrolled, setScrolled ] = useState(false);
const toggleNav = () => {
setNavOpen(!navOpen);
};
useEffect(() => {
if (navOpen) {
document.body.style.overflow = 'hidden';
} else {
document.body.style.overflow = 'auto';
}
}, [ navOpen ]);
useEffect(() => {
if(window.scrollY <= 10)
setScrolled(false);
else
setScrolled(true);
document.addEventListener('scroll', () => {
if(window.scrollY <= 10)
setScrolled(false);
else
setScrolled(true);
console.log(window.scrollY);
});
}, [ ]);
return (
<nav className={styles.navBar} data-open={navOpen} data-scrolled={scrolled}>
<div className={styles.container}>
<div className={styles.navMain}>
<Mountain />
<button onClick={toggleNav}>
{!navOpen ? <Menu /> : <X />}
</button>
</div>
<div className={styles.navCollapse}>
<ul className={styles.navLinks}>
<li>
<Link href="/" className={currentPage === 'home' ? styles.active : ''}>Home</Link>
</li>
<li>
<Link href="/docs" className={currentPage === 'docs' ? styles.active : ''}>Documentation</Link>
</li>
<li>
<Link href="/servers" className={currentPage === 'servers' ? styles.active : ''}>Servers</Link>
</li>
<li>
<Link href="/blog" className={currentPage === 'blog' ? styles.active : ''}>Blog</Link>
</li>
</ul>
</div>
</div>
</nav>
);
}

View file

@ -1,23 +0,0 @@
import { useState, useEffect } from 'react';
import { useTheme } from 'next-themes';
export default function ThemeChanger() {
const [mounted, setMounted] = useState(false);
const { theme, setTheme } = useTheme();
useEffect(() => {
setMounted(true);
}, []);
if (!mounted) {
return null;
}
return (
<select value={theme} onChange={e => setTheme(e.target.value)}>
<option value="system">System</option>
<option value="dark">Dark</option>
<option value="light">Light</option>
</select>
);
}

2
docs.html Normal file
View file

@ -0,0 +1,2 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Flint Docs • Home</title><link rel="icon" href="/favicon.ico"/><meta name="description" content="Documentation for the project."/><meta name="next-head-count" content="5"/><link rel="preload" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" as="style"/><link rel="stylesheet" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" data-n-g=""/><link rel="preload" href="http://localhost:3000/flint/website/pages/_next/static/css/4cce76e404edced7.css" as="style"/><link rel="stylesheet" href="http://localhost:3000/flint/website/pages/_next/static/css/4cce76e404edced7.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="http://localhost:3000/flint/website/pages/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/webpack-9c7c914903c40936.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/framework-5eea1a21a68cb00b.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/main-07012346e9070645.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/_app-4ccee90bcc2790a3.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/327-137fe86e00dcec2a.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/docs/%5B%5B...path%5D%5D-b1d4dfb429ead08c.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_buildManifest.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>!function(){try{var d=document.documentElement,n='data-theme',s='setAttribute';var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';d[s](n,'dark')}else{d.style.colorScheme = 'light';d[s](n,'light')}}else if(e){d[s](n,e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><nav class="Navbar_navBar__lM_ii" data-open="false" data-scrolled="false"><div class="Navbar_container__PNqjh"><div class="Navbar_navMain__V_HU3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mountain "><path d="m8 3 4 8 5-5 5 15H2L8 3z"></path></svg><button><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu "><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div><div class="Navbar_navCollapse__yDKv_"><ul class="Navbar_navLinks__g9902"><li><a class="" href="/">Home</a></li><li><a class="Navbar_active__Q6b4D" href="/docs">Documentation</a></li><li><a class="" href="/servers">Servers</a></li><li><a class="" href="/blog">Blog</a></li></ul></div></div></nav><div class="MarkdownPage_pageContent__09B87 MarkdownPage_container__gSnW2"><aside class="MarkdownPage_sideBar__AoeKe"><nav>tba</nav></aside><main class="MarkdownPage_markdownContent__J_6Mj"><h1>Home</h1><div>
This will be the documentation for the project!</div></main></div><footer><p>Copyright © <!-- -->2024<!-- --> Flint &amp; Flint Contributors.</p></footer></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"pageData":{"metadata":{"title":"Home","description":"Documentation for the project."},"content":"\nThis will be the documentation for the project!"}},"__N_SSG":true},"page":"/docs/[[...path]]","query":{},"buildId":"a1a648446da3299e166eeebe6e7bd8c6a468eb6f","assetPrefix":"http://localhost:3000/flint/website/pages","isFallback":false,"gsp":true,"scriptLoader":[]}</script></body></html>

View file

@ -1,6 +0,0 @@
---
title: 'Home'
description: 'Documentation for the project.'
---
This will be the documentation for the project!

View file

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

1
index.html Normal file
View file

@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Flint • Git Hosting That Just Works.</title><meta name="description" content="A free and open-source, self hostable federated git platform."/><meta name="next-head-count" content="4"/><link rel="preload" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" as="style"/><link rel="stylesheet" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" data-n-g=""/><link rel="preload" href="http://localhost:3000/flint/website/pages/_next/static/css/fd1296dd328479a7.css" as="style"/><link rel="stylesheet" href="http://localhost:3000/flint/website/pages/_next/static/css/fd1296dd328479a7.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="http://localhost:3000/flint/website/pages/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/webpack-9c7c914903c40936.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/framework-5eea1a21a68cb00b.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/main-07012346e9070645.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/_app-4ccee90bcc2790a3.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/327-137fe86e00dcec2a.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/index-967a9e2234b3d8b9.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_buildManifest.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>!function(){try{var d=document.documentElement,n='data-theme',s='setAttribute';var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';d[s](n,'dark')}else{d.style.colorScheme = 'light';d[s](n,'light')}}else if(e){d[s](n,e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><nav class="Navbar_navBar__lM_ii" data-open="false" data-scrolled="false"><div class="Navbar_container__PNqjh"><div class="Navbar_navMain__V_HU3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mountain "><path d="m8 3 4 8 5-5 5 15H2L8 3z"></path></svg><button><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu "><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div><div class="Navbar_navCollapse__yDKv_"><ul class="Navbar_navLinks__g9902"><li><a class="Navbar_active__Q6b4D" href="/">Home</a></li><li><a class="" href="/docs">Documentation</a></li><li><a class="" href="/servers">Servers</a></li><li><a class="" href="/blog">Blog</a></li></ul></div></div></nav><header class="Home_headLine__v0JEl"><h3>Flint</h3><h1>Git Hosting That Just Works.</h1><p>A free and open-source, self hostable federated git platform.</p><ul><li><a class="Button_button__J1uoJ" data-type="primary" href="/servers">Find a Server</a></li><li><a class="Button_button__J1uoJ" data-type="outlined" href="/docs">Get Started</a></li></ul><span class="Home_gradient__YRn8m"></span></header><main class="Home_container__B1VFq"><section><h2>Features</h2><ul><li>Self-Hostable</li><li>Federated</li><li>Open-Source</li><li>Easy to Use</li></ul></section></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"a1a648446da3299e166eeebe6e7bd8c6a468eb6f","assetPrefix":"http://localhost:3000/flint/website/pages","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View file

@ -1,7 +0,0 @@
import type { MDXComponents } from 'mdx/types';
export function useMDXComponents(components: MDXComponents): MDXComponents {
return {
...components,
};
}

View file

@ -1,25 +0,0 @@
const path = require('path');
const createMDX = require('@next/mdx');
const childProcess = require('child_process');
const isProd = process.env.NODE_ENV === 'production';
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'export',
reactStrictMode: true,
sassOptions: {
includePaths: [ path.join(__dirname, 'styles') ]
},
generateBuildId: async () => {
return childProcess.execSync('git rev-parse HEAD').toString().trim();
},
pageExtensions: [ 'js', 'jsx', 'md', 'mdx', 'ts', 'tsx' ],
assetPrefix: isProd ? 'http://localhost:3000/flint/website/pages' : undefined
};
module.exports = createMDX({
mdPlugins: [
import('rehype-highlight')
]
})(nextConfig);

View file

@ -1,34 +0,0 @@
{
"name": "flint-homepage",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@mdx-js/loader": "^3.0.1",
"@mdx-js/react": "^3.0.1",
"@next/mdx": "^14.2.2",
"@types/mdx": "^2.0.13",
"gray-matter": "^4.0.3",
"highlight.js": "^11.9.0",
"lucide-react": "^0.372.0",
"next": "14.2.2",
"next-themes": "^0.3.0",
"react": "^18",
"react-dom": "^18",
"rehype-highlight": "^7.0.0"
},
"devDependencies": {
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18",
"eslint": "^8",
"eslint-config-next": "14.2.2",
"sass": "^1.75.0",
"typescript": "^5"
}
}

View file

@ -1,12 +0,0 @@
import '@/styles/globals.scss';
import { ThemeProvider } from 'next-themes';
import type { AppProps } from 'next/app';
export default function App({ Component, pageProps }: AppProps) {
return (
<ThemeProvider>
<Component {...pageProps} />
</ThemeProvider>
);
}

View file

@ -1,13 +0,0 @@
import { Html, Head, Main, NextScript } from 'next/document';
export default function Document() {
return (
<Html lang="en">
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
);
}

View file

@ -1,59 +0,0 @@
import MarkdownPage from '@/components/MarkdownPage';
import matter from 'gray-matter';
export default function Home({ pageData }: { pageData: any }) {
return (
<MarkdownPage metadata={pageData.metadata}>
{ pageData.content }
</MarkdownPage>
);
}
export async function getStaticProps({ params }: { params: any }) {
const path = require('path');
let pagePath = path.join(process.cwd(), 'docs', (typeof params.path) === 'undefined' ? 'index' : params.path.join('/'));
const pageData = await matter.read(`${pagePath}.mdx`);
return {
props: {
pageData: {
metadata: pageData.data,
content: pageData.content
}
}
};
}
export async function getStaticPaths() {
const fs = require('fs');
const path = require('path');
const docsDir = path.join(process.cwd(), 'docs');
const docsFiles = fs.readdirSync(docsDir);
const paths = docsFiles.map((file: string) => {
if (file.endsWith('.mdx')) {
if (file.startsWith('index')) {
return {
params: {
path: []
}
};
} else {
return {
params: {
path: file.split('.').slice(0, -1)
}
};
}
}
});
return {
paths,
fallback: false
};
}

View file

@ -1,63 +0,0 @@
import styles from '@/styles/Home.module.scss';
import Button from '@/components/Button';
import Navbar from '@/components/Navbar';
import ThemeChanger from '@/components/ThemeChanger';
import Head from 'next/head';
export default function Home() {
return (
<>
<Head>
<title>Flint &bull; Git Hosting That Just Works.</title>
<meta name="description" content="A free and open-source, self hostable federated git platform." />
</Head>
<Navbar currentPage="home" />
<header className={styles.headLine}>
<h3>Flint</h3>
<h1>
Git Hosting That Just Works.
</h1>
<p>
A free and open-source, self hostable federated git platform.
</p>
<ul>
<li>
<Button href="/servers" type={'primary'}>
Find a Server
</Button>
</li>
<li>
<Button href="/docs" type={'outlined'}>
Get Started
</Button>
</li>
</ul>
<span className={styles.gradient}></span>
</header>
<main className={styles.container}>
<section>
<h2>Features</h2>
<ul>
<li>Self-Hostable</li>
<li>Federated</li>
<li>Open-Source</li>
<li>Easy to Use</li>
</ul>
</section>
</main>
<ThemeChanger />
</>
);
}

View file

@ -1,27 +0,0 @@
import styles from '@/styles/Servers.module.scss';
import Navbar from '@/components/Navbar';
import Head from 'next/head';
export default function Servers() {
return (
<>
<Head>
<title>Flint &bull; Find a Server</title>
</Head>
<Navbar currentPage="servers" />
<main className={styles.container}>
<section>
<h2>Find a Server</h2>
<p>
Flint is a federated git platform, meaning that you can host your own server and connect with other servers. Below is a list of servers that you can join.
</p>
</section>
</main>
</>
);
}

File diff suppressed because it is too large Load diff

1
servers.html Normal file
View file

@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Flint • Find a Server</title><meta name="next-head-count" content="3"/><link rel="preload" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" as="style"/><link rel="stylesheet" href="http://localhost:3000/flint/website/pages/_next/static/css/f78650e08174807a.css" data-n-g=""/><link rel="preload" href="http://localhost:3000/flint/website/pages/_next/static/css/9e9055d25d22cff4.css" as="style"/><link rel="stylesheet" href="http://localhost:3000/flint/website/pages/_next/static/css/9e9055d25d22cff4.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="http://localhost:3000/flint/website/pages/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/webpack-9c7c914903c40936.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/framework-5eea1a21a68cb00b.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/main-07012346e9070645.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/_app-4ccee90bcc2790a3.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/327-137fe86e00dcec2a.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/chunks/pages/servers-34f81ea630456164.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_buildManifest.js" defer=""></script><script src="http://localhost:3000/flint/website/pages/_next/static/a1a648446da3299e166eeebe6e7bd8c6a468eb6f/_ssgManifest.js" defer=""></script></head><body><div id="__next"><script>!function(){try{var d=document.documentElement,n='data-theme',s='setAttribute';var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';d[s](n,'dark')}else{d.style.colorScheme = 'light';d[s](n,'light')}}else if(e){d[s](n,e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><nav class="Navbar_navBar__lM_ii" data-open="false" data-scrolled="false"><div class="Navbar_container__PNqjh"><div class="Navbar_navMain__V_HU3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mountain "><path d="m8 3 4 8 5-5 5 15H2L8 3z"></path></svg><button><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu "><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div><div class="Navbar_navCollapse__yDKv_"><ul class="Navbar_navLinks__g9902"><li><a class="" href="/">Home</a></li><li><a class="" href="/docs">Documentation</a></li><li><a class="Navbar_active__Q6b4D" href="/servers">Servers</a></li><li><a class="" href="/blog">Blog</a></li></ul></div></div></nav><main class="Servers_container___dk8T"><section><h2>Find a Server</h2><p>Flint is a federated git platform, meaning that you can host your own server and connect with other servers. Below is a list of servers that you can join.</p></section></main></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/servers","query":{},"buildId":"a1a648446da3299e166eeebe6e7bd8c6a468eb6f","assetPrefix":"http://localhost:3000/flint/website/pages","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

View file

@ -1,59 +0,0 @@
.button {
cursor: pointer;
padding: 1rem 1.5rem;
border-radius: 0.75rem;
font-size: 1rem;
text-decoration: none;
transition: background 0.3s, color 0.3s;
&[data-type='primary'] {
border: 2px solid #3B0764;
background: #3B0764;
color: #f8fafc;
[data-theme='dark'] & {
border: 2px solid #f8fafc;
background: #f8fafc;
color: #0f172a;
}
&:hover {
background: #2e1065;
[data-theme='dark'] & {
background: #f8fafc;
}
}
}
&[data-type='outlined'] {
border: 2px solid #3B0764;
color: #3B0764;
[data-theme='dark'] & {
border: 2px solid #f8fafc;
color: #f8fafc;
}
&:hover {
background: #3B0764;
color: #f8fafc;
[data-theme='dark'] & {
background: #f8fafc;
color: #0f172a;
}
}
}
}

View file

@ -1,90 +0,0 @@
@import 'variables.module';
.headLine {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin: 1rem;
min-height: 100vh;
text-align: center;
overflow: hidden;
h3 {
font-size: 2rem;
max-width: 50rem;
margin-bottom: 2rem;
}
h1 {
font-size: 5rem;
max-width: 50rem;
background: linear-gradient(180deg, #e5e7eb, #f9fafb), #e5e7eb;
background-clip: text;
[data-theme='dark'] & {
background: linear-gradient(180deg, #f9fafb, #e5e7eb), #f9fafb;
background-clip: text;
}
margin-bottom: 1rem;
@media (max-width: 768px) {
font-size: 3.5rem;
}
}
p {
font-size: 1.25rem;
line-height: 1.75rem;
max-width: 50rem;
margin-bottom: 8rem;
}
ul {
list-style: none;
display: flex;
gap: 1rem;
}
.gradient {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: -1;
width: 1000px;
height: 1000px;
max-width: 100%;
background: radial-gradient(50% 50% at 50% 50%, #ddd6fe 0%, #f8fafc 100%);
[data-theme='dark'] & {
background: radial-gradient(50% 50% at 50% 50%, #2e1065 0%, #0f172a 100%);
}
filter: blur(128px);
mix-blend-mode: normal;
will-change: filter;
}
}

View file

@ -1,20 +0,0 @@
@import 'variables.module';
.pageContent {
display: flex;
> .sideBar {
position: sticky;
top: 0;
height: 100vh;
width: 300px;
margin-right: 20px;
}
> .markdownContent {
flex: 1;
}
}

View file

@ -1,150 +0,0 @@
@import 'variables.module';
.navBar {
position: fixed;
top: 0;
left: 0;
right: 0;
> .container {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
> .navMain {
display: flex;
justify-content: space-between;
align-items: center;
> button {
display: none;
justify-content: center;
align-items: center;
padding: 0.15rem;
background: none;
border: none;
cursor: pointer;
> svg {
width: 1.5rem;
height: 1.5rem;
fill: rgba(#0f172a, .75);
[data-theme='dark'] & {
fill: rgba(#f8fafc, .75);
}
}
@media (max-width: 768px) {
display: flex;
}
}
}
> .navCollapse {
> .navLinks {
list-style: none;
display: flex;
gap: 0.5rem;
> li {
padding: 1rem;
> a {
text-decoration: none;
color: rgba(#0f172a, .75);
[data-theme='dark'] & {
color: rgba(#f8fafc, .75);
}
&:hover, &.active {
color: #3B0764;
[data-theme='dark'] & {
color: #f8fafc;
}
}
}
}
}
}
}
&[data-scrolled='true'] {
background: rgba(#f8fafc, .95);
[data-theme='dark'] & {
background: rgba(#0f172a, .95);
}
}
@media (max-width: 768px) {
> .container {
flex-direction: column;
justify-content: flex-start;
padding: 1rem !important;
height: 100%;
> .navMain {
width: 100%;
}
}
.navCollapse {
display: none;
flex: 1;
width: 100%;
margin-top: 1rem;
> .navLinks {
flex-direction: column;
justify-content: center;
align-items: flex-end;
height: 100%;
> li {
padding: 0.75rem 0 !important;
}
}
}
&[data-open='true'] {
height: 100dvh;
background: rgba(#f8fafc, .95);
.navCollapse {
display: block;
}
[data-theme='dark'] & {
background: rgba(#0f172a, .95);
}
}
}
}

View file

@ -1 +0,0 @@
@import 'variables.module';

View file

@ -1,32 +0,0 @@
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif:ital,wght@0,100..900;1,100..900&display=swap');
* {
padding: 0;
margin: 0;
box-sizing: border-box;
font-size: 1rem;
}
body {
font-family: 'Noto Sans', sans;
color: #0f172a;
background: #f8fafc;
[data-theme='dark'] & {
color: #f8fafc;
background: #0f172a;
}
}
pre, code {
font-family: 'Noto Sans Mono', monospace;
}
::selection {
background: rgba(#3B0764, 0.7);
color: #fff;
}

View file

@ -1,13 +0,0 @@
.container {
max-width: 1200px;
margin: 0 auto;
@media (max-width: 1200px) {
padding: 0 1rem;
}
@media (max-width: 768px) {
padding: 0 1rem;
}
}

View file

@ -1,39 +0,0 @@
{
"compilerOptions": {
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"paths": {
"@/*": [
"./*"
]
},
"plugins": [
{
"name": "next"
}
]
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts"
],
"exclude": [
"node_modules"
]
}