Files
NotAlexNoyleandClaude Opus 4.8 181cbf79b2 Add GitHub-style syntax highlighting to the code-block preview
The WebKit HTML preview previously rendered fenced code blocks
monochrome. Wire the existing tokenizer into the HTML renderer so code
blocks are highlighted like GitHub, and extend language coverage.

- markdown.c: accumulate each code block's text, tokenize it on block
  leave, and emit <span class="pl-*"> per token with HTML-escaped gaps
  and token text; unknown languages fall back to plain escaped text.
- Add GitHub Primer syntax colors (light/dark) for keywords, constants,
  strings, and comments.
- code_highlight.c: tokenize comments (//, /* */, #), which were
  previously skipped and left uncolored.
- Add languages: javascript, kotlin, and bash (aliases js, kt, sh,
  shell). Bash uses a dedicated scanner whose '#' comments are
  word-position aware so $#, x=$#, and a.com#frag are not comments.
- Create the code_comment tag so the source editor colors comments too.
- README: document the highlighted languages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 15:20:50 -04:00

3.3 KiB

👁 SeeMD

A lightweight GTK 3 markdown viewer and editor for desktop Linux. It is ideal as your default app for opening .md files. Uses the excellent library md4c for markdown parsing and WebKitGTK for GitHub-style preview rendering. This project is a fork of ViewMD by NotAlexNoyle.

SeeMD

Features

  • GitHub-style preview - Rendered Markdown and inline HTML are displayed through WebKitGTK with GitHub-like markdown styling
  • Read-only preview - Rendered Markdown stays non-editable until source mode is enabled
  • Source editing mode - Toggle between rendered preview and editable Markdown
  • Minimal UI - Clean toolbar with open, reload, edit, save, and settings buttons
  • Lightweight - Pure C with GTK and WebKitGTK, fast startup
  • Hyperlink support - Left click opens links and internal anchors
  • Document search - Ctrl+F with next/previous match navigation
  • Local image support - Local images keep natural size unless they need to fit the document window

Supported Markdown

Syntax Description
# Header 1 Large bold header
## Header 2 Medium bold header
### Header 3 Small bold header
**bold** Bold text
*italic* Italic text
`code` Inline code
... Code block
- item List item
> quote Block quote
[text](url) Link
~~strike~~ Strikethrough
| table | row | Markdown tables
<strong>HTML</strong> GitHub-style inline and block HTML rendered in preview mode
--- Horizontal rule

Fenced code blocks are syntax-highlighted GitHub-style in the preview for the languages c, java, javascript, kotlin, python, and bash, covering keywords, strings, numbers, and comments.

Usage

Run seemd to start the application.

  • Open button: Open a markdown document
  • Reload button: Reload the currently open document from disk
  • Edit button: Toggle editable Markdown source mode (Ctrl+E)
  • Save button: Save the current Markdown source (Ctrl+S)
  • Settings button: Adjust theme, fonts, and markdown accent colors

Find in Document

  • Press Ctrl+F to open search.
  • Type to highlight matches as you search.
  • Press Enter for next match and Shift+Enter for previous match.
  • Press Esc to close search.

Set as Default .md Viewer

After installing, associate markdown MIME types with seemd.desktop:

xdg-mime default seemd.desktop text/markdown
xdg-mime default seemd.desktop text/x-markdown

Verify the current default:

xdg-mime query default text/markdown

Test by opening a markdown file through your desktop association:

xdg-open README.md

Building From Source

make
sudo make install

This installs:

  • Binary to /usr/local/bin/seemd
  • Desktop file to /usr/local/share/applications/seemd.desktop

Uninstallation

sudo make uninstall

Dependencies

Arch Linux

sudo pacman -S gtk3 webkit2gtk-4.1

Ubuntu/Debian

sudo apt install libgtk-3-dev libwebkit2gtk-4.1-dev

Fedora

sudo dnf install gtk3-devel webkit2gtk4.1-devel

License

Released under the MIT License.