惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
腾讯CDC
A
About on SuperTechFans
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
D
DataBreaches.Net
D
Docker
宝玉的分享
宝玉的分享
量子位
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Last Week in AI
Last Week in AI
H
Help Net Security
Hugging Face - Blog
Hugging Face - Blog
M
MIT News - Artificial intelligence

Hacker News - Newest: "AI"

AI can't read an investor deck AI as an attorney? Student uses ChatGPT, Gemini to sue UW over alleged racial discrimination Hacking MCP Servers in AI Systems – The Rug Pull: Tool Changes After Approval GitHub - MeepCastana/KubeezCut: Free Web based video editor Can AI judge journalism? A Thiel-backed startup says yes, even if it risks chilling whistleblowers Coming soon: 10 Things That Matter in AI Right Now DARPA built an AI to fact-check enemy weapons claims What explains heterogeneity in AI adoption? When AI Meets Muscle: Context-Aware Electrical Stimulation Promises a New Way to Guide Human Movements - Department of Computer Science AI Changed How We Build. It Did Not Change What Matters. Linux rules on using AI-generated code - Copilot is OK, but humans must take 'full responsibility for the… Meta spins up AI version of Mark Zuckerberg to engage with employees Code Mode: Let Your AI Write Programs, Not Just Call Tools | TanStack Blog GitHub - Delavalom/graft: Go framework for building AI agents. Type-safe tools, multi-provider (OpenAI, Anthropic, Gemini, Bedrock), zero vendor SDKs. India's TCS tops estimates, says new AI models did not dent services demand Gen Z's fading AI hype Strong feeling: we are in a folded AI reality GitHub - machinarii/total-recall-catalog: A reference catalog of latest knowledge retrieval, memory & RAG systems GitHub - mensfeld/code-on-incus: Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.. Quantization, LoRA, and the 8% Problem: Benchmarking Local LLMs for Production AI Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda Powell, Bessent discussed Anthropic's Mythos AI cyber threat with major U.S. banks GitHub - immartian/bellamem: Persistent belief-graph memory for AI agents. Retrieves decisive context by importance — not recency, not RAG, not /compact. recursive-mode: The Repo-Native Operating System for AI Engineering After the attack on Sam Altman's home, will AI CEO's go on the offensive? The biggest advance in AI since the LLM Opus 4.6 vs GPT 5.4 One Prompt Unity World Generation Test “AI polls” are fake polls Client Challenge Can AI be a 'child of God'? Inside Anthropic's meeting with Christian leaders
GitHub - rajatarya/mdviewer: A fast, lightweight native M...
rajatarya · 2026-05-20 · via Hacker News - Newest: "AI"

Markdown Viewer Icon

A fast, lightweight native Markdown viewer for macOS

Render GitHub-flavored and Obsidian-style Markdown as beautiful HTML in a native window — with instant load time and a tiny binary footprint.

Features · Installation · Usage · Development · Contributing · Colophon


Features

Category Supported
GitHub Flavored Markdown Tables, task lists, strikethrough, autolinks, fenced code blocks
Obsidian-style Wikilinks [[Page|label]], emoji shortcodes :rocket:, callouts > [!NOTE]
Math Inline $E = mc^2$ and display $$\int_0^\infty$$ via KaTeX
Diagrams Mermaid code blocks rendered with Mermaid.js
Frontmatter Title, description, tags, status badges, and full metadata box
Security All HTML sanitized via ammonia — XSS-safe by default
Performance Zero webview overhead, instant load, ~few MB binary

Metadata Bar

Frontmatter is rendered as a structured metadata bar above your content — title as heading, description as subtitle, tags and status as color-coded badges.

Properties Box

A collapsible panel below content showing all frontmatter properties with icons, pill badges, and boolean toggles (✅/❌).

Callout Types

NOTE · TIP · WARNING · CAUTION · IMPORTANT — with foldable support (> [!TIP]+)

