Mojolicious
view release on metacpan or search on metacpan
lib/Mojolicious/resources/templates/mojo/debug.html.ep view on Meta::CPAN
% use re qw(regexp_pattern);
<!DOCTYPE html>
<!-- Request ID: <%= $c->req->request_id %> -->
<html>
<head>
% my $title = stash('exception') ? 'Server Error' : 'Page Not Found';
<title><%= $title %> (<%= app->mode %> mode)</title>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
%= favicon
%= javascript '/mojo/highlight.js/highlight.min.js'
%= javascript '/mojo/highlight.js/mojolicious.min.js'
%= javascript '/mojo/popper/popper.js'
%= javascript '/mojo/bootstrap/bootstrap.js'
%= stylesheet '/mojo/bootstrap/bootstrap.css'
%= stylesheet '/mojo/highlight.js/highlight-mojo-dark.css'
%= stylesheet '/mojo/mojo.css'
<script>
'use strict';
hljs.initHighlightingOnLoad();
window.addEventListener('load', () => {
for (const tooltip of document.querySelectorAll('[data-bs-toggle="tooltip"]')) {
new bootstrap.Tooltip(tooltip);
}
});
</script>
<style>
.fa-copyright {
line-height: 12px;
height: 12px;
width: 12px;
display: inline-block;
}
.fa-icon {
width: 32px;
display: inline-block;
line-height: 24px;
}
</style>
</head>
<body class="d-flex flex-column h-100">
<header>
<nav class="navbar navbar-expand-lg navbar-dark mojobar">
<a href="https://mojolicious.org" id="mojobar-brand" class="navbar-brand">
<picture>
<img src="<%= url_for_file '/mojo/logo-white.png' %>"
srcset="<%= url_for_file '/mojo/logo-white-2x.png' %> 2x">
</picture>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div id="navbarNav" class="collapse navbar-collapse">
<ul class="navbar-nav me-auto">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Documentation
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="https://docs.mojolicious.org">Overview</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/Tutorial">Tutorial</a>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/Growing">Growing</a>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/Routing">Routing</a>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/Rendering">Rendering</a>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/Testing">Testing</a>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/Cookbook">Cookbook</a>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/Contributing">Contributing</a>
<a class="dropdown-item" href="https://docs.mojolicious.org/Mojolicious/Guides/FAQ">FAQ</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="https://docs.mojolicious.org#API">API</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="communityDropdown" role="button" data-bs-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Community
</a>
<div class="dropdown-menu" aria-labelledby="communityDropdown">
<a class="dropdown-item" href="https://web.libera.chat/#mojo">IRC</a>
<a class="dropdown-item" href="https://forum.mojolicious.org">Forum</a>
<a class="dropdown-item" href="https://fosstodon.org/@mojolicious">Mastodon</a>
<a class="dropdown-item" href="https://www.linkedin.com/groups/8963713/">LinkedIn</a>
<a class="dropdown-item" href="https://github.com/mojolicious/mojo/wiki">Wiki</a>
<a class="dropdown-item" href="https://metacpan.org/release/Mojolicious/">CPAN</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link" href="https://github.com/mojolicious/mojo/">Contribute on GitHub</a>
</li>
</ul>
<form action="https://www.google.com/cse" target="_blank" class="form-inline my-2 my-lg-0">
%= hidden_field cx => '014527573091551588235:pwfplkjpgbi'
%= hidden_field ie => 'UTF-8'
%= search_field 'q', placeholder => 'Search...'
</form>
</div>
</nav>
</header>
<script>
'use strict';
function mojoDrawer(handle, drawer) {
const handleEl = document.querySelector(handle);
if (handleEl === null) return;
handleEl.addEventListener('click', () => {
const drawerEl = document.querySelector(drawer);
let text = handleEl.innerText;
text = text == "tap for more" ? "tap for less" : "tap for more";
const divTap = document.querySelector(handle + ' div.tap');
if (divTap !== null) divTap.innerText = text;
drawerEl.classList.toggle('d-none');
});
}
window.addEventListener('load', () => {
mojoDrawer('#trace', '#frames');
mojoDrawer('#more', '#infos');
});
</script>
<div class="container flex-grow-1">
<div class="row flex-wrap">
<main class="col-sm-12 col-md-8 col-lg-10 py-md-3 pl-md-5">
<div class="row mojo-divider">
% my $kv = begin
% my ($key, $value) = @_;
<tr>
<td class="key text-right"><%= $key %>:</td>
<td class="value"><pre><%= $value %></pre></td>
</tr>
% end
% if (my $exception = stash 'exception') {
<div class="alert alert-danger wide" role="alert">
<h2>Server Error</h2>
This application is in <b>development</b> mode and will show internal information to help you with
debugging.
</div>
% my $cv = begin
( run in 0.766 second using v1.01-cache-2.11-cpan-364913b4093 )