diff --git a/.github/workflows/check_links.yml b/.github/workflows/check_links.yml new file mode 100644 index 000000000..ca86c0937 --- /dev/null +++ b/.github/workflows/check_links.yml @@ -0,0 +1,33 @@ +name: check_links +on: + pull_request: + branches: + - main + push: + branches: + - main + # TODO: make this a cron action + # runs every monday at 9 am + # schedule: + # - cron: "0 9 * * 1" +permissions: read-all +jobs: + check-links: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.11'] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install tox + run: | + python3 -m pip install tox + - name: Run tests + env: + LANG: en_US.UTF-8 + run: | + tox -edocs diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..daf677a9f --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# Files to ignore by git. + +# Specific auto-generated build files +/.tox +/docs/index.rst +/dist diff --git a/build_index.sh b/build_index.sh new file mode 100755 index 000000000..01024919e --- /dev/null +++ b/build_index.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# +# Script to build an index.rst for sphinx-build -b linkcheck + +cat >docs/index.rst <|' >> index.rst) + diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 000000000..54aa418e1 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,57 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'ForensicsWiki' +copyright = '2023, ForensicsWiki authors' +author = 'ForensicsWiki authors' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['myst_parser'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + + +# -- Options for MyST-Parser ------------------------------------------------- + +# Level of headers to automatically generate label "slugs" (heading anchors). +myst_heading_anchors = 3 diff --git a/tox.ini b/tox.ini new file mode 100644 index 000000000..e814cf566 --- /dev/null +++ b/tox.ini @@ -0,0 +1,13 @@ +[tox] +envlist = docs + +[testenv:docs] +allowlist_externals = ./build_index.sh +skipsdist = true +skip_install = true +deps = + myst_parser + sphinx +commands = + ./build_index.sh + sphinx-build -b linkcheck docs dist