{"id":29792367,"url":"https://github.com/3c0d/obsidian-smart-print","last_synced_at":"2026-04-02T17:51:17.341Z","repository":{"id":300509934,"uuid":"1006331973","full_name":"3C0D/obsidian-smart-print","owner":"3C0D","description":"smart print via navigator of obsidian notes","archived":false,"fork":false,"pushed_at":"2026-03-29T06:33:43.000Z","size":796,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-29T09:19:03.693Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3C0D.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-22T02:52:57.000Z","updated_at":"2026-03-29T06:33:43.000Z","dependencies_parsed_at":"2025-07-28T01:39:10.206Z","dependency_job_id":"0b495553-8939-46dc-84fd-828884974436","html_url":"https://github.com/3C0D/obsidian-smart-print","commit_stats":null,"previous_names":["3c0d/obsidian-smart-print"],"tags_count":8,"template":false,"template_full_name":"3C0D/obsidian-sample-plugin-modif","purl":"pkg:github/3C0D/obsidian-smart-print","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3C0D%2Fobsidian-smart-print","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3C0D%2Fobsidian-smart-print/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3C0D%2Fobsidian-smart-print/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3C0D%2Fobsidian-smart-print/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3C0D","download_url":"https://codeload.github.com/3C0D/obsidian-smart-print/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3C0D%2Fobsidian-smart-print/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31312744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-28T01:39:07.524Z","updated_at":"2026-04-02T17:51:17.317Z","avatar_url":"https://github.com/3C0D.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obsidian Smart Print\n\nEnhanced and customizable printing for Obsidian notes, with intelligent rendering, live preview, and full control over fonts, headers, and styles.\n\n![Browser Print Preview](assets/Browser-print.png)\n\n**See the print quality:** [View print results gallery](examples/PRINT-RESULTS.md) | [View sample document](examples/sample.md)\n\n## ⚠️ Desktop Only (Temporary)\n\n**This plugin is currently desktop-only.** Mobile support exists in the code but has not been tested or debugged.\n\n## Quick Start\n\n1. **Install the plugin** and enable it\n2. **Right-click in the editor** or on a file in the explorer\n3. **Select a print option** from the context menu\n4. **Adjust options** in the modal (optional)\n5. **Print!** The plugin automatically uses the best rendering method\n\n**Alternative ways to print:**\n\n- **Right-click on files/folders** → Print from explorer\n- **Right-click in editor** → Print note or selection\n- **Command palette** → Search \"Smart Print\"\n- **Ribbon icon** (optional, disabled by default) → Enable in settings\n\n## Features\n\n### 🎯 Intelligent Printing\n\nSmart Print automatically chooses the best rendering method for your content:\n\n- **Advanced rendering** (with post-render for Mermaid, Dataview, LaTeX, etc.) - Used for the active note and selections (desktop only)\n- **Basic rendering** (no post-render) - Used for non-visible documents and all mobile printing\n- **Automatic fallback** - Seamlessly switches between modes based on context\n\n**What renders perfectly with advanced mode:**\n\n- ✅ Mermaid diagrams\n- ✅ Dataview queries\n- ✅ Callouts with icons\n- ✅ Tables, lists, code blocks\n- ✅ Images and links\n- ✅ Embedded images\n- ✅ Nested checkboxes with proper indentation\n- ✅ Custom theme colors\n- ✅ Personalized styles with `.obsidian-print` CSS prefix\n\n### 📋 Print Options Modal\n\nEvery print command opens a simple modal where you can:\n\n![Print Modal](assets/modal.png)\n\n- **Quick toggles** for common options. ⚠️ only relevant options are shown based on your document content:\n  - Include note title (if the document has an H1 identical to the filename, it's automatically hidden to avoid duplication)\n  - Use H1 as title (only if document contains an H1 different from the filename)\n  - Show metadata (displayed at the end of the document)\n  - Hide images (only if document contains images)\n  - Hide embedded notes (only if document contains embeds)\n  - Page breaks at horizontal rules (`---`) (only if document contains horizontal rules)\n  - Show Obsidian comments (`%% ... %%`) (only if document contains comments)\n  - Print in color or black \u0026 white\n- **Font settings** with 20+ cross-platform font options\n- **Auto-sync heading sizes:** All heading sizes automatically adjust when you change the **font size**\n\n### 🎯 Multiple Ways to Print\n\n**From anywhere in Obsidian:**\n\n- **Ribbon icon** → Print current note\n- **Command palette** → Search \"Smart Print\"\n  - \"Current note\" - Print with modal\n  - \"Quick print\" - Print immediately without modal\n  - \"Selection\" - Print selected text only\n  - \"All notes in current folder\" - Batch print\n\n- **Right-click** on files/folders in explorer → Print options\n- **Right-click** in editor → Print note or selection\n\n**What you can print:**\n\n- **Current note** (active document) - Advanced rendering\n- **Selected text only** (from editor) - Advanced rendering (desktop), basic rendering (mobile)\n- **Any note** (from file explorer) - Advanced rendering if visible in editor, otherwise basic\n- **All notes in a folder** - Advanced rendering (desktop), basic rendering (mobile)\n\n### 🌐 Browser-Based Printing in Desktop version\n\n- **Opens in your default browser** for maximum compatibility and print options\n- **Print window appears automatically** when the browser window opens\n- **Tip:** Close the print window to view the preview window under, then press `Ctrl+P` (or `Cmd+P`) to reopen print window\n\n## Settings Guide\n\n### Font \u0026 Typography\n\n- **Font family:** Choose from 20+ cross-platform fonts (Arial, Times, Roboto, Ubuntu, Georgia, Fira Code, and many more)\n- **Font size:** Base size with automatic heading synchronization option\n- **Auto-sync headings:** When enabled, changing the base font size automatically adjusts all heading sizes proportionally\n- **Individual heading sizes:** Fine-tune each heading level (H1-H6) independently\n\n### Colors \u0026 Styling\n\n- **Header colors:** Set individual colors for each heading level\n- **Import theme colors:** One-click import from your current theme (light mode)\n- **Print in color:** Toggle between color and black \u0026 white output\n- **Custom CSS:** Advanced styling with `.obsidian-print` prefix (desktop only)\n  - Create a `print.css` file in `.obsidian/snippets/`\n  - Use `.obsidian-print` as prefix for your selectors\n  - Example: `.obsidian-print a { color: blue; text-decoration: underline; }`\n  - No need for `!important` - your styles will apply automatically\n  - The \"Print in color\" toggle in the modal will still work as expected\n\n### Print Behavior\n\n- **Page breaks:** Treat horizontal rules (`---`) as page breaks\n- **Metadata display:** Include/exclude frontmatter in prints (displayed at the end of the document)\n- **Hide images:** Toggle to exclude all images from print output\n- **Folder printing:** Combine all notes or separate pages\n- **Skip preview:** Print directly without preview window\n\n### UI \u0026 UX\n\n- **Show ribbon icon:** Toggle printer icon in left sidebar\n- **Show context menu items:** Enable/disable right-click print options\n- **Group in submenu:** Organize context menu items under \"Smart Print\" submenu\n- **Show print mode selection:** Display options modal before printing (desktop only)\n- **Show folder print options modal:** Display options when printing folders\n\n## Tips \u0026 Tricks\n\n💡 **Temporary files:** During advanced rendering of selections, and as a fallback for folder prints when a file isn't open in any editor leaf, a temporary `_smart-print-tmp` folder is created at the vault root and automatically deleted after use\n\n💡 **Show comments:** Enabling \"Show comments\" for Obsidian comments (`%% ... %%`) switches to basic rendering since comments are stripped by Obsidian before the preview DOM is built\n\n💡 **Rich print titles:** Obsidian filenames can't contain special characters like `:`, `?`, `/`, etc. To print with a more expressive title, add an H1 at the top of your note (e.g., `# My Report: 2024 Results`) and enable \"Use H1 as title\" in the print modal — the H1 will replace the filename as the document title\n\n💡 **Theme integration:** Use \"Get theme colors\" in settings to match your Obsidian theme\n\n💡 **Auto-sync workflow:** Enable \"Auto-sync heading sizes\" for consistent typography – all headings automatically scale when you change the base font size\n\n💡 **Font variety:** The plugin includes web-safe fonts and popular options like Roboto, Ubuntu, Georgia, and Fira Code for different document styles\n\n💡 **Custom styling:** Create a `print.css` file in `.obsidian/snippets/` with `.obsidian-print` selectors. No `!important` needed - your styles apply automatically and respect the \"Print in color\" toggle\n\n💡 **Quick printing:** Use \"Quick print\" command to skip the modal and print immediately\n\n💡 **Folder printing:** Print entire folders with a dedicated modal for batch options\n\n💡 **Mobile friendly:** Full feature support on mobile devices with optimized interface\n\n💡 **Image control:** Use the \"Hide images\" toggle to print text-only versions of your notes\n\n💡 **Metadata placement:** When enabled, frontmatter is displayed at the end of the document with a \"Frontmatter\" label\n\n💡 **Embedded images:** The plugin automatically converts embedded images to base64 for reliable printing across all platforms\n\n💡 **Embedded files:** Embedded notes (`![[note]]`) are rendered inline with a subtle border and title for easy identification\n\n💡 **Adaptive modal:** Print options automatically adapt to your document content - only relevant toggles are shown based on what's in your note\n\n## Technical Details\n\n### Rendering Strategy\n\nSmart Print uses an intelligent capture strategy:\n\n1. **Tries advanced DOM capture** - Captures the live preview exactly as you see it\n2. **Falls back gracefully** - Uses standard Markdown rendering if DOM capture fails\n3. **Handles edge cases** - Special handling for selections, folder prints, and non-active files via temporary file capture\n\n### Print Engines\n\n- **Browser print** (desktop): Opens in system browser for maximum compatibility and options\n- **Printd** (mobile/desktop): In-app printing with Electron/mobile print dialog\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3c0d%2Fobsidian-smart-print","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3c0d%2Fobsidian-smart-print","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3c0d%2Fobsidian-smart-print/lists"}