Giter VIP home page Giter VIP logo

grip-mode's Introduction

grip-mode

Build Status Release Tag License MELPA MELPA Stable

Table of Contents

Instant Github-flavored Markdown/Org preview using Grip (GitHub Readme Instant Preview).

Prerequisite

Install

Manual

From melpa, M-x package-install RET grip-mode RET.

;; Make a keybinding: `C-c C-c g'
(define-key markdown-mode-command-map (kbd "g") #'grip-mode)

;; Or start grip when opening a markdown/org buffer
(add-hook 'markdown-mode-hook #'grip-mode)
(add-hook 'org-mode-hook #'grip-mode)

Use-package

;; Use keybindings
(use-package grip-mode
  :ensure t
  :bind (:map markdown-mode-command-map
         ("g" . grip-mode)))

;; Or using hooks
(use-package grip-mode
  :ensure t
  :hook ((markdown-mode org-mode) . grip-mode))

Run M-x grip-mode to preview the markdown and org buffers in the embedded webkit browser if Emacs supports (built with --with-xwidgets), or in the default browser (Chrome, Firefox, etc.).

ox-gfm is optional, but it brings better rendering for org files.

Enjoy! 😄

Customize

Run M-x customize-group RET grip RET or set the variables.

;; Path to the grip binary
(setq grip-binary-path "/path/to/grip")

;; Use embedded webkit to preview
;; This requires GNU/Emacs version >= 26 and built with the `--with-xwidgets` option.
(setq grip-preview-use-webkit t)

;; You can use this variable to define another browser
;; to use when loading previews. By default this value is `nil`
;; meaning use default browser defined by your system.
;; It respects `grip-preview-use-webkit'.
(setq grip-url-browser "custom_browser")

;; If you want to pass arguements to your custom browser then use
(setq grip-url-args '("arg1" "arg2" "etc"))

;; A base URL to another GitHub API.
(setq grip-github-api-url "")

;; A GitHub username for API authentication
(setq grip-github-user "")

;; A GitHub password or auth token for API auth
(setq grip-github-password "")

;; When nil, update the preview after file saves only, instead of also
;; after every text change
(setq grip-update-after-change nil)

;; Preview hostname
(setq grip-preview-host "localhost")

;; Sleep seconds to ensure the server starts
(setq grip-sleep-time 2)

If you don't set them you may have limitation to access Github APIs. Please visit Grip Access for details.

You can get the user name and password from ~/.authinfo like this.

(require 'auth-source)
(let ((credential (auth-source-user-and-password "api.github.com")))
  (setq grip-github-user (car credential)
        grip-github-password (cadr credential)))

Screenshots

default_browser

xwidget_webkit

Limitations

  • Need to save to preview org buffers due to the performance trade-off.

FAQ

  1. How to resolve the issue: "GitHub Rate Limit Reached"?

    You need to set your GitHub username to grip-github-user, then Creating a personal access token for the command line and set the new token to grip-github-password.

Donate

If you think the it's helpful for you, please consider paying a cup of coffee for me. Thank you! 😄

Alipay      Wechat Pay

PayPal      Buy Me A Coffee

grip-mode's People

Contributors

chrispoole643 avatar seagle0128 avatar shubham-cpp avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.