From 28bb100f17f68ae0201e32f6fdc77006ee884b4a Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Sat, 21 Sep 2024 16:36:18 -0400 Subject: [PATCH] feat(build): use jekyll and restyle website --- .dockerignore | 4 + .gitattributes | 3 + .gitignore | 8 +- .run/Dockerfile.run.xml | 20 + 404.html | 13 + CNAME | 1 + Dockerfile | 32 ++ Gemfile | 3 + README.md | 15 + README.rst | 19 - _config.yml | 300 +++++++++++++++ _config_local.yml | 5 + _includes/donate.html | 55 +++ _includes/footer-extra.html | 9 + _includes/open-in-new-window.html | 30 ++ _includes/support.html | 29 ++ _posts/2024-09-23-welcome.md | 24 ++ assets/css/custom-styles.css | 89 +++++ assets/css/pygment_highlights.css | 79 ++++ assets/css/show-search.css | 3 + .../img/banners}/AdobeStock_306976163.jpeg | Bin .../AdobeStock_306976163_1920x1280.jpg | Bin .../img/banners}/AdobeStock_372471479.jpeg | Bin .../AdobeStock_372471479_1920x1280.jpg | Bin .../img/banners}/AdobeStock_465916245.jpeg | Bin .../AdobeStock_465916245_1920x1080.jpg | Bin .../img/banners}/og-image.png | Bin assets/img/navbar-avatar.png | Bin 0 -> 11647 bytes {dist => assets}/js/projects.js | 19 +- blog.html | 9 + discord.html | 17 + dist/.keep | 0 dist/.nojekyll | 0 dist/CNAME | 1 - dist/assets/images/logo-56x56.png | Bin 1773 -> 0 bytes dist/assets/images/logo-64x64.png | Bin 2110 -> 0 bytes dist/css/custom.css | 171 --------- dist/css/logos.css | 7 - dist/discord.html | 68 ---- dist/favicon.ico | Bin 114227 -> 0 bytes dist/feedback.html | 68 ---- dist/index.html | 359 ------------------ dist/js/crowdin.js | 55 --- dist/js/crowdin_web_widget.js | 24 -- dist/js/discord.js | 27 -- dist/js/footer.js | 20 - dist/js/levenshtein_distance.js | 36 -- dist/js/navbar.js | 77 ---- dist/js/ranking_sorter.js | 18 - dist/js/sleep.js | 4 - dist/privacy.html | 146 ------- dist/support.html | 238 ------------ dist/terms.html | 185 --------- dist/assets/images/favicon.ico => favicon.ico | Bin feed.xml | 29 ++ feedback.html | 15 + index.html | 84 ++++ package.json | 7 - privacy.md | 87 +++++ support.html | 191 ++++++++++ tags.html | 38 ++ terms.md | 120 ++++++ 62 files changed, 1311 insertions(+), 1550 deletions(-) create mode 100644 .dockerignore create mode 100644 .gitattributes create mode 100644 .run/Dockerfile.run.xml create mode 100644 404.html create mode 100644 CNAME create mode 100644 Dockerfile create mode 100644 Gemfile create mode 100644 README.md delete mode 100644 README.rst create mode 100644 _config.yml create mode 100644 _config_local.yml create mode 100644 _includes/donate.html create mode 100644 _includes/footer-extra.html create mode 100644 _includes/open-in-new-window.html create mode 100644 _includes/support.html create mode 100644 _posts/2024-09-23-welcome.md create mode 100644 assets/css/custom-styles.css create mode 100644 assets/css/pygment_highlights.css create mode 100644 assets/css/show-search.css rename {dist/assets/images => assets/img/banners}/AdobeStock_306976163.jpeg (100%) rename {dist/assets/images => assets/img/banners}/AdobeStock_306976163_1920x1280.jpg (100%) rename {dist/assets/images => assets/img/banners}/AdobeStock_372471479.jpeg (100%) rename {dist/assets/images => assets/img/banners}/AdobeStock_372471479_1920x1280.jpg (100%) rename {dist/assets/images => assets/img/banners}/AdobeStock_465916245.jpeg (100%) rename {dist/assets/images => assets/img/banners}/AdobeStock_465916245_1920x1080.jpg (100%) rename {dist/assets/images => assets/img/banners}/og-image.png (100%) create mode 100644 assets/img/navbar-avatar.png rename {dist => assets}/js/projects.js (94%) create mode 100644 blog.html create mode 100644 discord.html delete mode 100644 dist/.keep delete mode 100644 dist/.nojekyll delete mode 100644 dist/CNAME delete mode 100644 dist/assets/images/logo-56x56.png delete mode 100644 dist/assets/images/logo-64x64.png delete mode 100644 dist/css/custom.css delete mode 100644 dist/css/logos.css delete mode 100644 dist/discord.html delete mode 100644 dist/favicon.ico delete mode 100644 dist/feedback.html delete mode 100644 dist/index.html delete mode 100644 dist/js/crowdin.js delete mode 100644 dist/js/crowdin_web_widget.js delete mode 100644 dist/js/discord.js delete mode 100644 dist/js/footer.js delete mode 100644 dist/js/levenshtein_distance.js delete mode 100644 dist/js/navbar.js delete mode 100644 dist/js/ranking_sorter.js delete mode 100644 dist/js/sleep.js delete mode 100644 dist/privacy.html delete mode 100644 dist/support.html delete mode 100644 dist/terms.html rename dist/assets/images/favicon.ico => favicon.ico (100%) create mode 100644 feed.xml create mode 100644 feedback.html create mode 100644 index.html delete mode 100644 package.json create mode 100644 privacy.md create mode 100644 support.html create mode 100644 tags.html create mode 100644 terms.md diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..5fe1ce23 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +# ignore hidden files +.* + +_site/ diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..1ccee08a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# ensure dockerfiles are checked out with LF line endings +Dockerfile text eol=lf +*.dockerfile text eol=lf diff --git a/.gitignore b/.gitignore index d0b384d7..13d96668 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,4 @@ # ignore JetBrains project .idea/ -# ignore node modules -node_modules/ -package-lock.json - -# ignore duplicated dist folder for localization -dist/en -dist/es-ES +_site/ diff --git a/.run/Dockerfile.run.xml b/.run/Dockerfile.run.xml new file mode 100644 index 00000000..2cb72d1d --- /dev/null +++ b/.run/Dockerfile.run.xml @@ -0,0 +1,20 @@ + + + + + + + + + + \ No newline at end of file diff --git a/404.html b/404.html new file mode 100644 index 00000000..9bdd8eae --- /dev/null +++ b/404.html @@ -0,0 +1,13 @@ +--- +layout: default +title: 404 - Page not found +permalink: /404.html +--- + +
+

Whoops, this page doesn't exist.

+

Move along. (404 error)

