mirror of
https://github.com/thangisme/notes.git
synced 2024-11-06 21:17:23 -05:00
commit
c1cacf277c
@ -15,7 +15,7 @@
|
|||||||
# in the templates via {{ site.myvariable }}.
|
# in the templates via {{ site.myvariable }}.
|
||||||
title: Just the Docs
|
title: Just the Docs
|
||||||
description: A Jekyll theme for documentation
|
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
|
# url: "" # the base hostname & protocol for your site, e.g. http://example.com
|
||||||
|
|
||||||
sass:
|
sass:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<div class="page-wrap">
|
<div class="page-wrap">
|
||||||
<div class="side-bar">
|
<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>
|
<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">
|
<div class="navigation main-nav js-main-nav">
|
||||||
{% include nav.html %}
|
{% include nav.html %}
|
||||||
@ -38,7 +38,7 @@
|
|||||||
{% if page.parent != nil and page.parent != page.title %}
|
{% if page.parent != nil and page.parent != page.title %}
|
||||||
<nav class="breadcrumb-nav">
|
<nav class="breadcrumb-nav">
|
||||||
<ol class="breadcrumb-nav-list">
|
<ol class="breadcrumb-nav-list">
|
||||||
<li class="breadcrumb-nav-list-item"><a href="{{ site.url }}/{{ page.parent | slugify }}">{{ page.parent }}</a></li>
|
<li class="breadcrumb-nav-list-item"><a href="{{ site.url | absolute_url }}/{{ page.parent | slugify }}">{{ page.parent }}</a></li>
|
||||||
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
|
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -35,14 +35,29 @@ function initSearch() {
|
|||||||
var index = lunr(function () {
|
var index = lunr(function () {
|
||||||
this.ref('id');
|
this.ref('id');
|
||||||
this.field('title', { boost: 20 });
|
this.field('title', { boost: 20 });
|
||||||
this.field('content');
|
this.field('content', { boost: 10 });
|
||||||
this.field('url');
|
this.field('url');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Get the generated search_data.json file so lunr.js can search it locally.
|
// 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();
|
var request = new XMLHttpRequest();
|
||||||
request.open('GET', '/search-data.json', true);
|
request.open('GET', jsonPath, true);
|
||||||
|
|
||||||
request.onload = function() {
|
request.onload = function() {
|
||||||
if (request.status >= 200 && request.status < 400) {
|
if (request.status >= 200 && request.status < 400) {
|
||||||
@ -103,11 +118,12 @@ function initSearch() {
|
|||||||
var resultsLink = document.createElement('a');
|
var resultsLink = document.createElement('a');
|
||||||
var resultsUrlDesc = document.createElement('span');
|
var resultsUrlDesc = document.createElement('span');
|
||||||
var resultsUrl = store[results[i].ref].url;
|
var resultsUrl = store[results[i].ref].url;
|
||||||
|
var resultsRelUrl = store[results[i].ref].relUrl;
|
||||||
var resultsTitle = store[results[i].ref].title;
|
var resultsTitle = store[results[i].ref].title;
|
||||||
|
|
||||||
resultsLink.setAttribute('href', store[results[i].ref].url);
|
resultsLink.setAttribute('href', resultsUrl);
|
||||||
resultsLink.innerText = resultsTitle;
|
resultsLink.innerText = resultsTitle;
|
||||||
resultsUrlDesc.innerText = resultsUrl;
|
resultsUrlDesc.innerText = resultsRelUrl;
|
||||||
|
|
||||||
resultsList.classList.add('search-results-list');
|
resultsList.classList.add('search-results-list');
|
||||||
resultsListItem.classList.add('search-results-list-item');
|
resultsListItem.classList.add('search-results-list-item');
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
{% for page in site.html_pages %}"{{ forloop.index0 }}": {
|
{% for page in site.html_pages %}"{{ forloop.index0 }}": {
|
||||||
"id": "{{ forloop.index0 }}",
|
"id": "{{ forloop.index0 }}",
|
||||||
"title": "{{ page.title | xml_escape }}",
|
"title": "{{ page.title | xml_escape }}",
|
||||||
"content": "{{ page.content | markdownify | strip_html | xml_escape | remove: 'Table of contents' | remove: page.title | strip_newlines | replace: '\', ' '}}",
|
"content": "{{ page.content | markdownify | strip_html | xml_escape | remove: 'Table of contents' | strip_newlines | replace: '\', ' ' }}",
|
||||||
"url": "{{ page.url | xml_escape }}"
|
"url": "{{ page.url | absolute_url | xml_escape }}",
|
||||||
|
"relUrl": "{{ page.url | xml_escape }}"
|
||||||
}{% if forloop.last %}{% else %},
|
}{% if forloop.last %}{% else %},
|
||||||
{% endif %}{% endfor %}
|
{% endif %}{% endfor %}
|
||||||
}
|
}
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Gem::Specification.new do |spec|
|
Gem::Specification.new do |spec|
|
||||||
spec.name = "just-the-docs"
|
spec.name = "just-the-docs"
|
||||||
spec.version = "0.1.1"
|
spec.version = "0.1.2"
|
||||||
spec.authors = ["Patrick Marsceill"]
|
spec.authors = ["Patrick Marsceill"]
|
||||||
spec.email = ["patrick.marsceill@gmail.com"]
|
spec.email = ["patrick.marsceill@gmail.com"]
|
||||||
|
|
||||||
|
@ -2,10 +2,12 @@ namespace :search do
|
|||||||
desc 'Generate the files needed for search functionality'
|
desc 'Generate the files needed for search functionality'
|
||||||
task :init do
|
task :init do
|
||||||
puts 'Creating search data json file...'
|
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: '\\', ' ' }}]
|
content = %Q[{{ page.content | markdownify | strip_html | xml_escape | remove: 'Table of contents' | strip_newlines | replace: '\\', ' ' }}]
|
||||||
|
puts 'Done.'
|
||||||
|
puts 'Generating content...'
|
||||||
|
|
||||||
File.open('search-data.json', 'w') do |f|
|
File.open('assets/js/search-data.json', 'w') do |f|
|
||||||
f.puts '---
|
f.puts '---
|
||||||
---
|
---
|
||||||
{
|
{
|
||||||
@ -18,5 +20,6 @@ namespace :search do
|
|||||||
{% endif %}{% endfor %}
|
{% endif %}{% endfor %}
|
||||||
}'
|
}'
|
||||||
end
|
end
|
||||||
|
puts 'Done.'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user