From 25cd289df536cdacc17c0fc5aa3c9d10293e2773 Mon Sep 17 00:00:00 2001 From: Patrick Marsceill <patrick.marsceill@gmail.com> Date: Tue, 23 Oct 2018 12:51:11 -0400 Subject: [PATCH] Fix pathing issues with gh-pages --- _config.yml | 2 +- _layouts/default.html | 2 +- assets/js/just-the-docs.js | 24 ++++++++++++++++++++---- lib/tasks/search.rake | 7 +++++-- search-data.json | 11 ----------- 5 files changed, 27 insertions(+), 19 deletions(-) delete mode 100644 search-data.json diff --git a/_config.yml b/_config.yml index 3b8537c8..4ba494b9 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 fd3c62c0..87f37066 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 286c8fb1..dd24cfc8 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 e653be89..0e433b2a 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 4a71e7c0..00000000 --- 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 %} -} -- GitLab