PARVASHWANI 57d82e004b MARKDOWN++ 2 дней назад
..
resources 57d82e004b MARKDOWN++ 2 дней назад
.dockerignore 57d82e004b MARKDOWN++ 2 дней назад
.gitignore 57d82e004b MARKDOWN++ 2 дней назад
Dockerfile 57d82e004b MARKDOWN++ 2 дней назад
LICENSE 57d82e004b MARKDOWN++ 2 дней назад
README.md 57d82e004b MARKDOWN++ 2 дней назад
build-windows.js 57d82e004b MARKDOWN++ 2 дней назад
docker-compose.yml 57d82e004b MARKDOWN++ 2 дней назад
neutralino.config.json 57d82e004b MARKDOWN++ 2 дней назад
package-lock.json 57d82e004b MARKDOWN++ 2 дней назад
package.json 57d82e004b MARKDOWN++ 2 дней назад
prepare.js 57d82e004b MARKDOWN++ 2 дней назад
setup-binaries.js 57d82e004b MARKDOWN++ 2 дней назад

README.md

Markdown Viewer Desktop App Port

This is a desktop app port of Markdown Viewer, see README. It is built using Neutralinojs.

Architecture

The desktop app shares its core files (script.js, styles.css, assets/) with the browser version in the repo root. A build script (prepare.js) copies these files into resources/ and injects Neutralinojs-specific additions into index.html at build time.

Neutralinojs platform binaries are managed by setup-binaries.js, which downloads them on first use and caches them in bin/ (gitignored). The download is version-locked to cli.binaryVersion in neutralino.config.json and only re-triggered when that version changes.

Desktop-only files (not generated):

  • resources/js/main.js — Neutralinojs lifecycle, tray menu, window events
  • resources/js/neutralino.js — Neutralinojs client library
  • neutralino.config.json — App configuration
  • setup-binaries.js — Idempotent binary setup (downloads on first use)

Development

Requirements

Setup

No installation is required. The app is built and run using npx (via npm scripts).

Neutralinojs platform binaries are downloaded automatically on first build or dev run. To manually trigger the download:

npm run setup

Binaries are cached in bin/ (gitignored) and only re-downloaded when cli.binaryVersion in neutralino.config.json changes.

Running the app

npm run dev

This automatically runs setup (downloads binaries if needed and prepares resources) before starting the app. Hot-reload is enabled by default. Enable the browser inspector by setting "enableInspector": true in neutralino.config.json.

For more information, see the Neutralinojs documentation.

Building the app

Default / Windows - Single-file Windows executable with embedded resources:

npm run build

Portable - ZIP bundle with separate resources.neu file:

npm run build:portable

Both - Build the portable bundle and a Windows embedded EXE in one step:

npm run build:all

Build output is placed in dist/.

Note: npm run build now uses the Windows-only embedded helper and writes dist/markdown-viewer/markdown-viewer-win_x64.exe. The helper temporarily hides non-Windows Neutralino binaries so the CLI does not run out of memory while embedding every platform before it reaches the Windows target. Use npm run build:portable for the all-platform portable ZIP with resources.neu; npm run build:all writes that ZIP plus a Windows embedded EXE at dist/windows-embedded/markdown-viewer/markdown-viewer-win_x64.exe.

For more information, see the Neutralinojs documentation.

Building with Docker

Build binaries without installing Node.js locally:

docker compose up --build

Build artifacts will be output to desktop-app/output/.

Releases

Prebuilt binaries are automatically built and published as GitHub Releases when a tag matching desktop-v* is pushed (e.g., desktop-v1.0.0). See .github/workflows/desktop-build.yml.

Each release includes:

Asset Description
markdown-viewer-win_x64.exe Windows x64 executable
markdown-viewer-release.zip Portable bundle with resources.neu (all platforms)
source.tar.gz Desktop app source archive
SHA256SUMS.txt Checksums for all release assets

License

MIT.

The desktop version uses Neutralinojs, which is also licensed under the MIT License.

Contributors

Contributors