Skip to content

Commit 77ede22

Browse files
flakey5ovflowd
andcommitted
build, doc: use new api doc tooling
Switches over to using the new doc generation tooling. For more background on this, please see #52343 Signed-off-by: flakey5 <[email protected]> Co-authored-by: Claudio W <[email protected]>
1 parent e44ec42 commit 77ede22

29 files changed

+1499
-7420
lines changed

Makefile

+19-71
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ NODE_EXE = node$(EXEEXT)
8484
NODE ?= "$(PWD)/$(NODE_EXE)"
8585
NODE_G_EXE = node_g$(EXEEXT)
8686
NPM ?= ./deps/npm/bin/npm-cli.js
87+
NPX ?= ./deps/npm/bin/npx-cli.js
8788

8889
# Flags for packaging.
8990
BUILD_DOWNLOAD_FLAGS ?= --download=all
@@ -105,6 +106,16 @@ available-node = \
105106
exit 1; \
106107
fi;
107108

109+
available-npx = \
110+
if [ -x "$(NPX)" ] && [ -e "$(NPX)" ]; then \
111+
"$(NPX)" $(1); \
112+
elif [ -x `command -v npx` ] && [ -e `command -v npx` ] && [ `command -v npx` ]; then \
113+
`command -v npx` $(1); \
114+
else \
115+
echo "No available npx, cannot run \"npx $(1)\""; \
116+
exit 1; \
117+
fi;
118+
108119
.PHONY: all
109120
# BUILDTYPE=Debug builds both release and debug builds. If you want to compile
110121
# just the debug build, run `make -C out BUILDTYPE=Debug` instead.
@@ -363,7 +374,7 @@ test-valgrind: all
363374
test-check-deopts: all
364375
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) --check-deopts parallel sequential
365376

366-
DOCBUILDSTAMP_PREREQS = tools/doc/addon-verify.mjs doc/api/addons.md
377+
DOCBUILDSTAMP_PREREQS = tools/doc/ doc/api/addons.md
367378

368379
ifeq ($(OSTYPE),aix)
369380
DOCBUILDSTAMP_PREREQS := $(DOCBUILDSTAMP_PREREQS) out/$(BUILDTYPE)/node.exp
@@ -379,7 +390,7 @@ test/addons/.docbuildstamp: $(DOCBUILDSTAMP_PREREQS) tools/doc/node_modules
379390
echo "Skipping .docbuildstamp (no crypto)"; \
380391
else \
381392
$(RM) -r test/addons/??_*/; \
382-
[ -x $(NODE) ] && $(NODE) $< || node $< ; \
393+
[ -x $(NPM) ] && $(NPM) --prefix $< run addon-verify || npm --prefix $< run addon-verify ; \
383394
[ $$? -eq 0 ] && touch $@; \
384395
fi
385396

@@ -740,11 +751,8 @@ test-v8 test-v8-intl test-v8-benchmarks test-v8-all:
740751
endif
741752

