diff --git a/README.md b/README.md index 12368e5..decdd7f 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,70 @@

- TypeOpen logo + TypeOpen app icon

# TypeOpen -TypeOpen is a TriHerm Labs open-source desktop Markdown editor for macOS focused on a clean live editing workflow: write Markdown while seeing a rendered document, switch to source when needed, navigate a folder/outline, and export to common document formats. +**A lightweight, open-source Markdown editor for macOS.** -[![Download latest DMG](https://img.shields.io/badge/Download-Latest%20DMG-111111?style=for-the-badge&logo=apple&logoColor=white)](https://github.com/TriHerm/TypeOpen/releases/latest) +Write in a live, formatted Markdown editor, switch to the source whenever you need full control, and navigate your documents without leaving your writing flow. TypeOpen is an independent, Typora-style Markdown editor for Apple Silicon Macs, built with Swift/AppKit, WKWebView and a React/Lexical editing surface. -The default macOS build uses a small Swift/AppKit shell with the system WKWebView rather than bundling Chromium. This keeps the application in the same lightweight architectural class as native WebKit editors while preserving TypeOpen's React/Lexical editor surface. +[![Download TypeOpen for macOS](https://img.shields.io/badge/Download-TypeOpen%20for%20macOS-111111?style=for-the-badge&logo=apple&logoColor=white)](https://github.com/TriHerm/TypeOpen/releases/latest) +[![Homebrew](https://img.shields.io/badge/Homebrew-Install-FBB040?style=for-the-badge&logo=homebrew&logoColor=000000)](#install-with-homebrew) +[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)](LICENSE) -This project is an independent clean-room implementation. It does not contain Typora source code, decompiled function bodies, icons, themes, license/update mechanisms, or proprietary assets. REA was used locally to inventory user-visible behavior from a legally supplied application bundle; the reference application and raw REA evidence are explicitly excluded from Git and release artifacts. +## See TypeOpen in action -## Current capabilities +

+ + TypeOpen Markdown editor demonstration: formatted Markdown document with headings and lists + +

+ +

+ Watch the 30-second demo (landscape) + · Vertical demo +

