Thank you for your interest in contributing to Markdown Viewer! We welcome contributions, including bug reports, feature requests, documentation improvements, and code updates.
By participating in this project, you agree to maintain a respectful, professional, and inclusive environment. Please be kind and constructive in all communication and code reviews.
If you discover a security vulnerability, please report it responsibly:
The core web app requires no build step. To serve index.html on localhost (127.0.0.1) and run it locally:
Clone the repository:
git clone https://github.com/ThisIs-Developer/Markdown-Viewer.git
cd Markdown-Viewer
Serve the root directory using a local web server:
# Serve with Python (built-in, no dependencies)
python3 -m http.server 8080
# or
# Serve with Node.js serve
npx serve . -p 8080
Open http://localhost:8080 or http://127.0.0.1:8080 in your browser and edit files like index.html, script.js, or styles.css.
To set up the NeutralinoJS desktop environment:
Navigate to the desktop directory:
cd Markdown-Viewer/desktop-app
Install dependencies:
npm install
Download the Neutralino runtime binaries:
node setup-binaries.js
Copy the latest frontend assets into the desktop directory:
node prepare.js
Start the app in development mode with hot-reload:
npm run dev
<header>, <main>, <section>, etc.) and ensure they are nested correctly.aria-* attributes and roles to maintain accessibility.styles.css.:root and [data-theme="dark"] to manage colors, borders, and margins.transition: background-color 0.2s) to avoid repainting the entire viewport during theme switches./* --- Editor Layout --- */).const for constant references and let for variables. Do not use var.preview-worker.js) to keep the main UI thread responsive.We use the Conventional Commits standard to organize project changes. Commit messages must use the following format:
<type>(<scope>): <description>
[body]
[footer]
feat: A new user-facing feature.fix: A bug fix.docs: Changes to documentation files (such as the wiki or README).style: Formatting updates (whitespace, semicolons) that do not affect code logic.refactor: Code restructuring that neither fixes a bug nor adds a feature.perf: Performance-related optimizations.chore: Tasks like updating dependencies, build configurations, or CI files.feat(editor): add keyboard shortcut for fullscreen modefix(pdf): correct page breaks in long tablesdocs(wiki): add Mermaid diagrams formatting guidechore(deps): update marked.js version to 9.1.6Fork the repository and create a new feature branch from main:
git checkout -b feature/my-feature-name
Make your changes, verify your code style, and test them across modern browsers (Chrome, Firefox, Safari, Edge).
Commit your updates following the Commit Message Conventions.
Rebase your branch to ensure it is up to date with the upstream main branch before submitting:
git fetch upstream
git rebase upstream/main
Open a Pull Request pointing to the upstream repository's main branch. Complete the pull request template with details of the changes and any related issues.
A project maintainer will review your pull request. Please address any review comments before the code is merged. Once approved, the pull request will be squash-merged.
Below is an overview of the key folders and files in the repository:
index.html: The entry-point HTML page.script.js: The main controller and UI interaction script.preview-worker.js: The background Web Worker script that compiles Markdown.styles.css: CSS styles and themes.sw.js: The Service Worker cache proxy script.Dockerfile / docker-compose.yml: Docker configuration files.assets/: Image assets and diagrams.wiki/: Document source files for this wiki.desktop-app/: NeutralinoJS application source files.