Follow-up to #511. The first pass of the KSP TensorOps surface scan shipped with several rendering issues on the published site at
skainet-developers.github.io/SKaiNET/skainet/reference/operators/generated/tensorops.html.
Problems
- Unresolved
partial$ includes on ~50 operators. The generator emits include::partial\$ops/tensorops/<fn>.adoc[...optional] for every function, but Antora does not honour the optional attribute for resource refs — missing partials render as Unresolved include directive errors. Only matmul has a partial today, so every other op is broken.
- Stub
VoidTensorOps page. VoidTensorOps is @Backend(id="void"), a shape-only sentinel with no runtime. The annotation-grouping path produces a standalone voidtensorops.adoc that lists only the 2 @InProgress-annotated methods, duplicating coverage info that already lives in the TensorOps surface scan's backend matrix.
void surfaced as a real backend. Backend badges/tables exposed void as if it were a deployable backend.
- LaTeX not rendered.
stem:[…] and [stem] blocks in partials/ops/tensorops/matmul.adoc are emitted as literal \$…\$ passthrough because the UI bundle has no MathJax and the playbook does not set stem: latexmath.
Fix plan
- Generator: only emit
include::partial\$… directives when the partial file exists on disk (walk from outputDir up to pages/ and check sibling partials/). Stop emitting per-function backend chrome — platform support per op is not an issue yet.
- KSP: drop annotation-derived symbols whose enclosing class is
@Backend-tagged (already covered by the TensorOps surface scan). Add internal: Boolean = false to @Backend, tag VoidTensorOps as internal = true, and filter internal backends out of the surface scan.
- Docs: set
asciidoc.attributes.stem: latexmath in antora-playbook.yml and inject MathJax v3 via a supplemental UI override of partials/footer-scripts.hbs.
Verification
Local Antora build (docs/.docker image, playbook unchanged except for the additions above):
tensorops.html contains zero Unresolved include errors; every op shows signature → parameters → return type; only matmul additionally shows Definition / Intuition / Examples / References from its partial.
- No
voidtensorops.html page.
- MathJax loads on every page;
\(…\) and \[…\] delimiters in the matmul section render as real math.
Follow-up to #511. The first pass of the KSP TensorOps surface scan shipped with several rendering issues on the published site at
skainet-developers.github.io/SKaiNET/skainet/reference/operators/generated/tensorops.html.Problems
partial$includes on ~50 operators. The generator emitsinclude::partial\$ops/tensorops/<fn>.adoc[...optional]for every function, but Antora does not honour theoptionalattribute for resource refs — missing partials render asUnresolved include directiveerrors. Onlymatmulhas a partial today, so every other op is broken.VoidTensorOpspage.VoidTensorOpsis@Backend(id="void"), a shape-only sentinel with no runtime. The annotation-grouping path produces a standalonevoidtensorops.adocthat lists only the 2@InProgress-annotated methods, duplicating coverage info that already lives in the TensorOps surface scan's backend matrix.voidsurfaced as a real backend. Backend badges/tables exposedvoidas if it were a deployable backend.stem:[…]and[stem]blocks inpartials/ops/tensorops/matmul.adocare emitted as literal\$…\$passthrough because the UI bundle has no MathJax and the playbook does not setstem: latexmath.Fix plan
include::partial\$…directives when the partial file exists on disk (walk fromoutputDirup topages/and check siblingpartials/). Stop emitting per-function backend chrome — platform support per op is not an issue yet.@Backend-tagged (already covered by the TensorOps surface scan). Addinternal: Boolean = falseto@Backend, tagVoidTensorOpsasinternal = true, and filter internal backends out of the surface scan.asciidoc.attributes.stem: latexmathinantora-playbook.ymland inject MathJax v3 via a supplemental UI override ofpartials/footer-scripts.hbs.Verification
Local Antora build (
docs/.dockerimage, playbook unchanged except for the additions above):tensorops.htmlcontains zeroUnresolved includeerrors; every op shows signature → parameters → return type; onlymatmuladditionally shows Definition / Intuition / Examples / References from its partial.voidtensorops.htmlpage.\(…\)and\[…\]delimiters in the matmul section render as real math.