Compare commits

..

23 Commits

Author SHA1 Message Date
Jack Humbert 711e8b968b Merge branch 'docusaurus' of github.com:qmk/qmk_firmware into docusaurus 2023-05-02 18:44:10 -04:00
Jack Humbert 3c10cf81ee some deploy details 2023-05-02 18:43:56 -04:00
Nick Brassel e28bc93a0c Migrate other usages of :id=... 2023-05-01 17:46:18 +10:00
Nick Brassel 6d53f61608 Merge remote-tracking branch 'upstream/master' into docusaurus 2023-05-01 17:26:43 +10:00
Nick Brassel d154237847 Remove moxygen install from workflow. 2023-05-01 17:25:53 +10:00
Nick Brassel 6e2d02852c Safety checks for required apps. 2023-05-01 17:23:46 +10:00
Nick Brassel bdcf3c69c9 python formatting 2023-05-01 17:13:55 +10:00
Nick Brassel 37fcefb0e8 Missing file. 2023-05-01 17:13:17 +10:00
Nick Brassel 21e231ef48 Move docs build to builddefs. 2023-05-01 17:12:58 +10:00
Nick Brassel 708d7f03b4 Remove search shortcut, increase search limit. 2023-05-01 16:03:26 +10:00
Nick Brassel d9cf993f1c Add search box. 2023-05-01 15:48:46 +10:00
Jack Humbert f2d4dace06 try serving doxygen staticly 2023-04-20 12:15:44 -04:00
Jack Humbert 9dc53f6cd2 Merge branch 'master' into docusaurus 2023-04-20 10:33:26 -04:00
Jack Humbert 7ce0874617 Merge branch 'master' into docusaurus 2023-04-19 15:11:12 -04:00
Jack Humbert fc5eb10822 resolve all links, update internals 2023-04-19 15:09:25 -04:00
Jack Humbert db9f5c6013 add docsify forwarder & redirects 2023-04-19 12:59:34 -04:00
Jack Humbert fff2249a7c more sidebar labels 2023-04-19 10:31:32 -04:00
Jack Humbert f48a88fc72 add images & basic style 2023-04-18 22:00:59 -04:00
Jack Humbert 29f2e9f19a update github workflow for docusaurus 2023-04-18 19:50:04 -04:00
Jack Humbert d2c755c3dd autogen internals list 2023-04-18 17:22:06 -04:00
Jack Humbert 40a4ee5114 add remaining, convert tabs 2023-04-18 16:26:49 -04:00
Jack Humbert bb8c5cd54a half of summary added 2023-04-18 13:44:25 -04:00
Jack Humbert 2cef3465e8 add docusaurus, convert notes/tips, ids 2023-04-18 12:35:09 -04:00
14240 changed files with 511312 additions and 525609 deletions
-4
View File
@@ -1,4 +0,0 @@
CompileFlags:
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
Remove: [-W*, -mcall-prologues]
Compiler: clang
+1 -1
View File
@@ -19,7 +19,7 @@ on:
jobs:
api_data:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
# protect against those who work in their fork on 'important' branches
if: github.repository == 'qmk/qmk_firmware'
+1 -2
View File
@@ -4,7 +4,6 @@ permissions:
contents: write
on:
workflow_dispatch:
push:
branches:
- master
@@ -32,7 +31,7 @@ jobs:
fetch-depth: 0
- name: Bump version and push tag
uses: anothrNick/github-tag-action@1.66.0
uses: anothrNick/github-tag-action@1.62.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BUMP: 'patch'
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
matrix:
keymap: [default, via]
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
test:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
+9 -5
View File
@@ -17,7 +17,7 @@ on:
jobs:
generate:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
# protect against those who develop with their fork on master
if: github.repository == 'qmk/qmk_firmware'
@@ -27,20 +27,24 @@ jobs:
with:
fetch-depth: 1
- uses: actions/setup-node@v3
with:
node-version: 16
cache: npm
- name: Install dependencies
run: |
apt-get update && apt-get install -y rsync nodejs npm doxygen
npm install -g moxygen
- name: Build docs
- name: Build doxygen docs
run: |
qmk --verbose generate-docs
- name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.4.2
uses: JamesIves/github-pages-deploy-action@v4.4.1
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BASE_BRANCH: master
BRANCH: gh-pages
FOLDER: .build/docs
FOLDER: .build/docs/build
GIT_CONFIG_EMAIL: hello@qmk.fm
+2 -2
View File
@@ -19,7 +19,7 @@ jobs:
lint:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
@@ -35,7 +35,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v36
uses: tj-actions/changed-files@v35
- name: Run qmk formatters
shell: 'bash {0}'
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
lint:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
+2 -2
View File
@@ -12,7 +12,7 @@ jobs:
lint:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
@@ -27,7 +27,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v36
uses: tj-actions/changed-files@v35
- name: Print info
run: |
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
regen:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
regen:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- name: Disable safe.directory check
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
test:
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
container: qmkfm/qmk_cli
steps:
- uses: actions/checkout@v3
+1
View File
@@ -48,6 +48,7 @@ quantum/version.h
.idea/
.project
.settings/
.vagrant/
# ?
.dep
+4 -3
View File
@@ -1,10 +1,11 @@
// Suggested extensions
{
"recommendations": [
"EditorConfig.EditorConfig",
"editorconfig.editorconfig",
"xaver.clang-format",
"llvm-vs-code-extensions.vscode-clangd",
"ms-vscode.cpptools",
"bierner.github-markdown-preview",
"donjayamanne.git-extension-pack"
"donjayamanne.git-extension-pack",
"kevgo.vscode-markdown-ide"
]
}
+2 -5
View File
@@ -26,9 +26,6 @@
},
"python.formatting.provider": "yapf",
"[json]": {
"editor.formatOnSave": false
},
"clangd.arguments": [
"--header-insertion=never"
]
"editor.formatOnSave": false
}
}
+6
View File
@@ -0,0 +1,6 @@
FROM qmkfm/qmk_cli
VOLUME /qmk_firmware
WORKDIR /qmk_firmware
CMD qmk compile -kb all -km default
+10 -3
View File
@@ -21,7 +21,7 @@ DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "QMK Firmware"
PROJECT_NUMBER = https://github.com/qmk/qmk_firmware
PROJECT_BRIEF = "Keyboard controller firmware for Atmel AVR and ARM USB families"
OUTPUT_DIRECTORY = .build/doxygen
OUTPUT_DIRECTORY = docs/static
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
@@ -183,7 +183,7 @@ IGNORE_PREFIX =
# Configuration options related to disabled outputs
#---------------------------------------------------------------------------
GENERATE_HTML = NO
GENERATE_HTML = YES
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_MAN = NO
@@ -191,11 +191,18 @@ GENERATE_DOCBOOK = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
HTML_OUTPUT = doxygen
# HTML_FILE_EXTENSION =
#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = YES
GENERATE_XML = NO
XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
Vendored
+95
View File
@@ -0,0 +1,95 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
# define a name instead of just 'default'
config.vm.define "qmk_firmware"
# VMware/Virtualbox ( and also Hyperv/Parallels) 64 bit
config.vm.box = "generic/debian10"
config.vm.synced_folder '.', '/vagrant'
# This section allows you to customize the Virtualbox VM
# settings, ie showing the GUI or upping the memory
# or cores if desired
config.vm.provider "virtualbox" do |vb|
# Hide the VirtualBox GUI when booting the machine
vb.gui = false
# Uncomment the below lines if you want to program
# your Teensy via the VM rather than your host OS
#vb.customize ['modifyvm', :id, '--usb', 'on']
#vb.customize ['usbfilter', 'add', '0',
# '--target', :id,
# '--name', 'teensy',
# '--vendorid', '0x16c0',
# '--productid','0x0478'
# ]
# Customize the amount of memory on the VM:
vb.memory = "512"
# Uncomment the below lines if you have time sync
# issues with make and incremental builds
#vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ]
end
# This section allows you to customize the VMware VM
# settings, ie showing the GUI or upping the memory
# or cores if desired
config.vm.provider "vmware_workstation" do |vmw|
# Hide the VMware GUI when booting the machine
vmw.gui = false
# Customize the amount of memory on the VM:
vmw.memory = "512"
end
config.vm.provider "vmware_fusion" do |vmf|
# Hide the vmfare GUI when booting the machine
vmf.gui = false
# Customize the amount of memory on the VM:
vmf.memory = "512"
end
# Docker provider pulls from hub.docker.com respecting docker.image if
# config.vm.box is nil. In this case, we adhoc build util/vagrant/Dockerfile.
# Note that this bind-mounts from the current dir to
# /vagrant in the guest, so unless your UID is 1000 to match vagrant in the
# image, you'll need to: chmod -R a+rw .
config.vm.provider "docker" do |docker, override|
override.vm.box = nil
docker.build_dir = "util/vagrant"
docker.has_ssh = true
end
# Unless we are running the docker container directly
# 1. run container detached on vm
# 2. attach on 'vagrant ssh'
["virtualbox", "vmware_workstation", "vmware_fusion"].each do |type|
config.vm.provider type do |virt, override|
override.vm.provision "docker" do |d|
d.run "qmkfm/qmk_cli",
cmd: "tail -f /dev/null",
args: "--privileged -v /dev:/dev -v '/vagrant:/vagrant'"
end
override.vm.provision "shell", inline: <<-SHELL
echo 'docker restart qmkfm-qmk_cli && exec docker exec -it qmkfm-qmk_cli /bin/bash -l' >> ~vagrant/.bashrc
SHELL
end
end
config.vm.post_up_message = <<-EOT
Log into the environment using 'vagrant ssh'. QMK directory synchronized with
host is located at /vagrant
To compile the .hex files use make command inside this directory, e.g.
cd /vagrant
make <keyboard>:default
Examples:
make planck/rev4:default:dfu
make planck/rev4:default
EOT
end
-17
View File
@@ -343,15 +343,6 @@ $(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.c $(KEYBOARD_OUTPUT)/src/default_keyboard.h
generated-files: $(KEYMAP_OUTPUT)/src/info_deps.d
$(KEYMAP_OUTPUT)/src/info_deps.d:
@$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD)
$(eval CMD=$(QMK_BIN) generate-make-dependencies -kb $(KEYBOARD) -km $(KEYMAP) -o $(KEYMAP_OUTPUT)/src/info_deps.d)
@$(BUILD_CMD)
-include $(KEYMAP_OUTPUT)/src/info_deps.d
.INTERMEDIATE : generated-files
# Userspace setup and definitions
@@ -455,14 +446,6 @@ $(eval $(call add_qmk_prefix_defs,MCU_FAMILY,MCU_FAMILY))
$(eval $(call add_qmk_prefix_defs,MCU_SERIES,MCU_SERIES))
$(eval $(call add_qmk_prefix_defs,BOARD,BOARD))
# Control whether intermediate file listings are generated
# e.g.:
# make handwired/onekey/blackpill_f411:default KEEP_INTERMEDIATES=yes
# cat .build/obj_handwired_onekey_blackpill_f411_default/quantum/quantum.i | sed -e 's@^#.*@@g' -e 's@^\s*//.*@@g' -e '/^\s*$/d' | clang-format
ifeq ($(strip $(KEEP_INTERMEDIATES)), yes)
OPT_DEFS += -save-temps=obj
endif
# TODO: remove this bodge?
PROJECT_DEFS := $(OPT_DEFS)
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(KEYBOARD_PATHS)
-4
View File
@@ -75,10 +75,6 @@ $(TEST)_SRC += \
tests/test_common/main.cpp \
$(QUANTUM_PATH)/logging/print.c
ifneq ($(strip $(INTROSPECTION_KEYMAP_C)),)
$(TEST)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\"
endif
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
+21 -37
View File
@@ -134,7 +134,7 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/mousekey.c
endif
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom
VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3360 pmw3389 pimoroni_trackball custom
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type)
@@ -213,10 +213,10 @@ else
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_LEGACY_EMULATED_FLASH
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_STM32_FLASH_EMULATED
COMMON_VPATH += $(PLATFORM_PATH)/$(PLATFORM_KEY)/$(DRIVER_DIR)/flash
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += eeprom_driver.c eeprom_legacy_emulated_flash.c legacy_flash_ops.c
SRC += eeprom_driver.c eeprom_stm32.c flash_stm32.c
else ifeq ($(strip $(EEPROM_DRIVER)), transient)
# Transient EEPROM implementation -- no data storage but provides runtime area for it
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_TRANSIENT
@@ -419,7 +419,7 @@ endif
RGB_MATRIX_ENABLE ?= no
VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3736 IS31FL3737 IS31FL3741 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A CKLED2001 WS2812 custom
VALID_RGB_MATRIX_TYPES := AW20216 IS31FL3731 IS31FL3733 IS31FL3737 IS31FL3741 IS31FL3742A IS31FL3743A IS31FL3745 IS31FL3746A CKLED2001 WS2812 custom
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
@@ -460,13 +460,6 @@ endif
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3736)
OPT_DEFS += -DIS31FL3736 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3736.c
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), IS31FL3737)
OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
COMMON_VPATH += $(DRIVER_PATH)/led/issi
@@ -581,7 +574,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
endif
endif
VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor
VALID_WS2812_DRIVER_TYPES := bitbang pwm spi i2c vendor
WS2812_DRIVER ?= bitbang
ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
@@ -591,11 +584,15 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(WS2812_DRIVER)), bitbang)
SRC += ws2812.c
else
SRC += ws2812_$(strip $(WS2812_DRIVER)).c
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm)
OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
ifeq ($(strip $(PLATFORM)), CHIBIOS)
ifeq ($(strip $(WS2812_DRIVER)), pwm)
OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
endif
endif
endif
@@ -744,28 +741,17 @@ endif
VALID_OLED_DRIVER_TYPES := SSD1306 custom
OLED_DRIVER ?= SSD1306
VALID_OLED_TRANSPORT_TYPES := i2c spi custom
OLED_TRANSPORT ?= i2c
ifeq ($(strip $(OLED_ENABLE)), yes)
ifeq ($(filter $(OLED_DRIVER),$(VALID_OLED_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid OLED_DRIVER,OLED_DRIVER="$(OLED_DRIVER)" is not a valid OLED driver)
else
ifeq ($(filter $(OLED_TRANSPORT),$(VALID_OLED_TRANSPORT_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid OLED_TRANSPORT,OLED_TRANSPORT="$(OLED_TRANSPORT)" is not a valid OLED transport)
else
OPT_DEFS += -DOLED_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled
ifneq ($(strip $(OLED_DRIVER)), custom)
SRC += oled_driver.c
endif
OPT_DEFS += -DOLED_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled
OPT_DEFS += -DOLED_TRANSPORT_$(strip $(shell echo $(OLED_TRANSPORT) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(OLED_TRANSPORT)), i2c)
QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(OLED_TRANSPORT)), spi)
QUANTUM_LIB_SRC += spi_master.c
endif
OPT_DEFS += -DOLED_DRIVER_$(strip $(shell echo $(OLED_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(OLED_DRIVER)), SSD1306)
SRC += ssd1306_sh1106.c
QUANTUM_LIB_SRC += i2c_master.c
endif
endif
endif
@@ -827,9 +813,9 @@ endif
ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes)
PS2_ENABLE := yes
MOUSE_ENABLE := yes
SRC += ps2_mouse.c
OPT_DEFS += -DPS2_MOUSE_ENABLE
OPT_DEFS += -DMOUSE_ENABLE
endif
VALID_PS2_DRIVER_TYPES := busywait interrupt usart vendor
@@ -906,11 +892,10 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
OPT_DEFS += -DBLUETOOTH_ENABLE
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c
SRC += outputselect.c bluetooth.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), BluefruitLE)
OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
QUANTUM_LIB_SRC += analog.c
QUANTUM_LIB_SRC += spi_master.c
@@ -918,7 +903,6 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
ifeq ($(strip $(BLUETOOTH_DRIVER)), RN42)
OPT_DEFS += -DBLUETOOTH_RN42 -DHAL_USE_SERIAL=TRUE
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/rn42.c
QUANTUM_LIB_SRC += uart.c
endif
+1 -2
View File
@@ -152,7 +152,6 @@ endif
# To produce a UF2 file in your build, add to your keyboard's rules.mk:
# FIRMWARE_FORMAT = uf2
UF2CONV = $(TOP_DIR)/util/uf2conv.py
UF2CONV_ARGS ?=
UF2_FAMILY ?= 0x0
# Compiler flags to generate dependency files.
@@ -220,7 +219,7 @@ gccversion :
@$(BUILD_CMD)
%.uf2: %.elf
$(eval CMD=$(HEX) $< $(BUILD_DIR)/$(TARGET).tmp && $(UF2CONV) $(UF2CONV_ARGS) $(BUILD_DIR)/$(TARGET).tmp --output $@ --convert --family $(UF2_FAMILY) >/dev/null 2>&1)
$(eval CMD=$(HEX) $< $(BUILD_DIR)/$(TARGET).tmp && $(UF2CONV) $(BUILD_DIR)/$(TARGET).tmp --output $@ --convert --family $(UF2_FAMILY) >/dev/null 2>&1)
#@$(SILENT) || printf "$(MSG_EXECUTING) '$(CMD)':\n"
@$(SILENT) || printf "$(MSG_UF2) $@" | $(AWK_CMD)
@$(BUILD_CMD)
+3 -8
View File
@@ -7,12 +7,7 @@ endif
# TODO: opt in rather than assume everything uses a pro micro
PIN_COMPATIBLE ?= promicro
# Remove whitespace from any rule.mk provided vars
# - env cannot be overwritten but cannot have whitespace anyway
CONVERT_TO:=$(strip $(CONVERT_TO))
ifneq ($(CONVERT_TO),)
# stash so we can overwrite env provided vars if needed
ACTIVE_CONVERTER=$(CONVERT_TO)
@@ -28,13 +23,13 @@ ifneq ($(CONVERT_TO),)
TARGET := $(TARGET)_$(CONVERT_TO)
# Configure any defaults
OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')
OPT_DEFS += -DCONVERTER_TARGET=\"$(CONVERT_TO)\"
OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]'))
OPT_DEFS += -DCONVERTER_TARGET=\"$(strip $(CONVERT_TO))\"
OPT_DEFS += -DCONVERTER_ENABLED
VPATH += $(CONVERTER)
# Configure for "alias" - worst case it produces an idential define
OPT_DEFS += -DCONVERT_TO_$(shell echo $(ACTIVE_CONVERTER) | tr '[:lower:]' '[:upper:]')
OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(ACTIVE_CONVERTER) | tr '[:lower:]' '[:upper:]'))
# Finally run any converter specific logic
include $(CONVERTER)/converter.mk
+21
View File
@@ -0,0 +1,21 @@
# Dependencies
/node_modules
# Production
/build
/static/doxygen
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
+3
View File
@@ -0,0 +1,3 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
};
+285
View File
@@ -0,0 +1,285 @@
// @ts-check
// Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require("prism-react-renderer/themes/dracula");
/** @type {import('@docusaurus/types').Config} */
const config = {
title: "QMK Firmware",
tagline: "The full documentation of the open-source firmware",
favicon: "img/favicon.ico",
url: "https://docs.qmk.fm",
baseUrl: "/",
organizationName: "qmk",
projectName: "qmk_firmware",
deploymentBranch: "gh-pages",
onBrokenLinks: "warn",
onBrokenMarkdownLinks: "warn",
i18n: {
defaultLocale: "en",
locales: ["en"], //, 'ja', 'zh-cn'],
},
themes: [
[
"classic",
{
customCss: require.resolve("./src/css/custom.css"),
}
],
[
require.resolve("@easyops-cn/docusaurus-search-local"),
{
indexBlog: false,
docsRouteBasePath: '/',
searchResultLimits: 12,
searchBarShortcut: false,
},
],
],
plugins: [
[
"@docusaurus/plugin-content-docs",
{
sidebarPath: require.resolve("./sidebars.js"),
path: "../../docs",
routeBasePath: "/",
exclude: [
"node_modules",
"src",
"static",
"ja",
"zh-cn",
"gitbook",
// "ChangeLog"
],
editUrl:
"https://github.com/qmk/qmk_firmware/edit/master/docs/",
},
],
[
"@docusaurus/plugin-client-redirects",
{
// fromExtensions: ['md', 'html'],
redirects: [
// from index.html
{
from: '/adding_a_keyboard_to_qmk',
to: '/hardware_keyboard_guidelines',
},
{
from: '/build_environment_setup',
to: '/newbs_getting_started',
},
{
from: '/cli_dev_configuration',
to: '/cli_configuration',
},
{
from: '/dynamic_macros',
to: '/feature_dynamic_macros',
},
{
from: '/feature_common_shortcuts',
to: '/feature_advanced_keycodes',
},
{
from: '/glossary',
to: '/reference_glossary',
},
{
from: '/key_lock',
to: '/feature_key_lock',
},
{
from: '/make_instructions',
to: '/getting_started_make_guide',
},
{
from: ['/space_cadet_shift', '/feature_space_cadet_shift'],
to: '/feature_space_cadet',
},
{
from: '/getting_started_getting_help',
to: '/support',
},
{
from: '/tap_dance',
to: '/feature_tap_dance',
},
{
from: '/unicode',
to: '/feature_unicode',
},
{
from: '/python_development',
to: '/cli_development',
},
{
from: '/getting_started_build_tools',
to: '/newbs_getting_started',
},
{
from: '/tutorial',
to: '/newbs',
},
// from redirects.json
// {
// from: "/adding_a_keyboard_to_qmk",
// to: "/hardware_keyboard_guidelines"
// },
// {
// from: "/build_environment_setup",
// to: "/getting_started_build_tools"
// },
// {
// from: "/dynamic_macros",
// to: "/feature_dynamic_macros"
// },
// {
// from: "/feature_common_shortcuts",
// to: "/feature_advanced_keycodes"
// },
// {
// from: "/glossary",
// to: "/reference_glossary"
// },
// {
// from: "/key_lock",
// to: "/feature_key_lock"
// },
// {
// from: "/make_instructions",
// to: "/getting_started_make_guide"
// },
// {
// from: "/porting_your_keyboard_to_qmk",
// to: "/hardware_avr"
// },
// {
// from: "/space_cadet_shift",
// to: "/feature_space_cadet_shift"
// },
// {
// from: "/tap_dance",
// to: "/feature_tap_dance"
// },
// {
// from: "/unicode",
// to: "/feature_unicode"
// },
// {
// from: "/python_development",
// to: "/cli_development"
// }
],
},
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
image: "img/qmk-social-card.jpg",
navbar: {
title: "QMK Firmware Docs",
logo: {
alt: "QMK Firmware",
src: "img/qmk-new-light.svg",
srcDark: "img/qmk-new-dark.svg",
width: 32,
height: 32,
},
items: [
// {
// type: 'localeDropdown',
// position: 'right',
// },
{
href: "https://github.com/qmk/qmk_firmware",
label: "GitHub",
position: "right",
},
],
},
docs: {
sidebar: {
autoCollapseCategories: false,
},
},
footer: {
style: "dark",
links: [
{
title: "Docs",
items: [
{
label: "Docs",
to: "/",
},
],
},
{
title: "Community",
items: [
{
label: "Discord",
href: "https://discord.gg/Uq7gcHh",
},
{
label: "Reddit",
href: "https://reddit.com/r/olkb",
},
],
},
{
title: "More",
items: [
{
label: "GitHub",
href: "https://github.com/qmk/qmk_firmware",
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} QMK. Built with Docusaurus.`,
},
prism: {
theme: lightCodeTheme,
darkTheme: darkCodeTheme,
},
// applied for - will fill out once we hear back
//
// algolia: {
// // The application ID provided by Algolia
// appId: 'YOUR_APP_ID',
// // Public API key: it is safe to commit it
// apiKey: 'YOUR_SEARCH_API_KEY',
// indexName: 'YOUR_INDEX_NAME',
// // Optional: see doc section below
// contextualSearch: true,
// // Optional: Specify domains where the navigation should occur through window.location instead on history.push. Useful when our Algolia config crawls multiple documentation sites and we want to navigate with window.location.href to them.
// externalUrlRegex: 'external\\.com|domain\\.com',
// // Optional: Replace parts of the item URLs from Algolia. Useful when using the same search index for multiple deployments using a different baseUrl. You can use regexp or string in the `from` param. For example: localhost:3000 vs myCompany.com/docs
// replaceSearchResultPathname: {
// from: '/docs/', // or as RegExp: /\/docs\//
// to: '/',
// },
// // Optional: Algolia search parameters
// searchParameters: {},
// // Optional: path for search page that enabled by default (`false` to disable it)
// searchPagePath: 'search',
// //... other Algolia params
// },
}),
};
module.exports = config;
+12974
View File
File diff suppressed because it is too large Load Diff
+45
View File
@@ -0,0 +1,45 @@
{
"name": "qmk_firmware_docs",
"version": "0.0.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start --host 0.0.0.0 --port 8936",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve --host 0.0.0.0 --port 8936",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
"@docusaurus/core": "2.4.0",
"@docusaurus/plugin-client-redirects": "^2.4.0",
"@docusaurus/preset-classic": "2.4.0",
"@easyops-cn/docusaurus-search-local": "^0.35.0",
"@mdx-js/react": "^1.6.22",
"clsx": "^1.2.1",
"prism-react-renderer": "^1.3.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "2.4.0"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"engines": {
"node": ">=16.14"
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,22 @@
import React, { useEffect } from 'react';
import { useHistory } from 'react-router-dom';
function removeHashSlash(url) {
return url.replace(/\/#\//, '/');
}
export default function DocsifyForwarder(props) {
const history = useHistory();
useEffect(() => {
const currentUrl = window.location.href;
if (currentUrl.includes('/#/')) {
const newUrl = removeHashSlash(currentUrl);
window.history.replaceState({}, '', newUrl);
const relativePath = new URL(newUrl).pathname;
history.push(relativePath);
}
}, [history]);
return "";
}

Some files were not shown because too many files have changed in this diff Show More