mirror of
https://github.com/discourse/discourse.git
synced 2024-11-28 02:34:43 +08:00
03deda2147
* Add missing icons to set
* Revert FA5 revert
This reverts commit 42572ff
* use new SVG syntax in locales
* Noscript page changes (remove login button, center "powered by" footer text)
* Cast wider net for SVG icons in settings
- include any _icon setting for SVG registry (offers better support for plugin settings)
- let themes store multiple pipe-delimited icons in a setting
- also replaces broken onebox image icon with SVG reference in cooked post processor
* interpolate icons in locales
* Fix composer whisper icon alignment
* Add support for stacked icons
* SECURITY: enforce hostname to match discourse hostname
This ensures that the hostname rails uses for various helpers always matches
the Discourse hostname
* load SVG sprite with pre-initializers
* FIX: enable caching on SVG sprites
* PERF: use JSONP for SVG sprites so they are served from CDN
This avoids needing to deal with CORS for loading of the SVG
Note, added the svg- prefix to the filename so we can quickly tell in
dev tools what the file is
* Add missing SVG sprite JSONP script to CSP
* Upgrade to FA 5.5.0
* Add support for all FA4.7 icons
- adds complete frontend and backend for renamed FA4.7 icons
- improves performance of SvgSprite.bundle and SvgSprite.all_icons
* Fix group avatar flair preview
- adds an endpoint at /svg-sprites/search/:keyword
- adds frontend ajax call that pulls icon in avatar flair preview even when it is not in subset
* Remove FA 4.7 font files
121 lines
4.1 KiB
Plaintext
121 lines
4.1 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="<%= html_lang %>" class="<%= html_classes %>">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title><%= content_for?(:title) ? yield(:title) : SiteSetting.title %></title>
|
|
<meta name="description" content="<%= @description_meta || SiteSetting.site_description %>">
|
|
<meta name="discourse_theme_ids" content="<%= theme_ids&.join(",") %>">
|
|
<meta name="discourse_current_homepage" content="<%= current_homepage %>">
|
|
<%= render partial: "layouts/head" %>
|
|
<%= discourse_csrf_tags %>
|
|
|
|
<%- if SiteSetting.enable_escaped_fragments? %>
|
|
<meta name="fragment" content="!">
|
|
<%- end %>
|
|
|
|
<%- if shared_session_key %>
|
|
<meta name="shared_session_key" content="<%= shared_session_key %>">
|
|
<%- end %>
|
|
|
|
<%= preload_script "locales/#{I18n.locale}" %>
|
|
<%= preload_script "ember_jquery" %>
|
|
<%= preload_script "preload-store" %>
|
|
<%= preload_script "vendor" %>
|
|
<%= preload_script "pretty-text-bundle" %>
|
|
<%= preload_script "application" %>
|
|
<%- if allow_plugins? %>
|
|
<%= preload_script "plugin" %>
|
|
<%- end %>
|
|
<%- if allow_third_party_plugins? %>
|
|
<%= preload_script "plugin-third-party" %>
|
|
<%- end %>
|
|
|
|
<%- if staff? %>
|
|
<script src="<%= ExtraLocalesController.url('admin') %>"></script>
|
|
<%= preload_script "admin" %>
|
|
<%- end %>
|
|
|
|
<%- unless customization_disabled? %>
|
|
<%= raw theme_lookup("head_tag") %>
|
|
<%- end %>
|
|
|
|
<%= render_google_tag_manager_head_code %>
|
|
<%= render_google_universal_analytics_code %>
|
|
<link rel="manifest" href="<%= Discourse.base_uri %>/manifest.webmanifest">
|
|
|
|
<%- if SiteSetting.native_app_install_banner? %>
|
|
<meta name="apple-itunes-app" content="app-id=1173672076">
|
|
<%- end %>
|
|
|
|
<%= render partial: "common/discourse_stylesheet" %>
|
|
|
|
<%= yield :head %>
|
|
|
|
<%= build_plugin_html 'server:before-head-close' %>
|
|
|
|
<%= tag.meta id: 'data-discourse-setup', data: client_side_setup_data %>
|
|
|
|
<%- if !current_user && cookies[:authentication_data] %>
|
|
<meta id="data-authentication" data-authentication-data="<%= cookies.delete(:authentication_data) %>">
|
|
<%= preload_script "authentication-complete" %>
|
|
<%- end %>
|
|
</head>
|
|
|
|
<body class="<%= body_classes %>">
|
|
<%= render_google_tag_manager_body_code %>
|
|
<noscript data-path="<%= request.env['PATH_INFO'] %>">
|
|
<%= render partial: 'header' %>
|
|
<div id="main-outlet" class="wrap">
|
|
<!-- preload-content: -->
|
|
<%= yield %>
|
|
<!-- :preload-content -->
|
|
<footer>
|
|
<nav itemscope itemtype='http://schema.org/SiteNavigationElement'>
|
|
<a href='<%= path "/" %>'><%= t 'home_title' %></a>
|
|
<%= link_to t('js.filters.categories.title'), path("/categories") %>
|
|
<%= link_to t('guidelines_topic.title'), path("/guidelines") %>
|
|
<%= link_to t('tos_topic.title'), path("/tos") %>
|
|
<%= link_to t('privacy_topic.title'), path("/privacy") %>
|
|
</nav>
|
|
</footer>
|
|
</div>
|
|
|
|
<footer id='noscript-footer'>
|
|
<p style="text-align:center;"><%= t 'powered_by_html' %></p>
|
|
</footer>
|
|
</noscript>
|
|
|
|
<%- unless customization_disabled? %>
|
|
<%= theme_lookup("header") %>
|
|
<%= build_plugin_html 'server:header' %>
|
|
<%- end %>
|
|
|
|
<section id='main'>
|
|
</section>
|
|
|
|
<div id='offscreen-content'>
|
|
</div>
|
|
|
|
<% unless current_user %>
|
|
<form id='hidden-login-form' method="post" action="<%=main_app.login_path%>" style="display: none;">
|
|
<input name="username" type="text" id="signin_username">
|
|
<input name="password" type="password" id="signin_password">
|
|
<input name="redirect" type="hidden">
|
|
<input type="submit" id="signin-button" value="<%= t 'log_in' %>">
|
|
</form>
|
|
<% end %>
|
|
|
|
<div class="hidden" id="data-preloaded" data-preloaded="<%= preloaded_json %>"></div>
|
|
<%= preload_script "preload-application-data" %>
|
|
|
|
<%= yield :data %>
|
|
|
|
<%= preload_script 'browser-update' %>
|
|
|
|
<%- unless customization_disabled? %>
|
|
<%= raw theme_lookup("body_tag") %>
|
|
<%- end %>
|
|
<%= build_plugin_html 'server:before-body-close' %>
|
|
</body>
|
|
</html>
|