[PR #582] feat: Add Markdown to HTML paste conversion #559

Open
opened 2026-03-03 01:13:02 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Clipy/Clipy/pull/582
Author: @PierreVannier
Created: 1/26/2026
Status: 🔄 Open

Base: developHead: feature/markdown-to-html-paste


📝 Commits (1)

  • 9f3dc41 feat: Add Markdown to HTML paste conversion

📊 Changes

5 files changed (+323 additions, -66 deletions)

View changed files

📝 Clipy.xcodeproj/project.pbxproj (+13 -5)
Clipy/Sources/Services/MarkdownService.swift (+189 -0)
📝 Clipy/Sources/Services/PasteService.swift (+40 -1)
📝 Podfile (+10 -1)
📝 Podfile.lock (+71 -59)

📄 Description

Summary

  • Add automatic Markdown formatting when pasting from Clipy history
  • Normal paste converts Markdown to styled HTML/RTF (GitHub-like styling)
  • SHIFT + paste keeps raw Markdown as plain text

Features

  • MarkdownService: New service that detects and converts Markdown using Maaku (libcmark_gfm)
  • Supports GitHub Flavored Markdown including:
    • Tables
    • Strikethrough
    • Code blocks (inline and fenced)
    • Headers, lists, blockquotes
    • Links and images
  • GitHub-inspired styling with system fonts, white background (#fff), dark text (#333)

Technical Changes

  • Add Maaku pod dependency for GFM parsing
  • Update minimum deployment target to macOS 10.13 (required by modern dependencies)
  • Add incrementChangeCount() before pasteboard modifications to prevent race conditions with ClipService monitoring

Screenshots

Normal paste (formatted) SHIFT + paste (plain)
Renders as styled table | Nom | Age | raw text

Test plan

  • Copy Markdown text with tables
  • Paste normally → should render as formatted HTML
  • SHIFT + paste → should paste raw Markdown
  • Verify non-Markdown text still pastes normally
  • Test on macOS 10.13+

Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Clipy/Clipy/pull/582 **Author:** [@PierreVannier](https://github.com/PierreVannier) **Created:** 1/26/2026 **Status:** 🔄 Open **Base:** `develop` ← **Head:** `feature/markdown-to-html-paste` --- ### 📝 Commits (1) - [`9f3dc41`](https://github.com/Clipy/Clipy/commit/9f3dc41914dc44938721e32d99df087441ec7506) feat: Add Markdown to HTML paste conversion ### 📊 Changes **5 files changed** (+323 additions, -66 deletions) <details> <summary>View changed files</summary> 📝 `Clipy.xcodeproj/project.pbxproj` (+13 -5) ➕ `Clipy/Sources/Services/MarkdownService.swift` (+189 -0) 📝 `Clipy/Sources/Services/PasteService.swift` (+40 -1) 📝 `Podfile` (+10 -1) 📝 `Podfile.lock` (+71 -59) </details> ### 📄 Description ## Summary - Add automatic Markdown formatting when pasting from Clipy history - Normal paste converts Markdown to styled HTML/RTF (GitHub-like styling) - SHIFT + paste keeps raw Markdown as plain text ## Features - **MarkdownService**: New service that detects and converts Markdown using Maaku (libcmark_gfm) - Supports GitHub Flavored Markdown including: - Tables - Strikethrough - Code blocks (inline and fenced) - Headers, lists, blockquotes - Links and images - GitHub-inspired styling with system fonts, white background (#fff), dark text (#333) ## Technical Changes - Add `Maaku` pod dependency for GFM parsing - Update minimum deployment target to macOS 10.13 (required by modern dependencies) - Add `incrementChangeCount()` before pasteboard modifications to prevent race conditions with ClipService monitoring ## Screenshots | Normal paste (formatted) | SHIFT + paste (plain) | |--------------------------|----------------------| | Renders as styled table | `\| Nom \| Age \|` raw text | ## Test plan - [ ] Copy Markdown text with tables - [ ] Paste normally → should render as formatted HTML - [ ] SHIFT + paste → should paste raw Markdown - [ ] Verify non-Markdown text still pastes normally - [ ] Test on macOS 10.13+ --- Generated with [Claude Code](https://claude.ai/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Clipy#559
No description provided.