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.
131 lines
4.5 KiB
Plaintext
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>
|