+
+ + Not found +
diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..09ea21e9 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +app.lizardbyte.dev diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..047672ac --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +FROM ruby:3.3-bookworm + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +RUN <<_DEPS +#!/bin/bash +set -e + +apt-get update -qq +apt-get install -y --no-install-recommends \ + build-essential +apt-get clean +rm -rf /var/lib/apt/lists/* +_DEPS + +WORKDIR /app + +COPY . . + +# Install the gems specified in the Gemfile +RUN <<_SETUP +#!/bin/bash +set -e + +bundle install +_SETUP + +# Expose the port that Jekyll will run on +EXPOSE 4000 + +# Command to build and serve the Jekyll site +CMD ["bundle", "exec", "jekyll", "serve", "--trace", "--config", "_config.yml,_config_local.yml"] diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..5312a4b0 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gem 'jekyll' +gem 'github-pages', group: :jekyll_plugins diff --git a/README.md b/README.md new file mode 100644 index 00000000..dbcc968c --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Overview + +## About + +This repo contains the source files for the [LizardByte](https://app.lizardbyte.dev) website. + +The page is built using jekyll and hosted on GitHub Pages. + +## Integrations + +[![GitHub Workflow Status (Build)](https://img.shields.io/github/actions/workflow/status/lizardbyte/lizardbyte.github.io/build.yml.svg?branch=master&label=build&logo=github&style=for-the-badge)](https://github.com/LizardByte/LizardByte.github.io/actions/workflows/build.yml?query=branch%3Amaster) + +### CrowdIn Localization + +[![CrowdIn graph](https://app.lizardbyte.dev/dashboard/crowdin/LizardByte_graph.svg)](https://translate.lizardbyte.dev) diff --git a/README.rst b/README.rst deleted file mode 100644 index db8f6990..00000000 --- a/README.rst +++ /dev/null @@ -1,19 +0,0 @@ -Overview -======== - -About ------ -This repo contains the source files for the `LizardByte `_ website. - -Integrations ------------- - -.. image:: https://img.shields.io/github/actions/workflow/status/lizardbyte/lizardbyte.github.io/build.yml.svg?branch=master&label=build&logo=github&style=for-the-badge - :alt: GitHub Workflow Status (Build) - :target: https://github.com/LizardByte/LizardByte.github.io/actions/workflows/build.yml?query=branch%3Amaster - -CrowdIn Localization -^^^^^^^^^^^^^^^^^^^^ -.. image:: https://app.lizardbyte.dev/dashboard/crowdin/LizardByte_graph.svg - :alt: CrowdIn graph - :target: https://translate.lizardbyte.dev diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..889199fa --- /dev/null +++ b/_config.yml @@ -0,0 +1,300 @@ +--- +########################################################### +### Welcome to Beautiful Jekyll! +### This config file is meant for settings that affect your entire website. When you first +### set up your website you should go through all these settings and edit them, but after +### the initial set up you won't need to come back to this file often. +########################################################### + +############################ +# --- Required options --- # +############################ + +# https://beautifuljekyll.com/getstarted/#method-1-github-repository-with-remote_theme +# remote_theme: daattali/beautiful-jekyll@6.0.1 +remote_theme: daattali/beautiful-jekyll@3920be6d2e79ca15f4c28b65e8af6cbdf1a76fe1 +# TODO: move to LizardByte fork, with customizations specific to our site + +# Name of website +title: LizardByte + +# Your name to show in the footer +author: LizardByte + +############################################### +# --- List of links in the navigation bar --- # +############################################### + +navbar-links: + ❤ Donate: + - GitHub: "https://github.com/sponsors/LizardByte" + - mee6: "https://mee6.xyz/m/804382334370578482" + - Patreon: "https://patreon.com/LizardByte" + - PayPal: "https://www.paypal.com/paypalme/ReenigneArcher" + GitHub: "https://github.com/LizardByte" + Resources: + - Blog: "blog" + - Docs: "https://docs.lizardbyte.dev/en/latest/about/overview.html" + - Community: "https://github.com/orgs/LizardByte/discussions" + - Discord: "discord" + - Support: "support" + Development: + - Contributing: "https://docs.lizardbyte.dev/en/latest/developers/contributing.html" + - Dashboard: "https://app.lizardbyte.dev/dashboard" + Status: "https://status.LizardByte.dev" + +# navbar-extra: +# - change-theme.html + +################ +# --- Logo --- # +################ + +# Image to show in the navigation bar - works best with a square image +# Remove this parameter if you don't want an image in the navbar +avatar: "/assets/img/navbar-avatar.png" + +# By default, the image is cut into a circle. You can disable this behaviour by setting 'round-avatar: false' +round-avatar: true + +# If you want to have an image logo in the top-left corner instead of having the title of the website, +# then specify the following parameter +# title-img: /path/to/image + + +##################################### +# --- Footer social media links --- # +##################################### + +# Select the social network links that you want to show in the footer. +# Uncomment the links you want to show and add your information to each one. +social-network-links: + rss: true # remove this line if you don't want to show an RSS link at the bottom + discord: d6MpcrbYQs + facebook: LizardByteDev + github: LizardByte + patreon: LizardByte + reddit: r/LizardByte + twitter: LizardByteDev + youtube: c/LizardByteDev +# email: "someone@example.com" +# facebook: yourname +# twitter: yourname +# youtube: c/yourname +# --- +# medium: yourname +# reddit: yourname +# linkedin: daattali +# xing: yourname +# stackoverflow: "3943160/daattali" +# snapchat: deanat78 +# instagram: deanat78 +# spotify: yourname +# telephone: +14159998888 +# steam: deanat78 +# twitch: yourname +# yelp: yourname +# telegram: yourname +# calendly: yourname +# mastodon: instance.url/@username +# bluesky: yourname +# ORCID: your ORCID ID +# google-scholar: your google scholar +# discord: "invite_code" or "users/userid" or "invite/invite_code" +# kaggle: yourname +# hackerrank: yourname +# gitlab: yourname + +# If you want your website to generate an RSS feed, provide a description +# The URL for the feed will be https:///feed.xml +rss-description: LizardByte + +########################### +# --- General options --- # +########################### + +# Select which social network share links to show in posts +share-links-active: + twitter: true + facebook: true + linkedin: true + vk: false + +# How to display the link to your website in the footer +# Remove this if you don't want a link in the footer +url-pretty: "app.LizardByte.dev" + +# Excerpt word length - Truncate the excerpt of each post on the feed page to the specified number of words +excerpt_length: 50 + +# Whether or not to show an excerpt for every blog post in the feed page +feed_show_excerpt: true + +# Whether or not to show a list of tags below each post preview in the feed page +feed_show_tags: true + +# Add a search button to the navbar +post_search: true + +# Add a button in the footer to edit the current page. Only works if your website is hosted on GitHub +edit_page_button: true + +# Allow sub-menu items (second-level navigation menu items) to be longer than the top-level menu +# If this setting is off, then long sub-menu words might get cut off +# See https://github.com/daattali/beautiful-jekyll/issues/765 to understand the issue this setting can solve +navbar-var-length: true + +# The keywords to associate with your website, for SEO purposes +keywords: "LizardByte,Sunshine,RetroArcher,self-hosted,gamestreaming,gamestream,game,streaming,media server" + +###################################### +# --- Colours / background image --- # +###################################### + +# Personalize the colors in your website. Color values can be any valid CSS color + +navbar-col: "#151515" +navbar-text-col: "#e4e6eb" +navbar-border-col: "#393a3b" +page-col: "#303436" +text-col: "#e4e4e4" +link-col: "#28a9e6" +hover-col: "#28a9e6" +footer-col: "#242526" +footer-text-col: "#a8aaa8" +footer-link-col: "#dfdfdf" +footer-hover-col: "#28a9e6" + +# Alternatively, the navbar, footer, and page background can be set to an image +# instead of color + +# navbar-img: "/assets/img/bgimage.png" +# footer-img: "/assets/img/bgimage.png" +# page-img: "/assets/img/bgimage.png" + +# Suggest a color for mobile browsers to use as the browser's theme. This is only supported by a few mobile browsers. +mobile-theme-col: "#05FF3B" + +# For any extra visual customization, you can include additional CSS files in every page on your site. +# List any custom CSS files here +site-css: + - "/assets/css/custom-styles.css" + +# If you have common JavaScript files that should be included in every page, list them here +# site-js: +# - "/assets/js/custom.js" + +################################# +# --- Web Analytics Section --- # +################################# + +# Fill in your Google Analytics tag ID (or "Measurement ID") to track your website usage +gtag: "G-0NFSCW63S2" # TODO: Update this with your own Google Analytics tag ID + +# Fill in your Cloudflare Analytics beacon token to track your website using Cloudflare Analytics +# cloudflare_analytics: "" + +# Google Tag Manager ID +# gtm: "" + +# Matomo (aka Piwik) Web statistics +# Uncomment the following section to enable Matomo. The opt-out parameter controls +# whether or not you want to allow users to opt out of tracking. +# matomo: +# site_id: "9" +# uri: "demo.wiki.pro" +# opt-out: true + +# Google Universal Analytics ID -- deprecated +# As of July 2023 this is no longer supported by Google! If you are still using `google_analytics`, +# you should switch to using the `gtag` field above instead. +# google_analytics: "UA-XXXXXXXX-X" + +#################### +# --- Comments --- # +#################### + +# To use Disqus comments, sign up to https://disqus.com and fill in your Disqus shortname (NOT the userid) +# disqus: "" + +# To use Facebook Comments, create a Facebook app and fill in the Facebook App ID +# fb_comment_id: "" + +# To use CommentBox, sign up for a Project ID on https://commentbox.io +# commentbox: "" # Project ID, e.g. "5694267682979840-proj" + +# To use Utterances comments: (0) uncomment the following section, (1) fill in +# "repository" (make sure the repository is public), (2) Enable Issues in your repository, +# (3) Install the Utterances app in your repository https://github.com/apps/utterances +# See more details about the parameters below at https://utteranc.es/ +utterances: + repository: LizardByte/community # GitHub username/repository eg. "daattali/beautiful-jekyll" + issue-term: title # Mapping between blog posts and GitHub issues + theme: gruvbox-dark # Utterances theme + label: blog-comments # Label that will be assigned to GitHub Issues created by Utterances + +# other options for comments are staticman and giscus + +################ +# --- Misc --- # +################ + +# Ruby Date Format to show dates of posts +date_format: "%B %-d, %Y" + +# Facebook App ID +# fb_app_id: "" + +################################################################################# +# --- You don't need to touch anything below here (but you can if you want) --- # +################################################################################# + +# Output options (more information on Jekyll's site) +timezone: "America/New_York" +markdown: kramdown +highlighter: rouge +permalink: /:year-:month-:day-:title/ +paginate: 5 + +kramdown: + input: GFM + +# Default YAML values (more information on Jekyll's site) +defaults: + - scope: + path: "" + type: "posts" + values: + layout: "post" + after-content: + - donate.html + footer-extra: + - footer-extra.html + comments: true # add comments to all blog posts + social-share: true # add social media sharing buttons to all blog posts + css: + - "/assets/css/show-search.css" + - scope: + path: "" # any file that's not a post will be a "page" layout by default + values: + layout: "page" + after-content: + - donate.html + footer-extra: + - footer-extra.html + +# Exclude these files from production site +exclude: + - CNAME + - Dockerfile + - Gemfile + - Gemfile.lock + - LICENSE + - README.md + +plugins: + - jekyll-paginate + - jekyll-sitemap + +# Beautiful Jekyll / Dean Attali +# 2fc73a3a967e97599c9763d05e564189 diff --git a/_config_local.yml b/_config_local.yml new file mode 100644 index 00000000..b5f56203 --- /dev/null +++ b/_config_local.yml @@ -0,0 +1,5 @@ +--- +host: "localhost" +port: 4000 +baseurl: "" +repository: "octocat/dummy" diff --git a/_includes/donate.html b/_includes/donate.html new file mode 100644 index 00000000..707ab1c1 --- /dev/null +++ b/_includes/donate.html @@ -0,0 +1,55 @@ + + diff --git a/_includes/footer-extra.html b/_includes/footer-extra.html new file mode 100644 index 00000000..b262703f --- /dev/null +++ b/_includes/footer-extra.html @@ -0,0 +1,9 @@ +{% include open-in-new-window.html %} + + + + + + diff --git a/_includes/open-in-new-window.html b/_includes/open-in-new-window.html new file mode 100644 index 00000000..171aabd0 --- /dev/null +++ b/_includes/open-in-new-window.html @@ -0,0 +1,30 @@ + diff --git a/_includes/support.html b/_includes/support.html new file mode 100644 index 00000000..06e0ae44 --- /dev/null +++ b/_includes/support.html @@ -0,0 +1,29 @@ + +
+
+
+ +
+
+

Support Center

+
Find answers and ask questions.
+
+ +
+

+ The one who knows all the answers has not been asked all the questions. + – Confucius. +

