Merge pull request #4601 from jekyll/copy-better

Merge pull request 4601
This commit is contained in:
jekyllbot 2016-03-02 20:06:24 -08:00
commit 7b80cb78bd
7 changed files with 58 additions and 67 deletions

View File

@ -1,5 +1,4 @@
Contribute # Contributing
==========
So you've got an awesome idea to throw into Jekyll. Great! Please keep the So you've got an awesome idea to throw into Jekyll. Great! Please keep the
following in mind: following in mind:

View File

@ -1,4 +1,4 @@
# Contributor Code of Conduct # Code of Conduct
As contributors and maintainers of this project, and in the interest of As contributors and maintainers of this project, and in the interest of
fostering an open and welcoming community, we pledge to respect all people who fostering an open and welcoming community, we pledge to respect all people who

View File

@ -87,6 +87,30 @@ def converted_history(markdown)
normalize_bullets(markdown))))) normalize_bullets(markdown)))))
end end
def siteify_file(file, front_matter = {})
abort "You seem to have misplaced your #{file} file. I can haz?" unless File.exists?(file)
title = File.read(file).match(/\A# (.*)$/)[1]
slug = File.basename(file, ".markdown").downcase
front_matter = front_matter.merge({
"title" => title,
"layout" => "docs",
"permalink" => "/docs/#{slug}/",
"note" => "This file is autogenerated. Edit /#{file} instead."
})
contents = "#{front_matter.to_yaml}---\n\n#{content_for(file)}"
File.write("site/_docs/#{slug}.md", contents)
end
def content_for(file)
contents = File.read(file)
case file
when "History.markdown"
converted_history(contents)
else
contents.gsub!(/\A# .*\n\n?/, "")
end
end
############################################################################# #############################################################################
# #
# Standard tasks # Standard tasks

View File

@ -5,7 +5,7 @@
############################################################################# #############################################################################
namespace :site do namespace :site do
task :generated_pages => [:history, :version_file, :conduct] task :generated_pages => [:history, :version_file, :conduct, :contributing]
desc "Generate and view the site locally" desc "Generate and view the site locally"
task :preview => :generated_pages do task :preview => :generated_pages do
@ -103,41 +103,21 @@ namespace :site do
desc "Create a nicely formatted history page for the jekyll site based on the repo history." desc "Create a nicely formatted history page for the jekyll site based on the repo history."
task :history do task :history do
if File.exist?("History.markdown") siteify_file('History.markdown')
history_file = File.read("History.markdown")
front_matter = {
"layout" => "docs",
"title" => "History",
"permalink" => "/docs/history/"
}
Dir.chdir('site/_docs/') do
File.open("history.md", "w") do |file|
file.write("#{front_matter.to_yaml}---\n\n")
file.write(converted_history(history_file))
end
end
else
abort "You seem to have misplaced your History.markdown file. I can haz?"
end
end end
desc "Copy the Code of Conduct" desc "Copy the Code of Conduct"
task :conduct do task :conduct do
code_of_conduct = File.read("CONDUCT.markdown")
header, _, body = code_of_conduct.partition("\n\n")
front_matter = { front_matter = {
"layout" => "docs",
"title" => header.sub('# Contributor ', ''),
"permalink" => "/docs/conduct/",
"redirect_from" => "/conduct/index.html", "redirect_from" => "/conduct/index.html",
"editable" => false "editable" => false
} }
Dir.chdir('site/_docs') do siteify_file('CONDUCT.markdown', front_matter)
File.open("conduct.md", "w") do |file|
file.write("#{front_matter.to_yaml}---\n\n")
file.write(body)
end
end end
desc "Copy the contributing file"
task :contributing do
siteify_file('.github/CONTRIBUTING.markdown')
end end
desc "Write the site latest_version.txt file" desc "Write the site latest_version.txt file"

View File

@ -1,9 +1,10 @@
--- ---
layout: docs
title: Code of Conduct
permalink: "/docs/conduct/"
redirect_from: "/conduct/index.html" redirect_from: "/conduct/index.html"
editable: false editable: false
title: Code of Conduct
layout: docs
permalink: "/docs/conduct/"
note: This file is autogenerated. Edit /CONDUCT.markdown instead.
--- ---
As contributors and maintainers of this project, and in the interest of As contributors and maintainers of this project, and in the interest of

View File

@ -1,7 +1,8 @@
--- ---
layout: docs
title: Contributing title: Contributing
permalink: /docs/contributing/ layout: docs
permalink: "/docs/contributing/"
note: This file is autogenerated. Edit /.github/CONTRIBUTING.markdown instead.
--- ---
So you've got an awesome idea to throw into Jekyll. Great! Please keep the So you've got an awesome idea to throw into Jekyll. Great! Please keep the
@ -27,38 +28,29 @@ following in mind:
change is to review, the more likely it will be merged. change is to review, the more likely it will be merged.
* When submitting a pull request, please make judicious use of the pull request * When submitting a pull request, please make judicious use of the pull request
body. A description of what changes were made, the motivations behind the body. A description of what changes were made, the motivations behind the
changes, and [any tasks completed or left to complete](http://git.io/gfm-tasks) changes and [any tasks completed or left to complete](http://git.io/gfm-tasks)
will also speed up review time. will also speed up review time.
<div class="note warning">
<h5>Contributions will not be accepted without tests</h5>
<p>
If youre creating a small fix or patch to an existing feature, just
a simple test will do.
</p>
</div>
Test Dependencies Test Dependencies
----------------- -----------------
To run the test suite and build the gem you'll need to install Jekyll's To run the test suite and build the gem you'll need to install Jekyll's
dependencies. Simply run this command to get all set up: dependencies. Simply run this command to get all setup:
<figure class="highlight"><pre><code>$ script/bootstrap</code></pre></figure> $ script/bootstrap
Before you start, run the tests and make sure that they pass (to confirm your Before you start, run the tests and make sure that they pass (to confirm your
environment is configured properly): environment is configured properly):
<figure class="highlight"><pre><code>$ script/cibuild</code></pre></figure> $ script/cibuild
If you are only updating a file in `test/`, you can use the command: If you are only updating a file in `test/`, you can use the command:
<figure class="highlight"><pre><code>$ script/test test/blah_test.rb</code></pre></figure> $ script/test test/blah_test.rb
If you are only updating a `.feature` file, you can use the command: If you are only updating a `.feature` file, you can use the command:
<figure class="highlight"><pre><code>$ script/cucumber features/blah.feature</code></pre></figure> $ script/cucumber features/blah.feature
Both `script/test` and `script/cucumber` can be run without arguments to Both `script/test` and `script/cucumber` can be run without arguments to
run its entire respective suite. run its entire respective suite.
@ -68,7 +60,7 @@ Workflow
Here's the most direct way to get your work merged into the project: Here's the most direct way to get your work merged into the project:
* Fork the project. * [Fork](https://github.com/jekyll/jekyll/fork) the project.
* Clone down your fork ( `git clone git@github.com:[username]/jekyll.git` ). * Clone down your fork ( `git clone git@github.com:[username]/jekyll.git` ).
* Create a topic branch to contain your change ( `git checkout -b my_awesome_feature` ). * Create a topic branch to contain your change ( `git checkout -b my_awesome_feature` ).
* Hack away, add tests. Not necessarily in that order. * Hack away, add tests. Not necessarily in that order.
@ -86,18 +78,19 @@ open-sourced our docs and we welcome any pull requests if you find it
lacking. lacking.
You can find the documentation for jekyllrb.com in the You can find the documentation for jekyllrb.com in the
[site]({{ site.repository }}/tree/master/site) directory of [site](https://github.com/jekyll/jekyll/tree/master/site) directory of
Jekyll's repo on GitHub.com. Jekyll's repo on GitHub.com.
All documentation pull requests should be directed at `master`. Pull All documentation pull requests should be directed at `master`. Pull
requests directed at another branch will not be accepted. requests directed at another branch will not be accepted.
The [Jekyll wiki]({{ site.repository }}/wiki) on GitHub The [Jekyll wiki](https://github.com/jekyll/jekyll/wiki) on GitHub
can be freely updated without a pull request as all GitHub users have access. can be freely updated without a pull request as all GitHub users have access.
If you want to add your plugin to the [list of plugins](/docs/plugins/#available-plugins), If you want to add your plugin to the
please submit a pull request modifying the [plugins page source [list of plugins](http://jekyllrb.com/docs/plugins/#available-plugins),
file]({{ site.repository }}/blob/master/site/_docs/plugins.md) by adding a please submit a pull request modifying the
[plugins page source file](site/_docs/plugins.md) by adding a
link to your plugin under the proper subheading depending upon its type. link to your plugin under the proper subheading depending upon its type.
Gotchas Gotchas
@ -113,12 +106,5 @@ Gotchas
Finally... Finally...
---------- ----------
<div class="note"> Thanks! Hacking on Jekyll should be fun. If you find any of this hard to figure
<h5>Let us know what could be better!</h5> out, let us know so we can improve our process or documentation!
<p>
Both using and hacking on Jekyll should be fun, simple, and easy, so if for
some reason you find its a pain, please <a
href="{{ site.repository }}/issues/new">create an issue</a> on
GitHub describing your experience so we can make it better.
</p>
</div>

View File

@ -1,7 +1,8 @@
--- ---
layout: docs
title: History title: History
layout: docs
permalink: "/docs/history/" permalink: "/docs/history/"
note: This file is autogenerated. Edit /History.markdown instead.
--- ---
## 3.1.2 / 2016-02-19 ## 3.1.2 / 2016-02-19