Merge pull request #57 from iv-org/static

Make the website entirely static and almost JavaScript free
This commit is contained in:
TheFrenchGhosty 2022-02-15 23:14:18 +00:00 committed by GitHub
commit 300ea1c768
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
55 changed files with 252 additions and 20743 deletions

View File

@ -1,11 +0,0 @@
# editorconfig.org
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

View File

@ -1,4 +0,0 @@
assets/js/index.js
assets/js/katex.js
assets/js/vendor
node_modules

View File

@ -1,31 +0,0 @@
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"rules": {
"no-console": 0,
"quotes": ["error", "single"],
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "ignore"
}
]
}
}

View File

@ -1,11 +0,0 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"

View File

@ -1,62 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
push:
branches: [master]
pull_request:
# The branches below must be a subset of the branches above
branches: [master]
schedule:
- cron: '0 11 * * 5'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ['javascript']
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

7
.gitignore vendored
View File

@ -1,7 +0,0 @@
bin
node_modules
public
resources
# Local Netlify folder
.netlify
TODO

View File

@ -1,10 +0,0 @@
{
"comment": "Hyas rules",
"default": true,
"line_length": false,
"no-inline-html": false,
"no-trailing-punctuation": false,
"no-duplicate-heading": false,
"no-bare-urls": false
}

View File

@ -1,3 +0,0 @@
node_modules
CHANGELOG.md
README.md

View File

@ -1,3 +0,0 @@
assets/scss/components/_syntax.scss
assets/scss/vendor
node_modules

View File

@ -1,34 +0,0 @@
{
"extends": "stylelint-config-standard",
"rules": {
"no-empty-source": null,
"string-quotes": "double",
"at-rule-no-unknown": [
true,
{
"ignoreAtRules": [
"extend",
"at-root",
"debug",
"warn",
"error",
"if",
"else",
"for",
"each",
"while",
"mixin",
"include",
"content",
"return",
"function",
"tailwind",
"apply",
"responsive",
"variants",
"screen"
]
}
]
}
}

View File

@ -1,9 +1,2 @@
FROM docker.io/library/node:16 as build
COPY . .
RUN npm install
RUN npm run build
FROM docker.io/library/nginx:alpine
COPY --from=build /public/ /usr/share/nginx/html/
# TheFrenchGhosty: The videos/ folder has been removed, no idea why it's created
RUN rm -rf /usr/share/nginx/html/videos
COPY /public/ /usr/share/nginx/html/

View File

@ -1,41 +0,0 @@
// Mostly taken from doks's own app scss. The only addition would be
// the `@import "variables" in order to overwrite color settings.
/** Import Bootstrap functions */
@import "bootstrap/scss/functions";
/** Import theme variables */
@import "../../node_modules/@hyas/doks/assets/scss/common/variables";
/** Overwrite variables */
@import "variables";
/** Import Bootstrap */
@import "bootstrap/scss/bootstrap";
/** Import highlight.js */
// @import "highlight.js/scss/github-dark-dimmed";
/** Import KaTeX */
@import "katex/dist/katex";
/** Import theme styles */
@import "../../node_modules/@hyas/doks/assets/scss/common/fonts";
@import "../../node_modules/@hyas/doks/assets/scss/common/global";
@import "../../node_modules/@hyas/doks/assets/scss/common/dark";
@import "../../node_modules/@hyas/doks/assets/scss/components/alerts";
@import "../../node_modules/@hyas/doks/assets/scss/components/buttons";
@import "../../node_modules/@hyas/doks/assets/scss/components/code";
@import "../../node_modules/@hyas/doks/assets/scss/components/syntax";
@import "../../node_modules/@hyas/doks/assets/scss/components/comments";
@import "../../node_modules/@hyas/doks/assets/scss/components/forms";
@import "../../node_modules/@hyas/doks/assets/scss/components/images";
@import "../../node_modules/@hyas/doks/assets/scss/components/mermaid";
@import "../../node_modules/@hyas/doks/assets/scss/components/search";
@import "../../node_modules/@hyas/doks/assets/scss/components/tables";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/footer";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/header";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/pages";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/posts";
@import "../../node_modules/@hyas/doks/assets/scss/layouts/sidebar";

