{"action":"created","comment":{"url":"https://api.github.com/repos/strongloop/loopback.io/pulls/comments/85678383","pull_request_review_id":6379040,"id":85678383,"diff_hunk":"@@ -9,27 +9,89 @@ permalink: /doc/en/community/How-to-add-a-project.html\n \n To add your community project here, follow these steps:\n \n-1. Fork the [strongloop/loopback.io repository](https://github.com/strongloop/loopback.io.git) (see [Fork a repo](https://help.github.com/articles/fork-a-repo/) for instructions).\n+First, fork the [strongloop/loopback.io repository](https://github.com/strongloop/loopback.io.git) (see [Fork a repo](https://help.github.com/articles/fork-a-repo/) for instructions).\n+\n+Now, you have two options:\n+\n+- If your project repository has a good, detailed README, you can reuse it.  Follow the steps in [Reuse your README](#reuse-your-readme).\n+- If your project doesn't have a complete README, you can create a custom page.  Follow the steps in [Create a custom project page](#create-a-custom-page).\n+\n+## Reuse your README\n+\n+This site has tools and processes for incorporating README files from external repositories.\n+For a full description, see [Including READMEs from other repositories](/doc/en/contrib/Including-READMEs.html).  In brief, we use a script to pull down READMEs over the network, then incorporate them into the site.  Currently, to update the READMEs, we periodically run the script manually.\n+\n+To reuse your project README, follow these steps:\n+\n+1. Copy one of the existing project pages that uses a README, for example  `loopback.io/pages/en/community/IoT-demo.md`.\n+  - Save it into the same directory (`pages/en/community`), and name it based on your project name, for example `pages/en/community/My-awesome-project.md`.\n+1. Edit the front matter at the top of the file (see below):\n+  - Change the `title` property to be the name of your project.\n+  - Change the `source` property to the name of your repository; in the example below `source: StrongLoop-IoT-Demo`.\n+  - Change the `org` property to the name of the organization that contains the repository; for example `org: my-org`.\n+  - Change the `permalink` property to match the name of the file, for example `/doc/en/community/My-awesome-project.html`.\n+  - Add any `keywords` you want for search-engine optimization (optional).\n+  - If you don't want an automatically-generated page TOC, add `toc: false`.\n+1. Edit the rest of the page to fill in the information for your project, replacing the sample content and instructions.\n+\n+### Front matter for README page\n+\n+```\n+---\n+title: \"Internet of Things demo\"\n+lang: en\n+layout: readme\n+source: StrongLoop-IoT-Demo\n+org: strongloop-community\n+keywords: LoopBack\n+tags: [community]\n+sidebar: community_sidebar\n+permalink: /doc/en/community/IoT-demo.html\n+summary: Example application that demonstrates using LoopBack for Internet of Things.\n+---\n+```\n+\n+### Add your repo to the list of community READMEs\n+\n+Of course, you could just copy/paste your README file into  `pages/en/community/readmes`, and name it `the-repo-name.md`.  But to ensure that the content stays up-to-date with\n+changes to the README file in your repo:\n+\n+1. Add your project repo to `_data/repos-community.json`; for example:\n+\n+```\n+  { \"org\": \"strongloop-community\", \"repoName\":  \"loopback-connector-elastic-search\"},\n+```\n+\n+Replace the `org` property with your organization name and the `repoName` property with\n+your repository name.\n+\n+The `get-readmes` script that updates the READMEs reads this JSON file.  \n+\n+### Test the script\n+\n+Now, follow these steps to run `get-readmes`:\n+\n+```\n+git clone https://github.com/strongloop/get-readmes.git\n+cd get-readmes\n+npm install\n+cd ..\n+./update-community-readmes.sh\n+```\n+\n+## Create a custom page\n+\n+If you don't want to reuse your README for any reason, follow these steps:\n+\n 1. Copy the `loopback.io/pages/en/community/Sample-project.md` file, save it into the same directory (`pages/en/community`), and name it based on your project name, for example `pages/en/community/My-awesome-project.md`.","path":"pages/en/community/How-to-add-a-project.md","position":79,"original_position":79,"commit_id":"99ea9ef9ae90746c03741180ede403803933f2db","original_commit_id":"99ea9ef9ae90746c03741180ede403803933f2db","user":{"login":"jannyHou","id":12554153,"avatar_url":"https://avatars.githubusercontent.com/u/12554153?v=3","gravatar_id":"","url":"https://api.github.com/users/jannyHou","html_url":"https://github.com/jannyHou","followers_url":"https://api.github.com/users/jannyHou/followers","following_url":"https://api.github.com/users/jannyHou/following{/other_user}","gists_url":"https://api.github.com/users/jannyHou/gists{/gist_id}","starred_url":"https://api.github.com/users/jannyHou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jannyHou/subscriptions","organizations_url":"https://api.github.com/users/jannyHou/orgs","repos_url":"https://api.github.com/users/jannyHou/repos","events_url":"https://api.github.com/users/jannyHou/events{/privacy}","received_events_url":"https://api.github.com/users/jannyHou/received_events","type":"User","site_admin":false},"body":"I think we can only keep the front matter part in `loopback.io/pages/en/community/Sample-project.md` and remove other contents starting from [Link](https://github.com/strongloop/loopback.io/blob/gh-pages/pages/en/community/Sample-project.md#link). At first I thought community projects would be something not using LB but good for LB developers to read and learn, so the sift.js sample I put there actually doesn't fit our purpose now.\r\n\r\nBtw, maybe add a short summary in the front matter, eg: \r\n```\r\nsummary: This is a sample project with front matter template.\r\n```","created_at":"2016-10-31T02:24:46Z","updated_at":"2016-10-31T02:28:59Z","html_url":"https://github.com/strongloop/loopback.io/pull/140#discussion_r85678383","pull_request_url":"https://api.github.com/repos/strongloop/loopback.io/pulls/140","_links":{"self":{"href":"https://api.github.com/repos/strongloop/loopback.io/pulls/comments/85678383"},"html":{"href":"https://github.com/strongloop/loopback.io/pull/140#discussion_r85678383"},"pull_request":{"href":"https://api.github.com/repos/strongloop/loopback.io/pulls/140"}}},"pull_request":{"url":"https://api.github.com/repos/strongloop/loopback.io/pulls/140","id":91468423,"html_url":"https://github.com/strongloop/loopback.io/pull/140","diff_url":"https://github.com/strongloop/loopback.io/pull/140.diff","patch_url":"https://github.com/strongloop/loopback.io/pull/140.patch","issue_url":"https://api.github.com/repos/strongloop/loopback.io/issues/140","number":140,"state":"open","locked":false,"title":"Add four community projects and update instructions","user":{"login":"crandmck","id":2925364,"avatar_url":"https://avatars.githubusercontent.com/u/2925364?v=3","gravatar_id":"","url":"https://api.github.com/users/crandmck","html_url":"https://github.com/crandmck","followers_url":"https://api.github.com/users/crandmck/followers","following_url":"https://api.github.com/users/crandmck/following{/other_user}","gists_url":"https://api.github.com/users/crandmck/gists{/gist_id}","starred_url":"https://api.github.com/users/crandmck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crandmck/subscriptions","organizations_url":"https://api.github.com/users/crandmck/orgs","repos_url":"https://api.github.com/users/crandmck/repos","events_url":"https://api.github.com/users/crandmck/events{/privacy}","received_events_url":"https://api.github.com/users/crandmck/received_events","type":"User","site_admin":false},"body":"@jannyHou This PR does the following:\n- Adds four community projects: Elasticsearch connector, LoopBack SDK Builder, JSON Schemas, and \n  IoT demo\n- I used the technique of simply pulling in the project READMEs, described in http://loopback.io/doc/en/contrib/Including-READMEs.html.\n- Updated the instructions so community members can do the same.  I left them the option of creating a custom project page or \"reusing\" their project README.\n\nIf you want to see how this will look when it's merged, follow the instructions in the README to run Jekyll locally.  \n","created_at":"2016-10-28T23:35:53Z","updated_at":"2016-10-31T02:28:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9a1c58dbe37d91ebe4ef0152beb37ea448edf24e","assignee":{"login":"jannyHou","id":12554153,"avatar_url":"https://avatars.githubusercontent.com/u/12554153?v=3","gravatar_id":"","url":"https://api.github.com/users/jannyHou","html_url":"https://github.com/jannyHou","followers_url":"https://api.github.com/users/jannyHou/followers","following_url":"https://api.github.com/users/jannyHou/following{/other_user}","gists_url":"https://api.github.com/users/jannyHou/gists{/gist_id}","starred_url":"https://api.github.com/users/jannyHou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jannyHou/subscriptions","organizations_url":"https://api.github.com/users/jannyHou/orgs","repos_url":"https://api.github.com/users/jannyHou/repos","events_url":"https://api.github.com/users/jannyHou/events{/privacy}","received_events_url":"https://api.github.com/users/jannyHou/received_events","type":"User","site_admin":false},"assignees":[{"login":"jannyHou","id":12554153,"avatar_url":"https://avatars.githubusercontent.com/u/12554153?v=3","gravatar_id":"","url":"https://api.github.com/users/jannyHou","html_url":"https://github.com/jannyHou","followers_url":"https://api.github.com/users/jannyHou/followers","following_url":"https://api.github.com/users/jannyHou/following{/other_user}","gists_url":"https://api.github.com/users/jannyHou/gists{/gist_id}","starred_url":"https://api.github.com/users/jannyHou/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jannyHou/subscriptions","organizations_url":"https://api.github.com/users/jannyHou/orgs","repos_url":"https://api.github.com/users/jannyHou/repos","events_url":"https://api.github.com/users/jannyHou/events{/privacy}","received_events_url":"https://api.github.com/users/jannyHou/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/strongloop/loopback.io/pulls/140/commits","review_comments_url":"https://api.github.com/repos/strongloop/loopback.io/pulls/140/comments","review_comment_url":"https://api.github.com/repos/strongloop/loopback.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/strongloop/loopback.io/issues/140/comments","statuses_url":"https://api.github.com/repos/strongloop/loopback.io/statuses/99ea9ef9ae90746c03741180ede403803933f2db","head":{"label":"strongloop:community-projects","ref":"community-projects","sha":"99ea9ef9ae90746c03741180ede403803933f2db","user":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"repo":{"id":16320387,"name":"loopback.io","full_name":"strongloop/loopback.io","owner":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/strongloop/loopback.io","description":"LoopBack project site - now with documentation!","fork":false,"url":"https://api.github.com/repos/strongloop/loopback.io","forks_url":"https://api.github.com/repos/strongloop/loopback.io/forks","keys_url":"https://api.github.com/repos/strongloop/loopback.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/strongloop/loopback.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/strongloop/loopback.io/teams","hooks_url":"https://api.github.com/repos/strongloop/loopback.io/hooks","issue_events_url":"https://api.github.com/repos/strongloop/loopback.io/issues/events{/number}","events_url":"https://api.github.com/repos/strongloop/loopback.io/events","assignees_url":"https://api.github.com/repos/strongloop/loopback.io/assignees{/user}","branches_url":"https://api.github.com/repos/strongloop/loopback.io/branches{/branch}","tags_url":"https://api.github.com/repos/strongloop/loopback.io/tags","blobs_url":"https://api.github.com/repos/strongloop/loopback.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/strongloop/loopback.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/strongloop/loopback.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/strongloop/loopback.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/strongloop/loopback.io/statuses/{sha}","languages_url":"https://api.github.com/repos/strongloop/loopback.io/languages","stargazers_url":"https://api.github.com/repos/strongloop/loopback.io/stargazers","contributors_url":"https://api.github.com/repos/strongloop/loopback.io/contributors","subscribers_url":"https://api.github.com/repos/strongloop/loopback.io/subscribers","subscription_url":"https://api.github.com/repos/strongloop/loopback.io/subscription","commits_url":"https://api.github.com/repos/strongloop/loopback.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/strongloop/loopback.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/strongloop/loopback.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/strongloop/loopback.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/strongloop/loopback.io/contents/{+path}","compare_url":"https://api.github.com/repos/strongloop/loopback.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/strongloop/loopback.io/merges","archive_url":"https://api.github.com/repos/strongloop/loopback.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/strongloop/loopback.io/downloads","issues_url":"https://api.github.com/repos/strongloop/loopback.io/issues{/number}","pulls_url":"https://api.github.com/repos/strongloop/loopback.io/pulls{/number}","milestones_url":"https://api.github.com/repos/strongloop/loopback.io/milestones{/number}","notifications_url":"https://api.github.com/repos/strongloop/loopback.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/strongloop/loopback.io/labels{/name}","releases_url":"https://api.github.com/repos/strongloop/loopback.io/releases{/id}","deployments_url":"https://api.github.com/repos/strongloop/loopback.io/deployments","created_at":"2014-01-28T18:00:00Z","updated_at":"2016-10-31T01:55:06Z","pushed_at":"2016-10-30T20:12:22Z","git_url":"git://github.com/strongloop/loopback.io.git","ssh_url":"git@github.com:strongloop/loopback.io.git","clone_url":"https://github.com/strongloop/loopback.io.git","svn_url":"https://github.com/strongloop/loopback.io","homepage":"http://loopback.io","size":19534,"stargazers_count":30,"watchers_count":30,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":45,"mirror_url":null,"open_issues_count":16,"forks":45,"open_issues":16,"watchers":30,"default_branch":"gh-pages"}},"base":{"label":"strongloop:gh-pages","ref":"gh-pages","sha":"a0a5023c4cbc56017bbd5147e061d9020c7858e2","user":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"repo":{"id":16320387,"name":"loopback.io","full_name":"strongloop/loopback.io","owner":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/strongloop/loopback.io","description":"LoopBack project site - now with documentation!","fork":false,"url":"https://api.github.com/repos/strongloop/loopback.io","forks_url":"https://api.github.com/repos/strongloop/loopback.io/forks","keys_url":"https://api.github.com/repos/strongloop/loopback.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/strongloop/loopback.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/strongloop/loopback.io/teams","hooks_url":"https://api.github.com/repos/strongloop/loopback.io/hooks","issue_events_url":"https://api.github.com/repos/strongloop/loopback.io/issues/events{/number}","events_url":"https://api.github.com/repos/strongloop/loopback.io/events","assignees_url":"https://api.github.com/repos/strongloop/loopback.io/assignees{/user}","branches_url":"https://api.github.com/repos/strongloop/loopback.io/branches{/branch}","tags_url":"https://api.github.com/repos/strongloop/loopback.io/tags","blobs_url":"https://api.github.com/repos/strongloop/loopback.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/strongloop/loopback.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/strongloop/loopback.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/strongloop/loopback.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/strongloop/loopback.io/statuses/{sha}","languages_url":"https://api.github.com/repos/strongloop/loopback.io/languages","stargazers_url":"https://api.github.com/repos/strongloop/loopback.io/stargazers","contributors_url":"https://api.github.com/repos/strongloop/loopback.io/contributors","subscribers_url":"https://api.github.com/repos/strongloop/loopback.io/subscribers","subscription_url":"https://api.github.com/repos/strongloop/loopback.io/subscription","commits_url":"https://api.github.com/repos/strongloop/loopback.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/strongloop/loopback.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/strongloop/loopback.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/strongloop/loopback.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/strongloop/loopback.io/contents/{+path}","compare_url":"https://api.github.com/repos/strongloop/loopback.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/strongloop/loopback.io/merges","archive_url":"https://api.github.com/repos/strongloop/loopback.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/strongloop/loopback.io/downloads","issues_url":"https://api.github.com/repos/strongloop/loopback.io/issues{/number}","pulls_url":"https://api.github.com/repos/strongloop/loopback.io/pulls{/number}","milestones_url":"https://api.github.com/repos/strongloop/loopback.io/milestones{/number}","notifications_url":"https://api.github.com/repos/strongloop/loopback.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/strongloop/loopback.io/labels{/name}","releases_url":"https://api.github.com/repos/strongloop/loopback.io/releases{/id}","deployments_url":"https://api.github.com/repos/strongloop/loopback.io/deployments","created_at":"2014-01-28T18:00:00Z","updated_at":"2016-10-31T01:55:06Z","pushed_at":"2016-10-30T20:12:22Z","git_url":"git://github.com/strongloop/loopback.io.git","ssh_url":"git@github.com:strongloop/loopback.io.git","clone_url":"https://github.com/strongloop/loopback.io.git","svn_url":"https://github.com/strongloop/loopback.io","homepage":"http://loopback.io","size":19534,"stargazers_count":30,"watchers_count":30,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":45,"mirror_url":null,"open_issues_count":16,"forks":45,"open_issues":16,"watchers":30,"default_branch":"gh-pages"}},"_links":{"self":{"href":"https://api.github.com/repos/strongloop/loopback.io/pulls/140"},"html":{"href":"https://github.com/strongloop/loopback.io/pull/140"},"issue":{"href":"https://api.github.com/repos/strongloop/loopback.io/issues/140"},"comments":{"href":"https://api.github.com/repos/strongloop/loopback.io/issues/140/comments"},"review_comments":{"href":"https://api.github.com/repos/strongloop/loopback.io/pulls/140/comments"},"review_comment":{"href":"https://api.github.com/repos/strongloop/loopback.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/strongloop/loopback.io/pulls/140/commits"},"statuses":{"href":"https://api.github.com/repos/strongloop/loopback.io/statuses/99ea9ef9ae90746c03741180ede403803933f2db"}}}}
{"actor":{"display_login":"jannyHou"}}