diff --git a/.github/workflows/klipper3d-deploy.yaml b/.github/workflows/klipper3d-deploy.yaml
new file mode 100644
index 00000000..246209c8
--- /dev/null
+++ b/.github/workflows/klipper3d-deploy.yaml
@@ -0,0 +1,29 @@
+name: klipper3d deploy
+on:
+ push:
+ branches:
+ - master
+ paths:
+ - docs/**
+ - mkdocs.yml
+ - .github/workflows/klipper3d-deploy.yaml
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.8'
+ - uses: actions/cache@v2
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('docs/_klipper3d/mkdocs-requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install dependencies
+ run: pip install -r docs/_klipper3d/mkdocs-requirements.txt
+ - name: Build and deploy klipper3d
+ run: |
+ mkdocs gh-deploy --force --remote-branch gh-pages --verbose
diff --git a/docs/_config.yml b/docs/_config.yml
deleted file mode 100644
index 9daee3ca..00000000
--- a/docs/_config.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-# This is a Jekyll config file that is used by "github pages" to
-# produce the https://www.klipper3d.org/ website.
-include: CONTRIBUTING.md
-google_analytics: UA-138371409-1
diff --git a/docs/_klipper3d/css/extra.css b/docs/_klipper3d/css/extra.css
new file mode 100644
index 00000000..0bdfed47
--- /dev/null
+++ b/docs/_klipper3d/css/extra.css
@@ -0,0 +1,15 @@
+[data-md-color-scheme="slate"] {
+ --md-primary-fg-color: hsla(var(--md-hue),15%,12%,1);
+ --md-default-bg-color: hsla(var(--md-hue),17%,17%,1);
+ --md-typeset-a-color: steelblue;
+ --md-accent-fg-color: lightblue;
+}
+
+img {
+ background-color: white;
+}
+
+.center-image {
+ margin: 0 auto;
+ display: block;
+}
\ No newline at end of file
diff --git a/docs/_klipper3d/mkdocs-requirements.txt b/docs/_klipper3d/mkdocs-requirements.txt
new file mode 100644
index 00000000..6afd2723
--- /dev/null
+++ b/docs/_klipper3d/mkdocs-requirements.txt
@@ -0,0 +1,8 @@
+mkdocs==1.2.2
+mkdocs-material==7.2.0
+mkdocs-section-index==0.3.1
+mkdocs-simple-hooks==0.1.3
+mkdocs-exclude==1.0.2
+mdx-truly-sane-lists==1.2
+mdx-breakless-lists==1.0.1
+py-gfm==1.0.2
diff --git a/docs/_klipper3d/mkdocs_hooks.py b/docs/_klipper3d/mkdocs_hooks.py
new file mode 100644
index 00000000..5b122a1d
--- /dev/null
+++ b/docs/_klipper3d/mkdocs_hooks.py
@@ -0,0 +1,18 @@
+import re
+
+def transform(markdown: str, page, config, files):
+ in_list = False
+ lines = markdown.splitlines()
+ for i in range(len(lines)):
+ lines[i] = lines[i].replace('](../',
+ f"]({config['repo_url']}blob/master/")
+ lines[i] = re.sub(r"\\", "
", lines[i])
+ # check that lists at level 0 are not indented (no space before *|-|1.)
+ if len(lines[i]) == 0:
+ in_list = False
+ elif re.match(r"^(\*|-|\d+\.) ", lines[i]):
+ in_list = True
+ if not in_list:
+ lines[i] = re.sub(r"^\s+(\*|-|\d+\.) ", r"\1 ", lines[i])
+ output = "\n".join(lines)
+ return output
diff --git a/docs/_layouts/README b/docs/_layouts/README
deleted file mode 100644
index 266b60e4..00000000
--- a/docs/_layouts/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This directory defines the https://www.klipper3d.org/ website. The
-site is hosted using "github pages" (which uses Jekyll to
-automatically convert the markdown files in the docs/ directory to
-html). In addition to the files in this directory, the docs/CNAME and
-docs/_config.yml file also control the website generation.
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
deleted file mode 100644
index 5bbb3cca..00000000
--- a/docs/_layouts/default.html
+++ /dev/null
@@ -1,139 +0,0 @@
-
-
-
Klipper is a 3d-Printer firmware. It combines the power of a general -purpose computer with one or more micro-controllers. See the -features document for more information on why you -should use Klipper.
- -To begin using Klipper start by installing it.
- -Klipper is Free Software. Read the documentation or -view -the Klipper code on github.
diff --git a/docs/img/favicon.ico b/docs/img/favicon.ico new file mode 100644 index 00000000..fae28463 Binary files /dev/null and b/docs/img/favicon.ico differ diff --git a/docs/index.md b/docs/index.md index 4e221914..37eca645 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,5 @@ --- hide: - - navigation - toc title: Welcome --- diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..71ef4f29 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,119 @@ +site_name: Klipper documentation +theme: + name: material + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + primary: white + accent: blue + toggle: + icon: material/lightbulb + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: grey + accent: light blue + toggle: + icon: material/lightbulb-outline + name: Switch to light mode + # primary: white + # accent: blue + logo: img/klipper.svg + favicon: img/favicon.ico + icon: + repo: fontawesome/brands/github + features: + - navigation.instant + #- navigation.tabs + #- navigation.expand + - navigation.top + # if enabled, the TOC doesn't work for some pages + # - toc.integrate + - search.suggest + - search.highlight + - search.share +extra_css: + - _klipper3d/css/extra.css +repo_url: https://github.com/KevinOConnor/klipper +repo_name: KevinOConnor/klipper +edit_uri: blob/master/docs/ +plugins: + - search + - section-index + - mkdocs-simple-hooks: + hooks: + on_page_markdown: "docs._klipper3d.mkdocs_hooks:transform" + - exclude: + glob: + - README.md +markdown_extensions: + - toc: + permalink: True + toc_depth: 6 + #- pymdownx.snippets + - attr_list + - mdx_partial_gfm + - mdx_truly_sane_lists + - mdx_breakless_lists + +extra: + analytics: + # https://squidfunk.github.io/mkdocs-material/setup/setting-up-site-analytics/#site-search-tracking + provider: google + property: UA-138371409-1 + # version: + # provider: mike +nav: + - Overview: + - Overview.md + - Features.md + - FAQ.md + - Releases.md + - Config_Changes.md + - Contact.md + - Configuration and Tuning: + - Installation.md + - Configuration reference: + - Config_Reference.md + - Rotation_Distance.md + - Config_checks.md + - Bed level: + - Bed_Level.md + - Delta_Calibrate.md + - Probe_Calibrate.md + - BLTouch.md + - Manual_Level.md + - Bed_Mesh.md + - Endstop_Phase.md + - Resonance compensation: + - Resonance_Compensation.md + - Measuring_Resonances.md + - Pressure_Advance.md + - Slicers.md + - Command templates: + - Command_Templates.md + - Status_Reference.md + - TMC_Drivers.md + - skew_correction.md + - Using_PWM_Tools.md + - G-Codes.md + - Developer documentation: + - Code_Overview.md + - Kinematics.md + - Protocol.md + - API_Server.md + - MCU_Commands.md + - CANBUS_protocol.md + - Debugging.md + - Benchmarks.md + - CONTRIBUTING.md + - Packaging.md + - Device specific documents: + - Example_Configs.md + - SDCard_Updates.md + - RPi_microcontroller.md + - beaglebone.md + - Bootloaders.md + - CANBUS.md + - TSL1401CL_Filament_Width_Sensor.md + - HallFilamentWidthSensor.md