ppl 3.0.0 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (334) hide show
  1. checksums.yaml +5 -5
  2. data/.editorconfig +16 -0
  3. data/.eleventy.js +86 -0
  4. data/.eleventyignore +1 -0
  5. data/.github/workflows/build.yml +61 -0
  6. data/.gitignore +3 -1
  7. data/Rakefile +1 -18
  8. data/{CODE_OF_CONDUCT.md → code_of_conduct.md} +1 -1
  9. data/features/step_definitions/ppl_steps.rb +27 -27
  10. data/gh-pages/Gemfile +2 -0
  11. data/gh-pages/_config.yml +5 -0
  12. data/gh-pages/_includes/changelog.html +23 -0
  13. data/gh-pages/_includes/development-sidebar.html +25 -0
  14. data/gh-pages/_includes/footer.html +22 -0
  15. data/gh-pages/_includes/header.html +43 -0
  16. data/gh-pages/_includes/news.html +36 -0
  17. data/gh-pages/_includes/tip.html +54 -0
  18. data/gh-pages/_layouts/changelog.html +1 -0
  19. data/gh-pages/_layouts/command.html +104 -0
  20. data/gh-pages/_layouts/configuration.html +71 -0
  21. data/gh-pages/_layouts/development.html +20 -0
  22. data/gh-pages/_layouts/frontpage.html +6 -0
  23. data/gh-pages/_layouts/integration.html +44 -0
  24. data/gh-pages/_layouts/news.html +2 -0
  25. data/gh-pages/_layouts/page.html +6 -0
  26. data/gh-pages/_layouts/tip.html +2 -0
  27. data/gh-pages/_posts/2012-01-15-first-post.md +16 -0
  28. data/gh-pages/_posts/2012-12-20-1.0.0.md +19 -0
  29. data/gh-pages/_posts/2012-12-20-1.1.0.md +28 -0
  30. data/gh-pages/_posts/2012-12-20-1.2.0.md +18 -0
  31. data/gh-pages/_posts/2012-12-21-1.3.0.md +20 -0
  32. data/gh-pages/_posts/2012-12-21-thank-you-for-your-all-your-feedback.md +26 -0
  33. data/gh-pages/_posts/2012-12-22-1.4.1.md +21 -0
  34. data/gh-pages/_posts/2012-12-22-1.5.0.md +17 -0
  35. data/gh-pages/_posts/2012-12-23-1.5.1.md +13 -0
  36. data/gh-pages/_posts/2012-12-23-1.5.2.md +15 -0
  37. data/gh-pages/_posts/2012-12-26-1.5.3.md +19 -0
  38. data/gh-pages/_posts/2012-12-27-1.6.0.md +18 -0
  39. data/gh-pages/_posts/2012-12-29-1.7.0.md +18 -0
  40. data/gh-pages/_posts/2013-01-05-1.8.0.md +18 -0
  41. data/gh-pages/_posts/2013-01-06-1.9.0.md +20 -0
  42. data/gh-pages/_posts/2013-01-10-1.10.0.md +18 -0
  43. data/gh-pages/_posts/2013-01-20-1.11.0.md +14 -0
  44. data/gh-pages/_posts/2013-02-16-1.12.0.md +14 -0
  45. data/gh-pages/_posts/2013-02-17-1.13.0.md +29 -0
  46. data/gh-pages/_posts/2013-02-17-1.14.0.md +15 -0
  47. data/gh-pages/_posts/2013-02-17-1.14.1.md +18 -0
  48. data/gh-pages/_posts/2013-02-17-two-months-in.md +27 -0
  49. data/gh-pages/_posts/2013-03-16-1.15.0.md +28 -0
  50. data/gh-pages/_posts/2013-03-16-coloured-output-released.md +27 -0
  51. data/gh-pages/_posts/2013-04-10-ruby-2.0-compatibility.md +28 -0
  52. data/gh-pages/_posts/2013-04-11-1.15.1.md +13 -0
  53. data/gh-pages/_posts/2013-04-12-1.16.0.md +22 -0
  54. data/gh-pages/_posts/2013-04-14-1.17.0.md +15 -0
  55. data/gh-pages/_posts/2013-04-14-1.17.1.md +20 -0
  56. data/gh-pages/_posts/2013-04-14-1.17.2.md +13 -0
  57. data/gh-pages/_posts/2013-04-15-sync-alias.md +31 -0
  58. data/gh-pages/_posts/2013-04-15-utf8-fixed-and-more.md +37 -0
  59. data/gh-pages/_posts/2013-04-16-1.18.0.md +15 -0
  60. data/gh-pages/_posts/2013-04-16-set-up-color-output.md +47 -0
  61. data/gh-pages/_posts/2013-04-19-1.19.0.md +13 -0
  62. data/gh-pages/_posts/2013-04-19-1.20.0.md +15 -0
  63. data/gh-pages/_posts/2013-04-20-1.21.0.md +16 -0
  64. data/gh-pages/_posts/2013-04-20-1.22.0.md +14 -0
  65. data/gh-pages/_posts/2013-04-20-1.22.1.md +13 -0
  66. data/gh-pages/_posts/2013-04-21-1.22.2.md +15 -0
  67. data/gh-pages/_posts/2013-04-21-1.23.0.md +35 -0
  68. data/gh-pages/_posts/2013-04-23-1.24.0.md +16 -0
  69. data/gh-pages/_posts/2013-04-24-1.25.0.md +21 -0
  70. data/gh-pages/_posts/2013-05-09-2.0.0.md +33 -0
  71. data/gh-pages/_posts/2013-05-09-version-2.0.0-released.md +32 -0
  72. data/gh-pages/_posts/2013-07-20-2.1.0.md +36 -0
  73. data/gh-pages/_posts/2013-07-20-2.2.0.md +20 -0
  74. data/gh-pages/_posts/2013-10-12-2.3.0.md +19 -0
  75. data/gh-pages/_posts/2014-03-30-2.3.1.md +25 -0
  76. data/gh-pages/_posts/2015-01-05-2.3.2.md +18 -0
  77. data/gh-pages/_posts/2015-12-03-get-involved.md +29 -0
  78. data/gh-pages/_posts/2015-12-05-2.3.3.md +16 -0
  79. data/gh-pages/_posts/2016-01-02-2.4.0.md +19 -0
  80. data/gh-pages/_posts/2017-05-01-2.4.1.md +12 -0
  81. data/gh-pages/_posts/2017-10-23-sleep-mode.md +18 -0
  82. data/gh-pages/_posts/2018-01-03-3.0.1.md +12 -0
  83. data/gh-pages/_stylesheets/ppl/color.less +119 -0
  84. data/gh-pages/_stylesheets/ppl/layout.less +54 -0
  85. data/gh-pages/_stylesheets/ppl/style.less +185 -0
  86. data/gh-pages/_stylesheets/ppl/typography.less +59 -0
  87. data/gh-pages/development/changelog/index.md +18 -0
  88. data/gh-pages/development/changelog/split.rb +51 -0
  89. data/gh-pages/development/index.html +32 -0
  90. data/gh-pages/development/roadmap/index.md +15 -0
  91. data/gh-pages/documentation/about/index.html +63 -0
  92. data/gh-pages/documentation/commands/add/index.md +43 -0
  93. data/gh-pages/documentation/commands/age/add/index.md +40 -0
  94. data/gh-pages/documentation/commands/age/index.md +38 -0
  95. data/gh-pages/documentation/commands/bday/index.md +44 -0
  96. data/gh-pages/documentation/commands/completion/index.md +38 -0
  97. data/gh-pages/documentation/commands/email/index.md +64 -0
  98. data/gh-pages/documentation/commands/grep/index.md +32 -0
  99. data/gh-pages/documentation/commands/init/index.md +28 -0
  100. data/gh-pages/documentation/commands/ls/index.md +55 -0
  101. data/gh-pages/documentation/commands/mutt/index.md +36 -0
  102. data/gh-pages/documentation/commands/mv/index.md +26 -0
  103. data/gh-pages/documentation/commands/name/index.md +45 -0
  104. data/gh-pages/documentation/commands/nick/index.md +44 -0
  105. data/gh-pages/documentation/commands/org/index.md +45 -0
  106. data/gh-pages/documentation/commands/phone/index.md +56 -0
  107. data/gh-pages/documentation/commands/post/index.md +61 -0
  108. data/gh-pages/documentation/commands/pull/index.md +39 -0
  109. data/gh-pages/documentation/commands/push/index.md +36 -0
  110. data/gh-pages/documentation/commands/remote/index.md +40 -0
  111. data/gh-pages/documentation/commands/rm/index.md +23 -0
  112. data/gh-pages/documentation/commands/scrape/index.md +38 -0
  113. data/gh-pages/documentation/commands/shell/index.md +39 -0
  114. data/gh-pages/documentation/commands/show/index.md +33 -0
  115. data/gh-pages/documentation/commands/url/index.md +44 -0
  116. data/gh-pages/documentation/commands/version/index.md +27 -0
  117. data/gh-pages/documentation/configuration/address_book/index.md +22 -0
  118. data/gh-pages/documentation/configuration/alias/index.md +45 -0
  119. data/gh-pages/documentation/configuration/color/index.md +47 -0
  120. data/gh-pages/documentation/configuration/color_age/index.md +20 -0
  121. data/gh-pages/documentation/configuration/color_bday/index.md +20 -0
  122. data/gh-pages/documentation/configuration/color_email/index.md +21 -0
  123. data/gh-pages/documentation/configuration/color_ls/index.md +21 -0
  124. data/gh-pages/documentation/configuration/color_name/index.md +20 -0
  125. data/gh-pages/documentation/configuration/color_nick/index.md +20 -0
  126. data/gh-pages/documentation/configuration/color_org/index.md +20 -0
  127. data/gh-pages/documentation/configuration/color_phone/index.md +22 -0
  128. data/gh-pages/documentation/configuration/color_post/index.md +20 -0
  129. data/gh-pages/documentation/configuration/color_url/index.md +20 -0
  130. data/gh-pages/documentation/configuration/index.html +8 -0
  131. data/gh-pages/documentation/index.html +183 -0
  132. data/gh-pages/documentation/integration/bash/index.md +23 -0
  133. data/gh-pages/documentation/integration/google/index.md +26 -0
  134. data/gh-pages/documentation/integration/index.html +8 -0
  135. data/gh-pages/documentation/integration/mutt/index.md +35 -0
  136. data/gh-pages/documentation/integration/zsh/index.md +19 -0
  137. data/gh-pages/documentation/quick-start/index.html +88 -0
  138. data/gh-pages/documentation/tips/index.html +9 -0
  139. data/gh-pages/index.html +108 -0
  140. data/gh-pages/news/index.html +9 -0
  141. data/gh-pages/robots.txt +3 -0
  142. data/gh-pages/stylesheets/flatstrap.css +10 -0
  143. data/gh-pages/stylesheets/ppl.scss +235 -0
  144. data/gh-pages/wiki.png +0 -0
  145. data/lib/ppl.rb +4 -1
  146. data/lib/ppl/adapter/color.rb +0 -1
  147. data/lib/ppl/adapter/color/colored.rb +0 -1
  148. data/lib/ppl/adapter/email_scraper.rb +0 -1
  149. data/lib/ppl/adapter/email_scraper/mail.rb +4 -5
  150. data/lib/ppl/adapter/storage.rb +0 -1
  151. data/lib/ppl/adapter/storage/disk.rb +0 -1
  152. data/lib/ppl/adapter/storage/factory.rb +0 -1
  153. data/lib/ppl/adapter/vcard.rb +0 -1
  154. data/lib/ppl/adapter/vcard/vpim.rb +5 -1
  155. data/lib/ppl/application/bootstrap.rb +0 -1
  156. data/lib/ppl/application/command.rb +0 -1
  157. data/lib/ppl/application/command_suite.rb +0 -1
  158. data/lib/ppl/application/configuration.rb +0 -1
  159. data/lib/ppl/application/input.rb +0 -1
  160. data/lib/ppl/application/output.rb +0 -1
  161. data/lib/ppl/application/router.rb +0 -1
  162. data/lib/ppl/application/shell.rb +0 -1
  163. data/lib/ppl/command/add.rb +0 -1
  164. data/lib/ppl/command/age.rb +0 -1
  165. data/lib/ppl/command/attribute.rb +0 -1
  166. data/lib/ppl/command/bday.rb +0 -1
  167. data/lib/ppl/command/completion.rb +0 -1
  168. data/lib/ppl/command/email.rb +0 -1
  169. data/lib/ppl/command/external.rb +0 -1
  170. data/lib/ppl/command/help.rb +0 -1
  171. data/lib/ppl/command/init.rb +0 -1
  172. data/lib/ppl/command/ls.rb +0 -1
  173. data/lib/ppl/command/mutt.rb +0 -1
  174. data/lib/ppl/command/mv.rb +0 -1
  175. data/lib/ppl/command/name.rb +0 -1
  176. data/lib/ppl/command/nick.rb +0 -1
  177. data/lib/ppl/command/org.rb +0 -1
  178. data/lib/ppl/command/phone.rb +0 -1
  179. data/lib/ppl/command/post.rb +0 -1
  180. data/lib/ppl/command/rm.rb +0 -1
  181. data/lib/ppl/command/scrape.rb +0 -1
  182. data/lib/ppl/command/shell.rb +0 -1
  183. data/lib/ppl/command/show.rb +0 -1
  184. data/lib/ppl/command/url.rb +0 -1
  185. data/lib/ppl/command/version.rb +0 -1
  186. data/lib/ppl/entity/address_book.rb +0 -1
  187. data/lib/ppl/entity/contact.rb +0 -1
  188. data/lib/ppl/entity/email_address.rb +0 -1
  189. data/lib/ppl/entity/name.rb +0 -1
  190. data/lib/ppl/entity/phone_number.rb +0 -1
  191. data/lib/ppl/entity/postal_address.rb +0 -1
  192. data/lib/ppl/error/completion_not_found.rb +0 -1
  193. data/lib/ppl/error/contact_not_found.rb +0 -1
  194. data/lib/ppl/error/incorrect_usage.rb +0 -1
  195. data/lib/ppl/error/invalid_vcard.rb +1 -0
  196. data/lib/ppl/error/postal_address_not_found.rb +0 -1
  197. data/lib/ppl/format/address_book.rb +0 -1
  198. data/lib/ppl/format/address_book/ages.rb +0 -1
  199. data/lib/ppl/format/address_book/birthdays.rb +0 -1
  200. data/lib/ppl/format/address_book/email_addresses.rb +0 -1
  201. data/lib/ppl/format/address_book/mutt_query.rb +0 -1
  202. data/lib/ppl/format/address_book/names.rb +0 -1
  203. data/lib/ppl/format/address_book/nicknames.rb +0 -1
  204. data/lib/ppl/format/address_book/one_line.rb +0 -1
  205. data/lib/ppl/format/address_book/organizations.rb +0 -1
  206. data/lib/ppl/format/address_book/phone_numbers.rb +0 -1
  207. data/lib/ppl/format/address_book/postal_addresses.rb +0 -1
  208. data/lib/ppl/format/address_book/urls.rb +0 -1
  209. data/lib/ppl/format/contact.rb +0 -1
  210. data/lib/ppl/format/contact/age.rb +0 -1
  211. data/lib/ppl/format/contact/birthday.rb +0 -1
  212. data/lib/ppl/format/contact/email_addresses.rb +0 -1
  213. data/lib/ppl/format/contact/full.rb +0 -1
  214. data/lib/ppl/format/contact/nicknames.rb +0 -1
  215. data/lib/ppl/format/contact/organization.rb +0 -1
  216. data/lib/ppl/format/contact/phone_number.rb +0 -1
  217. data/lib/ppl/format/contact/postal_address.rb +0 -1
  218. data/lib/ppl/format/contact/postal_addresses.rb +0 -1
  219. data/lib/ppl/format/contact/urls.rb +0 -1
  220. data/lib/ppl/format/custom.rb +0 -1
  221. data/lib/ppl/format/custom/contact.rb +0 -1
  222. data/lib/ppl/format/custom/email_address.rb +0 -1
  223. data/lib/ppl/format/custom/phone_number.rb +0 -1
  224. data/lib/ppl/format/name.rb +0 -1
  225. data/lib/ppl/format/name/full_only.rb +0 -1
  226. data/lib/ppl/format/postal_address.rb +0 -1
  227. data/lib/ppl/format/postal_address/multi_line.rb +0 -1
  228. data/lib/ppl/format/postal_address/one_line.rb +0 -1
  229. data/lib/ppl/format/table.rb +0 -1
  230. data/lib/ppl/service/email_address.rb +0 -1
  231. data/lib/ppl/service/name.rb +0 -1
  232. data/lib/ppl/service/phone_number.rb +0 -1
  233. data/lib/ppl/service/postal_address.rb +0 -1
  234. data/{LICENSE → license} +0 -0
  235. data/makefile +18 -0
  236. data/package.json +23 -0
  237. data/ppl.gemspec +15 -13
  238. data/{README.md → readme.md} +12 -9
  239. data/site/_data/url.js +4 -0
  240. data/site/casts/hero.cast +189 -0
  241. data/site/development.njk +6 -0
  242. data/site/documentation.njk +6 -0
  243. data/site/index.njk +75 -0
  244. data/site/news.njk +6 -0
  245. data/site/style.scss +140 -0
  246. data/spec/ppl/adapter/color/colored_spec.rb +3 -4
  247. data/spec/ppl/adapter/color_spec.rb +0 -1
  248. data/spec/ppl/adapter/email_scraper/mail_spec.rb +13 -13
  249. data/spec/ppl/adapter/email_scraper_spec.rb +0 -1
  250. data/spec/ppl/adapter/output_spec.rb +7 -8
  251. data/spec/ppl/adapter/storage/disk_spec.rb +18 -19
  252. data/spec/ppl/adapter/storage/factory_spec.rb +3 -4
  253. data/spec/ppl/adapter/storage/git_spec.rb +31 -32
  254. data/spec/ppl/adapter/storage_spec.rb +3 -4
  255. data/spec/ppl/adapter/vcard/greencard_spec.rb +45 -45
  256. data/spec/ppl/adapter/vcard_spec.rb +0 -1
  257. data/spec/ppl/application/bootstrap_spec.rb +128 -129
  258. data/spec/ppl/application/command_spec.rb +8 -9
  259. data/spec/ppl/application/command_suite_spec.rb +7 -8
  260. data/spec/ppl/application/configuration_spec.rb +16 -17
  261. data/spec/ppl/application/input_spec.rb +2 -3
  262. data/spec/ppl/application/router_spec.rb +8 -9
  263. data/spec/ppl/application/shell_spec.rb +39 -40
  264. data/spec/ppl/command/add_spec.rb +6 -7
  265. data/spec/ppl/command/age_spec.rb +7 -8
  266. data/spec/ppl/command/attribute_spec.rb +22 -23
  267. data/spec/ppl/command/bday_spec.rb +11 -12
  268. data/spec/ppl/command/completion_spec.rb +7 -8
  269. data/spec/ppl/command/email_spec.rb +19 -20
  270. data/spec/ppl/command/external_spec.rb +7 -8
  271. data/spec/ppl/command/help_spec.rb +15 -16
  272. data/spec/ppl/command/init_spec.rb +5 -6
  273. data/spec/ppl/command/ls_spec.rb +12 -13
  274. data/spec/ppl/command/mutt_spec.rb +33 -34
  275. data/spec/ppl/command/mv_spec.rb +11 -12
  276. data/spec/ppl/command/name_spec.rb +17 -18
  277. data/spec/ppl/command/nick_spec.rb +1 -2
  278. data/spec/ppl/command/org_spec.rb +1 -2
  279. data/spec/ppl/command/phone_spec.rb +15 -16
  280. data/spec/ppl/command/post_spec.rb +29 -30
  281. data/spec/ppl/command/rm_spec.rb +3 -4
  282. data/spec/ppl/command/scrape_spec.rb +24 -25
  283. data/spec/ppl/command/shell_spec.rb +41 -42
  284. data/spec/ppl/command/show_spec.rb +4 -5
  285. data/spec/ppl/command/url_spec.rb +1 -2
  286. data/spec/ppl/command/version_spec.rb +4 -5
  287. data/spec/ppl/entity/address_book_spec.rb +1 -2
  288. data/spec/ppl/entity/contact_spec.rb +16 -17
  289. data/spec/ppl/entity/email_address_spec.rb +3 -4
  290. data/spec/ppl/entity/name_spec.rb +1 -2
  291. data/spec/ppl/entity/phone_number_spec.rb +5 -6
  292. data/spec/ppl/entity/postal_address_spec.rb +2 -3
  293. data/spec/ppl/format/address_book/ages_spec.rb +3 -4
  294. data/spec/ppl/format/address_book/birthdays_spec.rb +3 -4
  295. data/spec/ppl/format/address_book/email_addresses_spec.rb +3 -4
  296. data/spec/ppl/format/address_book/mutt_query_spec.rb +3 -4
  297. data/spec/ppl/format/address_book/names_spec.rb +3 -4
  298. data/spec/ppl/format/address_book/nicknames_spec.rb +4 -5
  299. data/spec/ppl/format/address_book/one_line_spec.rb +5 -6
  300. data/spec/ppl/format/address_book/organizations_spec.rb +3 -4
  301. data/spec/ppl/format/address_book/phone_numbers_spec.rb +3 -4
  302. data/spec/ppl/format/address_book/postal_addresses_spec.rb +2 -3
  303. data/spec/ppl/format/address_book/urls_spec.rb +3 -4
  304. data/spec/ppl/format/address_book_spec.rb +0 -1
  305. data/spec/ppl/format/contact/age_spec.rb +8 -9
  306. data/spec/ppl/format/contact/birthday_spec.rb +4 -5
  307. data/spec/ppl/format/contact/email_addresses_spec.rb +3 -4
  308. data/spec/ppl/format/contact/full_spec.rb +11 -12
  309. data/spec/ppl/format/contact/nicknames_spec.rb +4 -5
  310. data/spec/ppl/format/contact/organization_spec.rb +4 -5
  311. data/spec/ppl/format/contact/phone_number_spec.rb +4 -5
  312. data/spec/ppl/format/contact/postal_address_spec.rb +1 -2
  313. data/spec/ppl/format/contact/postal_addresses_spec.rb +3 -4
  314. data/spec/ppl/format/contact/urls_spec.rb +4 -5
  315. data/spec/ppl/format/contact_spec.rb +0 -1
  316. data/spec/ppl/format/custom/contact_spec.rb +13 -14
  317. data/spec/ppl/format/custom/email_address_spec.rb +3 -4
  318. data/spec/ppl/format/custom/phone_number_spec.rb +4 -5
  319. data/spec/ppl/format/custom_spec.rb +6 -7
  320. data/spec/ppl/format/name/full_only_spec.rb +4 -5
  321. data/spec/ppl/format/name_spec.rb +0 -1
  322. data/spec/ppl/format/postal_address/multi_line_spec.rb +10 -11
  323. data/spec/ppl/format/postal_address/one_line_spec.rb +9 -10
  324. data/spec/ppl/format/postal_address_spec.rb +0 -1
  325. data/spec/ppl/format/table_spec.rb +11 -11
  326. data/spec/ppl/service/email_address_spec.rb +13 -14
  327. data/spec/ppl/service/name_spec.rb +9 -10
  328. data/spec/ppl/service/phone_number_spec.rb +11 -12
  329. data/spec/ppl/service/postal_address_spec.rb +20 -21
  330. data/spec/spec_helper.rb +4 -0
  331. data/yarn.lock +3605 -0
  332. metadata +183 -22
  333. data/.travis.yml +0 -11
  334. data/COPYING +0 -339
