Include `load` in summaries (#216)
Rules, providers, functions and aspects now have a small `load` statement in their summary.
The label in the `load` statement requires forking tests and golden files for --noenable_bzlmod mode; for brevity and maintainability, we are only interested in the following tests for --noenable_bzlmod:
* multiple_files
* same_level_file
* table_of_contents
* local_repository (this one needs no forking)
---------
Co-authored-by: Alexandre Rostovtsev <arostovtsev@google.com>
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index a6ba4cc..79291a0 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -35,15 +35,11 @@
- "//test/..."
test_flags: *noenable_bzlmod_flags
test_targets:
- # Some tests are expected to fail in legacy WORKSPACE mode due to repo name change
- - "//test/..."
- - "-//test:attribute_defaults_test"
- - "-//test:function_wrap_multiple_lines_test"
- - "-//test:misc_apis_test"
- - "-//test:module_extension_test"
- - "-//test:proto_format_test"
- - "-//test:stardoc_self_gen_test"
- - "-//test:table_of_contents_test"
+ # Most tests will not pass in legacy WORKSPACE mode due to repo name change
+ - "//test:multiple_files_noenable_bzlmod_test"
+ - "//test:same_level_file_noenable_bzlmod_test"
+ - "//test:table_of_contents_noenable_bzlmod_test"
+ - "//test:local_repository_test"
.windows_task_config: &windows_task_config
<<: *common_task_config
@@ -61,7 +57,7 @@
name: Build and test - Windows
platform: windows
- legacy_workspace:
+ noenable_bzlmod:
<<: *noenable_bzlmod_task_config
name: Build and test - legacy WORKSPACE setup
platform: ${{ platform }}
diff --git a/docs/stardoc_rule.md b/docs/stardoc_rule.md
index 9851880..83569e4 100644
--- a/docs/stardoc_rule.md
+++ b/docs/stardoc_rule.md
@@ -7,6 +7,8 @@
## stardoc
<pre>
+load("@stardoc//stardoc:stardoc.bzl", "stardoc")
+
stardoc(*, <a href="#stardoc-name">name</a>, <a href="#stardoc-input">input</a>, <a href="#stardoc-out">out</a>, <a href="#stardoc-deps">deps</a>, <a href="#stardoc-format">format</a>, <a href="#stardoc-symbol_names">symbol_names</a>, <a href="#stardoc-renderer">renderer</a>, <a href="#stardoc-aspect_template">aspect_template</a>, <a href="#stardoc-func_template">func_template</a>,
<a href="#stardoc-header_template">header_template</a>, <a href="#stardoc-table_of_contents_template">table_of_contents_template</a>, <a href="#stardoc-provider_template">provider_template</a>, <a href="#stardoc-rule_template">rule_template</a>,
<a href="#stardoc-repository_rule_template">repository_rule_template</a>, <a href="#stardoc-module_extension_template">module_extension_template</a>, <a href="#stardoc-footer_template">footer_template</a>, <a href="#stardoc-render_main_repo_name">render_main_repo_name</a>,
diff --git a/src/main/java/com/google/devtools/build/stardoc/renderer/RendererMain.java b/src/main/java/com/google/devtools/build/stardoc/renderer/RendererMain.java
index fc8fca0..21bd2fa 100644
--- a/src/main/java/com/google/devtools/build/stardoc/renderer/RendererMain.java
+++ b/src/main/java/com/google/devtools/build/stardoc/renderer/RendererMain.java
@@ -38,6 +38,7 @@
import java.io.PrintWriter;
import java.util.Comparator;
import java.util.List;
+import java.util.Optional;
/**
* Main entry point for Renderer binary.
@@ -92,7 +93,9 @@
rendererOptions.aspectTemplateFilePath,
rendererOptions.repositoryRuleTemplateFilePath,
rendererOptions.moduleExtensionTemplateFilePath,
- !moduleInfo.getFile().isEmpty() ? moduleInfo.getFile() : "...",
+ !moduleInfo.getFile().isEmpty()
+ ? Optional.of(moduleInfo.getFile())
+ : Optional.empty(),
rendererOptions.footerTemplateFilePath,
stamping);
diff --git a/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownRenderer.java b/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownRenderer.java
index c2eb876..db1fdc5 100644
--- a/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownRenderer.java
+++ b/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownRenderer.java
@@ -41,6 +41,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
+import java.util.Optional;
/** Produces stardoc output in markdown form. */
public class MarkdownRenderer {
@@ -58,7 +59,7 @@
private final String aspectTemplateFilename;
private final String repositoryRuleTemplateFilename;
private final String moduleExtensionTemplateFilename;
- private final String extensionBzlFile;
+ private final Optional<String> entrypointBzlFile;
private final String footerTemplateFilename;
private final Stamping stamping;
@@ -71,7 +72,7 @@
String aspectTemplate,
String repositoryRuleTemplate,
String moduleExtensionTemplate,
- String extensionBzlFile,
+ Optional<String> entrypointBzlFile,
String footerTemplate,
Stamping stamping) {
this.headerTemplateFilename = headerTemplate;
@@ -82,7 +83,7 @@
this.aspectTemplateFilename = aspectTemplate;
this.repositoryRuleTemplateFilename = repositoryRuleTemplate;
this.moduleExtensionTemplateFilename = moduleExtensionTemplate;
- this.extensionBzlFile = extensionBzlFile;
+ this.entrypointBzlFile = entrypointBzlFile;
this.footerTemplateFilename = footerTemplate;
this.stamping = stamping;
}
@@ -95,7 +96,7 @@
ImmutableMap<String, Object> vars =
ImmutableMap.of(
"util",
- new MarkdownUtil(extensionBzlFile),
+ new MarkdownUtil(entrypointBzlFile),
"moduleDocstring",
moduleInfo.getModuleDocstring(),
"stamping",
@@ -123,7 +124,7 @@
ImmutableMap<String, Object> vars =
ImmutableMap.of(
- "util", new MarkdownUtil(extensionBzlFile),
+ "util", new MarkdownUtil(entrypointBzlFile),
"ruleInfos", ruleInfos,
"providerInfos", providerInfos,
"functionInfos", starlarkFunctions,
@@ -146,7 +147,7 @@
ImmutableMap<String, Object> vars =
ImmutableMap.of(
"util",
- new MarkdownUtil(extensionBzlFile),
+ new MarkdownUtil(entrypointBzlFile),
"ruleName",
ruleInfo.getRuleName(),
"ruleInfo",
@@ -224,7 +225,7 @@
ImmutableMap<String, Object> vars =
ImmutableMap.of(
"util",
- new MarkdownUtil(extensionBzlFile),
+ new MarkdownUtil(entrypointBzlFile),
"providerName",
providerInfo.getProviderName(),
"providerInfo",
@@ -263,7 +264,7 @@
*/
public String render(StarlarkFunctionInfo functionInfo) throws IOException {
ImmutableMap<String, Object> vars =
- ImmutableMap.of("util", new MarkdownUtil(extensionBzlFile), "funcInfo", functionInfo);
+ ImmutableMap.of("util", new MarkdownUtil(entrypointBzlFile), "funcInfo", functionInfo);
Reader reader = readerFromPath(functionTemplateFilename);
try {
return Template.parseFrom(reader).evaluate(vars);
@@ -280,7 +281,7 @@
ImmutableMap<String, Object> vars =
ImmutableMap.of(
"util",
- new MarkdownUtil(extensionBzlFile),
+ new MarkdownUtil(entrypointBzlFile),
"aspectName",
aspectInfo.getAspectName(),
"aspectInfo",
@@ -301,7 +302,7 @@
ImmutableMap<String, Object> vars =
ImmutableMap.of(
"util",
- new MarkdownUtil(extensionBzlFile),
+ new MarkdownUtil(entrypointBzlFile),
"ruleName",
repositoryRuleInfo.getRuleName(),
"ruleInfo",
@@ -322,7 +323,7 @@
ImmutableMap<String, Object> vars =
ImmutableMap.of(
"util",
- new MarkdownUtil(extensionBzlFile),
+ new MarkdownUtil(entrypointBzlFile),
"extensionName",
moduleExtensionInfo.getExtensionName(),
"extensionInfo",
@@ -338,7 +339,7 @@
/** Returns a markdown header string that should appear at the end of Stardoc's output. */
public String renderMarkdownFooter(ModuleInfo moduleInfo) throws IOException {
ImmutableMap<String, Object> vars =
- ImmutableMap.of("util", new MarkdownUtil(extensionBzlFile), "stamping", stamping);
+ ImmutableMap.of("util", new MarkdownUtil(entrypointBzlFile), "stamping", stamping);
Reader reader = readerFromPath(footerTemplateFilename);
try {
return Template.parseFrom(reader).evaluate(vars);
diff --git a/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownUtil.java b/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownUtil.java
index 9324bb6..8b383d9 100644
--- a/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownUtil.java
+++ b/src/main/java/com/google/devtools/build/stardoc/rendering/MarkdownUtil.java
@@ -47,12 +47,12 @@
/** Contains a number of utility methods for markdown rendering. */
public final class MarkdownUtil {
- private final String extensionBzlFile;
+ private final Optional<String> entrypointBzlFile;
private static final int MAX_LINE_LENGTH = 100;
- public MarkdownUtil(String extensionBzlFile) {
- this.extensionBzlFile = extensionBzlFile;
+ public MarkdownUtil(Optional<String> entrypointBzlFile) {
+ this.entrypointBzlFile = entrypointBzlFile;
}
/**
@@ -307,7 +307,8 @@
StringBuilder summaryBuilder = new StringBuilder();
summaryBuilder.append(
String.format(
- "%s = use_extension(\"%s\", \"%s\")", extensionName, extensionBzlFile, extensionName));
+ "%s = use_extension(\"%s\", \"%s\")",
+ extensionName, entrypointBzlFile.orElse("..."), extensionName));
for (ModuleExtensionTagClassInfo tagClass : extensionInfo.getTagClassList()) {
String callableName = String.format("%s.%s", extensionName, tagClass.getTagName());
ImmutableList<Param> params =
@@ -331,6 +332,13 @@
getFunctionParamsInDeclarationOrder(funcInfo, funcInfo.getFunctionName()));
}
+ @SuppressWarnings("unused") // Used by markdown template.
+ public String loadStatement(String name) {
+ return entrypointBzlFile
+ .map(file -> String.format("load(\"%s\", \"%s\")", file, name.split("\\.")[0]))
+ .orElse("");
+ }
+
/**
* Returns a string representing the summary for a function or other callable.
*
diff --git a/src/test/java/com/google/devtools/build/stardoc/rendering/MarkdownUtilTest.java b/src/test/java/com/google/devtools/build/stardoc/rendering/MarkdownUtilTest.java
index 82fdfad..4f70ba7 100644
--- a/src/test/java/com/google/devtools/build/stardoc/rendering/MarkdownUtilTest.java
+++ b/src/test/java/com/google/devtools/build/stardoc/rendering/MarkdownUtilTest.java
@@ -16,6 +16,7 @@
import static com.google.common.truth.Truth.assertThat;
+import java.util.Optional;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
@@ -24,7 +25,7 @@
@RunWith(JUnit4.class)
public class MarkdownUtilTest {
- MarkdownUtil util = new MarkdownUtil("//:test.bzl");
+ MarkdownUtil util = new MarkdownUtil(Optional.of("//:test.bzl"));
@Test
public void markdownCodeSpan() {
diff --git a/stardoc/templates/html_tables/aspect.vm b/stardoc/templates/html_tables/aspect.vm
index e66b2b2..7033279 100644
--- a/stardoc/templates/html_tables/aspect.vm
+++ b/stardoc/templates/html_tables/aspect.vm
@@ -3,6 +3,8 @@
#[[##]]# ${aspectName}
<pre>
+${util.loadStatement($aspectName)}
+
${util.aspectSummary($aspectName, $aspectInfo)}
</pre>
diff --git a/stardoc/templates/html_tables/func.vm b/stardoc/templates/html_tables/func.vm
index b52e5bc..7d9191d 100644
--- a/stardoc/templates/html_tables/func.vm
+++ b/stardoc/templates/html_tables/func.vm
@@ -3,6 +3,8 @@
#[[##]]# ${funcInfo.functionName}
<pre>
+${util.loadStatement($funcInfo.functionName)}
+
${util.funcSummary($funcInfo)}
</pre>
diff --git a/stardoc/templates/html_tables/provider.vm b/stardoc/templates/html_tables/provider.vm
index a2919b0..4684676 100644
--- a/stardoc/templates/html_tables/provider.vm
+++ b/stardoc/templates/html_tables/provider.vm
@@ -8,6 +8,8 @@
#[[##]]# ${providerName}
<pre>
+${util.loadStatement($providerName)}
+
#if ($providerInfo.hasInit() && !$mergeParamsAndFields)
${util.providerSummaryWithInitAnchor($providerName, $providerInfo)}
#else
diff --git a/stardoc/templates/html_tables/repository_rule.vm b/stardoc/templates/html_tables/repository_rule.vm
index 2378562..90df09b 100644
--- a/stardoc/templates/html_tables/repository_rule.vm
+++ b/stardoc/templates/html_tables/repository_rule.vm
@@ -3,6 +3,8 @@
#[[##]]# ${ruleName}
<pre>
+${util.loadStatement($ruleName)}
+
${util.repositoryRuleSummary($ruleName, $ruleInfo)}
</pre>
#if (!$ruleInfo.docString.isEmpty())
diff --git a/stardoc/templates/html_tables/rule.vm b/stardoc/templates/html_tables/rule.vm
index 0d5b638..546e0c1 100644
--- a/stardoc/templates/html_tables/rule.vm
+++ b/stardoc/templates/html_tables/rule.vm
@@ -3,6 +3,8 @@
#[[##]]# ${ruleName}
<pre>
+${util.loadStatement($ruleName)}
+
${util.ruleSummary($ruleName, $ruleInfo)}
</pre>
diff --git a/stardoc/templates/markdown_tables/aspect.vm b/stardoc/templates/markdown_tables/aspect.vm
index 36aa47a..327bf10 100644
--- a/stardoc/templates/markdown_tables/aspect.vm
+++ b/stardoc/templates/markdown_tables/aspect.vm
@@ -3,6 +3,8 @@
#[[##]]# ${aspectName}
<pre>
+${util.loadStatement($aspectName)}
+
${util.aspectSummary($aspectName, $aspectInfo)}
</pre>
diff --git a/stardoc/templates/markdown_tables/func.vm b/stardoc/templates/markdown_tables/func.vm
index e53b81a..5d529fc 100644
--- a/stardoc/templates/markdown_tables/func.vm
+++ b/stardoc/templates/markdown_tables/func.vm
@@ -3,6 +3,8 @@
#[[##]]# ${funcInfo.functionName}
<pre>
+${util.loadStatement($funcInfo.functionName)}
+
${util.funcSummary($funcInfo)}
</pre>
diff --git a/stardoc/templates/markdown_tables/provider.vm b/stardoc/templates/markdown_tables/provider.vm
index f623e0d..a198ac5 100644
--- a/stardoc/templates/markdown_tables/provider.vm
+++ b/stardoc/templates/markdown_tables/provider.vm
@@ -8,6 +8,8 @@
#[[##]]# ${providerName}
<pre>
+${util.loadStatement($providerName)}
+
#if ($providerInfo.hasInit() && !$mergeParamsAndFields)
${util.providerSummaryWithInitAnchor($providerName, $providerInfo)}
#else
diff --git a/stardoc/templates/markdown_tables/repository_rule.vm b/stardoc/templates/markdown_tables/repository_rule.vm
index 4473f01..579e76a 100644
--- a/stardoc/templates/markdown_tables/repository_rule.vm
+++ b/stardoc/templates/markdown_tables/repository_rule.vm
@@ -3,6 +3,8 @@
#[[##]]# ${ruleName}
<pre>
+${util.loadStatement($ruleName)}
+
${util.repositoryRuleSummary($ruleName, $ruleInfo)}
</pre>
#if (!$ruleInfo.docString.isEmpty())
diff --git a/stardoc/templates/markdown_tables/rule.vm b/stardoc/templates/markdown_tables/rule.vm
index 0b73239..3b94cd5 100644
--- a/stardoc/templates/markdown_tables/rule.vm
+++ b/stardoc/templates/markdown_tables/rule.vm
@@ -3,6 +3,8 @@
#[[##]]# ${ruleName}
<pre>
+${util.loadStatement($ruleName)}
+
${util.ruleSummary($ruleName, $ruleInfo)}
</pre>
diff --git a/test/BUILD b/test/BUILD
index 971b9d9..89f8265 100644
--- a/test/BUILD
+++ b/test/BUILD
@@ -120,6 +120,20 @@
)
stardoc_test(
+ name = "multiple_files_noenable_bzlmod_test",
+ golden_file = "testdata/multiple_files_test/noenable_bzlmod_golden.md",
+ input_file = "testdata/multiple_files_test/input.bzl",
+ tags = [
+ "manual",
+ "noenable_bzlmod",
+ ],
+ deps = [
+ "testdata/multiple_files_test/dep.bzl",
+ "testdata/multiple_files_test/inner_dep.bzl",
+ ],
+)
+
+stardoc_test(
name = "same_level_file_test",
golden_file = "//test/testdata/same_level_file_test:golden.md",
input_file = "//test/testdata/same_level_file_test:input.bzl",
@@ -130,6 +144,20 @@
)
stardoc_test(
+ name = "same_level_file_noenable_bzlmod_test",
+ golden_file = "//test/testdata/same_level_file_test:noenable_bzlmod_golden.md",
+ input_file = "//test/testdata/same_level_file_test:input.bzl",
+ symbol_names = ["my_rule"],
+ tags = [
+ "manual",
+ "noenable_bzlmod",
+ ],
+ deps = [
+ "//test/testdata/same_level_file_test:dep.bzl",
+ ],
+)
+
+stardoc_test(
name = "misc_apis_test",
golden_file = "testdata/misc_apis_test/golden.md",
input_file = "testdata/misc_apis_test/input.bzl",
@@ -307,6 +335,18 @@
)
stardoc_test(
+ name = "table_of_contents_noenable_bzlmod_test",
+ golden_file = "testdata/table_of_contents_test/noenable_bzlmod_golden.md",
+ input_file = "testdata/table_of_contents_test/input.bzl",
+ table_of_contents_template = "//stardoc:templates/markdown_tables/table_of_contents.vm",
+ tags = [
+ "manual",
+ "noenable_bzlmod",
+ ],
+ deps = [":table_of_contents_test_deps"],
+)
+
+stardoc_test(
name = "stamping_test",
golden_file = "testdata/stamping_test/golden.md",
header_template = "testdata/stamping_test/stamping_header.vm",
@@ -323,7 +363,7 @@
)
sh_test(
- name = "local_repository_test_e2e_test",
+ name = "local_repository_test",
srcs = ["diff_test_runner.sh"],
args = [
"$(location @local_repository_test//:output.md)",
diff --git a/test/bzlmod/MODULE.bazel b/test/bzlmod/MODULE.bazel
index 80bc2f9..22b4b82 100644
--- a/test/bzlmod/MODULE.bazel
+++ b/test/bzlmod/MODULE.bazel
@@ -1,3 +1,5 @@
+module(name = "test_module")
+
bazel_dep(name = "stardoc", version = "")
local_path_override(
module_name = "stardoc",
diff --git a/test/bzlmod/docs.md.golden b/test/bzlmod/docs.md.golden
index 3b671cc..3355517 100644
--- a/test/bzlmod/docs.md.golden
+++ b/test/bzlmod/docs.md.golden
@@ -7,6 +7,8 @@
## write_host_constraints
<pre>
+load("@test_module//:def.bzl", "write_host_constraints")
+
write_host_constraints(<a href="#write_host_constraints-name">name</a>)
</pre>
diff --git a/test/testdata/angle_bracket_test/golden.md b/test/testdata/angle_bracket_test/golden.md
index 3e26bea..9bbb742 100644
--- a/test/testdata/angle_bracket_test/golden.md
+++ b/test/testdata/angle_bracket_test/golden.md
@@ -17,6 +17,8 @@
## my_anglebrac
<pre>
+load("@stardoc//test:testdata/angle_bracket_test/input.bzl", "my_anglebrac")
+
my_anglebrac(<a href="#my_anglebrac-name">name</a>, <a href="#my_anglebrac-also_useless">also_useless</a>, <a href="#my_anglebrac-useless">useless</a>)
</pre>
@@ -37,6 +39,8 @@
## bracketuse
<pre>
+load("@stardoc//test:testdata/angle_bracket_test/input.bzl", "bracketuse")
+
bracketuse(<a href="#bracketuse-foo">foo</a>, <a href="#bracketuse-bar">bar</a>, <a href="#bracketuse-baz">baz</a>)
</pre>
@@ -56,6 +60,8 @@
## bracket_function
<pre>
+load("@stardoc//test:testdata/angle_bracket_test/input.bzl", "bracket_function")
+
bracket_function(<a href="#bracket_function-param">param</a>, <a href="#bracket_function-md_string">md_string</a>)
</pre>
@@ -93,6 +99,8 @@
## bracket_aspect
<pre>
+load("@stardoc//test:testdata/angle_bracket_test/input.bzl", "bracket_aspect")
+
bracket_aspect(<a href="#bracket_aspect-name">name</a>, <a href="#bracket_aspect-brackets">brackets</a>)
</pre>
diff --git a/test/testdata/apple_basic_test/golden.md b/test/testdata/apple_basic_test/golden.md
index b9e7a5b..8dbe211 100644
--- a/test/testdata/apple_basic_test/golden.md
+++ b/test/testdata/apple_basic_test/golden.md
@@ -7,6 +7,8 @@
## apple_related_rule
<pre>
+load("@stardoc//test:testdata/apple_basic_test/input.bzl", "apple_related_rule")
+
apple_related_rule(<a href="#apple_related_rule-name">name</a>, <a href="#apple_related_rule-first">first</a>, <a href="#apple_related_rule-fourth">fourth</a>, <a href="#apple_related_rule-second">second</a>, <a href="#apple_related_rule-third">third</a>)
</pre>
diff --git a/test/testdata/aspect_test/golden.md b/test/testdata/aspect_test/golden.md
index e1ef986..326e872 100644
--- a/test/testdata/aspect_test/golden.md
+++ b/test/testdata/aspect_test/golden.md
@@ -7,6 +7,8 @@
## my_aspect_impl
<pre>
+load("@stardoc//test:testdata/aspect_test/input.bzl", "my_aspect_impl")
+
my_aspect_impl(<a href="#my_aspect_impl-ctx">ctx</a>)
</pre>
@@ -25,6 +27,8 @@
## my_aspect
<pre>
+load("@stardoc//test:testdata/aspect_test/input.bzl", "my_aspect")
+
my_aspect(<a href="#my_aspect-name">name</a>, <a href="#my_aspect-first">first</a>, <a href="#my_aspect-second">second</a>)
</pre>
@@ -51,11 +55,38 @@
| <a id="my_aspect-second"></a>second | - | String | required | |
+<a id="namespace.namespaced_aspect"></a>
+
+## namespace.namespaced_aspect
+
+<pre>
+load("@stardoc//test:testdata/aspect_test/input.bzl", "namespace")
+
+namespace.namespaced_aspect(<a href="#namespace.namespaced_aspect-name">name</a>, <a href="#namespace.namespaced_aspect-third">third</a>)
+</pre>
+
+This is another aspect.
+
+**ASPECT ATTRIBUTES**
+
+
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="namespace.namespaced_aspect-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="namespace.namespaced_aspect-third"></a>third | - | Integer | required | |
+
+
<a id="other_aspect"></a>
## other_aspect
<pre>
+load("@stardoc//test:testdata/aspect_test/input.bzl", "other_aspect")
+
other_aspect(<a href="#other_aspect-name">name</a>, <a href="#other_aspect-third">third</a>)
</pre>
diff --git a/test/testdata/aspect_test/input.bzl b/test/testdata/aspect_test/input.bzl
index 38ddde0..179ce03 100644
--- a/test/testdata/aspect_test/input.bzl
+++ b/test/testdata/aspect_test/input.bzl
@@ -28,3 +28,7 @@
"third": attr.int(mandatory = True),
},
)
+
+namespace = struct(
+ namespaced_aspect = other_aspect,
+)
diff --git a/test/testdata/attribute_defaults_test/golden.md b/test/testdata/attribute_defaults_test/golden.md
index 98ce76b..bcd115b 100644
--- a/test/testdata/attribute_defaults_test/golden.md
+++ b/test/testdata/attribute_defaults_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/attribute_defaults_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-a">a</a>, <a href="#my_rule-b">b</a>, <a href="#my_rule-c">c</a>, <a href="#my_rule-d">d</a>, <a href="#my_rule-e">e</a>, <a href="#my_rule-f">f</a>, <a href="#my_rule-g">g</a>, <a href="#my_rule-h">h</a>, <a href="#my_rule-i">i</a>, <a href="#my_rule-j">j</a>, <a href="#my_rule-k">k</a>, <a href="#my_rule-l">l</a>, <a href="#my_rule-m">m</a>, <a href="#my_rule-n">n</a>, <a href="#my_rule-o">o</a>, <a href="#my_rule-p">p</a>, <a href="#my_rule-q">q</a>, <a href="#my_rule-r">r</a>, <a href="#my_rule-s">s</a>, <a href="#my_rule-t">t</a>, <a href="#my_rule-u">u</a>, <a href="#my_rule-v">v</a>, <a href="#my_rule-w">w</a>)
</pre>
@@ -48,6 +50,8 @@
## my_aspect
<pre>
+load("@stardoc//test:testdata/attribute_defaults_test/input.bzl", "my_aspect")
+
my_aspect(<a href="#my_aspect-name">name</a>, <a href="#my_aspect-y">y</a>, <a href="#my_aspect-z">z</a>)
</pre>
diff --git a/test/testdata/attribute_types_test/golden.md b/test/testdata/attribute_types_test/golden.md
index 1412f2f..d1602c9 100644
--- a/test/testdata/attribute_types_test/golden.md
+++ b/test/testdata/attribute_types_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/attribute_types_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-a">a</a>, <a href="#my_rule-b">b</a>, <a href="#my_rule-c">c</a>, <a href="#my_rule-d">d</a>, <a href="#my_rule-e">e</a>, <a href="#my_rule-f">f</a>, <a href="#my_rule-g">g</a>, <a href="#my_rule-h">h</a>, <a href="#my_rule-i">i</a>, <a href="#my_rule-j">j</a>, <a href="#my_rule-k">k</a>, <a href="#my_rule-l">l</a>)
</pre>
diff --git a/test/testdata/cc_api_test/golden.md b/test/testdata/cc_api_test/golden.md
index 183402e..df967cb 100644
--- a/test/testdata/cc_api_test/golden.md
+++ b/test/testdata/cc_api_test/golden.md
@@ -7,6 +7,8 @@
## cpp_related_rule
<pre>
+load("@stardoc//test:testdata/cc_api_test/input.bzl", "cpp_related_rule")
+
cpp_related_rule(<a href="#cpp_related_rule-name">name</a>, <a href="#cpp_related_rule-first">first</a>, <a href="#cpp_related_rule-fourth">fourth</a>, <a href="#cpp_related_rule-second">second</a>, <a href="#cpp_related_rule-third">third</a>)
</pre>
@@ -29,6 +31,8 @@
## exercise_the_api
<pre>
+load("@stardoc//test:testdata/cc_api_test/input.bzl", "exercise_the_api")
+
exercise_the_api()
</pre>
@@ -41,6 +45,8 @@
## my_rule_impl
<pre>
+load("@stardoc//test:testdata/cc_api_test/input.bzl", "my_rule_impl")
+
my_rule_impl(<a href="#my_rule_impl-ctx">ctx</a>)
</pre>
diff --git a/test/testdata/config_apis_test/golden.md b/test/testdata/config_apis_test/golden.md
index e1d5fdf..3c55953 100644
--- a/test/testdata/config_apis_test/golden.md
+++ b/test/testdata/config_apis_test/golden.md
@@ -7,6 +7,8 @@
## int_setting
<pre>
+load("@stardoc//test:testdata/config_apis_test/input.bzl", "int_setting")
+
int_setting(<a href="#int_setting-name">name</a>)
</pre>
@@ -25,6 +27,8 @@
## string_flag
<pre>
+load("@stardoc//test:testdata/config_apis_test/input.bzl", "string_flag")
+
string_flag(<a href="#string_flag-name">name</a>)
</pre>
@@ -43,6 +47,8 @@
## exercise_the_api
<pre>
+load("@stardoc//test:testdata/config_apis_test/input.bzl", "exercise_the_api")
+
exercise_the_api()
</pre>
@@ -55,6 +61,8 @@
## transition_func
<pre>
+load("@stardoc//test:testdata/config_apis_test/input.bzl", "transition_func")
+
transition_func(<a href="#transition_func-settings">settings</a>)
</pre>
diff --git a/test/testdata/cpp_basic_test/golden.md b/test/testdata/cpp_basic_test/golden.md
index abce00a..832d162 100644
--- a/test/testdata/cpp_basic_test/golden.md
+++ b/test/testdata/cpp_basic_test/golden.md
@@ -7,6 +7,8 @@
## cpp_related_rule
<pre>
+load("@stardoc//test:testdata/cpp_basic_test/input.bzl", "cpp_related_rule")
+
cpp_related_rule(<a href="#cpp_related_rule-name">name</a>, <a href="#cpp_related_rule-first">first</a>, <a href="#cpp_related_rule-fourth">fourth</a>, <a href="#cpp_related_rule-second">second</a>, <a href="#cpp_related_rule-third">third</a>)
</pre>
diff --git a/test/testdata/filter_rules_test/golden.md b/test/testdata/filter_rules_test/golden.md
index 2801a16..fc9badb 100644
--- a/test/testdata/filter_rules_test/golden.md
+++ b/test/testdata/filter_rules_test/golden.md
@@ -7,6 +7,8 @@
## allowlisted_dep_rule
<pre>
+load("@stardoc//test:testdata/filter_rules_test/input.bzl", "allowlisted_dep_rule")
+
allowlisted_dep_rule(<a href="#allowlisted_dep_rule-name">name</a>, <a href="#allowlisted_dep_rule-first">first</a>, <a href="#allowlisted_dep_rule-second">second</a>)
</pre>
@@ -27,6 +29,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/filter_rules_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
</pre>
diff --git a/test/testdata/function_basic_test/golden.md b/test/testdata/function_basic_test/golden.md
index bf758b1..afa5ae3 100644
--- a/test/testdata/function_basic_test/golden.md
+++ b/test/testdata/function_basic_test/golden.md
@@ -7,6 +7,8 @@
## check_sources
<pre>
+load("@stardoc//test:testdata/function_basic_test/input.bzl", "check_sources")
+
check_sources(<a href="#check_sources-name">name</a>, <a href="#check_sources-required_param">required_param</a>, <a href="#check_sources-bool_param">bool_param</a>, <a href="#check_sources-srcs">srcs</a>, <a href="#check_sources-string_param">string_param</a>, <a href="#check_sources-int_param">int_param</a>, <a href="#check_sources-dict_param">dict_param</a>,
<a href="#check_sources-struct_param">struct_param</a>)
</pre>
@@ -37,6 +39,8 @@
## deprecated_do_not_use
<pre>
+load("@stardoc//test:testdata/function_basic_test/input.bzl", "deprecated_do_not_use")
+
deprecated_do_not_use()
</pre>
@@ -53,6 +57,8 @@
## param_doc_multiline
<pre>
+load("@stardoc//test:testdata/function_basic_test/input.bzl", "param_doc_multiline")
+
param_doc_multiline(<a href="#param_doc_multiline-complex">complex</a>)
</pre>
@@ -71,6 +77,8 @@
## returns_a_thing
<pre>
+load("@stardoc//test:testdata/function_basic_test/input.bzl", "returns_a_thing")
+
returns_a_thing(<a href="#returns_a_thing-name">name</a>)
</pre>
@@ -93,6 +101,8 @@
## undocumented_function
<pre>
+load("@stardoc//test:testdata/function_basic_test/input.bzl", "undocumented_function")
+
undocumented_function(<a href="#undocumented_function-a">a</a>, <a href="#undocumented_function-b">b</a>, <a href="#undocumented_function-c">c</a>)
</pre>
diff --git a/test/testdata/function_wrap_multiple_lines_test/golden.md b/test/testdata/function_wrap_multiple_lines_test/golden.md
index e0f2c40..e453c02 100644
--- a/test/testdata/function_wrap_multiple_lines_test/golden.md
+++ b/test/testdata/function_wrap_multiple_lines_test/golden.md
@@ -7,6 +7,8 @@
## antlr
<pre>
+load("@stardoc//test:testdata/function_wrap_multiple_lines_test/input.bzl", "antlr")
+
antlr(<a href="#antlr-name">name</a>, <a href="#antlr-deps">deps</a>, <a href="#antlr-srcs">srcs</a>, <a href="#antlr-Xconversiontimeout">Xconversiontimeout</a>, <a href="#antlr-Xdbgconversion">Xdbgconversion</a>, <a href="#antlr-Xdbgst">Xdbgst</a>, <a href="#antlr-Xdfa">Xdfa</a>, <a href="#antlr-Xdfaverbose">Xdfaverbose</a>, <a href="#antlr-Xgrtree">Xgrtree</a>, <a href="#antlr-Xm">Xm</a>,
<a href="#antlr-Xmaxdfaedges">Xmaxdfaedges</a>, <a href="#antlr-Xmaxinlinedfastates">Xmaxinlinedfastates</a>, <a href="#antlr-Xminswitchalts">Xminswitchalts</a>, <a href="#antlr-Xmultithreaded">Xmultithreaded</a>, <a href="#antlr-Xnfastates">Xnfastates</a>, <a href="#antlr-Xnocollapse">Xnocollapse</a>,
<a href="#antlr-Xnomergestopstates">Xnomergestopstates</a>, <a href="#antlr-Xnoprune">Xnoprune</a>, <a href="#antlr-XsaveLexer">XsaveLexer</a>, <a href="#antlr-Xwatchconversion">Xwatchconversion</a>, <a href="#antlr-debug">debug</a>, <a href="#antlr-depend">depend</a>, <a href="#antlr-dfa">dfa</a>, <a href="#antlr-dump">dump</a>, <a href="#antlr-imports">imports</a>,
diff --git a/test/testdata/html_tables_template_test/golden.md b/test/testdata/html_tables_template_test/golden.md
index 5ac16a8..3aa953f 100644
--- a/test/testdata/html_tables_template_test/golden.md
+++ b/test/testdata/html_tables_template_test/golden.md
@@ -7,6 +7,8 @@
## example_rule
<pre>
+load("@stardoc//test:testdata/html_tables_template_test/input.bzl", "example_rule")
+
example_rule(<a href="#example_rule-name">name</a>, <a href="#example_rule-first">first</a>, <a href="#example_rule-second">second</a>)
</pre>
@@ -63,6 +65,8 @@
## ExampleProviderInfo
<pre>
+load("@stardoc//test:testdata/html_tables_template_test/input.bzl", "ExampleProviderInfo")
+
ExampleProviderInfo(<a href="#ExampleProviderInfo-foo">foo</a>, <a href="#ExampleProviderInfo-bar">bar</a>, <a href="#ExampleProviderInfo-baz">baz</a>)
</pre>
@@ -115,6 +119,8 @@
## example_function
<pre>
+load("@stardoc//test:testdata/html_tables_template_test/input.bzl", "example_function")
+
example_function(<a href="#example_function-foo">foo</a>, <a href="#example_function-bar">bar</a>)
</pre>
@@ -164,6 +170,8 @@
## example_aspect
<pre>
+load("@stardoc//test:testdata/html_tables_template_test/input.bzl", "example_aspect")
+
example_aspect(<a href="#example_aspect-name">name</a>, <a href="#example_aspect-first">first</a>, <a href="#example_aspect-second">second</a>)
</pre>
diff --git a/test/testdata/java_basic_test/golden.md b/test/testdata/java_basic_test/golden.md
index e98bbd6..bc7caee 100644
--- a/test/testdata/java_basic_test/golden.md
+++ b/test/testdata/java_basic_test/golden.md
@@ -7,6 +7,8 @@
## java_related_rule
<pre>
+load("@stardoc//test:testdata/java_basic_test/input.bzl", "java_related_rule")
+
java_related_rule(<a href="#java_related_rule-name">name</a>, <a href="#java_related_rule-first">first</a>, <a href="#java_related_rule-fourth">fourth</a>, <a href="#java_related_rule-second">second</a>, <a href="#java_related_rule-third">third</a>)
</pre>
diff --git a/test/testdata/local_repository_test/golden.md b/test/testdata/local_repository_test/golden.md
index d06bf71..e0c8110 100755
--- a/test/testdata/local_repository_test/golden.md
+++ b/test/testdata/local_repository_test/golden.md
@@ -7,6 +7,8 @@
## min
<pre>
+load("@local_repository_test//:input.bzl", "min")
+
min(<a href="#min-integers">integers</a>)
</pre>
diff --git a/test/testdata/macro_kwargs_test/golden.md b/test/testdata/macro_kwargs_test/golden.md
index c4e95cd..02f4246 100644
--- a/test/testdata/macro_kwargs_test/golden.md
+++ b/test/testdata/macro_kwargs_test/golden.md
@@ -7,6 +7,8 @@
## macro_with_args
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args")
+
macro_with_args(<a href="#macro_with_args-name">name</a>, <a href="#macro_with_args-args">*args</a>)
</pre>
@@ -30,6 +32,8 @@
## macro_with_args_and_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_and_kwonly")
+
macro_with_args_and_kwonly(<a href="#macro_with_args_and_kwonly-args">*args</a>, <a href="#macro_with_args_and_kwonly-name">name</a>)
</pre>
@@ -49,6 +53,8 @@
## macro_with_args_and_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_and_kwonlys")
+
macro_with_args_and_kwonlys(<a href="#macro_with_args_and_kwonlys-args">*args</a>, <a href="#macro_with_args_and_kwonlys-name">name</a>, <a href="#macro_with_args_and_kwonlys-number">number</a>)
</pre>
@@ -69,6 +75,8 @@
## macro_with_args_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_kwonly_and_kwargs")
+
macro_with_args_kwonly_and_kwargs(<a href="#macro_with_args_kwonly_and_kwargs-args">*args</a>, <a href="#macro_with_args_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_args_kwonly_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -89,6 +97,8 @@
## macro_with_args_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_kwonlys_and_kwargs")
+
macro_with_args_kwonlys_and_kwargs(<a href="#macro_with_args_kwonlys_and_kwargs-args">*args</a>, <a href="#macro_with_args_kwonlys_and_kwargs-name">name</a>, <a href="#macro_with_args_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_args_kwonlys_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -110,6 +120,8 @@
## macro_with_both
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_both")
+
macro_with_both(<a href="#macro_with_both-name">name</a>, <a href="#macro_with_both-number">number</a>, <a href="#macro_with_both-args">*args</a>, <a href="#macro_with_both-kwargs">**kwargs</a>)
</pre>
@@ -138,6 +150,8 @@
## macro_with_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwargs")
+
macro_with_kwargs(<a href="#macro_with_kwargs-name">name</a>, <a href="#macro_with_kwargs-config">config</a>, <a href="#macro_with_kwargs-deps">deps</a>, <a href="#macro_with_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -170,6 +184,8 @@
## macro_with_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonly")
+
macro_with_kwonly(*, <a href="#macro_with_kwonly-name">name</a>)
</pre>
@@ -188,6 +204,8 @@
## macro_with_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonly_and_kwargs")
+
macro_with_kwonly_and_kwargs(*, <a href="#macro_with_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_kwonly_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -207,6 +225,8 @@
## macro_with_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonlys")
+
macro_with_kwonlys(*, <a href="#macro_with_kwonlys-name">name</a>, <a href="#macro_with_kwonlys-number">number</a>)
</pre>
@@ -226,6 +246,8 @@
## macro_with_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonlys_and_kwargs")
+
macro_with_kwonlys_and_kwargs(*, <a href="#macro_with_kwonlys_and_kwargs-name">name</a>, <a href="#macro_with_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_kwonlys_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -246,6 +268,8 @@
## macro_with_only_args
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_only_args")
+
macro_with_only_args(<a href="#macro_with_only_args-args">*args</a>)
</pre>
@@ -264,6 +288,8 @@
## macro_with_only_args_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_only_args_and_kwargs")
+
macro_with_only_args_and_kwargs(<a href="#macro_with_only_args_and_kwargs-args">*args</a>, <a href="#macro_with_only_args_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -283,6 +309,8 @@
## macro_with_only_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_only_kwargs")
+
macro_with_only_kwargs(<a href="#macro_with_only_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -301,6 +329,8 @@
## macro_with_ordinary_param_and_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_and_kwonlys")
+
macro_with_ordinary_param_and_kwonlys(<a href="#macro_with_ordinary_param_and_kwonlys-name">name</a>, *, <a href="#macro_with_ordinary_param_and_kwonlys-number">number</a>, <a href="#macro_with_ordinary_param_and_kwonlys-config">config</a>)
</pre>
@@ -321,6 +351,8 @@
## macro_with_ordinary_param_args_and_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_args_and_kwonlys")
+
macro_with_ordinary_param_args_and_kwonlys(<a href="#macro_with_ordinary_param_args_and_kwonlys-name">name</a>, <a href="#macro_with_ordinary_param_args_and_kwonlys-args">*args</a>, <a href="#macro_with_ordinary_param_args_and_kwonlys-number">number</a>, <a href="#macro_with_ordinary_param_args_and_kwonlys-config">config</a>)
</pre>
@@ -342,6 +374,8 @@
## macro_with_ordinary_param_args_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_args_kwonlys_and_kwargs")
+
macro_with_ordinary_param_args_kwonlys_and_kwargs(<a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-name">name</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-args">*args</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -364,6 +398,8 @@
## macro_with_ordinary_param_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_kwonlys_and_kwargs")
+
macro_with_ordinary_param_kwonlys_and_kwargs(<a href="#macro_with_ordinary_param_kwonlys_and_kwargs-name">name</a>, *, <a href="#macro_with_ordinary_param_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_ordinary_param_kwonlys_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_param_kwonlys_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -385,6 +421,8 @@
## macro_with_ordinary_params_and_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_and_kwonly")
+
macro_with_ordinary_params_and_kwonly(<a href="#macro_with_ordinary_params_and_kwonly-name">name</a>, <a href="#macro_with_ordinary_params_and_kwonly-number">number</a>, *, <a href="#macro_with_ordinary_params_and_kwonly-config">config</a>)
</pre>
@@ -405,6 +443,8 @@
## macro_with_ordinary_params_args_and_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_args_and_kwonly")
+
macro_with_ordinary_params_args_and_kwonly(<a href="#macro_with_ordinary_params_args_and_kwonly-name">name</a>, <a href="#macro_with_ordinary_params_args_and_kwonly-number">number</a>, <a href="#macro_with_ordinary_params_args_and_kwonly-args">*args</a>, <a href="#macro_with_ordinary_params_args_and_kwonly-config">config</a>)
</pre>
@@ -426,6 +466,8 @@
## macro_with_ordinary_params_args_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_args_kwonly_and_kwargs")
+
macro_with_ordinary_params_args_kwonly_and_kwargs(<a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-number">number</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-args">*args</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-kwargs">**kwargs</a>)
</pre>
@@ -448,6 +490,8 @@
## macro_with_ordinary_params_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_kwonly_and_kwargs")
+
macro_with_ordinary_params_kwonly_and_kwargs(<a href="#macro_with_ordinary_params_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_ordinary_params_kwonly_and_kwargs-number">number</a>, *, <a href="#macro_with_ordinary_params_kwonly_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_params_kwonly_and_kwargs-kwargs">**kwargs</a>)
</pre>
diff --git a/test/testdata/macro_kwargs_test/legacy_golden.md b/test/testdata/macro_kwargs_test/legacy_golden.md
index 0b1f040..0aa9531 100644
--- a/test/testdata/macro_kwargs_test/legacy_golden.md
+++ b/test/testdata/macro_kwargs_test/legacy_golden.md
@@ -7,6 +7,8 @@
## macro_with_args
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args")
+
macro_with_args(<a href="#macro_with_args-name">name</a>, <a href="#macro_with_args-args">args</a>)
</pre>
@@ -30,6 +32,8 @@
## macro_with_args_and_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_and_kwonly")
+
macro_with_args_and_kwonly(<a href="#macro_with_args_and_kwonly-name">name</a>, <a href="#macro_with_args_and_kwonly-args">args</a>)
</pre>
@@ -49,6 +53,8 @@
## macro_with_args_and_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_and_kwonlys")
+
macro_with_args_and_kwonlys(<a href="#macro_with_args_and_kwonlys-name">name</a>, <a href="#macro_with_args_and_kwonlys-number">number</a>, <a href="#macro_with_args_and_kwonlys-args">args</a>)
</pre>
@@ -69,6 +75,8 @@
## macro_with_args_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_kwonly_and_kwargs")
+
macro_with_args_kwonly_and_kwargs(<a href="#macro_with_args_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_args_kwonly_and_kwargs-args">args</a>, <a href="#macro_with_args_kwonly_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -89,6 +97,8 @@
## macro_with_args_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_args_kwonlys_and_kwargs")
+
macro_with_args_kwonlys_and_kwargs(<a href="#macro_with_args_kwonlys_and_kwargs-name">name</a>, <a href="#macro_with_args_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_args_kwonlys_and_kwargs-args">args</a>, <a href="#macro_with_args_kwonlys_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -110,6 +120,8 @@
## macro_with_both
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_both")
+
macro_with_both(<a href="#macro_with_both-name">name</a>, <a href="#macro_with_both-number">number</a>, <a href="#macro_with_both-args">args</a>, <a href="#macro_with_both-kwargs">kwargs</a>)
</pre>
@@ -138,6 +150,8 @@
## macro_with_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwargs")
+
macro_with_kwargs(<a href="#macro_with_kwargs-name">name</a>, <a href="#macro_with_kwargs-config">config</a>, <a href="#macro_with_kwargs-deps">deps</a>, <a href="#macro_with_kwargs-kwargs">kwargs</a>)
</pre>
@@ -170,6 +184,8 @@
## macro_with_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonly")
+
macro_with_kwonly(<a href="#macro_with_kwonly-name">name</a>)
</pre>
@@ -188,6 +204,8 @@
## macro_with_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonly_and_kwargs")
+
macro_with_kwonly_and_kwargs(<a href="#macro_with_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_kwonly_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -207,6 +225,8 @@
## macro_with_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonlys")
+
macro_with_kwonlys(<a href="#macro_with_kwonlys-name">name</a>, <a href="#macro_with_kwonlys-number">number</a>)
</pre>
@@ -226,6 +246,8 @@
## macro_with_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_kwonlys_and_kwargs")
+
macro_with_kwonlys_and_kwargs(<a href="#macro_with_kwonlys_and_kwargs-name">name</a>, <a href="#macro_with_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_kwonlys_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -246,6 +268,8 @@
## macro_with_only_args
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_only_args")
+
macro_with_only_args(<a href="#macro_with_only_args-args">args</a>)
</pre>
@@ -264,6 +288,8 @@
## macro_with_only_args_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_only_args_and_kwargs")
+
macro_with_only_args_and_kwargs(<a href="#macro_with_only_args_and_kwargs-args">args</a>, <a href="#macro_with_only_args_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -283,6 +309,8 @@
## macro_with_only_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_only_kwargs")
+
macro_with_only_kwargs(<a href="#macro_with_only_kwargs-kwargs">kwargs</a>)
</pre>
@@ -301,6 +329,8 @@
## macro_with_ordinary_param_and_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_and_kwonlys")
+
macro_with_ordinary_param_and_kwonlys(<a href="#macro_with_ordinary_param_and_kwonlys-name">name</a>, <a href="#macro_with_ordinary_param_and_kwonlys-number">number</a>, <a href="#macro_with_ordinary_param_and_kwonlys-config">config</a>)
</pre>
@@ -321,6 +351,8 @@
## macro_with_ordinary_param_args_and_kwonlys
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_args_and_kwonlys")
+
macro_with_ordinary_param_args_and_kwonlys(<a href="#macro_with_ordinary_param_args_and_kwonlys-name">name</a>, <a href="#macro_with_ordinary_param_args_and_kwonlys-number">number</a>, <a href="#macro_with_ordinary_param_args_and_kwonlys-config">config</a>, <a href="#macro_with_ordinary_param_args_and_kwonlys-args">args</a>)
</pre>
@@ -342,6 +374,8 @@
## macro_with_ordinary_param_args_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_args_kwonlys_and_kwargs")
+
macro_with_ordinary_param_args_kwonlys_and_kwargs(<a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-name">name</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-args">args</a>, <a href="#macro_with_ordinary_param_args_kwonlys_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -364,6 +398,8 @@
## macro_with_ordinary_param_kwonlys_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_param_kwonlys_and_kwargs")
+
macro_with_ordinary_param_kwonlys_and_kwargs(<a href="#macro_with_ordinary_param_kwonlys_and_kwargs-name">name</a>, <a href="#macro_with_ordinary_param_kwonlys_and_kwargs-number">number</a>, <a href="#macro_with_ordinary_param_kwonlys_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_param_kwonlys_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -385,6 +421,8 @@
## macro_with_ordinary_params_and_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_and_kwonly")
+
macro_with_ordinary_params_and_kwonly(<a href="#macro_with_ordinary_params_and_kwonly-name">name</a>, <a href="#macro_with_ordinary_params_and_kwonly-number">number</a>, <a href="#macro_with_ordinary_params_and_kwonly-config">config</a>)
</pre>
@@ -405,6 +443,8 @@
## macro_with_ordinary_params_args_and_kwonly
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_args_and_kwonly")
+
macro_with_ordinary_params_args_and_kwonly(<a href="#macro_with_ordinary_params_args_and_kwonly-name">name</a>, <a href="#macro_with_ordinary_params_args_and_kwonly-number">number</a>, <a href="#macro_with_ordinary_params_args_and_kwonly-config">config</a>, <a href="#macro_with_ordinary_params_args_and_kwonly-args">args</a>)
</pre>
@@ -426,6 +466,8 @@
## macro_with_ordinary_params_args_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_args_kwonly_and_kwargs")
+
macro_with_ordinary_params_args_kwonly_and_kwargs(<a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-number">number</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-args">args</a>, <a href="#macro_with_ordinary_params_args_kwonly_and_kwargs-kwargs">kwargs</a>)
</pre>
@@ -448,6 +490,8 @@
## macro_with_ordinary_params_kwonly_and_kwargs
<pre>
+load("@stardoc//test:testdata/macro_kwargs_test/input.bzl", "macro_with_ordinary_params_kwonly_and_kwargs")
+
macro_with_ordinary_params_kwonly_and_kwargs(<a href="#macro_with_ordinary_params_kwonly_and_kwargs-name">name</a>, <a href="#macro_with_ordinary_params_kwonly_and_kwargs-number">number</a>, <a href="#macro_with_ordinary_params_kwonly_and_kwargs-config">config</a>, <a href="#macro_with_ordinary_params_kwonly_and_kwargs-kwargs">kwargs</a>)
</pre>
diff --git a/test/testdata/misc_apis_test/golden.md b/test/testdata/misc_apis_test/golden.md
index 4368d43..6a311cc 100644
--- a/test/testdata/misc_apis_test/golden.md
+++ b/test/testdata/misc_apis_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/misc_apis_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-deps">deps</a>, <a href="#my_rule-src">src</a>, <a href="#my_rule-out">out</a>, <a href="#my_rule-extra_arguments">extra_arguments</a>, <a href="#my_rule-tool">tool</a>)
</pre>
@@ -30,6 +32,8 @@
## MyInfo
<pre>
+load("@stardoc//test:testdata/misc_apis_test/input.bzl", "MyInfo")
+
MyInfo(<a href="#MyInfo-foo">foo</a>, <a href="#MyInfo-bar">bar</a>)
</pre>
@@ -46,6 +50,8 @@
## exercise_the_api
<pre>
+load("@stardoc//test:testdata/misc_apis_test/input.bzl", "exercise_the_api")
+
exercise_the_api()
</pre>
@@ -58,6 +64,8 @@
## my_rule_impl
<pre>
+load("@stardoc//test:testdata/misc_apis_test/input.bzl", "my_rule_impl")
+
my_rule_impl(<a href="#my_rule_impl-ctx">ctx</a>)
</pre>
diff --git a/test/testdata/multi_level_namespace_test/golden.md b/test/testdata/multi_level_namespace_test/golden.md
index 3e753c0..ba65c5b 100644
--- a/test/testdata/multi_level_namespace_test/golden.md
+++ b/test/testdata/multi_level_namespace_test/golden.md
@@ -7,6 +7,8 @@
## my_namespace.foo.bar.baz
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test/input.bzl", "my_namespace")
+
my_namespace.foo.bar.baz()
</pre>
@@ -19,6 +21,8 @@
## my_namespace.math.min
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test/input.bzl", "my_namespace")
+
my_namespace.math.min(<a href="#my_namespace.math.min-integers">integers</a>)
</pre>
@@ -41,6 +45,8 @@
## my_namespace.min
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test/input.bzl", "my_namespace")
+
my_namespace.min(<a href="#my_namespace.min-integers">integers</a>)
</pre>
@@ -63,6 +69,8 @@
## my_namespace.one.three.does_nothing
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test/input.bzl", "my_namespace")
+
my_namespace.one.three.does_nothing()
</pre>
@@ -75,6 +83,8 @@
## my_namespace.one.two.min
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test/input.bzl", "my_namespace")
+
my_namespace.one.two.min(<a href="#my_namespace.one.two.min-integers">integers</a>)
</pre>
diff --git a/test/testdata/multi_level_namespace_test_with_allowlist/golden.md b/test/testdata/multi_level_namespace_test_with_allowlist/golden.md
index f35b10d..2e4a52e 100644
--- a/test/testdata/multi_level_namespace_test_with_allowlist/golden.md
+++ b/test/testdata/multi_level_namespace_test_with_allowlist/golden.md
@@ -9,6 +9,8 @@
## my_namespace.math.min
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test_with_allowlist/input.bzl", "my_namespace")
+
my_namespace.math.min(<a href="#my_namespace.math.min-integers">integers</a>)
</pre>
@@ -27,6 +29,8 @@
## my_namespace.min
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test_with_allowlist/input.bzl", "my_namespace")
+
my_namespace.min(<a href="#my_namespace.min-integers">integers</a>)
</pre>
@@ -45,6 +49,8 @@
## other_namespace.foo.nothing
<pre>
+load("@stardoc//test:testdata/multi_level_namespace_test_with_allowlist/input.bzl", "other_namespace")
+
other_namespace.foo.nothing()
</pre>
diff --git a/test/testdata/multiple_files_test/golden.md b/test/testdata/multiple_files_test/golden.md
index 0fab337..8fe3259 100644
--- a/test/testdata/multiple_files_test/golden.md
+++ b/test/testdata/multiple_files_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/multiple_files_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
</pre>
@@ -27,6 +29,8 @@
## other_rule
<pre>
+load("@stardoc//test:testdata/multiple_files_test/input.bzl", "other_rule")
+
other_rule(<a href="#other_rule-name">name</a>, <a href="#other_rule-fourth">fourth</a>, <a href="#other_rule-third">third</a>)
</pre>
@@ -47,6 +51,8 @@
## yet_another_rule
<pre>
+load("@stardoc//test:testdata/multiple_files_test/input.bzl", "yet_another_rule")
+
yet_another_rule(<a href="#yet_another_rule-name">name</a>, <a href="#yet_another_rule-fifth">fifth</a>)
</pre>
@@ -66,6 +72,8 @@
## top_fun
<pre>
+load("@stardoc//test:testdata/multiple_files_test/input.bzl", "top_fun")
+
top_fun(<a href="#top_fun-a">a</a>, <a href="#top_fun-b">b</a>, <a href="#top_fun-c">c</a>)
</pre>
diff --git a/test/testdata/multiple_files_test/noenable_bzlmod_golden.md b/test/testdata/multiple_files_test/noenable_bzlmod_golden.md
new file mode 100644
index 0000000..3903b30
--- /dev/null
+++ b/test/testdata/multiple_files_test/noenable_bzlmod_golden.md
@@ -0,0 +1,91 @@
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+A direct dependency file of the input file.
+
+<a id="my_rule"></a>
+
+## my_rule
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/multiple_files_test/input.bzl", "my_rule")
+
+my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
+</pre>
+
+This is my rule. It does stuff.
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="my_rule-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="my_rule-first"></a>first | first my_rule doc string | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
+| <a id="my_rule-second"></a>second | - | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | required | |
+
+
+<a id="other_rule"></a>
+
+## other_rule
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/multiple_files_test/input.bzl", "other_rule")
+
+other_rule(<a href="#other_rule-name">name</a>, <a href="#other_rule-fourth">fourth</a>, <a href="#other_rule-third">third</a>)
+</pre>
+
+This is another rule.
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="other_rule-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="other_rule-fourth"></a>fourth | - | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | required | |
+| <a id="other_rule-third"></a>third | third other_rule doc string | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
+
+
+<a id="yet_another_rule"></a>
+
+## yet_another_rule
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/multiple_files_test/input.bzl", "yet_another_rule")
+
+yet_another_rule(<a href="#yet_another_rule-name">name</a>, <a href="#yet_another_rule-fifth">fifth</a>)
+</pre>
+
+This is yet another rule
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="yet_another_rule-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="yet_another_rule-fifth"></a>fifth | - | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
+
+
+<a id="top_fun"></a>
+
+## top_fun
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/multiple_files_test/input.bzl", "top_fun")
+
+top_fun(<a href="#top_fun-a">a</a>, <a href="#top_fun-b">b</a>, <a href="#top_fun-c">c</a>)
+</pre>
+
+
+
+**PARAMETERS**
+
+
+| Name | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="top_fun-a"></a>a | <p align="center"> - </p> | none |
+| <a id="top_fun-b"></a>b | <p align="center"> - </p> | none |
+| <a id="top_fun-c"></a>c | <p align="center"> - </p> | none |
+
+
diff --git a/test/testdata/multiple_rules_test/golden.md b/test/testdata/multiple_rules_test/golden.md
index 085fec8..fa470fc 100644
--- a/test/testdata/multiple_rules_test/golden.md
+++ b/test/testdata/multiple_rules_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/multiple_rules_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
</pre>
@@ -27,6 +29,8 @@
## other_rule
<pre>
+load("@stardoc//test:testdata/multiple_rules_test/input.bzl", "other_rule")
+
other_rule(<a href="#other_rule-name">name</a>, <a href="#other_rule-fourth">fourth</a>, <a href="#other_rule-third">third</a>)
</pre>
@@ -47,6 +51,8 @@
## yet_another_rule
<pre>
+load("@stardoc//test:testdata/multiple_rules_test/input.bzl", "yet_another_rule")
+
yet_another_rule(<a href="#yet_another_rule-name">name</a>, <a href="#yet_another_rule-fifth">fifth</a>)
</pre>
@@ -66,6 +72,8 @@
## my_rule_impl
<pre>
+load("@stardoc//test:testdata/multiple_rules_test/input.bzl", "my_rule_impl")
+
my_rule_impl(<a href="#my_rule_impl-ctx">ctx</a>)
</pre>
diff --git a/test/testdata/namespace_test/golden.md b/test/testdata/namespace_test/golden.md
index 6e4c453..a8ee42e 100644
--- a/test/testdata/namespace_test/golden.md
+++ b/test/testdata/namespace_test/golden.md
@@ -7,6 +7,8 @@
## my_namespace.assert_non_empty
<pre>
+load("@stardoc//test:testdata/namespace_test/input.bzl", "my_namespace")
+
my_namespace.assert_non_empty(<a href="#my_namespace.assert_non_empty-some_list">some_list</a>, <a href="#my_namespace.assert_non_empty-other_list">other_list</a>)
</pre>
@@ -26,6 +28,8 @@
## my_namespace.join_strings
<pre>
+load("@stardoc//test:testdata/namespace_test/input.bzl", "my_namespace")
+
my_namespace.join_strings(<a href="#my_namespace.join_strings-strings">strings</a>, <a href="#my_namespace.join_strings-delimiter">delimiter</a>)
</pre>
@@ -49,6 +53,8 @@
## my_namespace.min
<pre>
+load("@stardoc//test:testdata/namespace_test/input.bzl", "my_namespace")
+
my_namespace.min(<a href="#my_namespace.min-integers">integers</a>)
</pre>
diff --git a/test/testdata/provider_basic_test/golden.md b/test/testdata/provider_basic_test/golden.md
index ec94c4a..29979b3 100644
--- a/test/testdata/provider_basic_test/golden.md
+++ b/test/testdata/provider_basic_test/golden.md
@@ -7,6 +7,8 @@
## MyCustomInitInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyCustomInitInfo")
+
MyCustomInitInfo(<a href="#MyCustomInitInfo-foo">foo</a>, <a href="#MyCustomInitInfo-bar">bar</a>)
</pre>
@@ -28,6 +30,8 @@
## MyCustomInitWithDefaultParamValueInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyCustomInitWithDefaultParamValueInfo")
+
MyCustomInitWithDefaultParamValueInfo(<a href="#MyCustomInitWithDefaultParamValueInfo-foo">foo</a>, <a href="#MyCustomInitWithDefaultParamValueInfo-bar">bar</a>)
</pre>
@@ -50,6 +54,8 @@
## MyCustomInitWithDocumentedParamInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyCustomInitWithDocumentedParamInfo")
+
MyCustomInitWithDocumentedParamInfo(<a href="#MyCustomInitWithDocumentedParamInfo-_init-foo">foo</a>, <a href="#MyCustomInitWithDocumentedParamInfo-_init-bar">bar</a>)
</pre>
@@ -78,6 +84,8 @@
## MyCustomInitWithMismatchingConstructorParamsAndFieldsInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyCustomInitWithMismatchingConstructorParamsAndFieldsInfo")
+
MyCustomInitWithMismatchingConstructorParamsAndFieldsInfo(<a href="#MyCustomInitWithMismatchingConstructorParamsAndFieldsInfo-_init-foo">foo</a>, <a href="#MyCustomInitWithMismatchingConstructorParamsAndFieldsInfo-_init-bar">bar</a>)
</pre>
@@ -106,6 +114,8 @@
## MyDeprecatedInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyDeprecatedInfo")
+
MyDeprecatedInfo()
</pre>
@@ -129,6 +139,8 @@
## MyFooInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyFooInfo")
+
MyFooInfo(<a href="#MyFooInfo-bar">bar</a>, <a href="#MyFooInfo-baz">baz</a>)
</pre>
@@ -147,6 +159,8 @@
## MyPoorlyDocumentedInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyPoorlyDocumentedInfo")
+
MyPoorlyDocumentedInfo()
</pre>
@@ -156,6 +170,8 @@
## MyVeryDocumentedInfo
<pre>
+load("@stardoc//test:testdata/provider_basic_test/input.bzl", "MyVeryDocumentedInfo")
+
MyVeryDocumentedInfo(<a href="#MyVeryDocumentedInfo-favorite_food">favorite_food</a>, <a href="#MyVeryDocumentedInfo-favorite_color">favorite_color</a>)
</pre>
diff --git a/test/testdata/providers_for_attributes_test/golden.md b/test/testdata/providers_for_attributes_test/golden.md
index b259996..a583c6f 100644
--- a/test/testdata/providers_for_attributes_test/golden.md
+++ b/test/testdata/providers_for_attributes_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/providers_for_attributes_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-fifth">fifth</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-fourth">fourth</a>, <a href="#my_rule-second">second</a>, <a href="#my_rule-sixth">sixth</a>, <a href="#my_rule-third">third</a>)
</pre>
@@ -31,6 +33,8 @@
## MyProviderInfo
<pre>
+load("@stardoc//test:testdata/providers_for_attributes_test/input.bzl", "MyProviderInfo")
+
MyProviderInfo(<a href="#MyProviderInfo-foo">foo</a>, <a href="#MyProviderInfo-bar">bar</a>)
</pre>
@@ -47,6 +51,8 @@
## OtherProviderInfo
<pre>
+load("@stardoc//test:testdata/providers_for_attributes_test/input.bzl", "OtherProviderInfo")
+
OtherProviderInfo()
</pre>
@@ -56,6 +62,8 @@
## my_rule_impl
<pre>
+load("@stardoc//test:testdata/providers_for_attributes_test/input.bzl", "my_rule_impl")
+
my_rule_impl(<a href="#my_rule_impl-ctx">ctx</a>)
</pre>
diff --git a/test/testdata/pure_markdown_template_test/golden.md b/test/testdata/pure_markdown_template_test/golden.md
index d39dbb5..96e47af 100644
--- a/test/testdata/pure_markdown_template_test/golden.md
+++ b/test/testdata/pure_markdown_template_test/golden.md
@@ -7,6 +7,8 @@
## example_rule
<pre>
+load("@stardoc//test:testdata/pure_markdown_template_test/input.bzl", "example_rule")
+
example_rule(<a href="#example_rule-name">name</a>, <a href="#example_rule-first">first</a>, <a href="#example_rule-second">second</a>)
</pre>
@@ -27,6 +29,8 @@
## ExampleProviderInfo
<pre>
+load("@stardoc//test:testdata/pure_markdown_template_test/input.bzl", "ExampleProviderInfo")
+
ExampleProviderInfo(<a href="#ExampleProviderInfo-foo">foo</a>, <a href="#ExampleProviderInfo-bar">bar</a>, <a href="#ExampleProviderInfo-baz">baz</a>)
</pre>
@@ -46,6 +50,8 @@
## example_function
<pre>
+load("@stardoc//test:testdata/pure_markdown_template_test/input.bzl", "example_function")
+
example_function(<a href="#example_function-foo">foo</a>, <a href="#example_function-bar">bar</a>)
</pre>
@@ -65,6 +71,8 @@
## example_aspect
<pre>
+load("@stardoc//test:testdata/pure_markdown_template_test/input.bzl", "example_aspect")
+
example_aspect(<a href="#example_aspect-name">name</a>, <a href="#example_aspect-first">first</a>, <a href="#example_aspect-second">second</a>)
</pre>
diff --git a/test/testdata/py_rule_test/golden.md b/test/testdata/py_rule_test/golden.md
index d2a8394..6a37594 100644
--- a/test/testdata/py_rule_test/golden.md
+++ b/test/testdata/py_rule_test/golden.md
@@ -7,6 +7,8 @@
## py_related_rule
<pre>
+load("@stardoc//test:testdata/py_rule_test/input.bzl", "py_related_rule")
+
py_related_rule(<a href="#py_related_rule-name">name</a>, <a href="#py_related_rule-fifth">fifth</a>, <a href="#py_related_rule-first">first</a>, <a href="#py_related_rule-fourth">fourth</a>, <a href="#py_related_rule-second">second</a>, <a href="#py_related_rule-sixth">sixth</a>, <a href="#py_related_rule-third">third</a>)
</pre>
diff --git a/test/testdata/repo_rules_test/golden.md b/test/testdata/repo_rules_test/golden.md
index ac43415..e3979f1 100644
--- a/test/testdata/repo_rules_test/golden.md
+++ b/test/testdata/repo_rules_test/golden.md
@@ -7,6 +7,8 @@
## my_repo
<pre>
+load("@stardoc//test:testdata/repo_rules_test/input.bzl", "my_repo")
+
my_repo(<a href="#my_repo-name">name</a>, <a href="#my_repo-repo_mapping">repo_mapping</a>, <a href="#my_repo-useless">useless</a>)
</pre>
diff --git a/test/testdata/same_level_file_test/BUILD b/test/testdata/same_level_file_test/BUILD
index 0f4f48a..d5ef45e 100644
--- a/test/testdata/same_level_file_test/BUILD
+++ b/test/testdata/same_level_file_test/BUILD
@@ -9,6 +9,7 @@
[
"dep.bzl",
"golden.md",
+ "noenable_bzlmod_golden.md",
"input.bzl",
],
)
diff --git a/test/testdata/same_level_file_test/golden.md b/test/testdata/same_level_file_test/golden.md
index 66b9a97..d4761bf 100644
--- a/test/testdata/same_level_file_test/golden.md
+++ b/test/testdata/same_level_file_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test/testdata/same_level_file_test:input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
</pre>
diff --git a/test/testdata/same_level_file_test/noenable_bzlmod_golden.md b/test/testdata/same_level_file_test/noenable_bzlmod_golden.md
new file mode 100644
index 0000000..e7870e7
--- /dev/null
+++ b/test/testdata/same_level_file_test/noenable_bzlmod_golden.md
@@ -0,0 +1,26 @@
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+
+
+<a id="my_rule"></a>
+
+## my_rule
+
+<pre>
+load("@io_bazel_stardoc//test/testdata/same_level_file_test:input.bzl", "my_rule")
+
+my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
+</pre>
+
+This is my rule. It does stuff.
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="my_rule-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="my_rule-first"></a>first | first my_rule doc string | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
+| <a id="my_rule-second"></a>second | - | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | required | |
+
+
diff --git a/test/testdata/simple_test/golden.md b/test/testdata/simple_test/golden.md
index a5a2e39..8f7456a 100644
--- a/test/testdata/simple_test/golden.md
+++ b/test/testdata/simple_test/golden.md
@@ -7,6 +7,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/simple_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-fourth">fourth</a>, <a href="#my_rule-second">second</a>, <a href="#my_rule-third">third</a>)
</pre>
diff --git a/test/testdata/struct_default_value_test/golden.md b/test/testdata/struct_default_value_test/golden.md
index 38f9908..3260c2a 100644
--- a/test/testdata/struct_default_value_test/golden.md
+++ b/test/testdata/struct_default_value_test/golden.md
@@ -7,6 +7,8 @@
## check_struct_default_values
<pre>
+load("@stardoc//test:testdata/struct_default_value_test/input.bzl", "check_struct_default_values")
+
check_struct_default_values(<a href="#check_struct_default_values-struct_no_args">struct_no_args</a>, <a href="#check_struct_default_values-struct_arg">struct_arg</a>, <a href="#check_struct_default_values-struct_args">struct_args</a>, <a href="#check_struct_default_values-struct_int_args">struct_int_args</a>,
<a href="#check_struct_default_values-struct_struct_args">struct_struct_args</a>)
</pre>
diff --git a/test/testdata/table_of_contents_test/golden.md b/test/testdata/table_of_contents_test/golden.md
index a49b49c..cc2da34 100644
--- a/test/testdata/table_of_contents_test/golden.md
+++ b/test/testdata/table_of_contents_test/golden.md
@@ -36,6 +36,8 @@
## my_rule
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "my_rule")
+
my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-fourth">fourth</a>, <a href="#my_rule-second">second</a>, <a href="#my_rule-third">third</a>)
</pre>
@@ -58,6 +60,8 @@
## MyFooInfo
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "MyFooInfo")
+
MyFooInfo(<a href="#MyFooInfo-bar">bar</a>, <a href="#MyFooInfo-baz">baz</a>)
</pre>
@@ -76,6 +80,8 @@
## MyVeryDocumentedInfo
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "MyVeryDocumentedInfo")
+
MyVeryDocumentedInfo(<a href="#MyVeryDocumentedInfo-favorite_food">favorite_food</a>, <a href="#MyVeryDocumentedInfo-favorite_color">favorite_color</a>)
</pre>
@@ -96,6 +102,8 @@
## check_sources
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "check_sources")
+
check_sources(<a href="#check_sources-name">name</a>, <a href="#check_sources-required_param">required_param</a>, <a href="#check_sources-bool_param">bool_param</a>, <a href="#check_sources-srcs">srcs</a>, <a href="#check_sources-string_param">string_param</a>, <a href="#check_sources-int_param">int_param</a>, <a href="#check_sources-dict_param">dict_param</a>,
<a href="#check_sources-struct_param">struct_param</a>)
</pre>
@@ -126,6 +134,8 @@
## returns_a_thing
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "returns_a_thing")
+
returns_a_thing(<a href="#returns_a_thing-name">name</a>)
</pre>
@@ -148,6 +158,8 @@
## my_aspect
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "my_aspect")
+
my_aspect(<a href="#my_aspect-name">name</a>, <a href="#my_aspect-first">first</a>, <a href="#my_aspect-second">second</a>)
</pre>
@@ -179,6 +191,8 @@
## other_aspect
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "other_aspect")
+
other_aspect(<a href="#other_aspect-name">name</a>, <a href="#other_aspect-third">third</a>)
</pre>
@@ -202,6 +216,8 @@
## my_repo
<pre>
+load("@stardoc//test:testdata/table_of_contents_test/input.bzl", "my_repo")
+
my_repo(<a href="#my_repo-name">name</a>, <a href="#my_repo-repo_mapping">repo_mapping</a>, <a href="#my_repo-useless">useless</a>)
</pre>
diff --git a/test/testdata/table_of_contents_test/noenable_bzlmod_golden.md b/test/testdata/table_of_contents_test/noenable_bzlmod_golden.md
new file mode 100644
index 0000000..5039f2c
--- /dev/null
+++ b/test/testdata/table_of_contents_test/noenable_bzlmod_golden.md
@@ -0,0 +1,283 @@
+<!-- Generated with Stardoc: http://skydoc.bazel.build -->
+
+Test rules / providers / etc for the table of contents generation test.
+
+
+## Rules
+
+- [my_rule](#my_rule)
+
+## Providers
+
+- [MyFooInfo](#MyFooInfo)
+- [MyVeryDocumentedInfo](#MyVeryDocumentedInfo)
+
+## Functions
+
+- [check_sources](#check_sources)
+- [returns_a_thing](#returns_a_thing)
+
+## Aspects
+
+- [my_aspect](#my_aspect)
+- [other_aspect](#other_aspect)
+
+## Repository Rules
+
+- [my_repo](#my_repo)
+
+## Module Extensions
+
+- [my_ext](#my_ext)
+
+
+<a id="my_rule"></a>
+
+## my_rule
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "my_rule")
+
+my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-fourth">fourth</a>, <a href="#my_rule-second">second</a>, <a href="#my_rule-third">third</a>)
+</pre>
+
+This is my rule. It does stuff.
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="my_rule-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="my_rule-first"></a>first | first doc string | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
+| <a id="my_rule-fourth"></a>fourth | fourth doc string | Boolean | optional | `False` |
+| <a id="my_rule-second"></a>second | - | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | required | |
+| <a id="my_rule-third"></a>third | - | <a href="https://bazel.build/concepts/labels">Label</a> | required | |
+
+
+<a id="MyFooInfo"></a>
+
+## MyFooInfo
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "MyFooInfo")
+
+MyFooInfo(<a href="#MyFooInfo-bar">bar</a>, <a href="#MyFooInfo-baz">baz</a>)
+</pre>
+
+Stores information about a foo.
+
+**FIELDS**
+
+| Name | Description |
+| :------------- | :------------- |
+| <a id="MyFooInfo-bar"></a>bar | - |
+| <a id="MyFooInfo-baz"></a>baz | - |
+
+
+<a id="MyVeryDocumentedInfo"></a>
+
+## MyVeryDocumentedInfo
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "MyVeryDocumentedInfo")
+
+MyVeryDocumentedInfo(<a href="#MyVeryDocumentedInfo-favorite_food">favorite_food</a>, <a href="#MyVeryDocumentedInfo-favorite_color">favorite_color</a>)
+</pre>
+
+A provider with some really neat documentation.
+
+Look on my works, ye mighty, and despair!
+
+**FIELDS**
+
+| Name | Description |
+| :------------- | :------------- |
+| <a id="MyVeryDocumentedInfo-favorite_food"></a>favorite_food | A string representing my favorite food<br><br>Expected to be delicious. |
+| <a id="MyVeryDocumentedInfo-favorite_color"></a>favorite_color | A string representing my favorite color |
+
+
+<a id="check_sources"></a>
+
+## check_sources
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "check_sources")
+
+check_sources(<a href="#check_sources-name">name</a>, <a href="#check_sources-required_param">required_param</a>, <a href="#check_sources-bool_param">bool_param</a>, <a href="#check_sources-srcs">srcs</a>, <a href="#check_sources-string_param">string_param</a>, <a href="#check_sources-int_param">int_param</a>, <a href="#check_sources-dict_param">dict_param</a>,
+ <a href="#check_sources-struct_param">struct_param</a>)
+</pre>
+
+Runs some checks on the given source files.
+
+This rule runs checks on a given set of source files.
+Use `bazel build` to run the check.
+
+
+**PARAMETERS**
+
+
+| Name | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="check_sources-name"></a>name | A unique name for this rule. | none |
+| <a id="check_sources-required_param"></a>required_param | Use your imagination. | none |
+| <a id="check_sources-bool_param"></a>bool_param | <p align="center"> - </p> | `True` |
+| <a id="check_sources-srcs"></a>srcs | Source files to run the checks against. | `[]` |
+| <a id="check_sources-string_param"></a>string_param | <p align="center"> - </p> | `""` |
+| <a id="check_sources-int_param"></a>int_param | Your favorite number. | `2` |
+| <a id="check_sources-dict_param"></a>dict_param | <p align="center"> - </p> | `{}` |
+| <a id="check_sources-struct_param"></a>struct_param | <p align="center"> - </p> | `struct(foo = "bar")` |
+
+
+<a id="returns_a_thing"></a>
+
+## returns_a_thing
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "returns_a_thing")
+
+returns_a_thing(<a href="#returns_a_thing-name">name</a>)
+</pre>
+
+Returns a suffixed name.
+
+**PARAMETERS**
+
+
+| Name | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="returns_a_thing-name"></a>name | A unique name for this rule. | none |
+
+**RETURNS**
+
+A suffixed version of the name.
+
+
+<a id="my_aspect"></a>
+
+## my_aspect
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "my_aspect")
+
+my_aspect(<a href="#my_aspect-name">name</a>, <a href="#my_aspect-first">first</a>, <a href="#my_aspect-second">second</a>)
+</pre>
+
+This is my aspect.
+
+It does stuff.
+
+**ASPECT ATTRIBUTES**
+
+
+| Name | Type |
+| :------------- | :------------- |
+| deps| String |
+| attr_aspect| String |
+
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="my_aspect-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="my_aspect-first"></a>first | - | Boolean | required | |
+| <a id="my_aspect-second"></a>second | - | String | required | |
+
+
+<a id="other_aspect"></a>
+
+## other_aspect
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "other_aspect")
+
+other_aspect(<a href="#other_aspect-name">name</a>, <a href="#other_aspect-third">third</a>)
+</pre>
+
+This is another aspect.
+
+**ASPECT ATTRIBUTES**
+
+
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="other_aspect-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="other_aspect-third"></a>third | - | Integer | required | |
+
+
+<a id="my_repo"></a>
+
+## my_repo
+
+<pre>
+load("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "my_repo")
+
+my_repo(<a href="#my_repo-name">name</a>, <a href="#my_repo-repo_mapping">repo_mapping</a>, <a href="#my_repo-useless">useless</a>)
+</pre>
+
+Minimal example of a repository rule.
+
+**ATTRIBUTES**
+
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="my_repo-name"></a>name | A unique name for this repository. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
+| <a id="my_repo-repo_mapping"></a>repo_mapping | In `WORKSPACE` context only: a dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.<br><br>For example, an entry `"@foo": "@bar"` declares that, for any time this repository depends on `@foo` (such as a dependency on `@foo//some:target`, it should actually resolve that dependency within globally-declared `@bar` (`@bar//some:target`).<br><br>This attribute is _not_ supported in `MODULE.bazel` context (when invoking a repository rule inside a module extension's implementation function). | <a href="https://bazel.build/rules/lib/dict">Dictionary: String -> String</a> | optional | |
+| <a id="my_repo-useless"></a>useless | This argument will be ignored.<br><br>You don't have to specify it, but you may. | String | optional | `"ignoreme"` |
+
+**ENVIRONMENT VARIABLES**
+
+This repository rule depends on the following environment variables:
+
+* `FOO_CC`
+* `BAR_PATH`
+
+
+<a id="my_ext"></a>
+
+## my_ext
+
+<pre>
+my_ext = use_extension("@io_bazel_stardoc//test:testdata/table_of_contents_test/input.bzl", "my_ext")
+my_ext.install(<a href="#my_ext.install-artifacts">artifacts</a>)
+my_ext.artifact(<a href="#my_ext.artifact-artifact">artifact</a>, <a href="#my_ext.artifact-group">group</a>)
+</pre>
+
+Minimal example of a module extension.
+
+
+**TAG CLASSES**
+
+<a id="my_ext.install"></a>
+
+### install
+
+Install tag
+
+**Attributes**
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="my_ext.install-artifacts"></a>artifacts | Install artifacts | List of strings | optional | `[]` |
+
+<a id="my_ext.artifact"></a>
+
+### artifact
+
+Artifact tag
+
+**Attributes**
+
+| Name | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="my_ext.artifact-artifact"></a>artifact | Artifact | String | required | |
+| <a id="my_ext.artifact-group"></a>group | Group name | String | optional | `"my_group"` |
+
+
diff --git a/test/testdata/unknown_name_test/golden.md b/test/testdata/unknown_name_test/golden.md
index 8bbe43c..add5ea9 100644
--- a/test/testdata/unknown_name_test/golden.md
+++ b/test/testdata/unknown_name_test/golden.md
@@ -7,6 +7,8 @@
## my_rule_impl
<pre>
+load("@stardoc//test:testdata/unknown_name_test/input.bzl", "my_rule_impl")
+
my_rule_impl(<a href="#my_rule_impl-ctx">ctx</a>)
</pre>
diff --git a/update-stardoc-tests.sh b/update-stardoc-tests.sh
index 9d45698..ca9a7f7 100755
--- a/update-stardoc-tests.sh
+++ b/update-stardoc-tests.sh
@@ -39,19 +39,20 @@
function update_manual_tests_with_tag () {
local manual_tag="$1"; shift
- echo "** Querying for tests tagged \"${manual_tag}\", \"manual\" using 'USE_BAZEL_VERSION=${USE_BAZEL_VERSION} ${BAZEL}' ..."
- regenerate $(${BAZEL} query "attr(tags, ${manual_tag}, attr(tags, manual, kind(sh_binary, //test:all)))" | grep _regenerate)
+ echo "** Querying for tests tagged \"${manual_tag}\", \"manual\" using 'USE_BAZEL_VERSION=${USE_BAZEL_VERSION:-} ${BAZEL}' $@ ..."
+ BUILD_FLAGS="$@" regenerate $(${BAZEL} query "attr(tags, ${manual_tag}, attr(tags, manual, kind(sh_binary, //test:all)))" | grep _regenerate)
}
function regenerate () {
echo "** Regenerating and copying goldens..."
+ local run_cmd="run ${BUILD_FLAGS:-}"
for regen_target in $@; do
- if [[ -z ${USE_BAZEL_VERSION+x} ]]; then
- echo "** Running '${BAZEL} run ${regen_target}' ..."
+ if [[ -z ${USE_BAZEL_VERSION:-} ]]; then
+ echo "** Running '${BAZEL} ${run_cmd} ${regen_target}' ..."
else
- echo "** Running 'USE_BAZEL_VERSION=${USE_BAZEL_VERSION} ${BAZEL} run ${regen_target}' ..."
+ echo "** Running 'USE_BAZEL_VERSION=${USE_BAZEL_VERSION} ${BAZEL} ${run_cmd} ${regen_target}' BAZEL_BUILD_FLAGS ..."
fi
- ${BAZEL} run "${regen_target}"
+ ${BAZEL} ${run_cmd} "${regen_target}"
done
}
@@ -59,6 +60,7 @@
: "${BAZEL:=bazelisk}"
update_non_manual_tests
+update_manual_tests_with_tag "noenable_bzlmod" --noenable_bzlmod
USE_BAZEL_VERSION="7.2.0" update_manual_tests_with_tag "bazel_7_2"
USE_BAZEL_VERSION="8.0.0-pre.20240603.2" update_manual_tests_with_tag "bazel_8"