about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/about_controller.rb8
-rw-r--r--app/javascript/styles/mastodon/about.scss407
-rw-r--r--app/javascript/styles/mastodon/containers.scss37
-rw-r--r--app/javascript/styles/mastodon/widgets.scss42
-rw-r--r--app/views/about/_administration.html.haml19
-rw-r--r--app/views/about/_contact.html.haml22
-rw-r--r--app/views/about/more.html.haml66
-rw-r--r--app/views/about/show.html.haml4
-rw-r--r--app/views/about/terms.html.haml14
-rw-r--r--config/locales/ar.yml3
-rw-r--r--config/locales/ast.yml2
-rw-r--r--config/locales/bg.yml3
-rw-r--r--config/locales/ca.yml3
-rw-r--r--config/locales/co.yml3
-rw-r--r--config/locales/cs.yml3
-rw-r--r--config/locales/da.yml3
-rw-r--r--config/locales/de.yml3
-rw-r--r--config/locales/el.yml3
-rw-r--r--config/locales/en.yml3
-rw-r--r--config/locales/eo.yml3
-rw-r--r--config/locales/es.yml3
-rw-r--r--config/locales/eu.yml3
-rw-r--r--config/locales/fa.yml3
-rw-r--r--config/locales/fi.yml3
-rw-r--r--config/locales/fr.yml3
-rw-r--r--config/locales/gl.yml3
-rw-r--r--config/locales/he.yml3
-rw-r--r--config/locales/hr.yml3
-rw-r--r--config/locales/hu.yml3
-rw-r--r--config/locales/id.yml3
-rw-r--r--config/locales/io.yml3
-rw-r--r--config/locales/it.yml3
-rw-r--r--config/locales/ja.yml3
-rw-r--r--config/locales/ko.yml3
-rw-r--r--config/locales/nl.yml3
-rw-r--r--config/locales/no.yml3
-rw-r--r--config/locales/oc.yml3
-rw-r--r--config/locales/pl.yml3
-rw-r--r--config/locales/pt-BR.yml3
-rw-r--r--config/locales/pt.yml3
-rw-r--r--config/locales/ru.yml3
-rw-r--r--config/locales/sk.yml3
-rw-r--r--config/locales/sl.yml3
-rw-r--r--config/locales/sr-Latn.yml3
-rw-r--r--config/locales/sr.yml3
-rw-r--r--config/locales/sv.yml3
-rw-r--r--config/locales/th.yml3
-rw-r--r--config/locales/tr.yml3
-rw-r--r--config/locales/uk.yml3
-rw-r--r--config/locales/zh-CN.yml3
-rw-r--r--config/locales/zh-HK.yml3
-rw-r--r--config/locales/zh-TW.yml3
-rw-r--r--spec/views/about/_contact.html.haml_spec.rb35
53 files changed, 397 insertions, 385 deletions
diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb
index 810f212fd..0dbf0283d 100644
--- a/app/controllers/about_controller.rb
+++ b/app/controllers/about_controller.rb
@@ -9,9 +9,13 @@ class AboutController < ApplicationController
     @initial_state_json   = serializable_resource.to_json
   end
 
-  def more; end
+  def more
+    render layout: 'public'
+  end
 
-  def terms; end
+  def terms
+    render layout: 'public'
+  end
 
   private
 
diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss
index b9544bb33..bba7044cf 100644
--- a/app/javascript/styles/mastodon/about.scss
+++ b/app/javascript/styles/mastodon/about.scss
@@ -15,6 +15,276 @@ $small-breakpoint: 960px;
   }
 }
 
