diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 75d00326c76..3234b194f37 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -6,6 +6,7 @@ module Admin site_contact_username site_contact_email site_title + site_short_description site_description site_extended_description site_terms diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 723480bddb4..010cf7fc3e6 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -10,6 +10,8 @@ class Form::AdminSettings :site_contact_email=, :site_title, :site_title=, + :site_short_description, + :site_short_description=, :site_description, :site_description=, :site_extended_description, diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index e4972c9623c..31365b64686 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -6,6 +6,7 @@ class InstancePresenter :site_contact_email, :open_registrations, :site_title, + :site_short_description, :site_description, :site_extended_description, :site_terms, diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index f5c5deca850..fda6b00f44b 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -7,7 +7,8 @@ .fields-group = f.input :site_title, placeholder: t('admin.settings.site_title') - = f.input :site_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description.title'), hint: t('admin.settings.site_description.desc_html'), input_html: { rows: 8 } + = f.input :site_short_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_short_description.title'), hint: t('admin.settings.site_short_description.desc_html'), input_html: { rows: 2 } + = f.input :site_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description.title'), hint: t('admin.settings.site_description.desc_html'), input_html: { rows: 4 } = f.input :site_contact_username, placeholder: t('admin.settings.contact_information.username') = f.input :site_contact_email, placeholder: t('admin.settings.contact_information.email') diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml index 3d8832bb47e..2ff14b2526f 100644 --- a/app/views/application/_sidebar.html.haml +++ b/app/views/application/_sidebar.html.haml @@ -3,4 +3,4 @@ = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title .hero-widget__text - %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) + %p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) diff --git a/app/views/shared/_og.html.haml b/app/views/shared/_og.html.haml index a6d805bea22..76db511cd86 100644 --- a/app/views/shared/_og.html.haml +++ b/app/views/shared/_og.html.haml @@ -3,7 +3,7 @@ = opengraph 'og:url', url_for(only_path: false) = opengraph 'og:type', 'website' = opengraph 'og:title', @instance_presenter.site_title -= opengraph 'og:description', strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html')) += opengraph 'og:description', strip_tags(@instance_presenter.site_short_description.presence || @instance_presenter.site_description.presence || t('about.about_mastodon_html')) = opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('preview.jpg', protocol: :request)) = opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200' = opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630' diff --git a/config/locales/en.yml b/config/locales/en.yml index 66f475ded67..4693fe1ba30 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -372,11 +372,14 @@ en: desc_html: Show a staff badge on a user page title: Show staff badge site_description: - desc_html: Introductory paragraph on the frontpage and in meta tags. You can use HTML tags, in particular <a> and <em>. + desc_html: Introductory paragraph on the frontpage. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a> and <em>. title: Instance description site_description_extended: desc_html: A good place for your code of conduct, rules, guidelines and other things that set your instance apart. You can use HTML tags title: Custom extended information + site_short_description: + desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to instance description. + title: Short instance description site_terms: desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags title: Custom terms of service diff --git a/config/settings.yml b/config/settings.yml index 190f6afcd1a..399f25a9a9a 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -8,6 +8,7 @@ # defaults: &defaults site_title: Mastodon + site_short_description: '' site_description: '' site_extended_description: '' site_terms: '' diff --git a/spec/views/about/show.html.haml_spec.rb b/spec/views/about/show.html.haml_spec.rb index cbe5aa93b68..12efc06fd00 100644 --- a/spec/views/about/show.html.haml_spec.rb +++ b/spec/views/about/show.html.haml_spec.rb @@ -11,6 +11,7 @@ describe 'about/show.html.haml', without_verify_partial_doubles: true do it 'has valid open graph tags' do instance_presenter = double(:instance_presenter, site_title: 'something', + site_short_description: 'something', site_description: 'something', version_number: '1.0', source_url: 'https://github.com/tootsuite/mastodon',