+ +
+
+
+
+
diff --git a/_posts/2024-09-23-welcome.md b/_posts/2024-09-23-welcome.md new file mode 100644 index 00000000..80712b91 --- /dev/null +++ b/_posts/2024-09-23-welcome.md @@ -0,0 +1,24 @@ +--- +layout: post +title: Welcome +subtitle: to the blog of LizardByte! +gh-repo: LizardByte/LizardByte.github.io +gh-badge: [follow, star] +tags: [news] +comments: true +author: ReenigneArcher +--- + +We're thrilled to have you here. This blog is your go-to source for all the latest announcements, updates, and news about LizardByte projects. Whether you're a developer, a tech enthusiast, or just curious about what we do, you'll find valuable insights and information here. + +### What to Expect + +- **Announcements**: Stay updated with the latest news and releases. +- **Project Updates**: Get in-depth looks at our ongoing projects and developments. +- **Community Highlights**: Learn about the amazing work our community is doing. + +### Get Involved + +We love hearing from our community! If you have any topics you'd like us to cover, or if you have any questions, feel free to reach out on our social media channels or leave a comment below. + +Thank you for being a part of the LizardByte community. Stay tuned for more exciting content! diff --git a/assets/css/custom-styles.css b/assets/css/custom-styles.css new file mode 100644 index 00000000..12b49682 --- /dev/null +++ b/assets/css/custom-styles.css @@ -0,0 +1,89 @@ +body { + font-family: 'Open Sans', sans-serif; +} + +.box-error, .box-note, .box-warning { + color: #18191a; +} + +.card-body, .card-custom, .card-footer, .cr-picker-button, .cr-picker-submenu { + --bs-bg-opacity: 1; + background-color: var(--navbar-col) !important; +} + +/* in line code */ +code { + color: #fb660a; + background-color: #111111; +} + +.feature { + display: inline-flex; + align-items: center; + justify-content: center; + height: 3rem; + width: 3rem; + font-size: 1.5rem; +} + +.feedback, .widgetbot { + display: flex; + align-items: center; + justify-content: space-around; +} + +iframe.feedback { + width: 100vw; + min-height: calc(100vh - 80px - 72px); /* subtract navbar and footer height */ +} + +@media screen and (min-width: 321px) and (max-width: 768px) { + iframe.feedback { + min-height: calc(100vh - 80px - 93px); /* subtract navbar and footer height */ + } +} + +@media screen and (max-width: 320px) { + iframe.feedback { + min-height: calc(100vh - 80px - 114px); /* subtract navbar and footer height */ + } +} + +/* page navigation buttons */ +.pagination .page-item .page-link { + background-color: #111111; + color: #e4e4e4; +} + +/* shrink logo when navbar shrinks, instead of hiding it */ +.navbar-custom.top-nav-short .avatar-container { + width: 3.125rem; + opacity: 1 !important; + visibility: visible !important; + transition: none !important; + -webkit-transition: none !important; + -moz-transition: none !important; +} + +/* hide search button */ +#nav-search-link { + display: none; +} + +/* hide powered by */ +.theme-by { + display: none; +} + +/*card image hover*/ +.hover-zoom { + overflow: hidden; +} + +.hover-zoom img { + transition: all 1.5s ease; +} + +.hover-zoom:hover img { + transform: scale(1.1); +} diff --git a/assets/css/pygment_highlights.css b/assets/css/pygment_highlights.css new file mode 100644 index 00000000..5d85704f --- /dev/null +++ b/assets/css/pygment_highlights.css @@ -0,0 +1,79 @@ +/* https://github.com/richleland/pygments-css */ +.highlight .hll { background-color: #333333 } +.highlight { background: #111111; color: #ffffff } +.highlight .c { color: #008800; font-style: italic; background-color: #0f140f } /* Comment */ +.highlight .err { color: #ffffff } /* Error */ +.highlight .esc { color: #ffffff } /* Escape */ +.highlight .g { color: #ffffff } /* Generic */ +.highlight .k { color: #fb660a; font-weight: bold } /* Keyword */ +.highlight .l { color: #ffffff } /* Literal */ +.highlight .n { color: #ffffff } /* Name */ +.highlight .o { color: #ffffff } /* Operator */ +.highlight .x { color: #ffffff } /* Other */ +.highlight .p { color: #ffffff } /* Punctuation */ +.highlight .ch { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Hashbang */ +.highlight .cm { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Multiline */ +.highlight .cp { color: #ff0007; font-weight: bold; font-style: italic; background-color: #0f140f } /* Comment.Preproc */ +.highlight .cpf { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.PreprocFile */ +.highlight .c1 { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Single */ +.highlight .cs { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Special */ +.highlight .gd { color: #ffffff } /* Generic.Deleted */ +.highlight .ge { color: #ffffff } /* Generic.Emph */ +.highlight .gr { color: #ffffff } /* Generic.Error */ +.highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #ffffff } /* Generic.Inserted */ +.highlight .go { color: #444444; background-color: #222222 } /* Generic.Output */ +.highlight .gp { color: #ffffff } /* Generic.Prompt */ +.highlight .gs { color: #ffffff } /* Generic.Strong */ +.highlight .gu { color: #ffffff; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #ffffff } /* Generic.Traceback */ +.highlight .kc { color: #fb660a; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #fb660a; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #fb660a; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #fb660a } /* Keyword.Pseudo */ +.highlight .kr { color: #fb660a; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #cdcaa9; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #ffffff } /* Literal.Date */ +.highlight .m { color: #0086f7; font-weight: bold } /* Literal.Number */ +.highlight .s { color: #0086d2 } /* Literal.String */ +.highlight .na { color: #ff0086; font-weight: bold } /* Name.Attribute */ +.highlight .nb { color: #ffffff } /* Name.Builtin */ +.highlight .nc { color: #ffffff } /* Name.Class */ +.highlight .no { color: #0086d2 } /* Name.Constant */ +.highlight .nd { color: #ffffff } /* Name.Decorator */ +.highlight .ni { color: #ffffff } /* Name.Entity */ +.highlight .ne { color: #ffffff } /* Name.Exception */ +.highlight .nf { color: #ff0086; font-weight: bold } /* Name.Function */ +.highlight .nl { color: #ffffff } /* Name.Label */ +.highlight .nn { color: #ffffff } /* Name.Namespace */ +.highlight .nx { color: #ffffff } /* Name.Other */ +.highlight .py { color: #ffffff } /* Name.Property */ +.highlight .nt { color: #fb660a; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #fb660a } /* Name.Variable */ +.highlight .ow { color: #ffffff } /* Operator.Word */ +.highlight .w { color: #888888 } /* Text.Whitespace */ +.highlight .mb { color: #0086f7; font-weight: bold } /* Literal.Number.Bin */ +.highlight .mf { color: #0086f7; font-weight: bold } /* Literal.Number.Float */ +.highlight .mh { color: #0086f7; font-weight: bold } /* Literal.Number.Hex */ +.highlight .mi { color: #0086f7; font-weight: bold } /* Literal.Number.Integer */ +.highlight .mo { color: #0086f7; font-weight: bold } /* Literal.Number.Oct */ +.highlight .sa { color: #0086d2 } /* Literal.String.Affix */ +.highlight .sb { color: #0086d2 } /* Literal.String.Backtick */ +.highlight .sc { color: #0086d2 } /* Literal.String.Char */ +.highlight .dl { color: #0086d2 } /* Literal.String.Delimiter */ +.highlight .sd { color: #0086d2 } /* Literal.String.Doc */ +.highlight .s2 { color: #0086d2 } /* Literal.String.Double */ +.highlight .se { color: #0086d2 } /* Literal.String.Escape */ +.highlight .sh { color: #0086d2 } /* Literal.String.Heredoc */ +.highlight .si { color: #0086d2 } /* Literal.String.Interpol */ +.highlight .sx { color: #0086d2 } /* Literal.String.Other */ +.highlight .sr { color: #0086d2 } /* Literal.String.Regex */ +.highlight .s1 { color: #0086d2 } /* Literal.String.Single */ +.highlight .ss { color: #0086d2 } /* Literal.String.Symbol */ +.highlight .bp { color: #ffffff } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #ff0086; font-weight: bold } /* Name.Function.Magic */ +.highlight .vc { color: #fb660a } /* Name.Variable.Class */ +.highlight .vg { color: #fb660a } /* Name.Variable.Global */ +.highlight .vi { color: #fb660a } /* Name.Variable.Instance */ +.highlight .vm { color: #fb660a } /* Name.Variable.Magic */ +.highlight .il { color: #0086f7; font-weight: bold } /* Literal.Number.Integer.Long */ diff --git a/assets/css/show-search.css b/assets/css/show-search.css new file mode 100644 index 00000000..c1a6f6f4 --- /dev/null +++ b/assets/css/show-search.css @@ -0,0 +1,3 @@ +#nav-search-link { + display: block; +} diff --git a/dist/assets/images/AdobeStock_306976163.jpeg b/assets/img/banners/AdobeStock_306976163.jpeg similarity index 100% rename from dist/assets/images/AdobeStock_306976163.jpeg rename to assets/img/banners/AdobeStock_306976163.jpeg diff --git a/dist/assets/images/AdobeStock_306976163_1920x1280.jpg b/assets/img/banners/AdobeStock_306976163_1920x1280.jpg similarity index 100% rename from dist/assets/images/AdobeStock_306976163_1920x1280.jpg rename to assets/img/banners/AdobeStock_306976163_1920x1280.jpg diff --git a/dist/assets/images/AdobeStock_372471479.jpeg b/assets/img/banners/AdobeStock_372471479.jpeg similarity index 100% rename from dist/assets/images/AdobeStock_372471479.jpeg rename to assets/img/banners/AdobeStock_372471479.jpeg diff --git a/dist/assets/images/AdobeStock_372471479_1920x1280.jpg b/assets/img/banners/AdobeStock_372471479_1920x1280.jpg similarity index 100% rename from dist/assets/images/AdobeStock_372471479_1920x1280.jpg rename to assets/img/banners/AdobeStock_372471479_1920x1280.jpg diff --git a/dist/assets/images/AdobeStock_465916245.jpeg b/assets/img/banners/AdobeStock_465916245.jpeg similarity index 100% rename from dist/assets/images/AdobeStock_465916245.jpeg rename to assets/img/banners/AdobeStock_465916245.jpeg diff --git a/dist/assets/images/AdobeStock_465916245_1920x1080.jpg b/assets/img/banners/AdobeStock_465916245_1920x1080.jpg similarity index 100% rename from dist/assets/images/AdobeStock_465916245_1920x1080.jpg rename to assets/img/banners/AdobeStock_465916245_1920x1080.jpg diff --git a/dist/assets/images/og-image.png b/assets/img/banners/og-image.png similarity index 100% rename from dist/assets/images/og-image.png rename to assets/img/banners/og-image.png diff --git a/assets/img/navbar-avatar.png b/assets/img/navbar-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..f5dc344e4b0bb2e0fcda09d107d2118b4927b31a GIT binary patch literal 11647 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 literal 0 HcmV?d00001 diff --git a/dist/js/projects.js b/assets/js/projects.js similarity index 94% rename from dist/js/projects.js rename to assets/js/projects.js index a7b77441..70732afb 100644 --- a/dist/js/projects.js +++ b/assets/js/projects.js @@ -1,9 +1,5 @@ // projects section script -// load external scripts -$.getScript('https://app.lizardbyte.dev/js/ranking_sorter.js') - - // get project container container = document.getElementById("project-container") let org_name = "LizardByte" @@ -11,16 +7,13 @@ let base_url = `https://app.${org_name.toLowerCase()}.dev` let cache_repo = "dashboard" +// create project cards $(document).ready(function(){ // Set cache = false for all jquery ajax requests. $.ajaxSetup({ cache: false, }); -}); - -// create project cards -$(document).ready(function(){ // get readthedocs projects let readthedocs = [] $.ajax({ @@ -39,7 +32,7 @@ $(document).ready(function(){ type: "GET", dataType:"json", success: function (result) { - let sorted = result.sort(rankingSorter("stargazers_count", "name")) + let sorted = result.sort(window.rankingSorter("stargazers_count", "name")) for(let repo in sorted) { if (sorted[repo]['archived'] === false && sorted[repo]['description'] !== null && sorted[repo]['fork'] === false) { @@ -68,7 +61,7 @@ $(document).ready(function(){ banner_link.append(banner) let card_body = document.createElement("div") - card_body.className = "bg-dark text-white card-body p-4 rounded-0" + card_body.className = "card-body p-4 rounded-0" card.appendChild(card_body) let card_title_link = document.createElement("a") @@ -88,7 +81,7 @@ $(document).ready(function(){ card_body.appendChild(card_paragraph) let card_footer = document.createElement("div") - card_footer.className = "card-footer p-2 pt-0 bg-dark text-white border-0 rounded-0" + card_footer.className = "card-footer p-2 pt-0 border-0 rounded-0" card.appendChild(card_footer) let repo_data_row = document.createElement("div") @@ -119,7 +112,7 @@ $(document).ready(function(){ star_link.className = "nav-link nav-link-sm text-white ms-3" star_link.href = `https://star-history.com/#${sorted[repo]['full_name']}` star_link.target = "_blank" - star_link.textContent = sorted[repo]['stargazers_count'] + star_link.textContent = window.formatNumber(sorted[repo]['stargazers_count']) repo_data_row.appendChild(star_link) let star_link_image = document.createElement("i") @@ -130,7 +123,7 @@ $(document).ready(function(){ fork_link.className = "nav-link nav-link-sm text-white ms-3" fork_link.href = `https://github.com/${sorted[repo]['full_name']}/network/members` fork_link.target = "_blank" - fork_link.textContent = sorted[repo]['forks'] + fork_link.textContent = window.formatNumber(sorted[repo]['forks']) repo_data_row.appendChild(fork_link) let fork_link_image = document.createElement("i") diff --git a/blog.html b/blog.html new file mode 100644 index 00000000..83c8efb2 --- /dev/null +++ b/blog.html @@ -0,0 +1,9 @@ +--- +layout: home +title: Blog +css: + - "/assets/css/show-search.css" +--- + + +Blog Index diff --git a/discord.html b/discord.html new file mode 100644 index 00000000..b504cebc --- /dev/null +++ b/discord.html @@ -0,0 +1,17 @@ +--- +layout: page +full-width: true +--- + +
+
+ + + +
+
diff --git a/dist/.keep b/dist/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/dist/.nojekyll b/dist/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/dist/CNAME b/dist/CNAME deleted file mode 100644 index 8bb5a96d..00000000 --- a/dist/CNAME +++ /dev/null @@ -1 +0,0 @@ -app.lizardbyte.dev \ No newline at end of file diff --git a/dist/assets/images/logo-56x56.png b/dist/assets/images/logo-56x56.png deleted file mode 100644 index e3d3bb2695d16c83ccd4ab29be625cb58e9f78e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1773 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 diff --git a/dist/css/custom.css b/dist/css/custom.css deleted file mode 100644 index b64217ea..00000000 --- a/dist/css/custom.css +++ /dev/null @@ -1,171 +0,0 @@ -body { - padding-top: 80px; -} - -/*Apply to elements that serve as anchors*/ -.offset-anchor { - border-top: 80px solid transparent; - margin: -80px 0 0; - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} - -/*Because offset-anchor causes sections to overlap the bottom of previous ones,*/ -/*we need to put content higher so links aren't blocked by the transparent border.*/ -.container { - position: relative; - z-index: 1; -} - -.navbar { - min-height: 80px; - border-bottom: 1px solid white; -} - -.navbar-brand { - font-size: 1.75rem; -} - -.nav-link { - font-size: 1.25rem; -} - -.nav-link-sm { - font-size: 1rem; -} - -.bg-dark { - --bs-bg-opacity: 1; - background-color: #151515 !important; -} - -.bg-dark-gray { - --bs-bg-opacity: 1; - background-color: #303436 !important; -} - -.carousel-overlay-title { - position: absolute; - top: 20vh; - right: 10vw; - padding: 1rem; - text-shadow: 2px 2px 5px black; - user-select: none; - z-index: 1; -} - -.carousel-overlay-subtitle { - position: absolute; - top: 30vh; - right: 10vw; - padding: 1rem; - text-shadow: 2px 2px 5px black; - user-select: none; - z-index: 1; -} - -.carousel-item.active, .carousel-item .view { - height: 50vh !important; -} - -.carousel-item img { - object-fit: cover; - width:100% !important; - height: 100% !important; -} - -.content h1 { - font-size: 55px; -} - -@media screen and (max-width: 320px) { - .content h1 { - font-size: 30px; - } -} - -@media screen and (min-width: 321px) and (max-width: 768px) { - .content h1 { - font-size: 30px; - } -} - -.content h5 { - font-size: 23px; - margin-left: 80px; - margin-right: 80px; -} - -@media screen and (max-width: 320px) { - .content h5 { - font-size: 18px; - margin-left: 20px; - margin-right: 20px - } -} - -@media screen and (min-width: 321px) and (max-width: 768px) { - .content h5 { - font-size: 18px; - margin-left: 20px; - margin-right: 20px; - } -} - -.feature { - display: inline-flex; - align-items: center; - justify-content: center; - height: 3rem; - width: 3rem; - font-size: 1.5rem; -} - -.widgetbot { - display: flex; - align-items: center; - justify-content: space-around; -} - -.feedback { - display: flex; - align-items: center; - justify-content: space-around; -} - -iframe.feedback { - width: 100vw; - min-height: calc(100vh - 80px - 72px); /* subtract navbar and footer height */ -} - -@media screen and (min-width: 321px) and (max-width: 768px) { - iframe.feedback { - min-height: calc(100vh - 80px - 93px); /* subtract navbar and footer height */ - } -} - -@media screen and (max-width: 320px) { - iframe.feedback { - min-height: calc(100vh - 80px - 114px); /* subtract navbar and footer height */ - } -} - -/*card image hover*/ -.hover-zoom { - overflow: hidden; -} - -.hover-zoom img { - transition: all 1.5s ease; -} - -.hover-zoom:hover img { - transform: scale(1.1); -} - -/*custom text colors*/ -.text-purple { - --bs-text-opacity: 1; - color: var(--bs-purple) !important; -} diff --git a/dist/css/logos.css b/dist/css/logos.css deleted file mode 100644 index 41acf1de..00000000 --- a/dist/css/logos.css +++ /dev/null @@ -1,7 +0,0 @@ -.logo-mee6 { - content: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPxSURBVHhe7d3NcdtWGEBRMWWkCG/TQrJVRanI27iFbF1E2nDwLNAjMxJFgKAUXJ4zwxEtm/K8+a6eIP7h8G3yABG/zB8hQdCkCJoUQZMiaFIETYqgSRE0KYImRdCkCJoUQZMiaFIETYqgSRE0KYImRdCkCJoUQZMiaFIETYqgSRE0KYImRdCkCJoUQZMiaFIETYqgSRE0KYImRdCkCJoUQZMiaFIETYqgSRE0KYImRdCkCJoUQZMiaFIETYqgSRE0KYImRdCkCJoUQZMiaFIETYqgSRE0KYImRdCkCJoUQZMiaFIETYqgSRE0KfcW9D/z5V6MtX6ZP96Fw7fJfL1qDPPr09WHP08+fpouvz5dzfhpvYfD4e9pxL+N60+fSq75h3LQx8F+H+r3z5x4NujKkMeaH19b7xBc80+qQb852OfmIX+eLnsd8JvfvKcCa35RMehFMR/teMCr1jsUo679Urh6uPNtHqfL+Bp78nXNeof5dsfj7YRS0KtjPtrhgMeaj7/srTVuv7dv4leVgl69U53Y04CvXnNtl/bAyokdDXiL3fkos0sLer+2+omU2qUrQW+5W7FjdmhSKkGP+1Ht0Nihd+zT/MDI1eavMx4K3z1Bn9jRcLf8qTS+TuLRwlLQW+1Yexru1Wsu7c5DKegR4edrBrzD4V615vl2nsvxP7Z6wDse7qo1F2MeisfQiwccGO6iNVdjHqq/FB4H/Ne5IY+/G/9muloY7ptrjq33Rff2EqxTyVdtTF5bc3W9P9xD0NyR6iEHd0rQpAiaFEGTImhSBE2KoEkRNCmCJkXQpAiaFEGTImhSBE2KoEkRNCmCJkXQpAiaFEGTImhSBE2KtzFY7tz7fLyH/HtrXEPQlzuGfPHZWm9hGlf2bby2IOjLfZlC/mO+/qFE/TrH0DtUOmvV1gS9Q/MOnXmT8i0Jep8yp5DYmqBJEfTlNjvrFLcj6MuNH/Effi5Ex8/nCXp/HD+fIehlPvSww+78Ng+sLPdhD7BMoxrnR/n96U+8xA693Ifs0nbnywh6uXH8uvi8gNeY/y8PdV9A0Ou8W9RiXkbQ6908ajEvJ+jrHKM+e4LPNcS8jns5tjOeL/147XOl55DHfc2eyL+CoLe1+kUAQt6GoG/j9GVa/wn8WcBHQt6AoN/HS69DFPANCJoU93KQImhSBE2KoEkRNCmCJkXQpAiaFEGTImhSBE2KoEkRNCmCJkXQpAiaFEGTImhSBE2KoEkRNCmCJkXQpAiaFEGTImhSBE2KoEkRNCmCJkXQpAiaFEGTImhSBE2KoEkRNCmCJkXQpAiaFEGTImhSBE2KoEkRNCmCJkXQpAiaFEET8vDwL4MfYs7t2ZY0AAAAAElFTkSuQmCC"); -} - -.language-logo { - height: 2em; -} diff --git a/dist/discord.html b/dist/discord.html deleted file mode 100644 index 5410afef..00000000 --- a/dist/discord.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - LizardByte | Discord - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-
- - - -
-
-
-
- -
- - - - - - - - - diff --git a/dist/favicon.ico b/dist/favicon.ico deleted file mode 100644 index 79620bf5b76dbc9bd4c49dd68c0e9fecac911f2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114227 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 z 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 xL|2M6lu}g4yyB}K - - - LizardByte | Feedback - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
-
- -
-
-
- -
- - - - - - - - - - - diff --git a/dist/index.html b/dist/index.html deleted file mode 100644 index f8ee29e6..00000000 --- a/dist/index.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - LizardByte - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
-
- -
-
- - -
-
-
-

