diff --git a/README.md b/README.md
index f947407d..dd169ae6 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Sinatra
-[![Build Status](https://secure.travis-ci.org/sinatra/sinatra.svg)](http://travis-ci.org/sinatra/sinatra)
+[![Build Status](https://secure.travis-ci.org/sinatra/sinatra.svg)](https://travis-ci.org/sinatra/sinatra)
Sinatra is a [DSL](https://en.wikipedia.org/wiki/Domain-specific_language) for
quickly creating web applications in Ruby with minimal effort:
@@ -28,8 +28,9 @@ ruby myapp.rb
View at: [http://localhost:4567](http://localhost:4567)
-The code you changed will not take effect until you restart the server.
-Please restart the server every time you change or use [sinatra/reloader](http://www.sinatrarb.com/contrib/reloader).
+The code you changed will not take effect until you restart the server.
+Please restart the server every time you change or use
+[sinatra/reloader](http://www.sinatrarb.com/contrib/reloader).
It is recommended to also run `gem install thin`, which Sinatra will
pick up if available.
@@ -78,9 +79,9 @@ pick up if available.
* [Filters](#filters)
* [Helpers](#helpers)
* [Using Sessions](#using-sessions)
- * [Session Secret Security](#session-secret-security)
- * [Session Config](#session-config)
- * [Choosing Your Own Session Middleware](#choosing-your-own-session-middleware)
+ * [Session Secret Security](#session-secret-security)
+ * [Session Config](#session-config)
+ * [Choosing Your Own Session Middleware](#choosing-your-own-session-middleware)
* [Halting](#halting)
* [Passing](#passing)
* [Triggering Another Route](#triggering-another-route)
@@ -256,11 +257,11 @@ end
```
By the way, unless you disable the path traversal attack protection (see
-[below](#configuring-attack-protection)), the request path might be modified before matching against your
-routes.
+[below](#configuring-attack-protection)), the request path might be modified before
+matching against your routes.
-You may customize the [Mustermann](https://github.com/sinatra/mustermann) options used for a given route by passing in a
-`:mustermann_opts` hash:
+You may customize the [Mustermann](https://github.com/sinatra/mustermann#readme)
+options used for a given route by passing in a `:mustermann_opts` hash:
```ruby
get '\A/posts\z', :mustermann_opts => { :type => :regexp, :check_anchors => false } do
@@ -431,7 +432,7 @@ Note that the public directory name is not included in the URL. A file
`./public/css/style.css` is made available as
`http://example.com/css/style.css`.
-Use the `:static_cache_control` setting (see [below](`#cache-control)) to add
+Use the `:static_cache_control` setting (see [below](#cache-control)) to add
`Cache-Control` header info.
## Views / Templates
@@ -667,7 +668,7 @@ It also takes a block for inline templates (see [example](#inline-templates)).
Dependency |
- sass |
+ sass |
File Extension |
@@ -684,7 +685,7 @@ It also takes a block for inline templates (see [example](#inline-templates)).
Dependency |
- sass |
+ sass |
File Extension |
@@ -742,8 +743,8 @@ template, you almost always want to pass locals to it.
Anyone of:
RDiscount,
RedCarpet,
- BlueCloth,
- kramdown,
+ BlueCloth,
+ kramdown,
maruku
@@ -893,7 +894,7 @@ almost always want to pass locals to it.
Dependency |
- Markaby |
+ Markaby |
File Extension |
@@ -1022,7 +1023,7 @@ template than for the layout by passing the `:layout_engine` option.
CoffeeScript
and a
-
+
way to execute javascript
@@ -1046,7 +1047,7 @@ template than for the layout by passing the `:layout_engine` option.
Stylus
and a
-
+
way to execute javascript
@@ -1120,7 +1121,7 @@ present(resource);
Dependency |
- WLang |
+ WLang |
File Extension |
@@ -1276,8 +1277,8 @@ get '/' do
end
```
-Renders `./views/index.myat`. See https://github.com/rtomayko/tilt to
-learn more about Tilt.
+Renders `./views/index.myat`. Learn more about
+[Tilt](https://github.com/rtomayko/tilt#readme).
### Using Custom Logic for Template Lookup
@@ -1438,8 +1439,8 @@ $ ruby -e "require 'securerandom'; puts SecureRandom.hex(64)"
**Session Secret Generation (Bonus Points)**
-Use the [sysrandom gem](https://github.com/cryptosphere/sysrandom) to prefer
-use of system RNG facilities to generate random values instead of
+Use the [sysrandom gem](https://github.com/cryptosphere/sysrandom#readme) to
+prefer use of system RNG facilities to generate random values instead of
userspace `OpenSSL` which MRI Ruby currently defaults to:
```text
@@ -1469,7 +1470,7 @@ Setup your app config to fail-safe to a secure random secret
if the `SESSION_SECRET` environment variable is not available.
For bonus points use the [sysrandom
-gem](https://github.com/cryptosphere/sysrandom) here as well:
+gem](https://github.com/cryptosphere/sysrandom#readme) here as well:
```ruby
require 'securerandom'
@@ -1637,7 +1638,7 @@ get '/foo' do
status 418
headers \
"Allow" => "BREW, POST, GET, PROPFIND, WHEN",
- "Refresh" => "Refresh: 20; http://www.ietf.org/rfc/rfc2324.txt"
+ "Refresh" => "Refresh: 20; https://ietf.org/rfc/rfc2324.txt"
body "I'm a tea pot!"
end
```
@@ -1884,7 +1885,7 @@ etag @article.sha1, :weak
These helpers will not do any caching for you, but rather feed the necessary
information to your cache. If you are looking for a quick
reverse-proxy caching solution, try
-[rack-cache](https://github.com/rtomayko/rack-cache):
+[rack-cache](https://github.com/rtomayko/rack-cache#readme):
```ruby
require "rack/cache"
@@ -2358,7 +2359,12 @@ set :protection, :session => true
server_settings
- If you are using a WEBrick web server, presumably for your development environment, you can pass a hash of options to server_settings, such as SSLEnable or SSLVerifyClient. However, web servers such as Puma and Thin do not support this, so you can set server_settings by defining it as a method when you call configure.
+ If you are using a WEBrick web server, presumably for your development
+ environment, you can pass a hash of options to server_settings,
+ such as SSLEnable or SSLVerifyClient. However, web
+ servers such as Puma and Thin do not support this, so you can set
+ server_settings by defining it as a method when you call
+ configure.
sessions
@@ -2539,7 +2545,7 @@ and additional debugging information in your browser.
## Rack Middleware
-Sinatra rides on [Rack](http://rack.github.io/), a minimal standard
+Sinatra rides on [Rack](https://rack.github.io/), a minimal standard
interface for Ruby web frameworks. One of Rack's most interesting
capabilities for application developers is support for "middleware" --
components that sit between the server and your application monitoring
@@ -3003,7 +3009,9 @@ Options are:
### Multi-threading
-_Paraphrasing from [this StackOverflow answer][so-answer] by Konstantin_
+_Paraphrasing from
+[this StackOverflow answer](https://stackoverflow.com/a/6282999/5245129)
+by Konstantin_
Sinatra doesn't impose any concurrency model, but leaves that to the
underlying Rack handler (server) like Thin, Puma or WEBrick. Sinatra
@@ -3034,9 +3042,6 @@ To start the server, the command would be:
thin --threaded start
```
-
-[so-answer]: http://stackoverflow.com/questions/6278817/is-sinatra-multi-threaded/6282999#6282999)
-
## Requirement
The following Ruby versions are officially supported:
@@ -3105,7 +3110,7 @@ to get some of the latest features.
### With Bundler
If you want to run your application with the latest Sinatra, using
-[Bundler](http://bundler.io) is the recommended way.
+[Bundler](https://bundler.io) is the recommended way.
First, install bundler, if you haven't:
@@ -3135,7 +3140,7 @@ bundle exec ruby myapp.rb
## Versioning
-Sinatra follows [Semantic Versioning](http://semver.org/), both SemVer and
+Sinatra follows [Semantic Versioning](https://semver.org/), both SemVer and
SemVerTag.
## Further Reading
@@ -3146,14 +3151,14 @@ SemVerTag.
help? Have a patch?
* [Issue tracker](https://github.com/sinatra/sinatra/issues)
* [Twitter](https://twitter.com/sinatra)
-* [Mailing List](http://groups.google.com/group/sinatrarb/topics)
-* IRC: [#sinatra](irc://chat.freenode.net/#sinatra) on http://freenode.net
-* [Sinatra & Friends](https://sinatrarb.slack.com) on Slack and see
- [here](https://sinatra-slack.herokuapp.com/) for an invite.
-* [Sinatra Book](https://github.com/sinatra/sinatra-book/) Cookbook Tutorial
-* [Sinatra Recipes](http://recipes.sinatrarb.com/) Community
- contributed recipes
+* [Mailing List](https://groups.google.com/forum/#!forum/sinatrarb)
+* IRC: [#sinatra](irc://chat.freenode.net/#sinatra) on [Freenode](https://freenode.net)
+* [Sinatra & Friends](https://sinatrarb.slack.com) on Slack
+ ([get an invite](https://sinatra-slack.herokuapp.com/))
+* [Sinatra Book](https://github.com/sinatra/sinatra-book) - Cookbook Tutorial
+* [Sinatra Recipes](http://recipes.sinatrarb.com/) - Community contributed
+ recipes
* API documentation for the [latest release](http://www.rubydoc.info/gems/sinatra)
or the [current HEAD](http://www.rubydoc.info/github/sinatra/sinatra) on
- http://www.rubydoc.info/
+ [RubyDoc](http://www.rubydoc.info/)
* [CI server](https://travis-ci.org/sinatra/sinatra)