Add search API and update frontend
The frontend has been updated to use the new search API.
This commit is contained in:
@@ -130,8 +130,8 @@ module Precious
|
|||||||
|
|
||||||
get '/search' do
|
get '/search' do
|
||||||
@query = params[:q]
|
@query = params[:q]
|
||||||
@search_command = "cd #{$path} && git grep -c '#{@query}' master"
|
wiki = Gollum::Wiki.new($path)
|
||||||
@results = `#{@search_command}`
|
@results = wiki.search @query
|
||||||
mustache :search
|
mustache :search
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,26 +1,12 @@
|
|||||||
module Precious
|
module Precious
|
||||||
module Views
|
module Views
|
||||||
class Search < Layout
|
class Search < Layout
|
||||||
attr_reader :content, :page, :footer, :query
|
attr_reader :content, :page, :footer, :results, :query
|
||||||
|
|
||||||
def has_results
|
def has_results
|
||||||
!results.empty?
|
!@results.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def results
|
|
||||||
ret = []
|
|
||||||
@results.each_line do |line|
|
|
||||||
result = line.split(":")
|
|
||||||
file = result[1]
|
|
||||||
count = result[2].to_i
|
|
||||||
name = file.split(".")[0]
|
|
||||||
ret << {
|
|
||||||
:name => name,
|
|
||||||
:count => count
|
|
||||||
}
|
|
||||||
end
|
|
||||||
ret
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -208,6 +208,28 @@ module Gollum
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Public: Search all pages for this wiki.
|
||||||
|
#
|
||||||
|
# query - The string to search for
|
||||||
|
#
|
||||||
|
# Returns an Array with Objects of page name and count of matches
|
||||||
|
def search(query)
|
||||||
|
search_command = "cd #{$path} && git grep -c '#{query}' master"
|
||||||
|
command_output = `#{search_command}`
|
||||||
|
results = []
|
||||||
|
command_output.each_line do |line|
|
||||||
|
result = line.split(":")
|
||||||
|
file = result[1]
|
||||||
|
count = result[2].to_i
|
||||||
|
name = file.split(".")[0]
|
||||||
|
results << {
|
||||||
|
:name => name,
|
||||||
|
:count => count
|
||||||
|
}
|
||||||
|
end
|
||||||
|
results
|
||||||
|
end
|
||||||
|
|
||||||
# Public: All of the versions that have touched the Page.
|
# Public: All of the versions that have touched the Page.
|
||||||
#
|
#
|
||||||
# options - The options Hash:
|
# options - The options Hash:
|
||||||
|
|||||||
Reference in New Issue
Block a user