locolv commited on
Commit
fa6b3d1
·
verified ·
1 Parent(s): 4bf8e31

Upload 94 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitignore +6 -0
  2. .travis.yml +11 -0
  3. 404.html +12 -0
  4. Gemfile +14 -0
  5. LICENSE +201 -0
  6. README.md +2 -10
  7. Rakefile +184 -0
  8. _config-test.yml +22 -0
  9. _config.yml +31 -0
  10. _includes/analytics.html +14 -0
  11. _includes/app.sass +101 -0
  12. _includes/footer.html +74 -0
  13. _includes/head.html +32 -0
  14. _includes/header.html +25 -0
  15. _includes/images/android.svg +1 -0
  16. _includes/images/apple.svg +1 -0
  17. _includes/images/arrow-right.svg +1 -0
  18. _includes/images/pg-desktop.svg +1 -0
  19. _includes/images/pg-mobile.svg +1 -0
  20. _includes/images/phonegap-logo.svg +1 -0
  21. _includes/images/speeder.svg +1 -0
  22. _includes/images/windows.svg +1 -0
  23. _includes/subfooter.html +8 -0
  24. _includes/subheader.html +6 -0
  25. _layouts/compress.html +11 -0
  26. _layouts/default.html +23 -0
  27. _layouts/home.html +52 -0
  28. _layouts/post.html +64 -0
  29. _post.txt +9 -0
  30. _posts/2011-04-27-logitech-squeezeboxe284a2-controller-2.html +26 -0
  31. _posts/2011-09-23-metar-reader.html +34 -0
  32. _posts/2012-03-21-bit-timer.html +42 -0
  33. _posts/2012-04-30-untappd.html +44 -0
  34. _posts/2012-05-08-hockey-community.html +35 -0
  35. _posts/2012-08-01-healthtap-find-doctors-and-free-answers.md +35 -0
  36. _posts/2013-03-01-tripcase.md +28 -0
  37. _posts/2013-06-24-my-heart-camera.md +31 -0
  38. _posts/2013-06-29-yoga-travel.md +25 -0
  39. _posts/2013-08-12-browser-quest.md +33 -0
  40. _posts/2015-06-10-snowbuddy.md +27 -0
  41. _posts/2015-06-11-sworkit.md +33 -0
  42. _posts/2015-11-12-localeur.md +22 -0
  43. _posts/2016-07-20-fanreact.md +21 -0
  44. feed.xml +30 -0
  45. index.html +29 -19
  46. scripts/app-showcase.js +34 -0
  47. uploads/book/2012-06/2012-06-15-phonegap-essentials-1.jpeg +0 -0
  48. uploads/book/2012-06/2012-06-15-phonegap-essentials.jpeg +0 -0
  49. uploads/book/2012-07/2012-02-22-beginning-phonegap-mobile-web-framework-for-javascript-and-html5.jpg +0 -0
  50. uploads/book/2012-09/2012-01-23-manual-del-guerrero-m-vil-phonegap.jpg +0 -0
