jekyll-github-pages-search 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 66a2e4a612996a8b401aa403b2308ac43ef35b86
4
+ data.tar.gz: 2d648f382bda930a22f664a97bb9e23ab43b7984
5
+ SHA512:
6
+ metadata.gz: 2bafead9965823058dc690a71eb574da996d715f9c1259392fed1ce787219ec4a52f31c892e0da5af81225629a34bd030c2f3581382100d482f8ee37044f8b4e
7
+ data.tar.gz: d6c2e0f96ddbaedc4de7003022e0014004b60d0790c22e257b396f754c0eb98ee7e68f7d81a289bf80b20a0760d6b05eacffe528d02cb9341a669dbc7e5ca372
@@ -0,0 +1,53 @@
1
+ require 'uglifier'
2
+
3
+ module Jekyll
4
+ class GitHubPagesSearch < Liquid::Tag
5
+ VALID_KEYS = %w(in path authors tags repo user highlight)
6
+
7
+ # from a string of options, construct a hash, without using `eval`
8
+ def self.extract_options( input )
9
+ opts = Hash.new
10
+ input.split(/,/).each do |entry|
11
+ entryMap = entry.split(/:/)
12
+ key = entryMap[0]
13
+ next unless VALID_KEYS.include? key
14
+ key = key.to_sym
15
+ if opts[key].nil?
16
+ opts[key] = []
17
+ end
18
+ value = entryMap[1]
19
+ opts[key] << value.strip
20
+ end
21
+ opts
22
+ end
23
+
24
+ def initialize(tag_name, opts, tokens)
25
+ super
26
+ @opts = opts.empty? ? [] : GitHubPagesSearch.extract_options(opts.strip.split(/\s+/).join(","))
27
+ if @opts.empty? || (@opts[:repo].nil? && @opts[:user].nil?)
28
+ raise ArgumentError, "You must include the option of either a :repo, or a :user"
29
+ end
30
+ js_file = File.read(File.join(File.dirname(__FILE__), "gh_api_search.js"))
31
+ VALID_KEYS.each do |key|
32
+ js_file = js_file.sub /\{\{ #{key} \}\}/, @opts[key.to_sym].nil? ? "''" : "'#{@opts[key.to_sym].join(",")}'"
33
+ end
34
+
35
+ @js = Uglifier.compile(js_file)
36
+ end
37
+
38
+ def render(context)
39
+ <<-EOS
40
+ <script type="text/javascript">
41
+ #{@js}
42
+ </script>
43
+ <div id="search">
44
+ <form action="/search" method="get">
45
+ <input type="text" id="search-query" name="q" placeholder="Search" autocomplete="off">
46
+ </form>
47
+ </div>
48
+ EOS
49
+ end
50
+ end
51
+ end
52
+
53
+ Liquid::Template.register_tag('github_pages_search', Jekyll::GitHubPagesSearch)
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-github-pages-search
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Garen J. Torikian
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: uglifier
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 2.13.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.13.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description:
70
+ email:
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - lib/jekyll-github-pages-search.rb
76
+ homepage: https://github.com/gjtorikian/jekyll-github-pages-search
77
+ licenses:
78
+ - MIT
79
+ metadata: {}
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ requirements: []
95
+ rubyforge_project:
96
+ rubygems_version: 2.0.3
97
+ signing_key:
98
+ specification_version: 4
99
+ summary: A liquid tag for Jekyll to call out to GitHub Pages Search via GitHub's API
100
+ test_files: []