{"action":"created","comment":{"url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/comments/26583971","id":26583971,"diff_hunk":"@@ -0,0 +1,151 @@\n+---\n+layout: post\n+title:  \"CocoaPods.org Take Two\"\n+author: orta\n+categories: cocoapods.org releases website\n+---\n+\n+TL;DR: [CocoaPods.org][1] version 2.1 has been released, with support for inline deep search results, and pod pages.\n+\n+<!-- more -->\n+\n+<style>\n+  /* for the CP preview */\n+.container > .row > .content > center > a > img {\n+  border: 1px solid black;\n+}\n+</style>\n+\n+## Backstory.\n+\n+The CocoaPods web site is an interesting beast. In October 2013, we set around [rewriting][2] the CocoaPods web pages. We centralized the documentation, created a blog and redesigned everything. \n+\n+We settled on using a mix of middleman pages and jekyll. Given that, at the time, there was no central database for CocoaPods, it made sense to try and keep it as a static site for speed and maintainability.\n+\n+Once [CocoaDocs v2][3] launched in May 2014, I set my sights on trying to move cocoapods.org a little bit closer to my larger vision of what the website would provide.\n+\n+In an ideal world, you should be able to find a library that fits your constraints using just the front page of CocoaPods.org. Often there is more than one library, and that’s where things gets a bit more complex. In previous versions of the site, in order to choose between multiple libraries, you need to open them up on GitHub in separate tabs and compare. Now, you don’t need to. 🎉\n+\n+## Here’s how it works\n+\n+Let’s take a random pod. [MiniFuture][4]. This is what happens after a Pod is released:\n+\n+* A new Podspec version is added to [Trunk][5]\n+* A webhook from trunk triggers a reindex of the pod in the search engine which uses the generated metadata to sort and display pod results.\n+* A another webhook gets sent to CocoaDocs triggering a documentation build\n+* The documentation build uses [Jazzy][jazzy] ( or [appledoc][appledoc] for Objective-C projects ) to generate documentation. \n+* After documentation has finished CocoaDocs starts to generating metadata. This provides us with a rich dataset to start providing some useful statistics. This is centralized in [metrics.cocoapods.org][6], where we currently hold up-to-date GitHub metrics also.\n+\n+```json\n+// http://metrics.cocoapods.org/api/v1/pods/MiniFuture\n+\n+{\n+\t\"cocoadocs\": {\n+\t    \"created_at\": \"2015-03-08 16:48:25 UTC\",\n+\t    \"doc_percent\": 22,\n+\t    \"dominant_language\": \"Swift\",\n+\t    \"download_size\": 416,\n+\t    \"initial_commit_date\": \"2015-03-01 12:03:09 UTC\",\n+\t    \"license_canonical_url\": \"http://opensource.org/licenses/MIT\",\n+\t    \"license_short_name\": \"MIT\",\n+\t    \"notability\": 0,\n+\t    \"quality_estimate\": 50,\n+\t    \"readme_complexity\": 72,\n+\t    \"rendered_readme_url\": \"http://cocoadocs.org/docsets/MiniFuture/0.1.0/README.html\",\n+\t    \"total_comments\": 8,\n+\t    \"total_files\": 4,\n+\t    \"total_lines_of_code\": 327,\n+\t    \"total_test_expectations\": 204,\n+\t    \"updated_at\": \"2015-03-08 16:48:25 UTC\"\n+\t},\n+\t\"github\": {\n+\t    \"contributors\": 1,\n+\t    \"created_at\": \"2015-03-01 10:09:08 UTC\",\n+\t    \"forks\": 0,\n+\t    \"language\": \"Swift\",\n+\t    \"open_issues\": 0,\n+\t    \"open_pull_requests\": 0,\n+\t    \"stargazers\": 8,\n+\t    \"subscribers\": 2,\n+\t    \"updated_at\": \"2015-03-05 01:01:44 UTC\"\n+\t}\n+}\n+```\n+* A preview image is generated for the library for Social Media, chat, or really anything that supports open graph previews.\n+  {% breaking_image http://cocoadocs.org/docsets/MiniFuture/0.1.0/preview.png %}\n+  \n+* We then generate an estimated quality number for the library. This is based on a collection of [individual metrics][7] that are applied to the generated metrics data. They take a library and add or remove points based whether the rule applies for that library. These range from the popularity of the library, total test expectations / lines of code to the files, and average lines of code per file in the library.","path":"_posts/2015-03-16-CocoaPods.org-Take-Two.md","position":77,"original_position":77,"commit_id":"d0983b6136f517c8ebd9ebe81199ae6eb1b74439","original_commit_id":"d0983b6136f517c8ebd9ebe81199ae6eb1b74439","user":{"login":"ashfurrow","id":498212,"avatar_url":"https://avatars.githubusercontent.com/u/498212?v=3","gravatar_id":"","url":"https://api.github.com/users/ashfurrow","html_url":"https://github.com/ashfurrow","followers_url":"https://api.github.com/users/ashfurrow/followers","following_url":"https://api.github.com/users/ashfurrow/following{/other_user}","gists_url":"https://api.github.com/users/ashfurrow/gists{/gist_id}","starred_url":"https://api.github.com/users/ashfurrow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ashfurrow/subscriptions","organizations_url":"https://api.github.com/users/ashfurrow/orgs","repos_url":"https://api.github.com/users/ashfurrow/repos","events_url":"https://api.github.com/users/ashfurrow/events{/privacy}","received_events_url":"https://api.github.com/users/ashfurrow/received_events","type":"User","site_admin":false},"body":"Yeah, Laura :P ","created_at":"2015-03-17T15:37:43Z","updated_at":"2015-03-17T15:37:43Z","html_url":"https://github.com/CocoaPods/blog.cocoapods.org/pull/76#discussion_r26583971","pull_request_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76","_links":{"self":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/comments/26583971"},"html":{"href":"https://github.com/CocoaPods/blog.cocoapods.org/pull/76#discussion_r26583971"},"pull_request":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76"}}},"pull_request":{"url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76","id":31305113,"html_url":"https://github.com/CocoaPods/blog.cocoapods.org/pull/76","diff_url":"https://github.com/CocoaPods/blog.cocoapods.org/pull/76.diff","patch_url":"https://github.com/CocoaPods/blog.cocoapods.org/pull/76.patch","issue_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/76","number":76,"state":"open","locked":false,"title":"initial work on cocoapods 2 blog","user":{"login":"orta","id":49038,"avatar_url":"https://avatars.githubusercontent.com/u/49038?v=3","gravatar_id":"","url":"https://api.github.com/users/orta","html_url":"https://github.com/orta","followers_url":"https://api.github.com/users/orta/followers","following_url":"https://api.github.com/users/orta/following{/other_user}","gists_url":"https://api.github.com/users/orta/gists{/gist_id}","starred_url":"https://api.github.com/users/orta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orta/subscriptions","organizations_url":"https://api.github.com/users/orta/orgs","repos_url":"https://api.github.com/users/orta/repos","events_url":"https://api.github.com/users/orta/events{/privacy}","received_events_url":"https://api.github.com/users/orta/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-03-17T03:39:27Z","updated_at":"2015-03-17T15:37:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7f95dd6ee83fdbd76952bd5d20b50804f1f8dfaf","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76/commits","review_comments_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76/comments","review_comment_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/76/comments","statuses_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/statuses/d0983b6136f517c8ebd9ebe81199ae6eb1b74439","head":{"label":"CocoaPods:cp_2","ref":"cp_2","sha":"d0983b6136f517c8ebd9ebe81199ae6eb1b74439","user":{"login":"CocoaPods","id":1189714,"avatar_url":"https://avatars.githubusercontent.com/u/1189714?v=3","gravatar_id":"","url":"https://api.github.com/users/CocoaPods","html_url":"https://github.com/CocoaPods","followers_url":"https://api.github.com/users/CocoaPods/followers","following_url":"https://api.github.com/users/CocoaPods/following{/other_user}","gists_url":"https://api.github.com/users/CocoaPods/gists{/gist_id}","starred_url":"https://api.github.com/users/CocoaPods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CocoaPods/subscriptions","organizations_url":"https://api.github.com/users/CocoaPods/orgs","repos_url":"https://api.github.com/users/CocoaPods/repos","events_url":"https://api.github.com/users/CocoaPods/events{/privacy}","received_events_url":"https://api.github.com/users/CocoaPods/received_events","type":"Organization","site_admin":false},"repo":{"id":12127526,"name":"blog.cocoapods.org","full_name":"CocoaPods/blog.cocoapods.org","owner":{"login":"CocoaPods","id":1189714,"avatar_url":"https://avatars.githubusercontent.com/u/1189714?v=3","gravatar_id":"","url":"https://api.github.com/users/CocoaPods","html_url":"https://github.com/CocoaPods","followers_url":"https://api.github.com/users/CocoaPods/followers","following_url":"https://api.github.com/users/CocoaPods/following{/other_user}","gists_url":"https://api.github.com/users/CocoaPods/gists{/gist_id}","starred_url":"https://api.github.com/users/CocoaPods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CocoaPods/subscriptions","organizations_url":"https://api.github.com/users/CocoaPods/orgs","repos_url":"https://api.github.com/users/CocoaPods/repos","events_url":"https://api.github.com/users/CocoaPods/events{/privacy}","received_events_url":"https://api.github.com/users/CocoaPods/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CocoaPods/blog.cocoapods.org","description":"The blog for CocoaPods","fork":false,"url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org","forks_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/forks","keys_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/teams","hooks_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/hooks","issue_events_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/events{/number}","events_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/events","assignees_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/assignees{/user}","branches_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/branches{/branch}","tags_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/tags","blobs_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/refs{/sha}","trees_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/statuses/{sha}","languages_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/languages","stargazers_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/stargazers","contributors_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/contributors","subscribers_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/subscribers","subscription_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/subscription","commits_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/commits{/sha}","git_commits_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/commits{/sha}","comments_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/comments{/number}","issue_comment_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/comments{/number}","contents_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/contents/{+path}","compare_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/merges","archive_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/downloads","issues_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues{/number}","pulls_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls{/number}","milestones_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/milestones{/number}","notifications_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/labels{/name}","releases_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/releases{/id}","created_at":"2013-08-15T05:57:03Z","updated_at":"2015-03-14T16:15:53Z","pushed_at":"2015-03-17T15:36:18Z","git_url":"git://github.com/CocoaPods/blog.cocoapods.org.git","ssh_url":"git@github.com:CocoaPods/blog.cocoapods.org.git","clone_url":"https://github.com/CocoaPods/blog.cocoapods.org.git","svn_url":"https://github.com/CocoaPods/blog.cocoapods.org","homepage":"","size":25413,"stargazers_count":20,"watchers_count":20,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":16,"mirror_url":null,"open_issues_count":22,"forks":16,"open_issues":22,"watchers":20,"default_branch":"master"}},"base":{"label":"CocoaPods:master","ref":"master","sha":"a6bb6255db40cb4013acae1f7d65662f5d7b05b6","user":{"login":"CocoaPods","id":1189714,"avatar_url":"https://avatars.githubusercontent.com/u/1189714?v=3","gravatar_id":"","url":"https://api.github.com/users/CocoaPods","html_url":"https://github.com/CocoaPods","followers_url":"https://api.github.com/users/CocoaPods/followers","following_url":"https://api.github.com/users/CocoaPods/following{/other_user}","gists_url":"https://api.github.com/users/CocoaPods/gists{/gist_id}","starred_url":"https://api.github.com/users/CocoaPods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CocoaPods/subscriptions","organizations_url":"https://api.github.com/users/CocoaPods/orgs","repos_url":"https://api.github.com/users/CocoaPods/repos","events_url":"https://api.github.com/users/CocoaPods/events{/privacy}","received_events_url":"https://api.github.com/users/CocoaPods/received_events","type":"Organization","site_admin":false},"repo":{"id":12127526,"name":"blog.cocoapods.org","full_name":"CocoaPods/blog.cocoapods.org","owner":{"login":"CocoaPods","id":1189714,"avatar_url":"https://avatars.githubusercontent.com/u/1189714?v=3","gravatar_id":"","url":"https://api.github.com/users/CocoaPods","html_url":"https://github.com/CocoaPods","followers_url":"https://api.github.com/users/CocoaPods/followers","following_url":"https://api.github.com/users/CocoaPods/following{/other_user}","gists_url":"https://api.github.com/users/CocoaPods/gists{/gist_id}","starred_url":"https://api.github.com/users/CocoaPods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CocoaPods/subscriptions","organizations_url":"https://api.github.com/users/CocoaPods/orgs","repos_url":"https://api.github.com/users/CocoaPods/repos","events_url":"https://api.github.com/users/CocoaPods/events{/privacy}","received_events_url":"https://api.github.com/users/CocoaPods/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CocoaPods/blog.cocoapods.org","description":"The blog for CocoaPods","fork":false,"url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org","forks_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/forks","keys_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/teams","hooks_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/hooks","issue_events_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/events{/number}","events_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/events","assignees_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/assignees{/user}","branches_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/branches{/branch}","tags_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/tags","blobs_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/refs{/sha}","trees_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/statuses/{sha}","languages_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/languages","stargazers_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/stargazers","contributors_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/contributors","subscribers_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/subscribers","subscription_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/subscription","commits_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/commits{/sha}","git_commits_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/git/commits{/sha}","comments_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/comments{/number}","issue_comment_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/comments{/number}","contents_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/contents/{+path}","compare_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/merges","archive_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/downloads","issues_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues{/number}","pulls_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls{/number}","milestones_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/milestones{/number}","notifications_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/labels{/name}","releases_url":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/releases{/id}","created_at":"2013-08-15T05:57:03Z","updated_at":"2015-03-14T16:15:53Z","pushed_at":"2015-03-17T15:36:18Z","git_url":"git://github.com/CocoaPods/blog.cocoapods.org.git","ssh_url":"git@github.com:CocoaPods/blog.cocoapods.org.git","clone_url":"https://github.com/CocoaPods/blog.cocoapods.org.git","svn_url":"https://github.com/CocoaPods/blog.cocoapods.org","homepage":"","size":25413,"stargazers_count":20,"watchers_count":20,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":16,"mirror_url":null,"open_issues_count":22,"forks":16,"open_issues":22,"watchers":20,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76"},"html":{"href":"https://github.com/CocoaPods/blog.cocoapods.org/pull/76"},"issue":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/76"},"comments":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/issues/76/comments"},"review_comments":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76/comments"},"review_comment":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/pulls/76/commits"},"statuses":{"href":"https://api.github.com/repos/CocoaPods/blog.cocoapods.org/statuses/d0983b6136f517c8ebd9ebe81199ae6eb1b74439"}}}}