BuntoRedirectFrom
Give your Bunto posts and pages multiple URLs.
When importing your posts and pages from, say, Tumblr, it's annoying and
impractical to create new pages in the proper subdirectories so they, e.g.
/post/123456789/my-slug-that-is-often-incompl
, redirect to the new post URL.
Instead of dealing with maintaining those pages for redirection, let
bunto-redirect-from
handle it for you.
How it Works
Redirects are performed by serving an HTML file with an HTTP-REFRESH meta
tag which points to your destination. No .htaccess
file, nginx conf, xml
file, or anything else will be generated. It simply creates HTML files.
Installation
Add this line to your application's Gemfile:
gem 'bunto-redirect-from'
And then execute:
$ bundle
Or install it yourself as:
$ gem install bunto-redirect-from
Once it's installed into your evironment, add it to your _config.yml
:
gems:
- bunto-redirect-from
If you're using Bunto in safe
mode to mimic GitHub Pages, make sure to
add bunto-redirect-from to your whitelist:
whitelist:
- bunto-redirect-from
Then run bunto <cmd> --safe
like normal.
Usage
The object of this gem is to allow an author to specify multiple URLs for a page, such that the alternative URLs redirect to the new Bunto URL.
To use it, simply add the array to the YAML front-matter of your page or post:
title: My amazing post
redirect_from:
- /post/123456789/
- /post/123456789/my-amazing-post/
Redirects including a trailing slash will generate a corresponding subdirectory containing an index.html
, while redirects without a trailing slash will generate a corresponding filename
without an extension, and without a subdirectory.
For example...
redirect_from:
- /post/123456789/my-amazing-post
...will generate the following page in the destination:
/post/123456789/my-amazing-post
While...
redirect_from:
- /post/123456789/my-amazing-post/
...will generate the following page in the destination:
/post/123456789/my-amazing-post/index.html
These pages will contain an HTTP-REFRESH meta tag which redirect to your URL.
You can also specify just one url like this:
title: My other awesome post
redirect_from: /post/123456798/
Prefix
If site.baseurl
is set, its value is used as a prefix for the redirect url automatically.
This is useful for scenarios where a site isn't available from the domain root, so the redirects point to the correct path.
Note: If you are hosting your Bunto site on GitHub Pages, the prefix is set to the pages domain name i.e. http://example.github.io/project
or a custom CNAME
.
Redirect To
Sometimes, you may want to redirect a site page to a totally different website. This plugin also supports that with the redirect_to
key:
title: My amazing post
redirect_to:
- http://www.github.com
If you have multiple redirect_to
s set, only the first one will be respected.
Note: Using redirect_to
or redirect_from
with collections will only work with files which are output to HTML, such as .md
, .textile
, .html
etc.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request