# Markdown Viewer Is Now Available

- Canonical URL: https://oka-project.com/en/blog/release-markdown-viewer
- Published: 2026-09-12
- Author: oka (https://oka-project.com/en/about)
- Summary: I built Markdown Viewer for quickly opening and checking Markdown in the browser, with HTML copy and Print to PDF and no conversion-server upload.
- Category: release / Tags: release, Markdown, browser tools, indie development

---
Sometimes you only need to open a Markdown file and check what it looks like. Installing an editor or uploading the file to a conversion service can be more work than the task deserves.

That is why I built [Markdown Viewer](https://oka-project.com/en/tools/markdown-viewer).

## What it does

Markdown Viewer is deliberately narrow in scope.

You can:

- open a `.md` file or paste Markdown text
- switch between source and rendered preview
- copy rendered HTML
- use the browser's print feature to save the result as PDF

It is not intended to be a full writing environment. The goal is simple: **open Markdown, inspect it, and move on.**

## Why I kept the processing in the browser

Markdown files can contain more than public README text. They may include unpublished articles, internal notes, setup instructions, or code snippets.

For that reason, I did not want previewing a file to require uploading its contents to a conversion server.

The core document workflow runs in the browser.

I also use Content Security Policy (CSP) to restrict unnecessary outbound paths, so the privacy claim is supported by the architecture rather than only by a sentence in the UI.

## External images needed special handling

Markdown can contain a remote image:

```md
![](https://example.com/image.png)
```

If a renderer loads that URL automatically, the browser still makes an external request even when the Markdown body itself never leaves the device.

That distinction matters.

The current viewer is designed not to fetch arbitrary external Markdown images automatically during preview, and the CSP policy restricts image destinations accordingly.

The lesson was useful: "the document is processed locally" and "the document cannot trigger unrelated external requests" are separate properties that need separate controls.

## When Markdown Viewer is a good fit

Use it when you want to:

- inspect a Markdown file on a machine where you do not want to install an editor
- check a README or note quickly
- confirm headings, tables, and code blocks
- save a rendered document as PDF
- avoid a workflow that uploads the document to a conversion server

For the general workflow, see [Preview Markdown in Your Browser](https://oka-project.com/en/blog/markdown-preview-online).

## When the target platform should be the final check

Markdown rendering is not identical everywhere.

If a README will ultimately live on GitHub, GitHub itself is the final authority for how that README will appear.

A generic viewer is useful for the first pass. The publishing platform is still where you should make the final visual check.

## Markdown Viewer and Yomu solve different problems

After building the viewer, I also built [Yomu](https://oka-project.com/en/tools/markdown-editor) for a different workflow.

| Task | Better fit |
|---|---|
| Open a `.md` file and read it | Markdown Viewer |
| Check a finished Markdown document | Markdown Viewer |
| Save rendered Markdown as PDF | Markdown Viewer |
| Edit an AI-generated draft | Yomu |
| Prepare content for WordPress or Word | Yomu |
| Export editable document formats | Yomu |

The distinction is intentional: use the viewer when you only need to **look**, and the editor when you need to **change and export**.

## Keeping the tool small

The first version does not try to compete with full Markdown editors.

For a file-handling tool, I would rather make the processing path understandable and keep the common workflow fast than add features that obscure what the page is doing.

[Open Markdown Viewer](https://oka-project.com/en/tools/markdown-viewer)