{"id":13512316,"url":"https://github.com/jekyll/jekyll-compose","last_synced_at":"2025-05-14T18:06:26.507Z","repository":{"id":16889527,"uuid":"19650204","full_name":"jekyll/jekyll-compose","owner":"jekyll","description":":memo: Streamline your writing in Jekyll with these commands.","archived":false,"fork":false,"pushed_at":"2023-04-17T05:48:20.000Z","size":212,"stargazers_count":716,"open_issues_count":6,"forks_count":81,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-05-06T23:02:04.666Z","etag":null,"topics":["jekyll-plugin"],"latest_commit_sha":null,"homepage":"http://rubygems.org/gems/jekyll-compose","language":"Ruby","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/jekyll.png","metadata":{"files":{"readme":"README.md","changelog":"History.markdown","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-05-10T19:36:09.000Z","updated_at":"2025-04-10T13:04:57.000Z","dependencies_parsed_at":"2023-10-12T07:16:08.005Z","dependency_job_id":null,"html_url":"https://github.com/jekyll/jekyll-compose","commit_stats":{"total_commits":185,"total_committers":27,"mean_commits":6.851851851851852,"dds":0.8216216216216217,"last_synced_commit":"92c158ad118407adbf7dba177cc77d4c2fcec8aa"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jekyll%2Fjekyll-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jekyll%2Fjekyll-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jekyll%2Fjekyll-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jekyll%2Fjekyll-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jekyll","download_url":"https://codeload.github.com/jekyll/jekyll-compose/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198514,"owners_count":22030965,"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":["jekyll-plugin"],"created_at":"2024-08-01T03:01:43.469Z","updated_at":"2025-05-14T18:06:21.498Z","avatar_url":"https://github.com/jekyll.png","language":"Ruby","funding_links":[],"categories":["Commands \u0026 Switches","Ruby","Tools \u0026 Extensions"],"sub_categories":[],"readme":"# Jekyll::Compose\n\nStreamline your writing in Jekyll with some commands.\n\n[![Linux Build Status](https://img.shields.io/travis/jekyll/jekyll-compose/master.svg?label=Linux%20build)][travis]\n[![Windows Build status](https://img.shields.io/appveyor/ci/jekyll/jekyll-compose/master.svg?label=Windows%20build)][appveyor]\n\n[travis]: https://travis-ci.org/jekyll/jekyll-compose\n[appveyor]: https://ci.appveyor.com/project/jekyll/jekyll-compose\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n    gem 'jekyll-compose', group: [:jekyll_plugins]\n\nAnd then execute:\n\n    $ bundle\n\n## Usage\n\nAfter you have installed (see above), run `bundle exec jekyll help` and you should see:\n\nListed in help you will see new commands available to you:\n\n```sh\n  draft      # Creates a new draft post with the given NAME\n  post       # Creates a new post with the given NAME\n  publish    # Moves a draft into the _posts directory and sets the date\n  unpublish  # Moves a post back into the _drafts directory\n  page       # Creates a new page with the given NAME\n  rename     # Moves a draft to a given NAME and sets the title\n  compose    # Creates a new file with the given NAME\n```\n\nCreate your new page using:\n\n```sh\n    $ bundle exec jekyll page \"My New Page\"\n```\n\nCreate your new post using:\n\n```sh\n    $ bundle exec jekyll post \"My New Post\"\n    # or specify a custom format for the date attribute in the yaml front matter\n    $ bundle exec jekyll post \"My New Post\" --timestamp-format \"%Y-%m-%d %H:%M:%S %z\"\n```\n\n```sh\n    # or by using the compose command\n    $ bundle exec jekyll compose \"My New Post\"\n```\n\n```sh\n    # or by using the compose command with post specified\n    $ bundle exec jekyll compose \"My New Post\" --post\n```\n\n```sh\n    # or by using the compose command with the posts collection specified\n    $ bundle exec jekyll compose \"My New Post\" --collection \"posts\"\n```\n\nCreate your new draft using:\n\n```sh\n    $ bundle exec jekyll draft \"My new draft\"\n```\n\n```sh\n    # or by using the compose command with draft specified\n    $ bundle exec jekyll compose \"My new draft\" --draft\n```\n\n```sh\n    # or by using the compose command with the drafts collection specified\n    $ bundle exec jekyll compose \"My new draft\" --collection \"drafts\"\n```\n\nRename your draft using:\n\n```sh\n$ bundle exec jekyll rename _drafts/my-new-draft.md \"My Renamed Draft\"\n```\n\n```sh\n# or rename it back\n$ bundle exec jekyll rename _drafts/my-renamed-draft.md \"My new draft\"\n```\n\nPublish your draft using:\n\n```sh\n    $ bundle exec jekyll publish _drafts/my-new-draft.md\n```\n\n```sh\n    # or specify a specific date on which to publish it\n    $ bundle exec jekyll publish _drafts/my-new-draft.md --date 2014-01-24\n    # or specify a custom format for the date attribute in the yaml front matter\n    $ bundle exec jekyll publish _drafts/my-new-draft.md --timestamp-format \"%Y-%m-%d %H:%M:%S %z\"\n```\n\nRename your post using:\n\n```sh\n$ bundle exec jekyll rename _posts/2014-01-24-my-new-draft.md \"My New Post\"\n```\n\n```sh\n# or specify a specific date\n$ bundle exec jekyll rename _posts/2014-01-24-my-new-post.md \"My Old Post\" --date \"2012-03-04\"\n```\n\n```sh\n# or specify the current date\n$ bundle exec jekyll rename _posts/2012-03-04-my-old-post.md \"My New Post\" --now\n```\n\nUnpublish your post using:\n\n```sh\n    $ bundle exec jekyll unpublish _posts/2014-01-24-my-new-draft.md\n```\n\nCreate your new file in a collection using:\n\n```sh\n    $ bundle exec jekyll compose \"My New Thing\" --collection \"things\"\n```\n\n## Configuration\n\nTo customize the default plugin configuration edit the `jekyll_compose` section within your jekyll config file.\n\n### auto-open new drafts or posts in your editor\n\n```yaml\n  jekyll_compose:\n    auto_open: true\n```\n\nand make sure that you have `EDITOR`, `VISUAL` or `JEKYLL_EDITOR` environment variable set.\nFor 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:\n```sh\nexport JEKYLL_EDITOR=atom\n```\n\n`JEKYLL_EDITOR` will override default `EDITOR` or `VISUAL` value.\n`VISUAL` will override default `EDITOR` value.\n\n### Set default front matter for drafts and posts\n\nIf 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:\n\n```yaml\njekyll_compose:\n  default_front_matter:\n    drafts:\n      description:\n      image:\n      category:\n      tags:\n    posts:\n      description:\n      image:\n      category:\n      tags:\n      published: false\n      sitemap: false\n```\n\nThis will also auto add:\n - The creation timestamp under the `date` attribute.\n - The title attribute under the `title` attribute\n\n\nFor 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`:\n\n```yaml\njekyll_compose:\n  default_front_matter:\n    things:\n      description:\n      image:\n      category:\n      tags:\n```\n\n## Contributing\n\n1. Fork it ( http://github.com/jekyll/jekyll-compose/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Run the specs and our linter (`script/cibuild`)\n4. Commit your changes (`git commit -am 'Add some feature'`)\n5. Push to the branch (`git push origin my-new-feature`)\n6. Create new Pull Request\n\n### Submitting a Pull Request based on an existing proposal\n\nWhen submitting a pull request that uses code from an unmerged pull request, please be aware of the following:\n  * Changes proposed in the older pull request is still the original author's property. Moving forward from where they left it\n    means that you're a `co-author`.\n  * GitHub allows attributing\n    [credit to multiple authors](https://help.github.com/en/articles/creating-a-commit-with-multiple-authors)\n    However, pull requests in this project are automatically squashed and then merged onto the base branch. So, only authors and\n    co-authors of the opening commit gets credit once the pull request gets merged.\n  * If the original pull request contained multiple commits, you may squash them into a single commit but ensure that you list\n    any additional authors (and yourselves) as co-authors of that commit.\n  * Use appropriate [keywords](https://help.github.com/en/articles/closing-issues-using-keywords) in your pull request post to\n    link to the existing pull request or issue-ticket so that they're automatically closed when your pull request gets merged.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjekyll%2Fjekyll-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjekyll%2Fjekyll-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjekyll%2Fjekyll-compose/lists"}