Skip to content

Commit

Permalink
Merge pull request rails#176 from p8/fix-rel-prefix
Browse files Browse the repository at this point in the history
Make sidepanel work with relative paths/URLs
  • Loading branch information
p8 authored Jan 5, 2022
2 parents afe04dd + a9a1cd5 commit 6899f88
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 26 deletions.
32 changes: 12 additions & 20 deletions lib/rdoc/generator/template/rails/_head.rhtml
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
<%
# Turbolinks does not consider relative urls similar, resulting in page
# reloads and losing the context of the panel. Emptying the rel_prefix makes
# asset paths absolute. This breaks opening the docs locally. Maybe all
# generated docs should be in the same folder?
rel_prefix = ''
%>
<link rel="stylesheet" href="<%= "#{rel_prefix}/css/reset.css" %>" type="text/css" media="screen" data-turbolinks-track="reload" />
<link rel="stylesheet" href="<%= "#{rel_prefix}/css/panel.css" %>" type="text/css" media="screen" data-turbolinks-track="reload" />
<link rel="stylesheet" href="<%= "#{rel_prefix}/css/main.css" %>" type="text/css" media="screen" data-turbolinks-track="reload" />
<link rel="stylesheet" href="<%= "#{rel_prefix}/css/github.css" %>" type="text/css" media="screen" data-turbolinks-track="reload" />
<script src="<%= "#{rel_prefix}/js/jquery-3.5.1.min.js" %>" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>
<script src="<%= "#{rel_prefix}/js/main.js" %>" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>
<script src="<%= "#{rel_prefix}/js/highlight.pack.js" %>" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>
<script src="<%= rel_prefix %>/js/turbolinks.js" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>
<script src="<%= rel_prefix %>/js/search_index.js" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>
<script src="<%= rel_prefix %>/js/searcher.js" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>
<script src="<%= rel_prefix %>/panel/tree.js" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>
<script src="<%= rel_prefix %>/js/searchdoc.js" type="text/javascript" charset="utf-8" data-turbolinks-track="reload"></script>

<link rel="stylesheet" href="<%= rel_prefix %>/css/reset.css" type="text/css" media="screen" />
<link rel="stylesheet" href="<%= rel_prefix %>/css/panel.css" type="text/css" media="screen" />
<link rel="stylesheet" href="<%= rel_prefix %>/css/main.css" type="text/css" media="screen" />
<link rel="stylesheet" href="<%= rel_prefix %>/css/github.css" type="text/css" media="screen" />
<script src="<%= rel_prefix %>/js/jquery-3.5.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="<%= rel_prefix %>/js/main.js" type="text/javascript" charset="utf-8"></script>
<script src="<%= rel_prefix %>/js/highlight.pack.js" type="text/javascript" charset="utf-8"></script>
<script src="<%= rel_prefix %>/js/turbolinks.js" type="text/javascript" charset="utf-8"></script>
<script src="<%= rel_prefix %>/js/search_index.js" type="text/javascript" charset="utf-8"></script>
<script src="<%= rel_prefix %>/js/searcher.js" type="text/javascript" charset="utf-8"></script>
<script src="<%= rel_prefix %>/panel/tree.js" type="text/javascript" charset="utf-8"></script>
<script src="<%= rel_prefix %>/js/searchdoc.js" type="text/javascript" charset="utf-8"></script>
<meta name="data-rel-prefix" content="<%= rel_prefix %>/">
<meta name="data-tree-keys" content='<%= tree_keys %>'>
2 changes: 1 addition & 1 deletion lib/rdoc/generator/template/rails/resources/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ document.addEventListener("turbolinks:load", function() {
// Only initialize panel if not yet initialized
if(!$('#panel .tree ul li').length) {
$('#links').hide();
var panel = new Searchdoc.Panel($('#panel'), search_data, tree, $('meta[name="data-rel-prefix"]').attr("content"));
var panel = new Searchdoc.Panel($('#panel'), search_data, tree);
var s = window.location.search.match(/\?q=([^&]+)/);
if (s) {
s = decodeURIComponent(s[1]).replace(/\+/g, ' ');
Expand Down
10 changes: 5 additions & 5 deletions lib/rdoc/generator/template/rails/resources/js/searchdoc.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,11 +135,10 @@ function scrollIntoView(element, view) {

// panel.js -----------------------------------------------

Searchdoc.Panel = function(element, data, tree, prefix) {
Searchdoc.Panel = function(element, data, tree) {
this.$element = $(element);
this.$input = $('input', element).eq(0);
this.$result = $('.result ul', element).eq(0);
this.prefix = prefix;
this.$current = null;
this.$view = this.$result.parent();
this.data = data;
Expand Down Expand Up @@ -232,12 +231,13 @@ Searchdoc.Panel.prototype = $.extend({}, Searchdoc.Navigation, new function() {
};

this.open = function(src) {
Turbolinks.visit(this.prefix + src);
var prefix = $('meta[name="data-rel-prefix"]').attr("content");
Turbolinks.visit(prefix + src);
if (this.highlight) this.highlight(src);
};

this.select = function() {
this.open(this.$current.data('path'));
this.open(this.$current.attr('data-path'));
};

this.move = function(isDown) {
Expand Down Expand Up @@ -266,7 +266,7 @@ Searchdoc.Panel.prototype = $.extend({}, Searchdoc.Navigation, new function() {
html += hlt(result.namespace) + '</p>';
if (result.snippet) html += '<p class="snippet">' + stripHTML(result.snippet) + '</p>';
li.innerHTML = html;
jQuery.data(li, 'path', result.path);
$(li).attr('data-path', result.path)
return li;
}

Expand Down

0 comments on commit 6899f88

Please sign in to comment.