@@ -0,0 +1,8 @@
1
+ ---
2
+ title: Configuration
3
+ layout: page
4
+ section: documentation
5
+ ---
6
+
7
+ <p>configuration</p>
8
+
@@ -0,0 +1,183 @@
1
+ ---
2
+ title: Documentation
3
+ layout: page
4
+ section: documentation
5
+ ---
6
+
7
+ <h2>Documentation</h2>
8
+
9
+ <div class="row">
10
+
11
+ <div class="span4">
12
+ <h3>Quick Start</h3>
13
+ <div class="well well-large">
14
+ <p>
15
+ Trying ppl for the first time?
16
+ <br />
17
+ Want to learn the basics?
18
+ <br />
19
+ In 30 seconds or less?
20
+ </p>
21
+
22
+ <p>
23
+ <a class="btn btn-primary" href="{{site.url}}/documentation/quick-start">
24
+ Get Started
25
+ </a>
26
+ </p>
27
+
28
+ </div>
29
+ </div>
30
+
31
+ <div class="span8">
32
+ <h3>Command Reference</h3>
33
+
34
+ <div class="row">
35
+
36
+ <div class="span2">
37
+ <ul class="nav nav-pills nav-stacked">
38
+ <li><a href="{{site.url}}/documentation/commands/age">age</a></li>
39
+ <li><a href="{{site.url}}/documentation/commands/add">add</a></li>
40
+ <li><a href="{{site.url}}/documentation/commands/bday">bday</a></li>
41
+ <li><a href="{{site.url}}/documentation/commands/completion">completion</a></li>
42
+ <li><a href="{{site.url}}/documentation/commands/email">email</a></li>
43
+ <li><a href="{{site.url}}/documentation/commands/grep">grep</a></li>
44
+ </ul>
45
+ </div>
46
+
47
+ <div class="span2">
48
+ <ul class="nav nav-pills nav-stacked">
49
+ <li><a href="{{site.url}}/documentation/commands/init">init</a></li>
50
+ <li><a href="{{site.url}}/documentation/commands/ls">ls</a></li>
51
+ <li><a href="{{site.url}}/documentation/commands/mutt">mutt</a></li>
52
+ <li><a href="{{site.url}}/documentation/commands/mv">mv</a></li>
53
+ <li><a href="{{site.url}}/documentation/commands/name">name</a></li>
54
+ <li><a href="{{site.url}}/documentation/commands/nick">nick</a></li>
55
+ </ul>
56
+ </div>
57
+
58
+ <div class="span2">
59
+ <ul class="nav nav-pills nav-stacked">
60
+ <li><a href="{{site.url}}/documentation/commands/org">org</a></li>
61
+ <li><a href="{{site.url}}/documentation/commands/phone">phone</a></li>
62
+ <li><a href="{{site.url}}/documentation/commands/post">post</a></li>
63
+ <li><a href="{{site.url}}/documentation/commands/pull">pull</a></li>
64
+ <li><a href="{{site.url}}/documentation/commands/push">push</a></li>
65
+ <li><a href="{{site.url}}/documentation/commands/remote">remote</a></li>
66
+ </ul>
67
+ </div>
68
+
69
+ <div class="span2">
70
+ <ul class="nav nav-pills nav-stacked">
71
+ <li><a href="{{site.url}}/documentation/commands/rm">rm</a></li>
72
+ <li><a href="{{site.url}}/documentation/commands/scrape">scrape</a></li>
73
+ <li><a href="{{site.url}}/documentation/commands/shell">shell</a></li>
74
+ <li><a href="{{site.url}}/documentation/commands/show">show</a></li>
75
+ <li><a href="{{site.url}}/documentation/commands/url">url</a></li>
76
+ <li><a href="{{site.url}}/documentation/commands/version">version</a></li>
77
+ </ul>
78
+ </div>
79
+
80
+ </div>
81
+
82
+ </div>
83
+
84
+ </div>
85
+
86
+
87
+ <div class="row">
88
+
89
+ <div class="span4">
90
+ <h3>Tips &amp; Tricks</h3>
91
+ <p>
92
+ Small bits of advice for getting the most out of ppl.
93
+ <br />
94
+ <a href="{{site.url}}/documentation/tips">Sound interesting?</a>
95
+ </p>
96
+ </div>
97
+
98
+ <div class="span8">
99
+ <h3>Integration Guide</h3>
100
+ <div class="row">
101
+
102
+ <div class="span2">
103
+ <ul class="nav nav-pills nav-stacked">
104
+ <li><a href="{{site.url}}/documentation/integration/bash">Bash</a></li>
105
+ </ul>
106
+ </div>
107
+
108
+ <div class="span2">
109
+ <ul class="nav nav-pills nav-stacked">
110
+ <li><a href="{{site.url}}/documentation/integration/google">Google</a></li>
111
+ </ul>
112
+ </div>
113
+
114
+ <div class="span2">
115
+ <ul class="nav nav-pills nav-stacked">
116
+ <li><a href="{{site.url}}/documentation/integration/mutt">Mutt</a></li>
117
+ </ul>
118
+ </div>
119
+
120
+ <div class="span2">
121
+ <ul class="nav nav-pills nav-stacked">
122
+ <li><a href="{{site.url}}/documentation/integration/zsh">ZSH</a></li>
123
+ </ul>
124
+ </div>
125
+
126
+ </div>
127
+ </div>
128
+
129
+ </div>
130
+
131
+ <div class="row">
132
+
133
+ <div class="span4">
134
+ <h3>About ppl</h3>
135
+ <p>
136
+ Wondering why ppl even exists? Whose idea it was?
137
+ <br />
138
+ <a href="{{site.url}}/documentation/about">Look no further</a>
139
+ </p>
140
+ </div>
141
+
142
+ <div class="span8">
143
+ <h3>Configuration Guide</h3>
144
+ <div class="row">
145
+
146
+ <div class="span2">
147
+ <ul class="nav nav-pills nav-stacked">
148
+ <li><a href="{{site.url}}/documentation/configuration/address_book">[address&nbsp;book]</a></li>
149
+ <li><a href="{{site.url}}/documentation/configuration/alias">[alias]</a></li>
150
+ <li><a href="{{site.url}}/documentation/configuration/color">[color]</a></li>
151
+ <li><a href="{{site.url}}/documentation/configuration/color_age">[color "age"]</a></li>
152
+ </ul>
153
+ </div>
154
+
155
+ <div class="span2">
156
+ <ul class="nav nav-pills nav-stacked">
157
+ <li><a href="{{site.url}}/documentation/configuration/color_bday">[color "bday"]</a></li>
158
+ <li><a href="{{site.url}}/documentation/configuration/color_email">[color "email"]</a></li>
159
+ <li><a href="{{site.url}}/documentation/configuration/color_ls">[color "ls"]</a></li>
160
+ <li><a href="{{site.url}}/documentation/configuration/color_name">[color "name"]</a></li>
161
+ </ul>
162
+ </div>
163
+
164
+ <div class="span2">
165
+ <ul class="nav nav-pills nav-stacked">
166
+ <li><a href="{{site.url}}/documentation/configuration/color_nick">[color "nick"]</a></li>
167
+ <li><a href="{{site.url}}/documentation/configuration/color_org">[color "org"]</a></li>
168
+ <li><a href="{{site.url}}/documentation/configuration/color_phone">[color&nbsp;"phone"]</a></li>
169
+ <li><a href="{{site.url}}/documentation/configuration/color_post">[color "post"]</a></li>
170
+ </ul>
171
+ </div>
172
+
173
+ <div class="span2">
174
+ <ul class="nav nav-pills nav-stacked">
175
+ <li><a href="{{site.url}}/documentation/configuration/color_url">[color "url"]</a></li>
176
+ </ul>
177
+ </div>
178
+
179
+ </div>
180
+ </div>
181
+
182
+ </div>
183
+
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: Bash Integration Guide
3
+ layout: integration
4
+ section: documentation
5
+ integration: bash
6
+ ---
7
+
8
+ If you've ever used a command-line program like Git, you've probably used tab
9
+ completion before. For example, you type `git chec`, press the `<Tab>` key, and
10
+ bash automatically completes the rest of the command for you: `git checkout`.
11
+ Bash accomplishes this through the use of a [completion
12
+ function](http://tldp.org/LDP/abs/html/tabexpansion.html), and the good news is
13
+ that there's one available for ppl.
14
+
15
+ ### Install the completion function globally
16
+
17
+ $ ppl completion bash | sudo tee /etc/bash_completion.d/ppl
18
+
19
+ The [completion](/documentation/commands/completion) command simply outputs the
20
+ completion function code in its entirety. The above line pipes that code into
21
+ its rightful place in your system's Bash completion function config directory.
22
+
23
+
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: Google Integration Guide
3
+ layout: integration
4
+ section: documentation
5
+ integration: google
6
+ ---
7
+
8
+ Many people have a large set of address book data stored in Google Contacts,
9
+ usually under the hood of GMail itself. If you fall in this category, and you
10
+ want to copy over that data as a starting point for your ppl address book, you
11
+ have a few options thanks to the enterprising work of some generous ppl users.
12
+
13
+ ### gv-contacts
14
+
15
+ Part of an npm package called [gv](https://github.com/matthewp/gv-app/), the `gv
16
+ contacts` command is a way of importing contacts directly from your Google
17
+ account into ppl. It imports contacts' names, phone numbers and email addresses.
18
+
19
+ ### goog2ppl
20
+
21
+ [goog2ppl](https://github.com/shushcat/goog2ppl) is a python script for
22
+ converting a contacts.vcf file [exported from
23
+ Google](http://support.google.com/mail/answer/24911?hl=en) and breaking it up
24
+ into pieces suitable for initialization as the contents of a ppl address book
25
+ directory.
26
+
@@ -0,0 +1,8 @@
1
+ ---
2
+ title: Integration
3
+ layout: page
4
+ section: documentation
5
+ ---
6
+
7
+ <h2>Integration</h3>
8
+
@@ -0,0 +1,35 @@
1
+ ---
2
+ title: Mutt Integration Guide
3
+ layout: integration
4
+ section: documentation
5
+ integration: mutt
6
+ ---
7
+
8
+ The [Mutt E-Mail Client](http://www.mutt.org/)
9
+
10
+ ### Email Address Autocompletion
11
+
12
+ Mutt supports the use of external address book programs as a source of [email
13
+ address autocompletion
14
+ suggestions](http://www.mutt.org/doc/manual/manual-4.html#ss4.5). You can use
15
+ this to integrate ppl into mutt by adding the following to your `~/.muttrc`:
16
+
17
+ set query_command = "ppl mutt '%s'"
18
+
19
+ With that configured, you can then invoke ppl from within mutt as a means of
20
+ quickly finding email addresses by pressing `Q` in the index menu, or by
21
+ pressing `^T` in any prompt for address entry.
22
+
23
+ ### Quickly Adding New Contacts
24
+
25
+ If you have a lot of email to deal with, you may find it tedious to have to add
26
+ each new email contact to your address book manually. With a macro like the
27
+ following in your `~/.muttrc`, adding the sender of the currently selected email
28
+ is as simple as pressing the `a` key.
29
+
30
+ macro index,pager a "<pipe-message>ppl scrape --sender<return>"
31
+
32
+ This macro uses the [scrape](/documentation/commands/scrape) command to pull out
33
+ the sender's email address and name (if available), and adds them to the address
34
+ book.
35
+
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: ZSH Integration Guide
3
+ layout: integration
4
+ section: documentation
5
+ integration: zsh
6
+ ---
7
+
8
+ Similarly to the [Bash completion](/documentation/integration/bash/)
9
+ functionality also available, ppl comes ready with a ZSH completion function as
10
+ well. Here's how to get it set up:
11
+
12
+ ### Install the completion function
13
+
14
+ $ ppl completion zsh | sudo tee /usr/share/zsh/site-functions/_ppl
15
+
16
+ Depending on your choice of operating system, the target directory in the above
17
+ code may differ. The above is certainly correct for Arch Linux, but on Debian,
18
+ for example, the target would be `/usr/local/share/zsh/site-functions/`.
19
+
@@ -0,0 +1,88 @@
1
+ ---
2
+ title: ppl Quick Start
3
+ layout: page
4
+ section: documentation
5
+ ---
6
+
7
+ <h2>Quick Start</h2>
8
+
9
+ <div class="row">
10
+ <div class="span8">
11
+ <h3>Requirements</h3>
12
+ <p>
13
+ ppl depends on <a href="http://rubygems.org/">rubygems</a> for
14
+ installation, and on <a href="http://git-scm.com/">git</a> for storage and
15
+ syncing.
16
+ </p>
17
+ </div>
18
+ </div>
19
+
20
+ <div class="row">
21
+ <div class="span8">
22
+ <h3>Installation</h3>
23
+ <pre><code>$ sudo gem install ppl</code></pre>
24
+ </div>
25
+ </div>
26
+
27
+ <div class="row">
28
+ <div class="span8">
29
+ <h3>Create An Address Book</h3>
30
+ <pre><code>$ ppl init ~/contacts</code></pre>
31
+ </div>
32
+ <div class="span4">
33
+ <h3>&nbsp;</h3>
34
+ <p>
35
+ <a href="{{site.url}}/documentation/commands/init">ppl init</a> is just
36
+ like creating a Git repo
37
+ </p>
38
+ </div>
39
+ </div>
40
+
41
+ <div class="row">
42
+ <div class="span8">
43
+ <h3>Add Some Contacts</h3>
44
+ <pre><code>$ cd ~/contacts
45
+ $ ppl add alice "Alice Adams"
46
+ $ ppl add bob "Bob Brown"
47
+ $ ppl add eve "Eve Edwards"</code></pre>
48
+ </div>
49
+ <div class="span4">
50
+ <h3>&nbsp;</h3>
51
+ <p>
52
+ <a href="{{site.url}}/documentation/commands/add">ppl add</a> creates new
53
+ contacts in the address book
54
+ </p>
55
+ </div>
56
+ </div>
57
+
58
+ <div class="row">
59
+ <div class="span8">
60
+ <h3>Store Some Contact Details</h3>
61
+ <pre><code>$ ppl email alice alice@example.org
62
+ $ ppl phone bob 0123456789
63
+ $ ppl org eve "Red Hat"</code></pre>
64
+ </div>
65
+ <div class="span4">
66
+ <h3>&nbsp;</h3>
67
+ <p>
68
+ ppl has many commands for adding new properties to contacts. Further
69
+ information is available in the <a href="{{site.url}}/documentation">documentation</a>
70
+ </p>
71
+ </div>
72
+ </div>
73
+
74
+ <div class="row">
75
+ <div class="span8">
76
+ <h3>Set Your Default Address Book</h3>
77
+ <pre><code>$ echo "[address book]" > ~/.pplconfig
78
+ $ echo path = "`pwd`" >> ~/.pplconfig</code></pre>
79
+ </div>
80
+ <div class="span4">
81
+ <h3>&nbsp;</h3>
82
+ <p>
83
+ This tells ppl to let you keep working with this address book even after
84
+ you <code>cd</code> into another directory
85
+ </p>
86
+ </div>
87
+ </div>
88
+
@@ -0,0 +1,9 @@
1
+ ---
2
+ title: "Tips & Tricks"
3
+ section: documentation
4
+ ---
5
+
6
+ {% assign page = site.categories.tips.first %}
7
+ {% assign content = site.categories.tips.first.content %}
8
+ {% include tip.html %}
9
+
@@ -0,0 +1,108 @@
1
+ ---
2
+ title: ppl - The Command Line Address Book
3
+ layout: frontpage
4
+ ---
5
+
6
+
7
+ <div class="front-page">
8
+
9
+ <div class="row welcome">
10
+
11
+ <div class="span4">
12
+
13
+ <h1 class="big-welcome">
14
+ ppl
15
+ </h1>
16
+
17
+ <p class="little-welcome">
18
+ The command line address book
19
+ </p>
20
+ <p class="little-welcome">
21
+ <a href="{{site.url}}/documentation/quick-start">
22
+ Try it!
23
+ </a>
24
+ </p>
25
+
26
+ </div>
27
+
28
+ <div class="span8">
29
+ <pre class="welcome-example"><code><span class="bash-prompt">$</span> ppl add henry "Henry Smith"
30
+ <span class="bash-prompt">$</span> ppl phone henry 012345678
31
+ <span class="bash-prompt">$</span> ppl email henry henry@henrysmith.org
32
+ <span class="bash-prompt">$</span> ppl show henry
33
+ Henry Smith &lt;henry@henrysmith.org&gt;
34
+
35
+ Email Addresses:
36
+ henry@henrysmith.org
37
+
38
+ Phone Numbers:
39
+ 0123456789
40
+ </code></pre>
41
+ </div>
42
+
43
+ </div>
44
+
45
+ <div class="row what">
46
+
47
+ <div class="span4">
48
+ <h2>Free</h2>
49
+ <p>
50
+ ppl is free software made out of other free software. It's built on top
51
+ of Ruby and Git, and the completely free vcard address book format.
52
+ </p>
53
+ </div>
54
+
55
+ <div class="span4">
56
+ <h2>Decentralized</h2>
57
+ <p>
58
+ ppl is built on top of Git, the world's most popular decentralized
59
+ version control system. Use your address book wherever you like and let
60
+ Git worry about making sense of it all.
61
+ </p>
62
+ </div>
63
+
64
+ <div class="span4">
65
+ <h2>Good</h2>
66
+ <p>
67
+ ppl does its best to be a proper UNIX-style comand line program. Proper
68
+ exit codes, no superfluous output, that sort of thing.
69
+ </p>
70
+ </div>
71
+
72
+ </div>
73
+
74
+ <div class="row latest">
75
+
76
+ <div class="span4">
77
+ <h3>Latest Version</h3>
78
+ <div class="well">
79
+ <h2>
80
+ {{site.categories.changelog.first.title}}
81
+ <small>
82
+ ({{ site.categories.changelog.first.date | date: '%Y-%m-%d' }})
83
+ </small>
84
+ </h2>
85
+ <p>
86
+ <a href="{{site.url}}{{site.categories.changelog.first.permalink}}">
87
+ {{site.categories.changelog.first.summary}}
88
+ </a>
89
+ </p>
90
+ </div>
91
+ </div>
92
+
93
+ <div class="span8">
94
+ <h3>
95
+ {{site.categories.news.first.title}}
96
+ <small>
97
+ <a href="{{site.url}}{{site.categories.news.first.url}}">
98
+ {{site.categories.news.first.date | date: '%Y-%m-%d'}}
99
+ </a>
100
+ </small>
101
+ </h3>
102
+ {{site.categories.news.first.content}}
103
+ </div>
104
+
105
+ </div>
106
+
107
+ </div>
108
+