Wikilinks

  • [[My Document]] → links to my-document.html
  • [[#Heading]] → anchors within the page
  • [[path\|label]] → custom display text

Installation

Option 1: Download (macOS)

  1. Go to the Releases page
  2. Download the latest .dmg (Apple Silicon)
  3. Open the .dmg and drag Markdown Viewer to Applications

Updating to a new version:

# Check for updates
make update --check

# Install the latest version
make update

This downloads the latest release .dmg, mounts it, copies the app to ~/Applications/, removes quarantine, and re-signs — all in one command. Requires jq (brew install jq).

First launch: macOS may show "app is damaged" due to quarantine. Run:

xattr -cr /Applications/Markdown\ Viewer.app

Tested on: macOS 26.4 (25E246) on Apple Silicon (M-series).

Option 2: Build from Source

Prerequisites:

  • Rust 1.94+ stable (rustup)
  • Node.js 18+ (for Tauri CLI)
  • Xcode Command Line Tools
# Clone the repo
git clone https://github.com/rajatarya/mdviewer.git
cd mdviewer

# Install Tauri CLI
npm install -g @tauri-apps/cli

# Build and install (copies .app to ~/Applications, creates ~/.local/bin/mdviewer wrapper)
make install

Or install without rebuilding (after a fresh bundle):

make install-fast

The wrapper script at ~/.local/bin/mdviewer launches the .app with open -a and passes through any arguments. It also handles --help inline (no app launch needed).


Usage

CLI

# Open a single file
mdviewer document.md

# Open multiple files
mdviewer doc1.md doc2.md notes.txt

# Show help
mdviewer --help

# Pipe from stdin
cat document.md | mdviewer -

GUI

  1. Launch Markdown Viewer from Applications
  2. Open a file via File → Open or drag-and-drop onto the app icon
  3. Navigate between files using the sidebar

Double-clicking a .md, .markdown, or .txt file in Finder will also open it in Markdown Viewer (file association registered during install).


Development

# Run in development mode (hot-reload enabled)
cargo tauri dev

# Format and lint
cargo fmt
cargo clippy -- -D warnings

# Run tests
cargo test --lib

# Full check before committing
make all

Architecture

Tauri 2.x (Rust backend)
  ├─ pulldown-cmark  → Markdown parsing
  ├─ ammonia         → HTML sanitization
  ├─ regex           → Text preprocessing
  └─ Webview (HTML/CSS/JS)
      ├─ KaTeX       → Math rendering
      └─ Mermaid.js  → Diagram rendering

See DESIGN.md for the full architecture and rendering pipeline.


Contributing

Forks and issues are welcome — see CONTRIBUTING.md for details. We encourage personal forks and bug reports, and discourage blind AI-generated PRs.


Colophon

This app was designed and implemented entirely by AI coding agents.

The initial implementation — every line of Rust, every CSS rule, every JavaScript function — was written by pi.dev using the Qwen3.6-35B-A3B-GGUF:BF16 model by Unsloth (🤗 Hugging Face), hosted locally via llama.cpp on an M5 MacBook Pro (128 GB RAM).

Subsequent fixes and architectural work — including the Tauri 2.x migration cleanup, the v1.4.0 macOS file-open deadlock investigation, and the frontmatter rendering redesign — were done by Claude (Anthropic), accessed through Claude Code.

The result: a complete, tested, production-ready native macOS app — from zero to shipped — without a single human typing code.

Stack: Tauri 2 · Rust · pulldown-cmark · ammonia · KaTeX · Mermaid.js


Release Process

Automated since v1.6.0 — see .github/workflows/release.yml.

To cut a release:

# 1. Ensure everything passes
make all

# 2. Bump version in both files
sed -i '' 's/version = ".*"/version = "1.7.0"/' src-tauri/Cargo.toml
sed -i '' 's/"version": ".*"/"version": "1.7.0"/' src-tauri/tauri.conf.json

# 3. Commit and tag
git add -A && git commit -m "chore(release): bump version to 1.7.0"
git tag v1.7.0 && git push origin main --tags

# 4. GitHub Actions builds the .dmg and publishes the release automatically

License

MIT · © 2026 Rajat Arya