Improve Security of site + EJS work + few QoL updates (#20)

This commit is contained in:
Abhay 2023-02-23 18:48:08 +00:00 committed by GitHub
parent cd48a42ae9
commit 61930389a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 2560 additions and 692 deletions

132
.gitignore vendored
View File

@ -1,4 +1,130 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
package-lock.json
.vscode/
.TODO
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

View File

@ -1,24 +0,0 @@
const express = require("express");
const path = require("path");
const app = express();
app.use(express.static(path.join(__dirname, "public")));
app.set("view engine", "ejs");
app.set("views", path.join(__dirname, "views"));
app.get("/", (req, res) => {
res.render("home")
})
app.get("/rices", (req, res) => {
res.render("rices")
})
app.get("*", (req, res) => {
res.render("404")
})
app.listen(4000, () => {
console.log("Listening to PORT: 4000");
});

45
index.mjs Normal file
View File

@ -0,0 +1,45 @@
import express from "express";
const app = express();
import { join, dirname } from "path";
const __dirname = dirname(new URL(import.meta.url).pathname);
import compression from "compression";
import expressEJSLayouts from "express-ejs-layouts";
app.disable('x-powered-by');
app.use(compression());
app.use(express.static(join(__dirname, "public")));
app.set("view engine", "ejs");
app.set("views", join(__dirname, "views"));
app.set("layout extractScripts", true);
app.set("layout extractStyles", true);
app.use(expressEJSLayouts);
app.use((req, res, next) => {
// Security Headers - Refer to MDN and helmetjs docs
res.set("Content-Security-Policy", `default-src 'self'; img-src 'self'; media-src 'self'; script-src 'unsafe-inline' 'self' https://cdn.jsdelivr.net https://code.jquery.com; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; font-src 'self'; object-src 'none'; child-src 'none'; frame-ancestors 'none'; frame-src 'none'; upgrade-insecure-requests`);
res.set("Strict-Transport-Security", "max-age=15552000; includeSubDomains");
res.set("X-Content-Type-Options", "nosniff");
res.set("X-Frame-Options", "DENY");
next();
});
app.get("/", (req, res) => {
res.render("home");
});
app.get("/rices", (req, res) => {
res.render("rices");
});
app.use((_, res) => {
res.status(404).render("404");
});
app.listen(process.env.PORT || 4000, () => {
console.log("Listening to PORT: 4000");
});

1296
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,33 @@
{
"name": "hyprland-site",
"version": "1.0.0",
"description": "",
"main": "index.js",
"name": "hyprland-website",
"version": "1.1.0",
"description": "Website for Hyprland - Hyprland - A wayland compositor that doesn't sacrifice on its looks!",
"main": "index.mjs",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"start": "NODE_ENV=production node index.mjs",
"dev": "nodemon index.mjs"
},
"keywords": [],
"keywords": [
"hyprland"
],
"author": "",
"license": "ISC",
"license": "BSD-3-Clause",
"dependencies": {
"compression": "^1.7.4",
"ejs": "^3.1.8",
"express": "^4.18.1",
"nodemon": "^2.0.19"
"express-ejs-layouts": "^2.5.1"
},
"repository": "github:hyprwm/hyprland-website",
"private": "true",
"os": [
"darwin",
"linux"
],
"engines": {
"node": ">=16.0.0"
},
"devDependencies": {
"nodemon": "^2.0.20"
}
}

748
pnpm-lock.yaml Normal file
View File