View File

@ -1,5 +0,0 @@
// Same hue as hsl(195, 100%, 47%) (#00b6f0) or the invidious accent color,
// but modified with different lightness and saturation for better readability
// with black text.
$invidious: hsl(195, 85%, 65%);
$primary: $invidious;

View File

@ -1,17 +0,0 @@
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
browsers: [
// Best practice: https://github.com/babel/babel/issues/7789
'>=1%',
'not ie 11',
'not op_mini all'
]
}
}
]
]
};

View File

@ -1,125 +0,0 @@
baseurl = "/"
canonifyURLs = false
disableAliases = true
disableHugoGeneratorInject = true
enableEmoji = true
enableGitInfo = false
enableRobotsTXT = true
languageCode = "en-US"
paginate = 7
rssLimit = 10
# add redirects/headers
[outputs]
home = ["HTML", "RSS", "REDIRECTS", "HEADERS"]
section = ["HTML", "RSS", "SITEMAP"]
# remove .{ext} from text/netlify
[mediaTypes."text/netlify"]
suffixes = [""]
delimiter = ""
# add output format for netlify _redirects
[outputFormats.REDIRECTS]
mediaType = "text/netlify"
baseName = "_redirects"
isPlainText = true
notAlternative = true
# add output format for netlify _headers
[outputFormats.HEADERS]
mediaType = "text/netlify"
baseName = "_headers"
isPlainText = true
notAlternative = true
# add output format for section sitemap.xml
[outputFormats.SITEMAP]
mediaType = "application/xml"
baseName = "sitemap"
isHTML = false
isPlainText = true
noUgly = true
rel = "sitemap"
[markup]
[markup.goldmark]
[markup.goldmark.extensions]
linkify = false
[markup.goldmark.parser]
autoHeadingID = true
autoHeadingIDType = "github"
[markup.goldmark.parser.attribute]
block = true
title = true
[markup.goldmark.renderer]
unsafe = true
[markup.highlight]
codeFences = false
guessSyntax = false
hl_Lines = ""
lineNoStart = 1
lineNos = false
lineNumbersInTable = true
noClasses = false
style = "dracula"
tabWidth = 4
[sitemap]
changefreq = "weekly"
filename = "sitemap.xml"
priority = 0.5
[taxonomies]
contributor = "contributors"
[permalinks]
blog = "/blog/:title/"
[module]
[module.hugoVersion]
extended = true
min = "0.80.0"
max = ""
[[module.mounts]]
source = "node_modules/@hyas/doks/archetypes"
target = "archetypes"
[[module.mounts]]
source = "node_modules/@hyas/doks/assets"
target = "assets"
# [[module.mounts]]
# source = "node_modules/@hyas/doks/content"
# target = "content"
[[module.mounts]]
source = "node_modules/@hyas/doks/data"
target = "data"
[[module.mounts]]
source = "node_modules/@hyas/doks/layouts"
target = "layouts"
[[module.mounts]]
source = "node_modules/@hyas/doks/static"
target = "static"
[[module.mounts]]
source = "node_modules/flexsearch"
target = "assets/js/vendor/flexsearch"
[[module.mounts]]
source = "node_modules/katex"
target = "assets/js/vendor/katex"
[[module.mounts]]
source = "assets"
target = "assets"
[[module.mounts]]
source = "static"
target = "static"
[[module.mounts]]
source = "content"
target = "content"
[[module.mounts]]
source = "layouts"
target = "layouts"
[[module.mounts]]
source = "archetypes"
target = "archetypes"
[[module.mounts]]
source = "data"
target = "data"

View File

