Skip to content

Commit 766746c

Browse files
Fix search
1 parent 0c86711 commit 766746c

File tree

6 files changed

+48
-301
lines changed

6 files changed

+48
-301
lines changed

doc-tool/resources/_includes/toolbar.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
<a id="search-icon" title="Search" aria-label="Search">
77
<i class="fas fa-search"></i>
88
</a>
9-
<form id="searchbar" class="form-inline">
9+
<span id="searchbar">
1010
<input id="search-api-input" type="text" class="form-control" placeholder="Search API" aria-label="Search API">
1111
<input id="baseurl-input" type="hidden" value="{{ site.baseurl }}">
12-
</form>
12+
</span>
1313
<div class="navbar-brand">
1414
{% if site.logo %}
1515
<a href="{{ site.baseurl }}/index.html">

doc-tool/resources/_layouts/search.html

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,18 @@
33
title: Search
44
---
55
<link rel="stylesheet" href="{{site.baseurl}}/css/search.css">
6-
<div id="back-container">
7-
<a id="back-anchor" href=""><i class="fas fa-hand-point-left"></i> Back</a>
8-
</div>
9-
10-
<main id="search-container" class="container">
6+
<main class="container">
117
<!-- Search terms -->
128
<h1 id="searching-for"></h1>
139
<!-- Tabs for small screens -->
1410
<ul class="nav nav-tabs d-md-none" role="tablist">
1511
<li class="nav-item">
16-
<a class="nav-link active href="#entities" aria-controls="entities" data-toggle="tab">
12+
<a class="nav-link active" href="#entities" aria-controls="entities" data-toggle="tab">
1713
Entity Results
1814
</a>
1915
</li>
2016
<li class="nav-item">
21-
<a class="nav-link href="#members" aria-controls="members" data-toggle="tab">
17+
<a class="nav-link" href="#members" aria-controls="members" data-toggle="tab">
2218
Member Results
2319
</a>
2420
</li>
@@ -49,10 +45,9 @@ <h2 class="d-none d-md-block">Member Results</h2>
4945
}
5046
})();
5147

52-
// Set search term and back button:
48+
// Set search term and title:
5349
var searchTerm = decodeURIComponent(parameters["searchTerm"]);
5450
document.getElementById("searching-for").innerHTML = 'Search results for "' + searchTerm + '"';
55-
document.getElementById("back-anchor").href = parameters["previousUrl"];
5651
document.title = searchTerm + ' - Search results';
5752

5853
if (!window.Worker) {
@@ -81,20 +76,13 @@ <h2 class="d-none d-md-block">Member Results</h2>
8176
var packageLi = document.createElement("li");
8277
entityResultsNode.appendChild(packageLi);
8378

84-
packageLi.innerHTML =
85-
"<h1 class=\"package-name\">" +
86-
"<a href=\"{{ site.baseurl }}/api/" + parent.path.join('/') + "/index.html\">" +
87-
parent.name +
88-
"</a>" +
89-
"</h1>";
79+
var href = "{{ site.baseurl }}/api/" + parent.path.join('/') + "/index.html";
80+
packageLi.innerHTML = "<h3 class=\"package-name\"><a href=\"" + href + "\">" + parent.name + "</a></h3>";
9081

9182
var entityUl = document.createElement("ul");
9283
entityUl.classList.add("entity-ul");
9384
packageLi.appendChild(entityUl);
9485
entityResults[parent.name] = entityUl;
95-
var coverBlock = document.createElement("div");
96-
coverBlock.classList.add("cover-block");
97-
entityUl.appendChild(coverBlock);
9886
}
9987

10088
// Insert into list of results in package, no need to sort -
@@ -125,9 +113,9 @@ <h2 class="d-none d-md-block">Member Results</h2>
125113
companion +
126114
letter +
127115
'</div>' +
128-
"<a class=\"entity-name\" href=\"{{ site.baseurl }}/api/" + entity.path.join('/') + ".html\">" +
116+
"<h4><a class=\"entity-name\" href=\"{{ site.baseurl }}/api/" + entity.path.join('/') + ".html\">" +
129117
entity.name +
130-
"</a>"
118+
"</a></h4>"
131119
);
132120
entityUl.appendChild(entityLi);
133121
}
@@ -140,33 +128,39 @@ <h2 class="d-none d-md-block">Member Results</h2>
140128
};
141129
};
142130

