• Stars
    star
    683
  • Rank 66,158 (Top 2 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ“ Streamline your writing in Jekyll with these commands.

Jekyll::Compose

Streamline your writing in Jekyll with some commands.

Linux Build Status Windows Build status

Installation

Add this line to your application's Gemfile:

gem 'jekyll-compose', group: [:jekyll_plugins]

And then execute:

$ bundle

Usage

After you have installed (see above), run bundle exec jekyll help and you should see:

Listed in help you will see new commands available to you:

  draft      # Creates a new draft post with the given NAME
  post       # Creates a new post with the given NAME
  publish    # Moves a draft into the _posts directory and sets the date
  unpublish  # Moves a post back into the _drafts directory
  page       # Creates a new page with the given NAME
  rename     # Moves a draft to a given NAME and sets the title
  compose    # Creates a new file with the given NAME

Create your new page using:

    $ bundle exec jekyll page "My New Page"

Create your new post using:

    $ bundle exec jekyll post "My New Post"
    # or specify a custom format for the date attribute in the yaml front matter
    $ bundle exec jekyll post "My New Post" --timestamp-format "%Y-%m-%d %H:%M:%S %z"
    # or by using the compose command
    $ bundle exec jekyll compose "My New Post"
    # or by using the compose command with post specified
    $ bundle exec jekyll compose "My New Post" --post
    # or by using the compose command with the posts collection specified
    $ bundle exec jekyll compose "My New Post" --collection "posts"

Create your new draft using:

    $ bundle exec jekyll draft "My new draft"
    # or by using the compose command with draft specified
    $ bundle exec jekyll compose "My new draft" --draft
    # or by using the compose command with the drafts collection specified
    $ bundle exec jekyll compose "My new draft" --collection "drafts"

Rename your draft using:

$ bundle exec jekyll rename _drafts/my-new-draft.md "My Renamed Draft"
# or rename it back
$ bundle exec jekyll rename _drafts/my-renamed-draft.md "My new draft"

Publish your draft using:

    $ bundle exec jekyll publish _drafts/my-new-draft.md
    # or specify a specific date on which to publish it
    $ bundle exec jekyll publish _drafts/my-new-draft.md --date 2014-01-24
    # or specify a custom format for the date attribute in the yaml front matter
    $ bundle exec jekyll publish _drafts/my-new-draft.md --timestamp-format "%Y-%m-%d %H:%M:%S %z"

Rename your post using:

$ bundle exec jekyll rename _posts/2014-01-24-my-new-draft.md "My New Post"
# or specify a specific date
$ bundle exec jekyll rename _posts/2014-01-24-my-new-post.md "My Old Post" --date "2012-03-04"
# or specify the current date
$ bundle exec jekyll rename _posts/2012-03-04-my-old-post.md "My New Post" --now

Unpublish your post using:

    $ bundle exec jekyll unpublish _posts/2014-01-24-my-new-draft.md

Create your new file in a collection using:

    $ bundle exec jekyll compose "My New Thing" --collection "things"

Configuration

To customize the default plugin configuration edit the jekyll_compose section within your jekyll config file.

auto-open new drafts or posts in your editor

  jekyll_compose:
    auto_open: true

and make sure that you have EDITOR, VISUAL or JEKYLL_EDITOR environment variable set. For instance if you wish to open newly created Jekyll posts and drafts in Atom editor you can add the following line in your shell configuration:

export JEKYLL_EDITOR=atom

JEKYLL_EDITOR will override default EDITOR or VISUAL value. VISUAL will override default EDITOR value.

Set default front matter for drafts and posts

If you wish to add default front matter to newly created posts or drafts, you can specify as many as you want under default_front_matter config keys, for instance:

jekyll_compose:
  default_front_matter:
    drafts:
      description:
      image:
      category:
      tags:
    posts:
      description:
      image:
      category:
      tags:
      published: false
      sitemap: false

This will also auto add:

  • The creation timestamp under the date attribute.
  • The title attribute under the title attribute

For collections, you can add default front matter to newly created collection files using default_front_matter and the collection name as a config key, for instance for the collection things:

jekyll_compose:
  default_front_matter:
    things:
      description:
      image:
      category:
      tags:

Contributing

  1. Fork it ( http://github.com/jekyll/jekyll-compose/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Run the specs and our linter (script/cibuild)
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request

Submitting a Pull Request based on an existing proposal

When submitting a pull request that uses code from an unmerged pull request, please be aware of the following:

  • Changes proposed in the older pull request is still the original author's property. Moving forward from where they left it means that you're a co-author.
  • GitHub allows attributing credit to multiple authors However, pull requests in this project are automatically squashed and then merged onto the base branch. So, only authors and co-authors of the opening commit gets credit once the pull request gets merged.
  • If the original pull request contained multiple commits, you may squash them into a single commit but ensure that you list any additional authors (and yourselves) as co-authors of that commit.
  • Use appropriate keywords in your pull request post to link to the existing pull request or issue-ticket so that they're automatically closed when your pull request gets merged.

More Repositories

1

jekyll

🌐 Jekyll is a blog-aware static site generator in Ruby
Ruby
48,894
star
2

minima

Minima is a one-size-fits-all Jekyll theme for writers.
SCSS
3,381
star
3

jekyll-admin

A Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites.
JavaScript
2,827
star
4

jekyll-seo-tag

A Jekyll plugin to add metadata tags for search engines and social networks to better index and display your site's content.
Ruby
1,655
star
5

jekyll-sitemap

Jekyll plugin to silently generate a sitemaps.org compliant sitemap for your Jekyll site
Ruby
958
star
6

jekyll-feed

πŸ“ A Jekyll plugin to generate an Atom (RSS-like) feed of your Jekyll posts
Ruby
834
star
7

jekyll-redirect-from

πŸ”€ Seamlessly specify multiple redirections URLs for your pages and posts.
Ruby
781
star
8

jemoji

GitHub-flavored emoji plugin for Jekyll
Ruby
555
star
9

classifier-reborn

A general classifier module to allow Bayesian and other types of classifications. A fork of cardmagic/classifier.
Ruby
549
star
10

jekyll-import

πŸ“₯ The "jekyll import" command for importing from various blogs to Jekyll format.
Ruby
512
star
11

jekyll-archives

πŸ“š Archive pages for your Jekyll tags and categories.
Ruby
435
star
12

github-metadata

Jekyll plugin to propagate the `site.github` namespace and set default values for use with GitHub Pages.
Ruby
277
star
13

jekyll-gist

πŸ“ƒ Liquid tag for displaying GitHub Gists in Jekyll sites.
Ruby
265
star
14

jekyll-mentions

πŸ‘₯ @mention support for your Jekyll site
Ruby
199
star
15

jekyll-sass-converter

A Sass converter for Jekyll.
Ruby
186
star
16

mercenary

An easier way to build your command-line scripts in Ruby.
Ruby
150
star
17

jekyll-help

NO LONGER MAINTAINED. USE JEKYLL TALK INSTEAD.
146
star
18

jekyll-paginate

NO LONGER UNDER ACTIVE DEVELOPMENT as of Jekyll 3: Pagination Generator for Jekyll
Ruby
112
star
19

jekyll-watch

πŸ‘€ Rebuild your Jekyll site when a file changes with the `--watch` switch.
Ruby
93
star
20

jekyll-avatar

A Jekyll plugin for rendering GitHub avatars
Ruby
89
star
21

jekyll-coffeescript

A CoffeeScript converter for Jekyll.
Ruby
52
star
22

brand

Logo files for Jekyll.
40
star
23

dashboard

A dashboard for at-a-glance knowledge of the health of the Jekyll ecosystem.
Go
40
star
24

jekyll-docs

Offline usage documentation for Jekyll. Requires Jekyll 3 and above.
Ruby
38
star
25

example

Jekyll example Project site. Do not clone.
CSS
38
star
26

jekyll-opal

Let Jekyll convert your Ruby into JavaScript using Opal
Ruby
36
star
27

directory

Plugins and Themes discovery for Jekyll, built with Jekyll.
SCSS
34
star
28

jekyll-commonmark

CommonMark generator for Jekyll
Ruby
34
star
29

atom-jekyll

An editor built on top of a web browser? How 'bout some static site previewing?
26
star
30

jekyll-textile-converter

Textile converter for Jekyll.
Ruby
20
star
31

Utterson

CI benchmarking suite for Jekyll
Shell
13
star
32

dns

DNS records for Jekyll properties. Uses octodns to sync.
Shell
13
star
33

hyde

Our Campfire Hubot. Helps us maintain Jekyll even better. ❀️
CoffeeScript
13
star
34

benchmarking

Benchmarking tools for Jekyll
Shell
12
star
35

hubot-pr-status

Determine the status of a given pull request on GitHub.
CoffeeScript
9
star
36

jekyllbot

The code that runs @jekyllbot
Go
8
star
37

acceptance

Daily acceptance tests for Jekyll. Builds 10 complex websites.
Shell
8
star
38

themes-site

A list of third-party themes.
8
star
39

teams

The code behind teams.jekyllrb.com
HTML
7
star
40

screencast

A collection of Jekyll screencast ideas.
7
star
41

rubocop-jekyll

A RuboCop extension to enforce common code style in Jekyll and Jekyll plugins
Ruby
7
star
42

jekyll-test

Testing helpers for Jekyll.
Ruby
6
star
43

test-site

A very, very simple, barebones test site for Jekyll.
CSS
6
star
44

omnibus-jekyll

NOT UNDER ACTIVE DEVELOPMENT: Build standalone installers for Jekyll & its dependencies.
Ruby
6
star
45

jekyll-test-gem-plugin

Wouldn't it be cool if you could ship Jekyll plugins as gems?
Ruby
5
star
46

mojobot

The #jekyll IRC bot.
CoffeeScript
4
star
47

cases

Test cases to aid in exploring bugs with Jekyll.
CSS
4
star
48

jekyll-test-plugin-malicious

A MALICIOUS I WILL EAT ALL YOUR CODE plugin. Use at your own risk.
Ruby
4
star
49

common-theme

HTML
3
star
50

carbon-copy-content

Clone these files from here to other repos using probot.
3
star
51

jekyll-test-theme-malicious

A malicious theme for Jekyll (for testing)
Ruby
3
star
52

.github

Jekyll organization github metadata
2
star
53

profiling

Profiling the build time of various types of sites.
Shell
2
star