@ -0,0 +1,748 @@
lockfileVersion: 5.4
specifiers:
compression: ^1.7.4
ejs: ^3.1.8
express: ^4.18.1
express-ejs-layouts: ^2.5.1
nodemon: ^2.0.20
dependencies:
compression: 1.7.4
ejs: 3.1.8
express: 4.18.2
express-ejs-layouts: 2.5.1
devDependencies:
nodemon: 2.0.20
packages:
/abbrev/1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
dev: true
/accepts/1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
dependencies:
mime-types: 2.1.35
negotiator: 0.6.3
dev: false
/ansi-styles/4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
dev: false
/anymatch/3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
dev: true
/array-flatten/1.1.1:
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
dev: false
/async/3.2.4:
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
dev: false
/balanced-match/1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
/binary-extensions/2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
dev: true
/body-parser/1.20.1:
resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
dependencies:
bytes: 3.1.2
content-type: 1.0.5
debug: 2.6.9
depd: 2.0.0
destroy: 1.2.0
http-errors: 2.0.0
iconv-lite: 0.4.24
on-finished: 2.4.1
qs: 6.11.0
raw-body: 2.5.1
type-is: 1.6.18
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
dev: false
/brace-expansion/1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
/brace-expansion/2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
dev: false
/braces/3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
dev: true
/bytes/3.0.0:
resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
engines: {node: '>= 0.8'}
dev: false
/bytes/3.1.2:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
dev: false
/call-bind/1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
function-bind: 1.1.1
get-intrinsic: 1.2.0
dev: false
/chalk/4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
dev: false
/chokidar/3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
dependencies:
anymatch: 3.1.3
braces: 3.0.2
glob-parent: 5.1.2
is-binary-path: 2.1.0
is-glob: 4.0.3
normalize-path: 3.0.0
readdirp: 3.6.0
optionalDependencies:
fsevents: 2.3.2
dev: true
/color-convert/2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: false
/color-name/1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: false
/compressible/2.0.18:
resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==}
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
dev: false
/compression/1.7.4:
resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==}
engines: {node: '>= 0.8.0'}
dependencies:
accepts: 1.3.8
bytes: 3.0.0
compressible: 2.0.18
debug: 2.6.9
on-headers: 1.0.2
safe-buffer: 5.1.2
vary: 1.1.2
transitivePeerDependencies:
- supports-color
dev: false
/concat-map/0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
/content-disposition/0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>= 0.6'}
dependencies:
safe-buffer: 5.2.1
dev: false
/content-type/1.0.5:
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
engines: {node: '>= 0.6'}
dev: false
/cookie-signature/1.0.6:
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
dev: false
/cookie/0.5.0:
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
engines: {node: '>= 0.6'}
dev: false
/debug/2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.0.0
dev: false
/debug/3.2.7_supports-color@5.5.0:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.3
supports-color: 5.5.0
dev: true
/depd/2.0.0:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: '>= 0.8'}
dev: false
/destroy/1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
dev: false
/ee-first/1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
dev: false
/ejs/3.1.8:
resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==}
engines: {node: '>=0.10.0'}
hasBin: true
dependencies:
jake: 10.8.5
dev: false
/encodeurl/1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
dev: false
/escape-html/1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
dev: false
/etag/1.8.1:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: '>= 0.6'}
dev: false
/express-ejs-layouts/2.5.1:
resolution: {integrity: sha512-IXROv9n3xKga7FowT06n1Qn927JR8ZWDn5Dc9CJQoiiaaDqbhW5PDmWShzbpAa2wjWT1vJqaIM1S6vJwwX11gA==}
dev: false
/express/4.18.2:
resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==}
engines: {node: '>= 0.10.0'}
dependencies:
accepts: 1.3.8
array-flatten: 1.1.1
body-parser: 1.20.1
content-disposition: 0.5.4
content-type: 1.0.5
cookie: 0.5.0
cookie-signature: 1.0.6
debug: 2.6.9
depd: 2.0.0
encodeurl: 1.0.2
escape-html: 1.0.3
etag: 1.8.1
finalhandler: 1.2.0
fresh: 0.5.2
http-errors: 2.0.0
merge-descriptors: 1.0.1
methods: 1.1.2
on-finished: 2.4.1
parseurl: 1.3.3
path-to-regexp: 0.1.7
proxy-addr: 2.0.7
qs: 6.11.0
range-parser: 1.2.1
safe-buffer: 5.2.1
send: 0.18.0
serve-static: 1.15.0
setprototypeof: 1.2.0
statuses: 2.0.1
type-is: 1.6.18
utils-merge: 1.0.1
vary: 1.1.2
transitivePeerDependencies:
- supports-color
dev: false
/filelist/1.0.4:
resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
dependencies:
minimatch: 5.1.6
dev: false
/fill-range/7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
dev: true
/finalhandler/1.2.0:
resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
engines: {node: '>= 0.8'}
dependencies:
debug: 2.6.9
encodeurl: 1.0.2
escape-html: 1.0.3
on-finished: 2.4.1
parseurl: 1.3.3
statuses: 2.0.1
unpipe: 1.0.0
transitivePeerDependencies:
- supports-color
dev: false
/forwarded/0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
dev: false
/fresh/0.5.2:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
dev: false
/fsevents/2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
dev: true
optional: true
/function-bind/1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: false
/get-intrinsic/1.2.0:
resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
dependencies:
function-bind: 1.1.1
has: 1.0.3
has-symbols: 1.0.3
dev: false
/glob-parent/5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
dev: true
/has-flag/3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
dev: true
/has-flag/4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
dev: false
/has-symbols/1.0.3:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
engines: {node: '>= 0.4'}
dev: false
/has/1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
dependencies:
function-bind: 1.1.1
dev: false
/http-errors/2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
engines: {node: '>= 0.8'}
dependencies:
depd: 2.0.0
inherits: 2.0.4
setprototypeof: 1.2.0
statuses: 2.0.1
toidentifier: 1.0.1
dev: false
/iconv-lite/0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
dependencies:
safer-buffer: 2.1.2
dev: false
/ignore-by-default/1.0.1:
resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
dev: true
/inherits/2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: false
/ipaddr.js/1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
engines: {node: '>= 0.10'}
dev: false
/is-binary-path/2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
dependencies:
binary-extensions: 2.2.0
dev: true
/is-extglob/2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
dev: true
/is-glob/4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
dev: true
/is-number/7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: true
/jake/10.8.5:
resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==}
engines: {node: '>=10'}
hasBin: true
dependencies:
async: 3.2.4
chalk: 4.1.2
filelist: 1.0.4
minimatch: 3.1.2
dev: false
/media-typer/0.3.0:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
dev: false
/merge-descriptors/1.0.1:
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
dev: false
/methods/1.1.2:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
dev: false
/mime-db/1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines: {node: '>= 0.6'}
dev: false
/mime-types/2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
dev: false
/mime/1.6.0:
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
engines: {node: '>=4'}
hasBin: true
dev: false
/minimatch/3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
brace-expansion: 1.1.11
/minimatch/5.1.6:
resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: false
/ms/2.0.0:
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
dev: false
/ms/2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
/negotiator/0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
engines: {node: '>= 0.6'}
dev: false
/nodemon/2.0.20:
resolution: {integrity: sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==}
engines: {node: '>=8.10.0'}
hasBin: true
dependencies:
chokidar: 3.5.3
debug: 3.2.7_supports-color@5.5.0
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
semver: 5.7.1
simple-update-notifier: 1.1.0
supports-color: 5.5.0
touch: 3.1.0
undefsafe: 2.0.5
dev: true
/nopt/1.0.10:
resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==}
hasBin: true
dependencies:
abbrev: 1.1.1
dev: true
/normalize-path/3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
/object-inspect/1.12.3:
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
dev: false
/on-finished/2.4.1:
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
engines: {node: '>= 0.8'}
dependencies:
ee-first: 1.1.1
dev: false
/on-headers/1.0.2:
resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==}
engines: {node: '>= 0.8'}
dev: false
/parseurl/1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
dev: false
/path-to-regexp/0.1.7:
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
dev: false
/picomatch/2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
dev: true
/proxy-addr/2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1
dev: false
/pstree.remy/1.1.8:
resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
dev: true
/qs/6.11.0:
resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==}
engines: {node: '>=0.6'}
dependencies:
side-channel: 1.0.4
dev: false
/range-parser/1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
dev: false
/raw-body/2.5.1:
resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==}
engines: {node: '>= 0.8'}
dependencies:
bytes: 3.1.2
http-errors: 2.0.0
iconv-lite: 0.4.24
unpipe: 1.0.0
dev: false
/readdirp/3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
dependencies:
picomatch: 2.3.1
dev: true
/safe-buffer/5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
dev: false
/safe-buffer/5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: false
/safer-buffer/2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: false
/semver/5.7.1:
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
hasBin: true
dev: true
/semver/7.0.0:
resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
hasBin: true
dev: true
/send/0.18.0:
resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==}
engines: {node: '>= 0.8.0'}
dependencies:
debug: 2.6.9
depd: 2.0.0
destroy: 1.2.0
encodeurl: 1.0.2
escape-html: 1.0.3
etag: 1.8.1
fresh: 0.5.2
http-errors: 2.0.0
mime: 1.6.0
ms: 2.1.3
on-finished: 2.4.1
range-parser: 1.2.1
statuses: 2.0.1
transitivePeerDependencies:
- supports-color
dev: false
/serve-static/1.15.0:
resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==}
engines: {node: '>= 0.8.0'}
dependencies:
encodeurl: 1.0.2
escape-html: 1.0.3
parseurl: 1.3.3
send: 0.18.0
transitivePeerDependencies:
- supports-color
dev: false
/setprototypeof/1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
dev: false
/side-channel/1.0.4:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.0
object-inspect: 1.12.3
dev: false
/simple-update-notifier/1.1.0:
resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==}
engines: {node: '>=8.10.0'}
dependencies:
semver: 7.0.0
dev: true
/statuses/2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
dev: false
/supports-color/5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
dependencies:
has-flag: 3.0.0
dev: true
/supports-color/7.2.0:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
dependencies:
has-flag: 4.0.0
dev: false
/to-regex-range/5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
dev: true
/toidentifier/1.0.1:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
dev: false
/touch/3.1.0:
resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==}
hasBin: true
dependencies:
nopt: 1.0.10
dev: true
/type-is/1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
dependencies:
media-typer: 0.3.0
mime-types: 2.1.35
dev: false
/undefsafe/2.0.5:
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
dev: true
/unpipe/1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
dev: false
/utils-merge/1.0.1:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
dev: false
/vary/1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
dev: false

