def _generate_html_page_impl(ctx):
ctx.actions.expand_template(
template = ctx.file.template,
output = ctx.outputs.output,
substitutions = {
"{PAGE}": ctx.attr.page,
},
)
generate_html_page = rule(
implementation = _generate_html_page_impl,
attrs = {
"template": attr.label(
default = Label("//ts:page.html"),
allow_single_file = [".html"],
),
"page": attr.string(mandatory = True),
"output": attr.output(mandatory = True),
},
)
def generate_page(page, name = "page"):
output = page + ".html"
generate_html_page(
name = name,
page = page,
output = output,
visibility = ["//visibility:public"],
)