aboutsummaryrefslogtreecommitdiffstats
path: root/docs/running
diff options
context:
space:
mode:
Diffstat (limited to 'docs/running')
-rw-r--r--docs/running/admin_manual.md55
-rw-r--r--docs/running/categories_and_tags.md26
-rw-r--r--docs/running/holding_pen.md24
-rw-r--r--docs/running/index.md8
-rw-r--r--docs/running/redaction.md18
-rw-r--r--docs/running/requests.md32
-rw-r--r--docs/running/server.md24
-rw-r--r--docs/running/upgrading.md10
8 files changed, 99 insertions, 98 deletions
diff --git a/docs/running/admin_manual.md b/docs/running/admin_manual.md
index 7c112400c..b05ddb5f4 100644
--- a/docs/running/admin_manual.md
+++ b/docs/running/admin_manual.md
@@ -8,7 +8,8 @@ title: Administrator's guide
<p class="lead">
What is it like running an Alaveteli site? This guide explains what you can
expect, and the types of problem that you might encounter. It includes
- examples of how mySociety manages their own <a href="/docs/glossary/#foi"
+ examples of how mySociety manages their own
+ <a href="{{ page.baseurl }}/docs/glossary/#foi"
class="glossary__link">Freedom of Information</a> site, <a
href="https://www.whatdotheyknow.com">whatdotheyknow.com</a>.
</p>
@@ -57,7 +58,7 @@ WhatDoTheyKnow usually has about 3 active volunteers at any one time managing
the support, plus a few other less active people who help out at different
times.
-Administration tasks can be split into [**maintenance**]({{ site.baseurl }}docs/running/admin_manual/#maintenance) and [**user support**]({{ site.baseurl }}docs/running/admin_manual/#user-support).
+Administration tasks can be split into [**maintenance**]({{ page.baseurl }}/docs/running/admin_manual/#maintenance) and [**user support**]({{ page.baseurl }}/docs/running/admin_manual/#user-support).
The boundaries of these tasks is in fact quite blurred; the main distinction is
that the former happen exclusively through the web admin interface, whereas the
latter are mediated by email directly with end users (but often result in
@@ -312,13 +313,13 @@ line, and piping the contents of that file into the mail handling script. e.g.
### Administrator privileges and accessing the admin interface
-The <a href="{{ site.baseurl }}docs/glossary/#admin" class="glossary__link">administrative interface</a>
+The <a href="{{ page.baseurl }}/docs/glossary/#admin" class="glossary__link">administrative interface</a>
is at the URL `/admin`. Only users who are
-<a href="{{ site.baseurl }}docs/glossary/#admin" class="glossary__link">administrators</a>
+<a href="{{ page.baseurl }}/docs/glossary/#admin" class="glossary__link">administrators</a>
can access the admin interface.
To make a user an administrator on a brand new site,
-[follow these steps]({{ site.baseurl }}docs/installing/next_steps/#create-a-superuser-admin-account).
+[follow these steps]({{ page.baseurl }}/docs/installing/next_steps/#create-a-superuser-admin-account).
If you're already an administrator, you can grant other users administrator
privilege too. Go to `/admin/users` or click on **Users** at the top of
@@ -336,20 +337,20 @@ have extra privileges in the main website front end. Administrators can:
<div class="attention-box warning">
It is possible completely to override the administrator authentication by
setting
- <code><a href="{{ site.baseurl }}docs/customising/config/#skip_admin_auth">SKIP_ADMIN_AUTH</a></code>
+ <code><a href="{{ page.baseurl }}/docs/customising/config/#skip_admin_auth">SKIP_ADMIN_AUTH</a></code>
to <code>true</code> in <code>general.yml</code>. Never do this, unless you
- are working on a <a href="{{ site.baseurl }}docs/glossary/#development"
+ are working on a <a href="{{ page.baseurl }}/docs/glossary/#development"
class="glossary__link">development</a> server.
</div>
### Removing a message from the holding pen
Alaveteli puts incoming messages (that is,
-<a href="{{ site.baseurl }}docs/glossary/#reponse" class="glossary__link">responses</a>)
+<a href="{{ page.baseurl }}/docs/glossary/#reponse" class="glossary__link">responses</a>)
into the
-<a href="{{ site.baseurl }}docs/glossary/#holding_pen" class="glossary__link">holding pen</a>
+<a href="{{ page.baseurl }}/docs/glossary/#holding_pen" class="glossary__link">holding pen</a>
if their `To:` email addresses can't automatically be associated with a
-<a href="{{ site.baseurl }}docs/glossary/#reponse" class="glossary__link">request</a>.
+<a href="{{ page.baseurl }}/docs/glossary/#reponse" class="glossary__link">request</a>.
The two most common reasons for this are:
@@ -361,7 +362,7 @@ When this happens, the messages wait in the holding pen until an administrator
redelivers them to the correct request, or else deletes them.
To do this, log into the
-The <a href="{{ site.baseurl }}docs/glossary/#admin" class="glossary__link">admin interface</a>
+The <a href="{{ page.baseurl }}/docs/glossary/#admin" class="glossary__link">admin interface</a>
at `/admin`. If there are any messages in the holding pen, you'll see this
message under the title *Things to do*:
@@ -417,13 +418,13 @@ in the holding pen, and is shown instead on the public request page.
### Rejecting spam that arrives in the holding pen
Alaveteli maintains a
-<a href="{{ site.baseurl }}docs/glossary/#spam-address-list" class="glossary__link">spam address list</a>.
+<a href="{{ page.baseurl }}/docs/glossary/#spam-address-list" class="glossary__link">spam address list</a>.
Any incoming message to an email address on that list
*that would otherwise be put in the holding pen* will be rejected and won't
appear in the admin.
If you see spam messages in the
-<a href="{{ site.baseurl }}docs/glossary/#holding_pen" class="glossary__link">holding pen</a>,
+<a href="{{ page.baseurl }}/docs/glossary/#holding_pen" class="glossary__link">holding pen</a>,
check if they are being sent to a *specific* email address. If they are, that
email address has become a "spam-target" and you should add it to the spam
address list. Thereafter, Alaveteli will automatically reject any messages that
@@ -434,7 +435,7 @@ messages end up in the holding pen) becomes a spam-target once it's been
harvested by spammers. There are several reasons why such an invalid address
might exist &mdash; perhaps it was mis-spelled in a manual reply, for example.
Our experience from running
-<a href="{{ site.baseurl }}docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>
+<a href="{{ page.baseurl }}/docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>
is that you can safely dismiss incoming email to such addresses once they have
been targeted in this way. Legitimate emails that arrive in the holding pen
tend to be unique errors (for example, missing the last character of the email
@@ -471,7 +472,7 @@ this address.
Note that if you are seeing consistent spam email in your holding pen, you
should also consider implementing (or increasing) the anti-spam measures
running in your
-<a href="{{ site.baseurl }}docs/glossary/#mta" class="glossary__link">MTA</a>.
+<a href="{{ page.baseurl }}/docs/glossary/#mta" class="glossary__link">MTA</a>.
### Creating, changing and uploading public authority data
@@ -554,7 +555,7 @@ unrecognised column name, the import will fail.
<td><em>yes</em></td>
<td>
The URL of the authority's
- <a href="{{ site.baseurl }}docs/glossary/#publication-scheme" class="glossary__link">publication scheme</a>,
+ <a href="{{ page.baseurl }}/docs/glossary/#publication-scheme" class="glossary__link">publication scheme</a>,
if they have one
</td>
</tr>
@@ -563,7 +564,7 @@ unrecognised column name, the import will fail.
<td><em>yes</em></td>
<td>
The URL of the authority's
- <a href="{{ site.baseurl }}docs/glossary/#disclosure-log" class="glossary__link">disclosure log</a>,
+ <a href="{{ page.baseurl }}/docs/glossary/#disclosure-log" class="glossary__link">disclosure log</a>,
if they have one
</td>
</tr>
@@ -588,10 +589,10 @@ unrecognised column name, the import will fail.
changed. This means you only really need to include data you want to
update.
* Columns with "i18n suffix" can accept
- <a href="{{ site.baseurl }}docs/glossary/#i18n" class="glossary__link">internationalised</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#i18n" class="glossary__link">internationalised</a>
names. Add a full stop followed by the language code, for example:
`name.es` for Spanish (`es`). This *must* be a locale you've declared in
- [`AVAILABLE_LOCALES`]({{ site.baseurl }}docs/customising/config/#available_locales).
+ [`AVAILABLE_LOCALES`]({{ page.baseurl }}/docs/customising/config/#available_locales).
If you don't specify an i18n suffix, the default language for your site is
assumed.
* You can specify a blank entry in the CSV file by having no character
@@ -689,14 +690,14 @@ Enter some text in the in the ‘Ban text’ box to explain why they have been b
### Allowing a user to make more requests
-Alaveteli has a config setting <code><a href="{{ site.baseurl }}docs/customising/config/#max_requests_per_user_per_day">MAX_REQUESTS_PER_USER_PER_DAY</a></code>,
+Alaveteli has a config setting <code><a href="{{ page.baseurl }}/docs/customising/config/#max_requests_per_user_per_day">MAX_REQUESTS_PER_USER_PER_DAY</a></code>,
which determines the maximum number of requests that a normal user can
make in a day. If they try to make more than this number of requests
within a 24 hour period, they will see a message telling them that they
have hit the limit, and encouraging them to use the contact form if they
feel they have a good reason to ask for the request limit to be lifted.
-To lift the request limit for a particular user, go to the <a href="{{ site.baseurl }}docs/glossary/#admin" class="glossary__link">admin
+To lift the request limit for a particular user, go to the <a href="{{ page.baseurl }}/docs/glossary/#admin" class="glossary__link">admin
interface</a>, click on **Users**, then click on the name of the user
you want to lift the request limit for. Click the **Edit** button. Tick
the checkbox **No rate limit**, and click the **Save** button.
@@ -716,12 +717,12 @@ Users can choose which authorities to include in a batch requests. They can eve
</div>
To enable batch requests on your site, first you must set
-<code><a href="{{ site.baseurl }}docs/customising/config/#allow_batch_requests">ALLOW_BATCH_REQUESTS</a></code>
+<code><a href="{{ page.baseurl }}/docs/customising/config/#allow_batch_requests">ALLOW_BATCH_REQUESTS</a></code>
to <code>true</code> in <code>general.yml</code>.
This does not allow anyone to make batch requests yet. You must still
enable this for each user on an individual basis. To do this, go to the
-<a href="{{ site.baseurl }}docs/glossary/#admin"
+<a href="{{ page.baseurl }}/docs/glossary/#admin"
class="glossary__link">admin interface</a>, click on **Users**, then
click on the name of the user who wants to make batch requests. Click
the **Edit** button. Tick the checkbox **Can make batch requests**, and
@@ -740,18 +741,18 @@ an existing request to that authority to the new email address. Alternatively,
a user may send a request to the wrong authority. In that situation, you can
change the authority on the request and then resend it to the correct authority.
For instructions, see
-[resending a request or sending it to a different authority]({{ site.baseurl }}docs/running/requests/#resending-a-request-or-sending-it-to-a-different-authority).
+[resending a request or sending it to a different authority]({{ page.baseurl }}/docs/running/requests/#resending-a-request-or-sending-it-to-a-different-authority).
### Hiding a request
If a request contains vexatious or inappropriate content, is libellous, or is
not a valid
-<a href="{{ site.baseurl }}docs/glossary/#foi" class="glossary__link">Freedom of Information</a>
+<a href="{{ page.baseurl }}/docs/glossary/#foi" class="glossary__link">Freedom of Information</a>
request at all, you may want to hide it. A hidden request is still visible to
you and the other administrators, and (optionally) the requester themselves.
For instructions, see
-[hiding a request]({{ site.baseurl }}docs/running/requests/#hiding-a-request).
+[hiding a request]({{ page.baseurl }}/docs/running/requests/#hiding-a-request).
Responses to a hidden request will be accepted in the normal way, but because
they are added to the request's page, they too will be hidden.
@@ -759,7 +760,7 @@ they are added to the request's page, they too will be hidden.
### Deleting a request
You can delete a request from the site. For instructions, see
-[deleting a request]({{ site.baseurl }}docs/running/requests/#deleting-a-request).
+[deleting a request]({{ page.baseurl }}/docs/running/requests/#deleting-a-request).
Responses to a deleted request will be sent to the holding pen.
diff --git a/docs/running/categories_and_tags.md b/docs/running/categories_and_tags.md
index 8f36ae472..e1192f84d 100644
--- a/docs/running/categories_and_tags.md
+++ b/docs/running/categories_and_tags.md
@@ -8,12 +8,12 @@ title: Categories & tags
<p class="lead">
Use tags to arrange
- <a href="{{ site.baseurl }}docs/glossary/#authority"
+ <a href="{{ page.baseurl }}/docs/glossary/#authority"
class="glossary__link">authorities</a> into categories, or to associate
related authorities with each other. This helps your users find the right
authority for the
- <a href="{{ site.baseurl }}docs/glossary/#request" class="glossary__link">request</a>
- (or <a href="{{ site.baseurl }}docs/glossary/#response" class="glossary__link">response</a>)
+ <a href="{{ page.baseurl }}/docs/glossary/#request" class="glossary__link">request</a>
+ (or <a href="{{ page.baseurl }}/docs/glossary/#response" class="glossary__link">response</a>)
they are interested in.
</p>
@@ -26,7 +26,7 @@ Admin interface introduced in Alaveteli version 0.20
Alaveteli lets you organise your authorities into *categories*. Categories can
themselves belong to *category headings*. For example, some of the categories
and headings on
-<a href="{{ site.baseurl }}docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>'s
+<a href="{{ page.baseurl }}/docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>'s
<a href="https://www.whatdotheyknow.com/body/list/all">View authorities</a> page look like this:
> * **Media and culture**
@@ -57,7 +57,7 @@ users find the specific authorities they are looking for.
Try to use simple but descriptive words for tags. Tags cannot contain spaces
(use an underscore if you need to, <code>like_this</code>).
Remember that tags will be seen and used by the public (for example, in the
- <a href="{{ site.baseurl }}docs/glossary/#advanced-search" class="glossary__link">advanced search</a>).
+ <a href="{{ page.baseurl }}/docs/glossary/#advanced-search" class="glossary__link">advanced search</a>).
</div>
### Adding a new category
@@ -113,7 +113,7 @@ of these tags.
<td>
This is a test/dummy authority. It is not displayed to the public on your
main site, and it is not included when you
- <a href="{{ site.baseurl }}docs/running/admin_manual/#creating-changing-and-uploading-public-authority-data">export authorities in CSV format</a>.
+ <a href="{{ page.baseurl }}/docs/running/admin_manual/#creating-changing-and-uploading-public-authority-data">export authorities in CSV format</a>.
</td>
</tr>
<tr>
@@ -130,7 +130,7 @@ of these tags.
<code>not_apply</code>
</td>
<td>
- <a href="{{ site.baseurl }}docs/glossary/#foi" class="glossary__link">Freedom of Information</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#foi" class="glossary__link">Freedom of Information</a>
law does not apply to this authority: new requests cannot be sent to an
authority with this tag.
</td>
@@ -142,7 +142,7 @@ of these tags.
<td>
<em>Custom example:</em> (see below)<br>
On our UK installation of Alaveteli,
- <a href="{{ site.baseurl }}docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>,
+ <a href="{{ page.baseurl }}/docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>,
this tag indicates that the authority is subject to an alternative law
(Environment Information Regulations, rather than the Freedom of
Information), which means Alaveteli must change the wording of these
@@ -155,7 +155,7 @@ of these tags.
</td>
<td>
<em>Custom example:</em> (see below)<br>
- <a href="{{ site.baseurl }}docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>
applies a different definition of "late" if an authority has the <code>school</code> tag.
</td>
</tr>
@@ -169,10 +169,10 @@ categories.
If you are a developer, and you want to add special behaviour to your site
based on your own tags, you need to add custom code, which should probably go
in your own
-<a href="{{ site.baseurl}}docs/glossary/#theme" class="glossary__link">theme</a>.
+<a href="{{ page.baseurl }}/docs/glossary/#theme" class="glossary__link">theme</a>.
For example, in the UK, schools are granted special concession in the law to allow for
requests that are made out of term-time. Alaveteli handles this by using the
-[`SPECIAL_REPLY_VERY_LATE_AFTER_DAYS`]({{ site.baseurl }}docs/customising/config/#special_reply_very_late_after_days)
+[`SPECIAL_REPLY_VERY_LATE_AFTER_DAYS`]({{ page.baseurl }}/docs/customising/config/#special_reply_very_late_after_days)
config value if the authority has the `school` tag.
See
[`is_school?`](https://github.com/mysociety/alaveteli/blob/f0bbeb4abf4bf07e5cfb46668f39bbff72ed7210/app/models/public_body.rb#L391)
@@ -183,7 +183,7 @@ for the source code.
## Searching with tags
Alaveteli's
-<a href="{{ site.baseurl }}docs/glossary/#advanced-search" class="glossary__link">advanced search</a>
+<a href="{{ page.baseurl }}/docs/glossary/#advanced-search" class="glossary__link">advanced search</a>
feature (which is available to all your users) can search for specific tags. So
if you add useful tags and publicise them, your users can use them to find
related authorities. For example, see the <a
@@ -191,7 +191,7 @@ href="https://www.whatdotheyknow.com/advancedsearch">advanced search on
WhatDoTheyKnow</a> to see this at work.
You can add reference numbers or specific values to tags using a colon. On
-<a href="{{ site.baseurl }}docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>
+<a href="{{ page.baseurl }}/docs/glossary/#wdtk" class="glossary__link">WhatDoTheyKnow</a>
we tag all authorities that are charities with the tag `charity:123456` (where
123456 is the authority's registered charity number).
diff --git a/docs/running/holding_pen.md b/docs/running/holding_pen.md
index 5b7f08bec..535c17dd8 100644
--- a/docs/running/holding_pen.md
+++ b/docs/running/holding_pen.md
@@ -8,15 +8,15 @@ title: The holding pen
<p class="lead">
The <em>holding pen</em> is where Alaveteli puts any incoming
- <a href="{{ site.baseurl }}docs/glossary/#response" class="glossary__link">responses</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#response" class="glossary__link">responses</a>
that can't be matched to a
- <a href="{{ site.baseurl }}docs/glossary/#request" class="glossary__link">request</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#request" class="glossary__link">request</a>
automatically.
</p>
Alaveteli works by emailing requests to the correct target
-<a href="{{ site.baseurl }}docs/glossary/#authority" class="glossary__link">authority</a>.
+<a href="{{ page.baseurl }}/docs/glossary/#authority" class="glossary__link">authority</a>.
That email message is sent from a unique email address &mdash; that is, an
email address that is associated with that single request (technically,
Alaveteli hashes the request ID to generate a unique address and uses this as
@@ -25,7 +25,7 @@ the `Reply-to:` address).
So whenever an authority replies (by email) to a request that Alaveteli has
sent, that response will be addressed to that request's unique email address.
The email is received by your installation's
-<a href="{{ site.baseurl}}docs/glossary/#mta" class="glossary__link">MTA</a>,
+<a href="{{ page.baseurl }}/docs/glossary/#mta" class="glossary__link">MTA</a>,
and is passed on to Alaveteli. In this way, incoming messages are easily
matched with the request they are responses to &mdash; this is important
because your site displays the responses underneath their original request, on
@@ -34,11 +34,11 @@ the request's page.
Normally, this works fine. But sometimes things go wrong, and a message comes
in that can't be matched with a request. When this happens, Alaveteli puts the
message in the
-<a href="{{ site.baseurl }}docs/glossary/#holding_pen" class="glossary__link">holding
+<a href="{{ page.baseurl }}/docs/glossary/#holding_pen" class="glossary__link">holding
pen </a>.
Messages wait in the holding pen until an
-<a href="{{ site.baseurl }}docs/glossary/#super" class="glossary__link">administrator</a>
+<a href="{{ page.baseurl }}/docs/glossary/#super" class="glossary__link">administrator</a>
redelivers them to the correct request, or else deletes them.
## Why messages end up in the holding pen
@@ -61,7 +61,7 @@ There are several reasons why a message might end up in the holding pen:
deliberate attempt to send spam.
* **the response is to a request that has been deleted**<br>
- If you [delete a request]({{ site.baseurl }}docs/running/requests/#deleting-a-request),
+ If you [delete a request]({{ page.baseurl }}/docs/running/requests/#deleting-a-request),
Alaveteli cannot deliver responses to it.
* **the response has been rejected and rejections are set to go to the holding pen**<br>
@@ -72,12 +72,12 @@ There are several reasons why a message might end up in the holding pen:
reasons &mdash; for example, if a response is sent from an unrecognised
email address for a request whose *Allow new responses from* setting is
`authority_only`. See instructions on
- [how to manage requests]({{site.baseurl}}docs/running/requests/) for details.
+ [how to manage requests]({{ page.baseurl }}/docs/running/requests/) for details.
## What to do: redeliver or delete
You need to be an
-<a href="{{ site.baseurl }}docs/glossary/#super" class="glossary__link">administrator</a>
+<a href="{{ page.baseurl }}/docs/glossary/#super" class="glossary__link">administrator</a>
to modify the holding pen.
There are two things you can do to a message in the holding pen:
@@ -90,12 +90,12 @@ There are two things you can do to a message in the holding pen:
If the message is not a response, you can delete it.
For instructions, see
-[removing a message from the holding pen]({{ site.baseurl }}docs/running/admin_manual/#removing-a-message-from-the-holding-pen).
+[removing a message from the holding pen]({{ page.baseurl }}/docs/running/admin_manual/#removing-a-message-from-the-holding-pen).
If the `To:` address does not belong to a valid request and the message is
clearly spam you can add that email address to Alaveteli's
-<a href="{{site.baseurl}}#spam-address-list" class="glossary__link">spam address list</a>.
+<a href="{{ page.baseurl }}/#spam-address-list" class="glossary__link">spam address list</a>.
Subsequent messages to that address will be automatically rejected &mdash; for
instructions see
-[rejecting spam that arrives in the holding pen]({{ site.baseurl }}docs/running/admin_manual/#rejecting-spam-that-arrives-in-the-holding-pen).
+[rejecting spam that arrives in the holding pen]({{ page.baseurl }}/docs/running/admin_manual/#rejecting-spam-that-arrives-in-the-holding-pen).
diff --git a/docs/running/index.md b/docs/running/index.md
index bbf30d3b9..c84a74427 100644
--- a/docs/running/index.md
+++ b/docs/running/index.md
@@ -11,19 +11,19 @@ title: Running
</p>
Alaveteli is not just software. To run a successful
-<a href="{{ site.baseurl }}docs/glossary/#foi" class="glossary__link">Freedom of Information</a>
+<a href="{{ page.baseurl }}/docs/glossary/#foi" class="glossary__link">Freedom of Information</a>
site, you need to make sure day-to-day tasks get done too. Most Alaveteli sites
are run by a team who allocate some time every day to user support and generally keeping
the project up to date.
-* The [administrator's guide]({{ site.baseurl }}docs/running/admin_manual/) describes
+* The [administrator's guide]({{ page.baseurl }}/docs/running/admin_manual/) describes
what you need to do and know to run your site
-* The [redaction guide]({{ site.baseurl }}docs/running/redaction/) includes some
+* The [redaction guide]({{ page.baseurl }}/docs/running/redaction/) includes some
examples of Alaveteli's ability to redact sensitive information
* We've prepared a checklist of
- [things to consider]({{ site.baseurl }}docs/running/server/)
+ [things to consider]({{ page.baseurl }}/docs/running/server/)
when setting up your production server
diff --git a/docs/running/redaction.md b/docs/running/redaction.md
index 6ab8fed86..1e6542873 100644
--- a/docs/running/redaction.md
+++ b/docs/running/redaction.md
@@ -7,7 +7,7 @@ title: Redacting Sensitive Information
In some countries, local requirements mean that requests need to contain personal information such as the address or ID number of the person asking for information. Usually requesters do not want this information to be displayed to the general public.
-Alaveteli has some ability to deal with this through the use of <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rules</a>.
+Alaveteli has some ability to deal with this through the use of <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rules</a>.
The [theme](https://github.com/mysociety/derechoapreguntar-theme) we'll use as an example requires a National Identity Card Number and what's known as General Law in Nicaragua (Date of Birth, Domicile, Occupation and Marital Status).
@@ -30,13 +30,13 @@ When a request is made the user's ID Number is now added to the footer of the ou
![Outgoing Message with ID Number]({{ site.baseurl }}assets/img/redaction-outgoing-message-with-id-number.png)
-At this point we haven't added any <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rules</a>. When the authority replies it is unlikely that the responder will remove the quoted section of the email:
+At this point we haven't added any <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rules</a>. When the authority replies it is unlikely that the responder will remove the quoted section of the email:
![ID Number in Quoted Section]({{ site.baseurl }}assets/img/redaction-id-number-in-quoted-section.png)
-We could add a <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> for the individual request, but as every request will contain a user's ID Number its better to add some code to do do it automatically.
+We could add a <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> for the individual request, but as every request will contain a user's ID Number its better to add some code to do do it automatically.
-To illustrate this we'll patch the `User` model with a callback that creates a <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> when the user is created and updated.
+To illustrate this we'll patch the `User` model with a callback that creates a <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> when the user is created and updated.
# THEME_ROOT/lib/model_patches.rb
User.class_eval do
@@ -54,7 +54,7 @@ To illustrate this we'll patch the `User` model with a callback that creates a <
end
end
-You can see the new <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> in the admin interface:
+You can see the new <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> in the admin interface:
![Automatically added Censor Rule]({{ site.baseurl }}assets/img/redaction-automatically-added-id-number-censor-rule.png)
@@ -66,9 +66,9 @@ It also gets redacted if the public body use the ID Number in the main email bod
![ID Number redacted in main body]({{ site.baseurl }}assets/img/redaction-id-number-in-main-body-redacted.png)
-A <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">censor rule</a> added to a user only gets applied to correspondence on requests created by that user. It does not get applied to annotations made by the user.
+A <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">censor rule</a> added to a user only gets applied to correspondence on requests created by that user. It does not get applied to annotations made by the user.
-**Warning:** Redaction in this way requires the sensitive text to be in exactly the same format as the <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a>. If it differs even slightly, the redaction can fail. If the public body was to remove the hyphens from the number it would not be redacted:
+**Warning:** Redaction in this way requires the sensitive text to be in exactly the same format as the <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a>. If it differs even slightly, the redaction can fail. If the public body was to remove the hyphens from the number it would not be redacted:
![ID Number not redacted in main body]({{ site.baseurl }}assets/img/redaction-id-number-in-main-body-not-redacted.png)
@@ -102,7 +102,7 @@ Note that the information is now contained in a specially formatted block of tex
![Outgoing message with general law]({{ site.baseurl }}assets/img/redaction-outgoing-message-with-general-law.png)
-This allows a <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> to match the special formatting and remove anything contained within. This <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> is global, so it will act on matches in all requests.
+This allows a <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> to match the special formatting and remove anything contained within. This <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> is global, so it will act on matches in all requests.
# THEME_ROOT/lib/censor_rules.rb
# If not already created, make a CensorRule that hides personal information
@@ -126,7 +126,7 @@ In this case the authority has revealed the user's Date of Birth and Domicile:
![Address outside formatted block]({{ site.baseurl }}assets/img/redaction-address-outside-fence.png)
-Its really difficult to add a <a href="{{site.baseurl}}docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> to remove this type of information. One suggestion might be to remove all mentions of the user's Date of Birth, but you would have to account for [every type of date format](http://en.wikipedia.org/wiki/Calendar_date#Date_format). Likewise, you could redact all occurrences of the user's Domicile, but if they a question about their local area (very likely) the request would become unintelligible.
+Its really difficult to add a <a href="{{ page.baseurl }}/docs/glossary/#censor-rule" class="glossary__link">Censor Rule</a> to remove this type of information. One suggestion might be to remove all mentions of the user's Date of Birth, but you would have to account for [every type of date format](http://en.wikipedia.org/wiki/Calendar_date#Date_format). Likewise, you could redact all occurrences of the user's Domicile, but if they a question about their local area (very likely) the request would become unintelligible.
![Censor Rule to redact a user's Domicile]({{ site.baseurl }}assets/img/redaction-domicile-censor-rule.png)
diff --git a/docs/running/requests.md b/docs/running/requests.md
index e554fe763..3b4c6e44e 100644
--- a/docs/running/requests.md
+++ b/docs/running/requests.md
@@ -8,17 +8,17 @@ title: Managing requests
<p class="lead">
Alaveteli makes it easy for a user to make a
- <a href="{{ site.baseurl }}docs/glossary/#request" class="glossary__link">request</a>.
+ <a href="{{ page.baseurl }}/docs/glossary/#request" class="glossary__link">request</a>.
As an
- <a href="{{ site.baseurl }}docs/glossary/#super" class="glossary__link">administrator</a>,
+ <a href="{{ page.baseurl }}/docs/glossary/#super" class="glossary__link">administrator</a>,
there are some things about that request you can change once it&rsquo;s been created.
</p>
A request is automatically created when a user submits and (where necessary)
confirms it. Alaveteli sends it to the
-<a href="{{ site.baseurl }}docs/glossary/#authority" class="glossary__link">authority</a>
+<a href="{{ page.baseurl }}/docs/glossary/#authority" class="glossary__link">authority</a>
responsible and handles any
-<a href="{{ site.baseurl }}docs/glossary/#response" class="glossary__link">responses</a>.
+<a href="{{ page.baseurl }}/docs/glossary/#response" class="glossary__link">responses</a>.
Usually this process runs without needing any intervention from an
administrator. But sometimes you'll want to change some aspect of the request,
or the way Alaveteli is handling it.
@@ -35,7 +35,7 @@ or the way Alaveteli is handling it.
## What state is the request in?
Every request moves through a series of
-<a href="{{ site.baseurl }}docs/glossary/#state" class="glossary__link">states</a>,
+<a href="{{ page.baseurl }}/docs/glossary/#state" class="glossary__link">states</a>,
indicating its progress. Usually a new request will be in the
`waiting_response` state until something happens to change that &mdash; for
example, a response is received.
@@ -87,7 +87,7 @@ for how to change these settings.
## Changing things about a request
To change any of these settings, go to the
-<a href="{{ site.baseurl }}docs/glossary/#admin" class="glossary__link">admin interface</a>,
+<a href="{{ page.baseurl }}/docs/glossary/#admin" class="glossary__link">admin interface</a>,
click on **Requests**, then click on the title of the request you want to affect.
Click the **Edit metadata** button.
@@ -179,12 +179,12 @@ Click the **Edit metadata** button.
</li>
<li>
<code>holding pen</code>: responses are put in the
- <a href="{{ site.baseurl }}docs/glossary/#holding_pen" class="glossary__link">holding pen</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#holding_pen" class="glossary__link">holding pen</a>
for an administrator to deal with
</li>
<li>
<code>blackhole</code>: responses are destroyed by being sent to a
- <a href="{{ site.baseurl }}docs/glossary/#blackhole" class="glossary__link">black hole</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#blackhole" class="glossary__link">black hole</a>
</li>
</ul>
</td>
@@ -194,7 +194,7 @@ Click the **Edit metadata** button.
What state is it in?
</td>
<td>
- See <a href="{{ site.baseurl }}docs/customising/states/">more about
+ See <a href="{{ page.baseurl }}/docs/customising/states/">more about
request states</a>, which can be customised for your installation.
<p>
You can force the state of the request by choosing it explicitly.
@@ -240,10 +240,10 @@ Click the **Edit metadata** button.
</p>
<p>
Although it&rsquo;s a little more complex than tags on requests,
- <a href="{{ site.baseurl }}docs/glossary/#category" class="glossary__link">categories</a>
+ <a href="{{ page.baseurl }}/docs/glossary/#category" class="glossary__link">categories</a>
also use tags:
see
- <a href="{{ site.baseurl }}docs/running/categories_and_tags/">more about tags</a>
+ <a href="{{ page.baseurl }}/docs/running/categories_and_tags/">more about tags</a>
for a little more information.
</p>
</td>
@@ -258,12 +258,12 @@ a user may send a request to the wrong authority. In that situation, you can
change the authority on the request and then resend it to the correct authority.
To resend a request, go to
-the <a href="{{ site.baseurl }}docs/glossary/#admin"
+the <a href="{{ page.baseurl }}/docs/glossary/#admin"
class="glossary__link">admin interface</a>, click on **Requests**, then
click on the name of the request you want to change. Go to the **Outgoing messages** heading. Click the chevron next to the first outgoing message, which is the initial request. A panel of information about that message will appear. Click on the **Resend** button.
To send a request to a different authority, go to
-the <a href="{{ site.baseurl }}docs/glossary/#admin"
+the <a href="{{ page.baseurl }}/docs/glossary/#admin"
class="glossary__link">admin interface</a>, click on **Requests**, then
click on the name of the request you want to change. In the **Request
metadata** section, there is a line which shows the authority. Click the
@@ -285,7 +285,7 @@ You can hide an entire request. Typically you do this if it's not a valid
Freedom of Information request (for example, a request for personal
information), or if it is vexatious.
-Go to the <a href="{{ site.baseurl }}docs/glossary/#admin" class="glossary__link">admin interface</a>,
+Go to the <a href="{{ page.baseurl }}/docs/glossary/#admin" class="glossary__link">admin interface</a>,
click on **Requests**, then click on the title of the request you want. You can
hide it in one of two ways:
@@ -344,12 +344,12 @@ destroyed as well.
<a href="#hiding-a-request">hide the request</a> instead.
</div>
-Go to the <a href="{{ site.baseurl }}docs/glossary/#admin" class="glossary__link">admin interface</a>,
+Go to the <a href="{{ page.baseurl }}/docs/glossary/#admin" class="glossary__link">admin interface</a>,
click on **Requests**, then click on the title of the request you want to delete.
Click the **Edit metadata** button. Click on the red **Destroy request entirely**
button at the bottom of the page.
Responses to a deleted request will be sent to the
-<a href="{{ site.baseurl }}docs/glossary/#holding_pen" class="glossary__link">holding pen</a>.
+<a href="{{ page.baseurl }}/docs/glossary/#holding_pen" class="glossary__link">holding pen</a>.
diff --git a/docs/running/server.md b/docs/running/server.md
index da1312ac3..4a36aff41 100644
--- a/docs/running/server.md
+++ b/docs/running/server.md
@@ -25,7 +25,7 @@ ask us about hosting.
## Cron jobs
Don't forget to set up the cron jobs as outlined in the
-[installation instructions]({{ site.baseurl }}docs/installing/manual_install/).
+[installation instructions]({{ page.baseurl }}/docs/installing/manual_install/).
## Webserver configuration
@@ -34,7 +34,7 @@ We recommend running your site behind
[Passenger](https://www.phusionpassenger.com) or [Nginx](http://wiki.nginx.org/Main) + [Thin](http://code.macournoyer.com/thin/).
If you're using Passenger, refer to the
-[installation instructions]({{ site.baseurl }}docs/installing/manual_install/)
+[installation instructions]({{ page.baseurl }}/docs/installing/manual_install/)
regarding `PassengerMaxPoolSize`, which you should
experiment with to match your available RAM. It is very unlikely that you'll
ever need a pool larger than [Passenger's
@@ -47,23 +47,23 @@ Alaveteli ships with a
## Security
-You _must_ change all key-related [config settings]({{ site.baseurl }}docs/customising/config/)
+You _must_ change all key-related [config settings]({{ page.baseurl }}/docs/customising/config/)
in `general.yml` from their default values. This includes (but may not be limited to!)
these settings:
-* [`INCOMING_EMAIL_SECRET`]({{ site.baseurl }}docs/customising/config/#incoming_email_secret)
-* [`ADMIN_USERNAME`]({{ site.baseurl }}docs/customising/config/#admin_username)
-* [`ADMIN_PASSWORD`]({{ site.baseurl }}docs/customising/config/#admin_password)
-* [`COOKIE_STORE_SESSION_SECRET`]({{ site.baseurl }}docs/customising/config/#cookie_store_session_secret)
-* [`RECAPTCHA_PUBLIC_KEY`]({{ site.baseurl }}docs/customising/config/#recaptcha_public_key)
-* [`RECAPTCHA_PRIVATE_KEY`]({{ site.baseurl }}docs/customising/config/#recaptcha_private_key)
+* [`INCOMING_EMAIL_SECRET`]({{ page.baseurl }}/docs/customising/config/#incoming_email_secret)
+* [`ADMIN_USERNAME`]({{ page.baseurl }}/docs/customising/config/#admin_username)
+* [`ADMIN_PASSWORD`]({{ page.baseurl }}/docs/customising/config/#admin_password)
+* [`COOKIE_STORE_SESSION_SECRET`]({{ page.baseurl }}/docs/customising/config/#cookie_store_session_secret)
+* [`RECAPTCHA_PUBLIC_KEY`]({{ page.baseurl }}/docs/customising/config/#recaptcha_public_key)
+* [`RECAPTCHA_PRIVATE_KEY`]({{ page.baseurl }}/docs/customising/config/#recaptcha_private_key)
You should consider running the admin part of the site over HTTPS. This can be
achieved with rewrite rules that redirect URLs beginning with `/admin`.
## Email configuration
-See the [configuration for exim or postfix]({{ site.baseurl }}docs/installing/email/) for
+See the [configuration for exim or postfix]({{ page.baseurl }}/docs/installing/email/) for
setting up your Mail Transfer Agent (MTA). It is possible to use other MTAs &mdash;
if you use a different one, the documentation there should provide you with
enough information to get started. If this applies to you, please add to the
@@ -77,7 +77,7 @@ deliverability of your email:
href="http://wiki.asrg.sp.am/wiki/Feedback_loop_links_for_some_email_providers">feedback loops</a> with the main email providers
(Hotmail and Yahoo! are recommended)
* Especially if deploying from Amazon EC2, use an external SMTP relay for
- sending outgoing mail. See [Alaveteli EC2 AMI]( {{ site.baseurl }}docs/installing/ami/)
+ sending outgoing mail. See [Alaveteli EC2 AMI]( {{ page.baseurl }}/docs/installing/ami/)
for more suggestions.
## Backup
@@ -85,7 +85,7 @@ deliverability of your email:
Most of the data for the site lives in the production database. The exception
is the raw incoming email data, which is stored on the filesystem, as specified
in the setting
-[`RAW_EMAILS_LOCATION`]({{ site.baseurl }}docs/customising/config/#raw_emails_location)
+[`RAW_EMAILS_LOCATION`]({{ page.baseurl }}/docs/customising/config/#raw_emails_location)
setting in `config/general.yml`.
Refer to the [Postgres
diff --git a/docs/running/upgrading.md b/docs/running/upgrading.md
index 81af8289f..39c18163c 100644
--- a/docs/running/upgrading.md
+++ b/docs/running/upgrading.md
@@ -8,14 +8,14 @@ Upgrading Alaveteli
<p class="lead">
Alaveteli is under active development &mdash; don&rsquo;t let the
version you&rsquo;re running get too far behind our latest
- <a href="{{site.baseurl}}docs/glossary/#release" class="glossary__link">release</a>.
+ <a href="{{ page.baseurl }}/docs/glossary/#release" class="glossary__link">release</a>.
This page describes how to keep your site up to date.
</p>
## How to upgrade the code
* If you're using Capistrano for deployment,
- simply [deploy the code]({{site.baseurl}}docs/installing/deploy/#usage):
+ simply [deploy the code]({{ page.baseurl }}/docs/installing/deploy/#usage):
set the repo and branch in `deploy.yml` to be the version you want.
We recommend you set this to the explicit tag name (for example,
`0.18`, and not `master`) so there's no risk of you accidentally deploying
@@ -24,7 +24,7 @@ Upgrading Alaveteli
## Run the post-deploy script
-Unless you're [using Capistrano for deployment]({{site.baseurl}}docs/installing/deploy/),
+Unless you're [using Capistrano for deployment]({{ page.baseurl }}/docs/installing/deploy/),
you should always run the script `scripts/rails-post-deploy` after each
deployment. This runs any database migrations for you, plus various other
things that can be automated for deployment.
@@ -55,7 +55,7 @@ version numbering when it reaches `1.0.0`.
The developer team policy is that the `master` branch in git should always
contain the latest stable release -- so you'll be up to date if you pull from
the `master` branch. However, on your
-<a href="{{site.baseurl}}docs/glossary/#production" class="glossary__link">production
+<a href="{{ page.baseurl }}/docs/glossary/#production" class="glossary__link">production
site</a>, you should know precisely what version you're running, and deploy
Alaveteli from a [*specific* release
tag](https://github.com/mysociety/alaveteli/releases).
@@ -76,7 +76,7 @@ Patch version increases (e.g. 0.1.2.3 &rarr; 0.1.2.**4**) should not require any
Minor version increases (e.g. 0.1.2.4 &rarr; 0.1.**3**.0) will usually require further action. You should read the [`CHANGES.md`](https://github.com/mysociety/alaveteli/blob/master/doc/CHANGES.md) document to see what's changed since your last deployment, paying special attention to anything in the "Upgrade notes" sections.
Any upgrade may include new translations strings, that is, new or altered messages
-to the user that need translating to your locale. You should visit <a href="{{ site.baseurl }}docs/glossary/#transifex" class="glossary__link">Transifex</a>
+to the user that need translating to your locale. You should visit <a href="{{ page.baseurl }}/docs/glossary/#transifex" class="glossary__link">Transifex</a>
and try to get your translation up to 100% on each new release. Failure to do
so means that any new words added to the Alaveteli source code will appear in
your website in English by default. If your translations didn't make it to the