Files
danbooru/app/views/layouts/default.html.erb
evazion 91640447c0 Fix antiproxying config options.
Don't embed config options directly in Javascript. Including them in the
Javascript forces us to recompile the Javascript whenever these options
change, which requires us to redeploy the entire site instead of just
restarting the app server.
2020-06-02 20:50:39 -05:00

131 lines
4.5 KiB
Plaintext

<!doctype html>
<html>
<head>
<title><%= page_title %></title>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<%= render "meta_links", collection: @current_item %>
<%= csrf_meta_tag %>
<% unless CurrentUser.enable_desktop_mode? %>
<meta name="viewport" content="width=device-width,initial-scale=1">
<% end %>
<% if CurrentUser.user.blacklisted_tags.present? %>
<meta name="blacklisted-tags" content="<%= CurrentUser.user.blacklisted_tags.gsub(/(?:\r|\n)+/, ",") %>">
<% end %>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<%= javascript_pack_tag "application" %>
<%= stylesheet_pack_tag "application" %>
<% if CurrentUser.user.custom_style.present? && params.fetch(:css, "true").truthy? %>
<%= stylesheet_link_tag custom_style_users_path(md5: Digest::MD5.hexdigest(CurrentUser.user.custom_style)), media: "screen" %>
<% end %>
<% if Danbooru.config.twitter_username.present? %>
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Organization",
"name" : "<%= Danbooru.config.app_name %>",
"url" : "<%= root_url %>",
"sameAs" : [
"https://twitter.com/<%= Danbooru.config.twitter_username %>"
]
}
</script>
<% end %>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url" : "<%= root_url %>",
"potentialAction": [{
"@type": "SearchAction",
"target": "<%= posts_url %>?tags={search_term_string}",
"query-input": "required name=search_term_string"
}]
}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"name": "<%= Danbooru.config.app_name %>",
"alternateName": "Anime Image Board",
"url" : "<%= root_url %>"
}
</script>
<script>
if (typeof window.Danbooru !== "object") {
window.Danbooru = {};
}
window.Danbooru.config = <%= [:hostname, :domain, :enable_antiproxying?].map { |opt| [opt, Danbooru.config.send(opt)] }.to_h.to_json.html_safe %>;
window.Danbooru.notice = Danbooru.Utility.notice;
window.Danbooru.error = Danbooru.Utility.error;
</script>
<%= tag.meta name: "description", content: meta_description %>
<%= tag.meta property: "og:type", content: "website" %>
<%= tag.meta property: "og:site_name", content: Danbooru.config.app_name %>
<%= tag.meta property: "og:title", content: page_title %>
<%= tag.meta property: "og:description", content: meta_description %>
<%= tag.meta property: "og:url", content: request.original_url %>
<% if Danbooru.config.twitter_username.present? %>
<%= tag.meta name: "twitter:site", content: "@#{Danbooru.config.twitter_username}" %>
<% end %>
<%= tag.meta name: "twitter:title", content: page_title %>
<%= tag.meta name: "twitter:description", content: meta_description %>
<%= tag.meta name: "git-hash", content: Rails.application.config.x.git_hash %>
<%= yield :html_header %>
<%= raw Danbooru.config.custom_html_header_content %>
</head>
<%= tag.body **body_attributes(CurrentUser.user, params, @current_item) do %>
<%= render "news_updates/listing" %>
<header id="top">
<h1 id="app-name-header"><%= link_to Danbooru.config.app_name, "/" %></h1>
<div id="maintoggle" class="mobile-only">
<a href="#"><i id="maintoggle-on" class="fas fa-bars"></i></a>
<a href="#"><i id="maintoggle-off" class="fas fa-times" style="display: none;"></i></a>
</div>
<nav id="nav">
<%= render "layouts/main_links" %>
<% if content_for(:secondary_links).present? %>
<menu id="subnav-menu">
<%= yield :secondary_links %>
</menu>
<% end %>
</nav>
</header>
<div id="page">
<% if !CurrentUser.is_anonymous? && !CurrentUser.is_gold? && cookies[:hide_upgrade_account_notice].blank? && params[:action] != "upgrade_information" %>
<%= render "users/upgrade_notice" %>
<% end %>
<% if CurrentUser.user.is_banned? %>
<%= render "users/ban_notice" %>
<% end %>
<% if params[:controller] != "dmails" && has_unread_dmails?(CurrentUser.user) %>
<%= render "users/dmail_notice" %>
<% end %>
<div class="notice notice-info" id="notice" style="<%= "display: none;" unless flash[:notice] %>">
<span class="prose"><%= format_text(flash[:notice], inline: true) %>.</span>
<a href="#" id="close-notice-link">close</a>
</div>
<%= yield :layout %>
</div>
<%= render "static/footer" %>
<% end %>
</html>