About us

-
-
-
-
- -
-

Open source

-

All of our projects are open source.

-
-
-
- -
-

Free

-

Free to use software.

-
-
-
- -
-

Community

-

- We are community oriented and our projects are driven by the community.

-
-
-
- -
-

Continuous Improvement

-

We are committed to improving our products.

-
-
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - -
-
-
-
-
-

Projects

-

Check out our most popular projects!

-
-
-
-
-
-
- - -
-
-
-
-

- -

-
-
-
-

Social

-
- - Discord - - - Facebook - - - Reddit - - - X - - - YouTube - -
-
-
-
- - - - - -
-
-
-
-
-
Support Center
-
Find answers and ask questions.
-
-
-

- The one who knows all the answers has not been asked all the questions. - – Confucius. -

- -
-
-
-
-
- -
- -
- - - - - - - - - - - - - diff --git a/dist/js/crowdin.js b/dist/js/crowdin.js deleted file mode 100644 index 7aaaaed4..00000000 --- a/dist/js/crowdin.js +++ /dev/null @@ -1,55 +0,0 @@ -// this script requires jquery to be loaded on the source page, like so... -// - -// use Jquery to load other javascript -$.getScript('https://proxy-translator.app.crowdin.net/assets/proxy-translator.js', function() { - window.proxyTranslator.init({ - baseUrl: "https://app.lizardbyte.dev", - appUrl: "https://proxy-translator.app.crowdin.net", - valuesParams: "U2FsdGVkX19ClOT7gAzJBnfQPMcvqkPxFWxyPrnN7UEMztYDAOA+/W4kvMqRz2gDLv2/K3hTEtwbcq5imv5k5MUAykz0uklBcdH49kqeo1AhYpNKXdwXZNYBPXmNUm5F", - distributionBaseUrl: "https://distributions.crowdin.net", - filePath: "/app.lizardbyte.dev.json", - distribution: "0913bb75b61f0b26247ffa91bw4", - languagesData: { - "fr": {"code":"fr","name":"French","twoLettersCode":"fr"}, - "es-ES": {"code":"es-ES","name":"Spanish","twoLettersCode":"es"}, - "de": {"code":"de","name":"German","twoLettersCode":"de"}, - "it": {"code":"it","name":"Italian","twoLettersCode":"it"}, - "ja":{"code":"ja","name":"Japanese","twoLettersCode":"ja"}, - "pt-PT":{"code":"pt-PT","name":"Portuguese","twoLettersCode":"pt"}, - "ru": {"code":"ru","name":"Russian","twoLettersCode":"ru"}, - "sv-SE":{"code":"sv-SE","name":"Swedish","twoLettersCode":"sv"}, - "tr":{"code":"tr","name":"Turkish","twoLettersCode":"tr"}, - "zh-CN":{"code":"zh-CN","name":"Chinese Simplified","twoLettersCode":"zh"}, - "en": {"code":"en","name":"English","twoLettersCode":"en"}, - "en-US": {"code":"en-US","name":"English, United States","twoLettersCode":"en"}, - "en-GB": {"code":"en-GB","name":"English, United Kingdom","twoLettersCode":"en"} - }, - defaultLanguage: "en", - defaultLanguageTitle: "English", - languageDetectType: "default", - poweredBy: false, - position: "bottom-left", - submenuPosition: "top-left", - }); - - // change styling of language selector button - let button = document.getElementsByClassName('cr-picker-button')[0] - button.classList.add('border-white') - button.classList.add('btn') - button.classList.add('btn-outline-light') - button.classList.add('bg-dark') - button.classList.add('text-white') - button.classList.add('rounded-0') - - // change styling of language selector menu - let menu = document.getElementsByClassName('cr-picker-submenu')[0] - menu.classList.add('border-white') - menu.classList.add('bg-dark') - menu.classList.add('text-white') - menu.classList.add('rounded-0') - - // change styling of selected language in menu - let selected = document.getElementsByClassName('cr-selected')[0] - selected.classList.add('text-white') -}); diff --git a/dist/js/crowdin_web_widget.js b/dist/js/crowdin_web_widget.js deleted file mode 100644 index 9ffadc98..00000000 --- a/dist/js/crowdin_web_widget.js +++ /dev/null @@ -1,24 +0,0 @@ -// this script requires jquery to be loaded on the source page, like so... -// - -// use Jquery to load other javascript -$.getScript('https://crowdin.com/js/crowdjet/crowdjet.js', function() { -// crowdin web widget: https://crowdin.com/project/lizardbyte/tools/web-widget - // get body - let body = document.getElementsByTagName('body')[0] - - // create container (popup) - let container = document.createElement('div') - container.id = 'crowdjet-container' - container.dataset.projectId = '606145' - container.style.bottom = '90px' - container.style.left = '5px' - body.appendChild(container) - - // create expand container (button) - let expandContainer = document.createElement('div') - expandContainer.id = 'crowdjet-expand-container' - expandContainer.style.bottom = '0px' - expandContainer.style.left = '120px' - body.appendChild(expandContainer) -}) diff --git a/dist/js/discord.js b/dist/js/discord.js deleted file mode 100644 index 401e8d2d..00000000 --- a/dist/js/discord.js +++ /dev/null @@ -1,27 +0,0 @@ -function randomQuote(quote, crate) { - let the_quote = quote['quote_safe'] || quote['quote'] - crate.notify(the_quote) -} - -//Widgetbot initialization -let widgetbot = document.createElement('script') -widgetbot.setAttribute('src', 'https://cdn.jsdelivr.net/npm/@widgetbot/crate@3') -widgetbot.async = true; -widgetbot.onload = () => { - new Crate({ - server: '804382334370578482', - channel: '804383092822900797', - defer: false, - }) -} -document.head.appendChild(widgetbot) - -// get random video game quotes and notify the user on Widgetbot after 7 minutes -fetch('https://app.lizardbyte.dev/uno/random-quotes/games.json').then(r => r.json()).then(result => { - let quote = result[Math.floor(Math.random() * result.length)] - setTimeout(() => { - if (crate) { - randomQuote(quote, crate) - } - }, 7 * 60 * 1000) -}) diff --git a/dist/js/footer.js b/dist/js/footer.js deleted file mode 100644 index 1b7117d4..00000000 --- a/dist/js/footer.js +++ /dev/null @@ -1,20 +0,0 @@ -document.getElementById("footer-container").className = "bg-dark py-4 mt-auto" -document.getElementById("footer-container").innerHTML = ` -
-
-
- -
-
- Privacy - · - Terms -
-
-
-` - -// Update year -let currDate = new Date(); -let currYear = currDate.getFullYear(); -document.getElementById("copyright-text").textContent = `Copyright \u00A9 LizardByte ${currYear}` diff --git a/dist/js/levenshtein_distance.js b/dist/js/levenshtein_distance.js deleted file mode 100644 index 6356c492..00000000 --- a/dist/js/levenshtein_distance.js +++ /dev/null @@ -1,36 +0,0 @@ -let levenshteinDistance = { - get: function (a, b) { - if (a.length === 0) return b.length; - if (b.length === 0) return a.length; - - let matrix = []; - - // increment along the first column of each row - let i; - for (i = 0; i <= b.length; i++) { - matrix[i] = [i]; - } - - // increment each column in the first row - let j; - for (j = 0; j <= a.length; j++) { - matrix[0][j] = j; - } - - // Fill in the rest of the matrix - for (i = 1; i <= b.length; i++) { - for (j = 1; j <= a.length; j++) { - if (b.charAt(i - 1) === a.charAt(j - 1)) { - matrix[i][j] = matrix[i - 1][j - 1]; - } else { - matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution - Math.min(matrix[i][j - 1] + 1, // insertion - matrix[i - 1][j] + 1)); // deletion - } - } - } - - // return the percentage of the levenshtein distance - return (1 - (matrix[b.length][a.length] / Math.max(a.length, b.length))) * 100 - } -} diff --git a/dist/js/navbar.js b/dist/js/navbar.js deleted file mode 100644 index 7cb5b5f6..00000000 --- a/dist/js/navbar.js +++ /dev/null @@ -1,77 +0,0 @@ -// setup Scrollspy https://getbootstrap.com/docs/5.0/components/scrollspy/ -let base_element = document.getElementsByTagName("body")[0]; -base_element.setAttribute("data-bs-spy", "scroll"); -base_element.setAttribute("data-bs-target", "#nav-container"); -base_element.setAttribute("data-bs-offset", "80"); - -let navbar_element = document.getElementById("nav-container"); -navbar_element.className = "navbar navbar-expand-lg navbar-dark bg-black fixed-top" -navbar_element.innerHTML = ` -
- - - - -
-`; - -// create the navbar dynamically -let sections = document.getElementsByTagName('section'); -let navbar = document.getElementById("navbarToggle") -navbar.className = "collapse navbar-collapse" - -let navbar_list = document.createElement("ul") -navbar_list.className = "navbar-nav nav ms-auto" -navbar.appendChild(navbar_list) - -let nav_list_item_class = "nav-item" -let nav_link_class = "nav-link fw-bold menu-list" - -// Add HOME link -// let home_item = document.createElement("li") -// home_item.className = nav_list_item_class -// let home_link = document.createElement("a") -// -// home_link.className = nav_link_class -// home_link.href = "index.html" -// home_link.textContent = "Home" -// home_item.appendChild(home_link) -// navbar_list.appendChild(home_item) - -for(let i = 0; i < sections.length; ++i) { - if (sections[i].id) { - let navbar_item = document.createElement("li") - navbar_item.className = nav_list_item_class - let navbar_link = document.createElement("a") - - navbar_link.className = nav_link_class - navbar_link.href = `#${sections[i].id}` - navbar_link.textContent = sections[i].id - - // check if crowdin-ignore is in the section classes and add it to the link - if (sections[i].classList.contains("crowdin-ignore")) { - navbar_link.classList.add("crowdin-ignore") - } - - navbar_item.appendChild(navbar_link) - navbar_list.appendChild(navbar_item) - } -} - -// // highlight the active link ... not necessary with Bootstrap/Scrollspy -// $(function() { -// $('ul.navbar-nav a').bind('click',function(){ -// $('ul.navbar-nav a').removeClass('active'); -// $(this).addClass('active'); -// }); -// }); diff --git a/dist/js/ranking_sorter.js b/dist/js/ranking_sorter.js deleted file mode 100644 index b0411cdd..00000000 --- a/dist/js/ranking_sorter.js +++ /dev/null @@ -1,18 +0,0 @@ -let rankingSorter = function (firstKey, secondKey) { - return function(a, b) { - if (a[firstKey] > b[firstKey]) { - return -1; - } else if (a[firstKey] < b[firstKey]) { - return 1; - } - else { - if (a[secondKey] > b[secondKey]) { - return 1; - } else if (a[secondKey] < b[secondKey]) { - return -1; - } else { - return 0; - } - } - } -} diff --git a/dist/js/sleep.js b/dist/js/sleep.js deleted file mode 100644 index c91054d9..00000000 --- a/dist/js/sleep.js +++ /dev/null @@ -1,4 +0,0 @@ -// sleep function -let sleep = ms => { - return new Promise(resolve => setTimeout(resolve, ms)); -}; diff --git a/dist/privacy.html b/dist/privacy.html deleted file mode 100644 index 3803aec4..00000000 --- a/dist/privacy.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - LizardByte | Privacy Policy - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - -
-