@ -1,36 +0,0 @@
[[main]]
name = "Documentation"
url = "https://docs.invidious.io/"
weight = 10
#[[main]]
# name = "Blog"
# url = "/blog/"
# weight = 20
[[main]]
name = "Contribute"
url = "https://github.com/iv-org/invidious#contribute"
weight = 20
[[main]]
name = "Donate"
url = "/donate/"
weight = 30
[[social]]
name = "GitHub"
pre = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-github\"><path d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"></path></svg>"
url = "https://github.com/iv-org"
post = "v0.1.0"
weight = 20
# [[footer]]
# name = "Privacy"
# url = "/privacy-policy/"
# weight = 10
[[footer]]
name = "Website Source Code"
url = "https://github.com/iv-org/invidious.io"
weight = 10

View File

@ -1,40 +0,0 @@
# Meta Data for SEO
## Homepage
title = "Invidious"
titleSeparator = "-"
titleAddition = "An open source alternative front-end to YouTube"
description = "Invidious is an open source alternative front-end to YouTube "
## Sitelinks Search Box
siteLinksSearchBox = false
## Chrome Browser
themeColor = "#fff"
# Images
quality = 85
bgColor = "#fff"
landscapePhotoWidths = [900, 800, 700, 600, 500]
portraitPhotoWidths = [800, 700, 600, 500]
lqipWidth = "20x"
# Footer
footer = "Powered by <a href=\"https://gohugo.io/\">Hugo</a>, and <a href=\"https://getdoks.org/\">Doks</a>. Illustrations by <a href=\"https://undraw.co/\">unDraw</a>."
copyRight = ""
# Edit Page
docsRepo = "https://github.com/iv-org/invidious.io"
editPage = false
[options]
lazySizes = true
clipBoard = true
instantPage = true
flexSearch = true
darkMode = true
bootStrapJs = true
breadCrumb = false
highLight = true
kaTex = false
collapsibleSidebar = false

View File

@ -1,2 +0,0 @@
baseurl = "https://invidious.io/"
canonifyURLs = true

View File

@ -1,36 +0,0 @@
const autoprefixer = require('autoprefixer');
const purgecss = require('@fullhuman/postcss-purgecss');
const whitelister = require('purgecss-whitelister');
module.exports = {
plugins: [
autoprefixer(),
purgecss({
content: [
'./node_modules/@hyas/doks/layouts/**/*.html',
'./node_modules/@hyas/doks/content/**/*.md',
'./layouts/**/*.html',
'./content/**/*.md',
],
safelist: [
'lazyloaded',
'table',
'thead',
'tbody',
'tr',
'th',
'td',
'h5',
...whitelister([
'./node_modules/@hyas/doks/assets/scss/common/_variables.scss',
'./node_modules/@hyas/doks/assets/scss/components/_buttons.scss',
'./node_modules/@hyas/doks/assets/scss/components/_code.scss',
'./node_modules/@hyas/doks/assets/scss/components/_syntax.scss',
'./node_modules/@hyas/doks/assets/scss/components/_search.scss',
'./node_modules/@hyas/doks/assets/scss/common/_dark.scss',
'./node_modules/katex/dist/katex.css',
]),
],
}),
],
}

View File

@ -1,9 +0,0 @@
---
title : "Invidious"
description: "Invidious is an open source alternative front-end to YouTube."
lead: "Invidious is an open source alternative front-end to YouTube."
date: 2020-10-06T08:47:36+00:00
lastmod: 2020-10-06T08:47:36+00:00
draft: false
images: []
---

View File

@ -1,8 +0,0 @@
---
title: "Blog"
description: "The Doks Blog."
date: 2020-10-06T08:49:55+00:00
lastmod: 2020-10-06T08:49:55+00:00
draft: true
images: []
---

View File

@ -1,10 +0,0 @@
---
title: "Contact"
description: "Drop us an email."
date: 2020-08-27T19:25:12+02:00
lastmod: 2020-08-27T19:25:12+02:00
draft: true
images: []
---
{{< email user="hello" domain="getdoks.org" >}}

View File

@ -1,10 +0,0 @@
---
title: "Contributors"
description: "The Doks contributors."
date: 2020-10-06T08:50:29+00:00
lastmod: 2020-10-06T08:50:29+00:00
draft: true
images: []
---
The Doks contributors.

View File

