@@ -46,6 +46,7 @@ load("@pip_process//:requirements.bzl", "all_requirements")
4646load ("@rules_pkg//pkg:mappings.bzl" , "pkg_files" , "strip_prefix" )
4747load ("@rules_python//sphinxdocs:sphinx.bzl" , "sphinx_build_binary" , "sphinx_docs" )
4848load ("@score_tooling//:defs.bzl" , "score_virtualenv" )
49+ load ("@score_tooling//bazel/rules/rules_score:rules_score.bzl" , "sphinx_module" )
4950
5051def _rewrite_needs_json_to_docs_sources (labels ):
5152 """Replace '@repo//:needs_json' -> '@repo//:docs_sources' for every item."""
@@ -106,6 +107,7 @@ def docs(source_dir = "docs", data = [], deps = [], scan_code = []):
106107 if call_path != "" :
107108 fail ("docs() must be called from the root package. Current package: " + call_path )
108109
110+ module_deps = deps
109111 deps = deps + all_requirements + [
110112 "@score_docs_as_code//src:plantuml_for_python" ,
111113 "@score_docs_as_code//src/extensions/score_sphinx_bundle:score_sphinx_bundle" ,
@@ -255,6 +257,30 @@ def docs(source_dir = "docs", data = [], deps = [], scan_code = []):
255257 visibility = ["//visibility:public" ],
256258 )
257259
260+ sphinx_module (
261+ name = native .module_name () + "_module" ,
262+ srcs = native .glob ([
263+ source_dir + "/**/*.rst" ,
264+ source_dir + "/**/*.png" ,
265+ source_dir + "/**/*.svg" ,
266+ source_dir + "/**/*.md" ,
267+ source_dir + "/**/*.html" ,
268+ source_dir + "/**/*.css" ,
269+ source_dir + "/**/*.puml" ,
270+ source_dir + "/**/*.need" ,
271+ source_dir + "/**/*.yaml" ,
272+ source_dir + "/**/*.json" ,
273+ source_dir + "/**/*.csv" ,
274+ source_dir + "/**/*.inc" ,
275+ "more_docs/**/*.rst" ,
276+ ], allow_empty = True ),
277+ # config = ":" + source_dir + "/conf.py",
278+ index = source_dir + "/index.rst" ,
279+ sphinx = "@score_tooling//bazel/rules/rules_score:score_build" ,
280+ deps = module_deps ,
281+ visibility = ["//visibility:public" ],
282+ )
283+
258284def _sourcelinks_json (name , srcs ):
259285 """
260286 Creates a target that generates a JSON file with source code links.
0 commit comments