View File

@ -41,4 +41,5 @@
background-color: #1a1a2e;
color: aquamarine;
transform: scale(1.2);
cursor: pointer;
}

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,15 @@
$(document).ready(function () {
$(".animatedVideo").each(function () {
$(this).get(0).pause();
});
$(window).on("scroll", function () {
$(".animatedVideo").each(function () {
let scroll = $(window).scrollTop();
let elementTop = $(this).offset().top;
let elementHeight = $(this).height();
if (scroll > elementTop - $(window).height() + elementHeight) {
$(this).get(0).play();
}
});
});
});

11
public/js/smooth-view.js Normal file
View File

@ -0,0 +1,11 @@
const links = document.querySelectorAll(".like-this");
links.forEach((link) => {
link.addEventListener("click", (event) => {
event.preventDefault();
const targetId = link.getAttribute("href");
const target = document.querySelector(targetId);
target.scrollIntoView({ behavior: "smooth" });
});
});

View File

@ -1,102 +1,8 @@
<!DOCTYPE html>
<html lang="en">
<div class="con404">
<img src="/imgs/404.png" alt="not found?">
<h1>Page Not Found!</h1>
<p>Look where you land, open seas and empty hands</p>
<a href="/"><button>Return to Hyprland</button></a>
</div>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="ico/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="css/home.css" />
<link rel="stylesheet" href="css/404.css" />
<meta name="darkreader-lock">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css" />
<title>Oops ...</title>
</head>
<body>
<header>
<a class="logo" href="https://hyprland.org"><img src="imgs/hyprland.png" alt="logo"></a>
<nav>
<ul class="nav__links">
<li><a href="https://hyprland.org">Hyprland</a></li>
<li>
<a class="nav-link" data-value="Wall of Fame" href="https://www.hyprland.org/rices">Wall of Fame</a>
</li>
<li><a class="nav-link" data-value="Get Started" href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a></li>
<li><a class="nav-link" data-value="Wiki" href="https://wiki.hyprland.org/">Wiki</a></li>
<li><a class="nav-link"data-value="FAQ" href="https://wiki.hyprland.org/FAQ/">FAQ</a></li>
</ul>
</nav>
<a class="cta" href="https://github.com/hyprwm/Hyprland" target="_blank" rel="noopener">Github</a>
<p class="mob-menu">&equiv;</p>
</header>
<div class="con404">
<img src="imgs/404.png" alt="not found?">
<h1>Page Not Found!</h1>
<p>Look where you land, open seas and empty hands</p>
<a href="/"><button>Return to Hyprland</button></a>
</div>
<hr style="color: #a3a3a3a5; margin: 0px 10%; height: 2px; border: none; background-color: #a3a3a3a5;" />
<footer>
<div class="footer-text">
<p style="margin-top: 10px">&#169; Hyprland Development 2023</p>
<div id="devs">
<p>
Developers -
<a href="https://github.com/vaxerski" target="_blank" rel="noopener">Vaxerski (Lead Developer)</a>
<span>,</span>
<a class="site" href="https://github.com/System-x64" target="_blank" rel="noopener">
System-x64 (Website Stuff)</a>
<span>,</span>
<a href="https://github.com/fufexan" target="_blank" rel="noopener">Fufexan (Supporting Developer)</a>
<span>,</span>
<a href="https://github.com/ThatOneCalculator" target="_blank" rel="noopener">
ThatOneCalculator (Package Maintainer)</a>
<span> and </span>
<a href="https://github.com/hyprwm/Hyprland/graphs/contributors" target="_blank" rel="noopener">
our fellow contributors</a>.
</p>
</div>
<p style=" margin-top: 20px; margin-bottom: 10px;">Hyprland is licensed under the BSD 3-Clause "New" or "Revised"
License.</p>
</div>
<div class="footer-icons">
<a href="https://github.com/hyprwm/Hyprland" target="_blank" rel="noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-github"
viewBox="0 0 16 16">
<path color="#a3a3a3a5"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
</svg>
</a>
<a href="https://discord.com/invite/hQ9XvMUjjr" target="_blank" rel="noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-discord"
viewBox="0 0 16 16">
<path color="#a3a3a3a5"
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z" />
</svg>
</a>
</div>
</footer>
<div id="mobile__menu" class="overlay">
<a id="close-id" class="close">&times;</a>
<div class="overlay__content">
<a href="https://hyprland.org">Hyprland</a>
<a href="https://www.hyprland.org/rices">Wall Of Fame</a>
<a href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a>
<a href="https://wiki.hyprland.org">Wiki</a>
<a href="https://wiki.hyprland.org/FAQ/">FAQ</a>
</div>
</div>
<script type="text/javascript" src="js/mobile.js"></script>
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<script src="js/swiper.js"></script>
</body>
</html>
<link rel="stylesheet" href="/css/404.css"/>

