mirror of
https://github.com/odoo/documentation.git
synced 2025-12-12 07:29:27 +07:00
This commit removes the requirement on versions and languages to have a label in `versions_names`/`languages_names` to be displayed in the version/language switcher. Instead, if a version/language has no label defined, the raw version/language string will be used as fallback. This change makes it easier to add new versions or languages to the documentation without having to explicitly define display labels for them in `conf.py`. The responsibility of ensuring that referenced versions and languages actually exist is shifted to the build configuration. Part-of: odoo/documentation#12333 Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
102 lines
3.4 KiB
Makefile
102 lines
3.4 KiB
Makefile
# Makefile for Sphinx documentation
|
|
|
|
# Pass WORKERS=1 for single-worker build
|
|
ifndef WORKERS
|
|
WORKERS = auto
|
|
endif
|
|
|
|
ifndef BUILD_DIR
|
|
BUILD_DIR = _build
|
|
endif
|
|
|
|
ifndef CURRENT_LANG
|
|
CURRENT_LANG = en
|
|
endif
|
|
|
|
SPHINX_BUILD = sphinx-build
|
|
CONFIG_DIR = .
|
|
SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSION) \
|
|
-D versions=$(VERSIONS) -D languages=$(LANGUAGES) -D language=$(CURRENT_LANG) \
|
|
-D is_remote_build=$(IS_REMOTE_BUILD) \
|
|
-T \
|
|
-A google_analytics_key=$(GOOGLE_ANALYTICS_KEY) \
|
|
-A plausible_script=$(PLAUSIBLE_SCRIPT) \
|
|
-A plausible_domain=$(PLAUSIBLE_DOMAIN) \
|
|
-j $(WORKERS)
|
|
SOURCE_DIR = content
|
|
|
|
HTML_BUILD_DIR = $(BUILD_DIR)/html
|
|
ifdef VERSIONS
|
|
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/16.0
|
|
endif
|
|
ifneq ($(CURRENT_LANG),en)
|
|
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
|
|
endif
|
|
|
|
#=== Standard rules ===#
|
|
|
|
.PHONY: all help clean html latexpdf gettext fast static test review
|
|
|
|
# In first position to build the documentation from scratch by default
|
|
all: html
|
|
|
|
help:
|
|
@echo "Please use 'make <target>' where <target> is one of"
|
|
@echo " html to build the documentation to HTML"
|
|
@echo " fast to build the documentation to HTML with shallow menu (faster)"
|
|
@echo " clean to delete the build files"
|
|
@echo " test to run the guidelines tests"
|
|
|
|
clean:
|
|
@echo "Cleaning build files..."
|
|
rm -rf $(BUILD_DIR)/*
|
|
@echo "Cleaning finished."
|
|
|
|
html: $(HTML_BUILD_DIR)/_static/style.css
|
|
@echo "Starting build..."
|
|
$(SPHINX_BUILD) -c $(CONFIG_DIR) -b html $(SPHINXOPTS) $(SOURCE_DIR) $(HTML_BUILD_DIR)
|
|
@echo "Build finished."
|
|
|
|
# To call *after* `make html`
|
|
# Binary dependencies (Debian): texlive-fonts-recommended texlive-latex-extra
|
|
# texlive-fonts-extra
|
|
latexpdf:
|
|
@echo "Starting build..."
|
|
$(SPHINX_BUILD) -c $(CONFIG_DIR) -b latex $(SPHINXOPTS) $(SOURCE_DIR) $(BUILD_DIR)/latex
|
|
$(MAKE) -C $(BUILD_DIR)/latex
|
|
cp $(BUILD_DIR)/latex/*.pdf $(BUILD_DIR)/html/
|
|
@echo "Build finished."
|
|
|
|
gettext:
|
|
@echo "Generating translatable files..."
|
|
$(SPHINX_BUILD) -c $(CONFIG_DIR) -b gettext $(SOURCE_DIR) locale/sources
|
|
@echo "Generation finished."
|
|
|
|
$(HTML_BUILD_DIR)/_static/style.css: extensions/odoo_theme/static/style.scss extensions/odoo_theme/static/scss/*.scss
|
|
@echo "Compiling stylesheets..."
|
|
mkdir -p $(HTML_BUILD_DIR)/_static
|
|
python3 -m pysassc extensions/odoo_theme/static/style.scss $(HTML_BUILD_DIR)/_static/style.css
|
|
@echo "Compilation finished."
|
|
|
|
#=== Development and debugging rules ===#
|
|
|
|
fast: SPHINXOPTS += -A collapse_menu=True
|
|
fast: html
|
|
|
|
static: $(HTML_BUILD_DIR)/_static/style.css
|
|
cp -r extensions/odoo_theme/static/* $(HTML_BUILD_DIR)/_static/
|
|
cp -r static/* $(HTML_BUILD_DIR)/_static/
|
|
|
|
# Called by runbot for the ci/documentation_guideline check.
|
|
test:
|
|
@python tests/main.py $(SOURCE_DIR)/administration $(SOURCE_DIR)/applications $(SOURCE_DIR)/contributing $(SOURCE_DIR)/developer redirects
|
|
|
|
# Similar as `test`, but called only manually by content reviewers to trigger extra checks.
|
|
review:
|
|
@read -p "Enter relative content path: " path; read -p "Enter max line length (default: 100): " line_length; \
|
|
if [ -z "$$path" ]; then echo "Error: Path cannot be empty"; exit 1; fi; \
|
|
if echo $$path | grep -q 'content/'; then path=`echo $$path | sed 's|content/||'`; fi; \
|
|
if [ -z "$$line_length" ]; then line_length=100; fi; \
|
|
export REVIEW=1; \
|
|
python tests/main.py --max-line-length=$$line_length $(SOURCE_DIR)/$$path
|