Welcome to our Privacy Policy

-

Your privacy is critically important to us.

-
- -

It is LizardByte's policy to respect your privacy regarding any information we may collect while - operating our website. This Privacy Policy applies to - https://app.lizardbyte.dev - (hereinafter, "us", "we", or "https://app.lizardbyte.dev"). We respect your privacy and are - committed to protecting personally identifiable information you may provide us through the - Website. We have adopted this privacy policy ("Privacy Policy") to explain what information may - be collected on our Website, how we use this information, and under what circumstances we may - disclose the information to third parties. This Privacy Policy applies only to information we - collect through the Website and does not apply to our collection of information from other - sources.

-

This Privacy Policy, together with the Terms of service posted on our Website, set forth the - general rules and policies governing your use of our Website. Depending on your activities when - visiting our Website, you may be required to agree to additional terms of service.

-
- -

Website Visitors

-

Like most website operators, LizardByte collects non-personally-identifying information of the - sort that web browsers and servers typically make available, such as the browser type, language - , referring site, and the date and time of each visitor request. LizardByte's purpose in - collecting non-personally identifying information is to better understand how LizardByte's - visitors use its website. From time to time, LizardByte may release non-personally-identifying - information in the aggregate, e.g., by publishing a report on trends in the usage of its - website.

-

