2016-05-25 12:06:00 -04:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
|
|
|
|
<meta name="description" content="">
|
|
|
|
<meta name="author" content="">
|
2017-01-02 21:31:44 -05:00
|
|
|
<% if defined? redirect then %>
|
|
|
|
<meta http-equiv="refresh" content="0;<%=redirect%>"
|
|
|
|
<% end %>
|
2016-05-25 12:06:00 -04:00
|
|
|
<link rel="icon" href="../../favicon.ico">
|
|
|
|
|
|
|
|
<title>The ODIn Lab - <%= title %></title>
|
|
|
|
|
|
|
|
<!-- Bootstrap core CSS -->
|
2016-05-25 20:57:21 -04:00
|
|
|
<link href="<%= asset_path("bootstrap")%>/css/bootstrap.min.css" rel="stylesheet" />
|
2016-05-25 12:06:00 -04:00
|
|
|
|
|
|
|
<!-- Custom styles for this template -->
|
2016-05-25 20:57:21 -04:00
|
|
|
<link href="<%= asset_path("odin.css")%>" rel="stylesheet" />
|
|
|
|
<% if defined? extraCSS then extraCSS.each do |data| %>
|
|
|
|
<% if data.has_key? "asset" %>
|
|
|
|
<link href="<%= asset_path(data["asset"]) %>" rel="stylesheet"/>
|
|
|
|
<% elsif data.has_key? "file" %>
|
|
|
|
<link href="<%= data["file"] %>" rel="stylesheet"/>
|
|
|
|
<% else raise "Invalid extraCSS: #{data}" end %>
|
|
|
|
<% end end %>
|
|
|
|
|
2016-05-25 23:08:33 -04:00
|
|
|
<!-- MathJax Configuration -->
|
|
|
|
<script type="text/x-mathjax-config">
|
|
|
|
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
|
|
|
|
</script>
|
2016-05-25 12:06:00 -04:00
|
|
|
|
|
|
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
|
|
|
<!--[if lt IE 9]>
|
|
|
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
|
|
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
|
|
<![endif]-->
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<nav class="navbar navbar-inverse navbar-fixed-top">
|
|
|
|
<div class="container">
|
|
|
|
<div class="navbar-header">
|
|
|
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
|
|
|
<span class="sr-only">Toggle navigation</span>
|
|
|
|
<span class="icon-bar"></span>
|
|
|
|
<span class="icon-bar"></span>
|
|
|
|
<span class="icon-bar"></span>
|
|
|
|
</button>
|
2016-05-25 16:58:50 -04:00
|
|
|
<a class="navbar-brand" href="<%=root_path("index.html")%>">The ODIn Lab</a>
|
2016-05-25 12:06:00 -04:00
|
|
|
</div>
|
|
|
|
<div id="navbar" class="collapse navbar-collapse">
|
|
|
|
<ul class="nav navbar-nav">
|
|
|
|
<% [
|
2017-01-09 12:17:45 -05:00
|
|
|
"People", "Research", "Teaching", "Papers", "Grants", "News", "Seminar"
|
2016-05-25 12:06:00 -04:00
|
|
|
].each do |cat| %>
|
|
|
|
<%= if File.split(rel_dir).include? cat.downcase then "<li class=\"active\">" else "<li>" end %>
|
2016-05-25 16:58:50 -04:00
|
|
|
<a href="<%=root_path(File.join(cat.downcase, "index.html"))%>"><%= cat %></a></li>
|
2016-05-25 12:06:00 -04:00
|
|
|
<% end %>
|
2016-06-03 12:13:12 -04:00
|
|
|
<li><a href="http://github.com/ubodin">Software</a></li>
|
2016-05-25 20:57:21 -04:00
|
|
|
<li><a href="http://gitlab.odin.cse.buffalo.edu/odin-lab/documentation/wikis/home">Wiki</a></li>
|
2016-05-25 12:06:00 -04:00
|
|
|
</ul>
|
|
|
|
</div><!--/.nav-collapse -->
|
|
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
<div class="container">
|
|
|
|
|
|
|
|
<%= body %>
|
|
|
|
|
|
|
|
</div><!-- /.container -->
|
|
|
|
|
2019-06-28 15:41:38 -04:00
|
|
|
<hr>
|
|
|
|
|
|
|
|
<p style="font-size: 70%; text-align: center; font-style: italic; ">This page last updated <%= Time.now %></p>
|
|
|
|
|
2016-05-25 12:06:00 -04:00
|
|
|
|
|
|
|
<!-- Bootstrap core JavaScript
|
|
|
|
================================================== -->
|
|
|
|
<!-- Placed at the end of the document so the pages load faster -->
|
2016-07-31 13:26:09 -04:00
|
|
|
<script src="<%= asset_path("jquery.js")%>"></script>
|
2016-05-25 12:06:00 -04:00
|
|
|
<script src="<%= asset_path("bootstrap")%>/js/bootstrap.min.js"></script>
|
2016-05-25 23:08:33 -04:00
|
|
|
<script src="<%= asset_path("mathjax")%>/MathJax.js"></script>
|
|
|
|
<script src="<%= asset_path("mathjax")%>/config/TeX-AMS_HTML-full.js"></script>
|
2017-08-31 18:38:05 -04:00
|
|
|
<% if false %>
|
|
|
|
<!-- Piwik -->
|
|
|
|
<script type="text/javascript">
|
|
|
|
var _paq = _paq || [];
|
|
|
|
_paq.push(['trackPageView']);
|
|
|
|
_paq.push(['enableLinkTracking']);
|
|
|
|
(function() {
|
|
|
|
_paq.push(['setTrackerUrl', 'http://api-80180613f4a5602572451ebeb0091180.ubodin.sandcats.io']);
|
|
|
|
_paq.push(['setSiteId', 1]);
|
|
|
|
_paq.push(['setApiToken', 'EhMy6kKUxpZv2IJNNrIaYgZGEpG7c4-H_S5rp-b9jBE']);
|
|
|
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
|
|
g.type='text/javascript'; g.async=true; g.defer=true; g.src='http://q09c9fmau0njxmjea7hh.ubodin.sandcats.io/embed.js'; s.parentNode.insertBefore(g,s);
|
|
|
|
})();
|
|
|
|
</script>
|
|
|
|
<!-- End Piwik Code -->
|
|
|
|
<% end %>
|
2017-07-09 10:59:06 -04:00
|
|
|
<!-- Click select. Liberally borrowed from DBLP -->
|
|
|
|
<script type="text/javascript">
|
|
|
|
function getSelectionText(){
|
|
|
|
var b = "";
|
|
|
|
if (window.getSelection) {
|
|
|
|
b = window.getSelection().toString()
|
|
|
|
} else {
|
|
|
|
if (document.selection && document.selection.type != "Control") {
|
|
|
|
b = document.selection.createRange().text
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
function selectText(c) {
|
|
|
|
var e = document, b, d;
|
|
|
|
if (e.body.createTextRange) {
|
|
|
|
b = document.body.createTextRange();
|
|
|
|
b.moveToElementText(c);
|
|
|
|
b.select()
|
|
|
|
} else {
|
|
|
|
if (window.getSelection) {
|
|
|
|
d = window.getSelection();
|
|
|
|
b = document.createRange();
|
|
|
|
b.selectNodeContents(c);
|
|
|
|
d.removeAllRanges();
|
|
|
|
d.addRange(b)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$(".select-on-click").click(function() {
|
|
|
|
var c = getSelectionText();
|
|
|
|
if (!c || c.length == 0) {
|
|
|
|
selectText($(this)[0])
|
|
|
|
}
|
|
|
|
});
|
|
|
|
if (!$(".select-on-click").prop("title")) {
|
|
|
|
$(".select-on-click").prop("title", "click to select text")
|
|
|
|
}
|
|
|
|
</script>
|
2016-05-25 12:06:00 -04:00
|
|
|
</body>
|
|
|
|
</html>
|