Merge pull request #3427 from jekyll/proof
This commit is contained in:
		
						commit
						20bfdbb794
					
				
							
								
								
									
										4
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										4
									
								
								Gemfile
								
								
								
								
							|  | @ -32,3 +32,7 @@ if ENV['BENCHMARK'] | ||||||
|   gem 'rbtrace' |   gem 'rbtrace' | ||||||
|   gem 'stackprof' |   gem 'stackprof' | ||||||
| end | end | ||||||
|  | 
 | ||||||
|  | if ENV['PROOF'] | ||||||
|  |   gem 'html-proofer', '~> 2.0' | ||||||
|  | end | ||||||
|  |  | ||||||
|  | @ -0,0 +1,9 @@ | ||||||
|  | machine: | ||||||
|  |   timezone: UTC | ||||||
|  |   ruby: | ||||||
|  |     version: 2.1.5 | ||||||
|  |   environment: | ||||||
|  |     PROOF: true | ||||||
|  | test: | ||||||
|  |   override: | ||||||
|  |     - script/proof -f | ||||||
							
								
								
									
										39
									
								
								script/proof
								
								
								
								
							
							
						
						
									
										39
									
								
								script/proof
								
								
								
								
							|  | @ -5,20 +5,29 @@ | ||||||
| 
 | 
 | ||||||
| set -e | set -e | ||||||
| 
 | 
 | ||||||
