Merge branch 'link-check' into 'main'

Check links in CI with htmlcheck

See merge request lvra/lvra.gitlab.io!38
This commit is contained in:
hypevhs 2024-08-28 19:43:01 +00:00
commit 83fbc8c3d1
10 changed files with 55 additions and 59 deletions

3
.gitignore vendored
View file

@ -7,3 +7,6 @@ node_modules/
public/
resources/
.deploy*/
# htmltest
tmp/

View file

@ -1,28 +1,43 @@
variables:
GIT_SUBMODULE_STRATEGY: recursive
test-links:
image: python:latest
script:
- python3 ./test_links.py
## GitLab defaults to:
# stages:
# - build
# - test
# - deploy
test-trailing-spaces:
script:
- ./test_trailing_spaces.sh
test-build:
image: registry.gitlab.com/pages/hugo/hugo_extended
script:
- hugo
except:
- main
pages:
build-site:
stage: build
image: registry.gitlab.com/pages/hugo/hugo_extended
script:
- hugo
artifacts:
paths:
- public
- public
test-html:
stage: test
image:
name: wjdp/htmltest:latest
entrypoint: [""]
cache:
key: htmltest-cache
paths:
- tmp/
script:
- htmltest
test-trailing-spaces:
stage: test
needs: [] # ok to run before build-site
script:
- ./test_trailing_spaces.sh
# The GitLab Pages job must always be named "pages", and result in a "public" artifact.
# Our "public" artifact is created above, but GitLab jobs will fetch all artifacts from previous stages.
pages:
stage: deploy
script: ls -ld public
only:
- main
- main

11
.htmltest.yml Normal file
View file

@ -0,0 +1,11 @@
# https://github.com/wjdp/htmltest?tab=readme-ov-file#wrench-configuration
DirectoryPath: "public"
EnforceHTTPS: true
IgnoreURLs:
# - "example.com"
# - "^/misc/js/script.js$"
- "https://gitlab.com/lvra/lvra.gitlab.io/-/edit"
# IgnoreDirs:
# - "lib"
CacheExpires: "6h"

View file

@ -5,7 +5,7 @@ title: OpenSUSE Tumbleweed
# OpenSUSE Tumbleweed
**Packages:**
- The OpenXR SDK package can be found in the [hardware:xr](https://build.opensuse.org/package/show/hardware:xr/OpenXR-SDK) [Open Build service](https://en.opensuse.org/openSUSE:Build_Service_FAQ) project. To build [Envision](../fossvr/envision) profiles, the devel package will also have to be installed.
- The set of [Monado Vulkan Layers](../hardware) is provided by a [community package](https://build.opensuse.org/package/show/home:Etch-9:xr/monado-vulkan-layers-git).
- The OpenXR SDK package can be found in the [hardware:xr](https://build.opensuse.org/package/show/hardware:xr/OpenXR-SDK) [Open Build service](https://en.opensuse.org/openSUSE:Build_Service_FAQ) project. To build [Envision](/docs/fossvr/envision/) profiles, the devel package will also have to be installed.
- The set of [Monado Vulkan Layers](/docs/hardware/) is provided by a [community package](https://build.opensuse.org/package/show/home:Etch-9:xr/monado-vulkan-layers-git).
Any other package in hardware:xr is really outdated and should not be used. Additional information on third-party repositories can be found here: [Additional package repositories (opensuse.org)](https://en.opensuse.org/Additional_package_repositories)

View file

@ -28,7 +28,7 @@ SteamVR works like it does on other distros for the most part. Unfotrunately, if
[setcap doesn't work](https://github.com/NixOS/nixpkgs/issues/42117#issuecomment-996731579) but can be done manually.
## Envision
[Envision](../../fossvr/envision) has been packaged in [nixos unstable](https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=+envision) but is still in early development and is not recommended. It may also mess with your `monado.service` setup in unexpected ways.
[Envision](../../fossvr/envision/) has been packaged in [nixos unstable](https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=+envision) but is still in early development and is not recommended. It may also mess with your `monado.service` setup in unexpected ways.
## Community Overlays
[Nixpkgs-xr](https://github.com/nix-community/nixpkgs-xr) provides overlays for the exisiting nixpkgs. If the mainline packages are broken for you (whether it be compiling or in function) for any reason, adding this, as described in the readme, might help.

View file

@ -12,4 +12,4 @@ title: LÖVR
The LÖVR engine is a Lua XR engine, written in C, which supports overlays on monado. Very simple and fun to implement whatever you would like.
- [lovr-playspace](/docs/fossvr/lovr/lovr-playspace) A barebones room boundary built on the LÖVR engine.
- [lovr-playspace](/docs/fossvr/lovr/lovr-playspace/) A barebones room boundary built on the LÖVR engine.

View file

@ -5,7 +5,7 @@ title: SteamVR
# SteamVR
- [Quick start guide](/docs/steamvr/quick-start)
- [Quick start guide](/docs/steamvr/quick-start/)
The de facto standard for anything PCVR, SteamVR runs on Linux.

View file

@ -23,9 +23,9 @@ If you utilize pipewire as your audio server, VRChat has a tendancy to drop mult
Similar tuning of pulseaudio can fix the issue if encountered there.
Should the game prompt to exit the game upon an anticheat failure, simply try to load the game again until it works. [See EAC section](eac)
Should the game prompt to exit the game upon an anticheat failure, simply try to load the game again until it works. [See EAC section](eac/)
Given a [few caveats](video_players) most video players will work.
Given a [few caveats](video_players/) most video players will work.
VRChat drags quite a tangle of privacy concerns.
Please consider your opsec in relation to all VR API input including poses, all voice communication, unsandboxed code execution, the EAC anticheat system which occasionally probes system proc info and much more, and the game maintaining a memory buffered audio video recording of the window contents tied to the report system.

View file

@ -1,7 +1,7 @@
<hr style="margin: 48px 0">
<p>
&copy; <a target="_blank" href="https://gitlab.com/LVRA/lvra.gitlab.io/-/project_members">The <em>Linux VR Adventures</em> community contributors</a> &mdash;
This work is licensed under <a target="_blank" href="http://creativecommons.org/licenses/by-sa/4.0/">Attribution-ShareAlike 4.0 International</a>.
This work is licensed under <a target="_blank" href="https://creativecommons.org/licenses/by-sa/4.0/">Attribution-ShareAlike 4.0 International</a>.
</p>
<p>Made with <a target="_blank" href="https://gohugo.io/">Hugo</a> and the <a target="_blank" href="https://github.com/alex-shpak/hugo-book">Hugo Book Theme</a>.

View file

@ -1,33 +0,0 @@
#!/usr/bin/env python3
from pathlib import Path
import re
from typing import List
from os.path import exists
def get_all_markdown_files():
return Path("content").rglob("*.md")
def find_links(f: str) -> List[str]:
with open(f, "r") as fd:
content = fd.read()
return [
link.lstrip("]").strip("()") for link in re.findall(r"\]\(\/[\w\/]+\)", content)
]
def verify_link_exists(link: str) -> bool:
return exists(f"content{link}/_index.md") or exists(f'content{link.rstrip("/")}.md')
md_files = get_all_markdown_files()
res = 0
for f in md_files:
for link in find_links(f):
if not verify_link_exists(link):
print(f"E: {f}: {link} does not exist")
res = 1
exit(res)