@ -1,12 +0,0 @@
---
title: "Henk Verlinde"
description: "Creator of Hyas."
date: 2020-10-06T08:50:45+00:00
lastmod: 2020-10-06T08:50:45+00:00
draft: false
images: []
---
Creator of Hyas.
[@HenkVerlinde](https://twitter.com/henkverlinde)

View File

@ -1,9 +0,0 @@
---
title : "Docs"
description: "Docs Doks."
lead: ""
date: 2020-10-06T08:48:23+00:00
lastmod: 2020-10-06T08:48:23+00:00
draft: true
images: []
---

View File

@ -1,16 +0,0 @@
---
title: "Donate"
description: "Donate to the Invidious project."
date: 2020-08-27T19:23:18+02:00
lastmod: 2020-08-27T19:23:18+02:00
draft: false
images: []
---
Bitcoin (BTC): [bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr](bitcoin:bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr)
Monero (XMR): [41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR](monero:41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR)
Ethereum (ETH): [0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B](ethereum:0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B)
Litecoin (LTC): [ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9](litecoin:ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9)

View File

@ -1,36 +0,0 @@
---
title: "Privacy Policy"
description: "We do not use cookies and we do not collect any personal data."
date: 2020-08-27T19:23:18+02:00
lastmod: 2020-08-27T19:23:18+02:00
draft: true
images: []
---
__TLDR__: We do not use cookies and we do not collect any personal data.
## Website visitors
- No personal information is collected.
- No information is stored in the browser.
- No information is shared with, sent to or sold to third-parties.
- No information is shared with advertising companies.
- No information is mined and harvested for personal and behavioral trends.
- No information is monetized.
### Information we collect and what we use it for
We run [Plausible](https://plausible.io/) analytics on getdoks.org. The following information is collected:
- __Page URL__. We track the page URL of each page view on this website. We use this to understand which pages have been viewed and how many times a particular page has been viewed. For example: _https://getdoks.org/_.
- __HTTP Referrer__. We use the referrer string to understand the number of visitors referred to this website from links on other sites. For example: _https://github.com/_.
- __Browser__. We use this to understand what browsers people use when visiting this website. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _Chrome_.
- __Operating system__. We use this to understand what operating systems people use when visiting this website. We only use the brand of the operating system and dont include the version number or any other details. This is derived from the User-Agent HTTP header. The full User-Agent is discarded. For example: _GNU/Linux_.
- __Device type__. We use this to understand what devices people use when visiting this website. This is derived from window.innerWidth. The actual width of the browser in pixels is discarded. For example: _Desktop_.
- __Visitor Country__. We look up the visitors country using the IP address. We do not track anything more granular than the country of origin and the IP address of the visitor is discarded. We never store IP addresses in our database or logs. For example: _Canada_.
## Contact us
[Contact us]({{< ref "contact/index.md" >}}) if you have any questions.
Effective Date: _27th August 2020_

View File

@ -1,11 +0,0 @@
exports.handler = (event, context, callback) => {
callback (null, {
statusCode: 200,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
message: 'Hi from Lambda.',
}),
});
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

View File

@ -1,77 +0,0 @@
{{ define "main" }}
<section class="section container-fluid mt-n3 pb-3">
<div class="row justify-content-center">
<div class="col-lg-12 text-center">
<h1><img src="invidious-colored-vector.svg" width="192" height="192" alt="Invidious logo"></h1>
<h1 class="mt-0">{{ .Title }}</h1>
</div>
<div class="col-lg-9 col-xl-8 text-center">
<p class="lead">{{ .Params.lead | safeHTML }}</p>
<a class="btn btn-primary btn-lg px-4 mb-2" href="{{ "https://instances.invidious.io/" | relURL }}" role="button">Use Invidious</a>
<a class="btn btn-primary btn-lg px-4 mb-2" href="{{ "https://docs.invidious.io/Installation.md" | relURL }}" role="button">Host Invidious</a>
<p class="meta">Invidious is <a href="https://github.com/iv-org/invidious">Free (Libre) and Open Source software</a> licensed under the <a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPL-3.0</a>.</p>
<h5 class="mt-0">Chat with us:</h5>
<a href="https://matrix.to/#/#invidious:matrix.org"><img alt="Matrix" src="https://img.shields.io/matrix/invidious:matrix.org?label=Matrix&color=darkgreen"></a>
<a href="https://web.libera.chat/?channel=#invidious"><img alt="Libera.chat (IRC)" src="https://img.shields.io/badge/IRC%20%28Libera.chat%29-%23invidious-darkgreen"></a>
<br/> <br/>
</div>
</div>
</section>
{{ end }}
{{ define "sidebar-prefooter" }}
<hr>
<section class="section section-sm">
<div class="container">
<div class="row justify-content-center text-center">
<div class="col-lg-5">
<img src="undraw_privacy_protection_nlwy.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Privacy focused</h2>
<p>Invidious protects you from the prying eyes of Google. It won't track you either!</p>
</div>
<div class="col-lg-5">
<img src="undraw_design_inspiration_fmjm.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Ethically designed</h2>
<p>Invidious helps you regain focus through a humane-design — no more shall your day be wasted away!</p>
</div>
<div class="col-lg-5">
<img src="undraw_subscriptions_re_k7jj.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Accounts</h2>
<p>Invidious allows you to subscribe to channels and create playlists, without needing a YouTube account.</p>
</div>
</div>
</div>
<br/> <br/>
<div class="container">
<div class="row justify-content-center text-center">
<div class="col-lg-5">
<img src="undraw_Around_the_world_re_n353.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Multilingual</h2>
<p>Thanks to our <a href="https://hosted.weblate.org/engage/invidious/">translators</a>, Invidious is available in many different languages.</p>
</div>
<div class="col-lg-5">
<img src="undraw_Placeholders_re_pvr4.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">No Ads</h2>
<p>Invidious allows you to watch videos without being disturbed by annoying ads. Also 100% supported by <a href="https://sponsor.ajay.app/">Sponsorblock</a></p>
</div>
<div class="col-lg-5">
<img src="undraw_Coding_re_iv62.svg" alt="Visual illustration from undraw" height=250 width=350/>
<h2 class="h4">Developer API</h2>
<p>Invidious has a <a href="https://docs.invidious.io/API.md">fully featured and documented REST API</a> for developers.</p>
</div>
</div>
</div>
</section>
{{ end }}
{{ define "sidebar-footer" }}
<section class="section section-sm container-fluid">
<div class="row justify-content-center text-center">
<div class="col-lg-9">
{{- .Content -}}
</div>
</div>
</section>
{{ end }}

View File

@ -1,31 +0,0 @@
[build]
publish = "public"
functions = "functions"
[build.environment]
NODE_VERSION = "16.3.0"
NPM_VERSION = "7.16.0"
HUGO_VERSION = "0.84.4"
[context.production]
command = "hugo --gc --minify"
[context.deploy-preview]
command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.branch-deploy]
command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.next]
command = "hugo --gc --minify"
[context.next.environment]
HUGO_ENV = "next"
[dev]
framework = "#custom"
command = "shx rm -rf public resources && hugo server --bind=0.0.0.0 --disableFastRender"
targetPort = 1313
port = 8888
publish = "public"
autoLaunch = false

