Skip to content

Add Typlog Publisher v0.3.7 - #53

Closed
haohailong wants to merge 1 commit into
MarkEdit-app:mainfrom
haohailong:codex/add-typlog-publisher
Closed

haohailong wants to merge 1 commit into
MarkEdit-app:mainfrom
haohailong:codex/add-typlog-publisher

Conversation

@haohailong

Copy link
Copy Markdown
Contributor

Add Typlog Publisher

Typlog Publisher

Adds extensions/markedit-typlog.json for Typlog Publisher, an MIT-licensed MarkEdit extension for creating and updating Typlog drafts from the current document.

Features

  • Reads local images directly through MarkEdit's file APIs and folder permissions, without Textpack or another extension. Uploads supported images, preserves dimensions, and produces figures and captions.
  • Reads opening ::: metadata for titles and tags, falls back to the first H1, and accepts English and Chinese comma separators for tags.
  • Discovers the account username and accessible sites from a Token with profile and site permissions, caches site metadata, and supports author selection or no author assignment.
  • Associates a saved document with a draft per site so subsequent sends update the same draft. Checks draft status, resumes interrupted operations, and offers explicit recovery instead of silently creating duplicate posts.
  • Can open the selected site's dashboard editor after sending. Dashboard URLs are derived from each user's own site configuration.
  • Provides English, Simplified Chinese, and Traditional Chinese interfaces following system language preferences, with settings for Token replacement and deletion.

Provenance and validation

  • Version: 0.3.7; minimum MarkEdit version: 1.36.0.
  • The versioned JavaScript Release asset is publicly downloadable without authentication and is pinned with SHA-256 in the entry. Anonymous API download bytes match the committed build exactly.
  • The submitted entry passes the official registry schema and integrity validator using those downloaded bytes; the registry's 14 tests also pass.
  • Only the new source entry is included; generated index.json and gallery files are left to the registry workflow. Registry timestamps are also left to the publish workflow.
  • The extension's 72 automated tests pass using simulated Typlog responses; a fresh build matches the committed JavaScript bytes.
  • Tokens, passwords, account settings, document contents, and draft journals are not embedded in the distributed script. There is no analytics or background publishing. Publishing requests and image uploads require explicit confirmation.

Optional follow-up: a native Keychain API

The current public MarkEdit API does not expose Keychain operations. This extension therefore offers plain-text Token storage with a first-use notice, or optional AES-256-GCM encryption with a separate local password. The encrypted mode needs unlocking after restarting the app or opening a new document window; passwords and encryption keys are never stored in configuration files.

Would a future MarkEdit API provide native, permission-mediated secret storage, such as getSecret, setSecret, and deleteSecret, backed by macOS Keychain? An extension-scoped namespace, user approval for secret access, and clear handling of denial/deletion would help publishing extensions store API Tokens securely without a recurring extension-specific password prompt. Ideally other extensions could not read the same namespace.

This is a follow-up API suggestion, not a dependency of this registry entry. I would be happy to move it to a separate issue in the main MarkEdit repository if preferred.

@haohailong

Copy link
Copy Markdown
Contributor Author

Closing this PR in favor of a new submission for Typlog Publisher v0.3.8.

The new version adds recovery for drafts deleted in Typlog: after confirming that the original draft is missing and the site remains accessible, users can create a replacement draft and associate the document with its new Post ID.

Thank you for reviewing this submission.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant