{"id":25732430,"url":"https://github.com/vigo/textmate2-gfm-preview","last_synced_at":"2026-02-14T09:12:31.446Z","repository":{"id":53810140,"uuid":"54316269","full_name":"vigo/textmate2-gfm-preview","owner":"vigo","description":"GitHub Flavored Markdown Preview for TextMate 2","archived":false,"fork":false,"pushed_at":"2024-12-05T15:14:38.000Z","size":463,"stargazers_count":13,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T19:01:46.381Z","etag":null,"topics":["gfm","markdown","markdown-editor","textmate"],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vigo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"Support/.gitignore","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"vigo","patreon":"vigoo"}},"created_at":"2016-03-20T12:27:01.000Z","updated_at":"2024-12-05T15:14:44.000Z","dependencies_parsed_at":"2024-08-14T14:56:04.603Z","dependency_job_id":"03932ca4-60c3-4277-8a4f-f913491c3f62","html_url":"https://github.com/vigo/textmate2-gfm-preview","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/vigo/textmate2-gfm-preview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Ftextmate2-gfm-preview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Ftextmate2-gfm-preview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Ftextmate2-gfm-preview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Ftextmate2-gfm-preview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vigo","download_url":"https://codeload.github.com/vigo/textmate2-gfm-preview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vigo%2Ftextmate2-gfm-preview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29441381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T07:24:13.446Z","status":"ssl_error","status_checked_at":"2026-02-14T07:23:58.969Z","response_time":53,"last_error":"SSL_read: 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":["gfm","markdown","markdown-editor","textmate"],"created_at":"2025-02-26T03:41:00.153Z","updated_at":"2026-02-14T09:12:31.441Z","avatar_url":"https://github.com/vigo.png","language":"CSS","funding_links":["https://github.com/sponsors/vigo","https://patreon.com/vigoo"],"categories":[],"sub_categories":[],"readme":"![Version](https://img.shields.io/badge/version-3.3.1-orange.svg)\n![Plaftorm](https://img.shields.io/badge/platform-TextMate-blue.svg)\n![macOS](https://img.shields.io/badge/macos-HighSierra-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-Mojave-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-Catalina-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-BigSur-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-Monterey-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-Ventura-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-Sonoma-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-Sequoia-yellow.svg)\n![macOS](https://img.shields.io/badge/macos-Tahoe-yellow.svg)\n![Powered by Rake](https://img.shields.io/badge/powered_by-rake-blue?logo=ruby)\n\n\n# GitHub Flavored Markdown Editor and Preview for TextMate2\n\nWrite and preview your Markdown files like a Boss! This bundle battle tested\nunder **M1**, **M2**, **M3** and **M4** Mac Books :) Yes, TextMate still\nworks on **Sequoia**!\n\n## Requirements\n\nRuby is shipped with macOS. Current builtin ruby version (*macOS Sonoma*) is\n**2.6.10**, and **2.6.10p210** (*macOS Sequoia*). It’s better to use `rbenv`\nand set your `TM_RUBY` environment variable from TextMate!\n\n```bash\nrbenv which ruby\n# /Users/vigo/.rbenv/versions/3.3.6/bin/ruby\n```\n\nIf you have already installed `rbenv` or `rvm`, you’re good to go.\n\n## Install and Update\n\nMake sure that TextMate is not running. Add `TM_RUBY` environment variable to\nTextMate:\n\n```bash\n$ defaults write com.macromates.TextMate environmentVariables \\\n    -array-add \"{enabled = 1; value = \\\"$(rbenv which ruby)\\\"; name = \\\"TM_RUBY\\\"; }\"\n```\n\nNow clone the repo:\n\n```bash\n$ cd ~/Library/Application\\ Support/TextMate/Bundles/\n$ git clone https://github.com/vigo/textmate2-gfm-preview.git GFM-Preview.tmbundle\n$ cd GFM-Preview.tmbundle/Support/\n$ bundle config set --local path 'vendor/bundle'\n$ bundle\n```\n\nThat’s it! Bundle installed successfully! You can follow updates via `git\npull` time-to-time.\n\n```bash\n$ cd ~/Library/Application\\ Support/TextMate/Bundles/GFM-Preview.tmbundle\n$ git pull origin main\n```\n\n\n## TextMate Environment Variables\n\nYou can define;\n\n- `TM_GFM_ZOOM_FACTOR`: For zooming text.\n- `TM_MARKDOWN_MATHJAX`: For Mathjax support.\n- `TM_MARKDOWN_MERMAID`: For [Mermaid](https://mermaid-js.github.io/mermaid) support. (new!)\n- `TM_GFM_FONT`: For custom font which is installed to your `~/Fonts`\n- `TM_GFM_LINK_FONT_WEIGHT`: Optional `font-weight:` css directive for `a` link tags.\n- `TM_GFM_LINK_TEXT_DECORATION`: Optional `text-decoration:` css directive for `a` link tags.\n\nvariables from *TextMate \u003e Preferences \u003e Variables* for customizing extra\nfeatures. Or do it from shell:\n\n```bash\n# assuming that, `OpenSans` font already installed on your ~/Library/Fonts\n\ndefaults write com.macromates.TextMate environmentVariables -array-add \\\n    '{enabled = 1; value = \"100%\"; name = \"TM_GFM_ZOOM_FACTOR\"; }' \\\n    '{enabled = 1; value = 1; name = \"TM_MARKDOWN_MATHJAX\"; }' \\\n    '{enabled = 1; value = 1; name = \"TM_MARKDOWN_MERMAID\"; }' \\\n    '{enabled = 1; value = \"OpenSans\"; name = \"TM_GFM_FONT\"; }' \\\n    '{enabled = 1; value = \"500\"; name = \"TM_GFM_LINK_FONT_WEIGHT\"; }' \\\n    '{enabled = 1; value = \"underline\"; name = \"TM_GFM_LINK_TEXT_DECORATION\"; }'\n```\n\n\n### Example Settings\n\n![Example Settings](Support/screenshots/gfm-example-config.png?3)\n\n### Zooming\n\nWithout zoom (default/standard)\n\n![Without zoom](Support/screenshots/gfm-without-zoom.png?5)\n\nWith **150%** zoom:\n\n![150% zoom](Support/screenshots/gfm-zoomed.png?4)\n\nYou name it! Make it `300%` if you like to! Now you can hit `⌃ + ⌥ + ⌘ + p` or\n`kntrl + alt + cmd + p`\n\n## Editor Features\n\nWith the power or Redcarpet and Rouge gems, we have some special features in\nmarkdown operation!\n\nShortcuts | Description\n:---------|:---------\n`c` + \u003ckbd\u003e⇥\u003c/kbd\u003e | Insert code block. There are lots of languages supported. Thanks to rouge gem. [List of languages are here][rouge-list].\n\u003ckbd\u003e⌃\u003c/kbd\u003e + \u003ckbd\u003eC\u003c/kbd\u003e | Convert selection to inline code.\n\u003ckbd\u003e⌃\u003c/kbd\u003e + \u003ckbd\u003eH\u003c/kbd\u003e | Convert selection to highlighted text.\n\u003ckbd\u003e⌃\u003c/kbd\u003e + \u003ckbd\u003eS\u003c/kbd\u003e | Convert selection to strikethrough text.\n\u003ckbd\u003e⌘\u003c/kbd\u003e + \u003ckbd\u003eU\u003c/kbd\u003e | Convert selection to underlined text.\n`table` + \u003ckbd\u003e⇥\u003c/kbd\u003e | Insert markdown table.\n`img` + \u003ckbd\u003e⇥\u003c/kbd\u003e | Insert markdown image.\n\n\n## Features\n\n### Mermaid Support (new!)\n\nAdd `TM_MARKDOWN_MERMAID` variable and set it to `1`. Example mermaid git graph:\n\n    ```mermaid\n    gitGraph\n        commit\n        commit\n        branch develop\n        checkout develop\n        commit\n        commit\n        checkout main\n        merge develop\n        commit\n        commit\n    ```\n\nor\n\n    ```mermaid\n    sequenceDiagram\n        Alice-\u003e\u003eJohn: Hello John, how are you?\n        John--\u003e\u003eAlice: Great!\n        Alice-)John: See you later!\n    ```\n\nMermaid related configuration via env-vars:\n\n- `TM_MARKDOWN_MERMAID_SHOW_SEQUENCE_NUMBERS`: `true` or `false` will\n  (dis)allow sequence numbers on screen. (sequenceDiagram). Default value is\n  `false`\n\n### Mathjax Support\n\nAdd `TM_MARKDOWN_MATHJAX` variable and set it to `1` for mathjax support.\n(*TextMate \u003e Preferences \u003e Variables*)\n\nExample:\n\n    $ log\\_232 = log\\_22\\^5 = 5 $\n\n### Strikethrough\n\nYou can ~~strikethrough~~ words.\n    \n    You can ~~strikethrough~~ words.\n\n### Superscript\n\nThis is your 2^(nd) attempt.  \n\n    This is your 2^(nd) attempt.\n\n### Underline\n\nThis is _underlined_ but this is still *italic*\n\n    This is _underlined_ but this is still *italic*\n\n### Highlight\n\nThis is ==highlighted== text.\n\n    This is ==highlighted==\n\n### Quote\n\nThis is a \"quote\"\n\n    This is a \"quote\"\n\n### Footnotes\n\nClick to jump footnote.[^1]\n[^1]: This is a footnote.\n\n    Click to jump footnote.[^1]\n    [^1]: This is a footnote.\n\n### Fenced Code Blocks\n\n    ```ruby\n    require 'redcarpet'\n    markdown = Redcarpet.new(\"Hello World!\")\n    puts markdown.to_html\n    ```\n\n```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new(\"Hello World!\")\nputs markdown.to_html\n```\n\n### Tables: Example 1\n\n    | First Header  | Second Header |\n    | ------------- | ------------- |\n    | Content Cell  | Content Cell  |\n    | Content Cell  | Content Cell  |\n\nOutput:\n\n| First Header  | Second Header |\n| ------------- | ------------- |\n| Content Cell  | Content Cell  |\n| Content Cell  | Content Cell  |\n\n***\n\n### Tables: Example 2\n\n    | Name          | Description                 |\n    | ------------- | --------------------------- |\n    | Help          | ~~Display the~~ help window.|\n    | Close         | _Closes_ a window           |\n\nOutput:\n\n| Name          | Description                 |\n| ------------- | --------------------------- |\n| Help          | ~~Display the~~ help window.|\n| Close         | _Closes_ a window           |\n\n***\n\n### Tables: Example 3\n\n    | Left-Aligned  | Center Aligned  | Right Aligned |\n    | :------------ |:---------------:| -------------:|\n    | col 3 is      | some wordy text |         $1600 |\n    | col 2 is      | centered        |           $12 |\n    | zebra stripes | are neat        |            $1 |\n\nOutput:\n\n| Left-Aligned  | Center Aligned  | Right Aligned |\n| :------------ |:---------------:| -------------:|\n| col 3 is      | some wordy text |         $1600 |\n| col 2 is      | centered        |           $12 |\n| zebra stripes | are neat        |            $1 |\n\n***\n\n## Change Log\n\n**2026-02-14**\n\n* Fix preview rendering issue on macOS Tahoe (26+)\n* Refactor extra CSS injection: empty `\u003cstyle\u003e` block is no longer rendered when no custom environment variables are set\n\n**2022-10-04**\n\n* Add Mermaid renderer\n\n**2019-10-17**\n\n* Add bumpversion support\n\n**2018-11-21**\n\n* Update: Installation information, removed ruby version dependency\n\n**2018-11-02**\n\n* Fix latest Safari update `Version 12.0.1 (13606.2.104.1.2)`\n* Version bump: `2.2.2`\n\n**2018-10-18**\n\n* Version bump: `2.2.1`\n* Installation information update\n\n\n**2017-11-06**\n\n* Version bump: `2.2.0`\n* `TM_GFM_LINK_FONT_WEIGHT` and `TM_GFM_LINK_TEXT_DECORATION` environment\n  variables are added.\n\n**2017-10-02**\n\n* Update: \u003ckbd\u003et\u003c/kbd\u003e + ⇥ (*3 spaces for nested list*)\n* Fix: `app.js` remote image loading issue.\n\n**2017-09-29**\n\n* Update: table + ⇥\n* Fix: README\n\n**2017-07-08**\n\n* Ruby lib `gfm.rb` re-written from scratch!\n* Fixed: Live Preview!\n\n**2017-07-02**\n\n* Removed: Pygments\n* New syntax highlighter: `rouge`\n* Updated to Ruby 2.4.0\n* Added: Front-Matter filter for Preview. Thanks to [noniq][noniq] for [Markdown-Front-Matter][markdown-fm-bundle]\n* Added: Lots of Markdown Snippets!\n\n**2017-01-08**\n\n* Fix: live preview.\n\n**2017-01-02**\n\n* Fix: Broken footnotes due to base href.\n* New feature: Custom font-family via `TM_GFM_FONT` env-var.\n\n**2017-01-01**\n\n* Support for relative image src: `![alt](picture.png \"title\")` looks for `picture.png` in current folder.\n\n**2016-10-04**\n\n* Fix zoom factor for TABLEs\n* Automatic refresh for Preview (*comes with TextMate version 2.0-beta.12.21*) \nwhen you save file.\n\n**2016-09-14**\n\n* Added: Mathjax support.\n* Added more `redcarpet` features: Strikethrough, Superscript, Underline, Highlight, \nQuote, Footnotes. Please preview this readme file via bundle. GitHub doesn’t support\nsome of the features (*highlight, superscript, underline, footnote etc...*)\n\n\n**2016-04-25**\n\n* Added: `TM_GFM_ZOOM_FACTOR` for zoom options\n* Auto-save! If you open an existing file and hit preview, you don’t need\nto save!\n\n**2016-03-20**\n\n* converted TM1 edition of this bundle to TM2\n* fixed: You don’t need to `save` before preview!\n\n***\n\n## Contribute\n\nPR’s are very welcome!\n\n1. `fork` (https://github.com/vigo/textmate2-gfm-preview/fork)\n2. Create your `branch` (`git checkout -b my-features`)\n3. `commit` yours (`git commit -am 'added killer features'`)\n4. `push` your `branch` (`git push origin my-features`)\n5. Than create a new **Pull Request**!\n\n***\n\n## Contributor(s)\n\n* [Uğur \"vigo\" Özyılmazel][vigo] - Creator, maintainer\n\n***\n\n## License\n\nThis project is licensed under MIT.\n\n[vigo]:  http://ugur.ozyilmazel.com \"Official Homepage\"\n[ln-01]: https://github.com/vigo/textmate1-github-gfm-preview\n[noniq]: https://github.com/noniq\n[markdown-fm-bundle]: https://github.com/noniq/Markdown-Front-Matter.tmbundle/blob/master/Support/strip_front_matter\n[rouge-list]: https://github.com/jneen/rouge/wiki/List-of-supported-languages-and-lexers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvigo%2Ftextmate2-gfm-preview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvigo%2Ftextmate2-gfm-preview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvigo%2Ftextmate2-gfm-preview/lists"}