{"id":13862405,"url":"https://github.com/masasam/emacs-easy-jekyll","last_synced_at":"2025-03-21T12:32:59.429Z","repository":{"id":110990241,"uuid":"99871455","full_name":"masasam/emacs-easy-jekyll","owner":"masasam","description":"Emacs major mode for managing jekyll","archived":false,"fork":false,"pushed_at":"2021-12-19T01:12:05.000Z","size":13525,"stargazers_count":58,"open_issues_count":0,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-01T06:32:56.908Z","etag":null,"topics":["aws-s3","blog","emacs","emacs-lisp","emacspeak","firebase","firebase-hosting","github-pages","google-cloud-storage","jekyll","markdown","melpa","netlify","static-site-generator"],"latest_commit_sha":null,"homepage":"https://jekyllrb.com/","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masasam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-08-10T02:18:47.000Z","updated_at":"2025-02-08T00:47:47.000Z","dependencies_parsed_at":"2023-03-13T13:44:44.233Z","dependency_job_id":null,"html_url":"https://github.com/masasam/emacs-easy-jekyll","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Femacs-easy-jekyll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Femacs-easy-jekyll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Femacs-easy-jekyll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masasam%2Femacs-easy-jekyll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masasam","download_url":"https://codeload.github.com/masasam/emacs-easy-jekyll/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244141536,"owners_count":20404834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aws-s3","blog","emacs","emacs-lisp","emacspeak","firebase","firebase-hosting","github-pages","google-cloud-storage","jekyll","markdown","melpa","netlify","static-site-generator"],"created_at":"2024-08-05T06:01:43.663Z","updated_at":"2025-03-21T12:32:58.417Z","avatar_url":"https://github.com/masasam.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"# easy-jekyll [![melpa badge][melpa-badge]][melpa-link] [![melpa stable badge][melpa-stable-badge]][melpa-stable-link] [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\n![logo](image/logo.png)\n\nEmacs major mode for managing jekyll blogs\n\n## Screencast\n\n![screencast](image/screencast.gif)\n\n\tM-x easy-jekyll\n\nYou can manage blogs on easy-jekyll-mode.\nIf you manage multiple blogs, you can switch blogs with the \u003c or \u003e key.\n\n![easy-jekyll-mode](image/easy-jekyll-mode.png)\n\n    M-x easy-jekyll-newpost\n\nYou can post a new article.\nEnter a article file name in the minibuffer.\nA markdown file is automatically generated.\nYou can write a blog with [markdown-mode](https://github.com/jrblevin/markdown-mode).\n\n![easy-jekyll1](image/easy-jekyll1.png)\n\nIf you enter '.textile' file name in the minibuffer, textile file is automatically generated and you can write a blog with textile.\n\n    M-x easy-jekyll-preview\n\n![easy-jekyll2](image/easy-jekyll2.png)\n(The picture of the header is http://www.pixiv.net/member_illust.php?mode=medium\u0026illust_id=60674880)\n\nThe browser opens automatically and you can preview the blog on your laptop or desktop.\nEven if you run the easy-jekyll-preview command many times, only one jekyll process will run so do not mind it.\nSince the process of jekyll running in the laptop or desktop disappears in 300 seconds, you do not have to worry about killing jekyll process.\n\n    M-x easy-jekyll-publish\n\nYou can publish your blog to the server and the browser opens automatically.\n\n\t(setq easy-jekyll-publish-production t)\n\nIf you want to use \"JEKYLL_ENV=production\" at publish and using \"JEKYLL_ENV=development\" at preview, write it in your init.el as above.\n\n\tM-x easy-jekyll-publish-clever\n\nClever publish command.\nAutomatically select the deployment destination from init.el.\nIf the target blog set easy-jekyll-root, easy-jekyll-publish will be executed.\nIf the target blog set easy-jekyll-amazon-s3-bucket-name, easy-jekyll-amazon-s3-deploy will be executed.\nIf the target blog set easy-jekyll-google-cloud-storage-bucket-name, easy-jekyll-google-cloud-storage-deploy be executed.\nIf the target blog has \"deploy.sh\" on easy-jekyll-basedir, easy-jekyll-github-deploy will be executed.\nIf there is firebase command, easy-jekyll-firebase-deploy will be executed.\n\n\tM-x easy-jekyll-ag\n\n![easy-jekyll-helm-ag](image/easy-jekyll-helm-ag.png)\n\nYou can search blog article with [counsel-ag](https://github.com/abo-abo/swiper) or [helm-ag](https://github.com/syohex/emacs-helm-ag).\nIf both are installed, counsel-ag takes precedence at default and\nyou can use helm-ag by writing the following to .emacs or init.el.\n\n\t(setq easy-jekyll-helm-ag t)\n\nIf you deploy your blog at [Firebase](https://firebase.google.com/).\n\n\tM-x easy-jekyll-firebase-deploy\n\nTo use easy-jekyll-firebase-deploy, you make project at firebase hosting using your browser.\nNext run command.\n\n    npm install -g firebase-tools\n\tcd [your-jekyll-directory]\n\tfirebase login\n\tfirebase init\n\tfirebase deploy\n\nIf you deploy your blog at github.\n\n\tM-x easy-jekyll-github-deploy\n\nExecute deploy.sh which exists in directory `easy-jekyll-basedir`.\nIt is useful for hosting on [GitHub Pages](https://help.github.com/articles/using-jekyll-as-a-static-site-generator-with-github-pages/) etc.\nIf you use the rake task in deploy.sh, please refer to [here](https://github.com/masasam/emacs-easy-jekyll/issues/3).\n\nExample of deploy.sh\n\n\t#!/bin/bash\n\tgit checkout gh-pages\n\tgit add -A\n\tgit commit -m \"Update blog\"\n\tgit push origin gh-pages\n\nDon't forget granting execute permission to deploy.sh.\n\nBelow is how to pass password to deploy.sh.\nYou are to set up connecting to GitHub with SSH (see https://help.github.com/articles/connecting-to-github-with-ssh/).\nYou install keychain (see http://www.funtoo.org/Keychain).\nNow that you don't need a password, you can run deploy.sh.\n\n\tM-x easy-jekyll-magit\n\nNetlify just press M and commit to GitHub.\nPlease install [Magit](https://github.com/magit/magit) to use this feature.\n\n\tM-x easy-jekyll-amazon-s3-deploy\n\nDeploy jekyll source at Amazon S3.\n\n\tM-x easy-jekyll-google-cloud-storage-deploy\n\nDeploy jekyll source at Google Cloud Storage.\n\n\tM-x easy-jekyll-next-postdir\n\tM-x easy-jekyll-previous-postdir\n\nWith this you can go to a directory other than _post.\n\n\tM-x easy-jekyll-nth-blog\n\nYou can move to a blog with the specified number.\n\n\tM-x easy-jekyll-select-filename\n\nSelect filename you want to open. You can open a selected filename article.\n\n![easy-jekyll-select-filename](image/easy-jekyll-select-filename.png)\n\n\tM-x easy-jekyll-select-postdir\n\nSelect postdir you want to go. You can go to a selected directory.\n\n![easy-jekyll-select-postdir](image/easy-jekyll-select-postdir.png)\n\n\tM-x easy-jekyll-select-blog\n\nSelect blog you want to go. You can go to a selected blog.\n\n![easy-jekyll-select-blog](image/easy-jekyll-select-blog.png)\n\n\tM-x easy-jekyll-image\n\nGenerate link of image from image file directory under 'easy-jekyll-image-directory' directory.\n'easy-jekyll-image-directory' default is 'images'.\n\n![easy-jekyll-image1](image/easy-jekyll-image1.png)\n\nWhen you select the image file you want to use, a link will be inserted.\nThe default for the image file directory name is \"images\", but if you want to change it, write as follows.\n\n\t(setq easy-jekyll-image-directory \"img\")\n\n![easy-jekyll-image2](image/easy-jekyll-image2.png)\n\n\tM-x easy-jekyll-put-image\n\nMove image to 'easy-jekyll-image-directory' and generate image link.\nYou can change the initial launch position with 'easy-jekyll-default-picture-directory'.\n\n![easy-jekyll-put-image](image/easy-jekyll-put-image.png)\n\n\tM-x easy-jekyll-pull-image\n\nPull image from internet to image directory and generate image link.\nCopy the URL of the image you want to download with your browser.\nExecute M-x easy-jekyll-pull-image.\n\n![easy-jekyll-pull-image](image/easy-jekyll-pull-image.png)\n\nDecide file name.\nIf you press enter without deciding the file name, the file name can be used as it is.\n\n![easy-jekyll-pull-image1](image/easy-jekyll-pull-image1.png)\n\nThe file is saved in 'easy-jekyll-image-directory' and generate image link.\n\n![easy-jekyll-pull-image2](image/easy-jekyll-pull-image2.png)\n\n## Commands for easy-jekyll-mode\n\n|key    |function      |\n|-------|--------------|\n|RET\t|easy-jekyll-open|\n|Tab\t|easy-jekyll-full-help|\n|Shift-Tab|easy-jekyll-no-help|\n|SPC\t|easy-jekyll-next-line|\n|Shift-SPC|easy-jekyll-previous-line|\n|←\t    |easy-jekyll-backward-char|\n|→      |easy-jekyll-forward-char|\n|C-b\t|easy-jekyll-backward-char|\n|C-f\t|easy-jekyll-forward-char|\n|C-n\t|easy-jekyll-next-line|\n|C-p\t|easy-jekyll-previous-line|\n|M-b\t|easy-jekyll-backward-word|\n|M-\u003c\t|easy-jekyll-beginning-of-buffer|\n|.      |easy-jekyll-next-postdir|\n|,      |easy-jekyll-previous-postdir|\n|+      |easy-jekyll-next-postdir|\n|-      |easy-jekyll-previous-postdir|\n|/      |easy-jekyll-select-postdir|\n|;      |easy-jekyll-select-blog|\n|\u003c\t\t|easy-jekyll-previous-blog|\n|\u003e\t\t|easy-jekyll-next-blog|\n|?\t\t|describe-mode|\n|!\t\t|easy-jekyll-cansel-firebase-deploy-timer|\n|A\t\t|easy-jekyll-amazon-s3-deploy|\n|B\t\t|easy-jekyll-firebase-deploy|\n|C\t\t|easy-jekyll-google-cloud-storage-deploy|\n|D\t\t|easy-jekyll-list-draft|\n|F\t\t|easy-jekyll-full-help|\n|G\t\t|easy-jekyll-github-deploy|\n|H\t\t|easy-jekyll-github-deploy-timer|\n|I\t\t|easy-jekyll-google-cloud-storage-deploy-timer|\n|J\t\t|easy-jekyll-nth-blog|\n|L\t\t|easy-jekyll-firebase-deploy-timer|\n|M\t\t|easy-jekyll-magit|\n|N\t\t|easy-jekyll-no-help|\n|O\t\t|easy-jekyll-open-basedir|\n|P\t\t|easy-jekyll-publish-clever|\n|R\t\t|easy-jekyll-rename|\n|S\t\t|easy-jekyll-sort-time|\n|T\t\t|easy-jekyll-publish-timer|\n|V\t\t|easy-jekyll-view-other-window|\n|W\t\t|easy-jekyll-amazon-s3-deploy-timer|\n|a\t\t|easy-jekyll-ag|\n|b\t\t|easy-jekyll-cancel-github-deploy-timer|\n|c\t\t|easy-jekyll-open-config|\n|d\t\t|easy-jekyll-delete|\n|e      |easy-jekyll-open|\n|f\t\t|easy-jekyll-select-filename|\n|g\t\t|easy-jekyll-refresh|\n|h\t\t|easy-jekyll-backward-char|\n|i\t\t|easy-jekyll-cancel-google-cloud-storage-deploy-timer|\n|j\t\t|easy-jekyll-next-line|\n|k\t\t|easy-jekyll-previous-line|\n|l\t\t|easy-jekyll-forward-char|\n|m\t\t|easy-jekyll-cancel-amazon-s3-deploy-timer|\n|n\t\t|easy-jekyll-newpost|\n|o\t\t|easy-jekyll-open-other-window|\n|p\t\t|easy-jekyll-preview|\n|q\t\t|easy-jekyll-quit|\n|r\t\t|easy-jekyll-refresh|\n|s\t\t|easy-jekyll-sort-char|\n|t\t\t|easy-jekyll-cancel-publish-timer|\n|u\t\t|easy-jekyll-undraft|\n|v\t\t|easy-jekyll-view|\n|w\t\t|easy-jekyll-newpost|\n\n## Requirements\n\n- Emacs 25.1 or higher\n- jekyll 3.5.1 or higher\n\n## Installation\n\nYou can install `easy-jekyll.el` from [MELPA](http://melpa.org) with package.el\n(`M-x package-install easy-jekyll`).\nConfirm that PATH passes from emacs to jekyll.\nI recommend you are going to install [exec-path-from-shell]( https://github.com/purcell/exec-path-from-shell).\nI recommend you are going to install [keychain-environment](https://github.com/tarsius/keychain-environment).\nEasy-jekyll-ag needs [the_silver_searcher](https://github.com/ggreer/the_silver_searcher).\nEasy-jekyll-ag needs [counsel-ag](https://github.com/abo-abo/swiper) or [helm-ag](https://github.com/syohex/emacs-helm-ag).\n\n## Sample Configuration\n\nWhen you change setting, you need to restart emacs.\n\nIf you deploy your blog at your server.\n\n\t(setq easy-jekyll-basedir \"~/my-awesome-site/\")\n\t(setq easy-jekyll-url \"https://yourblogdomain\")\n\t(setq easy-jekyll-sshdomain \"blogdomain\")\n\t(setq easy-jekyll-root \"/home/blog/\")\n\t(setq easy-jekyll-previewtime \"300\")\n\t(define-key global-map (kbd \"C-c C-e\") 'easy-jekyll)\n\nIf you use [use-package](https://github.com/jwiegley/use-package), please write them all in :init.\n\n\t(use-package easy-jekyll\n\t:init\n\t(setq easy-jekyll-basedir \"~/my-awesome-site/\")\n\t(setq easy-jekyll-url \"https://yourblogdomain\")\n\t(setq easy-jekyll-sshdomain \"blogdomain\")\n\t(setq easy-jekyll-root \"/home/blog/\")\n\t(setq easy-jekyll-previewtime \"300\")\n\t:bind (\"C-c C-e\" . easy-jekyll))\n\nIf you deploy your blog at amazon s3.\n\n\t(setq easy-jekyll-basedir \"~/bookshelf/\")\n\t(setq easy-jekyll-url \"https://yourblogdomain\")\n\t(setq easy-jekyll-amazon-s3-bucket-name \"yourS3bucketname\")\n\nIf you deploy your blog at google cloud strage.\n\n\t(setq easy-jekyll-basedir \"~/bookshelf/\")\n\t(setq easy-jekyll-url \"https://yourblogdomain\")\n\t(setq easy-jekyll-google-cloud-storage-bucket-name \"yourGCPbucketname\")\n\nIf you deploy your blog at github pages etc.\n\n\t(setq easy-jekyll-basedir \"~/bookshelf/\")\n\t(setq easy-jekyll-url \"https://yourid.github.io\"))\n\nIf you deploy your blog at firebase hosting.\n\n\t(setq easy-jekyll-basedir \"~/bookshelf/\")\n\t(setq easy-jekyll-url \"https://yourproject.firebaseapp.com\")\n\n|name    |description      |\n|-------|--------------|\n|easy-jekyll-basedir | Directory where jekyll html source code is placed on your laptop or desktop|\n|easy-jekyll-url |Url of the blog|\n|easy-jekyll-sshdomain |Domain written in ~/.ssh/config|\n|easy-jekyll-root |Root directory of jekyll at your server|\n|easy-jekyll-previewtime |Preview display time|\n\nIf you want to deploy jekyll at Amazon S3, please install AWS CLI and set easy-jekyll-amazon-s3-bucket-name.\nPlease set up for with `aws configure` command if you are the first time aws command.\n\n\t(setq easy-jekyll-amazon-s3-bucket-name \"your-amazon-s3-bucket-name\")\n\nIf you want to deploy jekyll at Google Cloud Storage, please install Google Cloud SDK and set easy-jekyll-google-cloud-storage-bucket-name.\nPlease set up for with `gcloud auth login` command if you are the first time gcloud command.\n\n\t(setq easy-jekyll-google-cloud-storage-bucket-name \"your-google-cloud-storage-bucket-name\")\n\nIf you want the default extension to be '.textile'.\nIf not set the default extension will be '.md'.\n\n\t(setq easy-jekyll-default-ext \".textile\")\n      \nIf you want to set the default layout for a new post, set the following variable.\n\n    (setq easy-jekyll-post-layout \"post\")\n\nIf you want to change to No help-mode from startup.\n\n\t(setq easy-jekyll-no-help t)\n\nIf you want to set sort time at s key.\nIf not set the default s key will be charactor-sort.\n\n\t(setq easy-jekyll-sort-default-char nil)\n\nIf you want to customise color, write the following in the init.el or .emacs.\n\n```\n(defface easy-jekyll-help-face\n  `((((class color) (background light))\n     ,@(and (\u003e= emacs-major-version 27) '(:extend t))\n     :bold t\n     :foreground \"your-hex-color\"\n     :background \"your-hex-color\")\n    (((class color) (background dark))\n     ,@(and (\u003e= emacs-major-version 27) '(:extend t))\n     :bold t\n     :foreground \"your-hex-color\"\n     :background \"your-hex-color\"))\n  \"Definition of help color.\"\n  :group 'easy-jekyll-faces)\n```\n\nIn order to generate link of image from image file directory under 'easy-jekyll-image-directory' directory,\nif you want to change image file directory.\nIf not set the default image file directory will be 'images'.\n\n\t(setq easy-jekyll-image-directory \"img\")\n\nSetting the picture directory of your laptop or desktop, it is easy to execute M-x easy-jekyll-put-image.\n\n\t(setq easy-jekyll-default-picture-directory \"~/Pictures\")\n\n## Multiple blogs setting\n\nWhen you change setting, you need to restart emacs.\n\n\t;; Main blog\n\t(setq easy-jekyll-basedir \"~/my-awesome-site/\")\n\t(setq easy-jekyll-url \"https://yourblogdomain\")\n\t(setq easy-jekyll-sshdomain \"blogdomain\")\n\t(setq easy-jekyll-root \"/home/blog/\")\n\t(setq easy-jekyll-previewtime \"300\")\n\t(define-key global-map (kbd \"C-c C-e\") 'easy-jekyll)\n\n\t(setq easy-jekyll-bloglist\n\t\t;; blog2 setting\n\t\t'(((easy-jekyll-basedir . \"~/src/github.com/masasam/jekyll2/\")\n\t\t(easy-jekyll-url . \"http://example2.com\")\n\t\t(easy-jekyll-sshdomain . \"myblogdomain\")\n\t\t(easy-jekyll-root . \"/home/jekyll/\"))\n\t\t;; blog3 setting for aws s3\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/jekyll3/\")\n\t\t(easy-jekyll-url . \"http://example3.net\")\n\t\t(easy-jekyll-amazon-s3-bucket-name . \"yourS3bucketname\"))\n\t\t;; blog4 setting for google cloud storage\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/jekyll4/\")\n\t\t(easy-jekyll-url . \"http://example4.net\")\n\t\t(easy-jekyll-google-cloud-storage-bucket-name . \"yourGCPbucketname\")\n\t\t(easy-jekyll-image-directory . \"img\"))\n\t\t;; blog5 for github pages\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/githubpages/\")\n\t\t(easy-jekyll-url . \"https://yourid.github.io\"))\n\t\t;; blog6 for firebase hosting\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/firebase/\")\n\t\t(easy-jekyll-url . \"https://yourproject.firebaseapp.com\"))))\n\nIf you use [use-package](https://github.com/jwiegley/use-package), please write them all in :init.\n\n\t(use-package easy-jekyll\n\t:init\n\t;; Main blog\n\t(setq easy-jekyll-basedir \"~/my-awesome-site/\")\n\t(setq easy-jekyll-url \"https://yourblogdomain\")\n\t(setq easy-jekyll-sshdomain \"blogdomain\")\n\t(setq easy-jekyll-root \"/home/blog/\")\n\t(setq easy-jekyll-previewtime \"300\")\n\t(define-key global-map (kbd \"C-c C-e\") 'easy-jekyll)\n\n\t(setq easy-jekyll-bloglist\n\t\t;; blog2 setting\n\t\t'(((easy-jekyll-basedir . \"~/src/github.com/masasam/jekyll2/\")\n\t\t(easy-jekyll-url . \"http://example2.com\")\n\t\t(easy-jekyll-sshdomain . \"myblogdomain\")\n\t\t(easy-jekyll-root . \"/home/jekyll/\"))\n\t\t;; blog3 setting for aws s3\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/jekyll3/\")\n\t\t(easy-jekyll-url . \"http://example3.net\")\n\t\t(easy-jekyll-amazon-s3-bucket-name . \"yourS3bucketname\"))\n\t\t;; blog4 setting for google cloud storage\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/jekyll4/\")\n\t\t(easy-jekyll-url . \"http://example4.net\")\n\t\t(easy-jekyll-google-cloud-storage-bucket-name . \"yourGCPbucketname\")\n\t\t(easy-jekyll-image-directory . \"img\"))\n\t\t;; blog5 for github pages\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/githubpages/\")\n\t\t(easy-jekyll-url . \"https://yourid.github.io\"))\n\t\t;; blog6 for firebase hosting\n\t\t((easy-jekyll-basedir . \"~/src/github.com/masasam/firebase/\")\n\t\t(easy-jekyll-url . \"https://yourproject.firebaseapp.com\"))))\n\t:bind (\"C-c C-e\" . easy-jekyll))\n\nYou can manage as many blogs as you like.\n\nIf you want to change markdown filename extension, please select markdown.\nBecause only markdown is supported by jekyll. If not set markdown filename extension will be 'md'.\n\n\t(setq easy-jekyll-markdown-extension \"markdown\")\n\n## For spacemacs or evil-mode users example\n\nIf you use [spacemacs](https://github.com/syl20bnr/spacemacs) or [evil-mode](https://github.com/emacs-evil/evil).\n\n\t(defun cesco/easy-jekyll ()\n\t(interactive)\n\t(evil-define-key\n    (list 'normal 'insert 'visual 'motion)\n    easy-jekyll-mode-map\n    \"n\" 'easy-jekyll-newpost\n    \"D\" 'easy-jekyll-article\n    \"p\" 'easy-jekyll-preview\n    \"P\" 'easy-jekyll-publish\n    \"o\" 'easy-jekyll-open\n    \"d\" 'easy-jekyll-delete\n    \"e\" 'easy-jekyll-open\n    \"c\" 'easy-jekyll-open-config\n    \"f\" 'easy-jekyll-open\n    \"N\" 'easy-jekyll-no-help\n    \"v\" 'easy-jekyll-view\n    \"r\" 'easy-jekyll-refresh\n    \"g\" 'easy-jekyll-refresh\n    \"s\" 'easy-jekyll-sort-time\n    \"S\" 'easy-jekyll-sort-char\n    \"G\" 'easy-jekyll-github-deploy\n    \"A\" 'easy-jekyll-amazon-s3-deploy\n    \"C\" 'easy-jekyll-google-cloud-storage-deploy\n    \"q\" 'evil-delete-buffer\n    (kbd \"TAB\") 'easy-jekyll-open\n    (kbd \"RET\") 'easy-jekyll-preview)\n\t(define-key global-map (kbd \"C-c C-e\") 'easy/jekyll))\n\n\t(use-package easy-jekyll\n\t:after (helm-ag)\n\t:ensure t\n\t:config\n\t(setq easy-jekyll-basedir \"~/go/src/github.com/cescoferraro/me/\"\n\teasy-jekyll-postdir \"content/blog\"\n        easy-jekyll-url \"http://127.0.0.1:1313/me\"\n        easy-jekyll-preview-url \"http://127.0.0.1:1313/me\"\n        easy-jekyll-sshdomain \"me\"\n        easy-jekyll-root \"~/go/src/github.com/cescoferraro/me/\"\n        easy-jekyll-previewtime \"20\")\n\t(add-hook 'easy-jekyll-mode-hook 'cesco/easy-jekyll))\n\n## Support emacspeak\n\nIf you use easy-jekyll with [emacspeak](https://github.com/tvraman/emacspeak).\n\n\t(setq easy-jekyll-emacspeak t)\n\n## Preparation for using this package\n\nInstall jekyll and bundler\n\n\tgem install jekyll bundler\n\tjekyll new my-awesome-site\n\tcd my-awesome-site\n\tbundle install --path vendor/bundle\n\nSee https://jekyllrb.com/\n\n### Configuration file example\n\n_config.yml\n\n\ttitle: PPAP-blog\n\temail: picotaro@example.com\n\tdescription: \u003e # this means to ignore newlines until \"baseurl:\"\n\tbaseurl: \"\" # the subpath of your site, e.g. /blog\n\turl: \"\" # the base hostname \u0026 protocol for your site, e.g. http://example.com\n\ttwitter_username: jekyllrb\n\tgithub_username:  jekyll\n\tmarkdown: kramdown\n\ttheme: minima\n\tplugins:\n\t- jekyll-feed\n\n### Prepare the server\n\nLet's build with a free trial of \"google compute engine\" or \"amazon ec2\".\nIf you want to deploy jekyll at GitHub Pages or Amazon S3 or Google Cloud Storage, This paragraph is not necessary.\nI created my blog in google compute engine.\nCheck if rsync is installed on the server.\n\nWrite at ~/.ssh/config on your laptop or desktop.\n\n\t Host blogdomain\n                        HostName \"Your server's IP\"\n                        User \"Your server's ssh login username\"\n\nBecause blog is generated under /home/blog/ on the server, set it to reference it with nginx.\nSSL uses certbot (Let's encrypt).\n\nsample nginx.conf\n\n\tserver {\n\t\tlisten 80;\n\t\tserver_name yourdomain;\n\t\treturn  301 https://yourdomain$request_uri;\n\t\tlocation / {\n\t\t\troot /home/blog;\n\t\tindex\tindex.html index.htm;\n\t\t}\n\t}\n\tserver {\n\t\tlisten 443;\n\t\tserver_name yourdomain;\n\t\tssl on;\n\t\tssl_certificate      /etc/letsencrypt/live/yourdomain/fullchain.pem;\n\t\tssl_certificate_key  /etc/letsencrypt/live/yourdomain/privkey.pem;\n\n\tlocation / {\n\t\troot    /home/blog;\n\tindex   index.html index.htm;\n\t\t}\n\t}\n\nPPAP blog source code sample for jekyll.\n\nhttps://github.com/masasam/PPAP2\n\n[melpa-link]: http://melpa.org/#/easy-jekyll\n[melpa-badge]: http://melpa.org/packages/easy-jekyll-badge.svg\n[melpa-stable-link]: http://stable.melpa.org/#/easy-jekyll\n[melpa-stable-badge]: http://stable.melpa.org/packages/easy-jekyll-badge.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasasam%2Femacs-easy-jekyll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasasam%2Femacs-easy-jekyll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasasam%2Femacs-easy-jekyll/lists"}