19948
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,66 +0,0 @@
{
"name": "doks-child-theme",
"description": "Doks child theme",
"version": "0.3.3",
"browserslist": [
"defaults"
],
"repository": "https://github.com/h-enk/doks",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"scripts": {
"init": "shx rm -rf .git && git init -b main",
"create": "exec-bin bin/hugo/hugo new",
"prestart": "npm run clean",
"start": "exec-bin bin/hugo/hugo server --bind=0.0.0.0 --disableFastRender",
"prebuild": "npm run clean",
"build": "exec-bin bin/hugo/hugo --gc --minify",
"build:preview": "npm run build -D -F",
"clean": "shx rm -rf public resources",
"clean:install": "shx rm -rf package-lock.json bin node_modules ",
"lint": "npm run -s lint:scripts && npm run -s lint:styles && npm run -s lint:markdown",
"lint:scripts": "eslint assets/js config functions",
"lint:styles": "stylelint \"assets/scss/**/*.{css,sass,scss,sss,less}\"",
"lint:markdown": "markdownlint \"*.md\" \"content/**/*.md\"",
"server": "exec-bin bin/hugo/hugo server",
"test": "npm run -s lint",
"env": "env",
"precheck": "npm version",
"check": "exec-bin bin/hugo/hugo version",
"copy:katex-fonts": "shx cp ./node_modules/katex/dist/fonts/* ./static/fonts/",
"postinstall": "hugo-installer --version otherDependencies.hugo --extended",
"version": "auto-changelog -p && git add CHANGELOG.md"
},
"devDependencies": {
"@babel/cli": "^7.14",
"@babel/core": "^7.15",
"@babel/preset-env": "^7.15",
"@fullhuman/postcss-purgecss": "^4.0",
"@hyas/doks": "^0.3",
"auto-changelog": "^2.3.0",
"autoprefixer": "^10.3",
"bootstrap": "^5.1",
"clipboard": "^2.0",
"eslint": "^7.32",
"exec-bin": "^1.0.0",
"hugo-installer": "^3.1",
"flexsearch": "^0.7.21",
"highlight.js": "^11.0",
"instant.page": "^5.1",
"katex": "^0.13",
"lazysizes": "^5.3",
"markdownlint-cli": "^0.28",
"mermaid": "^8.11",
"postcss": "^8.3",
"postcss-cli": "^8.3",
"purgecss-whitelister": "^2.4",
"shx": "^0.3.3",
"stylelint": "^13.13",
"stylelint-config-standard": "^22.0"
},
"otherDependencies": {
"hugo": "0.87.0"
}
}