| if [[ "$1" != "-f" ]]; then | function msg { | ||||||
|   git diff --name-only ..master | grep '^site/' || { | 	printf "\e[0;37m==> $1\e[0m\n" | ||||||
|     echo "No site files changed. We'll skip proofing. Run with -f to force." |  | ||||||
|     exit 0 |  | ||||||
|   } |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "Some site files have been changed! Proofing..." |  | ||||||
| 
 |  | ||||||
| command -v htmlproof || { |  | ||||||
|     echo "Installing HTML::Proofer!" |  | ||||||
|     gem install html-proofer -- --use-system-libraries |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bundle exec jekyll build -s site -d _site --trace | INGORE_HREFS=$(ruby -e 'puts %w{ | ||||||
| printf "\e[0;36mProofing begins now!\e[0m\n" | 	Chrononaut | ||||||
| htmlproof ./_site | 	twitter.com | ||||||
|  | 	nearlyfreespeech.net | ||||||
|  | }.map{|h| "/#{h}/"}.join(",")') | ||||||
|  | SOURCE="site" | ||||||
|  | DESTINATION="_site" | ||||||
|  | 
 | ||||||
|  | export PROOF=true | ||||||
|  | export NOKOGIRI_USE_SYSTEM_LIBRARIES=true | ||||||
|  | 
 | ||||||
|  | # 1. | ||||||
|  | msg "Installing..." | ||||||
|  | bundle install -j8 > /dev/null || bundle install > /dev/null | ||||||
|  | 
 | ||||||
|  | # 2. | ||||||
|  | msg "Building..." | ||||||
|  | bundle exec jekyll build -s $SOURCE -d $DESTINATION --full-rebuild --trace | ||||||
|  | 
 | ||||||
|  | # 3. | ||||||
|  | msg "Proofing..." | ||||||
|  | time bundle exec htmlproof ./$DESTINATION --href-ignore $INGORE_HREFS | ||||||
|  |  | ||||||
|  | @ -410,7 +410,7 @@ defaults: | ||||||
|       layout: "default" |       layout: "default" | ||||||
| {% endhighlight %} | {% endhighlight %} | ||||||
| 
 | 
 | ||||||
| In this example the `layout` is set to `default` inside the [collection](../collections) with the name `my_collection`. | In this example the `layout` is set to `default` inside the [collection](../collections/) with the name `my_collection`. | ||||||
| 
 | 
 | ||||||
| ### Precedence | ### Precedence | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -91,7 +91,7 @@ Another way to deploy your Jekyll site is to use [Rake](https://github.com/jimwe | ||||||
| 
 | 
 | ||||||
| ### rsync | ### rsync | ||||||
| 
 | 
 | ||||||
| Once you’ve generated the `_site` directory, you can easily rsync it using a `tasks/deploy` shell script similar to [this deploy script here](https://github.com/henrik/henrik.nyh.se/blob/master/tasks/deploy). You’d obviously need to change the values to reflect your site’s details. There is even [a matching TextMate command](http://gist.github.com/214959) that will help you run | Once you’ve generated the `_site` directory, you can easily rsync it using a `tasks/deploy` shell script similar to [this deploy script here](https://github.com/henrik/henrik.nyh.se/blob/master/script/deploy). You’d obviously need to change the values to reflect your site’s details. There is even [a matching TextMate command](http://gist.github.com/214959) that will help you run | ||||||
| this script from within Textmate. | this script from within Textmate. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -53,10 +53,10 @@ You have 3 options for installing plugins: | ||||||
| 
 | 
 | ||||||
| In general, plugins you make will fall into one of four categories: | In general, plugins you make will fall into one of four categories: | ||||||
| 
 | 
 | ||||||
| 1. [Generators](#Generators) | 1. [Generators](#generators) | ||||||
| 2. [Converters](#Converters) | 2. [Converters](#converters) | ||||||
| 3. [Commands](#Commands) | 3. [Commands](#commands) | ||||||
| 4. [Tags](#Tags) | 4. [Tags](#tags) | ||||||
| 
 | 
 | ||||||
| ## Generators | ## Generators | ||||||
| 
 | 
 | ||||||
|  | @ -273,7 +273,7 @@ class MyNewCommand < Jekyll::Command | ||||||
|         c.syntax "new [options]" |         c.syntax "new [options]" | ||||||
|         c.description 'Create a new Jekyll site.' |         c.description 'Create a new Jekyll site.' | ||||||
| 
 | 
 | ||||||
|         c.option 'dest', '-d DEST, 'Where the site should go.' |         c.option 'dest', '-d DEST', 'Where the site should go.' | ||||||
| 
 | 
 | ||||||
|         c.action do |args, options| |         c.action do |args, options| | ||||||
|           Jekyll::Site.new_site_at(options['dest']) |           Jekyll::Site.new_site_at(options['dest']) | ||||||
|  | @ -560,7 +560,7 @@ You can find a few useful plugins at the following locations: | ||||||
| - [Jekyll-citation](https://github.com/archome/jekyll-citation): Render BibTeX-formatted bibliographies/citations included in posts and pages (pure Ruby). | - [Jekyll-citation](https://github.com/archome/jekyll-citation): Render BibTeX-formatted bibliographies/citations included in posts and pages (pure Ruby). | ||||||
| - [Jekyll Dribbble Set Tag](https://github.com/ericdfields/Jekyll-Dribbble-Set-Tag): Builds Dribbble image galleries from any user. | - [Jekyll Dribbble Set Tag](https://github.com/ericdfields/Jekyll-Dribbble-Set-Tag): Builds Dribbble image galleries from any user. | ||||||
| - [Debbugs](https://gist.github.com/2218470): Allows posting links to Debian BTS easily. | - [Debbugs](https://gist.github.com/2218470): Allows posting links to Debian BTS easily. | ||||||
| - [Refheap_tag](https://github.com/aburdette/refheap_tag): Liquid tag that allows embedding pastes from [refheap](https://refheap.com). | - [Refheap_tag](https://github.com/aburdette/refheap_tag): Liquid tag that allows embedding pastes from [refheap](https://www.refheap.com/). | ||||||
| - [Jekyll-devonly_tag](https://gist.github.com/2403522): A block tag for including markup only during development. | - [Jekyll-devonly_tag](https://gist.github.com/2403522): A block tag for including markup only during development. | ||||||
| - [JekyllGalleryTag](https://github.com/redwallhp/JekyllGalleryTag) by [redwallhp](https://github.com/redwallhp): Generates thumbnails from a directory of images and displays them in a grid. | - [JekyllGalleryTag](https://github.com/redwallhp/JekyllGalleryTag) by [redwallhp](https://github.com/redwallhp): Generates thumbnails from a directory of images and displays them in a grid. | ||||||
| - [Youku and Tudou Embed](https://gist.github.com/Yexiaoxing/5891929): Liquid plugin for embedding Youku and Tudou videos. | - [Youku and Tudou Embed](https://gist.github.com/Yexiaoxing/5891929): Liquid plugin for embedding Youku and Tudou videos. | ||||||
|  | @ -579,9 +579,9 @@ You can find a few useful plugins at the following locations: | ||||||
| - [Jekyll Github Sample Tag](https://github.com/bwillis/jekyll-github-sample): A liquid tag to include a sample of a github repo file in your Jekyll site. | - [Jekyll Github Sample Tag](https://github.com/bwillis/jekyll-github-sample): A liquid tag to include a sample of a github repo file in your Jekyll site. | ||||||
| - [Jekyll Project Version Tag](https://github.com/rob-murray/jekyll-version-plugin): A Liquid tag plugin that renders a version identifier for your Jekyll site sourced from the git repository containing your code. | - [Jekyll Project Version Tag](https://github.com/rob-murray/jekyll-version-plugin): A Liquid tag plugin that renders a version identifier for your Jekyll site sourced from the git repository containing your code. | ||||||
| - [Piwigo Gallery](https://github.com/AlessandroLorenzi/piwigo_gallery) by [Alessandro Lorenzi](http://www.alorenzi.eu/): Jekyll plugin to generate thumbnails from a Piwigo gallery and display them with a Liquid tag | - [Piwigo Gallery](https://github.com/AlessandroLorenzi/piwigo_gallery) by [Alessandro Lorenzi](http://www.alorenzi.eu/): Jekyll plugin to generate thumbnails from a Piwigo gallery and display them with a Liquid tag | ||||||
| - [mathml.rb](https://github.com/tmthrgd/jekyll-plugins) by [Tom Thorogood](http://tomthorogood.co.uk/): A plugin to convert TeX mathematics into MathML for display. | - [mathml.rb](https://github.com/tmthrgd/jekyll-plugins) by Tom Thorogood: A plugin to convert TeX mathematics into MathML for display. | ||||||
| - [webmention_io.rb](https://github.com/aarongustafson/jekyll-webmention_io) by [Aaron Gustafson](http://aaron-gustafson.com/): A plugin to enable [webmention](http://indiewebcamp.com/webmention) integration using [Webmention.io](http://webmention.io). Includes an optional JavaScript for updating webmentions automatically between publishes and, if available, in realtime using WebSockets. | - [webmention_io.rb](https://github.com/aarongustafson/jekyll-webmention_io) by [Aaron Gustafson](http://aaron-gustafson.com/): A plugin to enable [webmention](http://indiewebcamp.com/webmention) integration using [Webmention.io](http://webmention.io). Includes an optional JavaScript for updating webmentions automatically between publishes and, if available, in realtime using WebSockets. | ||||||
| - [Jekyll 500px Embed](https://github.com/lkorth/jekyll-500px-embed) by [Luke Korth](https://lukekorth.com/). A Liquid tag plugin that embeds [500px](https://500px.com/) photos. | - [Jekyll 500px Embed](https://github.com/lkorth/jekyll-500px-embed) by Luke Korth. A Liquid tag plugin that embeds [500px](https://500px.com/) photos. | ||||||
| - [inline\_highlight](https://github.com/bdesham/inline_highlight): A tag for inline syntax highlighting. | - [inline\_highlight](https://github.com/bdesham/inline_highlight): A tag for inline syntax highlighting. | ||||||
| - [jekyll-mermaid](https://github.com/jasonbellamy/jekyll-mermaid): Simplify the creation of mermaid diagrams and flowcharts in your posts and pages. | - [jekyll-mermaid](https://github.com/jasonbellamy/jekyll-mermaid): Simplify the creation of mermaid diagrams and flowcharts in your posts and pages. | ||||||
| - [twa](https://github.com/Ezmyrelda/twa): Twemoji Awesome plugin for Jekyll. Liquid tag allowing you to use twitter emoji in your jekyll pages. | - [twa](https://github.com/Ezmyrelda/twa): Twemoji Awesome plugin for Jekyll. Liquid tag allowing you to use twitter emoji in your jekyll pages. | ||||||
|  | @ -594,7 +594,7 @@ You can find a few useful plugins at the following locations: | ||||||
| 
 | 
 | ||||||
| #### Other | #### Other | ||||||
| 
 | 
 | ||||||
| - [ditaa-ditaa](https://github.com/tmthrgd/ditaa-ditaa) by [Tom Thorogood](http://tomthorogood.co.uk/): a drastic revision of jekyll-ditaa that renders diagrams drawn using ASCII art into PNG images. | - [ditaa-ditaa](https://github.com/tmthrgd/ditaa-ditaa) by Tom Thorogood: a drastic revision of jekyll-ditaa that renders diagrams drawn using ASCII art into PNG images. | ||||||
| - [Pygments Cache Path by Raimonds Simanovskis](https://github.com/rsim/blog.rayapps.com/blob/master/_plugins/pygments_cache_patch.rb): Plugin to cache syntax-highlighted code from Pygments. | - [Pygments Cache Path by Raimonds Simanovskis](https://github.com/rsim/blog.rayapps.com/blob/master/_plugins/pygments_cache_patch.rb): Plugin to cache syntax-highlighted code from Pygments. | ||||||
| - [Draft/Publish Plugin by Michael Ivey](https://gist.github.com/49630): Save posts as drafts. | - [Draft/Publish Plugin by Michael Ivey](https://gist.github.com/49630): Save posts as drafts. | ||||||
| - [Growl Notification Generator by Tate Johnson](https://gist.github.com/490101): Send Jekyll notifications to Growl. | - [Growl Notification Generator by Tate Johnson](https://gist.github.com/490101): Send Jekyll notifications to Growl. | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ file. For example, the following are examples of valid post filenames: | ||||||
| <div class="note"> | <div class="note"> | ||||||
|   <h5>ProTip™: Link to other posts</h5> |   <h5>ProTip™: Link to other posts</h5> | ||||||
|   <p> |   <p> | ||||||
|     Use the <a href="../templates#post-url"><code>post_url</code></a> |     Use the <a href="../templates/#post-url"><code>post_url</code></a> | ||||||
|     tag to link to other posts without having to worry about the URL's |     tag to link to other posts without having to worry about the URL's | ||||||
|     breaking when the site permalink style changes. |     breaking when the site permalink style changes. | ||||||
|   </p> |   </p> | ||||||
|  |  | ||||||
|  | @ -31,7 +31,7 @@ On Red Hat, CentOS, and Fedora systems you can do this by running: | ||||||
| sudo yum install ruby-devel | sudo yum install ruby-devel | ||||||
| {% endhighlight %} | {% endhighlight %} | ||||||
| 
 | 
 | ||||||
| On [NearlyFreeSpeech](http://nearlyfreespeech.net/) you need to run the | On [NearlyFreeSpeech](https://www.nearlyfreespeech.net/) you need to run the | ||||||
| following commands before installing Jekyll: | following commands before installing Jekyll: | ||||||
| 
 | 
 | ||||||
| {% highlight bash %} | {% highlight bash %} | ||||||
|  |  | ||||||
|  | @ -28,4 +28,4 @@ Happy developing! | ||||||
| 
 | 
 | ||||||
| [changelog]: /docs/history/ | [changelog]: /docs/history/ | ||||||
| [@jglovier]: https://github.com/jglovier | [@jglovier]: https://github.com/jglovier | ||||||
| [jekyll-1]: /news/2013/05/06/jekyll-1-0-0-released/ | [jekyll-1]: {% post_url 2013-05-06-jekyll-1-0-0-released %} | ||||||
|  |  | ||||||
|  | @ -16,4 +16,4 @@ Jekyll 2.2.0 contains a few key updates: | ||||||
|    will now work properly). |    will now work properly). | ||||||
| 
 | 
 | ||||||
| As always, a full list of the updates are on the | As always, a full list of the updates are on the | ||||||
| [history page](/docs/history#v2-2-0). Happy Jekylling! | [history page](/docs/history/#v2-2-0). Happy Jekylling! | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue