You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: add SolidJS integration
Adds `@ox-content/vite-plugin-solid`, mirroring the Vue, React, and Svelte
integrations, plus a `Solid` target for the renderer's framework codegen.
Solid's JSX is compile-time only — there is no runtime element factory like
React's `createElement` or Vue's `h` — so the two consumers need different
output shapes:
- The Vite plugin emits Solid JSX and lets `vite-plugin-solid` compile it.
That is the same arrangement solid-mdx uses, and it keeps the
environment-sensitive `generate: 'dom' | 'ssr'` decision with the plugin
that owns it.
- The Rust/N-API `renderFrameworkComponentCode` path has to produce code that
runs without a compiler, so it targets `solid-js/h`, Solid's hyperscript
entry point.
The JSX approach costs two setup rules that the sibling integrations do not
have: `oxContentSolid()` must precede `solid()` (both are `enforce: 'pre'`,
so array order decides who sees the Markdown first), and `solid()` needs the
Markdown extensions in its `extensions` option. Both mistakes otherwise fail
as an opaque Babel syntax error, so `verifySolidPlugin` checks ordering when
the config resolves and detects uncompiled output in a `post` transform,
reporting each with the fix.
Closes#540
* fix: bump brace-expansion to patched versions
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
* ci: publish solid vite plugin preview via pkg-pr-new
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
* fix: address Solid integration review feedback
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
* test: cover @ox-content/vite-plugin-solid in the package dry-run
The check validates that every packed tarball's `files`/`exports` resolve to
files that actually ship. A newly published package that is not listed is
exactly the case it exists to catch.
---------
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: crates/ox_content_napi/src/tests/snapshots/ox_content_napi__tests__runtime_features__javascript_wrapper_declarations.snap
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1841,7 +1841,7 @@ export declare function render(astJson: string): RenderResult
1841
1841
/**
1842
1842
* Renders already-produced Markdown HTML into framework-native component code.
1843
1843
*
1844
-
* The `target` argument accepts `"react"`, `"vue"`, and `"svelte"`.
1844
+
* The `target` argument accepts `"react"`, `"solid"`, `"vue"`, and `"svelte"`.
1845
1845
* `mode` defaults to `"expression"` for backward compatibility.
0 commit comments