en: add templates and scripts.
authorThérèse Godefroy <godef.th@free.fr>
Mon, 18 Aug 2014 18:53:35 +0000 (20:53 +0200)
committerThérèse Godefroy <godef.th@free.fr>
Mon, 18 Aug 2014 18:53:35 +0000 (20:53 +0200)
en/kitchen/assemble-all-pages [new file with mode: 0755]
en/kitchen/color-wdiff [new file with mode: 0755]
en/kitchen/confirmation.t.html [new file with mode: 0644]
en/kitchen/footer.html [new file with mode: 0644]
en/kitchen/head.html [new file with mode: 0644]
en/kitchen/index.t.html [new file with mode: 0644]
en/kitchen/infographic.t.html [new file with mode: 0644]
en/kitchen/javascript.html [new file with mode: 0644]
en/kitchen/next_steps.t.html [new file with mode: 0644]
en/kitchen/reformat-html [new file with mode: 0755]
en/kitchen/translist.html [new file with mode: 0644]

diff --git a/en/kitchen/assemble-all-pages b/en/kitchen/assemble-all-pages
new file mode 100755 (executable)
index 0000000..8085524
--- /dev/null
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+## assemble-all-pages -- generate a set of HTML pages with variable parts
+#                        for emailselfdefense.fsf.org
+
+## Synopsis:             assemble-all-pages
+
+## Description
+
+# Each page is built from a template and one or several includes, as usual;
+# in addition, several versions of a page can be built from a single
+# template which contains all the variable parts, by deleting irrelevant
+# text.
+
+# The templates have inclusion markers (similar to SSI directives, except
+# for the lack of "#") to indicate where the constant parts are to be
+# inserted, and deletion markers to identify the borders of each deletion
+# and indicate which page(s) the text between those borders belongs to.
+
+# The script processes all the templates in the working directory and the
+# pages are created in the parent directory.
+
+# Ideally, any modifications should be done to the templates or includes,
+# not to the final pages.
+
+# Templates:  confirmation.t.html
+#             index.t.html  (contains variable parts for mac and windows)
+#             infographic.t.html
+#             next_steps.t.html
+
+# Includes:   footer.html
+#             head.html  (contains 2 alternate sets of keywords)
+#             javascript.html
+#             translist.html
+
+## Graphic-user-interface howto
+
+# - Place the script in the same directory as the templates.
+# - Display this directory in the file browser (do not just unfold the parent
+#   directory) and double-click on the script.
+
+# And if anything goes wrong, you can do a git reset, right?    ;-)
+
+# ===========================================================================
+
+set -e
+set -o pipefail
+
+function close_term () {
+  printf '\n%s' '*** Close the terminal window or press Return.'; read OK
+  test -z "$OK" && exit $1
+}
+
+# Create temporary files.
+names=$(mktemp -t aap.XXXXXX)  || close_or_exit 1
+list=$(mktemp -t aap.XXXXXX)   || close_or_exit 1
+before=$(mktemp -t aap.XXXXXX) || close_or_exit 1
+after=$(mktemp -t aap.XXXXXX)  || close_or_exit 1
+trap 'rm -f "$names" "$list" "$before" "$after"' EXIT
+
+# List all the templates in the working directory.
+if ls *.t.html > $names  2>/dev/null; then
+  sed -i 's,\.t\.html$,,' $names
+else
+  echo "*** There is no template in this directory." && close_term 1
+fi
+
+## Add the includes to the templates.
+
+while read name; do
+  # Make sure there is a blank line before the first include, otherwise
+  # it will not be added properly.
+  sed '1i\\n' $name.t.html > ../$name.html
+  # List the includes.
+  grep '^<!-- include virtual="' ../$name.html |
+  sed 's%^.*include virtual="\([^"]\+\).*$%\1%' > $list
+  # Add the includes.
+  while read include; do
+    sed "1,/^<!-- include virtual=\"$include\"/!d" ../$name.html > $before
+    sed "1,/^<!-- include virtual=\"$include\"/d" ../$name.html > $after
+    if [ -f "$include" ]; then
+      cat $before $include $after > ../$name.html
+    else
+      echo "$include is missing." && exit 1
+    fi
+    sed -i "/^<!-- include virtual=\"$include\"/d" ../$name.html
+  done < $list
+done < $names
+
+## Create mac.html and windows.html from index.html.
+
+cp ../index.html ../mac.html
+cp ../index.html ../windows.html
+# add them to the list of page names.
+echo 'mac' >> $names
+echo 'windows' >> $names
+
+## Remove the irrelevant parts.
+
+while read name ; do
+  # Find out which deletions apply.
+  grep '^<!-- START DELETION' ../$name.html \
+  | grep -v "$name" \
+  | sed 's%^<!-- START DELETION \([0-9][0-9]\),.*$%\1%' > $list
+  echo $name
+  # Delete.
+  while read deletion; do
+    sed -i "/^<!-- START DELETION $deletion/, \
+    /^<!-- END DELETION $deletion/d" ../$name.html
+  done < $list
+  # Remove the markers and any extra blank lines at the end of the page.
+  sed -i '/^<!-- [A-Z]* DELETION/d' ../$name.html
+  sed -i ':a /^\n*$/ {$d; N; ba}' ../$name.html
+done < $names
+
+close_term 0
diff --git a/en/kitchen/color-wdiff b/en/kitchen/color-wdiff
new file mode 100755 (executable)
index 0000000..9d84eee
--- /dev/null
@@ -0,0 +1,106 @@
+#!/bin/bash
+
+# NAME
+#    color-wdiff - visualize differences between text files
+
+# SYNOPSIS
+#    color-wdiff FILE0 FILE1
+
+# DEPENDENCIES
+#    wdiff, reformat-html in $HOME/bin.
+
+# DESCRIPTION
+#    1. If the input files are HTML, they are reformatted, to remove
+#       indentation among other things.
+#    2. The markup is inactivated by replacing angle brackets with the
+#       corresponding entities.
+#    3. The files are compared with wdiff, using options which label
+#       insertions and deletions. The labels are HTML tags with specific
+#       classes.
+#    4. The diff is turned into a valid HTML page by adding the required
+#       markup, plus CSS style for the insertion and deletion classes.
+#
+#    The diff file is created in the directory where FILE0 resides.
+
+# ORIGIN OF THE SCRIPT
+#    This script was extracted from GNUN's GNUmakefile (function
+#    "mark-outdated"), and adapted.
+#    GNUN (http://www.gnu.org/software/gnun/) is under GPLv3.
+
+# =============================================================================
+
+# Command-line arguments
+arg=($1 $2)
+
+set -e
+
+close_term () {
+  printf '\n%s' '*** Close the terminal window or press Return.'; read OK
+  test -z "$OK" && exit $1
+}
+
+f[0]=$(mktemp -t cdif.XXXXXX) || close_or_exit 1
+f[1]=$(mktemp -t cdif.XXXXXX) || close_or_exit 1
+trap 'rm -f "${f[0]}" "${f[1]}"' EXIT
+
+## Prepare the pages to be compared.
+
+for n in 0 1; do
+  # Input a valid file.
+  input=${arg[$n]}
+  if test ! -f "$input" -o ! -s "$input"; then
+    echo "*** color-wdiff - Please enter file $n."; read input
+    input=${input%\'}; input=${input#\'}
+    test -f "$input" -a -s "$input" \
+    || (echo 1>&2 "!!! This file doesn't exist or is empty."; close_term 1)
+  fi
+
+  # Name the diff after file 0.
+  test "$n" == "0" && diff_file=${input%.html}-diff.html
+
+  # If the file is an HTML but not a diff, process it:
+  if test "${input%.html}" != "$input" -a "${input%-diff.html}" == "$input";
+  then
+    # - Standardize the format for easier reading of the diff.
+    if test -f "$HOME/bin/reformat-html"; then
+      $HOME/bin/reformat-html $input ${f[$n]}
+    else
+      cp $input ${f[$n]}
+    fi
+    # - Replace chevrons with HTML entities. The page becomes simple text.
+    sed -i "s/</\&lt;/g;s/>/\&gt;/g" ${f[$n]}
+  fi
+done
+
+## Build the diff page.
+
+# Add an HTML header to the wdiff output, with style for visualizing the
+# insertions and deletions, and write the title of the page.
+cat > $diff_file << EOF
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<!-- Generated by GNUN -->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<title>${diff_file##*\/}</title>
+<style type="text/css">
+span.removed { background-color: #f22; color: #000; }
+span.inserted { background-color: #2f2; color: #000; }
+</style></head>
+<body><pre>
+EOF
+
+# Run wdiff with options to add the proper markup at the beginning and end of
+# deletions and insertions.
+wdiff --start-delete '<span class="removed"><del><strong>' \
+      --end-delete '</strong></del></span>' \
+      --start-insert '<span class="inserted"><ins><em>' \
+      --end-insert '</em></ins></span>' \
+      ${f[0]} ${f[1]} >> $diff_file || true
+
+# Add the closing tags.
+echo '</pre></body></html>' >> ${diff_file}
+
+echo -e "\n    The diff file is $diff_file."
+close_term 0
diff --git a/en/kitchen/confirmation.t.html b/en/kitchen/confirmation.t.html
new file mode 100644 (file)
index 0000000..83da58f
--- /dev/null
@@ -0,0 +1,40 @@
+<!-- include virtual="head.html" -->
+
+<header class="row centered" id="header"><div>
+
+<p><strong>Please check your email for a confirmation link now. Thanks for joining our
+list!</strong></p>
+
+<p>If you don't receive the confirmation link, send us an email at info@fsf.org to be
+added manually.</p>
+
+<br />
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/section3-try-it-out.png"
+alt="Try it out." /></p>
+
+<br />
+
+<p>Join us on microblogging services for day-to-day updates:</p>
+
+<p style="font-size:150%"> <a href="https://status.fsf.org/fsf"> <img
+src="//static.fsf.org/nosvn/enc-dev0/img/gnu-social.png" class="share-logo"
+alt="[GNU Social]">
+&nbsp;GNU Social </a> |&nbsp; <a href="http://microca.st/fsf"> <img
+src="//static.fsf.org/nosvn/enc-dev0/img/pump.io.png" class="share-logo"
+alt="[Pump.io]">
+&nbsp;Pump.io </a> |&nbsp; <a href="https://www.twitter.com/fsf">Twitter</a> </p>
+
+<p><small><a href="https://www.fsf.org/twitter">Read why GNU Social and Pump.io are better
+than Twitter.</a></small></p>
+
+<hr />
+
+<p class="back" style="font-size:150%">&larr; Return to <a href="index.html">Email
+Self-Defense</a></p>
+
+</div></header><!-- End #header -->
+
+<!-- include virtual="footer.html" -->
+
+<!-- include virtual="javascript.html" -->
diff --git a/en/kitchen/footer.html b/en/kitchen/footer.html
new file mode 100644 (file)
index 0000000..0a97312
--- /dev/null
@@ -0,0 +1,44 @@
+<!-- ~~~~~~~~~ Footer ~~~~~~~~~ -->
+<footer class="row" id="footer"><div>
+<div id="copyright">
+
+<h4><a href="https://u.fsf.org/ys"><img
+alt="Free Software Foundation" src="//static.fsf.org/nosvn/enc-dev0/img/fsf-logo.png"
+/></a></h4>
+
+<p>Copyright &copy; 2014 <a href="https://u.fsf.org/ys">Free Software Foundation</a>,
+Inc. <a href="https://my.fsf.org/donate/privacypolicy.html">Privacy Policy</a>. <a
+href="https://u.fsf.org/yr">Join.</a></p>
+
+<p><em>Version 3.0. <a
+href="http://agpl.fsf.org/emailselfdefense.fsf.org/edward/CURRENT/edward.tar.gz">Source
+code of Edward reply bot by Josh Drake &lt;zamnedix@gnu.org&gt; available under the GNU
+General Public License.</a></em></p>
+
+<p>The images on this page are under a <a
+href="https://creativecommons.org/licenses/by/4.0/">Creative Commons
+Attribution 4.0 license (or later version)</a>, and the rest of it is under
+a <a href="https://creativecommons.org/licenses/by-sa/4.0">Creative Commons
+Attribution-ShareAlike 4.0 license (or later version)</a>. &mdash; <a
+href="http://www.gnu.org/licenses/license-list.html#OtherLicenses">Why these licenses?</a></p>
+
+<p>Download the source packages for <a href="https://fixme.com">this guide</a> and
+for <a href="https://static.fsf.org/nosvn/enc-dev0/gnupg-infographic.zip">the
+infographic</a>. Fonts used in the guide &amp; infographic: <a
+href="https://www.google.com/fonts/specimen/Dosis">Dosis</a> by Pablo Impallari, <a
+href="http://www.google.com/fonts/specimen/Signika">Signika</a> by Anna Giedry&#347; <a
+href="http://www.google.com/fonts/specimen/Archivo+Narrow">Archivo Narrow</a> by Omnibus-Type,
+<a href="http://www.thegopherarchive.com/gopher-files-hacks-pxl2000-119351.htm">PXL-2000</a>
+by Florian Cramer.</p>
+
+<p> <a href="//weblabels.fsf.org/emailselfdefense.fsf.org/" rel="jslicense"> JavaScript
+license information </a> </p>
+
+</div><!-- /#copyright -->
+
+<p class="credits"> Infographic and guide design by <a rel="external"
+href="http://jplusplus.org"><strong>Journalism++</strong> <img
+src="//static.fsf.org/nosvn/enc-dev0/img/jplusplus.png"
+alt="Journalism++" /></a> </p><!-- /.credits -->
+
+</div></footer><!-- End #footer -->
diff --git a/en/kitchen/head.html b/en/kitchen/head.html
new file mode 100644 (file)
index 0000000..036629d
--- /dev/null
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+
+<title>Autodéfense courriel - un guide pour contrer la surveillance en
+chiffrant avec GnuPG</title>
+
+<!-- START DELETION 90, KEEP IN index mac windows next_steps -->
+<meta name="keywords" content="GnuPG, GPG, openpgp, surveillance, privacy, email, Enigmail" />
+<!-- END DELETION 90 -->
+<!-- START DELETION 91, KEEP IN infographic confirmation -->
+<meta name="keywords" content="GnuPG, GPG, privacy, email, Enigmail" />
+<!-- END DELETION 91 -->
+<meta name="description" content="Email surveillance violates our fundamental rights and makes free speech risky. This guide will teach you email self-defense in 30 minutes with GnuPG." />
+
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<link rel="stylesheet" href="//static.fsf.org/nosvn/enc-dev0/css/main.css" />
+<link rel="shortcut icon" href="//static.fsf.org/nosvn/enc-dev0/img/favicon.ico" />
+</head>
+
+<body>
diff --git a/en/kitchen/index.t.html b/en/kitchen/index.t.html
new file mode 100644 (file)
index 0000000..a442e59
--- /dev/null
@@ -0,0 +1,654 @@
+<!-- include virtual="head.html" -->
+
+<!-- ~~~~~~~~~ GnuPG Header and introduction text ~~~~~~~~~ -->
+<header class="row" id="header"><div>
+
+<h1>Email Self-Defense</h1>
+
+<!-- include virtual="translist.html" -->
+
+<ul id="menu" class="os">
+<!-- START DELETION 01, KEEP IN index -->
+<li class="spacer"><a href="index.html" class="current">GNU/Linux</a></li>
+<li><a href="mac.html">Mac OS</a></li>
+<li><a href="windows.html">Windows</a></li>
+<!-- END DELETION 01 -->
+<!-- START DELETION 02, KEEP IN mac -->
+<li class="spacer"><a href="index.html">GNU/Linux</a></li>
+<li><a href="mac.html" class="current">Mac OS</a></li>
+<li><a href="windows.html">Windows</a></li>
+<!-- END DELETION 02 -->
+<!-- START DELETION 03, KEEP IN windows -->
+<li class="spacer"><a href="index.html">GNU/Linux</a></li>
+<li><a href="mac.html">Mac OS</a></li>
+<li><a href="windows.html" class="current">Windows</a></li>
+<!-- END DELETION 03 -->
+<li class="spacer"><a
+href="https://fsf.org/share?u=https://u.fsf.org/zb&amp;t=Email encryption for everyone via %40fsf">
+Share&nbsp;
+<img src="//static.fsf.org/nosvn/enc-dev0/img/gnu-social.png" class="share-logo"
+alt="[GNU Social]" />&nbsp;
+<img src="//static.fsf.org/nosvn/enc-dev0/img/pump.io.png" class="share-logo"
+alt="[Pump.io]" />&nbsp;
+<img src="//static.fsf.org/nosvn/enc-dev0/img/reddit-alien.png" class="share-logo"
+alt="[Reddit]" />&nbsp;
+<img src="//static.fsf.org/nosvn/enc-dev0/img/hacker-news.png" class="share-logo"
+alt="[Hacker News]" /></a></li>
+</ul>
+
+<!-- ~~~~~~~~~ FSF Introduction ~~~~~~~~~ -->
+<div id="fsf-intro">
+
+<h3><a href="http://u.fsf.org/ys"><img
+alt="Free Software Foundation"
+src="//static.fsf.org/nosvn/enc-dev0/img/fsf-logo.png" /></a></h3>
+
+<div class="fsf-emphasis">
+
+<p> We fight for computer users' rights, and promote the development of free (as in freedom) software. Resisting bulk surveillance is very important to us. </p>
+
+<p><strong>We want to translate this guide into more languages, and make a version for encryption on mobile devices. Please donate, and help people around the world take the first step towards protecting their privacy with free software.</strong></p>
+
+</div>
+
+<p><a href="https://crm.fsf.org/civicrm/contribute/transact?reset=1&amp;id=14&amp;pk_campaign=email_self_defense&amp;pk_kwd=guide_donate"><img
+alt="Donate"
+src="//static.fsf.org/nosvn/enc-dev0/img/en/donate.png" /></a></p>
+
+</div><!-- End #fsf-intro -->
+
+<!-- ~~~~~~~~~ Guide Introduction ~~~~~~~~~ -->
+<div class="intro">
+
+<p><a id="infographic" href="infographic.html"><img
+src="//static.fsf.org/nosvn/enc-dev0/img/en/infographic-button.png"
+alt="View &amp; share our infographic &rarr;" /></a> Bulk surveillance violates our fundamental rights and makes free speech risky. This guide will teach you a basic surveillance self-defense skill: email encryption. Once you've finished, you'll be able to send and receive emails that are coded to make sure a surveillance agent or thief intercepting your email can't read it. All you need is a computer with an Internet connection, an email account, and about half an hour.</p>
+
+<p>Even if you have nothing to hide, using encryption helps protect the privacy of people you communicate with, and makes life difficult for bulk surveillance systems. If you do have something important to hide, you're in good company; these are the same tools that Edward Snowden used to share his famous secrets about the NSA.</p>
+
+<p>In addition to using encryption, standing up to surveillance requires fighting politically for a <a href="http://gnu.org/philosophy/surveillance-vs-democracy.html">reduction in the amount of data collected on us</a>, but the essential first step is to protect yourself and make surveillance of your communication as difficult as possible. Let's get started!</p>
+
+</div><!-- End .intro -->
+</div></header><!-- End #header -->
+
+<!-- ~~~~~~~~~ Section 1: Get the pieces ~~~~~~~~~ -->
+<section class="row" id="section1"><div>
+
+<!-- ~~~~~~~~~ section introduction: interspersed text ~~~~~~~~~ -->
+<div class="section-intro">
+
+<h2><em>#1</em> Get the pieces</h2>
+
+<!-- START DELETION 04, KEEP IN index -->
+<p class="notes">This guide relies on software which is freely licensed; it's completely transparent and anyone can copy it or make their own version. This makes it safer from surveillance than proprietary software (like Windows). Learn more about free software at <a href="https://u.fsf.org/ys">fsf.org</a>.</p>
+
+<p>Most GNU/Linux operating systems come with GnuPG installed on them, so you don't have to download it. Before configuring GnuPG though, you'll need a desktop email program installed on your computer. Most GNU/Linux distributions have a free software version of the Thunderbird email program available to install. This guide will work with them, in addition to Thunderbird itself. Email programs are another way to access the same email accounts you can access in a browser (like Gmail), but provide extra features.</p>
+<!-- END DELETION 04 -->
+<!-- START DELETION 05, KEEP IN mac windows --> 
+<p class="notes">This guide relies on software which is freely licensed; it's completely transparent and anyone can copy it or make their own version. This makes it safer from surveillance than proprietary software (like Mac OS). To defend your freedom as well as protect yourself from surveillance, we recommend you switch to a free software operating system like GNU/Linux. Learn more about free software at <a href="https://u.fsf.org/ys">fsf.org</a>.</p>
+
+<p>To get started, you'll need a desktop email program installed on your computer. This guide works with free software versions of the Thunderbird email program, and with Thunderbird itself. Email programs are another way to access the same email accounts you can access in a browser (like Gmail), but provide extra features.</p>
+<!-- END DELETION 05 -->
+
+<p>If you already have an email program, you can skip to <a href="#step-1b">Step 1.b</a>.</p>
+
+</div><!-- End .section-intro -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-1a" class="step">
+<div class="sidebar">
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step1a-install-wizard.png"
+alt="Step 1.A: Install Wizard" /></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3><em>Step 1.a</em> Setup your email program with your email account</h3>
+
+<p>Open your email program and follow the wizard (step-by-step walkthrough) that sets it up with your email account.</p>
+
+<!-- ~~~~~~~~~ Troubleshooting ~~~~~~~~~ -->
+<div class="troubleshooting">
+
+<h4>Troubleshooting</h4>
+
+<dl>
+<dt>The wizard doesn't launch</dt>
+
+<dd>You can launch the wizard yourself, but the menu option for doing so is named differently in each email programs. The button to launch it will be in the program's main menu, under "New" or something similar, titled something like "Add account" or "New/Existing email account."</dd>
+
+<dt>The wizard can't find my account or isn't downloading my mail</dt>
+
+<dd>Before searching the Web, we recommend you start by asking other people who use your email system, to figure out the correct settings.</dd>
+
+<dt class="feedback">Don't see a solution to your problem?</dt>
+
+<dd class="feedback">Please let us know on the <a href="https://libreplanet.org/wiki/GPG_guide/Public_Review">feedback page</a>.</dd>
+</dl>
+
+</div><!-- /.troubleshooting -->
+</div><!-- End .main -->
+</div><!-- End #step1-a .step -->
+
+<!-- START DELETION 06, KEEP IN mac --> 
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-1b" class="step">
+<div class="main">
+
+<h3><em>Step 1.b</em> Get GnuPG by downloading GPGTools</h3>
+
+<p>GPGTools is a software package that includes GnuPG. <a href="https://releases.gpgtools.org/GPG%20Suite%20-%202013.10.22.dmg">Download</a> and install it, choosing default options whenever asked. After it's installed, you can close any windows that it creates.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step1-b .step -->
+<!-- END DELETION 06 -->
+<!-- START DELETION 07, KEEP IN windows --> 
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-1b" class="step">
+<div class="main">
+
+<h3><em>Step 1.b</em> Get GnuPG by downloading GPG4Win</h3>
+
+<p>GPG4Win is a software package that includes GnuPG. <a href="http://files.gpg4win.org/gpg4win-2.2.1.exe">Download</a> and install it, choosing default options whenever asked. After it's installed, you can close any windows that it creates.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step1-b .step -->
+<!-- END DELETION 07 -->
+<!-- START DELETION 08, KEEP IN index --> 
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-1b" class="step">
+<div class="sidebar">
+<ul class="images">
+<li><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step1b-01-tools-addons.png"
+alt="Step 1.B: Tools -> Add-ons" /></li>
+<li><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step1b-02-search.png"
+alt="Step 1.B: Search Add-ons" /></li>
+<li><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step1b-03-install.png"
+alt="Step 1.B: Install Add-ons" /></li>
+</ul>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3><em>Step 1.b</em> Install the Enigmail plugin for your email program</h3>
+<!-- END DELETION 08 -->
+<!-- START DELETION 09, KEEP IN mac windows --> 
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-1c" class="step">
+<div class="sidebar">
+<ul class="images">
+<li><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step1b-01-tools-addons.png"
+alt="Step 1.C: Tools -> Add-ons" /></li>
+<li><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step1b-02-search.png"
+alt="Step 1.C: Search Add-ons" /></li>
+<li><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step1b-03-install.png"
+alt="Step 1.C: Install Add-ons" /></li>
+</ul>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3><em>Step 1.c</em> Install the Enigmail plugin for your email program</h3>
+<!-- END DELETION 09 -->
+
+<p>In your email program's menu, select Add-ons (it may be in the Tools section). Make sure Extensions is selected on the left. Do you see Enigmail? If so, skip this step.</p>
+
+<p>If not, search "Enigmail" with the search bar in the upper right. You can take it from here. Restart your email program when you're done.</p>
+
+<!-- ~~~~~~~~~ Troubleshooting ~~~~~~~~~ -->
+<div class="troubleshooting">
+
+<h4>Troubleshooting</h4>
+
+<dl>
+<dt>I can't find the menu.</dt>
+
+<dd>In many new email programs, the main menu is represented by an image of three stacked horizontal bars.</dd>
+
+<dt class="feedback">Don't see a solution to your problem?</dt>
+
+<dd class="feedback">Please let us know on the <a href="https://libreplanet.org/wiki/GPG_guide/Public_Review">feedback page</a>.</dd>
+</dl>
+
+</div><!-- /.troubleshooting -->
+</div><!-- End .main -->
+</div><!-- End #step-1b .step -->
+</div></section><!-- End #section1 -->
+
+<!-- ~~~~~~~~~ Section 2: Make your keys ~~~~~~~~~ -->
+<section class="row" id="section2"><div>
+
+<!-- ~~~~~~~~~ section introduction: interspersed text ~~~~~~~~~ -->
+<div class="section-intro">
+
+<h2><em>#2</em> Make your keys</h2>
+
+<p>To use the GnuPG system, you'll need a public key and a private key (known together as a keypair). Each is a long string of randomly generated numbers and letters that are unique to you. Your public and private keys are linked together by a special mathematical function.</p>
+
+<p>Your public key isn't like a physical key, because it's stored in the open in an online directory called a keyserver. People download it and use it, along with GnuPG, to encrypt emails they send to you. You can think of the keyserver as phonebook, where people who want to send you an encrypted email look up your public key.</p>
+
+<p>Your private key is more like a physical key, because you keep it to yourself (on your computer). You use GnuPG and your private key to decode encrypted emails other people send to you.</p>
+
+</div><!-- End .section-intro -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-2a" class="step">
+<div class="sidebar">
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/step2a-01-make-keypair.png"
+alt="Step 2.A: Make a Keypair" /></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3><em>Step 2.a</em> Make a keypair</h3>
+
+<p>The Enigmail Setup wizard may start automatically. If it doesn't, select Enigmail &rarr; Setup Wizard from your email program's menu. You don't need to read the text in the window that pops up unless you'd like to, but it's good to read the text on the later screens of the wizard. Click Next with the default options selected, except in these instances:</p>
+
+<ul>
+<li>On the second screen, titled "Encryption," select "Encrypt all of my messages by default, because privacy is critical to me."</li>
+<li>On the third screen, titled "Signing," select "Don't sign my messages by default."</li>
+<li>On the fourth screen, titled "Key Selection," select "I want to create a new key pair for signing and encryption my email."</li>
+<li>On the screen titled "Create Key," pick a strong password! Your password should be at least 12 characters and include at least one lower case and upper case letter and at least one number or punctuation symbol. Don't forget the password, or all this work will be wasted!</li>
+</ul>
+
+<p class="notes">The program will take a little while to finish the next step, the "Key Creation" screen. While you wait, do something else with your computer, like watching a movie or browsing the Web. The more you use the computer at this point, the faster the key creation will go.</p>
+
+<p>When the "Key Generation Completed" screen pops up, select Generate Certificate and choose to save it in a safe place on your computer (we recommend making a folder called "Revocation Certificate" in your home folder and keeping it there). You'll learn more about the revocation certificate in <a href="#section5">Section 5</a>.</p>
+
+<!-- ~~~~~~~~~ Troubleshooting ~~~~~~~~~ -->
+<div class="troubleshooting">
+
+<h4>Troubleshooting</h4>
+
+<dl>
+<dt>I can't find the Enigmail menu.</dt>
+
+<dd>In many new email programs, the main menu is represented by an image of three stacked horizontal bars. Enigmail may be inside a section called Tools.</dd>
+
+<!-- START DELETION 10, KEEP IN index -->
+<dt>The wizard says that it cannot find GnuPG.</dt>
+
+<dd>Open whatever program you usually use for installing software, and search for GnuPG, then install it. Then restart the Enigmail setup wizard by going to Enigmail &rarr; Setup Wizard.</dd>
+
+<!-- END DELETION 10 -->
+<dt class="feedback">Don't see a solution to your problem?</dt>
+
+<dd class="feedback">Please let us know on the <a href="https://libreplanet.org/wiki/GPG_guide/Public_Review">feedback page</a>.</dd>
+</dl>
+
+</div><!-- /.troubleshooting -->
+</div><!-- End .main -->
+</div><!-- End #step-2a .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-2b" class="step">
+<div class="main">
+
+<h3><em>Step 2.b</em> Upload your public key to a keyserver</h3>
+
+<p>In your email program's menu, select Enigmail &rarr; Key Management.</p>
+
+<p>Right click on your key and select Upload Public Keys to Keyserver. Use the default keyserver in the popup.</p>
+
+<p class="notes">Now someone who wants to send you an encrypted message can download your public key from the Internet. There are multiple keyservers that you can select from the menu when you upload, but they are all copies of each other, so it doesn't matter which one you use. However, it sometimes takes a few hours for them to match each other when a new key is uploaded.</p>
+
+<!-- ~~~~~~~~~ Troubleshooting ~~~~~~~~~ -->
+<div class="troubleshooting">
+
+<h4>Troubleshooting</h4>
+
+<dl>
+<dt>The progress bar never finishes.</dt>
+
+<dd>Close the upload popup, make sure you are connected to the Internet, and try again. If that doesn't work, try again, selecting a different keyserver.</dd>
+
+<dt>My key doesnt appear in the list</dt>
+
+<dd>Try checking "Display All Keys by Default."</dd>
+
+<dt class="feedback">Don't see a solution to your problem?</dt>
+
+<dd class="feedback">Please let us know on the <a href="https://libreplanet.org/wiki/GPG_guide/Public_Review">feedback page</a>.</dd>
+</dl>
+
+</div><!-- /.troubleshooting -->
+</div><!-- End .main -->
+</div><!-- End #step-2b .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="terminology" class="step">
+<div class="main">
+
+<h3>GnuPG, OpenPGP, what?</h3>
+
+<p>In general, the terms GnuPG, GPG, GNU Privacy Guard, OpenPGP and PGP are used interchangeably. Technically, OpenPGP (Pretty Good Privacy) is the encryption standard, and GNU Privacy Guard (often shortened to GPG or GnuPG) is the program that implements the standard. Enigmail is a plug-in program for your email program that provides an interface for GnuPG.</p>
+
+</div><!-- End .main -->
+</div><!-- End #terminology.step-->
+</div></section><!-- End #section2 -->
+
+<!-- ~~~~~~~~~ Section 3: Try it out ~~~~~~~~~ -->
+<section class="row" id="section3"><div>
+
+<!-- ~~~~~~~~~ section introduction: interspersed text ~~~~~~~~~ -->
+<div class="section-intro">
+
+<h2><em>#3</em> Try it out!</h2>
+
+<p>Now you'll try a test correspondence with a computer program named Edward, which knows how to use encryption. Except where noted, these are the same steps you'd follow when corresponding with a real, live person.</p>
+
+</div><!-- End .section-intro -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-3a" class="step">
+<div class="sidebar">
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/section3-try-it-out.png"
+alt="Try it out." /></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3><em>Step 3.a</em> Send Edward your public key</h3>
+
+<p>This is a special step that you won't have to do when corresponding with real people. In your email program's menu, go to Enigmail &rarr; Key Management. You should see your key in the list that pops up. Right click on your key and select Send Public Keys by Email. This will create a new draft message, as if you had just hit the Write button.</p>
+
+<p>Address the message to edward-en@fsf.org. Put at least one word (whatever you want) in the subject and body of the email. Then hit send.</p>
+
+<p>There should be an icon of a yellow key in the bottom right of the composition window. This means that encryption is on, however, we want this first special message to Edward to be unencrypted. Click the key icon once to turn encryption off. The key should become grey, with a blue dot on it (to alert you that the setting has been changed from the default). Once encryption is off, hit Send.</p>
+
+<p class="notes">It may take two or three minutes for Edward to respond. In the meantime, you might want to skip ahead and check out the <a href="#section5">Use it Well</a> section of this guide. Once he's responded, head to the next step. From here on, you'll be doing just the same thing as when corresponding with a real person.</p>
+
+<p>When you open Edward's reply, Enigmail may prompt you for your password before using your private key to decrypt it.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-3a .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-3b" class="step">
+<div class="main">
+
+<h3><em>Step 3.b</em> Send a test encrypted email</h3>
+
+<p>Write a new email in your email program, addressed to edward-en@fsf.org. Make the subject "Encryption test" or something similar and write something in the body.</p>
+
+<p>They key in the bottom right of the window should be yellow, meaning encryption is on. This will be your default from now on.</p>
+
+<p class="notes">Next to the key, you'll notice an icon of a pencil. Clicking this tells Enigmail to add a special, unique signature to your message, generated using your private key. This is a separate feature from encryption, and you don't have to use it for this guide.</p>
+
+<p>Click Send. Enigmail will pop up a window that says "Recipients not valid, not trusted or not found."</p>
+
+<p>To encrypt an email to Edward, you need his public key, so now you'll have Enigmail download it from a keyserver. Click Download Missing Keys and use the default in the pop-up that asks you to choose a keyserver. Once it finds keys, check the first one (Key ID starting with C), then select ok. Select ok in the next pop-up.</p>
+
+<p>Now you are back at the "Recipients not valid, not trusted or not found" screen. Check the box in front of Edward's key and click Send.</p>
+
+<p class="notes">Since you encrypted this email with Edward's public key, Edward's private key is required to decrypt it. Edward is the only one with his private key, so no one except him &mdash; not even you &mdash; can decrypt it.</p>
+
+<!-- ~~~~~~~~~ Troubleshooting ~~~~~~~~~ -->
+<div class="troubleshooting">
+
+<h4>Troubleshooting</h4>
+
+<dl>
+<dt>Enigmail can't find Edward's key</dt>
+
+<dd>Close the pop-ups that have appeared since you clicked Send. Make sure you are connected to the Internet and try again. If that doesn't work, repeat the process, choosing a different keyserver when it asks you to pick one.</dd>
+
+<dt class="feedback">Don't see a solution to your problem?</dt>
+
+<dd class="feedback">Please let us know on the <a href="https://libreplanet.org/wiki/GPG_guide/Public_Review">feedback page</a>.</dd>
+</dl>
+
+</div><!-- /.troubleshooting -->
+</div><!-- End .main -->
+</div><!-- End #step-3b .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-headers_unencrypted" class="step">
+<div class="main">
+
+<h3><em>Important:</em> Security tips</h3>
+
+<p>Even if you encrypted your email, the subject line is not encrypted, so don't put private information there. The sending and receiving addresses aren't encrypted either, so they could be read by a surveillance system. When you send attachments, Enigmail will give you an option of whether you want to encrypt them.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-headers_unencrypted .step-->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-3c" class="step">
+<div class="main">
+
+<h3><em>Step 3.c</em> Receive a response</h3>
+
+<p>When Edward receives your email, he will use his private key to decrypt it, then use your public key (which you sent him in <a href="#step-3a">Step 3.A</a>) to encrypt his reply to you.</p>
+
+<p class="notes">It may take two or three minutes for Edward to respond. In the meantime, you might want to skip ahead and check out the <a href="#section5">Use it Well</a> section of this guide.</p>
+
+<p>When you receive Edward's email and open it, Enigmail will automatically detect that it is encrypted with your public key, and then it will use your private key to decrypt it.</p>
+
+<p>Notice the bar that Enigmail shows you above the message, with information about the status of Edward's key.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-3c .step -->
+
+<!-- STEP 3D IS COMMENTED OUT UNTIL WE FIND A WAY TO VALIDATE SIGNATURES <div id="step-3d" class="step">
+<div class="main">
+
+<h3><em>Step 3.d</em> Send a test signed email to a friend</h3>
+
+<p>Write a new email in your email program, addressed to a friend. If you want, tell them about this guide!</p>
+
+<p>Before sending the email, click the icon of the pencil in the bottom right of the composition window (it should turn yellow). This tells Enigmail to sign the email with you private key.</p>
+
+<p>After you click send, Enigmail will ask you for your password. It will do this any time it needs to use your public key.</p>
+
+</div>
+</div>-->
+</div></section><!-- End #section3 -->
+
+<!-- ~~~~~~~~~ Section 4: Learn the Web of Trust ~~~~~~~~~ -->
+<section class="row" id="section4"><div>
+
+<!-- ~~~~~~~~~ section introduction: interspersed text ~~~~~~~~~ -->
+<div class="section-intro">
+
+<h2><em>#4</em> Learn the Web of Trust</h2>
+
+<p>Email encryption is a powerful technology, but it has a weakness; it requires a way to verify that a person's public key is actually theirs. Otherwise, there would be no way to stop an attacker from making an email address with your friend's name, creating keys to go with it and impersonating your friend. That's why the free software programmers that developed email encryption created keysigning and the Web of Trust.</p>
+
+<p>When you sign someone's key, you are publicly saying that you trust that it does belong to them and not an impostor. People who use your public key can see the number of signatures it has. Once you've used GnuPG for a long time, you may have hundreds of signatures. The Web of Trust is the constellation of all GnuPG users, connected to each other by chains of trust expressed through signatures, forming a giant network. The more signatures a key has, and the more signatures its signers' keys have, the more trustworthy that key is.</p>
+
+<p>People's public keys are usually identified by their key fingerprint, which is a string of digits like F357AA1A5B1FA42CFD9FE52A9FF2194CC09A61E8 (for Edward's key). You can see the fingerprint for your public key, and other public keys saved on your computer, by going to Enigmail &rarr; Key Management in your email program's menu, then right clicking on the key and choosing Key Properties. It's good practice to share your fingerprint wherever you share your email address, so that people can double-check that they have the correct public key when they download yours from a keyserver.</p>
+
+<p class="notes">You may also see public keys referred to by their key ID, which is simply the last 8 digits of the fingerprint, like C09A61E8 for Edward. The key ID is visible directly from the Key Management window. This key ID is like a person's first name (it is a useful shorthand but may not be unique to a given key), whereas the fingerprint actually identifies the key uniquely without the possibility of confusion. If you only have the key ID, you can still look up the key (as well as its fingerprint), like you did in Step 3, but if multiple options appear, you'll need the fingerprint of the person to whom are trying to communicate to verify which one to use.</p>
+
+</div><!-- End .section-intro -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-4a" class="step">
+<div class="sidebar">
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/section4-web-of-trust.png"
+alt="Section 4: Web of Trust" /></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3><em>Step 4.a</em> Sign a key</h3>
+
+<p>In your email program's menu, go to Enigmail &rarr; Key Management.</p>
+
+<p>Right click on Edward's public key and select Sign Key from the context menu.</p>
+
+<p>In the window that pops up, select "I will not answer" and click ok.</p>
+
+<p>Now you should be back at the Key Management menu. Select Keyserver &rarr; Upload Public Keys and hit ok.</p>
+
+<p class="notes">You've just effectively said "I trust that Edward's public key actually belongs to Edward." This doesn't mean much because Edward isn't a real person, but it's good practice.</p>
+
+<!--<div id="pgp-pathfinder">
+
+<form enctype="application/x-www-form-urlencoded" action="/mk_path.cgi" method="get">
+
+<p><strong>From:</strong>
+<input type="text" placeholder="xD41A008" name="FROM"></p>
+
+<p><strong>To:</strong>
+<input type="text" placeholder="50BD01x4" name="TO"></p>
+
+<p class="buttons"><input type="submit" value="trust paths" name="PATHS">
+<input type="reset" value="reset" name=".reset"></p>
+
+</form>
+
+</div><!-- End #pgp-pathfinder -->
+</div><!-- End .main -->
+</div><!-- End #step-4a .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-sign_real_keys" class="step">
+<div class="main">
+
+<h3><em>Important:</em> check people's identification before signing their keys</h3>
+
+<p>Before signing a real person's key, always make sure it actually belongs to them, and that they are who they say they are. Ask them to show you their ID (unless you trust them very highly) and their public key fingerprint -- not just the shorter public key ID, which could refer to another key as well. In Enigmail, answer honestly in the window that pops up and asks "How carefully have you verified that the key you are about to sign actually belongs to the person(s) named above?".</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-sign_real_keys .step-->
+</div></section><!-- End #section4 -->
+
+<!-- ~~~~~~~~~ Section 5: Use it well ~~~~~~~~~ -->
+<section id="section5" class="row"><div>
+
+<!-- ~~~~~~~~~ section introduction: interspersed text ~~~~~~~~~ -->
+<div class="section-intro">
+
+<h2><em>#5</em> Use it well</h2>
+
+<p>Everyone uses GnuPG a little differently, but it's important to follow some basic practices to keep your email secure. Not following them, you risk the privacy of the people you communicate with, as well as your own, and damage the Web of Trust.</p>
+
+</div><!-- End .section-intro -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-5a" class="step">
+<div class="sidebar">
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/section5-01-use-it-well.png"
+alt="Section 5: Use it Well (1)" /></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3>When should I encrypt?</h3>
+
+<p>The more you can encrypt your messages, the better. If you only encrypt emails occasionally, each encrypted message could raise a red flag for surveillance systems. If all or most of your email is encrypted, people doing surveillance won't know where to start.</p>
+
+<p>That's not to say that only encrypting some of your email isn't helpful -- it's a great start and it makes bulk surveillance more difficult.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-5a .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-5b" class="step">
+<div class="sidebar">
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/section5-02-use-it-well.png"
+alt="Section 5: Use it Well (2)" /></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3><em>Important:</em> Be wary of invalid keys</h3>
+
+<p>GnuPG makes email safer, but it's still important to watch out for invalid keys, which might have fallen into the wrong hands. Email encrypted with invalid keys might be readable by surveillance programs.</p>
+
+<p>In your email program, go back to the second email that Edward sent you. Because Edward encrypted it with your public key, it will have a message from Enigmail at the top, which most likely says "Enigmail: Part of this message encrypted."</p>
+
+<p><b>When using GnuPG, make a habit of glancing at that bar. The program will warn you there if you get an email encrypted with a key that can't be trusted.</b></p>
+
+</div><!-- End .main -->
+</div><!-- End #step-5b .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-5c" class="step">
+<div class="main">
+
+<h3>Copy your revocation certificate to somewhere safe</h3>
+
+<p>Remember when you created your keys and saved the revocation certificate that GnuPG made? It's time to copy that certificate onto the safest digital storage that you have -- the ideal thing is a flash drive, disk, or hard drive stored in a safe place in your home.</p>
+
+<p>If your private key ever gets lost or stolen, you'll need this certificate file to let people know that you are no longer using that keypair.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-5c .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-lost_key" class="step">
+<div class="main">
+
+<h3><em>Important:</em> act swiftly if someone gets your private key</h3>
+
+<p>If you lose your private key or someone else gets ahold of it (say, by stealing or cracking your computer), it's important to revoke it immediately before someone else uses it to read your encrypted email. This guide doesn't cover how to revoke a key, but you can follow the <a href="https://www.gnupg.org/gph/en/manual.html#AEN305">instructions on the GnuPG site</a>. After you're done revoking, send an email to everyone with whom you usually use your key to make sure they know.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-lost_key .step-->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~
+<div id="step-5d" class="step">
+<div class="main">
+
+<h3>Make your public key part of your online identity</h3>
+
+<p> First add your public key fingerprint to your email signature, then compose an email to at least five of your friends, telling them you just set up GnuPG and mentioning your public key fingerprint. Link to this guide and ask them to join you. Don't forget that there's also an awesome <a href="infographic.html">infographic to share.</a></p>
+
+<p class="notes">Start writing your public key fingerprint anywhere someone would see your email address: your social media profiles, blog, Website, or business card. (At the Free Software Foundation, we put ours on our <a href="https://fsf.org/about/staff">staff page</a>.) We need to get our culture to the point that we feel like something is missing when we see an email address without a public key fingerprint.</p>
+
+</div><!-- End .main
+</div> End #step-5d .step-->
+</div></section><!-- End #section5 -->
+
+<!-- ~~~~~~~~~ Section 6: Next steps ~~~~~~~~~ -->
+<section class="row" id="section6">
+<div id="step-click_here" class="step">
+<div class="main">
+
+<h2><a href="next_steps.html">Great job! Check out the next steps.</a></h2>
+
+</div><!-- End .main -->
+</div><!-- End #step-click_here .step-->
+</section><!-- End #section6 -->
+
+<!-- ~~~~~~~~~ FAQ ~~~~~~~~~ -->
+<!-- When un-commenting this section go to main.css and search for /* Guide Sections Background */ then add #faq to the desired color <section class="row" id="faq">
+<div>
+<div class="sidebar">
+
+<h2>FAQ</h2>
+
+</div>
+<div class="main">
+
+<dl>
+<dt>My key expired</dt>
+
+<dd>Answer coming soon.</dd>
+
+<dt>Who can read encrypted messages? Who can read signed ones?</dt>
+
+<dd>Answer coming soon.</dd>
+
+<dt>My email program is opening at times I don't want it to open/is now my default program and I don't want it to be.</dt>
+
+<dd>Answer coming soon.</dd>
+</dl>
+
+</div>
+</div>
+</section> --><!-- End #faq -->
+
+<!-- include virtual="footer.html" -->
+
+<!-- include virtual="javascript.html" -->
diff --git a/en/kitchen/infographic.t.html b/en/kitchen/infographic.t.html
new file mode 100644 (file)
index 0000000..16574fe
--- /dev/null
@@ -0,0 +1,27 @@
+<!-- include virtual="head.html" -->
+
+<header class="row centered" id="header"><div>
+
+<p class="back">&larr; Read the <a href="index.html">full guide</a></p>
+
+<h3> <a href="https://fsf.org/share?u=https://u.fsf.org/zc&amp;t=How&nbsp;public-key encryption works. Infographic via %40fsf"> <img
+src="//static.fsf.org/nosvn/enc-dev0/img/gnu-social.png" class="share-logo"
+alt="[GNU Social]">&nbsp; <img src="//static.fsf.org/nosvn/enc-dev0/img/pump.io.png"
+class="share-logo"
+alt="[Pump.io]">&nbsp;
+<img src="//static.fsf.org/nosvn/enc-dev0/img/reddit-alien.png" class="share-logo"
+alt="[Reddit]">&nbsp; <img src="//static.fsf.org/nosvn/enc-dev0/img/hacker-news.png"
+class="share-logo"
+alt="[Hacker News]">&nbsp;
+Share our infographic </a> with the hashtag #EmailSelfDefense </h3>
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/full-infographic.png"
+alt="View &amp; share our infographic" /></p>
+
+<p class="back">&larr; Read the <a href="index.html">full guide</a></p>
+
+</div></header><!-- End #header -->
+
+<!-- include virtual="footer.html" -->
+
+<!-- include virtual="javascript.html" -->
diff --git a/en/kitchen/javascript.html b/en/kitchen/javascript.html
new file mode 100644 (file)
index 0000000..1ffcab5
--- /dev/null
@@ -0,0 +1,45 @@
+<script src="//static.fsf.org/nosvn/enc-dev0/js/jquery-1.11.0.min.js"></script>
+
+<script src="//static.fsf.org/nosvn/enc-dev0/js/scripts.js"></script>
+
+<!-- Piwik -->
+<script type="text/javascript">
+  /*
+  @licstart The following is the entire license notice for the
+    JavaScript code in this page.
+
+  Copyright 2014 Matthieu Aubry
+
+    This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+    You should have received a copy of the GNU General Public License
+  along with this program.  If not, see http://www.gnu.org/licenses/.
+
+  @licend The above is the entire license notice for the
+    JavaScript code in this page.
+  */
+  var _paq = _paq || [];
+  _paq.push(["setDocumentTitle", document.domain + "/" + document.title]);
+  _paq.push(["setCookieDomain", "*.www.fsf.org"]);
+  _paq.push(["setDomains", ["*.www.fsf.org","*.www.fsf.org"]]);
+  _paq.push(["trackPageView"]);
+  _paq.push(["enableLinkTracking"]);
+  (function() {
+    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://piwik.fsf.org/";
+    _paq.push(["setTrackerUrl", u+"piwik.php"]);
+    _paq.push(["setSiteId", "5"]);
+    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0];
+    g.type="text/javascript"; g.defer=true; g.async=true; g.src=u+"piwik.js";
+    s.parentNode.insertBefore(g,s);
+  })();
+</script><!-- End Piwik code -->
+
+</body>
+</html>
+
diff --git a/en/kitchen/next_steps.t.html b/en/kitchen/next_steps.t.html
new file mode 100644 (file)
index 0000000..4b69526
--- /dev/null
@@ -0,0 +1,207 @@
+<!-- include virtual="head.html" -->
+
+<!-- ~~~~~~~~~ GnuPG Header and introduction text ~~~~~~~~~ -->
+<header class="row" id="header"><div>
+
+<h1>Great job!</h1>
+
+</div></header><!-- End #header -->
+
+<!-- ~~~~~~~~~ Section 6: Next steps ~~~~~~~~~ -->
+<section class="row" id="section6"><div>
+
+<!-- ~~~~~~~~~ section title + graphics ~~~~~~~~~ -->
+<div class="section-intro">
+
+<h2><em>#6</em> Next steps</h2>
+
+<p>You've now completed the basics of email encryption with GnuPG, taking action against
+bulk surveillance. A pat on the back to you! These next steps will help make the most of
+the work you did today.</p>
+
+</div><!-- End .section-intro -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-political" class="step">
+<div class="sidebar">
+
+<p><a id="infographic" href="infographic.html"><img
+src="//static.fsf.org/nosvn/enc-dev0/img/en/infographic-button.png"
+alt="View &amp; share our infographic &rarr;" /></a></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3>Join the movement</h3>
+
+<p>You've just taken a huge step towards protecting your privacy online. But each of us
+acting alone isn't enough. To topple bulk surveillance, we need to build a movement for the
+autonomy and freedom of all computer users. Join the Free Software Foundation's community
+to meet like-minded people and work together for change.</p>
+
+<p style="font-size:150%"> <a href="https://status.fsf.org/fsf"> <img
+src="//static.fsf.org/nosvn/enc-dev0/img/gnu-social.png" class="share-logo"
+alt="[GNU Social]">
+&nbsp;GNU Social </a> |&nbsp; <a href="http://microca.st/fsf"> <img
+src="//static.fsf.org/nosvn/enc-dev0/img/pump.io.png" class="share-logo"
+alt="[Pump.io]">
+&nbsp;Pump.io </a> |&nbsp; <a href="https://www.twitter.com/fsf">Twitter</a> </p>
+
+<p><a href="https://www.fsf.org/twitter"><small>Read why GNU Social and Pump.io are better
+than Twitter.</small></a></p>
+
+<br /> <div class="newsletter">
+
+<p style="font-size:150%">Low-volume mailing list</p>
+
+<form method="post"
+action="https://crm.fsf.org/civicrm/profile/create&amp;reset=1&amp;gid=31">
+<input type="text" placeholder="Type your email..." name="email-Primary" id="frmEmail" />
+<input type="submit" value="Add me" name="_qf_Edit_next" />
+<input type="hidden" value="https://emailselfdefense.fsf.org/en/confirmation.html"
+name="postURL" />
+<input type="hidden" value="1" name="group[25]" />
+<input type="hidden" value="https://crm.fsf.org/civicrm/profile?reset=1&amp;gid=31"
+name="cancelURL" />
+<input type="hidden" value="Edit:cancel" name="_qf_default" />
+</form>
+
+<p><small>Read our <a href="https://my.fsf.org/donate/privacypolicy.html">privacy
+policy</a>.</small></p>
+
+</div><!-- End .newsletter -->
+</div><!-- End .main -->
+</div><!-- End #step-political .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-friends" class="step">
+<div class="main">
+
+<h3>Get your friends involved</h3>
+
+<p><strong>This is the single biggest thing you can do to promote email
+encryption.</strong></p>
+
+<p>Before you close this guide, use <a
+href="https://fsf.org/share?u=https://u.fsf.org/zb&amp;t=Encrypt with me using Email
+Self-Defense %40fsf">our sharing page</a> to compose a message to a few friends
+and ask them to join you in using encrypted email. Remember to include your <a
+href="index.html#section4">GnuPG public key ID</a> so they can easily download your key.</p>
+
+<p>It's also great to add your public key fingerprint to your email signature so that
+people you are corresponding with know you accept encrypted email.</p>
+
+<p class="notes">We recommend you even go a step further and add it to your social media
+profiles, blog, Website, or business card. (At the Free Software Foundation, we put ours
+on our <a href="https://fsf.org/about/staff">staff page</a>.) We need to get our culture
+to the point that we feel like something is missing when we see an email address without
+a public key fingerprint.</p>
+
+</div><!-- End .main -->
+</div><!-- End #step-friends .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-more_technologies" class="step">
+<div class="main">
+
+<h3>Protect more of your digital life</h3>
+
+<p>Learn surveillance-resistant technologies for instant messages, hard drive storage, online
+sharing, and more at <a href="https://directory.fsf.org/wiki/Collection:Privacy_pack">
+the Free Software Directory's Privacy Pack</a> and <a
+href="https://prism-break.org">prism-break.org</a>.</p>
+
+
+
+<p>If you are using Windows, Mac OS or any other proprietary operating system, we recommend
+you switch to a free software operating system like GNU/Linux. This will make it much
+harder for attackers to enter your computer through hidden back doors. Check out the Free
+Software Foundation's <a href="http://www.gnu.org/distros/free-distros.html">endorsed
+versions of GNU/Linux.</a></p>
+
+</div><!-- End .main -->
+</div><!-- End #step-more_technologies .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~ -->
+<div id="step-better" class="step">
+<div class="sidebar">
+
+<p><img src="//static.fsf.org/nosvn/enc-dev0/img/en/screenshots/section6-next-steps.png"
+alt="Section 6: Next Steps" /></p>
+
+ <br />
+
+<p class="back" style="text-align:center">&larr; <a href="index.html">Return to the
+guide</a></p>
+
+</div><!-- /.sidebar -->
+<div class="main">
+
+<h3>Make Email Self-Defense tools even better</h3>
+
+<p><a href="https://libreplanet.org/wiki/GPG_guide/Public_Review">Leave feedback and
+suggest improvements to this guide</a>. We welcome translations, but we ask that you
+contact us at <a href="mailto:campaigns@fsf.org">campaigns@fsf.org</a> before you start,
+so that we can connect you with other translators working in your language.</p>
+
+<p>If you like programming, you can contribute code
+to <a href="https://www.gnupg.org/">GnuPG</a> or <a
+href="https://www.enigmail.net/home/index.php">Enigmail</a>.</p>
+
+<p>To go the extra mile, support the Free Software Foundation so we can keep improving
+Email Self-Defense, and make more tools like it.</p>
+
+<p><a
+href="https://crm.fsf.org/civicrm/contribute/transact?reset=1&amp;id=14&amp;pk_campaign=email_self_defense&amp;pk_kwd=guide_donate"><img
+alt="Donate" src="//static.fsf.org/nosvn/enc-dev0/img/en/donate.png" /></a> </p>
+
+<br />
+</div><!-- End .main -->
+</div><!-- End #step-better .step -->
+
+<!-- ~~~~~~~~~ a div for each step ~~~~~~~~~
+<div id="step-learn_more" class="step">
+<div class="main">
+
+<h3>Learn more about GnuPG</h3>
+
+<p>There are a lot more features of GnuPG to discover, including encrypting files on your
+computer. There are a variety of resources accessible via Google, but we recommend starting
+with the links on the <a href="https://www.gnupg.org/documentation/">GnuPG Web site</a>.</p>
+
+</div><!-- End .main -- </div><!-- End #step-learn_more .step -->
+</div></section><!-- End #section6 -->
+
+<!-- ~~~~~~~~~ FAQ ~~~~~~~~~ -->
+<!-- When un-commenting this section go to main.css and search for /* Guide Sections
+Background */ then add #faq to the desired color
+<section class="row" id="faq"><div>
+<div class="sidebar">
+
+<h2>FAQ</h2>
+
+</div>
+<div class="main">
+
+<dl>
+<dt>My key expired</dt>
+
+<dd>Answer coming soon.</dd>
+
+<dt>Who can read encrypted messages? Who can read signed ones?</dt>
+
+<dd>Answer coming soon.</dd>
+
+<dt>My email program is opening at times I don't want it to open/is now my default program
+and I don't want it to be.</dt>
+
+<dd>Answer coming soon.</dd>
+</dl>
+
+</div>
+</div>
+</section> --><!-- End #faq -->
+
+<!-- include virtual="footer.html" -->
+
+<!-- include virtual="javascript.html" -->
diff --git a/en/kitchen/reformat-html b/en/kitchen/reformat-html
new file mode 100755 (executable)
index 0000000..1d344b9
--- /dev/null
@@ -0,0 +1,147 @@
+#!/bin/bash
+
+# NAME
+#    reformat-html - reformat HTML files from emailselfdefense.fsf.org
+
+# SYNOPSIS
+#    reformat-html /PATH/TO/NAME.html
+
+# GRAPHIC INTERFACE HOWTO
+#    * Launch the script by double-clicking on it; a terminal will open.
+#    * At the prompt, drag and drop the input file into the terminal.
+#
+#    Alternatively (in Gnome, KDE, XFCE, etc.)
+#    * create a launcher for the application menu;
+#    * launch the script from the contextual menu of the HTML file.
+#
+#    The reformatted file is created in the directory where the input file
+#    resides, and its name is NAME-r.html.
+
+#==============================================================================
+
+set -e
+
+# Test whether the script is called from color-wdiff
+p=$(pidof -x color-wdiff) || true
+test "$p" == "$PPID" && called_from_color_wdiff=1
+
+function close_or_exit () {
+# turns off interactivity and lets the terminal close normally if the script
+# is called from color-wdiff.
+
+if test "$called_from_color_wdiff" == "1"; then
+  exit $1
+else
+  if test "$1" == "1"; then
+    echo -e 1>&2 "\n!!! $input doesn't exist or is not an HTML."
+  fi
+  echo -e '\n*** Close the terminal window or press Return.'; read OK
+  test -z "$OK" && exit $1
+fi
+}
+
+# Get a valid HTML as input.
+input=$1
+if test ! -f "$input" -o ! -s "$input"; then
+  echo -e "\n*** reformat-html - Please enter the HTML file."
+  read input
+  input=${input%\'}; input=${input#\'}
+  test -f "$input" -a "${input%.html}" != "$input" || close_or_exit 1
+fi
+
+# Define the output file.
+if test "$called_from_color_wdiff" == "1"; then
+  output=$2
+else
+  output=${input%.html}-r.html
+fi
+
+tmp=$(mktemp -t ref.XXXXXX) || close_or_exit 1
+trap "rm -f $tmp" EXIT
+
+cp $input $tmp
+
+# Remove javascript, which shouldn't be reformatted, leading and trailing
+# spaces/tabs, multiple spaces, LF after </a> and <li>.
+sed -i -e '/jquery-1.11.0.min.js/,$d' \
+       -e 's,\t, ,g'  \
+       -e 's,^ *,,'   \
+       -e 's,  *, ,g' \
+       -e 's, *$,,'   $tmp
+sed -i -e '/<\/a>$/ {N; s,<\/a>\n<,<\/a> <,}' $tmp
+sed -i -e '/^<li/ {N; s,>\n<a ,> <a ,}' $tmp
+
+# One string per paragraph, header or list item.
+for tag in li p strong a h3; do
+  sed -i "/<$tag[^>]*>$/ {N; s,\\n, ,}" $tmp
+done
+for tag in a strong; do
+  sed -i "/<\\/$tag>$/ {N; s,\\n, ,}" $tmp
+done
+# This command may need to be repeated. Adjust the number of repeats. This
+# could be done by looping back to a sed marker, but a while loop seems
+# quicker.
+i=0
+while (( i < 2 )); do
+  sed -i '/[^<>]$/ {N; s,\([^<>]\)\n,\1 ,}' $tmp
+  let i=i+1
+done
+sed -i -e '/ \/>$/ {N; s,\( \/>\)\n,\1 ,}' \
+       -e '/ <a[^>]*>$/ {N; s,\(<a[^>]*>\)\n\([^<]\),\1 \2,}' $tmp
+
+# Make sure there is only one paragraph per string. This command may need to
+# be repeated. Adjust the number of repeats.
+i=0
+while (( i < 2 )); do
+  sed -i 's,</p>\(.\+\)$,</p>\n\1,' $tmp
+  let i=i+1
+done
+
+# Single out the tags which include p (will also work for pre).
+sed -i 's,\(.\)<p,\1\n<p,' $tmp
+
+# Single-out input meta and link.
+for tag in input meta link link; do
+  sed -i "s,> <$tag,>\n<$tag," $tmp
+done
+
+# Remove leading and trailing spaces, double spaces and blank lines.
+# Fuse comment with </p>; separate truncated "~~~" comment from fused tag.
+sed -i -e 's,^ *,,'  \
+       -e 's, *$,,'  \
+       -e 's,  , ,g' \
+       -e '/^$/d'    \
+       -e '/<\/p>$/ {N;s,\n\(<!-- [^~]\),\1,}' \
+       -e 's,~~~[ ]\?[-]\?[-]\?[ ]\?<,~~~\n<,' $tmp
+
+# Fuse header, section and footer with the corresponding div.
+for tag in header section footer; do
+  sed -i "/^<$tag/ {N; s,\\(<$tag[^>]*>\\)\\n<div>,\\1<div>,}" $tmp
+  sed -i "/^<\\/div>$/ {N; s,<\\/div>\\n\\(<\\/$tag>\\),</div>\\1,}" $tmp
+done
+
+# Add LF before main sections and commented-out parts.
+sed -i 's,<!-- ~~,\n<!-- ~~,' $tmp
+sed -i '/COMMENTED OUT/ s,^,\n,' $tmp
+
+# Make the text more readable.
+for tag in p h1 h2 h3 h4 dl title form; do
+  sed -i "s,<$tag,\\n&," $tmp
+done
+for tag in p dl ul h1 h2 h3 h4 title head footer form script; do
+  sed -i "/<\\/$tag>/s,$,\\n," $tmp
+done
+sed -i '/<\/dd>/ {N; s,</dd>\n<dt,</dd>\n\n<dt,}' $tmp
+sed -i '/<\/dt>/ {N; s,</dt>\n<dd,</dt>\n\n<dd,}' $tmp
+sed -i -e 's,</p></span>$,</p>\n</span>,' \
+       -e 's, alt=,\nalt=,g' \
+       -e 's, | , |\n,g' $tmp
+
+# Remove extra LFs, if any.
+sed -i ':a /^$/ {N; s,\n$,,; ba}' $tmp
+sed -i ':a /^\n*$/ {$d; N; ba}' $tmp
+
+# Wrap the text.
+fmt -s -w 95 $tmp > $output
+
+close_or_exit 0
diff --git a/en/kitchen/translist.html b/en/kitchen/translist.html
new file mode 100644 (file)
index 0000000..2f27f6c
--- /dev/null
@@ -0,0 +1,17 @@
+<!-- Language list for browsers that do not have JS enabled -->
+<ul id="languages" class="os">
+<li><a href="/en">english</a></li>
+<li><a href="/es">español</a></li>
+<li><a class="current" href="/fr">français</a></li>
+<li><a href="/de">deutsch</a></li>
+<li><a href="/it">italiano</a></li>
+<li><a href="/pt-br">português do Brasil</a></li>
+<li><a href="/tr">türkçe</a></li>
+<li><a href="/ro">română</a></li>
+<li><a href="/ru">русский</a></li>
+<!--<li><a href="/ml">മലയാളം</a></li>-->
+<!--<li><a href="/ko">한국어</a></li>-->
+<li><a href="/ja">日本語</a></li>
+<li><a href="/el">ελληνικά</a></li>
+<!--<li><a href="/ar">العربية</a></li>-->
+</ul>