How delppine1024/tgreen works
This repository is a binary release/distribution repo, not a conventional source-code project. Its main job is to publish prebuilt artifacts for specific Typora versions and OS/CPU combinations.
The top-level layout is organized by platform and architecture: Windows_x86, Windows_x64, Windows_Arm, Linux_x64, Linux_Arm, plus an ALL_IN_ONE bundle. Each folder is effectively a standalone release payload.
Inside each platform folder, the primary runtime artifact is app.asar. In the Typora/Electron ecosystem, this is the packaged application bundle that gets copied into the installed app’s resources directory and replaces the original bundle.
Alongside app.asar, each platform folder contains a dec_app directory. This appears to be the decomposed app bundle used to regenerate or inspect the final archive. Its contents are consistent across platforms: atom.js, head.json, main.node, and package.json.
atom.js is the JavaScript entry/bootstrap layer, main.node is a native Node addon/binary, head.json is package metadata, and package.json defines the module/package boundary for that extracted app structure. The presence of main.node means some platform variants depend on native code and therefore are architecture-specific.
The repository’s effective data flow is:
1. a platform/version-specific dec_app payload exists,
2. it is packaged into app.asar,
3. the final app.asar is distributed as a release artifact,
4. users replace Typora’s installed resources/app.asar with that artifact.
The README makes clear that different Typora versions require different payloads, and the support matrix is a core architectural artifact. Versioning is not cosmetic here; it determines binary compatibility.
The ALL_IN_ONE directory is a convenience distribution that aggregates support for multiple versions/platforms into a single release package. It represents a packaging boundary, not a separate runtime subsystem.
There is no visible build source, CI pipeline, or application server in this repo. The “architecture” is therefore centered on release packaging, binary compatibility, and platform segmentation, not on service composition or runtime modules.
The documentation files (README.md, README-CN.md, README-TW.md, and platform-specific readmes) are operationally important because they define how the artifacts are deployed and which combinations are valid, but they do not add runtime components.
For an architecture diagram, the most important boxes are:
• GitHub Releases / repo storage as the distribution source
• Platform-specific artifact bundles as the main product units
• dec_app extracted payload as the internal package structure
• Typora installation directory as the target boundary where app.asar is replaced
Overall, this repo is best modeled as a multi-platform binary packaging repository for Typora-compatible release artifacts, with versioned release assets as the central organizing principle.
Main entry points: dec_app dec_app · app.asar app.asar · Windows_x64 Windows x64 · ALL_IN_ONE All in one
Components 18
Release bundles
Platform/version-specific binary payloads published by the repository.
- All in one · Convenience bundle aggregating multiple supported variants.
ALL_IN_ONE - Windows x86 · Windows 32-bit release payload.
Windows_x86 - Windows x64 · Windows 64-bit release payload.
Windows_x64 - Windows Arm · Windows ARM release payload.
Windows_Arm - Linux x64 · Linux 64-bit release payload.
Linux_x64 - Linux Arm · Linux ARM release payload.
Linux_Arm - app.asar · Packaged Typora application archive distributed inside each release bundle.
ALL_IN_ONE/app.asar - dec_app · Decomposed app payload used to rebuild or inspect the archive.
ALL_IN_ONE/dec_app - atom.js · JavaScript bootstrap and entry layer for the extracted app.
ALL_IN_ONE/dec_app/atom.js - head.json · Metadata describing the extracted app package boundary.
ALL_IN_ONE/dec_app/head.json - main.node · Platform-specific native binary used by the app payload.
ALL_IN_ONE/dec_app/main.node - package.json · Manifest defining the module/package shape of the extracted app.
ALL_IN_ONE/dec_app/package.json
Documentation
Readmes that describe support matrix and deployment steps.
- README · Primary usage and compatibility documentation.
README.md - README CN · Chinese deployment and compatibility documentation.
README-CN.md - README TW · Traditional Chinese deployment and compatibility documentation.
README-TW.md - Platform guide · Per-platform release instructions and notes.
Windows_x64/readme.md
Other components
- Release repo · Repository as the source of distributable Typora replacement artifacts.
- Typora install · Installed Typora resources directory where app.asar is replaced.
Connections 28
- Release repo → All in one: publishes · Repository ships the aggregated distribution bundle.
- Release repo → Windows x86: publishes · Repository ships the Windows x86 bundle.
- Release repo → Windows x64: publishes · Repository ships the Windows x64 bundle.
- Release repo → Windows Arm: publishes · Repository ships the Windows ARM bundle.
- Release repo → Linux x64: publishes · Repository ships the Linux x64 bundle.
- Release repo → Linux Arm: publishes · Repository ships the Linux ARM bundle.
- All in one → app.asar: contains · Bundle includes the packaged application archive.
- All in one → dec_app: contains · Bundle includes the extracted app payload.
- Windows x86 → app.asar: contains · Platform bundle includes the packaged application archive.
- Windows x86 → dec_app: contains · Platform bundle includes the extracted app payload.
- Windows x64 → app.asar: contains · Platform bundle includes the packaged application archive.
- Windows x64 → dec_app: contains · Platform bundle includes the extracted app payload.
- Windows Arm → app.asar: contains · Platform bundle includes the packaged application archive.
- Windows Arm → dec_app: contains · Platform bundle includes the extracted app payload.
- Linux x64 → app.asar: contains · Platform bundle includes the packaged application archive.
- Linux x64 → dec_app: contains · Platform bundle includes the extracted app payload.
- Linux Arm → app.asar: contains · Platform bundle includes the packaged application archive.
- Linux Arm → dec_app: contains · Platform bundle includes the extracted app payload.
- dec_app → atom.js: boots · JavaScript bootstrap starts the extracted app.
- dec_app → head.json: describes · Package metadata defines the extracted app boundary.
- dec_app → main.node: loads · Native addon is part of the runtime payload.
- dec_app → package.json: declares · Manifest defines the extracted module/package shape.
- dec_app → app.asar: packages · Extracted payload is assembled into the final archive.
- app.asar → Typora install: replaces · Distributed archive is copied into Typora's resources directory.
- README → Release repo: documents · Primary README explains compatibility and deployment.
- README CN → Release repo: documents · Chinese README explains compatibility and deployment.
- README TW → Release repo: documents · Traditional Chinese README explains compatibility and deployment.
- Platform guide → Windows x64: documents · Platform readme captures release-specific instructions.