LizardByte also collects potentially personally-identifying information like Internet Protocol - (IP) addresses for logged in users and for users leaving comments on https://app.lizardbyte.dev - blog posts. LizardByte only discloses logged in user and commenter IP addresses under the same - circumstances that it uses and discloses personally-identifying information as described - below.

-
- -

Security

-

The security of your Personal Information is important to us, but remember that no method of - transmission over the Internet, or method of electronic storage is 100% secure. While we strive - to use commercially acceptable means to protect your Personal Information, we cannot guarantee - its absolute security.

-
- -

Advertisements

-

Ads appearing on our website may be delivered to users by advertising partners, who may set - cookies. These cookies allow the ad server to recognize your computer each time they send you - an online advertisement to compile information about you or others who use your computer. This - information allows ad networks to, among other things, deliver targeted advertisements that - they believe will be of most interest to you. This Privacy Policy covers the use of cookies by - LizardByte and does not cover the use of cookies by any advertisers.

-
- -

Links To External Sites

-

Our Service may contain links to external sites that are not operated by us. If you click on a - third party link, you will be directed to that third party's site. We strongly advise you to - review the Privacy Policy and terms of service of every site you visit.

-

We have no control over, and assume no responsibility for the content, privacy policies or - practices of any third party sites, products or services.

-
- -

Aggregated Statistics

-

LizardByte may collect statistics about the behavior of visitors to its website. LizardByte may - display this information publicly or provide it to others. However, LizardByte does not - disclose your personally-identifying information.

-
- -

Cookies

-

To enrich and perfect your online experience, LizardByte uses "Cookies", similar technologies - and services provided by others to display personalized content, appropriate advertising and - store your preferences on your computer.

-

A cookie is a string of information that a website stores on a visitor's computer, and that the - visitor's browser provides to the website each time the visitor returns. LizardByte uses - cookies to help LizardByte identify and track visitors, their usage of - https://app.lizardbyte.dev, and their website access preferences. LizardByte visitors who do - not wish to have cookies placed on their computers should set their browsers to refuse cookies - before using LizardByte's websites, with the drawback that certain features of LizardByte's - websites may not function properly without the aid of cookies.

-

By continuing to navigate our website without changing your cookie settings, you hereby - acknowledge and agree to LizardByte's use of cookies.

-
- -

Privacy Policy Changes

-

Although most changes are likely to be minor, LizardByte may change its Privacy Policy from time - to time, and in LizardByte's sole discretion. LizardByte encourages visitors to frequently - check this page for any changes to its Privacy Policy. Your continued use of this site after - any change in this Privacy Policy will constitute your acceptance of such change.

-
-
-
- -
- - - - - - - - - - - diff --git a/dist/support.html b/dist/support.html deleted file mode 100644 index d978cc39..00000000 --- a/dist/support.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - LizardByte | Support - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
-
-
-
-
-
-

Need support?

-

First, read the documentation!

-
-
-
- - -
-
-
-

- -

-
-
- -

Read the Docs

-
-

- Select projects have the documentation hosted on Read the Docs. - Look for the icon paper on the project cards at our home page. -

-

- - Type: Documentation - -

- Read the docs -
-
-
- -
- -
-
-
-
-

Need more help?

-

Ask questions

-
-
-
- - -
-
-
-

- -

-
-
- -

Discord

-
-

- This is our preferred method of providing support! - Please read the rules, be courteous, and use the appropriate channel - when posting. -

-

- - Type: Primary Support - -

- Discord -
-
-
- - -
-
-
-

- -

-
-
- -

GitHub

-
-

- GitHub Discussions are available for support, feature requests, and general discourse. - Please DO NOT use GitHub issues to ask for support! -

-

- - Type: Primary Support - -

- GitHub -
-
-
- - -
-
-
-

- -

-
-
- -

Reddit

-
-

- For aliens only! Please read the rules, be courteous, and use the appropriate - flair when posting. Provide your logs when asking for help. -

-

- - Type: Community Support - -

- Reddit -
-
-
- - -
-
-
-

- -

-
-
- -

Facebook Group

-
-

- Our official Facebook group. This is best for simple questions. - Please read the rules, and be courteous when posting. -

-

- - Type: Community Support - -

- Facebook group -
-
-
- -
- -
-
-
- -
- - - - - - - - - - - diff --git a/dist/terms.html b/dist/terms.html deleted file mode 100644 index 4b47f8bc..00000000 --- a/dist/terms.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - LizardByte | Terms - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - -
-

Welcome to LizardByte

-

These terms of service outline the rules and regulations for the use of LizardByte's Website.

-
- -

By accessing this website we assume you accept these terms of service in full. Do not continue to - use LizardByte's website if you do not accept all the terms of service stated on this page.

-

The following terminology applies to these Terms of Service, Privacy Statement and Disclaimer Notice - and any or all Agreements: "Client", "You" and "Your" refers to you, the person accessing this - website and accepting the Company's terms of service. "The Company", "Ourselves", "We", "Our" and - "Us", refers to our Company. "Party", "Parties", or "Us", refers to both the Client and ourselves, - or either the Client or ourselves. All terms refer to the offer, acceptance and consideration of - payment necessary to undertake the process of our assistance to the Client in the most appropriate - manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose - of meeting the Client's needs in respect of provision of the Company's stated services/products, in - accordance with and subject to, prevailing law of . Any use of the above terminology or other words - in the singular, plural, capitalisation and/or he/she or they, are taken as interchangeable and - therefore as referring to same.

-
- -

Cookies

-

We employ the use of cookies. By using LizardByte's website you consent to the use of cookies - in accordance with LizardByte's privacy policy.

-