+.rich-formatting {
+  font-family: 'mastodon-font-sans-serif', sans-serif;
+  font-size: 16px;
+  font-weight: 400;
+  font-size: 16px;
+  line-height: 30px;
+  color: $darker-text-color;
+  padding-right: 10px;
+
+  a {
+    color: $highlight-text-color;
+    text-decoration: underline;
+  }
+
+  p,
+  li {
+    font-family: 'mastodon-font-sans-serif', sans-serif;
+    font-size: 16px;
+    font-weight: 400;
+    font-size: 16px;
+    line-height: 30px;
+    margin-bottom: 12px;
+    color: $darker-text-color;
+
+    a {
+      color: $highlight-text-color;
+      text-decoration: underline;
+    }
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  em {
+    display: inline;
+    margin: 0;
+    padding: 0;
+    font-weight: 700;
+    background: transparent;
+    font-family: inherit;
+    font-size: inherit;
+    line-height: inherit;
+    color: lighten($darker-text-color, 10%);
+  }
+
+  h1 {
+    font-family: 'mastodon-font-display', sans-serif;
+    font-size: 26px;
+    line-height: 30px;
+    font-weight: 500;
+    margin-bottom: 20px;
+    color: $secondary-text-color;
+
+    small {
+      font-family: 'mastodon-font-sans-serif', sans-serif;
+      display: block;
+      font-size: 18px;
+      font-weight: 400;
+      color: lighten($darker-text-color, 10%);
+    }
+  }
+
+  h2 {
+    font-family: 'mastodon-font-display', sans-serif;
+    font-size: 22px;
+    line-height: 26px;
+    font-weight: 500;
+    margin-bottom: 20px;
+    color: $secondary-text-color;
+  }
+
+  h3 {
+    font-family: 'mastodon-font-display', sans-serif;
+    font-size: 18px;
+    line-height: 24px;
+    font-weight: 500;
+    margin-bottom: 20px;
+    color: $secondary-text-color;
+  }
+
+  h4 {
+    font-family: 'mastodon-font-display', sans-serif;
+    font-size: 16px;
+    line-height: 24px;
+    font-weight: 500;
+    margin-bottom: 20px;
+    color: $secondary-text-color;
+  }
+
+  h5 {
+    font-family: 'mastodon-font-display', sans-serif;
+    font-size: 14px;
+    line-height: 24px;
+    font-weight: 500;
+    margin-bottom: 20px;
+    color: $secondary-text-color;
+  }
+
+  h6 {
+    font-family: 'mastodon-font-display', sans-serif;
+    font-size: 12px;
+    line-height: 24px;
+    font-weight: 500;
+    margin-bottom: 20px;
+    color: $secondary-text-color;
+  }
+
+  ul,
+  ol {
+    margin-left: 20px;
+
+    &[type='a'] {
+      list-style-type: lower-alpha;
+    }
+
+    &[type='i'] {
+      list-style-type: lower-roman;
+    }
+  }
+
+  ul {
+    list-style: disc;
+  }
+
+  ol {
+    list-style: decimal;
+  }
+
+  li > ol,
+  li > ul {
+    margin-top: 6px;
+  }
+
+  hr {
+    width: 100%;
+    height: 0;
+    border: 0;
+    border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
+    margin: 20px 0;
+
+    &.spacer {
+      height: 1px;
+      border: 0;
+    }
+  }
+}
+
+.information-board {
+  background: darken($ui-base-color, 4%);
+  padding: 20px 0;
+
+  .container-alt {
+    position: relative;
+    padding-right: 280px + 15px;
+  }
+
+  &__sections {
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+  }
+
+  &__section {
+    flex: 1 0 0;
+    font-family: 'mastodon-font-sans-serif', sans-serif;
+    font-size: 16px;
+    line-height: 28px;
+    color: $primary-text-color;
+    text-align: right;
+    padding: 10px 15px;
+
+    span,
+    strong {
+      display: block;
+    }
+
+    span {
+      &:last-child {
+        color: $secondary-text-color;
+      }
+    }
+
+    strong {
+      font-weight: 500;
+      font-size: 32px;
+      line-height: 48px;
+    }
+
+    @media screen and (max-width: $column-breakpoint) {
+      text-align: center;
+    }
+  }
+
+  .panel {
+    position: absolute;
+    width: 280px;
+    box-sizing: border-box;
+    background: darken($ui-base-color, 8%);
+    padding: 20px;
+    padding-top: 10px;
+    border-radius: 4px 4px 0 0;
+    right: 0;
+    bottom: -40px;
+
+    .panel-header {
+      font-family: 'mastodon-font-display', sans-serif;
+      font-size: 14px;
+      line-height: 24px;
+      font-weight: 500;
+      color: $darker-text-color;
+      padding-bottom: 5px;
+      margin-bottom: 15px;
+      border-bottom: 1px solid lighten($ui-base-color, 4%);
+      text-overflow: ellipsis;
+      white-space: nowrap;
+      overflow: hidden;
+
+      a,
+      span {
+        font-weight: 400;
+        color: darken($darker-text-color, 10%);
+      }
+
+      a {
+        text-decoration: none;
+      }
+    }
+  }
+
+  .owner {
+    text-align: center;
+
+    .avatar {
+      width: 80px;
+      height: 80px;
+      margin: 0 auto;
+      margin-bottom: 15px;
+
+      img {
+        display: block;
+        width: 80px;
+        height: 80px;
+        border-radius: 48px;
+      }
+    }
+
+    .name {
+      font-size: 14px;
+
+      a {
+        display: block;
+        color: $primary-text-color;
+        text-decoration: none;
+
+        &:hover {
+          .display_name {
+            text-decoration: underline;
+          }
+        }
+      }
+
+      .username {
+        display: block;
+        color: $darker-text-color;
+      }
+    }
+  }
+}
+
 .landing-page {
   .grid {
     display: grid;
@@ -486,128 +756,6 @@ $small-breakpoint: 960px;
     }
   }
 
-  .information-board {
-    background: darken($ui-base-color, 4%);
-    padding: 20px 0;
-
-    .container-alt {
-      position: relative;
-      padding-right: 280px + 15px;
-    }
-
-    &__sections {
-      display: flex;
-      justify-content: space-between;
-      flex-wrap: wrap;
-    }
-
-    &__section {
-      flex: 1 0 0;
-      font-family: 'mastodon-font-sans-serif', sans-serif;
-      font-size: 16px;
-      line-height: 28px;
-      color: $primary-text-color;
-      text-align: right;
-      padding: 10px 15px;
-
-      span,
-      strong {
-        display: block;
-      }
-
-      span {
-        &:last-child {
-          color: $secondary-text-color;
-        }
-      }
-
-      strong {
-        font-weight: 500;
-        font-size: 32px;
-        line-height: 48px;
-      }
-
-      @media screen and (max-width: $column-breakpoint) {
-        text-align: center;
-      }
-    }
-
-    .panel {
-      position: absolute;
-      width: 280px;
-      box-sizing: border-box;
-      background: darken($ui-base-color, 8%);
-      padding: 20px;
-      padding-top: 10px;
-      border-radius: 4px 4px 0 0;
-      right: 0;
-      bottom: -40px;
-
-      .panel-header {
-        font-family: 'mastodon-font-display', sans-serif;
-        font-size: 14px;
-        line-height: 24px;
-        font-weight: 500;
-        color: $darker-text-color;
-        padding-bottom: 5px;
-        margin-bottom: 15px;
-        border-bottom: 1px solid lighten($ui-base-color, 4%);
-        text-overflow: ellipsis;
-        white-space: nowrap;
-        overflow: hidden;
-
-        a,
-        span {
-          font-weight: 400;
-          color: darken($darker-text-color, 10%);
-        }
-
-        a {
-          text-decoration: none;
-        }
-      }
-    }
-
-    .owner {
-      text-align: center;
-
-      .avatar {
-        width: 80px;
-        height: 80px;
-        margin: 0 auto;
-        margin-bottom: 15px;
-
-        img {
-          display: block;
-          width: 80px;
-          height: 80px;
-          border-radius: 48px;
-        }
-      }
-
-      .name {
-        font-size: 14px;
-
-        a {
-          display: block;
-          color: $primary-text-color;
-          text-decoration: none;
-
-          &:hover {
-            .display_name {
-              text-decoration: underline;
-            }
-          }
-        }
-
-        .username {
-          display: block;
-          color: $darker-text-color;
-        }
-      }
-    }
-  }
-
   &.alternative {
     padding: 10px 0;
 
@@ -983,21 +1131,6 @@ $small-breakpoint: 960px;
     }
   }
 