.gitignore ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ _site
2
+ .sass-cache
3
+ .jekyll-metadata
4
+ tmp
5
+ Gemfile.lock
6
+ _site-test
.travis.yml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.3
4
+ script: bundle exec rake test
5
+ sudo: false
6
+ env:
7
+ global:
8
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
9
+ notifications:
10
+ slack:
11
+ secure: I9s8EUh0KTrrXiiq1d0BvDeU+RRQhMt2yVnsys1Tc9W3v495hAh2HxzPCa3F78jVCK3eTs2nscTe68w9nPar446Gh8Th9/MM6D7DAQsn5Z4bhMS3iiN+O242nKJ2BULEh5RKxbCLwSSySR/NxWBfNHYaXAMIAhCETC/Twzm+SzLturODSz3pGhg9/ERWcpC+4yrfuE9rwPM1cat6506Oir+FHErd5rlkDkfq8jT6BpR4lqIBVgox09uMX2CP7TSZOEVWRahmSrHL/K4fZTfAapAmHiWDG9KNDQp0mK9nZcG/ABVSWwvkygQURu6QlkHeLhK9ex41yTJ5WzDowS3SLVzIAHozthc6gYIgl4CQnwukUwODOGcUAU9PSjWiAiuBhGBUf+Ol61qjj5uep/alWqnXEA3fZBOPc1nwCQOK3OH9oh615tBQn5XYNVs5QRwxWx/AkUr7xFaFRZl8+gp7zpI5ijXTL/5GfQ627BHsol4Ty0OGajB5XCE/69pVh6m3Jq92GCpeQ9BeNA2pHAtxGjCxLetRA4EXiQ+CJfX5RSXtzLbRQFocfAoLwzalzhch22CWZU67sWr9P9x5NW/qroP8vmxo3RVu+hlyYcxhkCrDZ5UYwnTGdejbZlRt+rjolvdwLXaAOKQqafDt4RcbhDMpa60NsUb8xCCdBWd9Tmc=
404.html ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ permalink: /404.html
3
+ title: Page not found
4
+ layout: default
5
+ body-class: no-subheader
6
+ ---
7
+ <div class="four-oh-four">
8
+ <h1 class="four-oh-four-title">404</h1>
9
+ <p class="four-oh-four-description">Sorry, the page you are looking for does not exist.</p>
10
+ <div class="four-oh-four-image"><img src="http://phonegap.com/images/landspeeder_white_border.png" alt="Landspeeder"/></div>
11
+ <a href="/getstarted/" class="button--cta">Speed to the homepage</a>
12
+ </div>
Gemfile ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ source 'https://rubygems.org'
2
+ gem 'github-pages'
3
+
4
+ # Test the build
5
+ group :test, :development do
6
+ gem 'rake'
7
+ gem 'html-proofer'
8
+ end
9
+
10
+ # Live Reload for local development
11
+ group :development do
12
+ gem 'guard'
13
+ gem 'guard-livereload'
14
+ end
LICENSE ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "{}"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright {yyyy} {name of copyright owner}
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
README.md CHANGED
@@ -1,10 +1,2 @@
1
- ---
2
- title: Hlm
3
- emoji: 🐢
4
- colorFrom: pink
5
- colorTo: purple
6
- sdk: static
7
- pinned: false
8
- ---
9
-
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
+ # App Showcase [![Travis build status](https://travis-ci.org/phonegap/app.svg?branch=gh-pages)](https://travis-ci.org/phonegap/app/)
2
+ http://phonegap.com/app/
 
 
 
 
 
 
 
 
Rakefile ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # == Dependencies ==============================================================
2
+
3
+ require 'rake'
4
+ require 'yaml'
5
+ require 'fileutils'
6
+ require 'rbconfig'
7
+ require 'html-proofer'
8
+
9
+ # == Configuration =============================================================
10
+
11
+ # Set "rake watch" as default task
12
+ task :default => :watch
13
+
14
+ # Load the configuration file
15
+ CONFIG = YAML.load_file("_config.yml")
16
+
17
+ # Get and parse the date
18
+ DATE = Time.now.strftime("%Y-%m-%d")
19
+
20
+ # Directories
21
+ POSTS = "_posts/"
22
+ RESOURCES = "resources/_posts/"
23
+ DRAFTS = "_drafts"
24
+
25
+ # == Helpers ===================================================================
26
+
27
+ # Execute a system command
28
+ def execute(command)
29
+ system "#{command}"
30
+ end
31
+
32
+ # Check the title
33
+ def check_title(title)
34
+ if title.nil? or title.empty?
35
+ raise "Please add a title to your file."
36
+ end
37
+ end
38
+
39
+ # Transform the filename and date to a slug
40
+ def transform_to_slug(title, extension)
41
+ characters = /("|'|!|\?|:|\s\z)/
42
+ whitespace = /\s/
43
+ "#{title.gsub(characters,"").gsub(whitespace,"-").downcase}.#{extension}"
44
+ end
45
+
46
+ # Read the template file
47
+ def read_file(template)
48
+ File.read(template)
49
+ end
50
+
51
+ # Save the file with the title in the YAML front matter
52
+ def write_file(content, title, directory, filename)
53
+ parsed_content = "#{content.sub("title:", "title: \"#{title}\"")}"
54
+ File.write("#{directory}/#{filename}", parsed_content)
55
+ puts "#{filename} was created in '#{directory}'."
56
+ end
57
+
58
+ # Create the file with the slug and open the default editor
59
+ def create_file(directory, filename, content, title, editor)
60
+ if File.exists?("#{directory}/#{filename}")
61
+ raise "The file already exists."
62
+ else
63
+ write_file(content, title, directory, filename)
64
+ if editor && !editor.nil?
65
+ sleep 1
66
+ execute("#{editor} #{directory}/#{filename}")
67
+ end
68
+ end
69
+ end
70
+
71
+ # Get the "open" command
72
+ def open_command
73
+ if RbConfig::CONFIG["host_os"] =~ /mswin|mingw/
74
+ "start"
75
+ elsif RbConfig::CONFIG["host_os"] =~ /darwin/
76
+ "open"
77
+ else
78
+ "xdg-open"
79
+ end
80
+ end
81
+
82
+ # == Tasks =====================================================================
83
+
84
+ # rake post["Title"]
85
+ desc "Create a post in _posts/"
86
+ task :post, :title do |t, args|
87
+ title = args[:title]
88
+ template = CONFIG["post"]["template"]
89
+ extension = CONFIG["post"]["extension"]
90
+ editor = CONFIG["editor"]
91
+ check_title(title)
92
+ filename = "#{DATE}-#{transform_to_slug(title, extension)}"
93
+ content = read_file(template)
94
+ create_file(POSTS, filename, content, title, editor)
95
+ end
96
+
97
+ # rake draft["Title"]
98
+ desc "Create a post in _drafts"
99
+ task :draft, :title do |t, args|
100
+ title = args[:title]
101
+ template = CONFIG["post"]["template"]
102
+ extension = CONFIG["post"]["extension"]
103
+ editor = CONFIG["editor"]
104
+ check_title(title)
105
+ filename = transform_to_slug(title, extension)
106
+ content = read_file(template)
107
+ create_file(DRAFTS, filename, content, title, editor)
108
+ end
109
+
110
+ # rake publish
111
+ desc "Move a post from _drafts to _posts"
112
+ task :publish do
113
+ extension = CONFIG["post"]["extension"]
114
+ files = Dir["#{DRAFTS}/*.#{extension}"]
115
+ files.each_with_index do |file, index|
116
+ puts "#{index + 1}: #{file}".sub("#{DRAFTS}/", "")
117
+ end
118
+ print "> "
119
+ number = $stdin.gets
120
+ if number =~ /\D/
121
+ filename = files[number.to_i - 1].sub("#{DRAFTS}/", "")
122
+ FileUtils.mv("#{DRAFTS}/#{filename}", "#{POSTS}/#{DATE}-#{filename}")
123
+ puts "#{filename} was moved to '#{POSTS}'."
124
+ else
125
+ puts "Please choose a draft by the assigned number."
126
+ end
127
+ end
128
+
129
+ # rake build
130
+ desc "Build the site"
131
+ task :build do
132
+ execute("jekyll build")
133
+ end
134
+
135
+ # rake watch
136
+ # rake watch[number]
137
+ # rake watch["drafts"]
138
+ desc "Serve and watch the site (with post limit or drafts)"
139
+ task :watch, :option do |t, args|
140
+ option = args[:option]
141
+ if option.nil? or option.empty?
142
+ execute("jekyll serve --watch")
143
+ else
144
+ if option == "drafts"
145
+ execute("jekyll serve --watch --drafts")
146
+ else
147
+ execute("jekyll serve --watch --limit_posts #{option}")
148
+ end
149
+ end
150
+ end
151
+
152
+ # rake test
153
+ desc "build and test website"
154
+ task :test do
155
+ sh "bundle exec jekyll build --config _config-test.yml"
156
+ HTMLProofer.check_directory("./_site", {
157
+ :empty_alt_ignore => true,
158
+ :url_ignore => [
159
+ /\/app\/?/,
160
+ /\/blog\/?/,
161
+ '/book/',
162
+ '/tool/',
163
+ '/event/',
164
+ '/getstarted/',
165
+ '/products/',
166
+ '/about/',
167
+ '/about/faq/',
168
+ '/about/license/',
169
+ '/about/logos/',
170
+ '/about/contact/',
171
+ /\/getstarted\/?/,
172
+ /\/products\/?/,
173
+ 'http://untappd.com/'
174
+ ],
175
+ :cache => {
176
+ :timeframe => '1d'
177
+ },
178
+ :typhoeus => {
179
+ :followlocation => true,
180
+ :ssl_verifypeer => false,
181
+ :headers => { 'User-Agent' => 'html-proofer' }
182
+ }
183
+ }).run
184
+ end
_config-test.yml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ title: App Showcase
2
+ description: Ever wondered who is building amazing apps using PhoneGap?
3
+ baseurl: "" # the subpath of your site, e.g. /blog
4
+ url: "http://phonegap.com" # the base hostname & protocol for your site
5
+
6
+ gems:
7
+ - jekyll-paginate
8
+ - jekyll-coffeescript
9
+ - jekyll-sitemap
10
+
11
+ paginate: 10
12
+ paginate_list_count: 7
13
+ paginate_path: "/blog/page:num/"
14
+
15
+ post:
16
+ template: _post.txt
17
+ extension: md
18
+
19
+ markdown: kramdown
20
+
21
+ kramdown:
22
+ input: GFM
_config.yml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ title: App Showcase
2
+ description: Ever wondered who is building amazing apps using PhoneGap?
3
+ baseurl: "/app" # the subpath of your site, e.g. /blog
4
+ url: "" # the base hostname & protocol for your site
5
+
6
+ gems:
7
+ - jekyll-paginate
8
+ - jekyll-coffeescript
9
+ - jekyll-sitemap
10
+
11
+ exclude:
12
+ - vendor
13
+ - Gemfile
14
+ - Gemfile.lock
15
+ - LICENSE
16
+ - Rakefile
17
+ - README.md
18
+ - post.txt
19
+
20
+ paginate: 10
21
+ paginate_list_count: 7
22
+ paginate_path: "/blog/page:num/"
23
+
24
+ post:
25
+ template: _post.txt
26
+ extension: md
27
+
28
+ markdown: kramdown
29
+
30
+ kramdown:
31
+ input: GFM
_includes/analytics.html ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript">
2
+
3
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
4
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
5
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
6
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
7
+
8
+ ga('create', 'UA-94271-11', {
9
+ cookieDomain: 'phonegap.com',
10
+ legacyCookieDomain: 'phonegap.com'
11
+ });
12
+ ga('send', 'pageview');
13
+
14
+ </script>
_includes/app.sass ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .app
2
+ &-list
3
+ list-style: none
4
+ display: -webkit-box
5
+ display: -webkit-flex
6
+ display: -ms-flexbox
7
+ display: flex
8
+ -webkit-flex-wrap: wrap
9
+ -ms-flex-wrap: wrap
10
+ flex-wrap: wrap
11
+ margin: 0
12
+ -webkit-box-pack: center
13
+ -webkit-justify-content: center
14
+ -ms-flex-pack: center
15
+ justify-content: center
16
+ padding: 0 0 100px 0
17
+ &__thumbnail
18
+ flex-basis: 200px
19
+ min-height: 225px
20
+ text-align: center
21
+ &__title
22
+ margin-bottom: 2px
23
+ &__thumbnail__image
24
+ border-radius: 16px
25
+ box-shadow: 0px 2px 1px 1px rgba(0,0,0,0.3)
26
+ .hidden
27
+ display: none
28
+ .app-filters
29
+ background: #f2f2f2
30
+ box-sizing: border-box
31
+ padding: 2px 10px
32
+ margin-bottom: 40px
33
+ color: #111
34
+ label
35
+ font-size: .875rem
36
+ text-transform: uppercase
37
+ margin-left: 5px
38
+ .app-filter
39
+ display: block
40
+ .app-filter__input
41
+ margin-left: 20px
42
+ .app-description
43
+ max-width: 700px
44
+ position: relative
45
+ margin: 0 auto
46
+ padding: 0
47
+ .app-screenshots
48
+ display: block
49
+ text-align: center
50
+ img
51
+ margin: 0 15px 30px
52
+ width: 100%
53
+ max-width: 320px
54
+ height: auto
55
+ &:nth-child(2n-1)
56
+ margin-right: 15px
57
+ .app-description__header
58
+ display: flex
59
+ align-content: flex-end
60
+ img
61
+ margin-right: 24px
62
+ & > div:last-child
63
+ align-self: flex-end
64
+ .app-description__title
65
+ font-size: 1.875rem
66
+ margin: 0
67
+ .app--page__nav
68
+ text-align: center
69
+ .button--pill
70
+ margin: 0 20px 0
71
+ margin-bottom: 60px
72
+ .app-stores
73
+ margin-bottom: 30px
74
+ svg
75
+ height: 20px
76
+ vertical-align: text-top
77
+ margin-right: 5px
78
+ a
79
+ margin: 0 30px 30px 0
80
+ &:last-child
81
+ margin-right: 0
82
+ h4
83
+ margin-bottom: 15px
84
+ @media (min-width: 480px)
85
+ .app-list
86
+ -webkit-box-pack: start
87
+ -webkit-justify-content: flex-start
88
+ -ms-flex-pack: start
89
+ justify-content: flex-start
90
+ padding: 0 0 100px 0
91
+ .app-filter
92
+ display: inline-block
93
+ @media (min-width: 710px)
94
+ .app-screenshots
95
+ display: flex
96
+ flex-wrap: wrap
97
+ justify-content: space-between
98
+ img
99
+ margin: 0 0 30px
100
+ &:nth-child(2n-1)
101
+ margin-right: 30px
_includes/footer.html ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <footer class="site-footer">
2
+ <div class="bounds">
3
+ <div class="site-footer__top">
4
+ <div class="site-footer__messages">
5
+ <div class="site-footer__message">
6
+ <h2 class="site-footer__message__title">
7
+ <a class="site-footer__message__link" href="http://docs.phonegap.com/getting-started/1-install-phonegap/desktop/">Get Started Now</a>
8
+ </h2>
9
+ <div class="site-footer__message__description">
10
+ <p>Find out how to install PhoneGap, then create and preview an app on your device — almost as fast as a robot could do it.</p>
11
+ </div>
12
+ </div>
13
+ <div class="site-footer__message">
14
+ <h2 class="site-footer__message__title">
15
+ <a class="site-footer__message__link" href="https://blog.phonegap.com/">Read Our Blog</a>
16
+ </h2>
17
+ <div class="site-footer__messages__description">
18
+ <p>Have you read our latest blog post yet? If not, go now…there is solid gold in that post.</p>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ <div class="site-footer__lists">
23
+ <nav class="site-footer__list">
24
+ <h4 class="site-footer__title">About</h2>
25
+ <ul>
26
+ <li><a href="/about/">Project Overview</a></li>
27
+ <li><a href="/about/license/">License</a></li>
28
+ <li><a href="/about/faq/">FAQs</a></li>
29
+ <li><a href="https://cordova.apache.org/">Apache Cordova</a></li>
30
+ <li><a href="/about/logos/">Logo</a></li>
31
+ <li><a href="https://www.stickermule.com/user/1070635098/stickers">Stickers</a></li>
32
+ <li><a href="/about/contact/">Contact Us</a></li>
33
+ </ul>
34
+ </nav>
35
+ <nav class="site-footer__list">
36
+ <h4 class="site-footer__title">Docs &amp; Resources</h2>
37
+ <ul>
38
+ <li><a href="http://docs.phonegap.com">Documentation</a></li>
39
+ <li><a href="https://forums.adobe.com/community/phonegap">Community Forum</a></li>
40
+ <li><a href="/tool/">Third Party Tools</a></li>
41
+ <li><a href="/event/">Events</a></li>
42
+ <li><a href="/book/">Books</a></li>
43
+ <li><a href="http://plugins.cordova.io/">Plugin Library</a></li>
44
+ </ul>
45
+ </nav>
46
+ <nav class="site-footer__list">
47
+ <h4 class="site-footer__title">We're Everywhere</h2>
48
+ <ul>
49
+ <li><a href="https://github.com/phonegap/">GitHub</a></li>
50
+ <li><a href="http://webchat.freenode.net/?randomnick=1&channels=%23phonegap&uio=d4">IRC</a></li>
51
+ <li><a href="http://twitter.com/phonegap">Twitter</a></li>
52
+ <li><a href="http://www.facebook.com/PhoneGap">Facebook</a></li>
53
+ <li><a href="https://plus.google.com/107288580261563461427/posts">Google+</a></li>
54
+ <li><a href="https://www.youtube.com/user/phonegap">YouTube</a></li>
55
+ <li><a href="https://instagram.com/phonegap/">Instagram</a></li>
56
+ </ul>
57
+ </nav>
58
+ </div>
59
+ </div>
60
+ <div class="subscribe">
61
+ <div class="subscribe__description">
62
+ <h4 class="site-footer__title">Stay Connected to PhoneGap</h2>
63
+ <div>If you'd like us to keep in touch with the latest news and updates, subscribe now.</div>
64
+ </div>
65
+ <form class="subscribe__form" action="https://nitobi.createsend.com/t/y/s/htjuyh/" method="post">
66
+ <input class="subscribe__form__text-input" type="email" name="cm-htjuyh-htjuyh" id="htjuyh-htjuyh" placeholder="Enter your email address" required/>
67
+ <input class="subscribe__form__submit" type="submit" value="Sign up"/>
68
+ </form>
69
+ </div>
70
+ <hr>
71
+ <div class="site-footer__copyright">Copyright © 2016 Adobe Systems Inc. All rights reserved. <br>Use of this website signifies your agreement to the <a href="http://www.adobe.com/legal/general-terms.html">Terms of Use</a> and <a href="http://adobe.com/privacy">Privacy Policy and Cookies</a>.</div>
72
+ </div>
73
+ </footer>
74
+ {% include analytics.html %}
_includes/head.html ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+
6
+ <title>{% if page.title %}{{ page.title | xml_escape }}{% else %}{{ site.title | xml_escape }}{% endif %}</title>
7
+ <meta name="description" content="{% if page.excerpt %}{{ page.excerpt | xml_escape | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description | strip_html | strip_newlines | xml_escape }}{% endif %}">
8
+
9
+ <script src="//use.typekit.net/exp7awb.js"></script>
10
+ <script src="//assets.adobedtm.com/659ec8ada5450db95675e43beaaae92399591a11/satelliteLib-46e65db5bb0c375f8f64619be31cc9b29acf4867.js"></script>
11
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/sizzle/2.3.0/sizzle.min.js"></script>
12
+ <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
13
+ {% if jekyll.environment == "production" %}
14
+ <script src="/scripts/home.js"></script>
15
+ <script src="/scripts/mobile_nav.js"></script>
16
+ {% else %}
17
+ <script src="{{ '/scripts/home.js' | prepend: site.url }}"></script>
18
+ <script src="{{ '/scripts/mobile_nav.js' | prepend: site.url }}"></script>
19
+ {% endif %}
20
+
21
+ {% for js_name in page.extra_js %}
22
+ <script src="{{ js_name | prepend: '/app/scripts/' }}"></script>
23
+ {% endfor %}
24
+ <link rel="stylesheet" type="text/css" href="{{ '/styles/main.css' | prepend: site.url }}"/>
25
+ <link rel="icon" type="image/png" href="{{ '/favicon.ico' | prepend: site.url }}">
26
+ <style type="text/css">
27
+ {% capture include_to_sassify %}{% include app.sass %}{% endcapture %}
28
+ {{ include_to_sassify | sassify }}
29
+ </style>
30
+ <link rel="canonical" data-proofer-ignore href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
31
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" />
32
+ </head>
_includes/header.html ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <header id="site-header" class="site-header">
2
+ <div class="bounds">
3
+ <div class="site-header__logo">
4
+ <h1>
5
+ <a href="/">
6
+ {% include images/phonegap-logo.svg %}
7
+ <span>Adobe PhoneGap</span>
8
+ </a>
9
+ </h1>
10
+ </div>
11
+ <nav class="site-header__nav">
12
+ <ul>
13
+ <li><a href="/products" {% if current[1] == 'products' %}class='current'{% endif %}>Products</a></li>
14
+ <li><a href="/getstarted" {% if current[1] == 'getstarted' %}class="current"{% endif %}>Get Started</a></li>
15
+ <li><a href="http://docs.phonegap.com">Docs</a></li>
16
+ <li><a href="/app" class='current'>App Showcase</a></li>
17
+ <li><a href="https://blog.phonegap.com/" {% if current[1] == 'blog' %}class='current'{% endif %}>Blog</a></li>
18
+ </ul>
19
+ <button class="site-header__expand-button" id="site-header__expand-button">Site Menu</button>
20
+ <a class="adobe-logo" href="http://adobe.com">
21
+ <svg xmlns="http://www.w3.org/2000/svg" width="70" height="16" viewBox="0 0 70 16"><path fill="#fff" d="M12.1 0h7.1v16l-7.1-16zm-5 0h-7.1v16l7.1-16zm2.5 5.9l4.5 10.1h-3l-1.3-3.2h-3.3l3.1-6.9zm19.4 3.9l-1.2 3.3c0 .1-.1.1-.1.1h-1.1c-.1 0-.1-.1-.1-.1 1-2.5 2.6-6.9 3.7-9.7.1-.1.1-.3.1-.7 0-.1 0-.1.1-.1h1.6c.1 0 .1 0 .1.1l3.9 10.4c0 .1 0 .1-.1.1h-1.3c-.1 0-.1 0-.1-.1l-1.3-3.4-4.2.1zm3.8-1.2c-.4-1-1.3-3.8-1.7-4.9-.3 1-1.1 3.1-1.6 4.9h3.3zm3.9.8c0-2.4 1.8-4.1 4.4-4.1.5 0 .9 0 1.3.2v-3.7c0-.1 0-.1.1-.1h1.3c.1 0 .1 0 .1.1v10.7c0 .1 0 .1-.1.2-1 .5-2 .8-3 .8-2.4-.1-4.1-1.5-4.1-4.1zm5.7-2.8c-.3-.2-.8-.2-1.3-.2-1.8 0-2.9 1.2-2.9 2.9 0 2.2 1.3 2.9 2.7 2.9.6 0 1.1-.1 1.4-.2l.1-5.4zm10.7 2.7c0 2.4-1.5 4-3.9 4-2.8 0-3.9-2.1-3.9-4 0-2.4 1.5-4 3.9-4 2.6 0 3.9 1.7 3.9 4zm-6.2 0c0 1.7.9 3 2.5 3 1.2 0 2.3-.8 2.3-2.9 0-1.6-.7-3-2.4-3-1.4-.1-2.4 1-2.4 2.9zm9.2-7.6l.1 4c.7-.3 1.3-.5 2-.5 2.2 0 3.6 1.6 3.6 3.7 0 2.8-2.2 4.4-4.6 4.4-.9 0-1.5-.1-2.3-.4-.1 0-.1-.1-.1-.2v-11c0-.1 0-.1.1-.1h1.2v.1zm1.8 4.7c-.7 0-1.3.1-1.7.4v5.3c.4.1.8.1 1.2.1 1.4 0 3-1 3-3.2 0-1.6-.9-2.6-2.5-2.6zm6.7 3c0 1.6.9 2.7 2.7 2.7.7 0 1.3-.1 2-.5.1 0 .1 0 .1.1v.9c0 .1 0 .1-.1.2-.6.3-1.3.5-2.3.5-2.9 0-3.9-2-3.9-4 0-2.4 1.3-4 3.7-4 2.3 0 3.2 1.8 3.2 3.1 0 .7-.1.8-.1.9-.3.1-.9.1-1.7.1h-3.6zm3-.8c.8 0 1-.1 1-.1v-.3c0-.6-.4-1.9-1.9-1.9-1.3 0-2 1-2.1 2.3h3z"/></svg>
22
+ </a>
23
+ </nav>
24
+ </div>
25
+ </header>
_includes/images/android.svg ADDED
_includes/images/apple.svg ADDED
_includes/images/arrow-right.svg ADDED
_includes/images/pg-desktop.svg ADDED
_includes/images/pg-mobile.svg ADDED
_includes/images/phonegap-logo.svg ADDED
_includes/images/speeder.svg ADDED
_includes/images/windows.svg ADDED
_includes/subfooter.html ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ <div class="sub-footer">
2
+ <div class="bounds">
3
+ <h3 class="sub-footer__title">Dig into documentation</h3>
4
+ <div class="sub-footer__description">
5
+ Whether you’re looking for <a href="http://docs.phonegap.com/getting-started/1-install-phonegap/desktop/">in-depth guides</a> on how to get started creating PhoneGap apps or <a href="http://docs.phonegap.com/references/desktop-app/">helpful references</a> for using the PhoneGap tools, this is the place to go. How could you go wrong?
6
+ </div>
7
+ </div>
8
+ </div>
_includes/subheader.html ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ <div class="subheader">
2
+ <div class="bounds">
3
+ <h2 class="subheader__title">{{ site.title }}</h2>
4
+ <div class="subheader__description">{{ site.description }}</div>
5
+ </div>
6
+ </div>
_layouts/compress.html ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ #
3
+ # Jekyll layout that compresses HTML
4
+ # v1.1.1
5
+ # http://jch.penibelst.de/
6
+ # © 2015 Anatol Broder
7
+ # MIT License
8
+ #
9
+ ---
10
+
11
+ {% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if site.compress_html.comments.size == 2 %}{% assign _comment_befores = _content | split: site.compress_html.comments.first %}{% for _comment_before in _comment_befores %}{% assign _comment_content = _comment_before | split: site.compress_html.comments.last | first %}{% if _comment_content %}{% capture _comment %}{{ site.compress_html.comments.first }}{{ _comment_content }}{{ site.compress_html.comments.last }}{% endcapture %}{% assign _content = _content | remove: _comment %}{% endif %}{% endfor %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% case _pres.size %}{% when 2 %}{% capture _content %}{{ _content }}<pre{{ _pres.first }}</pre>{{ _pres.last | split: " " | join: " " }}{% endcapture %}{% when 1 %}{% capture _content %}{{ _content }}{{ _pres.last | split: " " | join: " " }}{% endcapture %}{% endcase %}{% endfor %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{{ _content }}{% endif %}
_layouts/default.html ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ layout: compress
3
+ ---
4
+ <!DOCTYPE html>
5
+ <html>
6
+
7
+ {% include head.html %}
8
+
9
+ <body>
10
+
11
+ {% include header.html %}
12
+
13
+ <div class="page-content">
14
+ <div class="wrapper">
15
+ {{ content }}
16
+ </div>
17
+ </div>
18
+
19
+ {% include footer.html %}
20
+
21
+ </body>
22
+
23
+ </html>
_layouts/home.html ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ layout: compress
3
+ ---
4
+ <!DOCTYPE html>
5
+ <html>
6
+
7
+ {% include head.html %}
8
+
9
+ <body>
10
+
11
+ <header class="home-header">
12
+ <div class="bounds">
13
+ <div class="site-header__logo">
14
+ <h1>
15
+ <a href="{{ site.url }}">
16
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="44" viewBox="0 0 40 44">
17
+ <g fill="#fff">
18
+ <path d="M11.8 28.4l-1.6.1v.7c0 1.9 1.1 2.3 2 2.3h.2l2.6-.2c.1-.3.1-.5.1-.5s-.3-16.3-.4-18.3c0-.5-.1-.8-.3-1.1-.9-.1-1.8-.1-2.4-.2h-.3c-.6 0-1.1.2-1.4.5-.5.5-.4 1.2-.4 1.2v1.2c1.3.1 2.2.1 2.2.1s1.4.3 1.5 1.8c.1 1.6.1 10.6.1 10.6s.1 1.5-1.9 1.8zM6.8 28.8l-2.5.2s-2.1.3-2.2-2c0-1.7-.2-11.5-.2-11.5s-.1-1.8 2.1-1.7c.7 0 1.6.1 2.7.2 0-1.6-.1-3-.1-4.1-1.5-.2-2.8-.3-3.7-.4-2.9-.3-2.8 2.1-2.8 2.1s.3 17.9.4 20.1c.1 2.6 2.9 2.2 2.9 2.2l3.5-.4c0-1.2 0-2.9-.1-4.7zM37.9 6.5c-.1-3.4-3.1-4.1-3.1-4.1s-10.2-1.5-14.7-2.1c-4.5-.6-4.2 3.8-4.2 3.8s1 31.7 1.1 35.6c.1 4.7 4.5 3.9 4.5 3.9l15.4-2.6c2.8-.6 2.9-4.1 2.9-4.1s-1.8-26.7-1.9-30.4zm-3.4 26.9l-11.5 1.2s-3.3.5-3.4-3.6c-.1-3-.7-20.1-.7-20.1s-.2-3.1 3.2-2.9c3.5.3 11.9 1 11.9 1s2.2.5 2.3 3.1c.1 2.8 1.1 18.3 1.1 18.3s.2 2.5-2.9 3zM22.9 34l4.4-.5c-.2-4.5-1-22-1.1-24.5-1.6-.1-3.1-.2-4.2-.3h-.3c-.7 0-1.3.2-1.7.6-.6.6-.6 1.7-.6 1.7v.3c1.8.2 3.2.3 3.2.3s1.9.4 2 2.5c.1 2.3.6 14.7.6 14.7s.2 2.1-2.5 2.5l-2.6.2c.2 2.1 1.4 2.6 2.4 2.6.3-.1.4-.1.4-.1zM16.2 31.8l-3.6.3s-2.9.4-2.9-2.9c0-2.4-.3-16.3-.3-16.3s-.2-2.6 2.8-2.4c.9.1 2.1.2 3.4.3-.1-2.6-.2-4.7-.2-5.8-1.7-.2-3.4-.3-4.6-.5-3.9-.4-3.7 3-3.7 3s.4 25.5.5 28.6c.1 3.7 3.9 3.1 3.9 3.1l4.9-.6c-.1-1.4-.1-3.8-.2-6.8z"></path>
19
+ </g>
20
+ </svg>
21
+ <span>Adobe PhoneGap</span>
22
+ </a>
23
+ </h1>
24
+ </div>
25
+ <nav class="site-header__nav">
26
+ <ul>
27
+ <li><a href="/">Products</a></li>
28
+ <li><a href="/">Get Started</a></li>
29
+ <li><a href="/">Docs</a></li>
30
+ <li><a href="/">App Showcase</a></li>
31
+ <li><a href="/">Blog</a></li>
32
+ </ul>
33
+ </nav>
34
+ </div>
35
+ </header>
36
+ <div class="home-hero">
37
+ <div class="bounds">
38
+ <h1>Build amazing mobile apps<br/>powered by open web tech.</h1>
39
+ </div>
40
+ </div>
41
+
42
+ <div class="page-content">
43
+ <div class="wrapper">
44
+ {{ content }}
45
+ </div>
46
+ </div>
47
+
48
+ {% include footer.html %}
49
+
50
+ </body>
51
+
52
+ </html>
_layouts/post.html ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ layout: default
3
+ ---
4
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/aja/0.4.1/aja.min.js"></script>
5
+ <script>
6
+ document.addEventListener("DOMContentLoaded", function(event) {
7
+ aja()
8
+ .url('https://itunes.apple.com/lookup?id={{ page.itunes_id }}')
9
+ .type('jsonp')
10
+ .on('success', function(data){
11
+ console.log(data.results);
12
+ var screenshotUrls = data.results[0].screenshotUrls;
13
+ var screenshotsDiv = document.getElementById('screenshots');
14
+ screenshotUrls.forEach(function(screenshotUrl){
15
+ var image = document.createElement("img");
16
+ var div = document.createElement("div");
17
+ div.appendChild(image);
18
+ image.src = screenshotUrl;
19
+ screenshotsDiv.appendChild(div);
20
+ });
21
+ })
22
+ .go();
23
+ });
24
+ </script>
25
+ {% include subheader.html %}
26
+ <div class="bounds">
27
+ <article class="app-description">
28
+ <header class="app-description__header">
29
+ <div>
30
+ <img class="app__thumbnail__image" src="{{ page.thumb | prepend: site.baseurl }}" width="100" alt="{{ page.title }}"/>
31
+ </div>
32
+ <div>
33
+ <h2 class="app-description__title">{{ page.title }}</h2>
34
+ <div>by <a href="{{ page.developer_link }}">{{ page.developer }}</a> | Added {{ page.date | date: "%-d %b %Y" }}</div>
35
+ </div>
36
+ </header>
37
+ {{ content }}
38
+ <div id="screenshots" class="app-screenshots"></div>
39
+ <div class="app-stores">
40
+ <h4>Download this app from:</h4>
41
+ {% for device in page.devices %}
42
+ {% if device == 'ios' %}
43
+ <a href="{{ page.ios_link }}" class="button--cta">{% include images/apple.svg %} The App Store</a>
44
+ {% endif %}
45
+ {% if device == 'android' %}
46
+ <a href="{{ page.android_link }}" class="button--cta">{% include images/android.svg %} Google Play</a>
47
+ {% endif %}
48
+ {% if device == 'windows_phone' %}
49
+ <a href="{{ page.windows_phone_link }}" class="button--cta">{% include images/windows.svg %} The Windows Store</a>
50
+ {% endif %}
51
+ {% endfor %}
52
+ </div>
53
+ </article>
54
+ <footer class="app--page__nav">
55
+ {% if page.next.url %}
56
+ <a class="button--pill--prev--gray" href="{{ page.next.url| prepend: site.baseurl }}">{{page.next.title}}</a>
57
+ {% endif %}
58
+ <a class="button--pill--gray" href="{{ site.baseurl }}">App Showcase</a>
59
+ {% if page.previous.url %}
60
+ <a class="button--pill--next--gray" href="{{ page.previous.url| prepend: site.baseurl }}">{{page.previous.title}}</a>
61
+ {% endif %}
62
+ </footer>
63
+ </div>
64
+ {% include subfooter.html %}
_post.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title:
3
+ layout: post
4
+ author:
5
+ thumb:
6
+ publisher:
7
+ link:
8
+ type: book
9
+ ---
_posts/2011-04-27-logitech-squeezeboxe284a2-controller-2.html ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ android_link: https://market.android.com/details?id=com.logitech.squeezeboxremote
3
+ author: admin
4
+ categories: app
5
+ contact: [email protected]
6
+ date: '2011-04-27 20:40:52'
7
+ developer: Logitech Inc.
8
+ developer_link: http://www.logitech.com/en-us/speakers-audio/wireless-music-systems/devices/7979
9
+ devices:
10
+ - ios
11
+ - android
12
+ feature: 'true'
13
+ feature_image: /uploads/feature/squeezebox.jpg
14
+ ios_link: http://itunes.apple.com/ch/app/logitech-squeezebox-controller/id431302899
15
+ permalink: /logitech-squeezebox%e2%84%a2-controller-2/
16
+ slug: logitech-squeezebox%e2%84%a2-controller-2
17
+ status: publish
18
+ targetMarket: Personal
19
+ thumb: /uploads/v2/4db83ba1d7a6fsqueezebox.png
20
+ title: Logitech Squeezebox™ Controller
21
+ type: app
22
+ layout: post
23
+ itunes_id: 431302899
24
+ ---
25
+
26
+ Logitech Squeezebox™ Controller puts a fully featured Squeezebox remote where you want it: on your smartphone or tablet. It uses your home Wi-Fi to control all your Squeezebox players, whether you have one Squeezebox Radio or a house full of Squeezebox Boom, Squeezebox Touch and Squeezebox Duet. Built by Squeezebox for Squeezebox, it gives you intuitive, seamless control and all the options you have on your Squeezebox players on every screen. You’ll have full command of your Squeezebox on the smart screen at your fingertips with the Logitech Squeezebox Controller App.
_posts/2011-09-23-metar-reader.html ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ author: Colene Chow
3
+ categories: app
4
+ contact: [email protected]
5
+ date: '2011-09-23 21:23:10'
6
+ developer: Ferdi Willemse
7
+ developer_link: http://www.metarreader.com/app
8
+ devices:
9
+ - ios
10
+ feature: 'true'
11
+ feature_image: /uploads/feature/metar.jpg
12
+ ios_link: http://itunes.apple.com/us/app/metar-reader/id465765574?mt=8
13
+ itunes_id: '465765574'
14
+ permalink: /metar-reader/
15
+ slug: metar-reader
16
+ status: publish
17
+ targetMarket: Business
18
+ thumb: /uploads/v2/4e7c3c1639401Metar.png
19
+ title: METAR Reader
20
+ type: app
21
+ layout: post
22
+ ---
23
+
24
+ The #1 website for aviators and enthusiasts now fits in your pocket and offers even more features!<br />
25
+ <br />
26
+ KEY FEATURES:<br />
27
+ * Fetch METAR reports by ICAO code.<br />
28
+ * Decode METAR reports into a readable format.<br />
29
+ * Search for METAR weather stations and airports.<br />
30
+ * Find airports and METAR weather stations near your GPS location.<br />
31
+ * Add favorites 'on the fly'.<br />
32
+ * Add shortcuts to METAR reports to the main screen.<br />
33
+ <br />
34
+ Flight schools all around the world use METAR Reader to teach their students how to read METAR reports
_posts/2012-03-21-bit-timer.html ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ author: admin
3
+ categories: app
4
+ contact: [email protected]
5
+ date: '2012-03-21 23:42:19'
6
+ developer: Peiter Buick
7
+ developer_link: http://www.bittimerapp.com
8
+ devices:
9
+ - ios
10
+ feature: 'true'
11
+ feature_image: /uploads/feature/bittimer.jpg
12
+ ios_link: http://itunes.apple.com/us/app/bit-timer/id505848680?mt=8
13
+ itunes_id: '505848680'
14
+ permalink: /bit-timer/
15
+ slug: bit-timer
16
+ status: publish
17
+ targetMarket: Personal
18
+ thumb: /uploads/v2/icon175x175.jpeg
19
+ title: Bit Timer
20
+ type: app
21
+ layout: post
22
+ ---
23
+
24
+ This app is designed for the no-frills, hard-core workout. This is the first interval timer you’ll see with a set up that is this fast and easy. Your workout should be intense, not your workout set up. <br />
25
+ <br />
26
+ 1. Super Simple Set up. <br />
27
+ Get to your workout in no time with a clean, simple, no-frills design.<br /><br />
28
+
29
+ 2. Distinct tones that guide you through your workout. <br />
30
+ We chose clear, easy-to-distinguish tones for each portion of your workout.<br /><br />
31
+
32
+ 3. Work out to music with out missing a beat. <br />
33
+ Music automatically fades, allowing you to hear interval tones.
34
+ <br /><br />
35
+ <strong>Features:</strong><br />
36
+ - Press and Drag to set Work, Rest, and Repeat.<br />
37
+ - Work Periods: 5s to 2min. Rest Periods: 0s (no rest) to 2min. Up to 40 repeats.<br />
38
+ - 10 second count down allows you to get into place before your workout starts.<br />
39
+ - Three distinct sounds to designate where you are in your workout.<br />
40
+ - Countdown tone gives warning before Work starts.<br />
41
+ - Pause your workout at any time and restart right where you left off.<br />
42
+ - Music automatically fades, allowing you to hear interval tones.<br />
_posts/2012-04-30-untappd.html ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ android_link: https://play.google.com/store/apps/details?id=com.untappdllc.app
3
+ author: admin
4
+ categories: app
5
+ contact: [email protected]
6
+ date: '2012-07-17 22:30:26'
7
+ developer: Untappd LLC
8
+ developer_link: http://untappd.com/
9
+ devices:
10
+ - ios
11
+ - android
12
+ - blackberry
13
+ - windows_phone
14
+ feature: 'true'
15
+ feature_image: /uploads/feature/untapped2.jpg
16
+ windows_phone_link: http://www.windowsphone.com/en-us/store/app/untappd/2b72bcab-ae88-4134-9f19-dd47e77cd64a?appid=2b72bcab-ae88-4134-9f19-dd47e77cd64a
17
+ ios_link: http://itunes.apple.com/us/app/untappd/id449141888?ls=1%26mt=8
18
+ blackberry_link: http://appworld.blackberry.com/webstore/content/21866709/
19
+ itunes_id: '449141888'
20
+ permalink: /untappd/
21
+ slug: untappd
22
+ sticky: 5
23
+ status: publish
24
+ targetMarket: Personal
25
+ thumb: /uploads/v2/mza_6671297576364283745175x175_75.png
26
+ title: Untappd
27
+ type: app
28
+ layout: post
29
+ ---
30
+
31
+ Untappd is a mobile app that allows you to socially share the brew you're currently enjoying, as well as where you're enjoying it, with your friends! <br />
32
+ <br />
33
+ Our mobile and web applications allow users to share, discovery and engage each other within the world of beer. Known as "the Foursquare for beer,” user can check-in to what they’re drinking and where and share with their friends on Untappd, Twitter, Facebook, &amp; Foursquare.<br />
34
+
35
+ FEATURES
36
+
37
+ - Easily discover new beers and bars near your location
38
+ - See where you’re friends are drinking and meet up with them
39
+ - Personalized beer recommendations based on the tastes of you and your friends
40
+ - Find where you can get a specific beer nearby
41
+ - Share ratings, reviews and photos of your favorite beers with your friends
42
+ - Post your activity and photos to your Twitter, Facebook and Foursquare
43
+ - Create a wish list of beers you want to try in the future
44
+ - Unlock a variety of badges for trying different styles and places
_posts/2012-05-08-hockey-community.html ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ author: admin
3
+ android_link: https://play.google.com/store/apps/details?id=com.hockeycommunity.hc_app
4
+ categories: app
5
+ contact: [email protected]
6
+ date: '2012-05-08 22:55:38'
7
+ developer: Oki Technologies Inc.
8
+ developer_link: http://hockey-community.com/
9
+ devices:
10
+ - ios
11
+ - android
12
+ feature: 'true'
13
+ feature_image: /uploads/feature/hockycommunity-v3.jpg
14
+ ios_link: http://itunes.apple.com/app/hockey-community/id513748078
15
+ permalink: /hockey-community/
16
+ slug: hockey-community
17
+ status: publish
18
+ targetMarket: Business
19
+ thumb: /uploads/v2/4f99585ab70c8hc-icon-100.png
20
+ title: Hockey Community
21
+ type: app
22
+ layout: post
23
+ itunes_id: 513748078
24
+ ---
25
+
26
+ Hockey Community's goal is to make hockey more social and accessible around the world. We help anyone in the hockey industry connecting with players, rinks, games and more! <br />
27
+ <br />
28
+ - Create a page for all of the teams you belong to and connect with all its members in one place.<br />
29
+ - Arrive at your rink and get the option to Check-In with the team you are playing with.<br />
30
+ - Discover the rinks around you and CHECK-IN. HC will then keep track of how many times you've played hockey around the world!
31
+ <br />
32
+ <br />
33
+ <b>New!</b> As of November 2012, the latest version of Hockey Community allows players to track how often they play, share events, check-ins or photos, and see what other people are doing with a newsfeed.<br />
34
+ <br />
35
+ "PhoneGap has pushed us to learn and embrace HTML5 at its best, " said Amrit Kahlon, Software Engineer. "Today we're able to work on one source code for one iPhone app, one iPad app, our mobile site and soon an Android app.
_posts/2012-08-01-healthtap-find-doctors-and-free-answers.md ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ itunes_id: "466079030"
3
+ title: HealthTap - find doctors and free answers
4
+ date: 2012-08-04 02:29:39.466144 +00:00
5
6
+ android_link: https://play.google.com/store/apps/details?id=com.healthtap.userhtexpress
7
+ ios_link: http://itunes.apple.com/us/app/healthtap-find-doctors-free/id466079030
8
+ devices:
9
+ - ios
10
+ - android
11
+ targetMarket: Personal
12
+ thumb: /uploads/v2/2012-08-01-healthtap-find-doctors-and-free-answers.png
13
+ permalink: /healthtap-find-doctors-and-free-answers/
14
+ type: app
15
+ status: publish
16
+ developer_link: https://www.healthtap.com/
17
+ developer: HealthTap
18
+ feature: true
19
+ sticky: 5
20
+ feature_image: /uploads/feature/healthtap.jpg
21
+ layout: post
22
+ ---
23
+
24
+ HealthTap is the best way to quickly find, trusted, reputable doctor answers to health questions anytime, anywhere for free!
25
+
26
+ ✓ Get fast, free, trustworthy health answers
27
+ on any symptom, condition, medication or health concern from over 14,000 of the best U.S. doctors
28
+
29
+ ✓ Connect with doctors
30
+ by starting private conversations in a safe, HIPAA-secure environment
31
+
32
+ ✓ Share securely with doctors
33
+ Privately share scans, images and other health related documents with doctors
34
+
35
+ ✓ and more, for FREE!
_posts/2013-03-01-tripcase.md ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ permalink: /tripcase/
3
+ type: app
4
+ devices:
5
+ - ios
6
+ - android
7
+ developer_link: http://travel.tripcase.com/
8
+ developer: Sabre
9
+ android_link: https://play.google.com/store/apps/details?id=com.sabre.tripcase.android
10
+ email: ""
11
+ status: publish
12
+ title: TripCase
13
+ targetMarket: Business
14
+ itunes_id: "309620151"
15
+ highlight: true
16
+ feature: true
17
+ feature_image: /uploads/feature/tripcase.jpg
18
+ date: 2013-03-01 16:28:13.523310 +00:00
19
+ ios_link: https://itunes.apple.com/us/app/tripcase/id309620151?mt=8
20
+ thumb: /uploads/v2/tripcase.png
21
+ layout: post
22
+ ---
23
+
24
+ TripCase is an intelligent, all-knowing mobile app that guides you through every stage of your trip, making you the smartest, smoothest traveler around. With TripCase, you’ll be:
25
+
26
+ **PREPARED**: Save time and end confusion with all your trip details located in one spot.
27
+ **CONNECTED**: Rest easy knowing you have the latest info or alerts about your trip (and that important contacts are kept in the loop, too).
28
+ **BRILLIANT**: Travel smarter and experience more thanks to relevant and timely messages and alerts.
_posts/2013-06-24-my-heart-camera.md ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ itunes_id: "657224393"
3
+ ios_link: https://itunes.apple.com/us/app/my-heart-camera-lovely-cute/id657224393?l=ja&ls=1%26mt=8
4
+ title: My Heart Camera
5
+ type: app
6
7
+ permalink: /my-heart-camera/
8
+ status: publish
9
+ devices:
10
+ - ios
11
+ developer: ANDG CO., LTD.
12
+ date: 2013-06-24 06:22:06.582604 +00:00
13
+ thumb: /uploads/v2/2013-06-24-my-heart-camera.png
14
+ developer_link: http://apmaga.heteml.jp/_app/heartcamera/
15
+ targetMarket: Personal
16
+ feature_image: /uploads/feature/myheartcamera.jpg
17
+ feature: true
18
+ layout: post
19
+ ---
20
+
21
+ Let's decorate your photos with lovely hearts!
22
+
23
+ Cute Stickers of hearts - You can use many cute heart stickers.
24
+
25
+ Filters like Instagram - You can use photo filter effects similar to Instagram.
26
+
27
+ Auto Decorating - Once you bring a device close to your heart for 3 seconds, your photo will be decorated automatically! It's amazing, try it!
28
+
29
+ Share - You can share your cute photos on Instagram, Tumblr, Facebook, Twitter, LINE.
30
+
31
+ "The culture of "Deco" (photo-decoration) is a big part of Japanese youth culture. With that in mind, we decided to create a photo editing app witha simple heart theme. We added an auto-decoration function that is amazing and heart warming to this app," said Ryo Kawanobe, creator of My Heart Camera. "As we are web developers, we choose PhoneGap because we wanted the flexibility to release on both iOS and Android while also being able to easily access plugins."
_posts/2013-06-29-yoga-travel.md ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Yoga+Travel
3
+ itunes_id: "630781473"
4
+ targetMarket: Personal
5
+ windows_phone_link: http://www.windowsphone.com/en-us/store/app/yoga-travel/b085d205-079c-448d-8b5f-c7840dd572ae
6
+ status: publish
7
+ type: app
8
+ ios_link: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=630781473&mt=8
9
+ thumb: /uploads/v2/2013-06-29-yoga-travel.png
10
+ devices:
11
+ - ios
12
+ - windows_phone
13
14
+ developer_link: http://www.yogabyallison.com/www/index.php?/default/action/products/
15
+ permalink: /yoga-travel/
16
+ developer: Velkat IT Solutions Inc. / Yoga By Allison
17
+ date: 2013-05-20 20:32:47.695260 +00:00
18
+ feature: true
19
+ feature_image: /uploads/feature/yoga_travel.jpg
20
+ layout: post
21
+ ---
22
+
23
+ Do you ever leave home for business or leisure travel and miss your favorite yoga class? In a new city and don’t know where to take class or can’t fit class into your busy schedule? This is the app for you! Yoga+Travel is the ideal app to take your yoga practice with you on the road. With safe, fun and effective sequenced classes for all levels, you never have to leave home without taking your yoga with you.
24
+
25
+ Winner of the <a href="http://www.phonegapwpchallenge.com/" data-proofer-ignore>Windows Phone App Porting Challenge</a>
_posts/2013-08-12-browser-quest.md ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ ios_link: https://itunes.apple.com/app/browserquest/id627657887?l=da&ls=1%26mt=8
3
+ type: app
4
5
+ date: 2013-08-12 21:17:07.494938 +00:00
6
+ developer: Mads & Peter Sandberg Brun
7
+ title: BrowserQuest
8
+ devices:
9
+ - ios
10
+ - windows_phone
11
+ permalink: /browserquest/
12
+ developer_link: http://mpbrun.dk/
13
+ targetMarket: Personal
14
+ windows_phone_link: http://www.windowsphone.com/en-us/store/app/browserquest/9df4ba1e-fa73-40d1-b391-4773d287db35
15
+ thumb: /uploads/v2/browserquest_thumb.png
16
+ status: publish
17
+ feature: true
18
+ feature_image: /uploads/feature/browserquest.jpg
19
+ layout: post
20
+ itunes_id: 627657887
21
+ ---
22
+
23
+ BrowserQuest is a small multiplayer game inviting you to explore a world of adventure from your Windows Phone.
24
+
25
+ You play as a young warrior driven by the thrill of adventure. No princess to save here, just a dangerous world filled with treasures to discover. As you discover more of the world, you can try to complete the built in quests/achievements or fight against other players.
26
+
27
+ So what are you waiting for? Download the game right now and start your journey into the unknown and mysterious world.
28
+
29
+ Note: This version of BrowserQuest is a extended version, which has been extended with a player level system and PvP fights, so the game feels a little bit longer.
30
+
31
+ Support: If you experience any errors, then please contact us by e-mail ([email protected]), as we cannot contact you through a review. We can then fix possible errors very quickly.
32
+
33
+ Winner of the <a href="http://www.phonegapwpchallenge.com/" data-proofer-ignore>Windows Phone App Porting Challenge</a>
_posts/2015-06-10-snowbuddy.md ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ sticky: 5
3
+ highlight: true
4
+ feature: true
5
+ feature_image: /uploads/feature/snowbuddy-banner.jpg
6
+ developer_link: http://snowbuddyhq.com/
7
+ permalink: /snowbuddy/
8
+ thumb: /uploads/v2/2015-06-10-snowbuddy.png
9
+ targetMarket: Personal
10
+ itunes_id: "932977366"
11
+ ios_link: https://itunes.apple.com/us/app/snowbuddy/id932977366?ls=1&mt=8
12
+ status: publish
13
+ devices:
14
+ - ios
15
+ - android
16
+ email: ""
17
+ date: 2015-06-10 23:04:40.306459 +00:00
18
+ android_link: https://play.google.com/store/apps/details?id=it.wemakeawesomesh.skitracker
19
+ title: snowbuddy
20
+ type: app
21
+ developer: We Make Awesome Sh
22
+ layout: post
23
+ ---
24
+
25
+ During our second alpine company meeting, we were looking for ski apps to use on the mountain. After downloading and testing a few of the ‘top apps’, we discovered some major flaws and omissions. These apps only really tracked speed, distance and calories and although some apps give you other useful data such as resort information and weather there was a serious lack of design and fun. Constantly competing to beat yours and your friends’ top speeds is not only challenging (most people can only hit a certain top speed and can rarely exceed it, particularly on a weeks’ ski trip) but it is also dangerous. It’s not about pushing yourself to the point of losing control, it’s about riding the mountain in perfect control, and having fun while doing it. For us, being on the mountain with your mates was more about having fun. So that’s what we made snowbuddy all about.
26
+
27
+ We used PhoneGap for snowbuddy as we wanted to develop the application quickly and have it on both Android & iOS. As it was originally for internal use, speed of development was crucial to us as well as cross platform support. For this, we believe PhoneGap was the best solution for us to use. We are really happy with how the app has turned out, and especially how well it performs on iOS. We’ve even had some developers question whether we were using Swift or Objective-C for it… Well no, we are using PhoneGap, but we do have some custom native plugins that we’ve used, both open source and ones we have made ourselves. We decided that other people might also enjoy using snowbuddy, so we released it to the public.
_posts/2015-06-11-sworkit.md ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ targetMarket: Personal
3
+ type: app
4
+ status: publish
5
+ author: admin
6
+ android_link: https://play.google.com/store/apps/details?id=sworkitapp.sworkit.com
7
+ title: Sworkit
8
+ date: 2015-06-10 12:24:21
9
+ permalink: /sworkit/
10
+ itunes_id: "527219710"
11
+ highlight: true
12
+ feature: true
13
+ feature_image: /uploads/feature/sworkit-pg-feature.png
14
+ sticky: 5
15
+ devices:
16
+ - ios
17
+ - android
18
+ developer_link: http://sworkit.com
19
+ categories: app
20
+ thumb: /uploads/v2/4fc4bff54b9a1phonegap.jpg
21
+ slug: None
22
+ contact: [email protected]
23
+ ios_link: http://itunes.apple.com/us/app/sworkit/id527219710?ls=1%26mt=8
24
+ developer: Nexercise Inc
25
+ layout: post
26
+ ---
27
+
28
+
29
+ Sworkit is a workout app that provides guided, video-based workouts that you can do anywhere and anytime. Sworkit dynamically assembles exercise routines that can fit any time constraint from as little as 5 minutes to over 60 minutes, by merging high quality video content with audio guidance recorded in 13 different languages. Without needing to think heavily, users can easily follow along to the professional video and audio, and even skip an exercise they find challenging while still maintaining the length of their workout.
30
+
31
+ At Sworkit, PhoneGap and hybrid development is overwhelming regarded as a competitive advantage. Originally created by just a single developer, Sworkit has been downloaded over 4 million times with users completing over of 7 million minutes of exercise each month. This exceptional growth is credited to the rapid development, testing and distribution that hybrid development provides this very small team compared to its competitors.
32
+
33
+ Sworkit has been featured by the Apple App Store, Google Play, Amazon Appstore, Samsung Apps and Xiaomi Market.
_posts/2015-11-12-localeur.md ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ permalink: /localeur/
3
+ status: publish
4
+ devices:
5
+ - ios
6
+ - android
7
+ highlight: true
8
+ type: app
9
+ developer_link: http://www.localeur.com/
10
+ developer: Localeur
11
+ targetMarket: Personal
12
+ date: 2015-11-12 17:33:46.884778 +00:00
13
+ thumb: /uploads/v2/2015-11-12-localeur.png
14
+ itunes_id: "777769897"
15
16
+ ios_link: https://itunes.apple.com/us/app/localeur-recommendations-from/id777769897?mt=8
17
+ android_link: https://play.google.com/store/apps/details?id=com.localeur.release1&hl=en
18
+ title: Localeur
19
+ layout: post
20
+ ---
21
+
22
+ Localeur provides free access to a community of locals who share their favorite places to eat, drink and play wherever you go. Localeur is live in 20 major US cities, and unlike review sites like Yelp and TripAdvisor, focuses on authenticity and trust. Localeur allows you to add your favorite local places, vote for places added by other locals, and save favorites so you and your friends on Localeur will have on-the-go access to the best places in your home city or the cities you visit.
_posts/2016-07-20-fanreact.md ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ permalink: /fanreact/
3
+ status: publish
4
+ devices:
5
+ - ios
6
+ - android
7
+ highlight: true
8
+ type: app
9
+ developer_link: http://fanreact.com/
10
+ developer: FanReact
11
+ targetMarket: Personal
12
+ thumb: /uploads/v2/FanReact-App-Icon.jpg
13
+ itunes_id: "947998588"
14
15
+ ios_link: https://itunes.apple.com/us/app/fanreact/id947998588?mt=8
16
+ android_link: https://play.google.com/store/apps/details?id=com.fanreact.app
17
+ title: FanReact
18
+ layout: post
19
+ ---
20
+
21
+ FanReact is a sports social media mobile application that allows fans to talk sports and upload reaction videos and photos of themselves with friends and family as the game unfolds. Share your thoughts, reactions, and more so you never miss a moment. "Phone Gap's large selection of free open-source plugins provide you with multiple options. As a result, development is easier and quite honestly, more fun."
feed.xml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ layout: null
3
+ ---
4
+ <?xml version="1.0" encoding="UTF-8"?>
5
+ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
6
+ <channel>
7
+ <title>{{ site.title | xml_escape }}</title>
8
+ <description>{{ site.description | xml_escape }}</description>
9
+ <link>{{ site.url }}{{ site.baseurl }}/</link>
10
+ <atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
11
+ <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
12
+ <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
13
+ <generator>Jekyll v{{ jekyll.version }}</generator>
14
+ {% for post in site.posts limit:10 %}
15
+ <item>
16
+ <title>{{ post.title | xml_escape }}</title>
17
+ <description>{{ post.content | xml_escape }}</description>
18
+ <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
19
+ <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
20
+ <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
21
+ {% for tag in post.tags %}
22
+ <category>{{ tag | xml_escape }}</category>
23
+ {% endfor %}
24
+ {% for cat in post.categories %}
25
+ <category>{{ cat | xml_escape }}</category>
26
+ {% endfor %}
27
+ </item>
28
+ {% endfor %}
29
+ </channel>
30
+ </rss>
index.html CHANGED
@@ -1,19 +1,29 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ layout: default
3
+ title: PhoneGap App Showcase
4
+ extra_js:
5
+ - app-showcase.js
6
+ ---
7
+ {% include subheader.html %}
8
+ <div class="bounds">
9
+ <!-- This loops through the posts -->
10
+ <div class="app-filters">
11
+ Narrow by platform: <span class="app-filter"><input class="app-filter__input" data-device="ios" type="checkbox" name="ios-filter" id="ios-filter" checked> <label for="ios-filter">IOS</label></span> <span class="app-filter"><input class="app-filter__input" data-device="android" type="checkbox" name="android-filter" id="android-filter" checked> <label for="android-filter">Android</label></span> <span class="app-filter"><input class="app-filter__input" data-device="windows_phone" type="checkbox" name="windows-filter" id="windows-filter" checked> <label for="windows-filter">Windows</label></span>
12
+ </div>
13
+ <ul class="app-list">
14
+ {% for post in site.posts %}
15
+ {% assign device_tags = '' %}
16
+ {% for device in post.devices %}
17
+ {% assign device_tags = device_tags | append: ' ' | append: device %}
18
+ {% endfor %}
19
+ <li class="app__thumbnail {{ device_tags }}">
20
+ <a href="{{ post.url | prepend: site.baseurl }}">
21
+ <img class="app__thumbnail__image" src="{{ post.thumb | prepend: site.baseurl }}" width="100" alt="{{ post.title }}"/>
22
+ <h3 class="app__title">{{ post.title }}</h3>
23
+ </a>
24
+ <div class="app__author">by {{ post.developer }}</div>
25
+ </li>
26
+ {% endfor %}
27
+ </ul>
28
+ </div>
29
+ {% include subfooter.html %}
scripts/app-showcase.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener("DOMContentLoaded", function(event) {
2
+ var checkboxArray = Sizzle('.app-filter__input');
3
+ var filterObj = {
4
+ windows_phone: true,
5
+ android: true,
6
+ ios: true
7
+ }
8
+ var filterItems = function(){
9
+ checkboxArray.forEach(function(checkbox){
10
+ filterObj[checkbox.dataset.device] = checkbox.checked;
11
+ });
12
+ var thumbnailArray = Sizzle('.app__thumbnail');
13
+
14
+ thumbnailArray.forEach(function(thumbnail){
15
+ var visible = Object.keys(filterObj).some(function(key){
16
+ if(filterObj[key]){
17
+ return thumbnail.classList.contains(key);
18
+ } else {
19
+ return false;
20
+ }
21
+ });
22
+ if(visible){
23
+ thumbnail.classList.remove('hidden');
24
+ } else {
25
+ thumbnail.classList.add('hidden');
26
+ }
27
+ });
28
+ }
29
+ checkboxArray.forEach(function(checkbox){
30
+ checkbox.onchange=function(){
31
+ filterItems();
32
+ };
33
+ });
34
+ });
uploads/book/2012-06/2012-06-15-phonegap-essentials-1.jpeg ADDED
uploads/book/2012-06/2012-06-15-phonegap-essentials.jpeg ADDED
uploads/book/2012-07/2012-02-22-beginning-phonegap-mobile-web-framework-for-javascript-and-html5.jpg ADDED
uploads/book/2012-09/2012-01-23-manual-del-guerrero-m-vil-phonegap.jpg ADDED