View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

6
public/css/main.css Normal file

File diff suppressed because one or more lines are too long

95
public/donate/index.html Normal file
View File

@ -0,0 +1,95 @@
<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=stylesheet href=../css/main.css>
<style>img.lazyload{display:none}</style>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Donate - Invidious</title>
<meta name=description content="Donate to the Invidious project.">
<link rel=canonical href=/donate/>
<meta property="og:locale" content>
<meta property="og:type" content="article">
<meta property="og:title" content="Donate">
<meta property="og:description" content="Donate to the Invidious project.">
<meta property="og:url" content="/donate/">
<meta property="og:site_name" content="Invidious">
<meta name=twitter:card content="summary_large_image">
<meta name=twitter:site content>
<meta name=twitter:creator content>
<meta name=twitter:title content="Donate">
<meta name=twitter:description content="Donate to the Invidious project.">
<meta name=twitter:card content="summary">
<meta name=twitter:image:alt content="Donate">
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://invidious.io/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://invidious.io/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://invidious.io/favicon-16x16.png>
</head>
<body class="page single">
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=/>Invidious</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a>
</li>
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item>
<a class=nav-link href=https://docs.invidious.io/>Documentation</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org/invidious#contribute>Contribute</a>
</li>
<li class="nav-item active">
<a class=nav-link href=https://invidious.io/donate/>Donate</a>
</li>
</ul>
</div>
</header>
<div class="wrap container" role=document>
<div class=content>
<div class="row justify-content-center">
<div class="col-md-12 col-lg-10 col-xl-8">
<article>
<h1>Donate</h1>
<p>Bitcoin (BTC): <a href=bitcoin:bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr>bc1qfhe7rq3lqzuayzjxzyt9waz9ytrs09kla3tsgr</a></p>
<p>Monero (XMR): <a href=monero:41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR>41nMCtek197boJtiUvGnTFYMatrLEpnpkQDmUECqx5Es2uX3sTKKWVhSL76suXsG3LXqkEJBrCZBgPTwJrDp1FrZJfycGPR</a></p>
<p>Ethereum (ETH): <a href=ethereum:0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B>0xD1F7E3Bfb19Ee5a52baED396Ad34717aF18d995B</a></p>
<p>Litecoin (LTC): <a href=litecoin:ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9>ltc1q8787aq2xrseq5yx52axx8c4fqks88zj5vr0zx9</a></p>
</article>
</div>
</div>
</div>
</div>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item>Based on <a href=https://getdoks.org/>Doks</a>. Illustrations by <a href=https://undraw.co/>unDraw</a>.</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
<li class=list-inline-item><a href=https://github.com/iv-org/invidious.io>Website Source Code</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=../js/main.min.js></script>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 589 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

