Skip to content

Commit

Permalink
Merge pull request #2 from ferrisgram/dev
Browse files Browse the repository at this point in the history
Merge dev branch to main
  • Loading branch information
celestix authored Mar 13, 2023
2 parents 6c8cb03 + ef2ddc3 commit 3cd41b7
Show file tree
Hide file tree
Showing 52 changed files with 2,497 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "next/core-web-vitals"
}
32 changes: 32 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env*.local

# vercel
.vercel
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Ferrisgram Website

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) for [Ferrisgram](https://ferrisgram.org).
55 changes: 55 additions & 0 deletions assets/Footer.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import React from "react";
import Image from "next/image";

export default function Footer() {
return (
<>
<footer className="text-white body-font bg-[#8D1D18] py-2">
<div className="containetr px-5 mx-auto flex items-center sm:flex-row flex-col">
<div className="flex title-font font-medium items-center md:justify-start justify-center text-gray-900 select-none px-2">
<Image
src={"/ferrisgram-stroke.png"}
width={40}
height={40}
alt="Ferrisgram"
/>
</div>
<p className="text-sm sm:mt-0">
©{" "}
{new Date().getFullYear() === 2022
? 2022
: `2022 - ${new Date().getFullYear()}`}{" "}
Ferrisgram Developers — All rights reserved.
</p>
<div className="sm:ml-auto sm:mt-0 mt-4 justify-center sm:justify-start font-normal text-xs text-center lg:text-right">
<span>
Ferrisgram is licensed under{" "}
<a
href="https://github.com/ferrisgram/ferrisgram/blob/dev-working/LICENSE"
className="text-gray-200 hover:text-blue-300 hover:underline transition-colors duration-200"
rel="noreferrer"
target="_blank"
>
{" "}
The MIT License.
</a>
</span>
<br />
<span>
Ferrisgram Logos are licensed under{" "}
<a
href="https://creativecommons.org/publicdomain/zero/1.0/"
className="text-gray-200 hover:text-blue-300 hover:underline transition-colors duration-200"
rel="noreferrer"
target="_blank"
>
{" "}
Creative Commons Zero v1.0 Universal.
</a>
</span>
</div>
</div>
</footer>
</>
);
}
129 changes: 129 additions & 0 deletions assets/Meta.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
import React from "react";
import Head from "next/head";

export default function Meta() {
const page = "Ferrisgram - An elegant Rust Client for the Telegram Bot API";
const description =
"Ferrisgram is an elegant Rust Client for the Telegram Bot API.";

const keywords =
"ferrisgram, telegram, bot, rust, client, api, telegram-bot-api, tg, rust-telegram-bot";

return (
<Head>
<title>{page}</title>
<meta content="" name={description} />
<meta content="" name={keywords} />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="author" content="Ferrisgram" />
<meta name="keywords" content={keywords} />
<meta name="description" content={description} />
<meta property="og:title" content={page} />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://ferrisgram.org" />
<meta property="og:description" content={description} />
<meta property="og:locale" content="en_IN" />
<meta property="og:site_name" content="Ferrisgram" />
<meta property="article:author" content="Ferrisgram" />
<meta property="article:publisher" content="https://ferrisgram.org" />
<meta
property="og:image"
content="/assets/img/favicons/android-icon-192x192.png"
/>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content={page} />
<meta name="twitter:creator" content={page} />
<meta name="twitter:title" content={page} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content="/favicons/android-icon-192x192.png" />
<link
rel="apple-touch-icon"
sizes="57x57"
href="/favicons/apple-icon-57x57.png"
/>
<link
rel="apple-touch-icon"
sizes="60x60"
href="/favicons/apple-icon-60x60.png"
/>
<link
rel="apple-touch-icon"
sizes="72x72"
href="/favicons/apple-icon-72x72.png"
/>
<link
rel="apple-touch-icon"
sizes="76x76"
href="/favicons/apple-icon-76x76.png"
/>
<link
rel="apple-touch-icon"
sizes="114x114"
href="/favicons/apple-icon-114x114.png"
/>
<link
rel="apple-touch-icon"
sizes="120x120"
href="/favicons/apple-icon-120x120.png"
/>
<link
rel="apple-touch-icon"
sizes="144x144"
href="/favicons/apple-icon-144x144.png"
/>
<link
rel="apple-touch-icon"
sizes="152x152"
href="/favicons/apple-icon-152x152.png"
/>
<link
rel="apple-touch-icon"
sizes="180x180"
href="/favicons/apple-icon-180x180.png"
/>
<link
rel="icon"
type="image/png"
sizes="192x192"
href="/favicons/android-icon-192x192.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/favicons/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="96x96"
href="/favicons/favicon-96x96.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/favicons/favicon-16x16.png"
/>
<link rel="manifest" href="/favicons/manifest.json" />
<meta name="msapplication-TileColor" content="#ffffff" />
<meta
name="msapplication-TileImage"
content="/favicons/ms-icon-144x144.png"
/>
<meta name="theme-color" content="#ffffff" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link
rel="preconnect"
href="https://fonts.gstatic.com"
crossOrigin={true.toString()}
/>

{/* eslint-disable-next-line @next/next/no-page-custom-font */}
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300&family=Noto+Sans:wght@400;900&display=swap"
rel="stylesheet"
/>
</Head>
);
}
38 changes: 38 additions & 0 deletions assets/Navbar.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import React from "react";
import Image from "next/image";
import github from "./github.svg";
import docs from "./docs.svg";

export default function Navbar() {
return (
<header className="bg-[url('/nav-bg.webp')] select-none">
<div className="container mx-auto flex flex-wrap lg:p-2 pt-6 pb-2 flex-col md:flex-row items-center">
<a className="flex max-h-5 max-w-5 title-font font-medium items-center text-gray-900 mb-4 md:mb-0">
<Image
src={"/ferrisgram-text.png"}
width={405}
height={72}
alt="Ferrisgram"
/>
</a>
<nav className="md:ml-auto flex flex-wrap items-center text-base justify-center space-x-3 pt-4">
<a
href="https://docs.rs/ferrisgram"
target={"_blank"}
rel="noreferrer"
>
<Image src={docs.src} width={44} height={44} alt="Docs" />
</a>

<a
href="https://github.com/ferrisgram/ferrisgram"
target={"_blank"}
rel="noreferrer"
>
<Image src={github.src} width={44} height={44} alt="GitHub" />
</a>
</nav>
</div>
</header>
);
}
22 changes: 22 additions & 0 deletions assets/brush.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/docs.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/ferrisgram_text.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/github.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
swcMinify: true,
}

module.exports = nextConfig
24 changes: 24 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "ferrisgram",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"hcaptcha": "^0.1.1",
"next": "12.1.5",
"react": "^18.1.0",
"react-dom": "18.1.0"
},
"devDependencies": {
"autoprefixer": "^10.4.5",
"eslint": "8.14.0",
"eslint-config-next": "12.1.5",
"postcss": "^8.4.12",
"tailwindcss": "^3.0.24"
}
}
17 changes: 17 additions & 0 deletions pages/_app.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import Meta from "../assets/Meta";
import Navbar from "../assets/Navbar";
import Footer from "../assets/Footer";
import "../styles/globals.css";

function MyApp({ Component, pageProps }) {
return (
<>
<Meta />
<Navbar />
<Component {...pageProps} />
<Footer />
</>
);
}

export default MyApp;
Loading

0 comments on commit 3cd41b7

Please sign in to comment.