diff --git a/public/resources/index.ejs b/public/resources/index.ejs
deleted file mode 100644
index bb85fc7ddc..0000000000
--- a/public/resources/index.ejs
+++ /dev/null
@@ -1,19 +0,0 @@
-
Would you like to be listed in this page? Fill out this form.
-
-
-
-
-
{{category}}
-
-
-
-
{{ subsectionObj.title }}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/public/resources/index.jade b/public/resources/index.jade
index e69de29bb2..d728dc8327 100644
--- a/public/resources/index.jade
+++ b/public/resources/index.jade
@@ -0,0 +1,14 @@
+p.text-body
+ a(href='https://docs.google.com/a/rangle.io/forms/d/1qzWaDpTgTPe4iPDRF_VCT9aHXKimUocwlFnVJUdKabY/viewform?c=0&w=1') 想被列到这里吗?请填写这个表单!
+
+.js-resources-ctrl.resources(ng-controller='ResourcesCtrl as ctrl')
+ .section(ng-repeat='(category, categoryContent) in ctrl.fbObject')
+ div
+ h1.capitalize {{category}}
+ div(ng-repeat='section in categoryContent')
+ div(ng-repeat='(subsectionName, subsectionObj) in section')
+ div
+ h2 {{ subsectionObj.title }}
+ ul(ng-repeat='resource in subsectionObj.resources')
+ li(ng-if='resource.rev')
+ a(target='_blank', href='{{resource.url}}') {{ resource.title }}
diff --git a/public/resources/js/controllers/resources-controller.js b/public/resources/js/controllers/resources-controller.js
index b5addb5fe7..e836ae4831 100644
--- a/public/resources/js/controllers/resources-controller.js
+++ b/public/resources/js/controllers/resources-controller.js
@@ -8,6 +8,374 @@ angularIO.controller('ResourcesCtrl', ['$firebaseArray', '$firebaseObject', func
var categoryRef = new Firebase("https://angularresources.firebaseio.com/");
var vm = this;
- vm.fbObject = $firebaseObject(categoryRef);
+ vm.fbObject = {
+ "community": [{
+ "groups": {
+ "icon": "",
+ "resources": [{
+ "rev": true,
+ "title": "Angular Beers",
+ "url": "http://www.meetup.com/AngularJS-Beers/"
+ }, {"rev": true, "title": "Angular Camp", "url": "http://angularcamp.org/"}],
+ "title": "Groups"
+ },
+ "podcasts": {
+ "icon": "",
+ "resources": [{
+ "desc": "Weekly video podcast hosted by Jeff Whelpley with all the latest and greatest happenings in the wild world of Angular.",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "AngularAir",
+ "url": "https://angularair.com/"
+ }, {
+ "desc": "",
+ "id": 1,
+ "logo": "",
+ "rev": true,
+ "title": "Javascript Air",
+ "url": "https://javascriptair.com/"
+ }, {
+ "desc": "",
+ "id": 2,
+ "logo": "",
+ "rev": true,
+ "title": "Adventures in Angular",
+ "url": "https://devchat.tv/adventures-in-angular"
+ }],
+ "title": "Podcasts"
+ }
+ }],
+ "development": [{
+ "tooling": {
+ "icon": "",
+ "resources": [{
+ "desc": "A Google Chrome Dev Tools extension for debugging Angular 2 applications.",
+ "id": 0,
+ "logo": "https://augury.angular.io/images/augury-logo.svg",
+ "rev": true,
+ "title": "Augury",
+ "url": "http://augury.angular.io/"
+ }, {
+ "desc": "Server-side Rendering for Angular 2 apps.",
+ "id": 1,
+ "logo": "https://cloud.githubusercontent.com/assets/1016365/10639063/138338bc-7806-11e5-8057-d34c75f3cafc.png",
+ "rev": true,
+ "title": "Angular Universal",
+ "url": "https://github.com/angular/universal"
+ }, {
+ "desc": "Lightweight development only node server",
+ "id": 2,
+ "logo": "",
+ "rev": true,
+ "title": "Lite-server",
+ "url": "https://github.com/johnpapa/lite-server"
+ }, {
+ "desc": "A set of tslint rules for static code analysis of Angular 2 TypeScript projects.",
+ "id": 3,
+ "logo": "",
+ "rev": true,
+ "title": "Codelyzer",
+ "url": "https://github.com/mgechev/codelyzer"
+ }, {
+ "desc": "This package provides facilities for developers building Angular 2 applications on ASP.NET.",
+ "id": 4,
+ "logo": "",
+ "rev": true,
+ "title": "Universal for ASP.NET",
+ "url": "https://github.com/aspnet/nodeservices"
+ }],
+ "title": "Tooling"
+ }
+ }, {
+ "ide": {
+ "icon": "",
+ "resources": [{
+ "desc": "VS Code is a Free, Lightweight Tool for Editing and Debugging Web Apps. Platforms: Linux, Windows",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "Visual Studio Code",
+ "url": "http://code.visualstudio.com/"
+ }, {
+ "desc": "Lightweight yet powerful IDE, perfectly equipped for complex client-side development and server-side development with Node.js",
+ "id": 1,
+ "logo": "",
+ "rev": true,
+ "title": "Webstorm",
+ "url": "https://www.jetbrains.com/webstorm/"
+ }, {
+ "desc": "Capable and Ergonomic Java * IDE",
+ "id": 2,
+ "logo": "",
+ "rev": true,
+ "title": "IntelliJ IDEA",
+ "url": "https://www.jetbrains.com/idea/"
+ }],
+ "title": "IDEs"
+ }
+ }, {
+ "data": {
+ "icon": "",
+ "resources": [{
+ "desc": "The official library for Firebase and Angular 2",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "Angular Fire",
+ "url": "https://github.com/angular/angularfire2"
+ }, {
+ "desc": "Use Angular 2 and Meteor to build full-stack JavaScript apps for Mobile and Desktop.",
+ "id": 1,
+ "logo": "http://www.angular-meteor.com/images/logo.png",
+ "rev": true,
+ "title": "Meteor",
+ "url": "http://www.angular-meteor.com/angular2"
+ }, {
+ "desc": "Apollo is a data stack for modern apps, built with GraphQL.",
+ "id": 2,
+ "logo": "http://docs.apollostack.com/logo/large.png",
+ "rev": true,
+ "title": "Apollo",
+ "url": "http://docs.apollostack.com/apollo-client/angular2.html"
+ }],
+ "title": "Data Libraries"
+ }
+ }, {
+ "ui": {
+ "icon": "",
+ "resources": [{
+ "desc": "Material Design components for Angular 2",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "Angular Material 2",
+ "url": "https://github.com/angular/material2"
+ }, {
+ "desc": "PrimeNG is a collection of rich UI components for Angular 2",
+ "id": 1,
+ "logo": "http://www.primefaces.org/primeng/showcase/resources/images/primeng.svg",
+ "rev": true,
+ "title": "Prime Faces",
+ "url": "http://www.primefaces.org/primeng/"
+ }, {
+ "desc": "",
+ "id": 2,
+ "logo": "",
+ "rev": true,
+ "title": "Kendo UI",
+ "url": "http://www.telerik.com/blogs/what-to-expect-in-2016-for-kendo-ui-with-angular-2-and-more"
+ }, {
+ "desc": "Native Angular 2 components & directives for Lightning Design System",
+ "id": 3,
+ "logo": "http://ng-lightning.github.io/ng-lightning/img/shield.svg",
+ "rev": true,
+ "title": "ng-lightning",
+ "url": "http://ng-lightning.github.io/ng-lightning/"
+ }, {
+ "desc": "Wijmo 5, a collection of true JavaScript controls that doesn't make compromises to support legacy browsers.",
+ "id": 4,
+ "logo": "http://wijmocdn.azureedge.net/wijmositeblob/wijmo-theme/logos/wijmo-55.png",
+ "rev": true,
+ "title": "Wijmo",
+ "url": "http://wijmo.com/products/wijmo-5/"
+ }, {
+ "desc": "Material design inspired UI components for building great web apps. For mobile and desktop.",
+ "id": 5,
+ "logo": "",
+ "rev": true,
+ "title": "Vaadin",
+ "url": "https://vaadin.com/elements"
+ }, {
+ "desc": "Native Angular2 directives for Bootstrap",
+ "id": 6,
+ "logo": "",
+ "rev": true,
+ "title": "ng2-bootstrap",
+ "url": "http://valor-software.com/ng2-bootstrap/"
+ }],
+ "title": "UI Components"
+ }
+ }, {
+ "platform": {
+ "icon": "",
+ "resources": [{
+ "desc": "Integrating NativeScript with Angular 2.",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "NativeScript",
+ "url": "https://github.com/NativeScript/nativescript-angular"
+ }, {
+ "desc": "Angular 2 and React Native to build applications for Android and iOS",
+ "id": 1,
+ "logo": "",
+ "rev": true,
+ "title": "ReactNative",
+ "url": "http://angular.github.io/react-native-renderer/"
+ }, {
+ "desc": "Ionic offers a library of mobile-optimized HTML, CSS and JS components and tools for building highly interactive native and progressive web apps.",
+ "id": 2,
+ "logo": "http://ionicframework.com/img/ionic-logo-white.svg",
+ "rev": true,
+ "title": "Ionic",
+ "url": "http://ionicframework.com/docs/v2/"
+ }, {
+ "desc": "Electron Platform for Angular 2.",
+ "id": 3,
+ "logo": "",
+ "rev": true,
+ "title": "Electron",
+ "url": "http://github.com/angular/angular-electron"
+ }, {
+ "desc": "An Universal Windows App (uwp) powered by Angular 2",
+ "id": 4,
+ "logo": "",
+ "rev": true,
+ "title": "Windows (UWP)",
+ "url": "http://github.com/preboot/angular2-universal-windows-app"
+ }],
+ "title": "Cross-Platform Development"
+ }
+ }],
+ "education": [{
+ "online": {
+ "icon": "",
+ "resources": [{
+ "desc": "",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "Rangle.io",
+ "url": "https://rangle.io/services/javascript-training/training-angular1-angular2-with-ngupgrade/"
+ }, {
+ "desc": "",
+ "id": 1,
+ "logo": "",
+ "rev": true,
+ "title": "Pluralsight",
+ "url": "https://www.pluralsight.com/search?q=angular+2&categories=all"
+ }, {
+ "desc": "",
+ "id": 3,
+ "logo": "",
+ "rev": true,
+ "title": "Udemy",
+ "url": "https://www.udemy.com/courses/search/?ref=home&src=ukw&q=angular+2&lang=en"
+ }, {
+ "desc": "",
+ "id": 4,
+ "logo": "",
+ "rev": true,
+ "title": "Egghead.io",
+ "url": "https://egghead.io/technologies/angular2"
+ }, {
+ "desc": "",
+ "id": 5,
+ "logo": "",
+ "rev": true,
+ "title": "Frontend Masters",
+ "url": "https://frontendmasters.com/courses/angular-2/"
+ }],
+ "title": "Online Training"
+ }
+ }, {
+ "workshops": {
+ "icon": "",
+ "resources": [{
+ "desc": "",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "Rangle.io",
+ "url": "http://rangle.io/services/javascript-training/angular2-training/"
+ }, {
+ "desc": "",
+ "id": 1,
+ "logo": "",
+ "rev": true,
+ "title": "Angular Boot Camp",
+ "url": "https://angularbootcamp.com"
+ }, {
+ "desc": "",
+ "id": 2,
+ "logo": "",
+ "rev": true,
+ "title": "Thoughtram",
+ "url": "http://thoughtram.io/"
+ }, {
+ "desc": "",
+ "id": 3,
+ "logo": "",
+ "rev": true,
+ "title": "Frontend Masters",
+ "url": "https://frontendmasters.com/workshops/angular-2/"
+ }],
+ "title": "Workshops & Onsite Training"
+ }
+ }, {
+ "books": {
+ "icon": "",
+ "resources": [{
+ "desc": "",
+ "id": 0,
+ "logo": "",
+ "rev": true,
+ "title": "Packt Publishing",
+ "url": "https://www.packtpub.com/all/?search=angular%202#"
+ }, {
+ "desc": "",
+ "id": 1,
+ "logo": "",
+ "rev": true,
+ "title": "Manning Publications",
+ "url": "https://www.manning.com/search?q=angular"
+ }, {
+ "desc": "",
+ "id": 2,
+ "logo": "",
+ "rev": true,
+ "title": "O'Reilly Media",
+ "url": "https://ssearch.oreilly.com/?q=angular+2&x=0&y=0"
+ }, {
+ "desc": "",
+ "id": 3,
+ "logo": "",
+ "rev": true,
+ "title": "Rangle.io ngCourse 2",
+ "url": "http://ngcourse.rangle.io/"
+ }, {
+ "desc": "",
+ "id": 4,
+ "logo": "",
+ "rev": true,
+ "title": "ng-book 2",
+ "url": "https://www.ng-book.com/2/"
+ }, {
+ "desc": "",
+ "id": 5,
+ "logo": "",
+ "rev": true,
+ "title": "Angular 2 Book",
+ "url": "https://leanpub.com/angular2-book"
+ }, {
+ "desc": "",
+ "id": 6,
+ "logo": "",
+ "rev": true,
+ "title": "Becoming a Ninja with Angular 2",
+ "url": "https://books.ninja-squad.com/angular2"
+ }, {
+ "desc": "",
+ "id": 7,
+ "logo": "",
+ "rev": true,
+ "title": "Practical Angular 2",
+ "url": "https://leanpub.com/practical-angular-2"
+ }],
+ "title": "Books"
+ }
+ }]
+ };
-}]);
\ No newline at end of file
+}]);