Most of the modern day interactive websites use cookies to enable us to retrieve user details for - each visit. Cookies are used in some areas of our site to enable the functionality of this area and - ease of use for those people visiting. Some of our affiliate / advertising partners may also use - cookies.

-
- -

License

-

Unless otherwise stated, LizardByte and/or it's licensors own the intellectual property rights for - all material on LizardByte. All intellectual property rights are reserved. You may view and/or print - pages from https://app.lizardbyte.dev for your own personal use subject to restrictions set in these - terms of service.

-

You must not:

-
    -
  1. Republish material from https://app.lizardbyte.dev
  2. -
  3. Sell, rent or sublicense material from https://app.lizardbyte.dev
  4. -
  5. Reproduce, duplicate or copy material from https://app.lizardbyte.dev
  6. -
-

Redistribute content from LizardByte (unless content is specifically made for redistribution).

-
- -

User Comments

-
    -
  1. This Agreement shall begin on the date hereof.
  2. -
  3. Certain parts of this website offer the opportunity for users to post and exchange opinions, - information, material and data ('Comments') in areas of the website. LizardByte does not - screen, edit, publish or review Comments prior to their appearance on the website and Comments - do not reflect the views or opinions ofLizardByte, its agents or affiliates. Comments reflect - the view and opinion of the person who posts such view or opinion. To the extent permitted by - applicable laws LizardByte shall not be responsible or liable for the Comments or for any loss - cost, liability, damages or expenses caused and or suffered as a result of any use of and/or - posting of and/or appearance of the Comments on this website.
  4. -
  5. LizardByte reserves the right to monitor all Comments and to remove any Comments which it - considers in its absolute discretion to be inappropriate, offensive or otherwise in breach of - these Terms of Service.
  6. -
  7. You warrant and represent that: -
      -
    1. You are entitled to post the Comments on our website and have all necessary licenses - and consents to do so;
    2. -
    3. The Comments do not infringe any intellectual property right, including without - limitation copyright, patent or trademark, or other proprietary right of any third - party;
    4. -
    5. The Comments do not contain any defamatory, libelous, offensive, indecent or otherwise - unlawful material or material which is an invasion of privacy
    6. -
    7. The Comments will not be used to solicit or promote business or custom or present - commercial activities or unlawful activity.
    8. -
    -
  8. -
  9. You hereby grant to LizardByte a non-exclusive royalty-free license to use, - reproduce, edit and authorize others to use, reproduce and edit any of your Comments in any and - all forms, formats or media.
  10. -
-
- -

Iframes

-

Without prior approval and express written permission, you may not create frames around our Web - pages or use other techniques that alter in any way the visual presentation or appearance of our - Website.

-
- -

Reservation of Rights

-

We reserve the right at any time and in its sole discretion to request that you remove all links or - any particular link to our Website. You agree to immediately remove all links to our Website upon - such request. We also reserve the right to amend these terms of service and its linking policy at - any time. By continuing to link to our Website, you agree to be bound to and abide by these - linking terms of service.

-
- -

Removal of links from our website

-

If you find any link on our Website or any linked website objectionable for any reason, you may - contact us about this. We will consider requests to remove links but will have no obligation to do - so or to respond directly to you.

-

Whilst we endeavour to ensure that the information on this website is correct, we do not warrant its - completeness or accuracy; nor do we commit to ensuring that the website remains available or that - the material on the website is kept up to date.

-
- -

Content Liability

-

We shall have no responsibility or liability for any content appearing on your Website. You agree - to indemnify and defend us against all claims arising out of or based upon your Website. No link(s) - may appear on any page on your Website or within any context containing content or materials that - may be interpreted as libelous, obscene or criminal, or which infringes, otherwise violates, or - advocates the infringement or other violation of, any third party rights.

-
- -

Disclaimer

-

To the maximum extent permitted by applicable law, we exclude all representations, warranties and - conditions relating to our website and the use of this website (including, without limitation, any - warranties implied by law in respect of satisfactory quality, fitness for purpose and/or the use of - reasonable care and skill). Nothing in this disclaimer will:

-
    -
  1. limit or exclude our or your liability for death or personal injury resulting from negligence;
  2. -
  3. limit or exclude our or your liability for fraud or fraudulent misrepresentation;
  4. -
  5. limit any of our or your liabilities in any way that is not permitted under applicable law; or
  6. -
  7. exclude any of our or your liabilities that may not be excluded under applicable law.
  8. -
-

The limitations and exclusions of liability set out in this Section and elsewhere in this - disclaimer: (a) are subject to the preceding paragraph; and (b) govern all liabilities arising - under the disclaimer or in relation to the subject matter of this disclaimer, including liabilities - arising in contract, in tort (including negligence) and for breach of statutory duty.

-

To the extent that the website and the information and services on the website are provided free of - charge, we will not be liable for any loss or damage of any nature.

-
-
-
- -
- - - - - - - - - - - diff --git a/dist/assets/images/favicon.ico b/favicon.ico similarity index 100% rename from dist/assets/images/favicon.ico rename to favicon.ico diff --git a/feed.xml b/feed.xml new file mode 100644 index 00000000..527816ea --- /dev/null +++ b/feed.xml @@ -0,0 +1,29 @@ +--- +layout: null +--- + + + + {% if site.title %} + {{ site.title | xml_escape }} + {% endif %} + {% if site.rss-description %} + {{ site.rss-description | xml_escape }} + {% endif %} + {{ '/' | absolute_url }} + + {% assign excerpt_length = site.excerpt_length | default: 50 %} + {% for post in site.posts limit:20 %} + + {{ post.title | strip_html | xml_escape }} + + {% if post.subtitle %}{{ post.subtitle | strip_html | xml_escape }} - {% endif %} + {{ post.content | strip_html | xml_escape | truncatewords: excerpt_length }} + + {{ post.date | date: "%a, %d %b %Y %H:%M:%S %z" }} + {{ post.url | absolute_url }} + {{ post.url | absolute_url }} + + {% endfor %} + + diff --git a/feedback.html b/feedback.html new file mode 100644 index 00000000..ba0ff9a2 --- /dev/null +++ b/feedback.html @@ -0,0 +1,15 @@ +--- +layout: page +full-width: true +--- + +
+ +
diff --git a/index.html b/index.html new file mode 100644 index 00000000..50b75885 --- /dev/null +++ b/index.html @@ -0,0 +1,84 @@ +--- +layout: page +title: LizardByte +subtitle: Discover the world of self-hosted cloud gaming! +full-width: true +after-content: + - donate.html + - support.html +cover-img: + - /assets/img/banners/AdobeStock_465916245_1920x1080.jpg + - /assets/img/banners/AdobeStock_306976163_1920x1280.jpg + - /assets/img/banners/AdobeStock_372471479_1920x1280.jpg +ext-js: + - https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js + - https://cdn.jsdelivr.net/npm/@lizardbyte/shared-web@2024.921.191855/dist/format-number.js + - https://cdn.jsdelivr.net/npm/@lizardbyte/shared-web@2024.921.191855/dist/ranking-sorter.js +js: + - /assets/js/projects.js +--- + + +
+
+
+

About us

+
+
+
+
+ +
+

Open source

+

All of our projects are open source.

+
+
+
+ +
+

Free

+

Free to use software.

+
+
+
+ +
+

Community

+

+ We are community oriented and our projects are driven by the community.

+
+
+
+ +
+

Continuous Improvement

+

We are committed to improving our products.

+
+
+
+
+
+
+ + +
+
+
+
+
+

Projects

+

Check out our most popular projects!

+
+
+
+
+ + +
+
diff --git a/package.json b/package.json deleted file mode 100644 index de4df689..00000000 --- a/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "dependencies": { - "@fortawesome/fontawesome-free": "6.6.0", - "bootstrap": "5.3.3", - "jquery": "3.7.1" - } -} diff --git a/privacy.md b/privacy.md new file mode 100644 index 00000000..1a740689 --- /dev/null +++ b/privacy.md @@ -0,0 +1,87 @@ +--- +layout: page +title: LizardByte | Privacy +--- + + + + +# Welcome to our Privacy Policy + +### Your privacy is critically important to us. + +It is LizardByte's policy to respect your privacy regarding any information we may collect while operating our website. +This Privacy Policy applies to [https://app.lizardbyte.dev](https://app.lizardbyte.dev) +(hereinafter, "us", "we", or "https://app.lizardbyte.dev"). We respect your privacy and are committed to protecting +personally identifiable information you may provide us through the Website. We have adopted this privacy policy +("Privacy Policy") to explain what information may be collected on our Website, how we use this information, and under +what circumstances we may disclose the information to third parties. This Privacy Policy applies only to information we +collect through the Website and does not apply to our collection of information from other sources. + +This Privacy Policy, together with the Terms of service posted on our Website, set forth the general rules and policies +governing your use of our Website. Depending on your activities when visiting our Website, you may be required to agree +to additional terms of service. + +## Website Visitors + +Like most website operators, LizardByte collects non-personally-identifying information of the sort that web browsers +and servers typically make available, such as the browser type, language, referring site, and the date and time of each +visitor request. LizardByte's purpose in collecting non-personally identifying information is to better understand how +LizardByte's visitors use its website. From time to time, LizardByte may release non-personally-identifying +information in the aggregate, e.g., by publishing a report on trends in the usage of its website. + +LizardByte also collects potentially personally-identifying information like Internet Protocol (IP) addresses for +logged in users and for users leaving comments on https://app.lizardbyte.dev blog posts. LizardByte only discloses +logged in user and commenter IP addresses under the same circumstances that it uses and discloses personally-identifying +information as described below. + +## Security + +The security of your Personal Information is important to us, but remember that no method of transmission over the +Internet, or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to +protect your Personal Information, we cannot guarantee its absolute security. + +## Advertisements + +Ads appearing on our website may be delivered to users by advertising partners, who may set cookies. These cookies +allow the ad server to recognize your computer each time they send you an online advertisement to compile information +about you or others who use your computer. This information allows ad networks to, among other things, deliver targeted +advertisements that they believe will be of most interest to you. This Privacy Policy covers the use of cookies by +LizardByte and does not cover the use of cookies by any advertisers. + +## Links To External Sites + +Our Service may contain links to external sites that are not operated by us. If you click on a third party link, you +will be directed to that third party's site. We strongly advise you to review the Privacy Policy and terms of service +of every site you visit. + +We have no control over, and assume no responsibility for the content, privacy policies or practices of any third party +sites, products or services. + +## Aggregated Statistics + +LizardByte may collect statistics about the behavior of visitors to its website. LizardByte may display this +information publicly or provide it to others. However, LizardByte does not disclose your personally-identifying +information. + +## Cookies + +To enrich and perfect your online experience, LizardByte uses "Cookies", similar technologies and services provided +by others to display personalized content, appropriate advertising and store your preferences on your computer. + +A cookie is a string of information that a website stores on a visitor's computer, and that the visitor's browser +provides to the website each time the visitor returns. LizardByte uses cookies to help LizardByte identify and track +visitors, their usage of https://app.lizardbyte.dev, and their website access preferences. LizardByte visitors who do +not wish to have cookies placed on their computers should set their browsers to refuse cookies before using +LizardByte's websites, with the drawback that certain features of LizardByte's websites may not function properly +without the aid of cookies. + +By continuing to navigate our website without changing your cookie settings, you hereby acknowledge and agree to +LizardByte's use of cookies. + +## Privacy Policy Changes + +Although most changes are likely to be minor, LizardByte may change its Privacy Policy from time to time, and in +LizardByte's sole discretion. LizardByte encourages visitors to frequently check this page for any changes to its +Privacy Policy. Your continued use of this site after any change in this Privacy Policy will constitute your acceptance +of such change. diff --git a/support.html b/support.html new file mode 100644 index 00000000..2187ac3b --- /dev/null +++ b/support.html @@ -0,0 +1,191 @@ +--- +layout: page +full-width: true +--- + +
+ +
+
+
+

