You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
5.9 KiB

  1. - content_for :page_title do
  2. = site_hostname
  3. - content_for :header_tags do
  4. %link{ rel: 'canonical', href: about_url }/
  5. %script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
  6. = render partial: 'shared/og'
  7. .landing-page.alternative
  8. .container
  9. .grid
  10. .column-0
  11. .brand
  12. = link_to root_url do
  13. = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
  14. - if Setting.timeline_preview
  15. .column-1
  16. .landing-page__forms
  17. .brand
  18. = link_to root_url do
  19. = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
  20. = render 'forms'
  21. - else
  22. .column-1.non-preview
  23. .landing-page__forms
  24. .brand
  25. = link_to root_url do
  26. = image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon'
  27. = render 'forms'
  28. - if Setting.timeline_preview
  29. .column-2
  30. .landing-page__hero
  31. = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title
  32. .landing-page__information
  33. .landing-page__short-description
  34. .row
  35. .landing-page__logo
  36. = image_tag asset_pack_path('logo_transparent.svg'), alt: 'Mastodon'
  37. %h1
  38. = @instance_presenter.site_title
  39. %small!= t 'about.hosted_on', domain: content_tag(:span, site_hostname)
  40. %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
  41. .landing-page__call-to-action{ dir: 'ltr' }
  42. .row
  43. .row__information-board
  44. .information-board__section
  45. %span= t 'about.user_count_before'
  46. %strong= number_with_delimiter @instance_presenter.user_count
  47. %span= t 'about.user_count_after', count: @instance_presenter.user_count
  48. .information-board__section
  49. %span= t 'about.status_count_before'
  50. %strong= number_with_delimiter @instance_presenter.status_count
  51. %span= t 'about.status_count_after', count: @instance_presenter.status_count
  52. .row__mascot
  53. .landing-page__mascot
  54. = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('elephant_ui_plane.svg'), alt: ''
  55. - else
  56. .column-2.non-preview
  57. .landing-page__hero
  58. = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title
  59. .landing-page__information
  60. .landing-page__short-description
  61. .row
  62. .landing-page__logo
  63. = image_tag asset_pack_path('logo_transparent.svg'), alt: 'Mastodon'
  64. %h1
  65. = @instance_presenter.site_title
  66. %small!= t 'about.hosted_on', domain: content_tag(:span, site_hostname)
  67. %p= @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)
  68. .landing-page__call-to-action
  69. .row
  70. .row__information-board
  71. .information-board__section
  72. %span= t 'about.user_count_before'
  73. %strong= number_with_delimiter @instance_presenter.user_count
  74. %span= t 'about.user_count_after', count: @instance_presenter.user_count
  75. .information-board__section
  76. %span= t 'about.status_count_before'
  77. %strong= number_with_delimiter @instance_presenter.status_count
  78. %span= t 'about.status_count_after', count: @instance_presenter.status_count
  79. .row__mascot
  80. .landing-page__mascot
  81. = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('elephant_ui_plane.svg'), alt: ''
  82. - if Setting.timeline_preview
  83. .column-3
  84. #mastodon-timeline{ data: { props: Oj.dump(default_props) } }
  85. - if Setting.timeline_preview
  86. .column-4.landing-page__information
  87. .landing-page__features
  88. .features-list
  89. %div
  90. %h3= t 'about.what_is_mastodon'
  91. %p= t 'about.about_mastodon_html'
  92. %div.contact
  93. %h3= t 'about.administered_by'
  94. = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
  95. = render 'features'
  96. .landing-page__features__action
  97. = link_to t('about.learn_more'), 'https://joinmastodon.org/', class: 'button button-alternative'
  98. .landing-page__footer
  99. %p
  100. = link_to t('about.source_code'), @instance_presenter.source_url
  101. = " (#{@instance_presenter.version_number})"
  102. - else
  103. .column-4.non-preview.landing-page__information
  104. .landing-page__features
  105. .features-list
  106. %div
  107. %h3= t 'about.what_is_mastodon'
  108. %p= t 'about.about_mastodon_html'
  109. %div.contact
  110. %h3= t 'about.administered_by'
  111. = account_link_to(@instance_presenter.contact_account, link_to(t('about.learn_more'), about_more_path, class: 'button button-alternative'))
  112. = render 'features'
  113. .landing-page__features__action
  114. = link_to t('about.learn_more'), 'https://joinmastodon.org/', class: 'button button-alternative'
  115. .landing-page__footer
  116. %p
  117. = link_to t('about.source_code'), @instance_presenter.source_url
  118. = " (#{@instance_presenter.version_number})"
  119. #modal-container