mirror of
https://github.com/nlohmann/json.git
synced 2026-10-06 14:40:32 +00:00
The docset Makefile's list_missing_pages ran one sqlite3 query per mkdocs page, and list_removed_paths nested a loop over all mkdocs pages inside a loop over all docset index paths (O(n*m) shell iteration). Issue #5718 item 5 suggested removing or reducing these targets once #5638's check_docset() lands, but that PR is still open and covers only API pages and macros, not the full page set these targets check. Replace the loops with two sorted path lists (DOCSET_PAGE_PATHS from mkdocs' markdown sources, DOCSET_INDEX_PATHS from the built docset index) compared with a single comm(1) call each, verified to produce output identical to the old loops against the current docSet.dsidx. The sed expression used '#' as its delimiter, which GNU Make reads as a comment character even inside a variable assignment, truncating the line and orphaning the closing paren of $(shell ...) ("unterminated call to function 'shell': missing ')'"). Use '@' as the delimiter instead. Part of #5718 item 5 Signed-off-by: Niels Lohmann <mail@nlohmann.me>
docset
The folder contains the required files to create a docset which can be used in documentation browsers like Dash, Velocity, or Zeal.
The docset can be created with
make JSON_for_Modern_C++.docset
The generated folder JSON_for_Modern_C++.docset can then be opened in the documentation browser. make all builds a
JSON_for_Modern_C++.tgz archive instead, and make install_docset_zeal installs the docset for Zeal directly.
A recent version is also part of the Dash user contributions.
Licenses
The JSON logo is public domain.