| title |
Publish |
| description |
Export and publish content with optional format conversion |
| id |
diaryx.publish |
| version |
0.1.4 |
| author |
Diaryx Team |
| license |
PolyForm Shield 1.0.0 |
| repository |
https://github.com/diaryx-org/plugin-publish |
| categories |
|
| tags |
|
| capabilities |
workspace_events |
custom_commands |
|
| artifact |
| url |
sha256 |
size |
published_at |
|
|
0 |
|
|
| ui |
| slot |
id |
label |
SidebarTab |
publish-panel |
Publish |
|
| slot |
id |
label |
CommandPaletteItem |
publish-export |
Export... |
|
| slot |
id |
label |
CommandPaletteItem |
publish-site |
Publish Site |
|
|
| cli |
| name |
about |
publish |
Publish workspace as HTML |
|
| name |
about |
preview |
Preview published workspace |
|
|
| requested_permissions |
| defaults |
reasons |
| read_files |
edit_files |
create_files |
http_requests |
plugin_storage |
|
|
|
|
|
|
| read_files |
edit_files |
create_files |
http_requests |
plugin_storage |
Read workspace entries and attachments while building export output. |
Update generated publish artifacts during export and preview workflows. |
Create exported HTML, assets, and converted output files. |
Download optional converter WASM modules used for format conversion. |
Cache downloaded converter modules between runs. |
|
|
Extism guest plugin wrapping publish/export functionality for browser and native runtimes.
The publish pipeline now comes from diaryx_core::publish; there is no separate
diaryx_publish crate dependency anymore.
This crate builds to a .wasm plugin loaded by:
- Native via
diaryx_extism (wasmtime)
- Web via
@extism/extism
The plugin handles:
- export command dispatch (
PlanExport, ExportToMemory, etc.)
- converter lifecycle (
DownloadConverter, IsConverterAvailable)
- format conversion (
ConvertFormat, ConvertToPdf) by running converter WASI modules through host_run_wasi_module
| Export |
Description |
manifest() |
Plugin metadata + UI contributions |
init(params) |
Initialize plugin state |
shutdown() |
Drop plugin state |
handle_command(request) |
Command dispatcher |
on_event(event) |
Workspace lifecycle events |
get_config() / set_config() |
Plugin config passthrough |
| Function |
host_log |
host_read_file |
host_list_files |
host_file_exists |
host_write_file |
host_write_binary |
host_emit_event |
host_storage_get |
host_storage_set |
host_get_timestamp |
host_http_request |
host_run_wasi_module |
This repository can be built standalone with Cargo:
cargo build --target wasm32-unknown-unknown -p diaryx_publish_extism --release
When vendored into the Diaryx monorepo, you can still use the monorepo helper:
cd ../diaryx && ./scripts/build-wasm.sh
which copies the artifact to apps/web/public/plugins/diaryx_publish.wasm.