diff --git a/Config/FilterPlugin.ini b/Config/FilterPlugin.ini index 1384d4bf..b45ca7af 100644 --- a/Config/FilterPlugin.ini +++ b/Config/FilterPlugin.ini @@ -1,4 +1,5 @@ [FilterPlugin] /Config/FilterPlugin.ini +/Documentation/the-senseglove-unreal-engine-handbook.epub /Documentation/the-senseglove-unreal-engine-handbook.pdf /Documentation/the-senseglove-unreal-engine-handbook.zip diff --git a/Handbook/GNUmakefile b/Handbook/GNUmakefile index f2bdd8ee..5a75de6d 100644 --- a/Handbook/GNUmakefile +++ b/Handbook/GNUmakefile @@ -55,12 +55,15 @@ SG_DOCUMENTATION_HTML_DIR_NAME := html SG_DOCUMENTATION_HTML_DIR := $(SG_DOCUMENTATION_DIR)/$(SG_DOCUMENTATION_HTML_DIR_NAME) SG_DOCUMENTATION_PDF_DIR := $(SG_DOCUMENTATION_DIR)/pdf-outline SG_DOCUMENTATION_PDF_FILE := $(SG_DOCUMENTATION_PDF_DIR)/output.pdf +SG_DOCUMENTATION_EPUB_DIR := $(SG_DOCUMENTATION_DIR)/epub +SG_DOCUMENTATION_EPUB_FILE := $(SG_DOCUMENTATION_EPUB_DIR)/$(SG_PROJECT_NAME).epub SG_DOCUMENTATION_PACK_DIR_NAME := pack SG_DOCUMENTATION_PACK_DIR := $(SG_DOCUMENTATION_DIR)/$(SG_DOCUMENTATION_PACK_DIR_NAME) SG_HANDBOOK_PACKED_HTML_DIR := $(SG_DOCUMENTATION_PACK_DIR)/$(SG_HANDBOOK_ESCAPED_NAME) SG_HANDBOOK_PACKED_HTML_FILE := $(SG_DOCUMENTATION_PACK_DIR)/$(SG_HANDBOOK_ESCAPED_NAME).zip SG_HANDBOOK_PACKED_PDF_FILE := $(SG_DOCUMENTATION_PACK_DIR)/$(SG_HANDBOOK_ESCAPED_NAME).pdf +SG_HANDBOOK_PACKED_EPUB_FILE := $(SG_DOCUMENTATION_PACK_DIR)/$(SG_HANDBOOK_ESCAPED_NAME).epub SG_BROWSER_BINARY_PATH_LINUX := /opt/brave.com/brave/brave SG_BROWSER_BINARY_PATH_WINDOWS := C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe @@ -223,6 +226,7 @@ SG_MDBOOK_HTML_SITE_URL := $(SG_HANDBOOK_REVISION) SG_HANDBOOK_REVISION_URL := $(SG_DOCUMENTATION_URL)/$(SG_HANDBOOK_REVISION) SG_HANDBOOK_RELEASE_NAME := $(shell echo $(SG_PROJECT_NAME)-$(SG_HANDBOOK_REVISION) | tr '[:upper:]' '[:lower:]' | sed 's/ /-/g') SG_HANDBOOK_PDF_URL := $(SG_HANDBOOK_REVISION_URL)/$(SG_HANDBOOK_RELEASE_NAME).pdf +SG_HANDBOOK_EPUB_URL := $(SG_HANDBOOK_REVISION_URL)/$(SG_HANDBOOK_RELEASE_NAME).epub endif # ($(strip $(SG_HANDBOOK_REVISION)),mismatched) ################################################################################ @@ -278,6 +282,7 @@ SG_HANDBOOK_DEPLOY_TEMP_DIR := $(shell mktemp -d -t $(SG_HANDBOOK_DEPLOY_TEMP_DI $(info Temporary directory has been set up at '$(SG_HANDBOOK_DEPLOY_TEMP_DIR)') SG_HANDBOOK_DEPLOY_GENERATED_PDF_FILE := $(SG_HANDBOOK_DEPLOY_TEMP_DIR)/$(SG_HANDBOOK_RELEASE_NAME).pdf +SG_HANDBOOK_DEPLOY_GENERATED_EPUB_FILE := $(SG_HANDBOOK_DEPLOY_TEMP_DIR)/$(SG_HANDBOOK_RELEASE_NAME).epub SG_HANDBOOK_DEPLOY_REVISION_LIST_FILE := $(SG_HANDBOOK_DEPLOY_TEMP_DIR)/revisions.txt @@ -327,6 +332,7 @@ info: @echo " - Handbook Revision : $(SG_HANDBOOK_REVISION)" @echo " - Handbook Revision URL : $(SG_HANDBOOK_REVISION_URL)" @echo " - Handbook PDF URL : $(SG_HANDBOOK_PDF_URL)" + @echo " - Handbook ePub URL : $(SG_HANDBOOK_EPUB_URL)" @echo " - Git Branch : $(SG_GIT_BRANCH)" @echo " - Git Tag : $(SG_GIT_TAG)" @echo " - Git Commit : $(SG_GIT_COMMIT)" @@ -365,6 +371,7 @@ ifeq ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) && . $(SG_LINUX_PYTHON_VENV_BIN_DIR)/activate \ && pip install mdbook-pdf-outline 2>/dev/null endif # ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) + @cargo install --git https://github.com/Michael-F-Bryan/mdbook-epub --rev d1536bbbdc1ca00320522ad73a967e15057ef573 --locked ################################################################################ # Make Targets - mdBook @@ -451,6 +458,7 @@ _mdbook_serve: SG_HANDBOOK_REVISION='$(SG_HANDBOOK_REVISION)' \ SG_HANDBOOK_REVISION_URL='$(SG_HANDBOOK_REVISION_URL)' \ SG_HANDBOOK_PDF_URL='$(SG_HANDBOOK_PDF_URL)' \ + SG_HANDBOOK_EPUB_URL='$(SG_HANDBOOK_EPUB_URL)' \ SG_GIT_BRANCH='$(SG_GIT_BRANCH)' \ SG_GIT_TAG='$(SG_GIT_TAG)' \ SG_GIT_COMMIT='$(SG_GIT_COMMIT)' \ @@ -483,6 +491,7 @@ _mdbook_build: SG_HANDBOOK_REVISION='$(SG_HANDBOOK_REVISION)' \ SG_HANDBOOK_REVISION_URL='$(SG_HANDBOOK_REVISION_URL)' \ SG_HANDBOOK_PDF_URL='$(SG_HANDBOOK_PDF_URL)' \ + SG_HANDBOOK_EPUB_URL='$(SG_HANDBOOK_EPUB_URL)' \ SG_GIT_BRANCH='$(SG_GIT_BRANCH)' \ SG_GIT_TAG='$(SG_GIT_TAG)' \ SG_GIT_COMMIT='$(SG_GIT_COMMIT)' \ @@ -532,6 +541,12 @@ ifeq ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) else # ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) @powershell -Command "Move-Item '$(SG_DOCUMENTATION_PDF_FILE)' '$(SG_HANDBOOK_PACKED_PDF_FILE)'" endif # ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) + @echo "Moving '$(SG_DOCUMENTATION_EPUB_FILE)' to '$(SG_HANDBOOK_PACKED_EPUB_FILE)'..." +ifeq ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) + @mv "$(SG_DOCUMENTATION_EPUB_FILE)" "$(SG_HANDBOOK_PACKED_EPUB_FILE)" +else # ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) + @powershell -Command "Move-Item '$(SG_DOCUMENTATION_EPUB_FILE)' '$(SG_HANDBOOK_PACKED_EPUB_FILE)'" +endif # ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) .PHONY: _deploy _deploy: @@ -562,6 +577,13 @@ endif # ($(SG_BUILD_PLATFORM),$(SG_BUILD_PLATFORM_LINUX)) -P $(SG_HANDBOOK_SSH_PORT) \ $(SG_HANDBOOK_DEPLOY_GENERATED_PDF_FILE) \ $(SG_HANDBOOK_SSH_USER)@$(SG_HANDBOOK_SSH_HOST):$(SG_HANDBOOK_SSH_REMOTE_DIR)/$(SG_HANDBOOK_REVISION) + @echo "Copying '$(SG_DOCUMENTATION_EPUB_FILE)' to '$(SG_HANDBOOK_DEPLOY_GENERATED_EPUB_FILE)'..." + @cp -v "$(SG_DOCUMENTATION_EPUB_FILE)" "$(SG_HANDBOOK_DEPLOY_GENERATED_EPUB_FILE)" + @echo "Uploading '$(SG_HANDBOOK_DEPLOY_GENERATED_EPUB_FILE)' to '$(SG_HANDBOOK_SSH_USER)@$(SG_HANDBOOK_SSH_HOST):$(SG_HANDBOOK_SSH_REMOTE_DIR)/$(SG_HANDBOOK_REVISION)'..." + @scp \ + -P $(SG_HANDBOOK_SSH_PORT) \ + $(SG_HANDBOOK_DEPLOY_GENERATED_EPUB_FILE) \ + $(SG_HANDBOOK_SSH_USER)@$(SG_HANDBOOK_SSH_HOST):$(SG_HANDBOOK_SSH_REMOTE_DIR)/$(SG_HANDBOOK_REVISION) @echo "Retrieving the list of deployed handbook revisions from '$(SG_HANDBOOK_SSH_USER)@$(SG_HANDBOOK_SSH_HOST):$(SG_HANDBOOK_SSH_PORT)/$(SG_HANDBOOK_SSH_REMOTE_DIR)'..." @ssh \ -p $(SG_HANDBOOK_SSH_PORT) $(SG_HANDBOOK_SSH_USER)@$(SG_HANDBOOK_SSH_HOST) \ diff --git a/Handbook/bin/sg-preprocessor.sh b/Handbook/bin/sg-preprocessor.sh index 99bf834c..bac7793d 100644 --- a/Handbook/bin/sg-preprocessor.sh +++ b/Handbook/bin/sg-preprocessor.sh @@ -43,6 +43,7 @@ escape_string() { SG_PROJECT_NAME_ESCAPED=$(escape_string "${SG_PROJECT_NAME}") SG_HANDBOOK_REVISION_ESCAPED=$(escape_string "${SG_HANDBOOK_REVISION}") SG_HANDBOOK_REVISION_URL_ESCAPED=$(escape_string "${SG_HANDBOOK_REVISION_URL}") +SG_HANDBOOK_EPUB_URL_ESCAPED=$(escape_string "${SG_HANDBOOK_EPUB_URL}") SG_HANDBOOK_PDF_URL_ESCAPED=$(escape_string "${SG_HANDBOOK_PDF_URL}") SG_GIT_BRANCH_ESCAPED=$(escape_string "${SG_GIT_BRANCH}") SG_GIT_TAG_ESCAPED=$(escape_string "${SG_GIT_TAG}") @@ -70,6 +71,7 @@ PARSED_BOOK=$(echo "${BOOK}" | xq " . | gsub(\"{{ #sg-project-name }}\"; \"${SG_PROJECT_NAME_ESCAPED}\") | gsub(\"{{ #sg-handbook-revision }}\"; \"${SG_HANDBOOK_REVISION_ESCAPED}\") | gsub(\"{{ #sg-handbook-revision-url }}\"; \"${SG_HANDBOOK_REVISION_URL_ESCAPED}\") | + gsub(\"{{ #sg-handbook-epub-url }}\"; \"${SG_HANDBOOK_EPUB_URL_ESCAPED}\") | gsub(\"{{ #sg-handbook-pdf-url }}\"; \"${SG_HANDBOOK_PDF_URL_ESCAPED}\") | gsub(\"{{ #sg-git-branch }}\"; \"${SG_GIT_BRANCH_ESCAPED}\") | gsub(\"{{ #sg-git-tag }}\"; \"${SG_GIT_TAG_ESCAPED}\") | diff --git a/Handbook/book.toml b/Handbook/book.toml index 3c7aeb02..2722b276 100644 --- a/Handbook/book.toml +++ b/Handbook/book.toml @@ -49,6 +49,12 @@ use-default-preprocessors = true after = [ "index", "links" ] command = "sh ./bin/sg-preprocessor.sh" +[output.epub] +no-section-label = false +curly-quotes = true +epub-version = 3 +footnote-backrefs = true + [output.html] additional-css = ["styles/custom.css"] additional-js = [] diff --git a/Handbook/src/README.md b/Handbook/src/README.md index dcb69dc9..143509b8 100644 --- a/Handbook/src/README.md +++ b/Handbook/src/README.md @@ -4,7 +4,7 @@ Welcome to the documentation for the SenseGlove Unreal Engine Plugin (a.k.a. The This handbook is an ongoing effort and a work in progress to document the SenseGlove Unreal Engine Plugin. Feel free to visit this handbook on a regular basis. -Due to superior formatting and frequent updates, we recommend [the online version of the handbook]({{ #sg-handbook-revision-url }}); nonetheless, it's available in [PDF format]({{ #sg-handbook-pdf-url }}) as well. +Due to superior formatting and frequent updates, we recommend [the online version of the handbook]({{ #sg-handbook-revision-url }}); nonetheless, it's also available in [PDF]({{ #sg-handbook-pdf-url }}) and [ePub]({{ #sg-handbook-epub-url }}) formats as well. > [!TIP] > Feel free to check out [the SenseGlove Unreal Engine Plugin landing page on Fab](https://www.fab.com/listings/62bcdd2a-0bb1-4f34-b7b8-c5e7c9313099) as well. diff --git a/Handbook/src/misc/build-information.md b/Handbook/src/misc/build-information.md index 42c61cdc..7884afeb 100644 --- a/Handbook/src/misc/build-information.md +++ b/Handbook/src/misc/build-information.md @@ -5,6 +5,7 @@ | Handbook Revision | {{ #sg-handbook-revision }} | | Handbook Revision URL | [{{ #sg-handbook-revision-url }}]({{ #sg-handbook-revision-url }}) | | Handbook PDF URL | [{{ #sg-handbook-pdf-url }}]({{ #sg-handbook-pdf-url }}) | +| Handbook ePub URL | [{{ #sg-handbook-epub-url }}]({{ #sg-handbook-epub-url }}) | | Git Branch | {{ #sg-git-branch }} | | Git Tag | {{ #sg-git-tag }} | | Git Commit | {{ #sg-git-commit }} |