Need support?

+

First, read the documentation!

+
+
+
+ + +
+ +
+
+

+ +

+
+ +
+ +

Read the Docs

+
+

+ Select projects have the documentation hosted on Read the Docs. + Look for the icon paper on the project cards at our home page. +

+

+ + Type: Documentation + +

+ Read the docs +
+
+
+ +
+ +
+ +
+
+
+

Need more help?

+

Ask questions

+
+
+
+ + +
+ +
+
+

+ +

+
+ +
+ +

Discord

+
+

+ This is our preferred method of providing support! + Please read the rules, be courteous, and use the appropriate channel + when posting. +

+

+ + Type: Primary Support + +

+ Discord +
+
+
+ + +
+ +
+
+

+ +

+
+ +
+ +

GitHub

+
+

+ GitHub Discussions are available for support, feature requests, and general discourse. + Please DO NOT use GitHub issues to ask for support! +

+

+ + Type: Primary Support + +

+ GitHub +
+
+
+ + +
+ +
+
+

+ +

+
+ +
+ +

Reddit

+
+

+ For aliens only! Please read the rules, be courteous, and use the appropriate + flair when posting. Provide your logs when asking for help. +

+

+ + Type: Community Support + +

+ Reddit +
+
+
+ + +
+
+
+

+ +

+
+ +
+ +

Facebook Group

+
+

+ Our official Facebook group. This is best for simple questions. + Please read the rules, and be courteous when posting. +

+

+ + Type: Community Support + +

+ Facebook group +
+
+
+ +
diff --git a/tags.html b/tags.html new file mode 100644 index 00000000..d9fc6e61 --- /dev/null +++ b/tags.html @@ -0,0 +1,38 @@ +--- +layout: page +title: 'Blog Index' +css: + - "/assets/css/show-search.css" +--- + +{% assign date_format = site.date_format | default: "%B %-d, %Y" %} + +{%- capture site_tags -%} + {%- for tag in site.tags -%} + {{- tag | first -}}{%- unless forloop.last -%},{%- endunless -%} + {%- endfor -%} +{%- endcapture -%} +{%- assign tags_list = site_tags | split:',' | sort -%} + +{%- for tag in tags_list -%} +  {{- tag -}} ({{site.tags[tag].size}}) +{%- endfor -%} + +
+{%- for tag in tags_list -%} +

+ +  {{- tag -}} ({{site.tags[tag].size}}) +

+
+ {%- for post in site.tags[tag] -%} +
+ {{- post.title | strip_html -}} + +
+ {%- endfor -%} +
+{%- endfor -%} +
diff --git a/terms.md b/terms.md new file mode 100644 index 00000000..b1c015d0 --- /dev/null +++ b/terms.md @@ -0,0 +1,120 @@ +--- +layout: page +title: LizardByte | Terms +--- + + + + +# Welcome to LizardByte + +These terms of service outline the rules and regulations for the use of LizardByte's Website. + +By accessing this website we assume you accept these terms of service in full. Do not continue to use LizardByte's +website if you do not accept all the terms of service stated on this page. + +The following terminology applies to these Terms of Service, Privacy Statement and Disclaimer Notice and any or all +Agreements: "Client", "You" and "Your" refers to you, the person accessing this website and accepting the Company's +terms of service. "The Company", "Ourselves", "We", "Our" and "Us", refers to our Company. "Party", "Parties", or "Us", +refers to both the Client and ourselves, or either the Client or ourselves. All terms refer to the offer, acceptance +and consideration of payment necessary to undertake the process of our assistance to the Client in the most appropriate +manner, whether by formal meetings of a fixed duration, or any other means, for the express purpose of meeting the +Client's needs in respect of provision of the Company's stated services/products, in accordance with and subject to, +prevailing law of . Any use of the above terminology or other words in the singular, plural, capitalisation and/or +he/she or they, are taken as interchangeable and therefore as referring to same. + +## Cookies + +We employ the use of cookies. By using LizardByte's website you consent to the use of cookies in accordance with +LizardByte's privacy policy. + +Most of the modern day interactive websites use cookies to enable us to retrieve user details for each visit. Cookies +are used in some areas of our site to enable the functionality of this area and ease of use for those people visiting. +Some of our affiliate / advertising partners may also use cookies. + +## License + +Unless otherwise stated, LizardByte and/or it's licensors own the intellectual property rights for all material on +LizardByte. All intellectual property rights are reserved. You may view and/or print pages from +https://app.lizardbyte.dev for your own personal use subject to restrictions set in these terms of service. + +You must not: + +* Republish material from https://app.lizardbyte.dev +* Sell, rent or sublicense material from https://app.lizardbyte.dev +* Reproduce, duplicate or copy material from https://app.lizardbyte.dev + +Redistribute content from LizardByte (unless content is specifically made for redistribution). + +## User Comments + +* This Agreement shall begin on the date hereof. +* Certain parts of this website offer the opportunity for users to post and exchange opinions, information, material + and data ('Comments') in areas of the website. LizardByte does not screen, edit, publish or review Comments prior + to their appearance on the website and Comments do not reflect the views or opinions ofLizardByte, its agents or + affiliates. Comments reflect the view and opinion of the person who posts such view or opinion. To the extent + permitted by applicable laws LizardByte shall not be responsible or liable for the Comments or for any loss cost, + liability, damages or expenses caused and or suffered as a result of any use of and/or posting of and/or appearance + of the Comments on this website. +* LizardByte reserves the right to monitor all Comments and to remove any Comments which it considers in its absolute + discretion to be inappropriate, offensive or otherwise in breach of these Terms of Service. +* You warrant and represent that: + + - You are entitled to post the Comments on our website and have all necessary licenses and consents to do so; + - The Comments do not infringe any intellectual property right, including without limitation copyright, patent or + trademark, or other proprietary right of any third party; + - The Comments do not contain any defamatory, libelous, offensive, indecent or otherwise unlawful material or + material which is an invasion of privacy + - The Comments will not be used to solicit or promote business or custom or present commercial activities or + unlawful activity. + +* You hereby grant to LizardByte a non-exclusive royalty-free license to use, reproduce, edit and authorize others to + use, reproduce and edit any of your Comments in any and all forms, formats or media. + +## Iframes + +Without prior approval and express written permission, you may not create frames around our Web pages or use other +techniques that alter in any way the visual presentation or appearance of our Website. + +## Reservation of Rights + +We reserve the right at any time and in its sole discretion to request that you remove all links or any particular +link to our Website. You agree to immediately remove all links to our Website upon such request. We also reserve the +right to amend these terms of service and its linking policy at any time. By continuing to link to our Website, you +agree to be bound to and abide by these linking terms of service. + +## Removal of links from our website + +If you find any link on our Website or any linked website objectionable for any reason, you may contact us about this. +We will consider requests to remove links but will have no obligation to do so or to respond directly to you. + +Whilst we endeavour to ensure that the information on this website is correct, we do not warrant its completeness or +accuracy; nor do we commit to ensuring that the website remains available or that the material on the website is kept +up to date. + +## Content Liability + +We shall have no responsibility or liability for any content appearing on your Website. You agree to indemnify and +defend us against all claims arising out of or based upon your Website. No link(s) may appear on any page on your +Website or within any context containing content or materials that may be interpreted as libelous, obscene or criminal, +or which infringes, otherwise violates, or advocates the infringement or other violation of, any third party rights. + +## Disclaimer + +To the maximum extent permitted by applicable law, we exclude all representations, warranties and conditions relating +to our website and the use of this website (including, without limitation, any warranties implied by law in respect of +satisfactory quality, fitness for purpose and/or the use of reasonable care and skill). +Nothing in this disclaimer will: + +* limit or exclude our or your liability for death or personal injury resulting from negligence; +* limit or exclude our or your liability for fraud or fraudulent misrepresentation; +* limit any of our or your liabilities in any way that is not permitted under applicable law; or +* exclude any of our or your liabilities that may not be excluded under applicable law. + +The limitations and exclusions of liability set out in this Section and elsewhere in this disclaimer: (a) are subject +to the preceding paragraph; and (b) govern all liabilities arising under the disclaimer or in relation to the subject +matter of this disclaimer, including liabilities arising in contract, in tort (including negligence) and for breach +of statutory duty. + +To the extent that the website and the information and services on the website are provided free of charge, we will +not be liable for any loss or damage of any nature.