diff --git a/_config.yml b/_config.yml index 3b8537c86b3d721265bfb4fdff1d5658564808d8..4ba494b973f01afdc3f85ca01589346ba90c6b72 100644 --- a/_config.yml +++ b/_config.yml @@ -15,7 +15,7 @@ # in the templates via {{ site.myvariable }}. title: Just the Docs description: A Jekyll theme for documentation -# baseurl: "" # the subpath of your site, e.g. /blog +baseurl: "/just-the-docs" # the subpath of your site, e.g. /blog # url: "" # the base hostname & protocol for your site, e.g. http://example.com sass: diff --git a/_layouts/default.html b/_layouts/default.html index fd3c62c013ae0fc90fb032612057fb86df5bdb76..87f37066f708a0b8de1313a252378c2029ac3dad 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -5,7 +5,7 @@ <div class="page-wrap"> <div class="side-bar"> - <a href="{{ site.url }}" class="site-title fs-6 text-grey-dk-300 lh-tight">{{ site.title }}</a> + <a href="{{ site.baseurl }}/" class="site-title fs-6 text-grey-dk-300 lh-tight">{{ site.title }}</a> <span class="fs-3"><button class="js-main-nav-trigger navigation-list-toggle btn btn-outline" type="button" data-text-toggle="Hide">Menu</button></span> <div class="navigation main-nav js-main-nav"> {% include nav.html %} diff --git a/assets/js/just-the-docs.js b/assets/js/just-the-docs.js index 286c8fb158b1f282bc3f5e8fa72269b68de3f4ea..dd24cfc854e25a5c37e96ffecc849539a524f24e 100644 --- a/assets/js/just-the-docs.js +++ b/assets/js/just-the-docs.js @@ -35,14 +35,29 @@ function initSearch() { var index = lunr(function () { this.ref('id'); this.field('title', { boost: 20 }); - this.field('content'); + this.field('content', { boost: 10 }); this.field('url'); }); // Get the generated search_data.json file so lunr.js can search it locally. + sc = document.getElementsByTagName("script"); + source = ''; + + for(idx = 0; idx < sc.length; idx++) + { + s = sc.item(idx); + + if(s.src && s.src.match(/just-the-docs\.js$/)) + { source = s.src; } + } + + jsPath = source.replace('just-the-docs.js', ''); + + jsonPath = jsPath + '/search-data.json'; + var request = new XMLHttpRequest(); - request.open('GET', '/search-data.json', true); + request.open('GET', jsonPath, true); request.onload = function() { if (request.status >= 200 && request.status < 400) { @@ -103,11 +118,12 @@ function initSearch() { var resultsLink = document.createElement('a'); var resultsUrlDesc = document.createElement('span'); var resultsUrl = store[results[i].ref].url; + var resultsRelUrl = store[results[i].ref].relUrl; var resultsTitle = store[results[i].ref].title; - resultsLink.setAttribute('href', store[results[i].ref].url); + resultsLink.setAttribute('href', resultsUrl); resultsLink.innerText = resultsTitle; - resultsUrlDesc.innerText = resultsUrl; + resultsUrlDesc.innerText = resultsRelUrl; resultsList.classList.add('search-results-list'); resultsListItem.classList.add('search-results-list-item'); diff --git a/lib/tasks/search.rake b/lib/tasks/search.rake index e653be896beddc9b4c65e03e1889e51270a67ea4..0e433b2aea3062f049f46a5e489d67891a3ab835 100644 --- a/lib/tasks/search.rake +++ b/lib/tasks/search.rake @@ -2,10 +2,12 @@ namespace :search do desc 'Generate the files needed for search functionality' task :init do puts 'Creating search data json file...' - touch 'search-data.json' + touch 'assets/js/search-data.json' content = %Q[{{ page.content | markdownify | strip_html | xml_escape | remove: 'Table of contents' | strip_newlines | replace: '\\', ' ' }}] - File.open('search-data.json', 'w') do |f| + puts 'Generating content...' + + File.open('assets/js/search-data.json', 'w') do |f| f.puts '--- --- { @@ -18,5 +20,6 @@ namespace :search do {% endif %}{% endfor %} }' end + puts 'Done.' end end diff --git a/search-data.json b/search-data.json deleted file mode 100644 index 4a71e7c0943b7cf2add39949507029065774b8ae..0000000000000000000000000000000000000000 --- a/search-data.json +++ /dev/null @@ -1,11 +0,0 @@ ---- ---- -{ - {% for page in site.html_pages %}"{{ forloop.index0 }}": { - "id": "{{ forloop.index0 }}", - "title": "{{ page.title | xml_escape }}", - "content": "{{ page.content | markdownify | strip_html | xml_escape | remove: 'Table of contents' | remove: page.title | strip_newlines | replace: '\', ' '}}", - "url": "{{ page.url | xml_escape }}" - }{% if forloop.last %}{% else %}, - {% endif %}{% endfor %} -}