52 lines
1.6 KiB
Markdown
52 lines
1.6 KiB
Markdown
# Roadmap: good next functions
|
|
|
|
Near-term useful features:
|
|
|
|
1. Engine UX polish
|
|
- Show “SaxonJS loading…” when the large compiler file is first loaded.
|
|
- Show compile time vs transform time separately.
|
|
- Cache compiled SEF by stylesheet hash to avoid recompiling unchanged XSLT.
|
|
2. Parameters
|
|
- Add UI for xsl:param.
|
|
- Support string/number/boolean parameters first.
|
|
- Later support XPath expressions.
|
|
3. Better diagnostics
|
|
- Convert SaxonJS compiler/runtime errors into editor diagnostics.
|
|
- Extract line/module info when available.
|
|
- Jump from diagnostic to editor line.
|
|
4. Examples / templates
|
|
- Identity transform.
|
|
- Rename elements.
|
|
- Extract table.
|
|
- Namespace cleanup.
|
|
- Grouping example.
|
|
- XSLT 3.0 shallow-copy example.
|
|
5. Project files
|
|
- Export/import a full local project JSON:
|
|
'''XML input
|
|
XSLT
|
|
output
|
|
engine
|
|
examples/tests
|
|
parameters'''
|
|
- No uploads needed.
|
|
6. Test cases inside the app
|
|
- Multiple XML inputs per stylesheet.
|
|
- Expected output assertions.
|
|
- Diff expected vs actual.
|
|
- “Run all tests” button.
|
|
7. Diff views
|
|
- XML input vs output.
|
|
- Previous output vs current output.
|
|
- Pretty XML diff.
|
|
8. Explain mode
|
|
- Start with static analysis:
|
|
'''template match → output node candidates'''
|
|
- Later add instrumentation around generated SEF or stylesheet templates.
|
|
9. Performance
|
|
- Web Worker for SaxonJS compile/transform.
|
|
- Prevent UI lockups on large XML.
|
|
- Progress indicator and cancellation if possible.
|
|
10. Storage
|
|
- LocalStorage for small projects.
|
|
- IndexedDB for larger documents and histories. |