View File

@ -0,0 +1,37 @@
<hr style="color: #a3a3a3a5; margin: 0px 10%; height: 2px; border: none; background-color: #a3a3a3a5;"/>
<footer>
<div class="footer-text">
<p style="margin-top: 10px">&#169; Hyprland Development 2023</p>
<div id="devs">
<p>
Developers -
<a href="https://github.com/vaxerski" target="_blank" rel="noopener">Vaxerski (Lead Developer)</a>
<span>,</span>
<a class="site" href="https://github.com/System-x64" target="_blank" rel="noopener">System-x64 (Website Stuff)</a>
<span>,</span>
<a href="https://github.com/fufexan" target="_blank" rel="noopener">Fufexan (Supporting Developer)</a>
<span>,</span>
<a href="https://github.com/ThatOneCalculator" target="_blank" rel="noopener">ThatOneCalculator (Package Maintainer)</a>
<span> and </span>
<a href="https://github.com/hyprwm/Hyprland/graphs/contributors" target="_blank" rel="noopener">our fellow contributors</a>.
</p>
</div>
<p style="margin-top: 20px; margin-bottom: 10px;">Hyprland is licensed under the BSD 3-Clause "New" or "Revised" License.</p>
</div>
<div class="footer-icons">
<a href="https://github.com/hyprwm/Hyprland" target="_blank" rel="noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-github"
viewBox="0 0 16 16">
<path color="#a3a3a3a5"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
</svg>
</a>
<a href="https://discord.com/invite/hQ9XvMUjjr" target="_blank" rel="noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-discord"
viewBox="0 0 16 16">
<path color="#a3a3a3a5"
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z" />
</svg>
</a>
</div>
</footer>

43
views/components/head.ejs Normal file
View File

@ -0,0 +1,43 @@
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="icon" href="/favicon.ico" type="image/ico"/>
<meta name="darkreader-lock"/>
<link rel="icon" href="/ico/favicon-32x32.png" size="32x32" type="image/png"/>
<link rel="icon" href="/ico/favicon-16x16.png" size="16x16" type="image/png"/>
<title>Hyprland - A wayland compositor that doesn't sacrifice on its looks!</title>
<meta property="og:site_name" content="Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners. Learn more by visiting this site!"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://www.hyprland.org/"/>
<meta property="og:image" content="/imgs/wall_4k.png"/>
<meta name="twitter:card" content="Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners. Learn more by visiting this site!"/>
<meta name="twitter:title" content="Hyprland - A wayland compositor that doesn't sacrifice on its looks!"/>
<meta name="twitter:image" content="/imgs/wall_4k.png"/>
<meta name="description" content="Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners. Learn more by visiting this site!"/>
<meta name="keywords" content="tiling wayland compositor, wayland compositor, wayland, hyprland, tiling window manager, linux, arch, twm, x11, sway, bspwm, dwm"/>
<meta name="robots" content="Wiki, https://wiki.hyprland.org"/>
<meta name="robots" content="Install, https://wiki.hyprland.org/Getting-Started/Installation/"/>
<meta name="robots" content="Configure, https://wiki.hyprland.org/Configuring/Configuring-Hyprland/"/>
<meta name="robots" content="FAQ, https://wiki.hyprland.org/FAQ/"/>
<meta name="robots" content="Contribute, https://wiki.hyprland.org/Contributing-and-Debugging/"/>
<link rel="stylesheet" href="/css/home.css"/>
<%- style %>
<!--
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css"/>
<link rel="stylesheet" href="css/rices.css"/>
<link rel="stylesheet" href="css/404.css"/>
-->
<script defer src="/js/mobile.js"></script>
<%- script %>
<!--
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<script src="js/swiper.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="js/smooth-view.js"></script>
<script src="js/play-vid-on-focus.js"></script>
<script src="js/github-logo.js"></script>
-->