742753
apidoc_dirs = out/doc out/doc/api out/doc/api/assets
743-
apidoc_sources = $(wildcard doc/api/*.md)
744-
apidocs_html = $(addprefix out/,$(apidoc_sources:.md=.html))
745-
apidocs_json = $(addprefix out/,$(apidoc_sources:.md=.json))
746-
747-
apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
754+
node_use_icu = $(call available-node,"-p" "typeof Intl === 'object'")
755+
run-npm-ci = $(PWD)/$(NPM) ci
748756

749757
tools/doc/node_modules: tools/doc/package.json
750758
@if [ "$(shell $(node_use_openssl))" != "true" ]; then \
@@ -755,11 +763,11 @@ tools/doc/node_modules: tools/doc/package.json
755763

756764
.PHONY: doc-only
757765
doc-only: tools/doc/node_modules \
758-
$(apidoc_dirs) $(apiassets) ## Builds the docs with the local or the global Node.js binary.
759-
@if [ "$(shell $(node_use_openssl))" != "true" ]; then \
760-
echo "Skipping doc-only (no crypto)"; \
766+
$(apidoc_dirs) ## Builds the docs with the local or the global Node.js binary.
767+
@if [ "$(shell $(node_use_openssl))" != "true" ] || [ "$(shell $(node_use_icu))" != "true" ]; then \
768+
echo "Skipping doc-only (no crypto or no icu)"; \
761769
else \
762-
$(MAKE) out/doc/api/all.html out/doc/api/all.json out/doc/api/stability; \
770+
$(call available-npx, --prefix tools/doc api-docs-tooling -t legacy-html-all legacy-json-all api-links -i doc/api/\*.md -i lib/\*.js -o out/doc/api/ -c file://$(PWD)/CHANGELOG.md) \
763771
fi
764772

765773
.PHONY: doc
@@ -774,66 +782,6 @@ out/doc/api: doc/api
774782
mkdir -p $@
775783
cp -r doc/api out/doc
776784

777-
# If it's a source tarball, assets are already in doc/api/assets
778-
out/doc/api/assets:
779-
mkdir -p $@
780-
if [ -d doc/api/assets ]; then cp -r doc/api/assets out/doc/api; fi;
781-
782-
# If it's not a source tarball, we need to copy assets from doc/api_assets
783-
out/doc/api/assets/%: doc/api_assets/% | out/doc/api/assets
784-
@cp $< $@ ; $(RM) out/doc/api/assets/README.md
785-
786-
787-
run-npm-ci = $(PWD)/$(NPM) ci
788-
789-
LINK_DATA = out/doc/apilinks.json
790-
VERSIONS_DATA = out/previous-doc-versions.json
791-
gen-api = tools/doc/generate.mjs --node-version=$(FULLVERSION) \
792-
--apilinks=$(LINK_DATA) $< --output-directory=out/doc/api \
793-
--versions-file=$(VERSIONS_DATA)
794-
gen-apilink = tools/doc/apilinks.mjs $(LINK_DATA) $(wildcard lib/*.js)
795-
796-
$(LINK_DATA): $(wildcard lib/*.js) tools/doc/apilinks.mjs | out/doc
797-
$(call available-node, $(gen-apilink))
798-
799-
# Regenerate previous versions data if the current version changes
800-
$(VERSIONS_DATA): CHANGELOG.md src/node_version.h tools/doc/versions.mjs
801-
$(call available-node, tools/doc/versions.mjs $@)
802-
803-
node_use_icu = $(call available-node,"-p" "typeof Intl === 'object'")
804-
805-
out/doc/api/%.json out/doc/api/%.html: doc/api/%.md tools/doc/generate.mjs \
806-
tools/doc/markdown.mjs tools/doc/html.mjs tools/doc/json.mjs \
807-
tools/doc/apilinks.mjs $(VERSIONS_DATA) | $(LINK_DATA) out/doc/api
808-
@if [ "$(shell $(node_use_icu))" != "true" ]; then \
809-
echo "Skipping documentation generation (no ICU)"; \
810-
else \
811-
$(call available-node, $(gen-api)) \
812-
fi
813-
814-
out/doc/api/all.html: $(apidocs_html) tools/doc/allhtml.mjs \
815-
tools/doc/apilinks.mjs | out/doc/api
816-
@if [ "$(shell $(node_use_icu))" != "true" ]; then \
817-
echo "Skipping HTML single-page doc generation (no ICU)"; \
818-
else \
819-
$(call available-node, tools/doc/allhtml.mjs) \
820-
fi
821-
822-
out/doc/api/all.json: $(apidocs_json) tools/doc/alljson.mjs | out/doc/api
823-
@if [ "$(shell $(node_use_icu))" != "true" ]; then \
824-
echo "Skipping JSON single-file generation (no ICU)"; \
825-
else \
826-
$(call available-node, tools/doc/alljson.mjs) \
827-
fi
828-
829-
.PHONY: out/doc/api/stability
830-
out/doc/api/stability: out/doc/api/all.json tools/doc/stability.mjs | out/doc/api
831-
@if [ "$(shell $(node_use_icu))" != "true" ]; then \
832-
echo "Skipping stability indicator generation (no ICU)"; \
833-
else \
834-
$(call available-node, tools/doc/stability.mjs) \
835-
fi
836-
837785
.PHONY: docopen
838786
docopen: out/doc/api/all.html
839787
@$(PYTHON) -mwebbrowser file://$(abspath $<)

doc/api_assets/README.md

-13
This file was deleted.

doc/api_assets/api.js

-212
This file was deleted.

0 commit comments

Comments
 (0)