FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
codeception.github.com/js/algolia.js at master · Codeception/codeception.github.com · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
Codeception
/
codeception.github.com
Public
Notifications
You must be signed in to change notification settings
Fork
131
Star
24
Code
Issues
5
Pull requests
3
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
codeception.github.com
/
js
/
algolia.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
112 lines (94 loc) · 3.52 KB
Breadcrumbs
codeception.github.com
/
js
/
algolia.js
Copy path
File metadata and controls
112 lines (94 loc) · 3.52 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// Init the search box
$
(
function
(
config
)
{
'use strict'
;
var
applicationId
=
config
.
applicationId
;
var
apiKey
=
config
.
apiKey
;
var
indexName
=
config
.
indexName
;
var
algolia
=
algoliasearch
(
applicationId
,
apiKey
)
;
var
helper
=
algoliasearchHelper
(
algolia
,
indexName
)
;
helper
.
setQueryParameter
(
'distinct'
,
true
)
;
helper
.
on
(
'result'
,
onResult
)
;
// Input listening for queries
var
$searchInput
=
$
(
'.js-algolia__input'
)
;
$searchInput
.
on
(
'keyup'
,
onQueryChange
)
;
// Content to hide/show when searching
var
$initialContent
=
$
(
'.js-algolia__initial-content'
)
;
var
$searchContent
=
$
(
'.js-algolia__search-content'
)
;
var
$searchContentResults
=
$searchContent
.
find
(
'.algolia__results'
)
;
$searchContentResults
.
on
(
'click'
,
'a'
,
onLinkClick
)
;
// Rendering templates
var
templateResult
=
Hogan
.
compile
(
$
(
'#algolia__template'
)
.
html
(
)
)
;
var
templateNoResults
=
$
(
'#algolia__template--no-results'
)
.
html
(
)
;
var
lastQuery
;
// Toggle result page
function
showResults
(
)
{
window
.
scroll
(
0
,
0
)
;
$initialContent
.
addClass
(
'algolia__initial-content--hidden'
)
;
$searchContent
.
addClass
(
'algolia__search-content--active'
)
;
}
function
hideResults
(
)
{
$initialContent
.
removeClass
(
'algolia__initial-content--hidden'
)
;
$searchContent
.
removeClass
(
'algolia__search-content--active'
)
;
}
// Handle typing query
function
onQueryChange
(
)
{
lastQuery
=
$
(
this
)
.
val
(
)
;
if
(
lastQuery
.
length
===
0
)
{
hideResults
(
)
;
return
false
;
}
helper
.
setQuery
(
lastQuery
)
.
search
(
)
;
showResults
(
)
;
}
function
onResult
(
data
)
{
// Avoid race conditions, discard results that do not match the latest query
if
(
data
.
query
!==
lastQuery
)
{
return
false
;
}
var
content
=
data
.
nbHits
?
renderResults
(
data
)
:
templateNoResults
;
$searchContentResults
.
html
(
content
)
;
}
function
renderResults
(
data
)
{
return
$
.
map
(
data
.
hits
,
function
(
hit
)
{
if
(
hit
.
posted_at
)
{
hit
.
posted_at_readable
=
moment
.
unix
(
hit
.
posted_at
)
.
fromNow
(
)
;
}
hit
.
css_selector
=
encodeURI
(
hit
.
css_selector
)
;
hit
.
full_url
=
config
.
baseurl
+
hit
.
url
;
return
templateResult
.
render
(
hit
)
;
}
)
.
join
(
''
)
;
}
// Scroll page to correct element
function
getAnchorSelector
(
hash
)
{
var
anchor
=
hash
.
substring
(
1
)
;
if
(
!
anchor
.
match
(
/
^
a
l
g
o
l
i
a
:
/
)
)
{
return
false
;
}
return
decodeURI
(
anchor
.
replace
(
/
^
a
l
g
o
l
i
a
:
/
,
''
)
)
;
}
function
scrollPageToSelector
(
selector
)
{
var
target
=
$
(
'.page,.post'
)
.
find
(
selector
)
;
var
targetOffset
=
target
[
0
]
.
getBoundingClientRect
(
)
.
top
+
window
.
pageYOffset
-
20
;
window
.
setTimeout
(
function
(
)
{
window
.
scroll
(
0
,
targetOffset
)
;
}
,
100
)
;
}
function
onLinkClick
(
event
)
{
var
selector
=
getAnchorSelector
(
event
.
target
.
hash
)
;
// Normal link, going to another page
if
(
event
.
target
.
pathname
!==
window
.
location
.
pathname
||
!
selector
)
{
return
true
;
}
// Scrolling to a result on the same page
hideResults
(
)
;
scrollPageToSelector
(
selector
)
;
event
.
preventDefault
(
)
;
return
false
;
}
window
.
setTimeout
(
function
(
)
{
var
selector
=
getAnchorSelector
(
window
.
location
.
hash
)
;
if
(
selector
)
{
scrollPageToSelector
(
selector
)
;
}
}
,
100
)
;
}
(
window
.
ALGOLIA_CONFIG
)
)
;
Back
|
FazBrowse Home
|
New Git URL