143-
var insertMember = function(member, li) {
144-
var div = document.createElement("div");
131+
var insertMember = function(member, li, parentLink) {
132+
const div = document.createElement("div");
145133
div.classList.add("member-result");
146134

147-
var renderParamList = function(plist) {
135+
const renderParamList = function(plist) {
148136
var start = plist.isImplicit ? "(implicit " : "(";
149-
var args = plist.list.join(', ');
137+
var args = plist.list.map(x=>x.ref.title).join(', ');
150138
return start + args + ")";
151139
};
152140

153-
var concatenateStrings = function(acc, str) { return acc + str; };
141+
const concatenateStrings = function(acc, str) { return acc + str; };
154142

155-
var paramLists = !member.paramLists ? "" : (
143+
const paramLists = !member.paramLists ? "" : (
156144
member.paramLists
157145
.map(renderParamList)
158-
.reduce(concatenateStrings, "") + ': '
146+
.reduce(concatenateStrings, "") + ':'
159147
);
160148

161-
var returnValue = !member.returnValue ? "" : (
162-
member.returnValue
149+
const returnValue = !member.returnValue ? "" : (
150+
member.returnValue.title
163151
);
164152

153+
const sigObject = member.kind == "object" ? "$" : "";
154+
const sigParams = !member.paramLists ? "" : (
155+
member.paramLists.map(l => "(" + l.list.map(x=>x.title).join(",") + ")").reduce(concatenateStrings, "")
156+
);
157+
const signature = member.name + sigObject + sigParams;
158+
const memberLink = parentLink + "#" + signature;
165159
div.innerHTML =
166-
'<div class="member-kind">'+ member.kind +'</div>' +
167-
'<div class="member-name">'+ member.name +'</div>' +
168-
'<div class="member-param-lists">' + paramLists + '</div>' +
169-
'<div class="member-return">'+ returnValue +'</div>'
160+
'<span class="member-kind">'+ member.kind +'</span>&nbsp;' +
161+
'<span class="member-name"><a href=\"' + memberLink + '\">' + member.name +'</a></span>' +
162+
'<span class="member-param-lists">' + paramLists + '</span>&nbsp;' +
163+
'<span class="member-return">'+ returnValue +'</span>'
170164

171165
li.appendChild(div);
172166
};
@@ -189,8 +183,9 @@ <h2 class="d-none d-md-block">Member Results</h2>
189183
var member = res.data.member;
190184
var parent = res.data.parent;
191185
//console.log("got member: " + member.name + ", in entity: " + parent.name);
186+
var parentLink = "{{ site.baseurl }}/api/" + parent.path.join('/') + ".html";
192187
var li = insertEntity(memberResultsNode, memberResults, "member")(parent, package);
193-
if (li) insertMember(member, li);
188+
if (li) insertMember(member, li, parentLink);
194189
break;
195190
}
196191
default: {

doc-tool/resources/css/search.css

Lines changed: 17 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1,178 +1,32 @@
1-
#back-container {
2-
height: 75px;
3-
width: 100%;
4-
padding-top: 25px;
1+
ul {
2+
list-style: none;
3+
padding: 0;
54
}
65

7-
#back-anchor {
8-
font-size: 2em;
9-
margin-left: 1em;
10-
}
11-
#back-anchor:hover,
12-
#back-anchor:focus,
13-
#back-anchor {
14-
color: #373a3c;
15-
text-decoration: none;
16-
}
17-
18-
#search-container {
19-
padding-top: 0;
20-
}
21-
#search-container h2 {
22-
text-align: center;
23-
}
24-
25-
#search-container h1 {
26-
text-align: center;
27-
margin-bottom: 50px;
28-
}
29-
30-
#search-container>div#result-container {
31-
width: 100%;
32-
}
33-
34-
div.results>h1 {
35-
width: 100%;
36-
border-bottom: 1px solid black;
37-
font-weight: 300;
38-
font-size: 24px;
39-
}
40-
41-
div.results ul {
42-
list-style-type: none;
43-
padding-left: 0;
44-
}
45-
46-
div.results>ul>li>h1.package-name {
47-
font-size: 13px;
48-
margin-top: 20px;
6+
ul li {
7+
margin-bottom: 5px;
8+
font-family: var(--font-family-sans-serif);
499
}
5010

51-
div.results>ul>li>h1.package-name>a {
52-
font-weight: 300;
53-
color: #ff4081;
11+
h3 {
12+
padding-top: .5rem;
5413
}
55-
56-
div.results>ul>li a:hover,
57-
div.results>ul>li a:focus,
58-
div.results>ul>li a {
59-
color: #373a3c;
60-
text-decoration: none;
61-
}
62-
63-
div.results>ul>li>ul {
64-
border-left: 2px solid gray;
65-
font-size: 13px;
66-
font-weight: 100;
67-
}
68-
69-
div.results>ul>li>ul>li {
70-
line-height: 40px;
71-
}
72-
73-
div.results ul.entity-ul {
74-
position: relative;
75-
}
76-
77-
div.cover-block {
78-
position: absolute;
79-
background: #fff;
80-
border-right: 2px solid gray;
81-
width: 82px;
82-
height: 100%;
83-
left: -82px;
84-
top: 0;
85-
}
86-
87-
div.results li.entity-result-li>a.entity-name {
88-
margin-left: 10px;
89-
}
90-
91-
div.results li.entity-result-li {
92-
transition: all 0.2s ease;
93-
margin-left: -42px;
14+
h4 {
15+
display: inline-block;
16+
font-size: 1.25rem;
9417
}
9518

96-
div.results li.entity-result-li.with-companion {
97-
margin-left: -82px;
19+
.package-name a {
20+
color: inherit;
9821
}
9922

100-
div.results li.entity-result-li:hover {
101-
margin-left: 0;
102-
}
103-
104-
div.results li.entity-result-li>div.member-result {
105-
overflow: hidden;
106-
padding-top: 3px;
107-
display: block;
108-
width: calc(100% - 105px);
109-
margin-bottom: 10px;
110-
transition: all 0.2s ease;
111-
margin-left: 105px;
112-
}
113-
114-
div.results li.entity-result-li:hover>div.member-result {
115-
width: calc(100% - 65px);
116-
}
117-
118-
div.results li.entity-result-li.with-companion:hover>div.member-result {
119-
width: calc(100% - 23px);
120-
}
121-
122-
div.results li.entity-result-li:not(.with-companion)>div.member-result {
123-
margin-left: 65px;
124-
}
125-
126-
div.results li.entity-result-li:hover>div.member-result {
127-
margin-left: 23px;
128-
}
129-
130-
div.results li.entity-result-li>div.member-result>div.member-kind {
131-
margin-right: 5px;
132-
font-weight: 400;
133-
}
134-
135-
div.results li.entity-result-li>div.member-result>div.member-param-lists {
136-
margin-right: 5px;
137-
}
138-
139-
div.results li.entity-result-li>div.member-result>div.member-return {
140-
font-weight: 400;
141-
white-space: nowrap;
142-
}
143-
144-
div.results li.entity-result-li>div.member-result>div.member-kind,
145-
div.results li.entity-result-li>div.member-result>div.member-name,
146-
div.results li.entity-result-li>div.member-result>div.member-param-lists,
147-
div.results li.entity-result-li>div.member-result>div.member-return {
148-
float: left;
149-
line-height: 16px;
23+
.entity-kinds {
15024
display: inline;
15125
}
15226

153-
div.results li.entity-result-li>div.entity-kinds {
154-
float: left;
155-
}
156-
157-
div.results li.entity-result-li>div.entity-kinds>a.letter-anchor {
158-
height: 40px;
159-
width: 40px;
160-
display: block;
161-
float: left;
162-
text-align: center;
163-
color: #fff;
164-
}
165-
166-
div.results li.entity-result-li>div.entity-kinds>a.letter-anchor.object {
167-
background-color: rgb(44, 108, 141);
168-
}
169-
170-
div.results li.entity-result-li>div.entity-kinds>a.letter-anchor.class {
171-
background-color: rgb(68, 173, 125);
172-
}
173-
174-
div.results li.entity-result-li>div.entity-kinds>a.letter-anchor.trait {
175-
background-color: rgb(25, 170, 207);
27+
.member-result {
28+
padding-left: 1em;
29+
font-family: var(--font-family-monospace);
17630
}
17731

17832
@media(min-width: 768px) {

docs/index.html

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
layout: base
44
extraCSS:
55
- css/frontpage.css
6-
extraJS:
7-
- js/elasticlunr.min.js
8-
- js/search.js
96
---
107
{% include logo-page.html %}
118
{% include getting-started.html %}

0 commit comments

Comments
 (0)