Skip to content

diaryx-org/plugin-publish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
publish
export
tags
publish
export
html
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
include
all
include
all
include
all
include
unpkg.com
include
all
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.

diaryx_publish_extism

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.

Overview

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

Exports

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

Host Functions Required

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

Build

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.

About

Publish plugin for Diaryx

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors