Redesign the landing page, mount public timeline on it (#4122)
* Redesign the landing page, mount public timeline on it * Adjust the standalone mounted component to the lacking of router * Adjust auth layout pages to new design * Fix tests * Standalone public timeline polling every 5 seconds * Remove now obsolete translations * Add responsive design for new landing page * Address reviews * Add floating clouds behind frontpage form * Use access token from public page when available * Fix mentions and hashtags links, cursor on status content in standalone mode * Add footer link to source code * Fix errors on pages that don't embed the component, use classnames * Fix tests * Change anonymous autoPlayGif default to false * When gif autoplay is disabled, hover to play * Add option to hide the timeline preview * Slightly improve alt layout * Add elephant friend to new frontpage * Display "back to mastodon" in place of "login" when logged in on frontpage * Change polling time to 3s
This commit is contained in:
		@@ -1,4 +1,5 @@
 | 
			
		||||
- content_for :header_tags do
 | 
			
		||||
  %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
 | 
			
		||||
  = javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous'
 | 
			
		||||
 | 
			
		||||
- content_for :page_title do
 | 
			
		||||
@@ -9,79 +10,70 @@
 | 
			
		||||
  %meta{ property: 'og:url', content: about_url }/
 | 
			
		||||
  %meta{ property: 'og:type', content: 'website' }/
 | 
			
		||||
  %meta{ property: 'og:title', content: site_hostname }/
 | 
			
		||||
  %meta{ property: 'og:description', content: strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon')) }/
 | 
			
		||||
  %meta{ property: 'og:description', content: strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html')) }/
 | 
			
		||||
  %meta{ property: 'og:image', content: asset_pack_path('mastodon_small.jpg', protocol: :request) }/
 | 
			
		||||
  %meta{ property: 'og:image:width', content: '400' }/
 | 
			
		||||
  %meta{ property: 'og:image:height', content: '400' }/
 | 
			
		||||
  %meta{ property: 'twitter:card', content: 'summary' }/
 | 
			
		||||
 | 
			
		||||
.wrapper
 | 
			
		||||
  %h1
 | 
			
		||||
    = image_tag asset_pack_path('logo.png')
 | 
			
		||||
    = Setting.site_title
 | 
			
		||||
.landing-page
 | 
			
		||||
  .header-wrapper
 | 
			
		||||
    .mascot-container
 | 
			
		||||
      = image_tag asset_pack_path('elephant-fren.png'), class: 'mascot'
 | 
			
		||||
 | 
			
		||||
  %p!= t('about.about_mastodon')
 | 
			
		||||
    .header
 | 
			
		||||
      .container.links
 | 
			
		||||
        .brand
 | 
			
		||||
          = link_to root_url do
 | 
			
		||||
            = image_tag asset_pack_path('logo.svg')
 | 
			
		||||
            Mastodon
 | 
			
		||||
 | 
			
		||||
  .screenshot-with-signup
 | 
			
		||||
    .mascot= image_tag asset_pack_path('fluffy-elephant-friend.png')
 | 
			
		||||
        %ul.nav
 | 
			
		||||
          %li
 | 
			
		||||
            - if user_signed_in?
 | 
			
		||||
              = link_to t('settings.back'), root_url, class: 'webapp-btn'
 | 
			
		||||
            - else
 | 
			
		||||
              = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn'
 | 
			
		||||
          %li= link_to t('about.about_this'), about_more_path
 | 
			
		||||
          %li= link_to t('about.other_instances'), 'https://joinmastodon.org/'
 | 
			
		||||
 | 
			
		||||
    - if @instance_presenter.open_registrations
 | 
			
		||||
      = render 'registration'
 | 
			
		||||
    - else
 | 
			
		||||
      .closed-registrations-message
 | 
			
		||||
        - if @instance_presenter.closed_registrations_message.blank?
 | 
			
		||||
          %p= t('about.closed_registrations')
 | 
			
		||||
      .container.hero
 | 
			
		||||
        .floats
 | 
			
		||||
          = image_tag asset_pack_path('cloud2.png'), class: 'float-1'
 | 
			
		||||
          = image_tag asset_pack_path('cloud3.png'), class: 'float-2'
 | 
			
		||||
          = image_tag asset_pack_path('cloud4.png'), class: 'float-3'
 | 
			
		||||
        .heading
 | 
			
		||||
          %h1
 | 
			
		||||
            = @instance_presenter.site_title
 | 
			
		||||
            %small= t 'about.hosted_on', domain: site_hostname
 | 
			
		||||
        - if @instance_presenter.open_registrations
 | 
			
		||||
          = render 'registration'
 | 
			
		||||
        - else
 | 
			
		||||
          != @instance_presenter.closed_registrations_message
 | 
			
		||||
        .info
 | 
			
		||||
          = link_to t('auth.login'), new_user_session_path, class: 'webapp-btn'
 | 
			
		||||
          ·
 | 
			
		||||
          = link_to t('about.other_instances'), 'https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/List-of-Mastodon-instances.md'
 | 
			
		||||
          ·
 | 
			
		||||
          = link_to t('about.about_this'), about_more_path
 | 
			
		||||
          .closed-registrations-message
 | 
			
		||||
            %div
 | 
			
		||||
              - if @instance_presenter.closed_registrations_message.blank?
 | 
			
		||||
                %p= t('about.closed_registrations')
 | 
			
		||||
              - else
 | 
			
		||||
                = @instance_presenter.closed_registrations_message.html_safe
 | 
			
		||||
            = link_to t('about.find_another_instance'), 'https://joinmastodon.org', class: 'button button-alternative button--block'
 | 
			
		||||
 | 
			
		||||
  %h3= t('about.features_headline')
 | 
			
		||||
  .learn-more-cta
 | 
			
		||||
    .container
 | 
			
		||||
      %h3= t('about.description_headline', domain: site_hostname)
 | 
			
		||||
      %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
 | 
			
		||||
 | 
			
		||||
  .features-list
 | 
			
		||||
    .features-list__column
 | 
			
		||||
      %ul.fa-ul
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.chronology'
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.public'
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.characters'
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.gifv'
 | 
			
		||||
    .features-list__column
 | 
			
		||||
      %ul.fa-ul
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.privacy'
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.blocks'
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.ethics'
 | 
			
		||||
        %li
 | 
			
		||||
          = fa_icon('li check-square')
 | 
			
		||||
          = t 'about.features.api'
 | 
			
		||||
  .features
 | 
			
		||||
    .container
 | 
			
		||||
      - if Setting.timeline_preview
 | 
			
		||||
        #mastodon-timeline{ data: { props: Oj.dump(default_props) } }
 | 
			
		||||
 | 
			
		||||
  - unless @instance_presenter.site_description.blank?
 | 
			
		||||
    %h3= t('about.description_headline', domain: site_hostname)
 | 
			
		||||
    %p!= @instance_presenter.site_description
 | 
			
		||||
 | 
			
		||||
  .actions
 | 
			
		||||
    .info
 | 
			
		||||
      = link_to t('about.terms'), terms_path
 | 
			
		||||
      ·
 | 
			
		||||
      = link_to t('about.apps'), 'https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md'
 | 
			
		||||
      ·
 | 
			
		||||
      = link_to t('about.source_code'), 'https://github.com/tootsuite/mastodon'
 | 
			
		||||
      ·
 | 
			
		||||
      = link_to t('about.other_instances'), 'https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/List-of-Mastodon-instances.md'
 | 
			
		||||
      .about-mastodon
 | 
			
		||||
        %h3= t 'about.what_is_mastodon'
 | 
			
		||||
        %p= t 'about.about_mastodon_html'
 | 
			
		||||
        %a.button.button-secondary{ href: 'https://joinmastodon.org' }= t 'about.learn_more'
 | 
			
		||||
        = render 'features'
 | 
			
		||||
  .footer-links
 | 
			
		||||
    .container
 | 
			
		||||
      %p
 | 
			
		||||
        = link_to t('about.source_code'), 'https://github.com/tootsuite/mastodon'
 | 
			
		||||
        = " (#{@instance_presenter.version_number})"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user