View File

@ -0,0 +1,14 @@
<header>
<a class="logo" href="/"><img src="/imgs/hyprland.png" alt="logo"></a>
<nav>
<ul class="nav__links">
<li><a class="nav-link" data-value="Home" href="/">Hyprland</a></li>
<li><a class="nav-link" data-value="Wall of Fame" href="/rices">Wall of Fame</a></li>
<li><a class="nav-link" data-value="Get Started" href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a></li>
<li><a class="nav-link" data-value="Wiki" href="https://wiki.hyprland.org/">Wiki</a></li>
<li><a class="nav-link" data-value="FAQ" href="https://wiki.hyprland.org/FAQ/">FAQ</a></li>
</ul>
</nav>
<a class="cta" href="https://github.com/hyprwm/Hyprland" target="_blank" rel="noopener">Github</a>
<p class="mob-menu">&equiv;</p>
</header>

View File

@ -0,0 +1,10 @@
<div id="mobile__menu" class="overlay">
<a id="close-id" class="close">&times;</a>
<div class="overlay__content">
<a id="home" href="/">Hyprland</a>
<a href="/rices">Wall Of Fame</a>
<a href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a>
<a href="https://wiki.hyprland.org">Wiki</a>
<a href="https://wiki.hyprland.org/FAQ/">FAQ</a>
</div>
</div>

View File

@ -0,0 +1,3 @@
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css"/>
<script defer src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<script defer src="/js/swiper.js"></script>

View File