+ +## The writing workflow + + + + + + + +
Live Markdown editing in TypeOpenLive MarkdownMarkdown source editing in TypeOpenSource ModeDocument outline navigation in TypeOpenDocument Outline
+ +TypeOpen keeps your documents in Markdown: write with formatted headings, lists, tables, links, images and code; switch to raw source when needed; or jump between sections with a navigable outline. The current native macOS distribution uses Swift/AppKit with WKWebView on Apple Silicon, not bundled Chromium. + +The images above are frames from the TypeOpen product demo. TypeOpen is developed independently and is **not affiliated with Typora**. For supported features and known gaps, see the [feature and compatibility matrix](docs/PARITY_MATRIX.md). + +## Install with Homebrew + +Homebrew is the recommended installation path for TypeOpen on Apple Silicon Macs: + +```bash +brew install --cask triherm/tap/typeopen +``` + +The Cask is maintained in the public [`TriHerm/homebrew-tap`](https://github.com/TriHerm/homebrew-tap) repository and tracks the matching immutable GitHub release artifact. + +TypeOpen is currently ad-hoc signed and not notarized. Homebrew keeps macOS quarantine enabled, so Gatekeeper may block the first launch. If you trust the release, open TypeOpen once and approve it through **System Settings → Privacy & Security → Open Anyway**. + +You can also download the current Apple Silicon DMG directly from [GitHub Releases](https://github.com/TriHerm/TypeOpen/releases/latest). + +## Requirements + +- macOS 13 or newer. +- Apple Silicon (`arm64`) for the current public release. +- Optional: Pandoc 2+ for advanced import/export formats. + +For development from source, use Node.js 22.12+, npm 11+, and Xcode Command Line Tools with `swiftc`. + +## Full feature list + +
+Expand supported editor, navigation, formatting, and export features - Live WYSIWYG Markdown editing with Markdown as the persisted format. - Source Code Mode backed by CodeMirror. @@ -49,29 +101,13 @@ This project is an independent clean-room implementation. It does not contain Ty - DOCX, ODT, RTF, EPUB, LaTeX and MediaWiki export when Pandoc is installed. - Import of supported Pandoc document formats into Markdown when Pandoc is installed. -See [`docs/PARITY_MATRIX.md`](docs/PARITY_MATRIX.md) for the exact feature/evidence status and known gaps. - -## Install with Homebrew - -Homebrew is the recommended installation path for TypeOpen on Apple Silicon Macs: +
-```bash -brew install --cask triherm/tap/typeopen -``` - -The Cask is maintained in the public [`TriHerm/homebrew-tap`](https://github.com/TriHerm/homebrew-tap) repository and tracks the matching immutable GitHub release artifact. - -TypeOpen is currently ad-hoc signed and not notarized. Homebrew keeps macOS quarantine enabled, so Gatekeeper may block the first launch. If you trust the release, open TypeOpen once and approve it through **System Settings → Privacy & Security → Open Anyway**. - -You can also download the current Apple Silicon DMG directly from [GitHub Releases](https://github.com/TriHerm/TypeOpen/releases/latest). - -## Requirements +See [`docs/PARITY_MATRIX.md`](docs/PARITY_MATRIX.md) for the exact feature/evidence status and known gaps. -- macOS 13 or newer. -- Apple Silicon (`arm64`) for the current public release. -- Optional: Pandoc 2+ for advanced import/export formats. +## Feedback and contributions -For development from source, use Node.js 22.12+, npm 11+, and Xcode Command Line Tools with `swiftc`. +Found an issue or want to suggest a feature? Use [GitHub Issues](https://github.com/TriHerm/TypeOpen/issues). Contributions are welcome; read [CONTRIBUTING.md](CONTRIBUTING.md) and the [architecture notes](docs/ARCHITECTURE.md) before making changes. ## Development diff --git a/docs/assets/typeopen-demo-cover.jpg b/docs/assets/typeopen-demo-cover.jpg new file mode 100644 index 0000000..f385c39 Binary files /dev/null and b/docs/assets/typeopen-demo-cover.jpg differ diff --git a/docs/assets/typeopen-live-markdown.jpg b/docs/assets/typeopen-live-markdown.jpg new file mode 100644 index 0000000..5c8db29 Binary files /dev/null and b/docs/assets/typeopen-live-markdown.jpg differ diff --git a/docs/assets/typeopen-outline.jpg b/docs/assets/typeopen-outline.jpg new file mode 100644 index 0000000..936fbcc Binary files /dev/null and b/docs/assets/typeopen-outline.jpg differ diff --git a/docs/assets/typeopen-social-preview.jpg b/docs/assets/typeopen-social-preview.jpg new file mode 100644 index 0000000..99eb639 Binary files /dev/null and b/docs/assets/typeopen-social-preview.jpg differ diff --git a/docs/assets/typeopen-source-mode.jpg b/docs/assets/typeopen-source-mode.jpg new file mode 100644 index 0000000..ce6b804 Binary files /dev/null and b/docs/assets/typeopen-source-mode.jpg differ diff --git a/package-lock.json b/package-lock.json index 6ebf3ce..e72f112 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "@vitejs/plugin-react": "^6.1.2", "concurrently": "^10.0.6", "cross-env": "^10.1.0", - "dompurify": "^3.4.16", + "dompurify": "^3.4.17", "electron": "^44.7.0", "electron-builder": "^26.15.3", "flowchart.js": "^1.18.0", @@ -6126,9 +6126,9 @@ } }, "node_modules/dompurify": { - "version": "3.4.16", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.16.tgz", - "integrity": "sha512-sqo+pNp3qRhCIpbgRi1y8Tgk27Bo2Ry7w0dC1NBeNTdZChWjz9Xb/KOoZbRP/R6pQZ80Qw8YhXw13hWWBbMRnQ==", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.17.tgz", + "integrity": "sha512-B/pSlYVHQ58kqISD/yDjuJ1yfzI34m1gF4lAod2bwSRhiN4K5Cl3H8Af7hqB2PmTL911tdEudnnXn5FnhRoz0w==", "dev": true, "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { diff --git a/package.json b/package.json index e06890c..3de5a08 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@vitejs/plugin-react": "^6.1.2", "concurrently": "^10.0.6", "cross-env": "^10.1.0", - "dompurify": "^3.4.16", + "dompurify": "^3.4.17", "electron": "^44.7.0", "electron-builder": "^26.15.3", "flowchart.js": "^1.18.0",