-  .extended-description {
-    padding: 50px 0;
-    font-family: 'mastodon-font-sans-serif', sans-serif;
-    font-size: 16px;
-    font-weight: 400;
-    font-size: 16px;
-    line-height: 30px;
-    color: $darker-text-color;
-
-    a {
-      color: $highlight-text-color;
-      text-decoration: underline;
-    }
-  }
-
   .footer-links {
     padding-bottom: 50px;
     text-align: right;
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index 7b339277f..ba36d62d9 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -115,6 +115,34 @@
   }
 }
 
+.grid-3 {
+  display: grid;
+  grid-gap: 10px;
+  grid-template-columns: 3fr 1fr;
+  grid-auto-columns: 25%;
+  grid-auto-rows: max-content;
+
+  .column-0 {
+    grid-column: 1/3;
+    grid-row: 1;
+  }
+
+  .column-1 {
+    grid-column: 1;
+    grid-row: 2;
+  }
+
+  .column-2 {
+    grid-column: 2;
+    grid-row: 2;
+  }
+
+  .column-3 {
+    grid-column: 1/3;
+    grid-row: 3;
+  }
+}
+
 .public-layout {
   @media screen and (max-width: $no-gap-breakpoint) {
     padding-top: 48px;
@@ -300,6 +328,15 @@
       }
     }
 
+    &--no-bar {
+      margin-bottom: 0;
+
+      .public-account-header__image,
+      .public-account-header__image img {
+        border-radius: 4px;
+      }
+    }
+
     @media screen and (max-width: $no-gap-breakpoint) {
       margin-bottom: 0;
       box-shadow: none;
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index b05bbbda7..875a36959 100644
--- a/app/javascript/styles/mastodon/widgets.scss
+++ b/app/javascript/styles/mastodon/widgets.scss
@@ -103,6 +103,48 @@
   }
 }
 