@ -1,409 +1,165 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="ico/favicon.ico" type="image/ico" />
<meta name="darkreader-lock" />
<link
rel="icon"
href="ico/favicon-32x32.png"
size="32x32"
type="image/png"
/>
<link
rel="icon"
href="ico/favicon-32x32.png"
size="16x16"
type="image/png"
/>
<link rel="stylesheet" href="css/home.css" />
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css"
/>
<title>
Hyprland - A wayland compositor that doesn't sacrifice on its looks!
</title>
<!--SEO-->
<meta
property="og:site_name"
content="Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners. Learn more by visiting this site!"
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.hyprland.org/" />
<meta property="og:image" content="imgs/wall_4k.png" />
<meta
name="twitter:card"
content="Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners. Learn more by visiting this site!"
/>
<meta
name="twitter:title"
content="Hyprland - A wayland compositor that doesn't sacrifice on its looks!"
/>
<meta name="twitter:image" content="imgs/wall_4k" />
<meta
name="description"
content="Hyprland is a dynamic tiling wayland compositor that offers unique features like smooth animations, dynamic tiling and rounded corners. Learn more by visiting this site!"
/>
<meta
name="keywords"
content="tiling wayland compositor, wayland compositor, wayland, hyprland, tiling window manager, linux, arch, twm, x11, sway, bspwm, dwm"
/>
<meta name="robots" content="Wiki, https://wiki.hyprland.org" />
<meta
name="robots"
content="Install, https://wiki.hyprland.org/Getting-Started/Installation/"
/>
<meta
name="robots"
content="Configure, https://wiki.hyprland.org/Configuring/Configuring-Hyprland/"
/>
<meta name="robots" content="FAQ, https://wiki.hyprland.org/FAQ/" />
<meta
name="robots"
content="Contribute, https://wiki.hyprland.org/Contributing-and-Debugging/"
/>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<header>
<a class="logo" href="https://hyprland.org"
><img src="imgs/hyprland.png" alt="logo"
/></a>
<nav>
<ul class="nav__links">
<!-- <li><a id="home-full" href="https://hyprland.org">Hyprland</a></li> -->
<li>
<a
class="nav-link"
data-value="Wall of Fame"
href="https://www.hyprland.org/rices"
>Wall of Fame</a
>
</li>
<li>
<a
class="nav-link"
data-value="Get Started"
href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/"
>Get Started</a
>
</li>
<li>
<a
class="nav-link"
data-value="Wiki"
href="https://wiki.hyprland.org/"
>Wiki</a
>
</li>
<li>
<a
class="nav-link"
data-value="FAQ"
href="https://wiki.hyprland.org/FAQ/"
>FAQ</a
>
</li>
</ul>
</nav>
<div class="top" id="top">
<div class="text">
<h2 id="welcome">Welcome to Hyprland!</h2>
<p>
A dynamic tiling
<a
id="cta-github"
class="cta"
href="https://github.com/hyprwm/Hyprland"
href="https://wayland.freedesktop.org/"
class="text-para-link"
id="link-1"
target="_blank"
rel="noopener"
>Github</a
>Wayland</a
>
<p class="mob-menu">&equiv;</p>
</header>
<div class="top" id="top">
<div class="text">
<h2 id="welcome">Welcome to Hyprland!</h2>
<p>
A dynamic tiling
<a
href="https://wayland.freedesktop.org/"
class="text-para-link"
id="link-1"
target="_blank"
rel="noopener"
>Wayland</a
>
compositor based on
<a
href="https://way-cooler.org/book/wlroots_introduction.html"
class="text-para-link"
id="link-2"
target="_blank"
rel="noopener"
>wlroots</a
>
that doesn't sacrifice on its looks.
</p>
<a
id="install-hypr"
href="https://wiki.hyprland.org/Getting-Started/Installation/"
>
<div>
<p>Install Hyprland</p>
</div>
</a>
compositor based on
<a
href="https://way-cooler.org/book/wlroots_introduction.html"
class="text-para-link"
id="link-2"
target="_blank"
rel="noopener"
>wlroots</a
>
that doesn't sacrifice on its looks.
</p>
<a
id="install-hypr"
href="https://wiki.hyprland.org/Getting-Started/Installation/"
>
<div>
<p>Install Hyprland</p>
</div>
<div id="slide" class="top">
<div id="slide-content">
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="imgs/img1.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="imgs/img2.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="imgs/img3.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="imgs/img4.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="imgs/img5.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="imgs/img6.png" id="slide-img" />
</div>
</div>
<div class="swiper-pagination" style="color: #cfe8f6"></div>
<div class="swiper-button-prev" style="color: #cfe8f6"></div>
<div class="swiper-button-next" style="color: #cfe8f6"></div>
</a>
</div>
<div id="slide" class="top">
<div id="slide-content">
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img src="/imgs/img1.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="/imgs/img2.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="/imgs/img3.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="/imgs/img4.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="/imgs/img5.png" id="slide-img" />
</div>
<div class="swiper-slide">
<img src="/imgs/img6.png" id="slide-img" />
</div>
</div>
<div class="swiper-pagination" style="color: #cfe8f6"></div>
<div class="swiper-button-prev" style="color: #cfe8f6"></div>
<div class="swiper-button-next" style="color: #cfe8f6"></div>
</div>
</div>
<div class="features">
<h1 id="features-text">Features</h1>
<div class="animation">
<div id="ani-vid">
<video
class="animatedVideo"
src="videos/windows.mp4"
autoplay
muted
loop
></video>
</div>
<div id="ani-text">
<h1 style="padding-bottom: 15px">
Smooth<br />
Animations
</h1>
<p>
Hyprland offers smooth and responsive animations, be it when
switching between windows, changing a workspace or opening an app
launcher, on top of being highly customizable!
</p>
<a href="https://wiki.hyprland.org/Configuring/Animations/">
<div>MORE ABOUT ANIMATIONS</div>
</a>
</div>
</div>
<div class="tiling" id="tiling">
<div id="til-text">
<h1 style="padding-bottom: 15px">
Dynamic<br />
Tiling
</h1>
<p>
Tiling in Hyprland is dynamic, meaning it handles the placement of
windows automatically based on multiple factors. Hyprland supports a
variety of layouts, each with their own options to fine-tune them to
your likings.
</p>
<a href="https://wiki.hyprland.org/Configuring/Dwindle-Layout/">
<div>MORE ABOUT TILING</div>
</a>
</div>
<div id="til-vid">
<video
class="animatedVideo"
src="videos/tiling.mp4"
autoplay
muted
loop
></video>
</div>
</div>
<div class="configure">
<div id="con-vid">
<video
class="animatedVideo"
src="videos/configure.mp4"
autoplay
muted
loop
></video>
</div>
<div id="con-text">
<h1 style="padding-bottom: 15px">
Easy<br />
Configuration
</h1>
<p>
Editing the config file for Hyprland is as easy as editing a text
document. Be sure to check the
<a href="https://wiki.hyprland.org/" id="link-config">Wiki Page</a>
for information about the config options, features and syntax. If
you still feel lost, hit us up
<a
id="link-config-discord"
href="https://discord.com/invite/hQ9XvMUjjr"
target="_blank"
rel="noopener"
>@Discord</a
>.
</p>
<a
id="feat-text"
href="https://wiki.hyprland.org/Configuring/Configuring-Hyprland/"
>
<div>GET STARTED</div>
</a>
</div>
</div>
</div>
</div>
<div class="features">
<h1 id="features-text">Features</h1>
<div class="animation">
<div id="ani-vid">
<video
class="animatedVideo"
src="/videos/windows.mp4"
autoplay
muted
loop
></video>
</div>
<div id="ani-text">
<h1 style="padding-bottom: 15px">
Smooth<br />
Animations
</h1>
<p>
Hyprland offers smooth and responsive animations, be it when
switching between windows, changing a workspace or opening an app
launcher, on top of being highly customizable!
</p>
<a href="https://wiki.hyprland.org/Configuring/Animations/">
<div>MORE ABOUT ANIMATIONS</div>
</a>
</div>
</div>
<div class="tiling" id="tiling">
<div id="til-text">
<h1 style="padding-bottom: 15px">
Dynamic<br />
Tiling
</h1>
<p>
Tiling in Hyprland is dynamic, meaning it handles the placement of
windows automatically based on multiple factors. Hyprland supports a
variety of layouts, each with their own options to fine-tune them to
your likings.
</p>
<a href="https://wiki.hyprland.org/Configuring/Dwindle-Layout/">
<div>MORE ABOUT TILING</div>
</a>
</div>
<hr
style="
color: #a3a3a3a5;
margin: 0px 10%;
height: 2px;
border: none;
background-color: #a3a3a3a5;
"
/>
<footer>
<div class="footer-text">
<p style="margin-top: 10px">&#169; Hyprland Development 2023</p>
<div id="devs">
<p>
Developers -
<a href="https://github.com/vaxerski" target="_blank" rel="noopener"
>Vaxerski (Lead Developer)</a
>
<span>,</span>
<a
class="site"
href="https://github.com/System-x64"
target="_blank"
rel="noopener"
>
System-x64 (Website Stuff)</a
>
<span>,</span>
<a href="https://github.com/fufexan" target="_blank" rel="noopener"
>Fufexan (Supporting Developer)</a
>
<span>,</span>
<a
href="https://github.com/ThatOneCalculator"
target="_blank"
rel="noopener"
>
ThatOneCalculator (Package Maintainer)</a
>
<span> and </span>
<a
href="https://github.com/hyprwm/Hyprland/graphs/contributors"
target="_blank"
rel="noopener"
>
our fellow contributors</a
>
(thank you guys!).
</p>
</div>
<p id="licence">
<a
href="https://github.com/hyprwm/Hyprland/blob/main/LICENSE"
rel="noopener"
target="_blank"
>Hyprland is licensed under the BSD 3-Clause "New" or "Revised"
License.</a
>
</p>
</div>
<div class="footer-icons">
<a
href="https://github.com/hyprwm/Hyprland"
target="_blank"
rel="noopener"
>
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
fill="currentColor"
class="bi bi-github"
viewBox="0 0 16 16"
>
<path
color="#a3a3a3a5"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"
/>
</svg>
</a>
<div id="til-vid">
<video
class="animatedVideo"
src="/videos/tiling.mp4"
autoplay
muted
loop
></video>
</div>
</div>
<div class="configure">
<div id="con-vid">
<video
class="animatedVideo"
src="/videos/configure.mp4"
autoplay
muted
loop
></video>
</div>
<div id="con-text">
<h1 style="padding-bottom: 15px">
Easy<br />
Configuration
</h1>
<p>
Editing the config file for Hyprland is as easy as editing a text
document. Be sure to check the
<a href="https://wiki.hyprland.org/" id="link-config">Wiki Page</a>
for information about the config options, features and syntax. If
you still feel lost, hit us up
<a
id="link-config-discord"
href="https://discord.com/invite/hQ9XvMUjjr"
target="_blank"
rel="noopener"
>
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
fill="currentColor"
class="bi bi-discord"
viewBox="0 0 16 16"
>
<path
color="#a3a3a3a5"
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"
/>
</svg>
</a>
</div>
</footer>
<div id="mobile__menu" class="overlay">
<a id="close-id" class="close">&times;</a>
<div class="overlay__content">
<!-- <a id="home" href="https://hyprland.org">Hyprland</a> -->
<a href="https://www.hyprland.org/rices">Wall Of Fame</a>
<a href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/"
>Get Started</a
>
<a href="https://wiki.hyprland.org">Wiki</a>
<a href="https://wiki.hyprland.org/FAQ/">FAQ</a>
</div>
>@Discord</a
>.
</p>
<a
id="feat-text"
href="https://wiki.hyprland.org/Configuring/Configuring-Hyprland/"
>
<div>GET STARTED</div>
</a>
</div>
<script type="text/javascript" src="js/mobile.js"></script>
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<script src="js/swiper.js"></script>
<script src="js/smooth-view.js"></script>
<script src="js/github-logo.js"></script>
<script src="js/play-vid-on-focus.js"></script>
</div>
</div>
<!-- <script>
let myDiv = document.getElementById("top");
myDiv.style.height = window.innerHeight + "px";
</script> -->
</body>
</html>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<%- include("./components/swiperjs") %>
<script defer src="/js/smooth-view.js"></script>
<script defer src="/js/github-logo.js"></script>
<script defer src="/js/play-vid-on-focus.js"></script>

13
views/layout.ejs Normal file
View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<%- include("./components/head") %>
</head>
<body>
<%- include("./components/header") %>
<%- body %>
<%- include("./components/mobile_menu") %>
<%- include("./components/footer") %>
</body>
</html>

View File

@ -1,115 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<div class="wofdiv">
<h1>Wall of Fame</h1>
<p>The Wall of Fame documents the winning rices from past ricing competitons held on our Discord server.</p>
</div>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="ico/favicon.ico" type="image/ico" />
<meta name="darkreader-lock">
<meta property="og:image" content="imgs/wall_4k.png">
<meta name="twitter:image" content="imgs/wall_4k">
<link rel="icon" href="ico/favicon-32x32.png" size="32x32" type="image/png" />
<link rel="icon" href="ico/favicon-32x32.png" size="16x16" type="image/png" />
<link rel="stylesheet" href="css/home.css" />
<link rel="stylesheet" href="css/rices.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css" />
<title>Wall of Fame - Hyprland</title>
</head>
<hr style="color: #cfe8f6; margin: 0px 10%; height: 3px; border: none; background-color: #cfe8f6;" />
<body>
<header>
<a class="logo" href="https://hyprland.org"><img src="imgs/hyprland.png" alt="logo"></a>
<nav>
<ul class="nav__links">
<li>
<a class="nav-link" data-value="Home" href="https://www.hyprland.org/">Hyprland</a>
</li>
<li><a class="nav-link" data-value="Get Started"
href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a></li>
<li><a class="nav-link" data-value="Wiki" href="https://wiki.hyprland.org/">Wiki</a></li>
<li><a class="nav-link" data-value="FAQ" href="https://wiki.hyprland.org/FAQ/">FAQ</a></li>
<div class="ricewins">
<ul>
<li class="month" style="font-size: 2.5rem;">December 2022</li>
<li class="win-text">#1: Flafy<br><br><img src="/imgs/ricingcomp1/flafy.png"></li>
<li class="win-text">#2: (<i>ex aequo</i>) flick0<br><br><img src="/imgs/ricingcomp1/flicko.png"></li>
<li class="win-text">#2: (<i>ex aequo</i>) amadeus<br><br><img src="/imgs/ricingcomp1/amadeus.png"></li>
<li class="win-text">#3: (<i>ex aequo</i>) Lyasm<br><br><img src="/imgs/ricingcomp1/lyasm.png"></li>
<li class="win-text">#3: (<i>ex aequo</i>) lauroro<br><br><img src="/imgs/ricingcomp1/lauroro.jpg"></li>
</ul>
</div>
</ul>
</nav>
<a class="cta" href="https://github.com/hyprwm/Hyprland" target="_blank" rel="noopener">Github</a>
<p class="mob-menu">&equiv;</p>
</header>
<div class="wofdiv">
<h1>Wall of Fame</h1>
<p>The Wall of Fame documents the winning rices from past ricing competitons held on our Discord server.</p>
</div>
<hr style="color: #cfe8f6; margin: 0px 10%; height: 3px; border: none; background-color: #cfe8f6;" />
<div class="ricewins">
<ul>
<li class="month" style="font-size: 2.5rem;">December 2022</li>
<li class="win-text">#1: Flafy<br><br><img src="imgs/ricingcomp1/flafy.png"></li>
<li class="win-text">#2: (<i>ex aequo</i>) flick0<br><br><img src="imgs/ricingcomp1/flicko.png"></li>
<li class="win-text">#2: (<i>ex aequo</i>) amadeus<br><br><img src="imgs/ricingcomp1/amadeus.png"></li>
<li class="win-text">#3: (<i>ex aequo</i>) Lyasm<br><br><img src="imgs/ricingcomp1/lyasm.png"></li>
<li class="win-text">#3: (<i>ex aequo</i>) lauroro<br><br><img src="imgs/ricingcomp1/lauroro.jpg"></li>
</ul>
</div>
<hr style="color: #a3a3a3a5; margin: 0px 10%; height: 2px; border: none; background-color: #a3a3a3a5;" />
<footer>
<div class="footer-text">
<p style="margin-top: 10px">&#169; Hyprland Development 2023</p>
<div id="devs">
<p>
Developers -
<a href="https://github.com/vaxerski" target="_blank" rel="noopener">Vaxerski (Lead Developer)</a>
<span>,</span>
<a class="site" href="https://github.com/System-x64" target="_blank" rel="noopener">
System-x64 (Website Stuff)</a>
<span>,</span>
<a href="https://github.com/fufexan" target="_blank" rel="noopener">Fufexan (Supporting
Developer)</a>
<span>,</span>
<a href="https://github.com/ThatOneCalculator" target="_blank" rel="noopener">
ThatOneCalculator (Package Maintainer)</a>
<span> and </span>
<a href="https://github.com/hyprwm/Hyprland/graphs/contributors" target="_blank" rel="noopener">
our fellow contributors</a>.
</p>
</div>
<p style=" margin-top: 20px; margin-bottom: 10px;">Hyprland is licensed under the BSD 3-Clause "New" or
"Revised"
License.</p>
</div>
<div class="footer-icons">
<a href="https://github.com/hyprwm/Hyprland" target="_blank" rel="noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-github"
viewBox="0 0 16 16">
<path color="#a3a3a3a5"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
</svg>
</a>
<a href="https://discord.com/invite/hQ9XvMUjjr" target="_blank" rel="noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-discord"
viewBox="0 0 16 16">
<path color="#a3a3a3a5"
d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z" />
</svg>
</a>
</div>
</footer>
<div id="mobile__menu" class="overlay">
<a id="close-id" class="close">&times;</a>
<div class="overlay__content">
<a href="https://www.hyprland.org/">Hyprland</a>
<a href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a>
<a href="https://wiki.hyprland.org">Wiki</a>
<a href="https://wiki.hyprland.org/FAQ/">FAQ</a>
</div>
</div>
<script type="text/javascript" src="js/mobile.js"></script>
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<script src="js/swiper.js"></script>
</body>
</html>
<link rel="stylesheet" href="/css/rices.css"/>

