peers_api_enabled
show_known_fediverse_at_about_page
preview_sensitive_media
+ custom_css
).freeze
BOOLEAN_SETTINGS = %w(
--- /dev/null
+# frozen_string_literal: true
+
+class CustomCssController < ApplicationController
+ before_action :set_cache_headers
+
+ def show
+ skip_session!
+ render plain: Setting.custom_css || '', content_type: 'text/css'
+ end
+end
.scope-danger {
color: $warning-red;
}
+
+.form_admin_settings_site_short_description,
+.form_admin_settings_site_description,
+.form_admin_settings_site_extended_description,
+.form_admin_settings_site_terms,
+.form_admin_settings_custom_css,
+.form_admin_settings_closed_registrations_message {
+ textarea {
+ font-family: 'mastodon-font-monospace', monospace;
+ }
+}
:show_known_fediverse_at_about_page=,
:preview_sensitive_media,
:preview_sensitive_media=,
+ :custom_css,
+ :custom_css=,
to: Setting
)
end
)
def contact_account
- Account.find_local(Setting.site_contact_username)
+ Account.find_local(Setting.site_contact_username.gsub(/\A@/, ''))
end
def user_count
.fields-group
= f.input :site_extended_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description_extended.title'), hint: t('admin.settings.site_description_extended.desc_html'), input_html: { rows: 8 }
= f.input :site_terms, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_terms.title'), hint: t('admin.settings.site_terms.desc_html'), input_html: { rows: 8 }
-
+ = f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 }, label: t('admin.settings.custom_css.title'), hint: t('admin.settings.custom_css.desc_html')
%hr/
.fields-group
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
= csrf_meta_tags
+ - if Setting.custom_css.present?
+ = stylesheet_link_tag custom_css_path, media: 'all'
+
= yield :header_tags
- body_classes ||= @body_classes || ''
get '.well-known/webfinger', to: 'well_known/webfinger#show', as: :webfinger
get 'manifest', to: 'manifests#show', defaults: { format: 'json' }
get 'intent', to: 'intents#show'
+ get 'custom.css', to: 'custom_css#show', as: :custom_css
devise_scope :user do
get '/invite/:invite_code', to: 'auth/registrations#new', as: :public_invite