+.box-widget {
+  padding: 20px;
+  border-radius: 4px;
+  background: $ui-base-color;
+  box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+}
+
+.contact-widget,
+.landing-page__information.contact-widget {
+  box-sizing: border-box;
+  padding: 20px;
+  height: 100%;
+  border-radius: 4px;
+  background: $ui-base-color;
+  box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
+}
+
+.contact-widget {
+  font-size: 15px;
+  color: $darker-text-color;
+  line-height: 20px;
+  word-wrap: break-word;
+  font-weight: 400;
+
+  p {
+    margin-bottom: 10px;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+
+  &__mail {
+    margin-top: 10px;
+
+    a {
+      color: $primary-text-color;
+      text-decoration: none;
+    }
+  }
+}
+
 .moved-account-widget {
   padding: 15px;
   padding-bottom: 20px;
diff --git a/app/views/about/_administration.html.haml b/app/views/about/_administration.html.haml
deleted file mode 100644
index 02286d68b..000000000
--- a/app/views/about/_administration.html.haml
+++ /dev/null
@@ -1,19 +0,0 @@
-.account
-  .account__wrapper
-    - if @instance_presenter.contact_account
-      = link_to TagManager.instance.url_for(@instance_presenter.contact_account), class: 'account__display-name' do
-        .account__avatar-wrapper
-          .account__avatar{ style: "background-image: url(#{@instance_presenter.contact_account.avatar.url})" }
-        %span.display-name
-          %bdi
-            %strong.display-name__html.emojify= display_name(@instance_presenter.contact_account, custom_emojify: true)
-          %span.display-name__account @#{@instance_presenter.contact_account.acct}
-    - else
-      .account__display-name
-        .account__avatar-wrapper
-          .account__avatar{ style: "background-image: url(#{full_asset_url('avatars/original/missing.png', skip_pipeline: true)})" }
-        %span.display-name
-          %strong= t 'about.contact_missing'
-          %span.display-name__account= t 'about.contact_unavailable'
-
-    = link_to t('about.learn_more'), about_more_path, class: 'button button-alternative'
diff --git a/app/views/about/_contact.html.haml b/app/views/about/_contact.html.haml
deleted file mode 100644
index 3215d50b5..000000000
--- a/app/views/about/_contact.html.haml
+++ /dev/null
@@ -1,22 +0,0 @@
-.panel
-  .panel-header
-    = succeed ':' do
-      = t 'about.contact'
-    - if contact.site_contact_email.present?
-      = mail_to contact.site_contact_email, nil, title: contact.site_contact_email
-    - else
-      %span= t 'about.contact_unavailable'
-  .panel-body
-    - if contact.contact_account
-      .owner
-        .avatar= image_tag contact.contact_account.avatar.url
-        .name
-          = link_to TagManager.instance.url_for(contact.contact_account) do
-            %span.display_name.emojify= display_name(contact.contact_account, custom_emojify: true)
-            %span.username @#{contact.contact_account.acct}
-    - else
-      .owner
-        .avatar= image_tag full_asset_url('avatars/original/missing.png', skip_pipeline: true)
-        .name
-          %span.display_name= t 'about.contact_missing'
-          %span.username= t 'about.contact_unavailable'
diff --git a/app/views/about/more.html.haml b/app/views/about/more.html.haml
index df072b8ae..9e042ca73 100644
--- a/app/views/about/more.html.haml
+++ b/app/views/about/more.html.haml
@@ -5,39 +5,41 @@
   = javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous'
   = render partial: 'shared/og'
 
-.landing-page
-  .header-wrapper.compact
-    .header
-      = render 'links'
+.grid-3
+  .column-0
+    .public-account-header.public-account-header--no-bar
+      .public-account-header__image
+        = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
 
-      .container-alt.hero
-        .heading
-          %h3= t('about.description_headline', domain: site_hostname)
-          %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
+  .column-1
+    .landing-page__call-to-action{ dir: 'ltr' }
+      .row
+        .row__information-board
+          .information-board__section
+            %span= t 'about.user_count_before'
+            %strong= number_with_delimiter @instance_presenter.user_count
+            %span= t 'about.user_count_after'
+          .information-board__section
+            %span= t 'about.status_count_before'
+            %strong= number_with_delimiter @instance_presenter.status_count
+            %span= t 'about.status_count_after'
+        .row__mascot
+          .landing-page__mascot
+            = image_tag asset_pack_path('elephant_ui_plane.svg')
 
-  .information-board
-    .container-alt
-      .information-board__sections
-        .information-board__section
-          %span= t 'about.user_count_before'
-          %strong= number_with_delimiter @instance_presenter.user_count
-          %span= t 'about.user_count_after'
-        .information-board__section
-          %span= t 'about.status_count_before'
-          %strong= number_with_delimiter @instance_presenter.status_count
-          %span= t 'about.status_count_after'
-        .information-board__section
-          %span= t 'about.domain_count_before'
-          %strong= number_with_delimiter @instance_presenter.domain_count
-          %span= t 'about.domain_count_after'
-      = render 'contact', contact: @instance_presenter
+  .column-2
+    .landing-page__information.contact-widget
+      %p= t 'about.administered_by'
 
-  .extended-description
-    .container-alt
-      = @instance_presenter.site_extended_description.html_safe.presence || t('about.extended_description_html')
+      = account_link_to(@instance_presenter.contact_account)
 
-  .footer-links
-    .container-alt
-      %p
-        = link_to t('about.source_code'), @instance_presenter.source_url
-        = " (#{@instance_presenter.version_number})"
+      - if @instance_presenter.site_contact_email.present?
+        %p.contact-widget__mail
+          = succeed ':' do
+            = t 'about.contact'
+          %br/
+          = mail_to @instance_presenter.site_contact_email, nil, title: @instance_presenter.site_contact_email
+
+  .column-3
+    .box-widget
+      .rich-formatting= @instance_presenter.site_extended_description.html_safe.presence || t('about.extended_description_html')
diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml
index fba46d54b..8a40b97cc 100644
--- a/app/views/about/show.html.haml
+++ b/app/views/about/show.html.haml
@@ -110,7 +110,7 @@
                 %p= t 'about.about_mastodon_html'
               %div.contact
                 %h3= t 'about.administered_by'
-                = render 'administration'
+                = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
 
             = render 'features'
 
@@ -131,7 +131,7 @@
                 %p= t 'about.about_mastodon_html'
               %div.contact
                 %h3= t 'about.administered_by'
-                = render 'administration'
+                = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
 
             = render 'features'
 
diff --git a/app/views/about/terms.html.haml b/app/views/about/terms.html.haml
index c7d36ed47..9d076a91b 100644
--- a/app/views/about/terms.html.haml
+++ b/app/views/about/terms.html.haml
@@ -1,11 +1,9 @@
 - content_for :page_title do
   = t('terms.title', instance: site_hostname)
 
-.landing-page
-  .header-wrapper.compact
-    .header
-      = render 'links'
-
-  .extended-description
-    .container-alt
-      = @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
+.grid
+  .column-0
+    .box-widget
+      .rich-formatting= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
+  .column-1
+    = render 'application/sidebar'
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index d40ae0f72..c2d7dc75e 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -9,9 +9,6 @@ ar:
     contact: للتواصل معنا
     contact_missing: غير محدد
     contact_unavailable: غير متوفر
-    description_headline: ما هو %{domain}?
-    domain_count_after: خوادم أخرى
-    domain_count_before: متصل بـ
     extended_description_html: |
       <h3>مكان جيد للقواعد</h3>
       <p>لا يوجد تفصيل طويل حتى الآن.</p>
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 3dae9cc1a..65620a7c4 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -3,8 +3,6 @@ ast:
   about:
     about_mastodon_html: Mastodon ye una rede social basada en protocolos abiertos y software de códigu llibre. Ye descentralizada, como'l corréu electrónicu.
     contact_unavailable: N/D
-    description_headline: "¿Qué ye %{domain}?"
-    domain_count_after: otres instancies
     features:
       not_a_product_title: Yes una persona, non un productu
     source_code: Códigu fonte
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index f101101e2..8c11ac7b7 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -5,9 +5,6 @@ bg:
     about_this: За тази инстанция
     closed_registrations: В момента регистрациите за тази инстанция са затворени.
     contact: За контакти
-    description_headline: Какво е %{domain}?
-    domain_count_after: други инстанции
-    domain_count_before: Свързани към
     other_instances: Други инстанции
     source_code: Програмен код
     status_count_after: публикации
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index ea8a5712b..41c35e79b 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -9,9 +9,6 @@ ca:
     contact: Contacte
     contact_missing: No configurat
     contact_unavailable: N/D
-    description_headline: Què es %{domain}?
-    domain_count_after: altres instàncies
-    domain_count_before: Connectada a
     extended_description_html: |
       <h3>Un bon lloc per les regles</h3>
       <p>Encara no s'ha configurat la descripció ampliada.</p>
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 4326dde67..09d470c97 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -9,9 +9,6 @@ co:
     contact: Cuntattu
     contact_missing: Mancante
     contact_unavailable: Micca dispunibule
-    description_headline: Quale hè %{domain} ?
-    domain_count_after: altre istanze
-    domain_count_before: Cunnettati à
     extended_description_html: |
       <h3>Una bona piazza per e regule</h3>
       <p>A descrizzione stesa ùn hè micca stata riempiuta.</p>
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 6529992dc..27bc793ed 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -9,9 +9,6 @@ cs:
     contact: Kontakt
     contact_missing: Nenastaveno
     contact_unavailable: Neuvedeno
-    description_headline: Co je %{domain}?
-    domain_count_after: dalším instancím
-    domain_count_before: Připojeno k
     extended_description_html: |
       <h3>Dobré místo pro pravidla</h3>
       <p>Rozšířený popis ještě nebyl nastaven.</p>
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 4c7f0f550..2b6207de6 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -9,9 +9,6 @@ da:
     contact: Kontakt
     contact_missing: Ikke sat
     contact_unavailable: Ikke tilgængeligt
-    description_headline: Hvad er %{domain}?
-    domain_count_after: andre instanser
-    domain_count_before: Forbundet til
     extended_description_html: |
       <h3>Et godt sted for regler</h3>
       <p>Den udvidede beskrivelse er endnu ikke blevet opsat.</p>
diff --git a/config/locales/de.yml b/config/locales/de.yml
index a7e3c6ffe..24ee095be 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -9,9 +9,6 @@ de:
     contact: Kontakt
     contact_missing: Nicht angegeben
     contact_unavailable: N/A
-    description_headline: Was ist %{domain}?
-    domain_count_after: anderen Instanzen
-    domain_count_before: Vernetzt mit
     extended_description_html: |
       <h3>Ein guter Platz für Regeln</h3>
       <p>Die erweiterte Beschreibung wurde noch nicht aufgesetzt.</p>
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 905564317..674712d98 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -9,9 +9,6 @@ el:
     contact: Επικοινωνία
     contact_missing: Δεν έχει οριστεί
     contact_unavailable: Μ/Δ
-    description_headline: Τι είναι το %{domain};
-    domain_count_after: άλλους διακομιστές
-    domain_count_before: Συνδέεται με
     extended_description_html: |
       <h3>Ένα καλό σημείο για κανόνες</h3>
       <p>Η αναλυτική περιγραφή δεν έχει ακόμα οριστεί</p>
diff --git a/config/locales/en.yml b/config/locales/en.yml
index ef5b2c93b..a5e4ab75d 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -10,10 +10,7 @@ en:
     contact: Contact
     contact_missing: Not set
     contact_unavailable: N/A
-    description_headline: What is %{domain}?
     documentation: Documentation
-    domain_count_after: other instances
-    domain_count_before: Connected to
     extended_description_html: |
       <h3>A good place for rules</h3>
       <p>The extended description has not been set up yet.</p>
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 72010a085..788fd5f52 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -9,9 +9,6 @@ eo:
     contact: Kontakti
     contact_missing: Ne elektita
     contact_unavailable: Ne disponebla
-    description_headline: Kio estas %{domain}?
-    domain_count_after: aliaj nodoj
-    domain_count_before: Konektita al
     extended_description_html: |
       <h3>Bona loko por reguloj</h3>
       <p>La detala priskribo ne estis elektita.</p>
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 3aae7f934..ca04f0b1c 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -9,9 +9,6 @@ es:
     contact: Contacto
     contact_missing: No especificado
     contact_unavailable: N/A
-    description_headline: "¿Qué es %{domain}?"
-    domain_count_after: otras instancias
-    domain_count_before: Conectado a
     extended_description_html: |
       <h3>Un buen lugar para las reglas</h3>
       <p>La descripción extendida no se ha colocado aún.</p>
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index c11e05908..7b70ca77e 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -9,9 +9,6 @@ eu:
     contact: Kontaktua
     contact_missing: Ezarri gabe
     contact_unavailable: E/E
-    description_headline: Zer da %{domain}?
-    domain_count_after: instantzia desberdinetara
-    domain_count_before: Konektatuta
     extended_description_html: |
       <h3>Arauentzako toki egoki bat</h3>
       <p>Azalpen luzea ez da ezarri oraindik.</p>
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index b4dc3fd8a..25d1e81ab 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -9,9 +9,6 @@ fa:
     contact: تماس
     contact_missing: تعیین نشده
     contact_unavailable: موجود نیست
-    description_headline: "%{domain} چیست؟"
-    domain_count_after: سرور دیگر
-    domain_count_before: متصل به
     extended_description_html: |
       <h3>جای خوبی برای قانون‌ها</h3>
       <p>توضیحات تکمیلی نوشته نشده است.</p>
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 2c534f071..7fa2bc8de 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -9,9 +9,6 @@ fi:
     contact: Ota yhteyttä
     contact_missing: Ei asetettu
     contact_unavailable: Ei saatavilla
-    description_headline: Mikä on %{domain}?
-    domain_count_after: muuhun instanssiin
-    domain_count_before: Yhdistyneenä
     extended_description_html: |
       <h3>Hyvä paikka säännöille</h3>
       <p>Pidempää kuvausta ei ole vielä laadittu.</p>
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index a4f2758e0..2eb1ba0ce 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -9,9 +9,6 @@ fr:
     contact: Contact
     contact_missing: Manquant
     contact_unavailable: Non disponible
-    description_headline: Qu’est-ce que %{domain} ?
-    domain_count_after: autres instances
-    domain_count_before: Connecté⋅e⋅s à
     extended_description_html: |
       <h3>Un bon endroit pour les règles</h3>
       <p>La description étendue n’a pas été remplie.</p>
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index a5732168b..92b71cce6 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -9,9 +9,6 @@ gl:
     contact: Contacto
     contact_missing: Non establecido
     contact_unavailable: N/A
-    description_headline: Qué é %{domain}?
-    domain_count_after: outras instancias
-    domain_count_before: Conectada a
     extended_description_html: |
       <h3>Un bo lugar para regras</h3>
       <p>A descrición extendida aínda non se proporcionou.</p>
diff --git a/config/locales/he.yml b/config/locales/he.yml
index b03f184ca..e3bb64364 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -8,9 +8,6 @@ he:
     contact: צור קשר
     contact_missing: אין
     contact_unavailable: לא רלוונטי/חסר
-    description_headline: מהו %{domain}?
-    domain_count_after: שרתים אחרים
-    domain_count_before: מחובר אל
     extended_description_html: |
       <h3>מקום טוב לכללים</h3>
       <p>התיאור המורחב טרם הוגדר.</p>
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index 07373d19d..a6e7649f2 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -5,9 +5,6 @@ hr:
     about_this: O ovoj instanci
     closed_registrations: Registracije na ovoj instanci su trenutno zatvorene.
     contact: Kontakt
-    description_headline: Što je %{domain}?
-    domain_count_after: druge instance
-    domain_count_before: Spojen na
     other_instances: Druge instance
     source_code: Izvorni kod
     status_count_after: statusi
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index af10dfd80..824a46066 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -8,9 +8,6 @@ hu:
     contact: Kapcsolat
     contact_missing: Nincs megadva
     contact_unavailable: N/A
-    description_headline: Mi az a %{domain}?
-    domain_count_after: további instanciával
-    domain_count_before: Kapcsolatban
     extended_description_html: |
       <h3>Ez itt a szabályzat helye</h3>
       <p>Még nem állítottál be bővebb leírást.</p>
diff --git a/config/locales/id.yml b/config/locales/id.yml
index c391a6b4e..33a764a28 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -5,9 +5,6 @@ id:
     about_this: Tentang server ini
     closed_registrations: Pendaftaran untuk server ini sedang ditutup.
     contact: Kontak
-    description_headline: Apa itu %{domain}?
-    domain_count_after: server lain
-    domain_count_before: Terhubung dengan
     other_instances: Server lain
     source_code: Kode sumber
     status_count_after: status
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 71a7f2d94..287c1d0e6 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -5,9 +5,6 @@ io:
     about_this: Pri ta instaluro
     closed_registrations: Membresko ne nun esas posible en ta instaluro.
     contact: Kontaktar
-    description_headline: Quo esas %{domain}?
-    domain_count_after: altra instaluri
-    domain_count_before: Konektita ad
     other_instances: Altra instaluri
     source_code: Fontkodexo
     status_count_after: mesaji
diff --git a/config/locales/it.yml b/config/locales/it.yml
index e985d1f10..0f25dd231 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -9,9 +9,6 @@ it:
     contact: Contatti
     contact_missing: Non impostato
     contact_unavailable: N/D
-    description_headline: Cos'è %{domain}?
-    domain_count_after: altri server
-    domain_count_before: Connesso a
     extended_description_html: |
       <h3>Un buon posto per le regole</h3>
       <p>La descrizione estesa non è ancora stata preparata.</p>
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index d9503a141..69c7d3367 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -9,9 +9,6 @@ ja:
     contact: 連絡先
     contact_missing: 未設定
     contact_unavailable: N/A
-    description_headline: "%{domain} とは?"
-    domain_count_after: 個のインスタンス
-    domain_count_before: 接続中
     extended_description_html: |
       <h3>ルールを書くのに適した場所</h3>
       <p>詳細説明が設定されていません。</p>
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 00b3b249d..d328ae4e7 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -9,9 +9,6 @@ ko:
     contact: 연락처
     contact_missing: 미설정
     contact_unavailable: N/A
-    description_headline: "%{domain} (은)는 무엇인가요?"
-    domain_count_after: 개의 인스턴스
-    domain_count_before: 연결된
     extended_description_html: |
       <h3>룰을 작성하는 장소</h3>
       <p>아직 설명이 작성되지 않았습니다.</p>
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 0001891b2..112b5d5fe 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -9,9 +9,6 @@ nl:
     contact: Contact
     contact_missing: Niet ingesteld
     contact_unavailable: n.v.t
-    description_headline: Wat is %{domain}?
-    domain_count_after: andere servers
-    domain_count_before: Verbonden met
     extended_description_html: |
       <h3>Een goede plek voor richtlijnen</h3>
       <p>De uitgebreide omschrijving is nog niet ingevuld.</p>
diff --git a/config/locales/no.yml b/config/locales/no.yml
index c17ea3e86..bcf3966d4 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -8,9 +8,6 @@
     contact: Kontakt
     contact_missing: Ikke innstilt
     contact_unavailable: Ikke tilgjengelig
-    description_headline: Hva er %{domain}?
-    domain_count_after: andre instanser
-    domain_count_before: Koblet til
     extended_description_html: |
       <h3>En god plassering for regler</h3>
       <p>En utvidet beskrivelse er ikke satt opp ennå.</p>
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 828ecfbf5..3ff2dae66 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -9,9 +9,6 @@ oc:
     contact: Contacte
     contact_missing: Pas parametrat
     contact_unavailable: Pas disponible
-    description_headline: Qué es %{domain} ?
-    domain_count_after: autras instàncias
-    domain_count_before: Connectat a
     extended_description_html: |
       <h3>Una bona plaça per las règlas</h3>
       <p>La descripcion longa es pas estada causida pel moment.</p>
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 4407fd548..fb5c51c5e 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -10,10 +10,7 @@ pl:
     contact: Kontakt
     contact_missing: Nie ustawiono
     contact_unavailable: Nie dotyczy
-    description_headline: Czym jest %{domain}?
     documentation: Dokumentacja
-    domain_count_after: instancjami
-    domain_count_before: Serwer połączony z
     extended_description_html: |
       <h3>Dobre miejsce na zasady użytkowania</h3>
       <p>Nie ustawiono jeszcze szczegółowego opisu</p>
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 0c1cc6a6d..9aedd375c 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -9,9 +9,6 @@ pt-BR:
     contact: Contato
     contact_missing: Não definido
     contact_unavailable: N/A
-    description_headline: O que é %{domain}?
-    domain_count_after: outras instâncias
-    domain_count_before: Conectado a
     extended_description_html: |
       <h3>Um bom lugar para regras</h3>
       <p>A descrição da instância ainda não foi feita.</p>
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index 33b6b0acb..eebeb498e 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -8,9 +8,6 @@ pt:
     contact: Contacto
     contact_missing: Não configurado
     contact_unavailable: n.d.
-    description_headline: O que é o %{domain}?
-    domain_count_after: outras instâncias
-    domain_count_before: Ligado a
     extended_description_html: |
       <h3>Um bom lugar para regras</h3>
       <p>A descrição estendida ainda não foi configurada.</p>
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index f3184e238..9d41e20ff 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -9,9 +9,6 @@ ru:
     contact: Связаться
     contact_missing: Не установлено
     contact_unavailable: Недоступен
-    description_headline: Что такое %{domain}?
-    domain_count_after: другими узлами
-    domain_count_before: Связан с
     extended_description_html: |
       <h3>Хорошее место для правил</h3>
       <p>Расширенное описание еще не настроено.</p>
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 0c86f5aa0..1be11baa4 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -9,9 +9,6 @@ sk:
     contact: Kontakt
     contact_missing: Nezadané
     contact_unavailable: Neuvedené
-    description_headline: Čo je %{domain}?
-    domain_count_after: ďalším instanciám
-    domain_count_before: Pripojený k
     extended_description_html: |
       <h3>Pravidlá</h3>
       <p>Žiadne zatiaľ nie sú</p>
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 16ace08d3..f7ef65423 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -9,9 +9,6 @@ sl:
     contact: Kontakt
     contact_missing: Ni nastavljeno
     contact_unavailable: Ni na voljo
-    description_headline: Kaj je %{domain}?
-    domain_count_after: ostala vozlišča
-    domain_count_before: Povezan z
     extended_description_html: |
       <h3>Dober prostor za pravila</h3>
       <p>Razširjen opis še ni bil nastavljen.</p>
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index d7dd574c7..d9813db47 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -8,9 +8,6 @@ sr-Latn:
     contact: Kontakt
     contact_missing: Nije postavljeno
     contact_unavailable: N/A
-    description_headline: Šta je %{domain}?
-    domain_count_after: ostale instance
-    domain_count_before: Povezan na
     extended_description_html: |
       <h3>Dobro mesto za pravila</h3>
       <p>Prošireni opis koji još nije postavljen.</p>
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 63c42f62f..61c0b123c 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -9,9 +9,6 @@ sr:
     contact: Контакт
     contact_missing: Није постављено
     contact_unavailable: N/A
-    description_headline: Шта је %{domain}?
-    domain_count_after: остале инстанце
-    domain_count_before: Повезан на
     extended_description_html: |
       <h3>Добро место за правила</h3>
       <p>Проширени опис који још није постављен.</p>
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index cf1ab582f..605d9db12 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -9,9 +9,6 @@ sv:
     contact: Kontakt
     contact_missing: Inte inställd
     contact_unavailable: N/A
-    description_headline: Vad är %{domain}?
-    domain_count_after: andra instanser
-    domain_count_before: Uppkopplad mot
     extended_description_html: |
       <h3>En bra plats för regler</h3>
       <p>Den utökade beskrivningen har inte konfigurerats ännu.</p>
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 182bde388..88e1eb44c 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -5,9 +5,6 @@ th:
     about_this: เกี่ยวกับอินซะแตนซ์นี้
     closed_registrations: อินซะแตนซ์นี้ปิดรับลงทะเบียนแล้ว.
     contact: ติดต่อ
-    description_headline: โดเมนคือ %{domain} ?
-    domain_count_after: อินซะแตนซ์อื่นๆ
-    domain_count_before: เชื่อมต่อกับ
     other_instances: อินซะแตนซ์อื่นๆ
     source_code: ซอร์สโค๊ด
     status_count_after: สถานะ
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 3609261ed..26dd4c1e3 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -5,9 +5,6 @@ tr:
     about_this: Bu sunucu hakkında
     closed_registrations: Bu sunucu şu anda yeni kayıt almamaktadır.
     contact: İletişim
-    description_headline: Peki %{domain} nedir?
-    domain_count_after: sunucu var.
-    domain_count_before: Bağlı olduğu
     other_instances: Diğer sunucular
     source_code: Kaynak kodu
     status_count_after: adet gönderi yazıldı.
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 266c878f1..1380635eb 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -7,9 +7,6 @@ uk:
     closed_registrations: На даний момент реєстрація на цій інстанції закрита.
     contact: Зв'язатися
     contact_missing: Не зазначено
-    description_headline: Що таке %{domain}?
-    domain_count_after: іншими інстанціями
-    domain_count_before: Зв'язаний з
     features:
       humane_approach_title: Більш людський підхід
       real_conversation_title: Побудований для справжньої розмови
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 6e64aff5a..b2f9fd01e 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -9,9 +9,6 @@ zh-CN:
     contact: 联系方式
     contact_missing: 未设定
     contact_unavailable: 未公开
-    description_headline: 关于 %{domain}
-    domain_count_after: 个其它实例
-    domain_count_before: 现已接入
     extended_description_html: |
       <h3>这里可以写一些规定</h3>
       <p>本站尚未设置详细介绍。</p>
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 7ff0d7ae6..ee7ca4443 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -9,9 +9,6 @@ zh-HK:
     contact: 聯絡
     contact_missing: 未設定
     contact_unavailable: 未公開
-    description_headline: 甚麼是 %{domain} ?
-    domain_count_after: 個其他服務站
-    domain_count_before: 已連接至
     extended_description_html: |
       <h3>這裡可以寫一些網站規則</h3>
       <p>本站未有詳細介紹</p>
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 483cffe8e..0a18dc990 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -9,9 +9,6 @@ zh-TW:
     contact: 聯絡我們
     contact_missing: 未設定
     contact_unavailable: 未公開
-    description_headline: 關於 %{domain}?
-    domain_count_after: 個站點相連
-    domain_count_before: 與其他
     extended_description_html: |
       <h3>這裡可以寫一些網站規則</h3>
       <p>本站點未有詳細介紹</p>
diff --git a/spec/views/about/_contact.html.haml_spec.rb b/spec/views/about/_contact.html.haml_spec.rb
deleted file mode 100644
index 25ba15794..000000000
--- a/spec/views/about/_contact.html.haml_spec.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-describe 'about/_contact.html.haml' do
-  describe 'the contact account', without_verify_partial_doubles: true do
-    before do
-      allow(view).to receive(:display_name).and_return('Display Name!')
-    end
-
-    it 'shows info when account is present' do
-      account = Account.new(username: 'admin')
-      contact = double(contact_account: account, site_contact_email: '')
-      render 'about/contact', contact: contact
-
-      expect(rendered).to have_content('@admin')
-    end
-
-    it 'does not show info when account is missing' do
-      contact = double(contact_account: nil, site_contact_email: '')
-      render 'about/contact', contact: contact
-
-      expect(rendered).not_to have_content('@')
-    end
-  end
-
-  describe 'the contact email' do
-    it 'show info when email is present' do
-      contact = double(site_contact_email: 'admin@example.com', contact_account: nil)
-      render 'about/contact', contact: contact
-
-      expect(rendered).to have_content('admin@example.com')
-    end
-  end
-end