View File

@ -1,52 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="ico/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="css/404.css" />
<link rel="stylesheet" href="css/home.css" />
<meta name="darkreader-lock">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css" />
<title>Oopsy...</title>
</head>
<body>
<header>
<a class="logo" href="/"><img src="imgs/hyprland.png" alt="logo"></a>
<nav>
<ul class="nav__links">
<li><a href="https://hyprland.org">Hyprland</a></li>
<li>
<a class="nav-link" data-value="Wall of Fame" href="https://www.hyprland.org/rices">Wall of Fame</a>
</li>
<li><a class="nav-link" data-value="Get Started" href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a></li>
<li><a class="nav-link" data-value="Wiki" href="https://wiki.hyprland.org/">Wiki</a></li>
<li><a class="nav-link"data-value="FAQ" href="https://wiki.hyprland.org/FAQ/">FAQ</a></li>
</ul>
</nav>
<a class="cta" href="https://github.com/hyprwm/Hyprland" target="_blank" rel="noopener">Github</a>
<p class="mob-menu">&equiv;</p>
</header>
<div class="con404"></div>
<div id="div-img"><img src="svg/login.svg" alt=""></div>
<div id="div-text"><h1>Page Not Found!</h1><p>Look where you land, open seas and empty hands</p><a href="/"><button>Return Home</button></a></div>
<div id="mobile__menu" class="overlay">
<a id="close-id" class="close">&times;</a>
<div class="overlay__content">
<a href="https://hyprland.org">Hyprland</a>
<a href="https://www.hyprland.org/rices">Wall Of Fame</a>
<a href="https://wiki.hyprland.org/Getting-Started/Master-Tutorial/">Get Started</a>
<a href="https://wiki.hyprland.org">Wiki</a>
<a href="https://wiki.hyprland.org/FAQ/">FAQ</a>
</div>
</div>
<script type="text/javascript" src="js/mobile.js"></script>
<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
<script src="js/swiper.js"></script>
</body>
</html>