149
public/index.html Normal file
View File

@ -0,0 +1,149 @@
<!doctype html><html lang=en-us>
<head>
<meta charset=utf-8>
<meta http-equiv=x-ua-compatible content="ie=edge">
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no">
<link rel=stylesheet href=css/main.css>
<style>img.lazyload{display:none}</style>
<meta name=robots content="index, follow">
<meta name=googlebot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<meta name=bingbot content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
<title>Invidious - An open source alternative front-end to YouTube</title>
<meta name=description content="Invidious is an open source alternative front-end to YouTube.">
<link rel=canonical href=/>
<meta property="og:locale" content>
<meta property="og:type" content="website">
<meta property="og:title" content="Invidious">
<meta property="og:description" content="Invidious is an open source alternative front-end to YouTube.">
<meta property="og:url" content="/">
<meta property="og:site_name" content="Invidious">
<meta name=twitter:card content="summary_large_image">
<meta name=twitter:site content>
<meta name=twitter:creator content>
<meta name=twitter:title content="Invidious">
<meta name=twitter:description content="Invidious is an open source alternative front-end to YouTube.">
<meta name=twitter:card content="summary">
<meta name=twitter:image:alt content="Invidious">
<meta name=theme-color content="#fff">
<link rel=apple-touch-icon sizes=180x180 href=https://invidious.io/apple-touch-icon.png>
<link rel=icon type=image/png sizes=32x32 href=https://invidious.io/favicon-32x32.png>
<link rel=icon type=image/png sizes=16x16 href=https://invidious.io/favicon-16x16.png>
</head>
<body class="home">
<div class="header-bar fixed-top"></div>
<header class="navbar fixed-top navbar-expand-md navbar-light">
<div class=container>
<input class="menu-btn order-0" type=checkbox id=menu-btn>
<label class="menu-icon d-md-none" for=menu-btn><span class=navicon></span></label>
<a class="navbar-brand order-1 order-md-0 me-auto" href=/>Invidious</a>
<button id=mode class="btn btn-link order-2 order-md-4" type=button aria-label="Toggle mode">
<span class=toggle-dark><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg></span>
<span class=toggle-light><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></span>
</button>
<ul class="navbar-nav social-nav order-3 order-md-5">
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37.0 00-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44.0 0020 4.77 5.07 5.07.0 0019.91 1S18.73.65 16 2.48a13.38 13.38.0 00-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07.0 005 4.77 5.44 5.44.0 003.5 8.55c0 5.42 3.3 6.61 6.44 7A3.37 3.37.0 009 18.13V22"/></svg><span class="ms-2 visually-hidden">GitHub</span></a>
</li>
</ul>
<div class="collapse navbar-collapse order-4 order-md-1">
<ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class=nav-item>
<a class=nav-link href=https://docs.invidious.io/>Documentation</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://github.com/iv-org/invidious#contribute>Contribute</a>
</li>
<li class=nav-item>
<a class=nav-link href=https://invidious.io/donate/>Donate</a>
</li>
</ul>
</div>
</header>
<div class="wrap container" role=document>
<div class=content>
<section class="section container-fluid mt-n3 pb-3">
<div class="row justify-content-center">
<div class="col-lg-12 text-center">
<h1><img src=invidious-colored-vector.svg width=192 height=192 alt="Invidious logo"></h1>
<h1 class=mt-0>Invidious</h1>
</div>
<div class="col-lg-9 col-xl-8 text-center">
<p class=lead>Invidious is an open source alternative front-end to YouTube.</p>
<a class="btn btn-primary btn-lg px-4 mb-2" href=https://instances.invidious.io/ role=button>Use Invidious</a>
<a class="btn btn-primary btn-lg px-4 mb-2" href=https://docs.invidious.io/Installation.md role=button>Host Invidious</a>
<p class=meta>Invidious is <a href=https://github.com/iv-org/invidious>Free (Libre) and Open Source software</a> licensed under the <a href=https://www.gnu.org/licenses/agpl-3.0.en.html>AGPL-3.0</a>.</p>
<h5 class=mt-0>Chat with us:</h5>
<a href=https://matrix.to/#/#invidious:matrix.org><img alt=Matrix src="https://img.shields.io/matrix/invidious:matrix.org?label=Matrix&color=darkgreen"></a>
<a href="https://web.libera.chat/?channel=#invidious"><img alt="Libera.chat (IRC)" src=https://img.shields.io/badge/IRC%20%28Libera.chat%29-%23invidious-darkgreen></a>
<br> <br>
</div>
</div>
</section>
</div>
</div>
<hr>
<section class="section section-sm">
<div class=container>
<div class="row justify-content-center text-center">
<div class=col-lg-5>
<img src=images/undraw_privacy_protection_nlwy.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Privacy focused</h2>
<p>Invidious protects you from the prying eyes of Google. It won't track you either!</p>
</div>
<div class=col-lg-5>
<img src=images/undraw_design_inspiration_fmjm.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Ethically designed</h2>
<p>Invidious helps you regain focus through a humane-design — no more shall your day be wasted away!</p>
</div>
<div class=col-lg-5>
<img src=images/undraw_subscriptions_re_k7jj.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Accounts</h2>
<p>Invidious allows you to subscribe to channels and create playlists, without needing a YouTube account.</p>
</div>
</div>
</div>
<br> <br>
<div class=container>
<div class="row justify-content-center text-center">
<div class=col-lg-5>
<img src=images/undraw_Around_the_world_re_n353.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Multilingual</h2>
<p>Thanks to our <a href=https://hosted.weblate.org/engage/invidious/>translators</a>, Invidious is available in many different languages.</p>
</div>
<div class=col-lg-5>
<img src=images/undraw_Placeholders_re_pvr4.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>No Ads</h2>
<p>Invidious allows you to watch videos without being disturbed by annoying ads. Also 100% supported by <a href=https://sponsor.ajay.app/>Sponsorblock</a></p>
</div>
<div class=col-lg-5>
<img src=images/undraw_Coding_re_iv62.svg alt="Visual illustration from undraw" height=250 width=350/>
<h2 class=h4>Developer API</h2>
<p>Invidious has a <a href=https://docs.invidious.io/API.md>fully featured and documented REST API</a> for developers.</p>
</div>
</div>
</div>
</section>
<section class="section section-sm container-fluid">
<div class="row justify-content-center text-center">
<div class=col-lg-9></div>
</div>
</section>
<footer class="footer text-muted">
<div class=container>
<div class=row>
<div class="col-lg-8 order-last order-lg-first">
<ul class=list-inline>
<li class=list-inline-item>Based on <a href=https://getdoks.org/>Doks</a>. Illustrations by <a href=https://undraw.co/>unDraw</a>.</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class=list-inline>
<li class=list-inline-item><a href=https://github.com/iv-org/invidious.io>Website Source Code</a></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=js/main.min.js></script>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

1
public/js/main.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,14 +0,0 @@
name = "Doks child theme"
license = "MIT"
licenselink = "https://github.com/h-enk/doks/blob/master/LICENSE"
description = "Hugo theme helping you build modern documentation websites that are secure, fast, and SEO-ready — by default."
homepage = "https://github.com/h-enk/doks-child-theme"
demosite = "https://doks-child-theme.netlify.app"
tags = ["landing page", "documentation", "blog", "minimal", "modern", "customizable", "search", "dark mode", "bootstrap"]
features = ["security aware", "fast by default", "seo-ready", "development tools", "bootstrap framework", "netlify-ready", "full text search", "page layouts", "dark mode"]
[author]
name = "Henk Verlinde"
homepage = "https://henkverlinde.com"