[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [community/translations] update contents: training slideshows
commit 254382589f1b6d9324a115cbd0490b1a676e46a7
Author: emma peel <emma.peel@xxxxxxxxxx>
Date: Thu May 13 12:11:56 2021 +0200
update contents: training slideshows
---
assets/static/revealjs/dist/theme/tor.css | 31 +-
content/outreach/contents.lr | 2 +-
.../technical-setup/bridge/docker/contents.lr | 2 +-
.../training/resources/tor-training/contents.lr | 549 +++++++++++++++++++++
flowblocks/slide.ini | 17 +-
models/page.ini | 1 +
models/project.ini | 51 ++
models/projects.ini | 33 ++
models/slideshow.ini | 43 ++
models/text.ini | 2 +
templates/blocks/slide.html | 25 +-
templates/onion-services.html | 2 +-
templates/outreach-talk.html | 2 +-
templates/relay-operations.html | 2 +-
templates/slideshow.html | 32 +-
15 files changed, 764 insertions(+), 30 deletions(-)
diff --git a/assets/static/revealjs/dist/theme/tor.css b/assets/static/revealjs/dist/theme/tor.css
index 2c55510..60c6c37 100644
--- a/assets/static/revealjs/dist/theme/tor.css
+++ b/assets/static/revealjs/dist/theme/tor.css
@@ -23,7 +23,7 @@ section.has-dark-background, section.has-dark-background h1, section.has-dark-ba
--heading-color: #683086;
--heading-line-height: 1.2;
--heading-letter-spacing: normal;
- --heading-text-transform: uppercase;
+ --heading-text-transform: none;
--heading-text-shadow: none;
--heading-font-weight: 600;
--heading1-text-shadow: none;
@@ -77,7 +77,7 @@ section.has-dark-background, section.has-dark-background h1, section.has-dark-ba
font-weight: 600;
line-height: 1.2;
letter-spacing: normal;
- text-transform: uppercase;
+ text-transform: none;
text-shadow: none;
word-wrap: break-word; }
@@ -301,14 +301,31 @@ section.has-dark-background, section.has-dark-background h1, section.has-dark-ba
*********************************************/
@media print {
.backgrounds {
- background-color: #fff; } }
+ background-color: #fff; }
+}
+.print-pdf .footer {
+ display: none;
+}
/*********************************************
* FOOTER
*********************************************/
.footer {
background-color: #683086;
+ min-height: 10%;
+}
+
+.footer img {
+ position:relative;
+ min-height: 1.5em;
+ padding: 5px;
+}
+
+.footer a {
+ font-size: 1.5em !important;
+ padding: 5px;
+ top: 10px;
}
/*********************************************
@@ -325,3 +342,11 @@ section.has-dark-background, section.has-dark-background h1, section.has-dark-ba
hr.dark {
border: 5px solid #683086;
}
+
+.order-last {
+ text-align: left !important;
+}
+
+.order-first {
+ text-align: right !important;
+}
diff --git a/content/outreach/contents.lr b/content/outreach/contents.lr
index cd2b5fe..9cf4a65 100644
--- a/content/outreach/contents.lr
+++ b/content/outreach/contents.lr
@@ -1,4 +1,4 @@
-section: Community
+section: community
---
section_id: outreach
---
diff --git a/content/relay-operations/technical-setup/bridge/docker/contents.lr b/content/relay-operations/technical-setup/bridge/docker/contents.lr
index 85ffb24..bfc1b38 100644
--- a/content/relay-operations/technical-setup/bridge/docker/contents.lr
+++ b/content/relay-operations/technical-setup/bridge/docker/contents.lr
@@ -9,7 +9,7 @@ body:
### 1. Deploy a container
We provide a docker-compose file that helps you deploy the container.
-First, [download docker-compose.yml](https://gitlab.torproject.org/torproject/anti-censorship/docker-obfs4-bridge/raw/master/docker-compose.yml), and then write your bridge configuration to a new file, `.env`, which is in the same directory as `docker-compose.yml`. Here's a template:
+First, [download docker-compose.yml](https://gitlab.torproject.org/torproject/anti-censorship/docker-obfs4-bridge/raw/main/docker-compose.yml), and then write your bridge configuration to a new file, `.env`, which is in the same directory as `docker-compose.yml`. Here's a template:
```
# Your bridge's Tor port.
diff --git a/content/training/resources/tor-training/contents.lr b/content/training/resources/tor-training/contents.lr
new file mode 100644
index 0000000..50e292f
--- /dev/null
+++ b/content/training/resources/tor-training/contents.lr
@@ -0,0 +1,549 @@
+_model: slideshow
+---
+title: The Tor Network
+---
+_template: slideshow.html
+---
+background: white
+---
+image: /static/images/onion.png
+---
+slides:
+
+#### slide ####
+title: Topics
+----
+description:
+- What is Tor?
+- Types of relays
+- Technical setup
+- More about relays
+- Relay diversity
+- Getting help
+
+
+#### slide ####
+title: What is Tor?
+----
+description:
+- Tor is free software and an open network.
+- Mitigates against tracking, surveillance and censorship.
+- Run by a US non-profit and volunteers from all over the world.
+- It's Tor, not TOR.
+
+
+#### slide ####
+title: The Tor network
+----
+description:
+- An open network that everyone can be a part of.
+- The network is composed of different types of servers run by volunteers around the world.
+- Your server will relay the Tor traffic to another server on the Internet.
+- Before entering the network, your server will automatically go through the relay lifecycle.
+
+
+#### slide ####
+title: Why run a Tor relay?
+----
+description:
+By running a Tor relay, you can help make the Tor network:
+- faster (and therefore more usable)
+- more robust against attacks
+- more stable in case of outages
+- safer for users (spying on more relays is harder than on a few)
+
+
+#### slide ####
+title: Types of Relays
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Guard/middle (aka non-exit) relay
+----
+description:
+- A guard is the first relay in the chain of 3 relays building a Tor circuit.
+- A middle relay is neither a guard nor an exit, but acts as the second hop between them.
+- To become a guard, a middle relay has to be stable and fast (at least 2MByte/s); otherwise, it will remain a middle relay.
+
+
+#### slide ####
+title: Exit relay
+----
+description:
+- The exit relay is the final relay in a Tor circuit, and sends the traffic to its destination.
+- That is why exit relays have the most significant legal exposure and liability of all relays.
+- Before running an exit relay, talk with your local digital rights organization.
+- **You should not run a Tor exit relay from your home.**
+
+
+#### slide ####
+title: Bridge
+----
+description:
+- A bridge is a node in the network that is not listed in the public Tor directory, making it harder for ISPs and governments to block it.
+- Bridges are relatively easy, low-risk, and low bandwidth Tor relays to operate.
+- And there's another special kind of bridge: Pluggable transports. These hide your Tor traffic by adding a layer of obfuscation.
+
+
+#### slide ####
+title: The lifecycle of a new relay
+----
+description:
+Non-exit relays go through a lifecycle of four phases (defined in days):
+- Days 0-3: the unmeasured phase.
+- Days 3-8: network authorities start the remote measurement phase (the ramp-up guard phase).
+- Days 8-68: guard phase (where load counter intuitively drops and then rises higher).
+
+
+#### slide ####
+title: The lifecycle of a new relay
+----
+description:
+- After 68 days, if stable and fast enough, the relay will receive a **Guard flag** (steady-state guard phase).
+- Read about all the phases in: <https://blog.torproject.org/lifecycle-new-relay>
+
+
+#### slide ####
+title: Relay requirements
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Before we start
+----
+description:
+- Never run a relay without the consent of the network administrator or machine owner.
+ Read the Terms of Service (ToS) first, so you donâ??t risk losing money.
+- Choose which type of relay you will host. A non-exit relay is an easy way to start helping the network.
+- Read the documentation: <https://community.torproject.org/relay>
+
+
+#### slide ####
+title: Bandwidth requirements
+----
+description:
+- Itâ??s recommended to have at least 16 Mbit/s (Mbps) upload and download bandwidth available for Tor. More is better.
+- The minimum requirements for a relay are 10 Mbit/s (Mbps).
+- If you have less than 10 Mbit/s but at least 1 Mbit/s, we recommend running a bridge with obfs4 support.
+
+
+#### slide ####
+title: Monthly outbound traffic
+----
+description:
+- Relays must use at least 100 GByte of outbound/incoming traffic per month.
+- If you have a metered plan, you might want to configure Tor to use only a given amount of bandwidth or monthly traffic.
+- More (>2 TB/month) is better and recommended.
+
+
+#### slide ####
+title: Public IPv4 address
+----
+description:
+- Every relay needs a public IPv4 address - either directly on the host (preferred) or via NAT and port forwarding.
+- The IPv4 address is not required to be static, but static IP addresses are preferred.
+- Your IPv4 address should remain unchanged for at least 3 hours (network consensus).
+- You can only run two Tor relays per public IPv4.
+
+
+#### slide ####
+title: Other requirements
+----
+description:
+- Memory: A <40 Mbit/s non-exit relay should have at least 512 MB of RAM available.
+- Disk storage: Tor does not need much disk storage. A typical Tor relay needs less than 200 MB.
+
+
+#### slide ####
+title: Other requirements
+----
+description:
+- Any modern CPU should be fine.
+- Uptime: Ideally, the relay runs on a server which runs 24/7.
+
+
+#### slide ####
+title: Choosing your relay hosting
+----
+description:
+- The Tor community team maintains GoodBadISPs â?? a list about the experience of running relays: <https://community.torproject.org/relay/community-resources/good-bad-isps/>
+- Some providers only allow non-exit relays, so check the GoodBadISPs list before buying a service.
+- Running a relay can cost anywhere between a few bucks to hundreds per month.
+
+
+#### slide ####
+title: Technical setup
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Non-exit relay - Debian/Ubuntu
+----
+description:
+- Enable the Tor Project package repository
+- Install the tor package
+
+```
+ $ apt update && apt install tor
+```
+
+
+#### slide ####
+title: Non-exit relay - Debian/Ubuntu
+----
+description:
+- Add relay configuration to the `/etc/tor/torrc` file:
+```
+ Nickname myNiceRelay
+ ExitRelay 0
+ SocksPort 0
+ ControORPort 443
+ lSocket 0
+ ContactInfo tor-operator@your-emailaddress-domain
+ Log notice syslog
+```
+
+
+#### slide ####
+title: Non-exit relay - Debian/Ubuntu
+----
+description:
+- Restart the tor daemon:
+
+```
+ $ systemctl restart tor@default
+```
+
+
+#### slide ####
+title: Non-exit relay - FreeBSD
+----
+description:
+- Install the tor package
+
+```
+ pkg install tor ca_root_nss
+```
+
+
+#### slide ####
+title: Non-exit relay - FreeBSD
+----
+description:
+ - Edit the configuration file `/usr/local/etc/tor/torrc`
+
+```
+ Nickname myNiceRelay
+ ORPort 9001
+ ExitRelay 0
+ SocksPort 0
+ ControlSocket 0
+ ContactInfo tor-operator@your-emailaddress-domain
+ Log notice syslog
+```
+
+
+#### slide ####
+title: Non-exit relay - FreeBSD
+----
+description:
+- Ensure that the random_id sysctl setting is enabled:
+
+```
+ echo "net.inet.ip.random_id=1" >> /etc/sysctl.conf
+ sysctl net.inet.ip.random_id=1
+```
+
+
+#### slide ####
+title: Non-exit relay - FreeBSD
+----
+description:
+- Start the tor daemon and make sure it starts at boot:
+
+```
+ sysrc tor_enable=YES
+ service tor start
+```
+
+
+#### slide ####
+title: Non-exit relay - FreeBSD
+----
+description:
+
+- Optional, but recommended to get package updates faster: <https://community.torproject.org/relay/setup/guard/freebsd/>
+
+
+#### slide ####
+title: Verify that your relay works
+----
+description:
+
+After restarting the service, verify that the log file contains the following entry:
+```
+ Self-testing indicates your ORPort is
+ reachable from the outside.
+ Excellent.
+ Publishing server descriptor.
+```
+
+About 3 hours after you started your relay, it should appear on Metrics portal in Relay Search.
+
+
+#### slide ####
+title: More about relays
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Technical tips
+----
+description:
+- Enable automatic software updates.
+- Backup your Tor Identity Keys.
+- It's possible to limit bandwidth usage (and traffic). Check the parameters, for example, AccountingMax, AccountingRule, AccountingStart.
+- If you run more than one Tor relay, you need to set the MyFamily parameter.
+
+
+#### slide ####
+title: Orchestrating
+----
+description:
+- Running multiple relays by hand can be challenging.
+- Configuration management tools can make relay operators' lives easier:
+- Ansible-relayor: <http://github.com/nusenu/ansible-relayor>
+
+
+#### slide ####
+title: Metrics
+----
+description:
+- Metrics portal: <https://metrics.torproject.org>
+- You can search for how many relays are in the network, how many are exits, etc.
+- In 2021 there are ~6,600 public relays and ~1,500 bridges.
+- Check: how many relays are in your country? Who runs these relays? How diverse are they?
+
+
+#### slide ####
+title: Network diversity
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Monoculture
+----
+description:
+- A single kernel vulnerability in GNU/Linux impacting all Tor relays could be devastating.
+- Diversity of Operating System (OS): ~90% of relays are Linux.
+
+
+#### slide ####
+title: Monoculture
+----
+description:
+- Diversity of Autonomous Systems (AS).
+- Try to avoid the following hosters: OVH SAS (AS16276), Online S.a.s. (AS12876), Hetzner Online GmbH (AS24940), DigitalOcean, LLC (AS14061).
+
+
+#### slide ####
+title: The TorBSD Diversity Project
+----
+description:
+- The Tor BSD Diversity Project (TDP) is an initiative seeking to extend the use of BSD Unix operating systems in the network.
+- Goals: increase the number of Tor relays running BSDs; Engage the BSD community about Tor anonymity; Port Tor related programs to BSD operating systems.
+
+
+#### slide ####
+title: More about exit relays
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Legal information
+----
+description:
+- Many countries have regulations that exclude internet service providers from liability.
+- It's a good idea to consult with a lawyer or your local digital rights organization.
+- Under most circumstances, you will be able to handle legal matters by having an abuse response letter.
+
+
+#### slide ####
+title: Legal resources
+----
+description:
+- The EFF Tor Legal FAQ: <https://community.torproject.org/relay/community-resources/eff-tor-legal-faq/>
+- It's important to respond to abuse complaints in a timely manner (usually within 24 hours).
+- Abuse letter templates: <https://community.torproject.org/relay/community-resources/tor-abuse-templates>
+
+
+#### slide ####
+title: Tips for running an exit relay
+----
+description:
+- Get a separate IP for the relay, and donâ??t use it for other services.
+- Set up a Tor Exit Notice, so if someone checks your exit IP they'll know that itâ??s a Tor Exit.
+- If you receive excessive complaints, consider running a Reduced Exit Policy.
+- For more tips: <https://blog.torproject.org/tips-running-exit-node>
+
+
+#### slide ####
+title: Running relays with others
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Running a relay with others
+----
+description:
+- You can work with your university department, employer or institution, or an organization like Torservers.org, Nos oignons, etc.
+- Some organizations â?? known as Relay Associations â?? are solely dedicated to this purpose: <https://community.torproject.org/relay/community-resources/relay-associations/>.
+
+
+#### slide ####
+title: Relays associations
+----
+description:
+- It's often advised to create some type of non-profit organization. This is useful for having a bank account and shared ownership.
+- The most important thing is to have a group of people (3-5 suggested to start) interested in helping.
+
+
+#### slide ####
+title: Running a relay with universities
+----
+description:
+- Universities are typically home to a reliable, robust, and well-equipped network.
+- Many computer science departments and university libraries run relays: Massachusetts Institute of Technology, Universität Stuttgart, the University of Waterloo.
+
+#### slide ####
+title: Running a relay with universities
+----
+description:
+- Read more: <https://community.torproject.org/relay/community-resources/tor-relay-universities/>
+
+
+
+#### slide ####
+title: At your company or organization
+----
+description:
+- If you work at a Tor-friendly company or organization, that's another ideal place to run a relay.
+- Companies like Brass Horn Communications, Quintex Alliance Consulting, and many others run relays.
+- And organizations like Digital Courage, Access Now, Derechos Digitales, Calyx Institute, and Lebanon Libraries in New Hampshire.
+
+
+#### slide ####
+title: Bad relays
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: What is a bad relay?
+----
+description:
+- A bad relay is one that either doesn't work properly or tampers with our users' connections. That can be either through maliciousness or misconfiguration.
+
+
+#### slide ####
+title: What is a bad relay?
+----
+description:
+- For example: tampering with exit traffic in any way (including dropping accepted connections). Or, running HSDirs that harvest and probe .onion addresses
+
+
+#### slide ####
+title: Reporting a bad relay
+----
+description:
+- The "Bad relays" private working group at the Tor Project work to detect misconfigured, malicious, or suspicious relays.
+- Users can report bad relays by sending an email to bad-relays@xxxxxxxxxxxxxxxxxxxx with the relayâ??s IP address or fingerprint, what kind of behavior you see, and any additional information needed to reproduce the issue.
+
+
+#### slide ####
+title: What happens to bad relays?
+----
+description:
+- After a relay is reported and behavior has been verified, the Tor Project will attempt to contact the relay operator.
+- The relay will be flagged to prevent it from being used (BadExit, Invalid, Reject).
+- The working group actively looks for bad relays using open source tools like exitmap, sysbilhunter.
+
+
+#### slide ####
+title: How do I get help running a Tor relay?
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
+
+
+#### slide ####
+title: Getting help
+----
+description:
+- Read the Tor Relay documentation:
+ <https://community.torproject.org/relay>
+- Subscribe to the tor-relays mailing list: <https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-relays>
+- Join our IRC channel: #tor-relays in irc.oftc.net
+
+
+#### slide ####
+title: Thank you!
+----
+slide_layout: title-slide
+----
+background_image: /static/images/onion-white.png
+----
+description:
+-
diff --git a/flowblocks/slide.ini b/flowblocks/slide.ini
index 23cf3fb..78effe7 100644
--- a/flowblocks/slide.ini
+++ b/flowblocks/slide.ini
@@ -6,6 +6,11 @@ label = Title
type = markdown
translate = True
+[fields.subtitle]
+label = Subtitle
+type = markdown
+translate = True
+
[fields.description]
label = Description
type = markdown
@@ -15,16 +20,24 @@ translate = True
label = Image
type = select
source = record.attachments.images
+translate = False
[fields.background]
label = Background color
type = string
+translate = False
-[fields.layout]
+[fields.slide_layout]
label = Slide layout
type = string
+translate = False
-[fields.background-image]
+[fields.background_image]
label = Background image
type = string
translate = False
+
+[fields.author]
+label = Author
+type = string
+translate = False
diff --git a/models/page.ini b/models/page.ini
index 0671112..61ad278 100644
--- a/models/page.ini
+++ b/models/page.ini
@@ -15,6 +15,7 @@ translate = True
[fields.section]
label = Section
type = string
+translate = True
[fields.cta]
label = Call To Action
diff --git a/models/project.ini b/models/project.ini
new file mode 100644
index 0000000..0590259
--- /dev/null
+++ b/models/project.ini
@@ -0,0 +1,51 @@
+[model]
+name = Project
+label = {{ this.title }}
+
+[fields.title]
+label = Title
+type = string
+
+[fields.url]
+label = url
+type = url
+
+[fields.active]
+label = Active
+type = boolean
+
+[fields.completed]
+label = Completed
+type = boolean
+
+[fields.subtitle]
+label = Subtitle
+type = markdown
+
+[fields.color]
+label = Color
+type = string
+
+[fields.body]
+label = body
+type = markdown
+
+[fields.mentors]
+label = Mentors
+type = strings
+
+[fields.languages]
+label = Languages
+type = strings
+
+[fields.difficulty]
+label = Difficulty Level
+type = string
+
+[fields.html]
+label = Html
+type = string
+
+[fields.key]
+label = key
+type = string
diff --git a/models/projects.ini b/models/projects.ini
new file mode 100644
index 0000000..c09bf77
--- /dev/null
+++ b/models/projects.ini
@@ -0,0 +1,33 @@
+[model]
+name = Projects
+label = {{ this.title }}
+
+[fields.title]
+label = Title
+type = string
+
+[fields.section]
+label = Section
+type = string
+translate = True
+
+[fields.section_id]
+label = Section_id
+type = string
+translate = False
+
+[fields.body]
+label = Body
+type = markdown
+
+[fields.color]
+label = Color
+type = string
+
+[fields.html]
+label = Html
+type = string
+
+[children]
+model = project
+order_by = title
diff --git a/models/slideshow.ini b/models/slideshow.ini
new file mode 100644
index 0000000..3f2062f
--- /dev/null
+++ b/models/slideshow.ini
@@ -0,0 +1,43 @@
+[model]
+name = Slideshow
+label = {{ this.title }}
+
+[fields.title]
+label = Title
+type = string
+translate = True
+
+[fields.description]
+label = Description
+type = string
+translate = True
+
+[fields.author]
+label = Author
+type = string
+translate = False
+
+[fields.subtitle]
+label = Subtitle
+type = string
+translate = True
+
+[fields.slides]
+label = Slides
+type = flow
+flow_blocks = slide
+
+[fields.color]
+label = Color
+type = string
+translate = False
+
+[fields.image]
+label = image
+type = string
+translate = False
+
+[fields.background]
+label = background
+type = string
+translate = False
diff --git a/models/text.ini b/models/text.ini
index 75e24ba..380668d 100644
--- a/models/text.ini
+++ b/models/text.ini
@@ -1,7 +1,9 @@
[model]
name = Text
label = Text
+translate = True
[fields.body]
label = Body
type = text
+translate = True
diff --git a/templates/blocks/slide.html b/templates/blocks/slide.html
index 5f96574..2d89823 100644
--- a/templates/blocks/slide.html
+++ b/templates/blocks/slide.html
@@ -1,5 +1,20 @@
-<section data-background-color="{{ this.background }}">
- <h2>{{ this.title }}</h2>
- {{ this.description }}
-
-</section>
+{% if this.slide_layout == "title-slide" %}
+ <section class="title" data-background-color="white" {% if this.background_image %} data-background-image="{{ this.background_image|asseturl }}" data-background-position="right bottom" data-background-size="3em" {% endif %} >
+ <h3>{{ this.title }}</h3>
+ <hr class="dark" />
+ {% if this.subtitle %}
+ <h4>{{ this.subtitle }}</h4>
+ {% endif %}
+ {% if this.author %}
+ <h5>{{ this.author }}</h5>
+ {% endif %}
+ </section>
+{% else %}
+ <section {% if this.background != "white" %} data-background-color="{{ this.background }}" {% else %} data-background-color="white" {% endif %} >
+ <h2>{{ this.title }}</h2>
+ {{ this.description }}
+ {% if this.image %}
+ <img data-src="{{ this.image }}">
+ {% endif %}
+ </section>
+{% endif %}
diff --git a/templates/onion-services.html b/templates/onion-services.html
index a42891a..603d459 100644
--- a/templates/onion-services.html
+++ b/templates/onion-services.html
@@ -32,7 +32,7 @@
{{ _('Check out the code') }}<i class="ml-3 pt-2 fas fa-arrow-right"></i>
</a>
</div>
- <div class="row py-5 text-center mx-auto">
+ <div id="featured-onions" class="row py-5 text-center mx-auto">
<h2 class="display-4 text-primary text-center mx-auto">{{ _('Featured .onion sites') }}</h2>
</div>
<div class="row mx-auto">
diff --git a/templates/outreach-talk.html b/templates/outreach-talk.html
index 72443f8..ce98d72 100644
--- a/templates/outreach-talk.html
+++ b/templates/outreach-talk.html
@@ -52,7 +52,7 @@
<span class="display-4 text-primary">
<i class="fas fa-hand-holding-heart pb-4"></i>
</span>
- <h2 class="card-title">{{ _('Tor software is developed by the Tor Project, a 501(c)3 nonprofit organization.') }}</h2>
+ <h2 class="card-title">{{ _('Tor software is developed by the Tor Project, a 501(c)(3) nonprofit organization.') }}</h2>
<p class="card-text">{{ _('We build free and open source software anyone can use.') }}</p>
</div>
</div>
diff --git a/templates/relay-operations.html b/templates/relay-operations.html
index 7690b3b..1109d78 100644
--- a/templates/relay-operations.html
+++ b/templates/relay-operations.html
@@ -21,7 +21,7 @@
</div>
<div class="row py-5 text-center mx-auto">
<h2 class="display-4 text-primary text-center mx-auto my-3">{{ _('Connect with other Relay Operators') }}</h2>
- <p class="text-center">{{ _('The best resource of all is the active community of relay operators on tor-relays mailing list and on IRC #tor-relays in irc.oftc.net. ') }}</p>
+ <p class="text-center">{{ _('The best resource of all is the active community of relay operators on tor-relays mailing list and on IRC') }} <a href="https://webchat.oftc.net/?channels=tor-relays" target="_blank">{{_('#tor-relays') }}</a> {{ _('in irc.oftc.net.') }}</p>
<a class="btn btn-lg btn-outline-primary mx-auto my-3" href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-relays">
{{ _('Relay Operators mailing list') }}<i class="ml-3 pt-2 fas fa-arrow-right"></i>
</a>
diff --git a/templates/slideshow.html b/templates/slideshow.html
index f1d6065..c6b330e 100644
--- a/templates/slideshow.html
+++ b/templates/slideshow.html
@@ -16,24 +16,26 @@
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
- <div class="slides">
- <section class="title" data-background-color="#683086" data-background-image="{{ this.image|asseturl }}" data-background-position="right bottom" data-background-size="3em">
- <h3>{{ this.title }}</h3>
- <hr />
- <h4>{{ this.subtitle }}</h4>
- <p>{{ this.author }}</p>
- </section>
+ <div class="slides {{ bag('alternatives', this.alt, 'order') }}">
+ <section>
+ <section class="title" data-background-color="#683086" data-background-image="{{ this.image|asseturl }}" data-background-position="right bottom" data-background-size="3em">
+ <h3>{{ this.title }}</h3>
+ <hr />
+ <h4>{{ this.subtitle }}</h4>
+ <p>{{ this.author }}</p>
+ </section>
- {{ this.slides }}
+ {{ this.slides }}
- <div class="footer">
- <div class="left">
- <a href="https://torproject.org">torproject.org</a>
- </div>
- <div class="right">
- <img src="{{ '/static/images/tor-logo/White.png'|asseturl }}">
+ <div class="footer">
+ <div class="left">
+ <a href="https://torproject.org">torproject.org</a>
+ </div>
+ <div class="right">
+ <img src="{{ '/static/images/tor-logo/White.png'|asseturl }}">
+ </div>
</div>
- </div>
+ </section>
</div>
</div>
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits