master 1b6589257d55 cached
106 files
1.3 MB
338.1k tokens
4 symbols
1 requests
Download .txt
Showing preview only (1,378K chars total). Download the full file or copy to clipboard to get everything.
Repository: jstherightway/js-the-right-way
Branch: master
Commit: 1b6589257d55
Files: 106
Total size: 1.3 MB

Directory structure:
gitextract_ga3r34v9/

├── .gitignore
├── Gruntfile.js
├── LICENSE
├── README.md
├── i18n/
│   ├── README.md
│   ├── ar-ar/
│   │   ├── ar-ar.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── de-de/
│   │   ├── de-de.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── en-us/
│   │   ├── en-us.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── es-es/
│   │   ├── es-es.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── fa-ir/
│   │   ├── fa-ir.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── ko-kr/
│   │   ├── README.md
│   │   ├── ko-kr.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── pt-br/
│   │   ├── partials/
│   │   │   ├── code-style.html
│   │   │   ├── getting-started.html
│   │   │   ├── good-parts.html
│   │   │   ├── licence.html
│   │   │   ├── patterns.html
│   │   │   ├── testing-tools.html
│   │   │   └── welcome.html
│   │   └── pt-br.json
│   ├── ru-ru/
│   │   ├── partials/
│   │   │   ├── code-style.html
│   │   │   ├── getting-started.html
│   │   │   ├── good-parts.html
│   │   │   ├── licence.html
│   │   │   ├── patterns.html
│   │   │   ├── testing-tools.html
│   │   │   └── welcome.html
│   │   └── ru-ru.json
│   ├── zh-cn/
│   │   ├── partials/
│   │   │   ├── code-style.html
│   │   │   ├── getting-started.html
│   │   │   ├── good-parts.html
│   │   │   ├── licence.html
│   │   │   ├── patterns.html
│   │   │   ├── testing-tools.html
│   │   │   └── welcome.html
│   │   └── zh-cn.json
│   └── zh-tw/
│       ├── partials/
│       │   ├── code-style.html
│       │   ├── getting-started.html
│       │   ├── good-parts.html
│       │   ├── licence.html
│       │   ├── patterns.html
│       │   ├── testing-tools.html
│       │   └── welcome.html
│       └── zh-tw.json
├── manifest.json
├── package.json
├── public/
│   ├── assets/
│   │   ├── css/
│   │   │   ├── core.css
│   │   │   └── normalize.css
│   │   └── js/
│   │       ├── core.js
│   │       └── vendor/
│   │           ├── jquery.lazyload.js
│   │           └── jquery.scrollstop.js
│   ├── de-de/
│   │   └── index.html
│   ├── en-us/
│   │   └── index.html
│   ├── es-es/
│   │   └── index.html
│   ├── fa-ir/
│   │   └── index.html
│   ├── index.html
│   ├── ko-kr/
│   │   └── index.html
│   ├── pt-br/
│   │   └── index.html
│   ├── ru-ru/
│   │   └── index.html
│   ├── zh-cn/
│   │   └── index.html
│   └── zh-tw/
│       └── index.html
├── scripts/
│   └── tasks/
│       └── i18n.js
└── templates/
    ├── index.html
    └── old_index.html

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
_site/
*.DS_Store
node_modules
npm-debug.log
dist/
.tmp/


================================================
FILE: Gruntfile.js
================================================
module.exports = function(grunt){

    // Loading i18n task
    require('./scripts/tasks/i18n')(grunt);
    // -- Init Configuration ---------------------------------------
    grunt.initConfig({

        application:{
          dev: {
            csspath:"/assets/css/",
            jspath:"/assets/js/",
            imgpath:"/assets/img/",

          },
          dist:{
            csspath:"/assets/css/",
            jspath:"/assets/js/",
            imgpath:"/assets/img/",
          }
        },
        uglify:{
            options: {
                compress: false,
                report: true,
                banner: '/* Minified on <%= grunt.template.date() %>*/\n'
            },
            dev: {
                files: {
                    '.tmp/public/assets/js/core.min.js': [
                        'public/assets/js/vendor/jquery.scrollstop.js',
                        'public/assets/js/vendor/jquery.lazyload.js',
                        'public/assets/js/core.js'
                    ]
                }
            },
            dist: {
                files: {
                    'dist/public/assets/js/core.min.js': [
                        'public/assets/js/vendor/jquery.scrollstop.js',
                        'public/assets/js/vendor/jquery.lazyload.js',
                        'public/assets/js/core.js'
                    ]
                }
            }
        },
        cssmin: {
            options: {
                banner: '/* Minified on <%= grunt.template.date() %>*/\n'
            },
            dev: {
                files: {
                    '.tmp/public/assets/css/core.min.css': [
                        'public/assets/css/normalize.css',
                        'public/assets/css/core.css'
                    ]
                }
            },
            dist: {
                files: {
                    'dist/public/assets/css/core.min.css': [
                        'public/assets/css/normalize.css',
                        'public/assets/css/core.css'
                    ]
                }
            }
        },
        copy: {
          dist: {
            files: [
              // includes files within path and its sub-directories
              {expand: true, src: ['public/**', '!**/*[.css|.js]'], dest: 'dist/'}
            ],
          },
          dev: {
            files: [
              // includes files within path and its sub-directories
              {expand: true, src: ['public/**', '!**/*[.css|.js]'], dest: '.tmp/'}
            ],
          },
        },
        clean: {
          dev: [".tmp/"],
          dist: ["dist/"]
        },
        connect: {
          dev: {
            options: {
              port: 9001,
              base: ['.tmp/public']
            }
          },
          dist: {
            options: {
              port: 9002,
              base: ['dist/public/'],
              keepalive:true
            }
          }
        },
        watch: {
          assets: {
            files: ['public/assets/css/*.css', 'public/assets/js/*.js', 'templates/**/*.html', 'i18n/**/*.json', 'i18n/**/*.html'],
            tasks:['build'],
            options: {
              livereload: true
            }
          }
        },
        imagemin: {                          // Task
          dynamic: {                         // Another target
            files: [{
              expand: true,                  // Enable dynamic expansion
              cwd: 'public/assets/img',                   // Src matches are relative to this path
              src: ['**/*.{png,jpg,gif}'],   // Actual patterns to match
              dest: 'dist/public/assets/img'                  // Destination path prefix
            }]
          }
        }

    });

    // -- Load Plugins ----------------------------------------------
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-connect');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-contrib-imagemin');
    grunt.loadNpmTasks('grunt-contrib-clean');

    // -- Register Task ---------------------------------------------
    grunt.registerTask('server', ['clean:dev' ,'i18n', 'copy:dev','cssmin:dev', 'uglify:dev','connect:dev', 'watch']);
    grunt.registerTask('dist', ['clean:dist', 'i18n', 'copy:dist', 'cssmin:dist', 'uglify:dist', 'imagemin']);
    grunt.registerTask('build', ['clean:dev', 'i18n', 'copy:dev', 'cssmin:dev', 'uglify:dev']);
    grunt.registerTask('serverdist', ['connect:dist']);

};


================================================
FILE: LICENSE
================================================
Copyright (c) 2014 William Oliveira

http://creativecommons.org/licenses/by-nc-sa/3.0/


================================================
FILE: README.md
================================================
![](http://i.imgur.com/jaEbd80.png)

Feel free to contribute!

## Where?

<http://www.jstherightway.org>

## Why?

Today we have a bunch of websites running JavaScript. I think we need a place to put all the best practices and references together so we can share this (good) information and help keep the web more organized.

## Who?

[William Oliveira](http://github.com/gnuwilliam) - Open Source Developer

[Allan Esquina](http://github.com/allanesquina) - Open Source Developer

## License

[Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-nc-sa/3.0/)

## Sponsor

[![GoBacklog](https://i.imgur.com/7lJBAXA.png)](https://gobacklog.com)


================================================
FILE: i18n/README.md
================================================
# Do you want this project in your language?

### Feel free to contribute! :+1:


To translate this project to another language, you need to copy the ***default language directory*** and then translate it.
- en-us/ - Default language.

The **.json file is the main file of translation's structure**, be sure that this file have the **same name of your parent directory**.

The application will export the files in **'Public/language'** name-based on json filename.


================================================
FILE: i18n/ar-ar/ar-ar.json
================================================
{
    "meta": {
        "title": "جافاسكريبت: الطريقة الصحيحة",
        "description": "A quick reference to best practices for writing JavaScript -- links to code patterns and tutorials from around the web"
    },
    "direction": "rtl",
    "welcome": "{{@link=partials/welcome.html}}",
    "menu": {
        "title": "اختر طريقك",
        "links": [{
            "title": "لنبدأ",
            "url": "#getting-started"
        }, {
            "title": "طريقة كتابة شفرة جافاسكريب",
            "url": "#js-code-style"
        }, {
            "title": "الجوانب الجيدة",
            "url": "#the-good-parts"
        }, {
            "title": "ما يجب رؤيته",
            "url": "#must-see"
        }, {
            "title": "أنماط",
            "url": "#patterns"
        }, {
            "title": "أدوات الاختبار",
            "url": "#testing-tools"
        }, {
            "title": "أطر العمل",
            "url": "#frameworks"
        }, {
            "title": "محركات الألعاب",
            "url": "#game-engines"
        }, {
            "title": "أخبار",
            "url": "#news"
        }, {
            "title": "قراءة",
            "url": "#reading"
        }, {
            "title": "المدونات الصوتية (برودكاست)",
            "url": "#podcasts"
        }, {
            "title": "دروس فيديو",
            "url": "#screencasts"
        }, {
            "title": "من تتابع",
            "url": "#whotofollow"
        }, {
            "title": "مزودو «منصة حَوسَبة لخدمات البَرمَجة»",
            "url": "#paas"
        }, {
            "title": "مساعدون",
            "url": "#helpers"
        }]
    },
    "gettingStarted": {
        "title": "لنبدأ",
        "text": "{{@link=partials/getting-started.html}}"
    },
    "codeStyle": {
        "title": "طريقة كتابة شفرة جافاسكريب",
        "text": "{{@link=partials/code-style.html}}"
    },
    "goodParts": {
        "title": "الجوانب الجيدة",
        "text": "{{@link=partials/good-parts.html}}"
    },
    "mustSee": {
        "title": "ما يجب رؤيته",
        "videos": [{
            "title": "Arindam Paul - JavaScript VM internals, EventLoop, Async and ScopeChains",
            "url": "https://www.youtube.com/embed/QyUFheng6J0"
        }]
    },
    "patterns": {
        "title": "أنماط",
        "text": "{{@link=partials/patterns.html}}"
    },
    "testingTools": {
        "title": "أدوات الاختبار",
        "text": "{{@link=partials/testing-tools.html}}",
        "links": [{
            "name": "Mocha",
            "url": "http://mochajs.org",
            "description": "Maintained by <a target=\"_blank\" href=\"https://github.com/visionmedia\">TJ Holowaychuk</a>"
        }, {
            "name": "QUnit",
            "url": "http://qunitjs.com",
            "description": "Maintained by <a target=\"_blank\" href=\"https://github.com/jquery\">jQuery</a>"
        }, {
            "name": "Jasmine",
            "url": "https://github.com/pivotal/jasmine",
            "description": "Maintained by <a target=\"_blank\" href=\"https://github.com/pivotal/jasmine\">Pivotal Labs</a>"
        }, {
            "name": "Karma",
            "url": "http://karma-runner.github.io/",
            "description": "Maintained by the team behind AngularJS. Mostly by <a target=\"_blank\" href=\"https://github.com/vojtajina\">Vojta Jina</a>"
        }, {
            "name": "Intern",
            "url": "http://theintern.io",
            "description": "Maintained by <a target=\"_blank\" href=\"http://www.sitepen.com\">Sitepen</a>"
        }, {
            "name": "Istanbul",
            "url": "http://gotwarlost.github.io/istanbul",
            "description": "A JavaScript code coverage tool written in JavaScript, maintained by <a target=\"_blank\" href=\"https://github.com/gotwarlost\">Krishnan Anantheswaran</a>"
        }, {
            "name": "Sinon.JS",
            "url": "http://sinonjs.org",
            "description": "Standalone test spies, stubs and mocks for JavaScript. No dependencies, works with any unit testing framework. Created by <a target=\"_blank\" href=\"https://github.com/cjohansen/Sinon.JS\">Sinon.JS community</a>"
        }, {
            "name": "DexterJS",
            "url": "https://github.com/leobalter/DexterJS",
            "description": "A test helper to mock functions and the XHR object, maintained by <a target=\"_blank\" href=\"http://leobalter.github.io\">Leo Balter</a>"
        }, {
            "name": "AVA",
            "url": "https://github.com/sindresorhus/ava",
            "description": "Test runner with asynchronous tests, maintained by <a target=\"_blank\" href=\"https://twitter.com/sindresorhus\">Sindre Sorhus</a>"
        }, {
            "name": "Jest",
            "url": "https://github.com/facebook/jest",
            "description": "Painless JavaScript Testing, maintained by <a target=\"_blank\" href=\"https://github.com/facebook\">Facebook</a>"
        }]
    },
    "frameworks": {
        "title": "أطر العمل",
        "cat": [{
            "title": "فائدة عامة",
            "links": [{
                "name": "jQuery",
                "url": "http://jquery.com",
                "description": "jQuery is a fast, small, and feature-rich JavaScript library. Built by <a target=\"_blank\" href=\"https://twitter.com/jeresig\">John Resig</a>."
            }, {
                "name": "YUI",
                "url": "http://yuilibrary.com",
                "description": "Built by Yahoo!, YUI is a free, open source JavaScript and CSS library for building richly interactive web applications. <a target=\"_blank\" href=\"http://yahooeng.tumblr.com\">New development has stopped since August 29th, 2014</a>."
            }, {
                "name": "ZeptoJS",
                "url": "http://zeptojs.com",
                "description": "Zepto is a minimalist JavaScript library for modern browsers with a largely jQuery-compatible API. If you use jQuery, you already know how to use Zepto."
            }, {
                "name": "Dojo Toolkit",
                "url": "http://dojotoolkit.org",
                "description": "Dojo is a free, open-source JavaScript toolkit for building high performance web applications. Project sponsors include IBM and SitePen."
            }, {
                "name": "Underscore.js",
                "url": "http://underscorejs.org",
                "description": "Underscore.js is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects."
            }]
        }, {
            "title": "MV*",
            "links": [{
                "name": "Backbone.js",
                "url": "http://backbonejs.org",
                "description": "Very popular JavaScript client-side framework, built by <a target=\"_blank\" href='http://twitter.com/jashkenas'>@jashkenas</a>."
            }, {
                "name": "Ember.js",
                "url": "http://emberjs.com",
                "description": "Built by <a target=\"_blank\" href='http://twitter.com/wycats'>@wycats</a>, jQuery and Ruby on Rails core developer."
            }, {
                "name": "Knockout.js",
                "url": "http://knockoutjs.com",
                "description": "Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM)."
            }, {
                "name": "Angular.js",
                "url": "http://angularjs.org",
                "description": "Built by Google, Angular.js is like a polyfill for the future of HTML."
            }, {
                "name": "Angular",
                "url": "https://angular.io",
                "description": "One framework.Mobile &amp; desktop. One way to build applications with Angular and reuse your code and abilities to build apps for any deployment target. For web, mobile web, native mobile and native desktop."
            }, {
                "name": "Cappuccino",
                "url": "http://www.cappuccino-project.org",
                "description": "Cappuccino is an open-source framework that makes it easy to build desktop-caliber applications that run in a web browser."
            }, {
                "name": "JavaScript MVC",
                "url": "http://javascriptmvc.com/",
                "description": "JavaScriptMVC is an open-source framework containing the best ideas in jQuery development."
            }, {
                "name": "Meteor",
                "url": "https://www.meteor.com",
                "description": "Meteor is an open-source platform for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started."
            }, {
                "name": "Spice.js",
                "url": "http://spicejs.github.io/spicejs/",
                "description": "Spice is a super minimal (&lt; 3k) and flexible MVC framework for javascript. Spice was built to be easily added to any existent application and play well with other technologies such as jQuery, pjax, turbolinks, node or whatever else you are using."
            }, {
                "name": "Riot.js",
                "url": "http://www.riotjs.com/",
                "description": "Riot is an incredibly fast, powerful yet tiny client side (MV*) library for building large scale web applications. Despite the small size all the building blocks are there: a template engine, router, event library and a strict MVP pattern to keep things organized."
            }, {
                "name": "CanJS",
                "url": "http://canjs.com",
                "description": "CanJS is a JavaScript framework that makes developing complex applications simple and fast. Easy-to-learn, small, and unassuming of your application structure, but with modern features like custom tags and 2-way binding."
            }]
        }, {
            "title": "مكتبة",
            "links": [{
                "name": "React",
                "url": "http://facebook.github.io/react",
                "description": "Built by Facebook. React is a JavaScript library for creating user interfaces by Facebook and Instagram. Many people choose to think of React as the V in MVC."
            }, {
                "name": "Vue.js",
                "url": "http://www.vuejs.org",
                "description": "Is an MVVM library providing two-way data binding, HTML extended behaviour (through directives) and reactive components. By using native add-ons a developer can also have routing, AJAX, a Flux-like state management, form validation and more. Provides a helpful Chrome extension to inspect components built with Vue."
            }, {
                "name": "Handlebars",
                "url": "http://handlebarsjs.com",
                "description": "Handlebars provides the power necessary to let you build semantic templates effectively with no frustration."
            }, {
                "name": "Dust.js",
                "url": "http://linkedin.github.io/dustjs",
                "description": "Asynchronous templates for the browser and node.js."
            }]
        }, {
            "title": "حيوية",
            "links": [{
                "name": "GSAP",
                "url": "http://greensock.com/",
                "description": "GSAP is the fastest full-featured scripted animation tool on the planet. It's even faster than CSS3 animations and transitions in many cases."
            }, {
                "name": "Velocity.js",
                "url": "http://julian.com/research/velocity/",
                "description": "Velocity is an animation engine with the same API as jQuery's $.animate()."
            }, {
                "name": "Bounce.js",
                "url": "http://bouncejs.com/",
                "description": "Bounce.js is a tool and JS library that lets you create beautiful CSS3 powered animations."
            }, {
                "name": "TweenJS",
                "url": "http://www.createjs.com/tweenjs",
                "description": "A simple but powerful JavaScript library for tweening and animating HTML5 and JavaScript properties."
            }, {
                "name": "Move.js",
                "url": "http://visionmedia.github.io/move.js/",
                "description": "Move.js is a small JavaScript library making CSS3 backed animation extremely simple and elegant."
            }, {
                "name": "Snap.svg",
                "url": "http://snapsvg.io/",
                "description": "SVG is an excellent way to create interactive, resolution-independent vector graphics that will look great on any size screen."
            }, {
                "name": "Rekapi",
                "url": "http://rekapi.com/",
                "description": "Rekapi is a library for making canvas and DOM animations with JavaScript, as well as CSS @keyframe animations for modern browsers."
            }, {
                "name": "Favico.js",
                "url": "http://lab.ejci.net/favico.js/",
                "description": "Make use of your favicon with badges, images or videos."
            }, {
                "name": "Textillate.js",
                "url": "http://jschr.github.io/textillate/",
                "description": "Textillate.js combines some awesome libraries to provide a ease-to-use plugin for applying CSS3 animations to any text."
            }, {
                "name": "Motio",
                "url": "http://darsa.in/motio/",
                "description": "Motio is a small JavaScript library for simple but powerful sprite based animations and panning."
            }
            ]
        }]
    },
    "gameEngines": {
        "title": "محركات الألعاب",
        "links": [{
            "name": "MelonJS",
            "url": "http://melonJS.org",
            "description": "MelonJS is a free, light-weight HTML5 game engine. The engine integrates the tiled map format making level design easier."
        }, {
            "name": "ImpactJS",
            "url": "http://impactjs.com",
            "description": "ImpactJS is one of the more tested-and-true HTML5 game engines with the initial release all the way back at the end of 2010. It is very well maintained and updated, and has a good-sized community backing it. There exists plenty of documentation - even two books on the subject of creating games with the engine."
        }, {
            "name": "LimeJS",
            "url": "http://limejs.com",
            "description": "LimeJS is a HTML5 game framework for building fast, native-experience games for all modern touchscreens and desktop browsers."
        }, {
            "name": "Crafty",
            "url": "http://craftyjs.com",
            "description": "Crafty is a game engine that dates back to late 2010. Crafty makes it really easy to get started making JavaScript games."
        }, {
            "name": "Cocos2d-HTML5",
            "url": "http://www.cocos2d-x.org/wiki/Cocos2d-html5",
            "description": "Cocos2d-html5 is an open-source web 2D game framework, released under MIT License. It is a HTML5 version of Cocos2d-x project. The focus for Cocos2d-html5 development is around making Cocos2d cross platforms between browsers and native application."
        }, {
            "name": "Phaser",
            "url": "http://phaser.io",
            "description": "Phaser is based heavily on <a target=\"_blank\" href=\"http://www.flixel.org\">Flixel</a>. It is maintained by Richard Davey (<a target=\"_blank\" href=\"http://www.photonstorm.com/\">Photon Storm</a>) who has been very active in the HTML5 community for years."
        }, {
            "name": "Goo",
            "url": "http://www.goocreate.com/learn",
            "description": "Goo is a 3D JavaScript gaming engine entirely built on WebGL/HTML5"
        }, {
            "name": "LycheeJS",
            "url": "http://lycheejs.org",
            "description": "LycheeJS is a JavaScript Game library that offers a complete solution for prototyping and deployment of HTML5 Canvas, WebGL or native OpenGL(ES) based games inside the Web Browser or native environments."
        }, {
            "name": "Quintus",
            "url": "http://html5quintus.com",
            "description": "Quintus is an HTML5 game engine designed to be modular and lightweight, with a concise JavaScript-friendly syntax."
        }, {
            "name": "KiwiJS",
            "url": "http://www.kiwijs.org",
            "description": "Kiwi.js is a fun and friendly Open Source HTML5 Game Engine. Some people call it the WordPress of HTML5 game engines"
        }, {
            "name": "PandaJS",
            "url": "http://www.pandajs.net",
            "description": "Panda.js is a HTML5 game engine for mobile and desktop with Canvas and WebGL rendering."
        }, {
            "name": "Rot.js",
            "url": "https://github.com/ondras/rot.js",
            "description": "Rot.js is a set of JavaScript libraries, designed to help with a roguelike development in browser environment."
        }, {
            "name": "Isogenic",
            "url": "http://www.isogenicengine.com/",
            "description": "Isogenic is an advanced game engine that provides the most advanced networking and realtime multiplayer functionality available in any HTML 5 game engine. The system is based on entity streaming and includes powerful simulation options and client-side entity interpolation from delta updates. "
        }, {
            "name": "WhitestormJS",
            "url": "https://github.com/WhitestormJS/whitestorm.js",
            "description": "Super-fast 3D framework for Web Applications & Games. Based on Three.js. Includes integrated physics support and ReactJS integration."
        }]
    },
    "news": {
        "title": "أخبار",
        "cat": [{
            "title": "مواقع",
            "links": [{
                "name": "JavaScript.com",
                "url": "http://javascript.com",
                "description": ""
            }, {
                "name": "Echo JS",
                "url": "http://www.echojs.com",
                "description": ""
            }, {
                "name": "The Treehouse Show",
                "url": "http://teamtreehouse.com/library/the-treehouse-show",
                "description": ""
            }, {
                "name": "/r/javascript on Reddit",
                "url": "http://www.reddit.com/r/javascript",
                "description": ""
            }, {
                "name": "Open Web Platform Daily Digest",
                "url": "http://webplatformdaily.org",
                "description": ""
            }, {
                "name": "Badass JavaScript",
                "url": "http://badassjs.com",
                "description": ""
            }, {
                "name": "AngularJS Daily",
                "url": "http://paper.li/gwinnem/1390553142",
                "description": ""
            }]
        }, {
            "title": "قائمة بريدية",
            "links": [{
                "name": "JavaScript Weekly",
                "url": "http://javascriptweekly.com",
                "description": ""
            }, {
                "name": "A Drip of JavaScript",
                "url": "http://designpepper.com/a-drip-of-javascript",
                "description": ""
            }, {
                "name": "Ember Weekly",
                "url": "http://emberweekly.com",
                "description": ""
            }, {
                "name": "Node Weekly",
                "url": "http://nodeweekly.com",
                "description": ""
            }, {
                "name": "Meteor Weekly",
                "url": "http://meteorhacks.com/meteor-weekly",
                "description": ""
            }, {
                "name": "Grunt Weekly",
                "url": "https://twitter.com/gruntweekly",
                "description": ""
            }, {
                "name": "Gamedev.js Weekly",
                "url": "http://weekly.gamedevjs.com",
                "description": ""
            }, {
                "name": "HTML5 Weekly",
                "url": "http://html5weekly.com",
                "description": ""
            }, {
                "name": "UDGWebDev Weekly",
                "url": "http://udgwebdev.com/newsletter",
                "description": ""
            }, {
                "name": "The React Newsletter",
                "url": "http://theproblemsolver.nl/TheReactNewsletter/Subscribe",
                "description": ""
            }]
        }]
    },
    "reading": {
        "title": "قراءة",
        "cat": [{
            "title": "مقالات",
            "credit": true,
            "box": false,
            "links": [{
                "name": "Understanding JavaScript OOP",
                "url": "http://robotlolita.github.io/2011/10/09/understanding-javascript-oop.html",
                "description": "by <a target=\"_blank\" href=\"https://github.com/robotlolita\">Quildreen Motta</a>"
            }, {
                "name": "Understanding “Prototypes” in JavaScript",
                "url": "http://yehudakatz.com/2011/08/12/understanding-prototypes-in-JavaScript",
                "description": "by <a target=\"_blank\" href=\"https://github.com/wycats\">Yehuda Katz</a>"
            }, {
                "name": "Prototypes and Inheritance in JavaScript",
                "url": "http://msdn.microsoft.com/en-us/magazine/ff852808.aspx",
                "description": "by <a target=\"_blank\" href=\"http://odetocode.com/blogs/scott\">Scott Allen</a>"
            }, {
                "name": "Partial Application in JavaScript",
                "url": "http://benalman.com/news/2012/09/partial-application-in-javascript",
                "description": "by <a target=\"_blank\" href=\"http://github.com/cowboy\">Ben Alman</a>"
            }, {
                "name": "Getting Over jQuery",
                "url": "http://blog.ponyfoo.com/2013/07/09/getting-over-jquery",
                "description": "by <a target=\"_blank\" href=\"http://github.com/bevacqua\">Nico Bevacqua</a>"
            }, {
                "name": "A Dive Into Plain JavaScript",
                "url": "http://blog.adtile.me/2014/01/16/a-dive-into-plain-javascript",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/viljamis\">Viljami S.</a>"
            }, {
                "name": "A Deeper Look at Objects in JavaScript",
                "url": "http://www.kirupa.com/html5/a_deeper_look_at_objects_in_javascript.htm",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
            }, {
                "name": "Introduction to Easing in JavaScript",
                "url": "http://www.kirupa.com/html5/introduction_to_easing_in_javascript.htm",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
            }, {
                "name": "How to Learn JavaScript Properly",
                "url": "http://javascriptissexy.com/how-to-learn-javascript-properly",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/jsissexy\">JavaScript Is Sexy</a>"
            }, {
                "name": "How to Start with JavaScript",
                "url": "http://jugoncalv.es/blog/javascript/how-to-start-with-javascript",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/junspector\">Ju Gonçalves</a>"
            }]
        }, {
            "title": "كتب",
            "credit": true,
            "box": false,
            "links": [{
                "name": "Eloquent JavaScript",
                "url": "http://eloquentjavascript.net",
                "description": "by <a target=\"_blank\" href=\"http://marijnhaverbeke.nl\">Marijn Haverbeke</a>"
            }, {
                "name": "JavaScript: The Definitive Guide",
                "url": "http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/David-Flanagan/e/B000APEZR4/ref=ntt_athr_dp_pel_pop_1\">David Flanagan</a>"
            }, {
                "name": "JavaScript: The Good Parts",
                "url": "http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Douglas-Crockford/e/B002N3VYB6/ref=ntt_athr_dp_pel_1\">Douglas Crockford</a>"
            }, {
                "name": "JavaScript Patterns",
                "url": "http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
            }, {
                "name": "JavaScript Testing Recipes",
                "url": "http://jstesting.jcoglan.com",
                "description": "by <a target=\"_blank\" href=\"http://jcoglan.com\">James Coglan</a>"
            }, {
                "name": "Professional JavaScript for Web Developers",
                "url": "http://www.amazon.com/dp/1118026691/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=253J6SW0KPB7J&coliid=IC7UM9W2VVSHL",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
            }, {
                "name": "High Performance JavaScript",
                "url": "http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
            }, {
                "name": "Human JavaScript",
                "url": "http://humanjavascript.com",
                "description": "by <a target=\"_blank\" href=\"http://joreteg.com/\">Henrik Joreteg</a>"
            }, {
                "name": "Object Oriented JavaScript",
                "url": "http://www.amazon.com/Object-Oriented-JavaScript-high-quality-applications-libraries/dp/1847194141",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
            }, {
                "name": "Pro JavaScript Design Patterns",
                "url": "http://www.amazon.com/Pro-JavaScript-Design-Patterns-Object-Oriented/dp/159059908X",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/ded\">Dustin Diaz</a>"
            }, {
                "name": "Learning JavaScript Design Patterns",
                "url": "https://addyosmani.com/resources/essentialjsdesignpatterns/book/",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/addyosmani\">Addy Osmani</a>"
            }, {
                "name": "Secrets of the JavaScript Ninja",
                "url": "http://jsninja.com",
                "description": "by <a target=\"_blank\" href=\"http://ejohn.org\">John Resig</a>"
            }, {
                "name": "JavaScript Application Design",
                "url": "http://bevacqua.io/bf",
                "description": "by <a target=\"_blank\" href=\"http://blog.ponyfoo.com\">Nicolas Bevacqua</a>"
            }, {
                "name": "Speaking JavaScript",
                "url": "http://speakingjs.com",
                "description": "by <a target=\"_blank\" href=\"http://www.rauschma.de\">Axel Rauschmayer</a>"
            }, {
                "name": "Test-Driven JavaScript Development",
                "url": "http://tddjs.com",
                "description": "by <a target=\"_blank\" href=\"http://cjohansen.no\">Christian Johansen</a>"
            }, {
                "name": "You Don't Know JS",
                "url": "https://github.com/getify/You-Dont-Know-JS",
                "description": "by <a target=\"_blank\" href=\"https://github.com/getify\">Kyle Simpson</a>"
            }, {
                "name": "You Might Not Need jQuery",
                "url": "http://youmightnotneedjquery.com",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/burgessdryan\">Ryan Burgess</a>"
            }, {
                "name": "JavaScript Garden",
                "url": "http://bonsaiden.github.io/JavaScript-Garden/",
                "description": "by <a target=\"_blank\" href=\"https://blog.grandcentrix.net\">Ivo Wetzel</a>"
            }, {
                "name": "Effective JavaScript",
                "url": "http://effectivejs.com",
                "description": "by <a target=\"_blank\" href=\"http://calculist.org\">David Herman</a>"
            }, {
                "name": "JavaScript Allongé",
                "url": "https://leanpub.com/javascriptallongesix",
                "description": "by <a target=\"_blank\" href=\"http://raganwald.com\">Reginald Braithwaite</a>"
            }, {
                "name": "Exploring ES6",
                "url": "http://exploringjs.com/es6/",
                "description": "by <a target=\"_blank\" href=\"http://www.rauschma.de\">Axel Rauschmayer</a>"
            }, {
                "name": "JSBooks",
                "url": "http://jsbooks.revolunet.com",
                "description": "by <a target=\"_blank\" href=\"http://devfreebooks.org\">DevFreeBooks</a>"
            }]
        }, {
            "title": "كتب رقمية مجانية",
            "credit": false,
            "box": true,
            "links": [{
                "name": "JSBooks",
                "url": "http://jsbooks.revolunet.com",
                "description": ""
            }, {
                "name": "DevFreeBooks",
                "url": "http://devfreebooks.org",
                "description": ""
            }]
        }, {
            "title": "بوابات",
            "credit": false,
            "box": true,
            "links": [{
                "name": "JavaScript.com",
                "url": "https://www.javascript.com",
                "description": ""
            }, {
                "name": "HTML5 Rocks",
                "url": "http://www.html5rocks.com",
                "description": ""
            }, {
                "name": "W3Fools",
                "url": "http://www.w3fools.com",
                "description": ""
            }, {
                "name": "Mozilla Developer Network",
                "url": "http://developer.mozilla.org/docs/JavaScript",
                "description": ""
            }, {
                "name": "Web Platform",
                "url": "http://docs.webplatform.org/wiki/javascript",
                "description": ""
            }, {
                "name": "Smashing Magazine",
                "url": "http://coding.smashingmagazine.com/tag/javascript",
                "description": ""
            }, {
                "name": "Node School",
                "url": "http://nodeschool.io",
                "description": ""
            }, {
                "name": "How to Node",
                "url": "http://howtonode.org",
                "description": ""
            }, {
                "name": "Felix’s Node.js Beginners Guide",
                "url": "http://nodeguide.com/beginner.html",
                "description": ""
            }]
        }]
    },
    "podcasts": {
        "title": "مدونات صوتية (برودكاست)",
        "links": [{
            "name": "JavaScript Jabber",
            "url": "https://devchat.tv/js-jabber/",
            "description": ""
        }, {
            "name": "Node Up",
            "url": "http://nodeup.com",
            "description": ""
        }, {
            "name": "5 Minutes of JavaScript",
            "url": "https://fivejs.codeschool.com",
            "description": ""
        }, {
            "name": "The Meteor Podcast",
            "url": "http://www.meteorpodcast.com",
            "description": ""
        }, {
            "name": "JSConf",
            "url": "https://www.youtube.com/user/jsconfeu",
            "description": ""
        }, {
            "name": "JavaScript Air",
            "url": "http://javascriptair.com/",
            "description": ""
        }]
    },
    "screencasts": {
        "title": "دروس فيديو",
        "links": [{
            "name": "iLoveCoding",
            "img": "ilovecoding.svg",
            "url": "https://iLoveCoding.org",
            "description": "Full-Stack JavaScript video training."
        },{
            "name": "Egghead",
            "img": "egghead.svg",
            "url": "https://egghead.io",
            "description": ""
        }, {
            "name": "DevFreeCasts",
            "img": "devfreecasts.png",
            "url": "http://devfreecasts.org",
            "description": ""
        }, {
            "name": "tagtree.tv",
            "img": "tagtree.png",
            "url": "https://tagtree.tv/",
            "description": ""
        }, {
            "name": "frontndmasters.com",
            "img": "frontendmasters.svg",
            "url": "http://frontendmasters.com",
            "description": ""
        }]
    },
    "whoToFollow": {
        "title": "من تتابع"
    },
    "paasProviders": {
        "title": "مزودو «منصة حَوسَبة لخدمات البَرمَجة»",
        "links": [{
            "name": "Heroku",
            "url": "http://heroku.com",
            "description": ""
        }, {
            "name": "Modulus",
            "url": "https://modulus.io",
            "description": ""
        }, {
            "name": "Nodejitsu",
            "url": "http://nodejitsu.com",
            "description": ""
        }, {
            "name": "OpenShift",
            "url": "https://www.openshift.com",
            "description": ""
        }, {
            "name": "Getup",
            "url": "http://getupcloud.com/en/",
            "description": ""
        }, {
            "name": "Windows Azure",
            "url": "http://www.windowsazure.com/en-us/develop/nodejs",
            "description": ""
        }]
    },
    "helpers": {
        "title": "مساعدون",
        "links": [{
            "name": "npm",
            "img": "npm.png",
            "url": "https://npmjs.org",
            "description": ""
        }, {
            "name": "bower",
            "img": "bower-logo.png",
            "url": "http://bower.io",
            "description": ""
        }, {
            "name": "yeoman",
            "img": "yeoman-logo.png",
            "url": "http://yeoman.io",
            "description": ""
        }, {
            "name": "grunt",
            "img": "grunt-logo.png",
            "url": "http://gruntjs.com",
            "description": ""
        }, {
            "name": "gulp",
            "img": "gulp.png",
            "url": "http://gulpjs.com",
            "description": ""
        }, {
            "name": "brunch",
            "img": "brunch-logo.png",
            "url": "http://brunch.io",
            "description": ""
        }, {
            "name": "Browser compilation library",
            "img": "broccoli-logo.png",
            "url": "https://github.com/broccolijs/broccoli",
            "description": ""
        }, {
            "name": "Webpack",
            "img": "webpack-logo.png",
            "url": "https://webpack.github.io/",
            "description": ""
        }, {
            "name": "Rollup",
            "img": "rollup-logo.png",
            "url": "http://rollupjs.org/",
            "description": ""
        }, {
            "name": "Browserify",
            "img": "browserify-logo.png",
            "url": "http://browserify.org/",
            "description": ""
        }, {
            "name": "todo mvc",
            "img": "todomvc-logo.png",
            "url": "http://todomvc.com",
            "description": ""
        }]
    },
    "footer": {
        "credit": "إنشاء وصيانة",
        "contributors": "مساهمون",
        "contribDesc": "هذا المشروع لم يكن موجودا لولا هؤلاء المساهمون الرائعون. شكرا لكم لجعل هذا حقيقيا!",
        "licence": "{{@link=partials/licence.html}}"
    },
    "languages": [{
        "url": "pt-br",
        "name": "Português"
    }, {
        "url": "ko-kr",
        "name": "한국어"
    }, {
        "url": "es-es",
        "name": "Español"
    }, {
        "url": "de-de",
        "name": "German"
    }, {
        "url": "en-us",
        "name": "English"
    }, {
        "url": "zh-tw",
        "name": "繁體中文"
    }, {
        "url": "zh-cn",
        "name": "简体中文"
    }, {
        "url": "fa-ir",
        "name": "فارسی"
    }, {
        "url": "ru-ru",
        "name": "Русский"
    }, {
        "url": "ar-ar",
        "name": "العربية"
    }]
}


================================================
FILE: i18n/ar-ar/partials/code-style.html
================================================
<h3>اصطلاحات</h3>

<p>
    As every language, JavaScript has many code style guides. Maybe the most used and recommended is the <a target="_blank" href="https://google.github.io/styleguide/javascriptguide.xml">Google Code Style Guide for JavaScript</a>, but we recommend you read <a target="_blank" href="https://github.com/rwldrn/idiomatic.js/">Idiomatic.js</a>.
</p>

<h3>التضميد</h3>

<p>
    Nowadays the best tool for linting your JavaScript code is <a target="_blank" href="http://www.jshint.com/">JSHint</a>. We recommend that whenever possible you verify your code style and patterns with a Lint tool.
</p>


================================================
FILE: i18n/ar-ar/partials/getting-started.html
================================================
<h3>عن</h3>

<p>
    أُنشِئت من طرف ناتسكوب في سنة 1995 بصفتها ملحقا للـHTML من أجل متصفح ناتسكوب 2.0، كان لجافاسكريبت وظيفة رئيسة هي معالجة ملفات HTML والتَّحقق من النماذج.

    قبل اكتساب هذا الاسم المشهور جدا هذه الأيام، كانت جافاسكريبت تسمى موشا. عندما شحنت لأول مرة إصدارات بيتا، كانت تسمى رسميا لايفسكريبت، وأخيرا، عندما تم إصدارها من طرف Sun Microsystems، كانت قد صبغت بالاسم الذي تُعرف به اليوم.

    بسبب التشابه في الاسماء، خلط الناس جافاسكريبت بجافا. مع أن كليهما لديه بنية معجمية للبرمجة، فإنهما ليسا نفس اللغة.

    مختلفة عن C، C# وجافا، جافاسكريبت هي لغة مُفَسّرة (interpreted language). هذا يعني أنها تحتاج «مفسّرا» (interpreter). في حالة جافاسكريبت، المُفسِّر هو المتصفِّح.
</p>

<h3>النسخة الحالية</h3>

<p>
    معيار جافاسكريبت هي إيكماسكريبت (ECMAScript). اعتبارا من 2012، كل المتصفحات الحديثة تدعم بشكل كامل  إيكماسكريبت 5.1. المتصفحات القديمة تدعم على الأقل إيكماسكريبت 3. اعتبارا من 2015 تمت الموافقة على مواصفات ES6/ES2015. بعد دورة الإصدار الجديدة، تم اعتماد ES7/ES2016 في شهر يونيو/حزيران (جوان أو الشهر السادس من شهور السنة الشمسية) 2016. ألق نظرة على مواصفة لغة إيكماسكريبت 2016 على <a target="_blank" href="http://www.ecma-international.org/ecma-262/7.0/index.html">Ecma International</a>.
</p>

<p>
    A good reference to versions, references and news about JavaScript can be found at the <a target="_blank" href="https://developer.mozilla.org/en-US/docs/JavaScript">Mozilla Developer Network</a>.
</p>

<h3>الـDOM</h3>

<p>
    The Document Object Model (DOM) is an API for HTML and XML documents. It provides a structural representation of the document, enabling you to modify its content and visual presentation by using a scripting language such as JavaScript. See more at <a target="_blank" href="https://developer.mozilla.org/en-US/docs/DOM">Mozilla Developer Network - DOM</a>.
</p>


================================================
FILE: i18n/ar-ar/partials/good-parts.html
================================================
<h3>كائنية التوجه</h3>

<p>
    JavaScript has strong object-oriented programming capabilities, even though some debates have taken place due to the differences in object-oriented JavaScript compared to other languages.
</p>

<p class="source">
    Source: <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">Introduction to Object-Oriented JavaScript</a>
</p>

<h3>الدوال المجهولة</h3>

<p>
    Anonymous functions are functions that are dynamically declared at runtime. They’re called anonymous functions because they aren’t given a name in the same way as normal functions.
</p>

<p class="source">
    Source: <a target="_blank" href="http://helephant.com/2008/08/23/javascript-anonymous-functions/">JavaScript anonymous functions</a>
</p>

<h3>Functions as First-class Objects</h3>

<p>
    Functions in JavaScript are first class objects. This means that JavaScript functions are just a special type of object that can do all the things that regular objects can do.
</p>

<p class="source">
    Source: <a target="_blank" href="http://helephant.com/2008/08/19/functions-are-first-class-objects-in-javascript/">Functions are first class objects in JavaScript</a>
</p>

<h3>Loose Typing</h3>

<p>
    For many front-end developers, JavaScript was their first taste of a scripting and/or interpretive language. To these developers, the concept and implications of loosely typed variables may be second nature. However, the explosive growth in demand for modern web applications has resulted in a growing number of back-end developers that have had to dip their feet into the pool of client-side technologies. Many of these developers are coming from a background of strongly typed languages, such as C# or Java, and are unfamiliar with both the freedom and the potential pitfalls involved in working with loosely typed variables.
</p>

<p class="source">
    Source: <a target="_blank" href="http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html">Understanding Loose Typing in JavaScript</a>
</p>

<h3>المجال والرفع</h3>

<p>
    <b>Scoping:</b> In JavaScript, functions are our <i>de facto</i> scope delimiters for declaring vars, which means that usual blocks from loops and conditionals (such as if, for, while, switch and try) DON'T delimit scope, unlike most other languages. Therefore, those blocks will share the same scope as the function which contains them. This way, it might be dangerous to declare vars inside blocks as it would seem the var belongs to that block only.
</p>

<p>
    <b>Hoisting:</b> On runtime, all var and function declarations are moved to the beginning of each function (its scope) - this is known as Hoisting. Having said so, it is a good practice to declare all the vars altogether on the first line, in order to avoid false expectations with a var that got declared late but happened to hold a value before - this is a common problem for programmers coming from languages with block scope.
</p>

<p class="source">
    Source: <a target="_blank" href="http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html">JavaScript Scoping and Hoisting</a>
</p>

<h3>رابط الدالة</h3>

<p>
    Function binding is most probably the least of your concerns when beginning with JavaScript, but when you realize that you need a solution to the problem of how to keep the context of this within another function, then you might realize that what you actually need is <b>Function.prototype.bind()</b>.
</p>

<p class="source">
    Source: <a target="_blank" href="http://coding.smashingmagazine.com/2014/01/23/understanding-javascript-function-prototype-bind/">Understanding JavaScript’s Function.prototype.bind</a>
</p>

<h3>دالة الإغلاق</h3>

<p>
    Closures are functions that refer to independent (free) variables. In other words, the function defined in the closure 'remembers' the environment in which it was created in.
It is an important concept to understand as it can be useful during development, like emulating private methods. It can also help to learn how to avoid common mistakes, like creating closures in loops.
 </p>

<p class="source">
    Source: <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures/">MDN - Closures</a>
</p>

<h3>الوضع الصارم</h3>

<p>
    ECMAScript 5's strict mode is a way to opt in to a restricted variant of JavaScript. Strict mode isn't just a subset: it intentionally has different semantics from normal code. Browsers not supporting strict mode will run strict mode code with different behavior from browsers that do, so don't rely on strict mode without feature-testing for support for the relevant aspects of strict mode. Strict mode code and non-strict mode code can coexist, so scripts can opt into strict mode incrementally.
 </p>

<p class="source">
    Source: <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode/">MDN - Strict mode</a>
</p>

<h3>دالة التعبير المستدعاة على الفور</h3>

<p>
   An immediately-invoked function expression is a pattern which produces a lexical scope using JavaScript's function scoping. Immediately-invoked function expressions can be used to avoid variable hoisting from within blocks, protect against polluting the global environment and simultaneously allow public access to methods while retaining privacy for variables defined within the function.<br/><br/>
   <i>This pattern has been referred to as a self-executing anonymous function, but <a target="_blank" href="http://twitter.com/cowboy">@cowboy</a> (Ben Alman) introduced the term IIFE as a more semantically accurate term for the pattern</i>.
</p>

<p class="source">
    Source: <a target="_blank" href="http://benalman.com/news/2010/11/immediately-invoked-function-expression/">Immediately-Invoked Function Expression (IIFE)</a>
</p>


================================================
FILE: i18n/ar-ar/partials/licence.html
================================================
<p style="width: 100%; text-align: center; box-sizing: border-box">
     <a rel="license" target="_blank" href="http://creativecommons.org/licenses/by-nc/4.0/">
         <img alt="Creative Commons License" style="border-width: 0" src="http://i.creativecommons.org/l/by-nc/4.0/88x31.png">
     </a>
     <br>
     <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">جافاسكريبت: الطريقة الصحيحة</span>
     من قبل <a xmlns:cc="http://creativecommons.org/ns#" href="https://github.com/gnuwilliam" target="_blank" property="cc:attributionName" rel="cc:attributionURL">William Oliveira</a>.
     <br>مرخص من طرف <a target="_blank" rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-NonCommercial 4.0 International License</a>.
     <br>مرتكز على عمل في<a xmlns:dct="http://purl.org/dc/terms/" href="http://jstherightway.org" rel="dct:source">http://jstherightway.org</a>.
 </p>


================================================
FILE: i18n/ar-ar/partials/patterns.html
================================================
<h3>وصف</h3>

<p>
    While JavaScript contains design patterns that are exclusive to the language, many classical design patterns can also be implemented.
</p>

<p>
    A good way to learn about these is <a target="_blank" href="https://twitter.com/addyosmani">Addy Osmani</a>’s open source book <a target="_blank" href="http://addyosmani.com/resources/essentialjsdesignpatterns/book/">Learning JavaScript Design Patterns</a>, and the links below are (in the majority) based on it.
</p>

<h3>أنماط التصميم</h3>

<section class="txt">
    <ul>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#factorypatternjavascript'>Factory</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#prototypepatternjavascript'>Prototype</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mixinpatternjavascript'>Mixin</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#singletonpatternjavascript'>Singleton</a></li>
    </ul>
</section>

<p class="source">
    أنماط التصميم التكوينية
</p>

<section class="txt">
    <ul>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#wrapperpatternjquery'>Adapter</a></li>
        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-bridge/'>Bridge</a></li>
        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-composite/'>Composite</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#decoratorpatternjavascript'>Decorator</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#facadepatternjavascript'>Facade</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailflyweight'>Flyweight</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript'>Module</a></li>
        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-proxy/'>Proxy</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript'>Revealing Module</a></li>
    </ul>
</section>

<p class="source">
    أنماط التصميم الهيكلية
</p>

<section class="txt">
    <ul>
        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-chain-of-responsibility/'>Chain of Responsibility</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#commandpatternjavascript'>Command</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mediatorpatternjavascript'>Mediator</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript'>Observer</a></li>
    </ul>
</section>

<p class="source">
    أنماط التصميم السلوكية
</p>

<h3>MV* Patterns</h3>

<section class="txt">
    There are some implementations of the traditional MVC Pattern and its variations in JavaScript.
</section>

<section class="txt">
    <ul>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvc'>MVC Pattern</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvp'>MVP Pattern</a></li>
        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvvm'>MVVM Pattern</a></li>
    </ul>
</section>


================================================
FILE: i18n/ar-ar/partials/testing-tools.html
================================================
<h3>وصف</h3>

<p>.هناك العديد من المكتبات وأطر العمل لعمل الاختبارات في جافاسكريبت</p>


================================================
FILE: i18n/ar-ar/partials/welcome.html
================================================
<h1>هاي، أنت!</h1>

<p>
    هذا دليل يهدف إلى تعريف المطورين الجدد بجافاسكريبت ومساعدة المطورين ذوي الخبرة في تعلم مزيد من ممارساتها المستحسنة.
</p>

<p>
    بالرغم من الاسم، هذا الدليل على يعني لزوما «الطريقة الوحيدة» للعمل بجافاسكريبت.
</p>

<p>
    لقد قمنا فقط بتجميع المقالات، نصائح، والخدع من المطورين ووضعها هنا. بما أنها أشخاص استثنائيين، يمكننا القول أنها «الطريقة الصحيحة»، أو أفضل طريق للعمل.
</p>


================================================
FILE: i18n/de-de/de-de.json
================================================
{
  "meta": {
    "title":"JS: Der richtige Weg",
    "description":"Eine kurze Übersicht an Best-Practices für das Programmieren mit JavaScript -- Links zu Entwurfsmustern und Tutorials aus dem Web"
  },
  "direction": "ltr",
  "welcome": "{{@link=partials/welcome.html}}",
  "menu": {
    "title": "Wähle deinen Weg",
    "links": [
      {
        "title":"Erste Schritte",
        "url":"#getting-started"
      },
      {
        "title":"JavaScript Code-Style",
        "url":"#js-code-style"
      },
      {
        "title":"Die Vorteile",
        "url":"#the-good-parts"
      },
      {
        "title": "Must See",
        "url": "#must-see"
      },
      {
        "title":"Entwurfsmuster",
        "url":"#patterns"
      },
      {
        "title":"Testwerkzeuge",
        "url":"#testing-tools"
      },
      {
        "title":"Frameworks",
        "url":"#frameworks"
      },
      {
        "title":"Spiele-Engines",
        "url":"#game-engines"
      },
      {
        "title":"Neuigkeiten",
        "url":"#news"
      },
      {
        "title":"Literatur",
        "url":"#reading"
      },
      {
        "title":"Podcasts",
        "url":"#podcasts"
      },
      {
        "title":"Screencasts",
        "url":"#screencasts"
      },
      {
        "title":"Wem ist zu folgen",
        "url":"#whotofollow"
      },
      {
        "title":"PaaS-Anbieter",
        "url":"#paas"
      },
      {
        "title":"Helferlein",
        "url":"#helpers"
      }
    ]
  },
  "gettingStarted": {
    "title":"ERSTE SCHRITTE",
    "text":"{{@link=partials/getting-started.html}}"
  },
  "codeStyle": {
    "title":"JS CODE-STYLE",
    "text":"{{@link=partials/code-style.html}}"
  },
  "goodParts":{
    "title":"DIE VORTEILE",
    "text":"{{@link=partials/good-parts.html}}"
  },
  "patterns":{
    "title":"ENTWURFSMUSTER",
    "text":"{{@link=partials/patterns.html}}"
  },
  "testingTools":{
    "title":"TESTWERKZEUGE",
    "text":"{{@link=partials/testing-tools.html}}",
    "links":[
      {
        "name":"Mocha",
        "url":"http://mochajs.org",
        "description":"wird gewartet von <a target=\"_blank\" href=\"https://github.com/visionmedia\">TJ Holowaychuk</a>"
      },
      {
        "name":"QUnit",
        "url":"http://qunitjs.com",
        "description":"wird gewartet von <a target=\"_blank\" href=\"https://github.com/jquery\">jQuery</a>"
      },
      {
        "name":"Jasmine",
        "url":"https://github.com/pivotal/jasmine",
        "description":"wird gewartet von <a target=\"_blank\" href=\"https://github.com/pivotal/jasmine\">Pivotal Labs</a>"
      },
      {
        "name":"Karma",
        "url":"http://karma-runner.github.io/",
        "description":"wird gewartet von dem Team hinter AngularJS. Am meisten durch <a target=\"_blank\" href=\"https://github.com/vojtajina\">Vojta Jina</a>"
      },
      {
        "name":"Intern",
        "url":"http://theintern.io",
        "description":"wird gewartet von <a target=\"_blank\" href=\"http://www.sitepen.com\">Sitepen</a>"
      },
      {
        "name":"Istanbul",
        "url":"http://gotwarlost.github.io/istanbul",
        "description":"Ein JavaScript Code-Coverage-Tool, geschrieben in JavaScript. Wird gewartet von <a target=\"_blank\" href=\"https://github.com/gotwarlost\">Krishnan Anantheswaran</a>"
      },
      {
        "name":"Sinon.JS",
        "url":"http://sinonjs.org",
        "description":"Eigenständige Test-Spies, Stubs und Mocks für JavaScript. Keine Abhängigkeiten, funktioniert mit beliebigen Unit-Test-Frameworks. Erstellt von der <a target=\"_blank\" href=\"https://github.com/cjohansen/Sinon.JS\">Sinon.JS Community</a>"
      },
      {
        "name":"DexterJS",
        "url":"https://github.com/leobalter/DexterJS",
        "description":"Ein Test-Helferlein, um Mocks von Funktionen und dem XHR-Objekt zu erstellen, gewartet von <a target=\"_blank\" href=\"http://leobalter.github.io\">Leo Balter</a>"
      },
      {
        "name":"AVA",
        "url":"https://github.com/sindresorhus/ava",
        "description":"Test Runner mit asynchronen Tests, gewartet von <a target=\"_blank\" href=\"https://twitter.com/sindresorhus\">Sindre Sorhus</a>"
      }
    ]
  },
  "frameworks":{
    "title":"FRAMEWORKS",
    "cat":[
      {
        "title":"ALLGEMEINER ZWECK",
        "links":[
          {
            "name":"jQuery",
            "url":"http://jquery.com",
            "description":"jQuery ist eine schnelle, kleine und featurereiche JavaScript-Bibliothek. Erstellt von <a target=\"_blank\" href=\"https://twitter.com/jeresig\">John Resig</a>."
          },
          {
            "name":"YUI",
            "url":"http://yuilibrary.com",
            "description":"Erstellt von Yahoo!, YUI ist eine freie, quelloffene JavaScript- und CSS-Bibliothek für die Erstellung von interaktiven Webanwendungen. <a target=\"_blank\" href=\"http://yahooeng.tumblr.com\">Die Weiterentwicklung wurde seit dem 29. August 2014 gestoppt.</a>."
          },
          {
            "name":"ZeptoJS",
            "url":"http://zeptojs.com",
            "description":"Zepto ist eine minimalistische Javascript-Bibliothek für moderne Browser mit einer weitestgehend jQuery-kompatiblen API. Wenn du bereits jQuery verwendest, weißt du bereits, wie man Zepto benutzt."
          },
          {
            "name":"Dojo Toolkit",
            "url":"http://dojotoolkit.org",
            "description":"Dojo ist ein freies, quelloffenes JavaScript-Toolkit zum Erstellen von hochperformanten  Webanwendungen. Projektsponsoren umfassen unter anderem IBM und SitePen."
          },
          {
            "name":"Underscore.js",
            "url":"http://underscorejs.org",
            "description":"Underscore.js ist eine JavaScript-Bibliothek, die unterschiedlichste hilfreiche und funktionale Programmhelferlein bietet, ohne die eingebauten Objekte zu verändern."
          }
        ]
      },
      {
        "title":"MV*",
        "links":[
          {
            "name":"Backbone.js",
            "url":"http://backbonejs.org",
            "description":"Sehr beliebtes clientseitiges JavaScript-Framework, erstellt von <a target=\"_blank\" href='http://twitter.com/jashkenas'>@jashkenas</a>."
          },
          {
            "name":"Ember.js",
            "url":"http://emberjs.com",
            "description":"Erstellt von <a target=\"_blank\" href='http://twitter.com/wycats'>@wycats</a>, jQuery und den Ruby on Rails-Hauptentwicklern."
          },
          {
            "name":"Knockout.js",
            "url":"http://knockoutjs.com",
            "description":"Vereinfacht dynamische JavaScript-UIs, indem es dem Model-View-View Model (MVVM)-Schema folgt."
          },
          {
            "name":"Angular.js",
            "url":"http://angularjs.org",
            "description":"Erstellt von Google, Angular.js ist eine Art Polyfill für die Zukunft von HTML."
          },
          {
            "name":"Angular",
            "url":"https://angular.io",
            "description":"Ein framework.Mobile &amp; desktop. Eine Möglichkeit, Anwendungen mit Angular zu erstellen und Ihren Code und Fähigkeiten zu verwenden, um Anwendungen für jedes Deployment-Ziel zu erstellen. Für Web, mobiles Web, native mobile und native Desktop."
          },
          {
            "name":"Cappuccino",
            "url":"http://www.cappuccino-project.org",
            "description":"Cappuccino ist ein quelloffenes Framework, welches die Erstellung von Desktop-Caliber-Anwendungen, die im Webbrowser laufen, vereinfacht."
          },
          {
            "name":"JavaScript MVC",
            "url":"http://javascriptmvc.com/",
            "description":"JavaScriptMVC ist ein quelloffenes Framework, welches die besten Ideen aus der jQuery-Entwicklung beinhaltet."
          },
          {
            "name":"Meteor",
            "url":"https://www.meteor.com",
            "description":"Meteor ist eine quelloffene Plattform zum Erstellen von qualitativ hochwertigen Web-Apps in kürzester Zeit, egal ob du ein erfahrerener Entwickler bist oder gerade erst angefangen hast."
          },
          {
            "name":"Spice.js",
            "url":"http://spicejs.github.io/spicejs/",
            "description":"Spice ist ein extrem minimales (&lt; 3k) und flexibles MVC-Framework für JavaScript. Spice kann leicht in bestehende Anwendungen integriert werden und arbeitet gut mit anderen Technologien wie jQuery, pjax, turbolinks, node oder womit auch immer du arbeitest, zusammen"
          },
          {
            "name":"Riot.js",
            "url":"http://www.riotjs.com/",
            "description":"Riot ist eine unglaublich schnelle, mächtige und zugleich kleine clientseitige (MV*) Bibliothek zum Erstellen von umfangreichen Webanwendungen. Trotz der kleinen Größe sind alle wichtigen Bausteine vorhanden: eine Template-Engine, ein Router, eine Event-Bibliothek und ein striktes MVP-Muster, um Dinge organisiert zu halten."
          },
          {
            "name":"CanJS",
            "url":"http://canjs.com",
            "description":"CanJS ist ein JavaScript-Framework, welches die Entwicklung von komplexen Anwendungen einfach und schnell macht. Einfach zu erlernen, klein und eine flexible Anwendungsstruktur, dazu moderne Features wie Custom Tags und Two-Way-Binding."
          }
        ]
      },
      {
        "title":"Bibliotheken",
        "links":[
          {
            "name":"React",
            "url":"http://facebook.github.io/react",
            "description":"Erstellt von Facebook. React ist eine JavaScript-Bibliothek zum Erstellen von User Interfaces von Facebook und Instagram. React wird von vielen als das V in MVC angesehen."
          },
          {
            "name":"Handlebars",
            "url":"http://handlebarsjs.com",
            "description":"Handlebars bietet die Mächtigkeit, semantische Templates effektiv ohne Frust zu erstellen."
          },
          {
            "name":"Dust.js",
            "url":"http://linkedin.github.io/dustjs",
            "description":"Asynchrone Templates für den Browser und node.js."
          }
        ]
      },
      {
        "title":"Animation",
        "links":[
          {
            "name":"Velocity.js",
            "url":"http://julian.com/research/velocity/",
            "description":"Velocity ist eine Animations-Engine mit derselben API wie jQuerys $.animate()."
          },
          {
            "name":"Bounce.js",
            "url":"http://bouncejs.com/",
            "description":"Bounce.js ist ein Werkzeug und eine JS-Bibliothek, mit dem man schöne CSS3 getriebene Animationen erstellen kann."
          },
          {
            "name":"TweenJS",
            "url":"http://www.createjs.com/tweenjs",
            "description":"Eine einfache aber mächtige JavaScript-Bibliothek für das Animieren und Tweenen von HTML5- und JavaScript-Objekten."
          },
          {
            "name":"Move.js",
            "url":"http://visionmedia.github.io/move.js/",
            "description":"Move.js ist eine kleine JavaScript-Bibliothek, die das Erstellen von CSS3 getriebenen Animationen extrem einfach und elegant macht."
          },
          {
            "name":"Snap.svg",
            "url":"http://snapsvg.io/",
            "description":"SVG ist ein ausgezeichneter Weg, um interaktive, auflösungsunabhängige Vektorgrafiken zu erstellen, die auf allen Bildschirmgrößen gut aussehen."
          },
          {
            "name":"Rekapi",
            "url":"http://rekapi.com/",
            "description":"Rekapi ist eine Bibliothek zum Erstellen sowohl von Canvas- und DOM-Animationen mit JavaScript als auch von CSS @keyframe-Animationen für moderne Browser."
          },
          {
            "name":"Favico.js",
            "url":"http://lab.ejci.net/favico.js/",
            "description":"Mach Gebrauch von deinem Favicon mit Badges, Bildern oder Videos."
          },
          {
            "name":"Textillate.js",
            "url":"http://jschr.github.io/textillate/",
            "description":"Textillate.js kombiniert einige geniale Bibliotheken, um ein einfach zu verwendendes Plugin zum Zuweisen von CSS3-Animationen zu jeglichen Texten zur Verfügung zu stellen."
          },
          {
            "name":"Motio",
            "url":"http://darsa.in/motio/",
            "description":"Motio ist eine kleine JavaScript-Bibliothek für einfache aber umfangreiche auf Sprites basierende Animationen und Panning."
          }
        ]
      }
    ]
  },
  "gameEngines":{
    "title":"SPIELE-ENGINES",
    "links":[
      {
        "name":"MelonJS",
        "url":"http://melonJS.org",
        "description":"MelonJS ist eine freie, leichtgewichtige HTML5 Spiele-Engine. Die Engine verwendet ein tiled Map-Format, welches das Leveldesign vereinfacht."
      },
      {
        "name":"ImpactJS",
        "url":"http://impactjs.com",
        "description":"ImpactJS ist eine der eher länger bewährten HTML5 Spiele-Engines, deren erste Veröffentlichung bis Ende 2010 zurückreicht. Sie wird sehr gut gewartet und regelgemäßig geupdatet und hat eine große Community, die sie unterstützt. Es existieren sowohl umfangreiche Dokumentationen als auch zwei Bücher zum Thema Spieleentwicklung mit dieser Engine."
      },
      {
        "name":"LimeJS",
        "url":"http://limejs.com",
        "description":"LimeJS ist ein HTML5 Spiele-Framework zum Erstellen von schnellen, native-experience Spielen für alle modernen Touchscreens und Desktop-Browser."
      },
      {
        "name":"Crafty",
        "url":"http://craftyjs.com",
        "description":"Crafty ist eine Spiele-Engine, welche von Ende 2010 stammt. Crafty ermöglicht einen einfachen Einstieg in das Erstellen von JavaScript-Spielen."
      },
      {
        "name":"Cocos2d-HTML5",
        "url":"http://www.cocos2d-x.org/wiki/Cocos2d-html5",
        "description":"Cocos2d-HTML5 ist ein quelloffenes 2D Web-Spiele-Framework, veröffentlicht unter der MIT Lizenz. Es ist eine HTML5-Version von dem Cocos2d-x Projekt. Das Ziel der Cocos2d-HTML5- Entwicklung ist, Cocos2d plattformunabhängig von Browsern und nativen Anwendungen zu machen."
      },
      {
        "name":"Phaser",
        "url":"http://phaser.io",
        "description":"Phaser basiert stark auf <a target=\"_blank\" href=\"http://www.flixel.org\">Flixel</a>. Es wird gewartet von Richard Davey (<a target=\"_blank\" href=\"http://www.photonstorm.com/\">Photon Storm</a>), der in der HTML5-Community bereits seit Jahren sehr aktiv ist."
      },
      {
        "name":"Goo",
        "url":"http://www.goocreate.com/learn",
        "description":"Goo ist eine 3D JavaScript-Spiele-Engine, die komplett auf WebGL/HTML5 aufbaut."
      },
      {
        "name":"LycheeJS",
        "url":"http://lycheejs.org",
        "description":"LycheeJS ist eine JavaScript-Spiele-Bibliothek, die eine Komplettlösung für das Prototyping und die Entwicklung von HTML5 Canvas, WebGL oder nativen OpenGL(ES) basierten Spielen innerhalb des Browsers oder einer nativen Umgebung bietet."
      },
      {
        "name":"Quintus",
        "url":"http://html5quintus.com",
        "description":"Quintus ist eine HTML5-Spiele-Engine, die einen modularen und leichtgewichtigen Ansatz mit einer prägnanten JavaScript-freundlichen Syntax verfolgt."
      },
      {
        "name":"KiwiJS",
        "url":"http://www.kiwijs.org",
        "description":"Kiwi.js ist eine lustige und freundliche quelloffene HTML5-Spiele-Engine. Manche bezeichnen es als WordPress der HTMl5-Spiele-Engines."
      },
      {
        "name":"PandaJS",
        "url":"http://www.pandajs.net",
        "description":"Panda.js ist eine HTML5-Spiele-Engine mit Canvas und WebGL-Rendering für mobile Endgeräte und für den Desktop."
      },
      {
        "name":"Rot.js",
        "url":"https://github.com/ondras/rot.js",
        "description":"Rot.js ist eine Sammlung von JavaScript Bibliotheken, die einen bei der Rogue-like Entwicklung in der Browserumgebung unterstützen soll."
      }
    ]
  },
  "news":{
    "title":"Neuigkeiten",
    "cat":[
      {
        "title":"Webseiten",
        "links":[
          {
            "name":"JavaScript.com",
            "url":"http://javascript.com",
            "description":""
          },
          {
            "name":"Echo JS",
            "url":"http://www.echojs.com",
            "description":""
          },
          {
            "name":"The Treehouse Show",
            "url":"http://teamtreehouse.com/library/the-treehouse-show",
            "description":""
          },
          {
            "name":"/r/javascript on Reddit",
            "url":"http://www.reddit.com/r/javascript",
            "description":""
          },
          {
            "name":"Open Web Platform Daily Digest",
            "url":"http://webplatformdaily.org",
            "description":""
          },
          {
            "name":"Badass JavaScript",
            "url":"http://badassjs.com",
            "description":""
          },
          {
            "name":"AngularJS Daily",
            "url":"http://paper.li/gwinnem/1390553142",
            "description":""
          }
        ]
      },
      {
        "title":"Newsletter",
        "links":[
          {
            "name":"JavaScript Weekly",
            "url":"http://javascriptweekly.com",
            "description":""
          },
          {
            "name":"A Drip of JavaScript",
            "url":"http://designpepper.com/a-drip-of-javascript",
            "description":""
          },
          {
            "name":"Ember Weekly",
            "url":"http://emberweekly.com",
            "description":""
          },
          {
            "name":"Node Weekly",
            "url":"http://nodeweekly.com",
            "description":""
          },
          {
            "name":"Meteor Weekly",
            "url":"http://meteorhacks.com/meteor-weekly",
            "description":""
          },
          {
            "name":"Grunt Weekly",
            "url":"https://twitter.com/gruntweekly",
            "description":""
          },
          {
            "name":"Gamedev.js Weekly",
            "url":"http://weekly.gamedevjs.com",
            "description":""
          },
          {
            "name":"HTML5 Weekly",
            "url":"http://html5weekly.com",
            "description":""
          },
          {
            "name":"UDGWebDev Weekly",
            "url":"http://udgwebdev.com/newsletter",
            "description":""
          },
          {
            "name":"The React Newsletter",
            "url":"http://theproblemsolver.nl/TheReactNewsletter/Subscribe",
            "description":""
          }
        ]
      }
    ]
  },
  "reading":{
    "title":"Literatur",
    "cat":[
      {
        "title":"Artikel",
        "credit":true,
        "box":false,
        "links":[
          {
            "name":"Understanding JavaScript OOP",
            "url":"http://robotlolita.github.io/2011/10/09/understanding-javascript-oop.html",
            "description":"von <a target=\"_blank\" href=\"https://github.com/robotlolita\">Quildreen Motta</a>"
          },
          {
            "name":"Understanding \"Prototypes\" in JavaScript",
            "url":"http://yehudakatz.com/2011/08/12/understanding-prototypes-in-JavaScript",
            "description":"von <a target=\"_blank\" href=\"https://github.com/wycats\">Yehuda Katz</a>"
          },
          {
            "name":"Prototypes and Inheritance in JavaScript",
            "url":"http://msdn.microsoft.com/en-us/magazine/ff852808.aspx",
            "description":"von <a target=\"_blank\" href=\"http://odetocode.com/blogs/scott\">Scott Allen</a>"
          },
          {
            "name":"Partial Application in JavaScript",
            "url":"http://benalman.com/news/2012/09/partial-application-in-javascript",
            "description":"von <a target=\"_blank\" href=\"http://github.com/cowboy\">Ben Alman</a>"
          },
          {
            "name":"Getting Over jQuery",
            "url":"http://blog.ponyfoo.com/2013/07/09/getting-over-jquery",
            "description":"von <a target=\"_blank\" href=\"http://github.com/bevacqua\">Nico Bevacqua</a>"
          },
          {
            "name":"A Dive Into Plain JavaScript",
            "url":"http://blog.adtile.me/2014/01/16/a-dive-into-plain-javascript",
            "description":"von <a target=\"_blank\" href=\"https://twitter.com/viljamis\">Viljami S.</a>"
          },
          {
            "name":"A Deeper Look at Objects in JavaScript",
            "url":"http://www.kirupa.com/html5/a_deeper_look_at_objects_in_javascript.htm",
            "description":"von <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
          },
          {
            "name":"Introduction to Easing in JavaScript",
            "url":"http://www.kirupa.com/html5/introduction_to_easing_in_javascript.htm",
            "description":"von <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
          },
          {
            "name":"How to Learn JavaScript Properly",
            "url":"http://javascriptissexy.com/how-to-learn-javascript-properly",
            "description":"von <a target=\"_blank\" href=\"http://twitter.com/jsissexy\">JavaScript Is Sexy</a>"
          },
          {
            "name":"How to Start with JavaScript",
            "url":"http://jugoncalv.es/blog/javascript/how-to-start-with-javascript",
            "description":"von <a target=\"_blank\" href=\"http://twitter.com/junspector\">Ju Gonçalves</a>"
          }
        ]
      },
      {
        "title":"Bücher",
        "credit":true,
        "box":false,
        "links":[
          {
            "name":"Eloquent JavaScript",
            "url":"http://eloquentjavascript.net",
            "description":"von <a target=\"_blank\" href=\"http://marijnhaverbeke.nl\">Marijn Haverbeke</a>"
          },
          {
            "name":"JavaScript: The Definitive Guide",
            "url":"http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527",
            "description":"von <a target=\"_blank\" href=\"http://www.amazon.com/David-Flanagan/e/B000APEZR4/ref=ntt_athr_dp_pel_pop_1\">David Flanagan</a>"
          },
          {
            "name":"JavaScript: The Good Parts",
            "url":"http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742",
            "description":"von <a target=\"_blank\" href=\"http://www.amazon.com/Douglas-Crockford/e/B002N3VYB6/ref=ntt_athr_dp_pel_1\">Douglas Crockford</a>"
          },
          {
            "name":"JavaScript Patterns",
            "url":"http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752",
            "description":"von <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
          },
          {
            "name":"JavaScript Testing Recipes",
            "url":"http://jstesting.jcoglan.com",
            "description":"von <a target=\"_blank\" href=\"http://jcoglan.com\">James Coglan</a>"
          },
          {
            "name":"Professional JavaScript for Web Developers",
            "url":"http://www.amazon.com/dp/1118026691/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=253J6SW0KPB7J&coliid=IC7UM9W2VVSHL",
            "description":"von <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
          },
          {
            "name":"High Performance JavaScript",
            "url":"http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X",
            "description":"von <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
          },
          {
            "name":"Human JavaScript",
            "url":"http://humanjavascript.com",
            "description":"von <a target=\"_blank\" href=\"http://joreteg.com/\">Henrik Joreteg</a>"
          },
          {
            "name":"Object Oriented JavaScript",
            "url":"http://www.amazon.com/Object-Oriented-JavaScript-high-quality-applications-libraries/dp/1847194141",
            "description":"von <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
          },
          {
            "name":"Pro JavaScript Design Patterns",
            "url":"http://www.amazon.com/Pro-JavaScript-Design-Patterns-Object-Oriented/dp/159059908X",
            "description":"von <a target=\"_blank\" href=\"https://twitter.com/ded\">Dustin Diaz</a>"
          },
          {
            "name":"Learning JavaScript Design Patterns",
            "url":"https://addyosmani.com/resources/essentialjsdesignpatterns/book/",
            "description":"von <a target=\"_blank\" href=\"http://twitter.com/addyosmani\">Addy Osmani</a>"
          },
          {
            "name":"Secrets of the JavaScript Ninja",
            "url":"http://jsninja.com",
            "description":"von <a target=\"_blank\" href=\"http://ejohn.org\">John Resig</a>"
          },
          {
            "name":"JavaScript Application Design",
            "url":"http://bevacqua.io/bf",
            "description":"von <a target=\"_blank\" href=\"http://blog.ponyfoo.com\">Nicolas Bevacqua</a>"
          },
          {
            "name":"Speaking JavaScript",
            "url":"http://speakingjs.com",
            "description":"von <a target=\"_blank\" href=\"http://www.rauschma.de\">Axel Rauschmayer</a>"
          },
          {
            "name":"Test-Driven JavaScript Development",
            "url":"http://tddjs.com",
            "description":"von <a target=\"_blank\" href=\"http://cjohansen.no\">Christian Johansen</a>"
          },
          {
            "name":"You Don't Know JS",
            "url":"https://github.com/getify/You-Dont-Know-JS",
            "description":"von <a target=\"_blank\" href=\"https://github.com/getify\">>Kyle Simpson</a>"
          },
          {
            "name":"You Might Not Need jQuery",
            "url":"http://youmightnotneedjquery.com",
            "description":"von <a target=\"_blank\" href=\"http://twitter.com/burgessdryan\">Ryan Burgess</a>"
          },
          {
            "name":"JavaScript Garden",
            "url":"http://bonsaiden.github.io/JavaScript-Garden/",
            "description":"von <a target=\"_blank\" href=\"https://blog.grandcentrix.net\">Ivo Wetzel</a>"
          },
          {
            "name":"Effective JavaScript",
            "url":"http://effectivejs.com",
            "description":"von <a target=\"_blank\" href=\"http://calculist.org\">David Herman</a>"
          },
          {
            "name":"JavaScript Allongé",
            "url":"https://leanpub.com/javascript-allonge",
            "description":"von <a target=\"_blank\" href=\"http://raganwald.com\">Reginald Braithwaite</a>"
          },
          {
            "name":"Exploring ES6",
            "url":"http://exploringjs.com/es6/",
            "description":"von <a target=\"_blank\" href=\"http://www.rauschma.de\">Axel Rauschmayer</a>"
          },
          {
            "name":"JSBooks",
            "url":"http://jsbooks.revolunet.com",
            "description":"von <a target=\"_blank\" href=\"http://devfreebooks.org\">DevFreeBooks</a>"
          }
        ]
      },
      {
        "title":"Kostenlose E-Books",
        "credit":false,
        "box":true,
        "links":[
          {
            "name":"JSBooks",
            "url":"http://jsbooks.revolunet.com",
            "description":""
          },
          {
            "name":"DevFreeBooks",
            "url":"http://devfreebooks.org",
            "description":""
          }
        ]
      },
      {
        "title":"Portale",
        "credit":false,
        "box":true,
        "links":[
          {
            "name":"JavaScript.com",
            "url":"https://www.javascript.com",
            "description":""
          },
          {
            "name":"HTML5 Rocks",
            "url":"http://www.html5rocks.com",
            "description":""
          },
          {
            "name":"W3Fools",
            "url":"http://www.w3fools.com",
            "description":""
          },
          {
            "name":"Mozilla Developer Network",
            "url":"http://developer.mozilla.org/docs/JavaScript",
            "description":""
          },
          {
            "name":"Web Platform",
            "url":"http://docs.webplatform.org/wiki/javascript",
            "description":""
          },
          {
            "name":"Smashing Magazine",
            "url":"http://coding.smashingmagazine.com/tag/javascript",
            "description":""
          },
          {
            "name":"Node School",
            "url":"http://nodeschool.io",
            "description":""
          },
          {
            "name":"How to Node",
            "url":"http://howtonode.org",
            "description":""
          },
          {
            "name":"Felix's Node.js Beginners Guide",
            "url":"http://nodeguide.com/beginner.html",
            "description":""
          }
        ]
      }
    ]
  },
  "podcasts":{
    "title":"Podcasts",
    "links":[
      {
        "name":"JavaScript Jabber",
        "url":"http://javascriptjabber.com",
        "description":""
      },
      {
        "name":"Node Up",
        "url":"http://nodeup.com",
        "description":""
      },
      {
        "name":"5 Minutes of JavaScript",
        "url":"https://fivejs.codeschool.com",
        "description":""
      },
      {
        "name":"The Meteor Podcast",
        "url":"http://www.meteorpodcast.com",
        "description":""
      },
      {
        "name":"JSConf",
        "url":"https://www.youtube.com/user/jsconfeu",
        "description":""
      },
      {
        "name":"JavaScript Air",
        "url":"http://javascriptair.com/",
        "description":""
      }
    ]
  },
  "screencasts":{
    "title":"Screencasts",
    "links":[
      {
        "name": "iLoveCoding",
        "img": "ilovecoding.svg",
        "url": "https://iLoveCoding.org",
        "description": "Full-Stack JavaScript video training."
      },
      {
        "name":"Egghead",
        "img":"egghead.svg",
        "url":"https://egghead.io",
        "description":""
      },
      {
        "name":"DevFreeCasts",
        "img":"devfreecasts.png",
        "url":"http://devfreecasts.org",
        "description":""
      },
      {
        "name":"tagtree.tv",
        "img":"tagtree.png",
        "url":"https://tagtree.tv/",
        "description":""
      },
      {
        "name":"frontndmasters.com",
        "img":"frontendmasters.svg",
        "url":"http://frontendmasters.com",
        "description":""
      }
    ]
  },
  "whoToFollow":{
    "title":"Wem ist zu folgen"
  },
  "paasProviders":{
    "title":"PaaS-Anbieter",
    "links":[
      {
        "name":"Heroku",
        "url":"http://heroku.com",
        "description":""
      },
      {
        "name":"Modulus",
        "url":"https://modulus.io",
        "description":""
      },
      {
        "name":"Nodejitsu",
        "url":"http://nodejitsu.com",
        "description":""
      },
      {
        "name":"OpenShift",
        "url":"https://www.openshift.com",
        "description":""
      },
      {
        "name":"Getup",
        "url":"http://getupcloud.com/en/",
        "description":""
      },
      {
        "name":"Windows Azure",
        "url":"http://www.windowsazure.com/en-us/develop/nodejs",
        "description":""
      }
    ]
  },
  "helpers":{
    "title":"Helferlein",
    "links":[
      {
        "name":"npm",
        "img":"npm.png",
        "url":"https://npmjs.org",
        "description":""
      },
      {
        "name":"bower",
        "img":"bower-logo.png",
        "url":"http://bower.io",
        "description":""
      },
      {
        "name":"yeoman",
        "img":"yeoman-logo.png",
        "url":"http://yeoman.io",
        "description":""
      },
      {
        "name":"grunt",
        "img":"grunt-logo.png",
        "url":"http://gruntjs.com",
        "description":""
      },
      {
        "name":"gulp",
        "img":"gulp.png",
        "url":"http://gulpjs.com",
        "description":""
      },
      {
        "name":"brunch",
        "img":"brunch-logo.png",
        "url":"http://brunch.io",
        "description":""
      },
      {
        "name":"Browser compilation library",
        "img":"broccoli-logo.png",
        "url":"https://github.com/broccolijs/broccoli",
        "description":""
      },
      {
        "name":"Webpack",
        "img":"webpack-logo.png",
        "url":"https://webpack.github.io/",
        "description":""
      },
      {
        "name":"Rollup",
        "img":"rollup-logo.png",
        "url":"http://rollupjs.org/",
        "description":""
      },
      {
        "name":"Browserify",
        "img":"browserify-logo.png",
        "url":"http://browserify.org/",
        "description":""
      },
      {
        "name":"todo mvc",
        "img":"todomvc-logo.png",
        "url":"http://todomvc.com",
        "description":""
      }
    ]
  },
  "footer":{
    "credit":"Erstellt und gewartet von",
    "contributors":"Mitwirkende",
    "contribDesc":"Dieses Projekt wäre ohne die Hilfe von diesen großartigen Personen nicht zustande gekommen. Vielen Dank, dass ihr es ermöglicht!",
    "licence":"{{@link=partials/licence.html}}"
  }
}


================================================
FILE: i18n/de-de/partials/code-style.html
================================================
<h3>Richtlinien</h3>

<p>
    Auch JavaScript hat, so wie jede Programmiersprache, viele unterschiedliche Leitfäden für den Code-Style. Der womöglich am meisten verwendete und weiterempfohlene ist der <a target="_blank" href="https://google.github.io/styleguide/javascriptguide.xml">Google Code-Style-Guide für JavaScript</a>, aber wir empfehlen dir <a target="_blank" href="https://github.com/rwldrn/idiomatic.js/">Idiomatic.js</a> zu lesen.
</p>

<h3>Code-Analyse (Linting)</h3>

<p>
    Mittlerweile hat sich als Tool für die Code-Analyse (Linting) von JavaScript-Code <a target="_blank" href="http://www.jshint.com/">JSHint</a> bewährt. Wir empfehlen euch, euren Code-Style und Entwurfsmuster durchgehend mit einem Lint-Tool zu überprüfen.
</p>


================================================
FILE: i18n/de-de/partials/getting-started.html
================================================
<h3>ÜBER</h3>

<p>
    Erstellt von Netscape im Jahre 1995 als eine Erweiterung von HTML für den Netscape Navigator 2.0, waren die grundlegenden Funktionen von JavaScript die Manipulation von HTML-Dokumenten und die Formularvalidierung.

    Bevor der Name zu seinem heutigen Bekanntheitsgrad gelangt ist, wurde JavaScript früher Mocha genannt. Als zunächst Beta-Versionen davon erschienen sind, wurde es offiziell LiveScript gennant und schließlich, als es von Sun Microsystems veröffentlicht wurde, hat es den heutigen Namen angenommen.

    Wegen der ähnlichen Namen, wird JavaScript oft mit Java verwechselt. Obwohl beide die lexikalische Struktur einer Programmiersprache haben, handelt es nicht um dieselbe Programmiersprache.

    Anders als C, C# und Java, ist JavaScript eine interpretierte Programmiersprache. Sie braucht also einen "Interpreter". Im Fall von JavaScript, ist der Browser der Interpreter.
</p>

<h3>AKTUELLE VERSION</h3>

<p>
    Der JavaScript-Standard ist ECMAScript. Nach dem Stand von 2012 unterstützen alle modernen Browser ECMAScript 5.1 vollständig. Ältere Browser unterstützen zumindest ECMAScript 3. Nach dem Stand vom Juni 2015 wurde die Spezifikation für ES6/ES2015 verabschiedet. Die ECMAScript 2015 Spezifikation ist verfügbar auf <a target="_blank" href="http://www.ecma-international.org/ecma-262/6.0/index.html">Ecma International</a>.
</p>

<p>
    Eine gute Sammlung für Versionen, Referenzen und Neuigkeiten über JavaScript findet man im <a target="_blank" href="https://developer.mozilla.org/en-US/docs/JavaScript">Mozilla Developer Network</a>.
</p>

<h3>DAS DOM</h3>

<p>
    Das Document Object Model (DOM) ist eine API für HTML- und XML-Dokumente. Es liefert eine strukturelle Representation des Dokuments. Damit ist es möglich, den Inhalt und die visuelle Präsentation des Dokuments mit einer Skriptsprache wie JavaScript zu verändern. Erfahre mehr unter <a target="_blank" href="https://developer.mozilla.org/en-US/docs/DOM">Mozilla Developer Network - DOM</a>.
</p>


================================================
FILE: i18n/de-de/partials/good-parts.html
================================================
<h3>Objektorientiert</h3>

<p>
    JavaScript hat große Möglichkeiten für objektorientierte Programmierung auch wenn es einige Diskussionen bezüglich der Unterschiede von objektorientierten JavaScript zu anderen Programmiersprachen gegeben hat.
</p>

<p class="source">
    Quelle: <a target="_blank" href="https://developer.mozilla.org/de/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">Einführung in objektorientiertes JavaScript</a>
</p>

<h3>Anonyme Funktionen</h3>

<p>
    Anonyme Funktionen sind Funktionen, die dynamisch zur Laufzeit deklariert werden. Sie werden anonyme Funktionen genannt, weil ihnen im Gegensatz zu normalen Funktionen kein Name vergeben wird.
</p>

<p class="source">
    Quelle: <a target="_blank" href="http://helephant.com/2008/08/23/javascript-anonymous-functions/">JavaScript anonymous functions</a>
</p>

<h3>Funktionen als First-Class-Objekte</h3>

<p>
    Funktionen sind in JavaScript First-Class-Objekte. Das bedeutet, dass JavaScript-Funktionen einfach nur ein spezieller Typ von Objekten sind, die wie normale Objekte behandelt werden.
</p>

<p class="source">
    Quelle: <a target="_blank" href="http://helephant.com/2008/08/19/functions-are-first-class-objects-in-javascript/">Functions are first class objects in JavaScript</a>
</p>

<h3>Loose Typing</h3>

<p>
    Viele Frontend-Entwickler haben ihre erste Erfahrung mit einer Skript- und/oder interpretierten Sprache mit JavaScript gemacht. Für jene Entwickler mag das Konzept und die Folgen von Variablen mit "loose typing" eher zweiter Natur sein. Jedoch hat der rasant steigende Bedarf nach modernen Webapplikationen zur Folge, dass viele Backend-Entwickler in clientseitige Technologien eintauchen. Viele von ihnen kommen aus einem Bereich, in dem Sprachen mit "strong typing" wie z.B. C# oder Java verbreitet sind und sind daher nicht vertraut mit der Freiheit und zugleich den möglichen Fallstricken, die das Arbeiten mit "loose typing" mit sich bringen.
</p>

<p class="source">
    Quelle: <a target="_blank" href="http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html">Understanding Loose Typing in JavaScript</a>
</p>

<h3>Scoping und Hoisting</h3>

<p>
    <b>Scoping:</b> In JavaScript sind Funktionen unsere <i>de facto</i> Trennzeichen von Gültigkeitsbereichen (Scopes) für das Deklarieren von Variablen, was wiederum bedeutet, dass die üblichen Blöcke von Schleifen und Bedingungen (wie if, for, while, switch und try) keinen neuen Gültigkeitsbereich (Scope) erzeugen wie in vielen anderen Sprachen. Daher teilen sich diese Blöcke denselben Gültigkeitsbereich wie die Funktion, von der sie umgeben werden. Auf diese Weise kann es gefährlich sein, Variablen innerhalb von Blocks zu definieren, weil es so scheinen mag, als ob die Variable nur zu dem Block gehöre.
</p>

<p>
    <b>Hoisting:</b> Während der Laufzeit werden alle Variablen- und Funktionen-Deklarationen an den Beginn jeder Funktion (ihren Gültigkeitsbereich) gestellt - dieses Verfahren ist als "Hoisting" bekannt. Vor diesem Hintergrund ist es eine gute Praxis, Variablen allesamt in der ersten Zeile zu deklarieren, um falschen Erwartungen mit Variablen vorzubeugen, die später deklariert wurden, aber bereits vorher einen Wert beinhalten. Für viele Entwickler, die aus einer Sprache mit blockweisen Gültigkeitsbereichen kommen, ist dies ein häufiger Fallstrick.
</p>

<p class="source">
    Quelle: <a target="_blank" href="http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html">JavaScript Scoping and Hoisting</a>
</p>

<h3>Bindung von Funktionen (Function binding)</h3>

<p>

    Die Bindung von Funktionen ist sehr wahrscheinlich das kleinste Problem beim Einstieg in JavaScript. Wenn man jedoch eine Lösung für das Problem sucht, wie man den Kontext vom Schlüsselwort this in einer anderen Funktion beibehält, dann wird man wahrscheinlich auf <b>Function.prototype.bind()</b> kommen.
</p>

<p class="source">
    Quelle: <a target="_blank" href="http://coding.smashingmagazine.com/2014/01/23/understanding-javascript-function-prototype-bind/">Understanding JavaScript’s Function.prototype.bind</a>
</p>

<h3>Closure-Funktionen</h3>

<p>
    Closures sind Funktionen, die auf unabhängige (freie) Variablen verweisen. In anderen Worten: Die Funktion, welche innerhalb einer Closure definiert wurde, merkt sich, in welcher Umgebung sie erstellt wurde.
Dies ist ein wichtiges Konzept, welches man verstehen sollte, weil es während der Entwicklung hilfreich sein kann, um bspw. private Methoden zu emulieren. Es kann ebenfalls dabei helfen, häufige Fehler zu vermeiden, wie bspw. Closures in Schleifen zu erstellen.
 </p>

<p class="source">
    Quelle: <a target="_blank" href="https://developer.mozilla.org/de/docs/Web/JavaScript/Closures">Closures (Funktionsabschlüsse)</a>
</p>

<h3>Strikter Modus</h3>

<p>
    ECMAScript 5's strikter Modus (Strict Mode) ist eine Möglichkeit, um eine etwas eingeschränktere Variante von JavaScript zu betreten. Der strikte Modus ist nicht einfach nur ein untergeordneter Modus: er hat absichtlich eine andere Semantik als normaler Code. Bei Browsern, die den strikten Modus nicht unterstützen, wird sich Code im strikten Modus anders verhalten als bei Browsern mit Unterstützung. Daher sollte man sich nicht auf den strikten Modus verlassen, ohne die relevanten Aspekte des Modus auf die Unterstützung der entsprechenden Features zu testen. Es kann auch neben Code für den strikten Modus zusätzlich noch Code für den nicht-strikten Modus existieren, damit Skripte bei Möglichkeit den strikten Modus verwenden können.
 </p>

<p class="source">
    Quelle: <a target="_blank" href="https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Strict_mode">Strict Mode</a>
</p>

<h3>Immediately-Invoked Function Expression (IIFE)</h3>

<p>
   Ein unmittelbar aufgerufener Funktionsausdruck (Immediately-Invoked Function Expression - IIFE) ist ein Muster, welches einen lexikalischen Gültigkeitsbereich mittels einer JavaScript-Funktion erzeugt. Diese Ausdrücke können dazu genutzt werden, das Hoisting von Variablen innerhalb eines Blocks zu verhindern, sich gegen das Zumüllen der globalen Umgebung zu schützen und zeitgleich öffentlichen Zugang zu Methoden zu schaffen, während die Variablen nur innerhalb ihrer Funktion aufgerufen werden können, also privat bleiben.<br/><br/>

   <i>Dieses Muster wurde oft als selbstausführende anonyme Funktion (self-executing anonymous function) bezeichnet, jedoch hat <a target="_blank" href="http://twitter.com/cowboy">@cowboy</a> (Ben Alman) den Begriff IIFE als semantisch passenderen Begriff für das Muster eingeführt</i>.
</p>

<p class="source">
    Quelle: <a target="_blank" href="http://benalman.com/news/2010/11/immediately-invoked-function-expression/">Immediately-Invoked Function Expression (IIFE)</a>
</p>


================================================
FILE: i18n/de-de/partials/licence.html
================================================
               <p style="width: 100%; text-align: center; box-sizing: border-box;">
                    <a rel="license" target="_blank" href="http://creativecommons.org/licenses/by-nc/4.0/">
                        <img alt="Creative Commons License" style="border-width: 0;" src="http://i.creativecommons.org/l/by-nc/4.0/88x31.png" />
                    </a>
                    <br/>
                    <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">JavaScript: Der richtige Weg</span> von <a xmlns:cc="http://creativecommons.org/ns#" href="https://github.com/gnuwilliam" target="_blank" property="cc:attributionName" rel="cc:attributionURL">William Oliveira</a>.<br />Lizenziert unter einer <a target="_blank" rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Namensnennung - Nicht kommerziell 4.0 International Lizenz</a>.<br />Basierend auf der Arbeit an <a xmlns:dct="http://purl.org/dc/terms/" href="http://jstherightway.org" rel="dct:source">http://jstherightway.org</a>.
                </p>


================================================
FILE: i18n/de-de/partials/patterns.html
================================================

                <h3>Beschreibung</h3>

                <p>
                    Während JavaScript einige exklusive Entwurfsmuster besitzt, können viele klassische Entwurfsmuster ebenfalls implementiert werden.
                </p>

                <p>
                    Ein guter Weg, mehr darüber zu erfahren, ist <a target="_blank" href="https://twitter.com/addyosmani">Addy Osmani</a>’s frei erhältliches Buch <a target="_blank" href="http://addyosmani.com/resources/essentialjsdesignpatterns/book/">"Learning JavaScript Design Patterns"</a>, auf dem die meisten der unten aufgelisteten Links basieren.
                </p>

                <h3>Entwurfsmuster</h3>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#factorypatternjavascript'>Factory</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#prototypepatternjavascript'>Prototype</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mixinpatternjavascript'>Mixin</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#singletonpatternjavascript'>Singleton</a></li>
                    </ul>
                </section>

                <p class="source">
                    Creational Design Patterns
                </p>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#wrapperpatternjquery'>Adapter</a></li>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-bridge/'>Bridge</a></li>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-composite/'>Composite</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#decoratorpatternjavascript'>Decorator</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#facadepatternjavascript'>Facade</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailflyweight'>Flyweight</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript'>Module</a></li>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-proxy/'>Proxy</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript'>Revealing Module</a></li>
                    </ul>
                </section>

                <p class="source">
                    Structural Design Patterns
                </p>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-chain-of-responsibility/'>Chain of Responsibility</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#commandpatternjavascript'>Command</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mediatorpatternjavascript'>Mediator</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript'>Observer</a></li>
                    </ul>
                </section>

                <p class="source">
                    Behavioral Design Patterns
                </p>

                <h3>MV*-Patterns</h3>

                <section class="txt">
                    Es gibt einige Implementierungen des traditionellen MVC-Patterns und einige Abwandlungen dessen in JavaScript.
                </section>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvc'>MVC Pattern</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvp'>MVP Pattern</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvvm'>MVVM Pattern</a></li>
                    </ul>
                </section>


================================================
FILE: i18n/de-de/partials/testing-tools.html
================================================
<h3>Beschreibung</h3>

<p>Verschiedene Bibliotheken und Frameworks, um Tests in JavaScript auszuführen.</p>


================================================
FILE: i18n/de-de/partials/welcome.html
================================================
<h1>Hey, du!</h1>

<p>
    Dies ist ein Leitfaden, der Entwicklern beim Einstieg in JavaScript helfen soll und erfahrenen Entwicklern mit Best-Practices helfen soll.
</p>

<p>
    Trotz des Namens steht dieser Leitfaden nicht für "den einzigen Weg", den man mit JavaScript gehen kann.
</p>

<p>
    Wir sammeln lediglich all diese Artikel, Tipps und Tricks von namhaften Entwicklern und fügen sie hier ein. Da sie von ausgezeichneten Leuten stammen, können wir sagen, dass es "der richtige Weg" oder der beste Weg ist.
</p>


================================================
FILE: i18n/en-us/en-us.json
================================================
{
    "meta": {
        "title": "JS: The Right Way",
        "description": "A quick reference to best practices for writing JavaScript -- links to code patterns and tutorials from around the web"
    },
    "direction": "ltr",
    "welcome": "{{@link=partials/welcome.html}}",
    "menu": {
        "title": "Choose your path",
        "links": [{
            "title": "Getting Started",
            "url": "#getting-started"
        }, {
            "title": "JavaScript Code Style",
            "url": "#js-code-style"
        }, {
            "title": "The Good Parts",
            "url": "#the-good-parts"
        }, {
            "title": "Must See",
            "url": "#must-see"
        }, {
            "title": "Patterns",
            "url": "#patterns"
        }, {
            "title": "Testing Tools",
            "url": "#testing-tools"
        }, {
            "title": "Frameworks",
            "url": "#frameworks"
        }, {
            "title": "Game Engines",
            "url": "#game-engines"
        }, {
            "title": "News",
            "url": "#news"
        }, {
            "title": "Reading",
            "url": "#reading"
        }, {
            "title": "Podcasts",
            "url": "#podcasts"
        }, {
            "title": "Screencasts",
            "url": "#screencasts"
        }, {
            "title": "Who to follow",
            "url": "#whotofollow"
        }, {
            "title": "PaaS Providers",
            "url": "#paas"
        }, {
            "title": "Helpers",
            "url": "#helpers"
        }]
    },
    "gettingStarted": {
        "title": "GETTING STARTED",
        "text": "{{@link=partials/getting-started.html}}"
    },
    "codeStyle": {
        "title": "JS CODE STYLE",
        "text": "{{@link=partials/code-style.html}}"
    },
    "goodParts": {
        "title": "THE GOOD PARTS",
        "text": "{{@link=partials/good-parts.html}}"
    },
    "mustSee": {
        "title": "MUST SEE",
        "videos": [{
            "title": "Arindam Paul - JavaScript VM internals, EventLoop, Async and ScopeChains",
            "url": "https://www.youtube.com/embed/QyUFheng6J0"
        }]
    },
    "patterns": {
        "title": "PATTERNS",
        "text": "{{@link=partials/patterns.html}}"
    },
    "testingTools": {
        "title": "TESTING TOOLS",
        "text": "{{@link=partials/testing-tools.html}}",
        "links": [{
            "name": "Mocha",
            "url": "http://mochajs.org",
            "description": "Maintained by <a target=\"_blank\" href=\"https://github.com/visionmedia\">TJ Holowaychuk</a>"
        }, {
            "name": "QUnit",
            "url": "http://qunitjs.com",
            "description": "Maintained by <a target=\"_blank\" href=\"https://github.com/jquery\">jQuery</a>"
        }, {
            "name": "Jasmine",
            "url": "https://github.com/pivotal/jasmine",
            "description": "Maintained by <a target=\"_blank\" href=\"https://github.com/pivotal/jasmine\">Pivotal Labs</a>"
        }, {
            "name": "Karma",
            "url": "http://karma-runner.github.io/",
            "description": "Maintained by the team behind AngularJS. Mostly by <a target=\"_blank\" href=\"https://github.com/vojtajina\">Vojta Jina</a>"
        }, {
            "name": "Intern",
            "url": "http://theintern.io",
            "description": "Maintained by <a target=\"_blank\" href=\"http://www.sitepen.com\">Sitepen</a>"
        }, {
            "name": "Istanbul",
            "url": "http://gotwarlost.github.io/istanbul",
            "description": "A JavaScript code coverage tool written in JavaScript, maintained by <a target=\"_blank\" href=\"https://github.com/gotwarlost\">Krishnan Anantheswaran</a>"
        }, {
            "name": "Sinon.JS",
            "url": "http://sinonjs.org",
            "description": "Standalone test spies, stubs and mocks for JavaScript. No dependencies, works with any unit testing framework. Created by <a target=\"_blank\" href=\"https://github.com/cjohansen/Sinon.JS\">Sinon.JS community</a>"
        }, {
            "name": "DexterJS",
            "url": "https://github.com/leobalter/DexterJS",
            "description": "A test helper to mock functions and the XHR object, maintained by <a target=\"_blank\" href=\"http://leobalter.github.io\">Leo Balter</a>"
        }, {
            "name": "AVA",
            "url": "https://github.com/sindresorhus/ava",
            "description": "Test runner with asynchronous tests, maintained by <a target=\"_blank\" href=\"https://twitter.com/sindresorhus\">Sindre Sorhus</a>"
        }, {
            "name": "Jest",
            "url": "https://github.com/facebook/jest",
            "description": "Painless JavaScript Testing, maintained by <a target=\"_blank\" href=\"https://github.com/facebook\">Facebook</a>"
        }]
    },
    "frameworks": {
        "title": "FRAMEWORKS",
        "cat": [{
            "title": "GENERAL PURPOSE",
            "links": [{
                "name": "jQuery",
                "url": "http://jquery.com",
                "description": "jQuery is a fast, small, and feature-rich JavaScript library. Built by <a target=\"_blank\" href=\"https://twitter.com/jeresig\">John Resig</a>."
            }, {
                "name": "YUI",
                "url": "http://yuilibrary.com",
                "description": "Built by Yahoo!, YUI is a free, open source JavaScript and CSS library for building richly interactive web applications. <a target=\"_blank\" href=\"http://yahooeng.tumblr.com\">New development has stopped since August 29th, 2014</a>."
            }, {
                "name": "ZeptoJS",
                "url": "http://zeptojs.com",
                "description": "Zepto is a minimalist JavaScript library for modern browsers with a largely jQuery-compatible API. If you use jQuery, you already know how to use Zepto."
            }, {
                "name": "Dojo Toolkit",
                "url": "http://dojotoolkit.org",
                "description": "Dojo is a free, open-source JavaScript toolkit for building high performance web applications. Project sponsors include IBM and SitePen."
            }, {
                "name": "Underscore.js",
                "url": "http://underscorejs.org",
                "description": "Underscore.js is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects."
            }]
        }, {
            "title": "MV*",
            "links": [{
                "name": "Backbone.js",
                "url": "http://backbonejs.org",
                "description": "Very popular JavaScript client-side framework, built by <a target=\"_blank\" href='http://twitter.com/jashkenas'>@jashkenas</a>."
            }, {
                "name": "Ember.js",
                "url": "http://emberjs.com",
                "description": "Built by <a target=\"_blank\" href='http://twitter.com/wycats'>@wycats</a>, jQuery and Ruby on Rails core developer."
            }, {
                "name": "Knockout.js",
                "url": "http://knockoutjs.com",
                "description": "Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM)."
            }, {
                "name": "Angular.js",
                "url": "http://angularjs.org",
                "description": "Built by Google, Angular.js is like a polyfill for the future of HTML."
            }, {
                "name": "Angular",
                "url": "https://angular.io",
                "description": "One framework.Mobile &amp; desktop. One way to build applications with Angular and reuse your code and abilities to build apps for any deployment target. For web, mobile web, native mobile and native desktop."
            }, {
                "name": "Cappuccino",
                "url": "http://www.cappuccino-project.org",
                "description": "Cappuccino is an open-source framework that makes it easy to build desktop-caliber applications that run in a web browser."
            }, {
                "name": "JavaScript MVC",
                "url": "http://javascriptmvc.com/",
                "description": "JavaScriptMVC is an open-source framework containing the best ideas in jQuery development."
            }, {
                "name": "Meteor",
                "url": "https://www.meteor.com",
                "description": "Meteor is an open-source platform for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started."
            }, {
                "name": "Spice.js",
                "url": "http://spicejs.github.io/spicejs/",
                "description": "Spice is a super minimal (&lt; 3k) and flexible MVC framework for javascript. Spice was built to be easily added to any existent application and play well with other technologies such as jQuery, pjax, turbolinks, node or whatever else you are using."
            }, {
                "name": "Riot.js",
                "url": "http://www.riotjs.com/",
                "description": "Riot is an incredibly fast, powerful yet tiny client side (MV*) library for building large scale web applications. Despite the small size all the building blocks are there: a template engine, router, event library and a strict MVP pattern to keep things organized."
            }, {
                "name": "CanJS",
                "url": "http://canjs.com",
                "description": "CanJS is a JavaScript framework that makes developing complex applications simple and fast. Easy-to-learn, small, and unassuming of your application structure, but with modern features like custom tags and 2-way binding."
            }]
        }, {
            "title": "Library",
            "links": [{
                "name": "React",
                "url": "http://facebook.github.io/react",
                "description": "Built by Facebook. React is a JavaScript library for creating user interfaces by Facebook and Instagram. Many people choose to think of React as the V in MVC."
            }, {
                "name": "Vue.js",
                "url": "http://www.vuejs.org",
                "description": "Is an MVVM library providing two-way data binding, HTML extended behaviour (through directives) and reactive components. By using native add-ons a developer can also have routing, AJAX, a Flux-like state management, form validation and more. Provides a helpful Chrome extension to inspect components built with Vue."
            }, {
                "name": "Handlebars",
                "url": "http://handlebarsjs.com",
                "description": "Handlebars provides the power necessary to let you build semantic templates effectively with no frustration."
            }, {
                "name": "Dust.js",
                "url": "http://linkedin.github.io/dustjs",
                "description": "Asynchronous templates for the browser and node.js."
            }]
        }, {
            "title": "Animation",
            "links": [{
                "name": "GSAP",
                "url": "http://greensock.com/",
                "description": "GSAP is the fastest full-featured scripted animation tool on the planet. It's even faster than CSS3 animations and transitions in many cases."
            }, {
                "name": "Velocity.js",
                "url": "http://julian.com/research/velocity/",
                "description": "Velocity is an animation engine with the same API as jQuery's $.animate()."
            }, {
                "name": "Bounce.js",
                "url": "http://bouncejs.com/",
                "description": "Bounce.js is a tool and JS library that lets you create beautiful CSS3 powered animations."
            }, {
                "name": "TweenJS",
                "url": "http://www.createjs.com/tweenjs",
                "description": "A simple but powerful JavaScript library for tweening and animating HTML5 and JavaScript properties."
            }, {
                "name": "Move.js",
                "url": "http://visionmedia.github.io/move.js/",
                "description": "Move.js is a small JavaScript library making CSS3 backed animation extremely simple and elegant."
            }, {
                "name": "Snap.svg",
                "url": "http://snapsvg.io/",
                "description": "SVG is an excellent way to create interactive, resolution-independent vector graphics that will look great on any size screen."
            }, {
                "name": "Rekapi",
                "url": "http://rekapi.com/",
                "description": "Rekapi is a library for making canvas and DOM animations with JavaScript, as well as CSS @keyframe animations for modern browsers."
            }, {
                "name": "Favico.js",
                "url": "http://lab.ejci.net/favico.js/",
                "description": "Make use of your favicon with badges, images or videos."
            }, {
                "name": "Textillate.js",
                "url": "http://jschr.github.io/textillate/",
                "description": "Textillate.js combines some awesome libraries to provide a ease-to-use plugin for applying CSS3 animations to any text."
            }, {
                "name": "Motio",
                "url": "http://darsa.in/motio/",
                "description": "Motio is a small JavaScript library for simple but powerful sprite based animations and panning."
            }, {
                "name": "Between.js",
                "url": "https://github.com/sasha240100/between.js",
                "description": "Lightweight JavaScript (ES6) tweening engine"
            }]
        }]
    },
    "gameEngines": {
        "title": "GAME ENGINES",
        "links": [{
            "name": "MelonJS",
            "url": "http://melonJS.org",
            "description": "MelonJS is a free, light-weight HTML5 game engine. The engine integrates the tiled map format making level design easier."
        }, {
            "name": "ImpactJS",
            "url": "http://impactjs.com",
            "description": "ImpactJS is one of the more tested-and-true HTML5 game engines with the initial release all the way back at the end of 2010. It is very well maintained and updated, and has a good-sized community backing it. There exists plenty of documentation - even two books on the subject of creating games with the engine."
        }, {
            "name": "LimeJS",
            "url": "http://limejs.com",
            "description": "LimeJS is a HTML5 game framework for building fast, native-experience games for all modern touchscreens and desktop browsers."
        }, {
            "name": "Crafty",
            "url": "http://craftyjs.com",
            "description": "Crafty is a game engine that dates back to late 2010. Crafty makes it really easy to get started making JavaScript games."
        }, {
            "name": "Cocos2d-HTML5",
            "url": "http://www.cocos2d-x.org/wiki/Cocos2d-html5",
            "description": "Cocos2d-html5 is an open-source web 2D game framework, released under MIT License. It is a HTML5 version of Cocos2d-x project. The focus for Cocos2d-html5 development is around making Cocos2d cross platforms between browsers and native application."
        }, {
            "name": "Phaser",
            "url": "http://phaser.io",
            "description": "Phaser is based heavily on <a target=\"_blank\" href=\"http://www.flixel.org\">Flixel</a>. It is maintained by Richard Davey (<a target=\"_blank\" href=\"http://www.photonstorm.com/\">Photon Storm</a>) who has been very active in the HTML5 community for years."
        }, {
            "name": "Goo",
            "url": "http://www.goocreate.com/learn",
            "description": "Goo is a 3D JavaScript gaming engine entirely built on WebGL/HTML5"
        }, {
            "name": "LycheeJS",
            "url": "http://lycheejs.org",
            "description": "LycheeJS is a JavaScript Game library that offers a complete solution for prototyping and deployment of HTML5 Canvas, WebGL or native OpenGL(ES) based games inside the Web Browser or native environments."
        }, {
            "name": "Quintus",
            "url": "http://html5quintus.com",
            "description": "Quintus is an HTML5 game engine designed to be modular and lightweight, with a concise JavaScript-friendly syntax."
        }, {
            "name": "KiwiJS",
            "url": "http://www.kiwijs.org",
            "description": "Kiwi.js is a fun and friendly Open Source HTML5 Game Engine. Some people call it the WordPress of HTML5 game engines"
        }, {
            "name": "PandaJS",
            "url": "http://www.pandajs.net",
            "description": "Panda.js is a HTML5 game engine for mobile and desktop with Canvas and WebGL rendering."
        }, {
            "name": "Rot.js",
            "url": "https://github.com/ondras/rot.js",
            "description": "Rot.js is a set of JavaScript libraries, designed to help with a roguelike development in browser environment."
        }, {
            "name": "Isogenic",
            "url": "http://www.isogenicengine.com/",
            "description": "Isogenic is an advanced game engine that provides the most advanced networking and realtime multiplayer functionality available in any HTML 5 game engine. The system is based on entity streaming and includes powerful simulation options and client-side entity interpolation from delta updates. "
        }, {
            "name": "WhitestormJS",
            "url": "https://github.com/WhitestormJS/whitestorm.js",
            "description": "Super-fast 3D framework for Web Applications & Games. Based on Three.js. Includes integrated physics support and ReactJS integration."
        }]
    },
    "news": {
        "title": "News",
        "cat": [{
            "title": "Websites",
            "links": [{
                "name": "JavaScript.com",
                "url": "http://javascript.com",
                "description": ""
            }, {
                "name": "Echo JS",
                "url": "http://www.echojs.com",
                "description": ""
            }, {
                "name": "The Treehouse Show",
                "url": "http://teamtreehouse.com/library/the-treehouse-show",
                "description": ""
            }, {
                "name": "/r/javascript on Reddit",
                "url": "http://www.reddit.com/r/javascript",
                "description": ""
            }, {
                "name": "Open Web Platform Daily Digest",
                "url": "http://webplatformdaily.org",
                "description": ""
            }, {
                "name": "Badass JavaScript",
                "url": "http://badassjs.com",
                "description": ""
            }, {
                "name": "AngularJS Daily",
                "url": "http://paper.li/gwinnem/1390553142",
                "description": ""
            }]
        }, {
            "title": "Newsletter",
            "links": [{
                "name": "JavaScript Weekly",
                "url": "http://javascriptweekly.com",
                "description": ""
            }, {
                "name": "A Drip of JavaScript",
                "url": "http://designpepper.com/a-drip-of-javascript",
                "description": ""
            }, {
                "name": "Ember Weekly",
                "url": "http://emberweekly.com",
                "description": ""
            }, {
                "name": "Node Weekly",
                "url": "http://nodeweekly.com",
                "description": ""
            }, {
                "name": "Meteor Weekly",
                "url": "http://meteorhacks.com/meteor-weekly",
                "description": ""
            }, {
                "name": "Grunt Weekly",
                "url": "https://twitter.com/gruntweekly",
                "description": ""
            }, {
                "name": "Gamedev.js Weekly",
                "url": "http://weekly.gamedevjs.com",
                "description": ""
            }, {
                "name": "HTML5 Weekly",
                "url": "http://html5weekly.com",
                "description": ""
            }, {
                "name": "UDGWebDev Weekly",
                "url": "http://udgwebdev.com/newsletter",
                "description": ""
            }, {
                "name": "The React Newsletter",
                "url": "http://theproblemsolver.nl/TheReactNewsletter/Subscribe",
                "description": ""
            }]
        }]
    },
    "reading": {
        "title": "Reading",
        "cat": [{
            "title": "Articles",
            "credit": true,
            "box": false,
            "links": [{
                "name": "Understanding JavaScript OOP",
                "url": "http://robotlolita.github.io/2011/10/09/understanding-javascript-oop.html",
                "description": "by <a target=\"_blank\" href=\"https://github.com/robotlolita\">Quildreen Motta</a>"
            }, {
                "name": "Understanding “Prototypes” in JavaScript",
                "url": "http://yehudakatz.com/2011/08/12/understanding-prototypes-in-JavaScript",
                "description": "by <a target=\"_blank\" href=\"https://github.com/wycats\">Yehuda Katz</a>"
            }, {
                "name": "Prototypes and Inheritance in JavaScript",
                "url": "http://msdn.microsoft.com/en-us/magazine/ff852808.aspx",
                "description": "by <a target=\"_blank\" href=\"http://odetocode.com/blogs/scott\">Scott Allen</a>"
            }, {
                "name": "Partial Application in JavaScript",
                "url": "http://benalman.com/news/2012/09/partial-application-in-javascript",
                "description": "by <a target=\"_blank\" href=\"http://github.com/cowboy\">Ben Alman</a>"
            }, {
                "name": "Getting Over jQuery",
                "url": "http://blog.ponyfoo.com/2013/07/09/getting-over-jquery",
                "description": "by <a target=\"_blank\" href=\"http://github.com/bevacqua\">Nico Bevacqua</a>"
            }, {
                "name": "A Dive Into Plain JavaScript",
                "url": "http://blog.adtile.me/2014/01/16/a-dive-into-plain-javascript",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/viljamis\">Viljami S.</a>"
            }, {
                "name": "A Deeper Look at Objects in JavaScript",
                "url": "http://www.kirupa.com/html5/a_deeper_look_at_objects_in_javascript.htm",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
            }, {
                "name": "Introduction to Easing in JavaScript",
                "url": "http://www.kirupa.com/html5/introduction_to_easing_in_javascript.htm",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
            }, {
                "name": "How to Learn JavaScript Properly",
                "url": "http://javascriptissexy.com/how-to-learn-javascript-properly",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/jsissexy\">JavaScript Is Sexy</a>"
            }, {
                "name": "How to Start with JavaScript",
                "url": "http://jugoncalv.es/blog/javascript/how-to-start-with-javascript",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/junspector\">Ju Gonçalves</a>"
            }]
        }, {
            "title": "Books",
            "credit": true,
            "box": false,
            "links": [{
                "name": "Eloquent JavaScript",
                "url": "http://eloquentjavascript.net",
                "description": "by <a target=\"_blank\" href=\"http://marijnhaverbeke.nl\">Marijn Haverbeke</a>"
            }, {
                "name": "JavaScript: The Definitive Guide",
                "url": "http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/David-Flanagan/e/B000APEZR4/ref=ntt_athr_dp_pel_pop_1\">David Flanagan</a>"
            }, {
                "name": "JavaScript: The Good Parts",
                "url": "http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Douglas-Crockford/e/B002N3VYB6/ref=ntt_athr_dp_pel_1\">Douglas Crockford</a>"
            }, {
                "name": "JavaScript Patterns",
                "url": "http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
            }, {
                "name": "JavaScript Testing Recipes",
                "url": "http://jstesting.jcoglan.com",
                "description": "by <a target=\"_blank\" href=\"http://jcoglan.com\">James Coglan</a>"
            }, {
                "name": "Professional JavaScript for Web Developers",
                "url": "http://www.amazon.com/dp/1118026691/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=253J6SW0KPB7J&coliid=IC7UM9W2VVSHL",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
            }, {
                "name": "High Performance JavaScript",
                "url": "http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
            }, {
                "name": "Human JavaScript",
                "url": "http://humanjavascript.com",
                "description": "by <a target=\"_blank\" href=\"http://joreteg.com/\">Henrik Joreteg</a>"
            }, {
                "name": "Object Oriented JavaScript",
                "url": "http://www.amazon.com/Object-Oriented-JavaScript-high-quality-applications-libraries/dp/1847194141",
                "description": "by <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
            }, {
                "name": "Pro JavaScript Design Patterns",
                "url": "http://www.amazon.com/Pro-JavaScript-Design-Patterns-Object-Oriented/dp/159059908X",
                "description": "by <a target=\"_blank\" href=\"https://twitter.com/ded\">Dustin Diaz</a>"
            }, {
                "name": "Learning JavaScript Design Patterns",
                "url": "https://addyosmani.com/resources/essentialjsdesignpatterns/book/",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/addyosmani\">Addy Osmani</a>"
            }, {
                "name": "Secrets of the JavaScript Ninja",
                "url": "http://jsninja.com",
                "description": "by <a target=\"_blank\" href=\"http://ejohn.org\">John Resig</a>"
            }, {
                "name": "JavaScript Application Design",
                "url": "http://bevacqua.io/bf",
                "description": "by <a target=\"_blank\" href=\"http://blog.ponyfoo.com\">Nicolas Bevacqua</a>"
            }, {
                "name": "Speaking JavaScript",
                "url": "http://speakingjs.com",
                "description": "by <a target=\"_blank\" href=\"http://www.rauschma.de\">Axel Rauschmayer</a>"
            }, {
                "name": "Test-Driven JavaScript Development",
                "url": "http://tddjs.com",
                "description": "by <a target=\"_blank\" href=\"http://cjohansen.no\">Christian Johansen</a>"
            }, {
                "name": "You Don't Know JS",
                "url": "https://github.com/getify/You-Dont-Know-JS",
                "description": "by <a target=\"_blank\" href=\"https://github.com/getify\">Kyle Simpson</a>"
            }, {
                "name": "You Might Not Need jQuery",
                "url": "http://youmightnotneedjquery.com",
                "description": "by <a target=\"_blank\" href=\"http://twitter.com/burgessdryan\">Ryan Burgess</a>"
            }, {
                "name": "JavaScript Garden",
                "url": "http://bonsaiden.github.io/JavaScript-Garden/",
                "description": "by <a target=\"_blank\" href=\"https://blog.grandcentrix.net\">Ivo Wetzel</a>"
            }, {
                "name": "Effective JavaScript",
                "url": "http://effectivejs.com",
                "description": "by <a target=\"_blank\" href=\"http://calculist.org\">David Herman</a>"
            }, {
                "name": "JavaScript Allongé",
                "url": "https://leanpub.com/javascriptallongesix",
                "description": "by <a target=\"_blank\" href=\"http://raganwald.com\">Reginald Braithwaite</a>"
            }, {
                "name": "Exploring ES6",
                "url": "http://exploringjs.com/es6/",
                "description": "by <a target=\"_blank\" href=\"http://www.rauschma.de\">Axel Rauschmayer</a>"
            }, {
                "name": "JSBooks",
                "url": "http://jsbooks.revolunet.com",
                "description": "by <a target=\"_blank\" href=\"http://devfreebooks.org\">DevFreeBooks</a>"
            }]
        }, {
            "title": "Free E-Books",
            "credit": false,
            "box": true,
            "links": [{
                "name": "JSBooks",
                "url": "http://jsbooks.revolunet.com",
                "description": ""
            }, {
                "name": "DevFreeBooks",
                "url": "http://devfreebooks.org",
                "description": ""
            }]
        }, {
            "title": "Portals",
            "credit": false,
            "box": true,
            "links": [{
                "name": "JavaScript.com",
                "url": "https://www.javascript.com",
                "description": ""
            }, {
                "name": "HTML5 Rocks",
                "url": "http://www.html5rocks.com",
                "description": ""
            }, {
                "name": "W3Fools",
                "url": "http://www.w3fools.com",
                "description": ""
            }, {
                "name": "Mozilla Developer Network",
                "url": "http://developer.mozilla.org/docs/JavaScript",
                "description": ""
            }, {
                "name": "Web Platform",
                "url": "http://docs.webplatform.org/wiki/javascript",
                "description": ""
            }, {
                "name": "Smashing Magazine",
                "url": "http://coding.smashingmagazine.com/tag/javascript",
                "description": ""
            }, {
                "name": "Node School",
                "url": "http://nodeschool.io",
                "description": ""
            }, {
                "name": "How to Node",
                "url": "http://howtonode.org",
                "description": ""
            }, {
                "name": "Felix’s Node.js Beginners Guide",
                "url": "http://nodeguide.com/beginner.html",
                "description": ""
            }]
        }]
    },
    "podcasts": {
        "title": "Podcasts",
        "links": [{
            "name": "JavaScript Jabber",
            "url": "https://devchat.tv/js-jabber/",
            "description": ""
        }, {
            "name": "Node Up",
            "url": "http://nodeup.com",
            "description": ""
        }, {
            "name": "5 Minutes of JavaScript",
            "url": "https://fivejs.codeschool.com",
            "description": ""
        }, {
            "name": "The Meteor Podcast",
            "url": "http://www.meteorpodcast.com",
            "description": ""
        }, {
            "name": "JSConf",
            "url": "https://www.youtube.com/user/jsconfeu",
            "description": ""
        }, {
            "name": "JavaScript Air",
            "url": "http://javascriptair.com/",
            "description": ""
        }]
    },
    "screencasts": {
        "title": "Screencasts",
        "links": [{
            "name": "iLoveCoding",
            "img": "ilovecoding.svg",
            "url": "https://iLoveCoding.org",
            "description": "Full-Stack JavaScript video training."
        },{
            "name": "Egghead",
            "img": "egghead.svg",
            "url": "https://egghead.io",
            "description": ""
        }, {
            "name": "DevFreeCasts",
            "img": "devfreecasts.png",
            "url": "http://devfreecasts.org",
            "description": ""
        }, {
            "name": "Tagtree",
            "img": "tagtree.png",
            "url": "http://tagtree.io/",
            "description": ""
        }, {
            "name": "frontndmasters.com",
            "img": "frontendmasters.svg",
            "url": "http://frontendmasters.com",
            "description": ""
        }]
    },
    "whoToFollow": {
        "title": "Who To Follow"
    },
    "paasProviders": {
        "title": "PaaS Provider",
        "links": [{
            "name": "Heroku",
            "url": "http://heroku.com",
            "description": ""
        }, {
            "name": "Modulus",
            "url": "https://modulus.io",
            "description": ""
        }, {
            "name": "Nodejitsu",
            "url": "http://nodejitsu.com",
            "description": ""
        }, {
            "name": "OpenShift",
            "url": "https://www.openshift.com",
            "description": ""
        }, {
            "name": "Getup",
            "url": "http://getupcloud.com/en/",
            "description": ""
        }, {
            "name": "Windows Azure",
            "url": "http://www.windowsazure.com/en-us/develop/nodejs",
            "description": ""
        }]
    },
    "helpers": {
        "title": "Helpers",
        "links": [{
            "name": "npm",
            "img": "npm.png",
            "url": "https://npmjs.org",
            "description": ""
        }, {
            "name": "bower",
            "img": "bower-logo.png",
            "url": "http://bower.io",
            "description": ""
        }, {
            "name": "yeoman",
            "img": "yeoman-logo.png",
            "url": "http://yeoman.io",
            "description": ""
        }, {
            "name": "grunt",
            "img": "grunt-logo.png",
            "url": "http://gruntjs.com",
            "description": ""
        }, {
            "name": "gulp",
            "img": "gulp.png",
            "url": "http://gulpjs.com",
            "description": ""
        }, {
            "name": "brunch",
            "img": "brunch-logo.png",
            "url": "http://brunch.io",
            "description": ""
        }, {
            "name": "Browser compilation library",
            "img": "broccoli-logo.png",
            "url": "https://github.com/broccolijs/broccoli",
            "description": ""
        }, {
            "name": "Webpack",
            "img": "webpack-logo.png",
            "url": "https://webpack.github.io/",
            "description": ""
        }, {
            "name": "Rollup",
            "img": "rollup-logo.png",
            "url": "http://rollupjs.org/",
            "description": ""
        }, {
            "name": "Browserify",
            "img": "browserify-logo.png",
            "url": "http://browserify.org/",
            "description": ""
        }, {
            "name": "todo mvc",
            "img": "todomvc-logo.png",
            "url": "http://todomvc.com",
            "description": ""
        }]
    },
    "footer": {
        "credit": "Created and maintained by",
        "contributors": "Contributors",
        "contribDesc": "This project wouldn't exist without these amazing contributors. Thank you guys for making this real!",
        "licence": "{{@link=partials/licence.html}}"
    },
    "languages": [{
        "url": "pt-br",
        "name": "Português"
    }, {
        "url": "ko-kr",
        "name": "한국어"
    }, {
        "url": "es-es",
        "name": "Español"
    }, {
        "url": "de-de",
        "name": "German"
    }, {
        "url": "en-us",
        "name": "English"
    }, {
        "url": "zh-tw",
        "name": "繁體中文"
    }, {
        "url": "zh-cn",
        "name": "简体中文"
    }, {
        "url": "fa-ir",
        "name": "فارسی"
    }, {
        "url": "ru-ru",
        "name": "Русский"
    }]
}


================================================
FILE: i18n/en-us/partials/code-style.html
================================================
<h3>Conventions</h3>

<p>
    As every language, JavaScript has many code style guides. Maybe the most used and recommended is the <a target="_blank" href="https://google.github.io/styleguide/javascriptguide.xml">Google Code Style Guide for JavaScript</a>, but we recommend you read <a target="_blank" href="https://github.com/rwldrn/idiomatic.js/">Idiomatic.js</a>.
</p>

<h3>Linting</h3>

<p>
    Nowadays the best tool for linting your JavaScript code is <a target="_blank" href="http://www.jshint.com/">JSHint</a>. We recommend that whenever possible you verify your code style and patterns with a Lint tool.
</p>


================================================
FILE: i18n/en-us/partials/getting-started.html
================================================
<h3>ABOUT</h3>

<p>
    Created by Netscape in 1995 as an extension of HTML for Netscape Navigator 2.0, JavaScript had as its main function the manipulation of HTML documents and form validation.

    Before winning this name so famous nowadays, JavaScript was called Mocha. When it first shipped in beta releases, it was officially called LiveScript and finally, when it was released by Sun Microsystems, was baptized with the name by which it is known today.

    Because of the similar names, people confuse JavaScript with Java. Although both have the lexical structure of programming, they are not the same language.

    Different from C, C# and Java, JavaScript is an interpreted language. It means that it needs an "interpreter". In case of JavaScript, the interpreter is the browser.
</p>

<h3>CURRENT VERSION</h3>

<p>
    The JavaScript standard is ECMAScript. As of 2012, all modern browsers fully support ECMAScript 5.1. Older browsers support at least ECMAScript 3. As of June 2015 the spec for ES6/ES2015 has been approved. Following the new annual release cycle, ES7/ES2016 has been adopted in June 2016. See the ECMAScript 2016 Language Specification at <a target="_blank" href="http://www.ecma-international.org/ecma-262/7.0/index.html">Ecma International</a>.
</p>

<p>
    A good reference to versions, references and news about JavaScript can be found at the <a target="_blank" href="https://developer.mozilla.org/en-US/docs/JavaScript">Mozilla Developer Network</a>.
</p>

<h3>THE DOM</h3>

<p>
    The Document Object Model (DOM) is an API for HTML and XML documents. It provides a structural representation of the document, enabling you to modify its content and visual presentation by using a scripting language such as JavaScript. See more at <a target="_blank" href="https://developer.mozilla.org/en-US/docs/DOM">Mozilla Developer Network - DOM</a>.
</p>


================================================
FILE: i18n/en-us/partials/good-parts.html
================================================
<h3>Object Oriented</h3>

<p>
    JavaScript has strong object-oriented programming capabilities, even though some debates have taken place due to the differences in object-oriented JavaScript compared to other languages.
</p>

<p class="source">
    Source: <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript">Introduction to Object-Oriented JavaScript</a>
</p>

<h3>Anonymous Functions</h3>

<p>
    Anonymous functions are functions that are dynamically declared at runtime. They’re called anonymous functions because they aren’t given a name in the same way as normal functions.
</p>

<p class="source">
    Source: <a target="_blank" href="http://helephant.com/2008/08/23/javascript-anonymous-functions/">JavaScript anonymous functions</a>
</p>

<h3>Functions as First-class Objects</h3>

<p>
    Functions in JavaScript are first class objects. This means that JavaScript functions are just a special type of object that can do all the things that regular objects can do.
</p>

<p class="source">
    Source: <a target="_blank" href="http://helephant.com/2008/08/19/functions-are-first-class-objects-in-javascript/">Functions are first class objects in JavaScript</a>
</p>

<h3>Loose Typing</h3>

<p>
    For many front-end developers, JavaScript was their first taste of a scripting and/or interpretive language. To these developers, the concept and implications of loosely typed variables may be second nature. However, the explosive growth in demand for modern web applications has resulted in a growing number of back-end developers that have had to dip their feet into the pool of client-side technologies. Many of these developers are coming from a background of strongly typed languages, such as C# or Java, and are unfamiliar with both the freedom and the potential pitfalls involved in working with loosely typed variables.
</p>

<p class="source">
    Source: <a target="_blank" href="http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html">Understanding Loose Typing in JavaScript</a>
</p>

<h3>Scoping and Hoisting</h3>

<p>
    <b>Scoping:</b> In JavaScript, functions are our <i>de facto</i> scope delimiters for declaring vars, which means that usual blocks from loops and conditionals (such as if, for, while, switch and try) DON'T delimit scope, unlike most other languages. Therefore, those blocks will share the same scope as the function which contains them. This way, it might be dangerous to declare vars inside blocks as it would seem the var belongs to that block only.
</p>

<p>
    <b>Hoisting:</b> On runtime, all var and function declarations are moved to the beginning of each function (its scope) - this is known as Hoisting. Having said so, it is a good practice to declare all the vars altogether on the first line, in order to avoid false expectations with a var that got declared late but happened to hold a value before - this is a common problem for programmers coming from languages with block scope.
</p>

<p class="source">
    Source: <a target="_blank" href="http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html">JavaScript Scoping and Hoisting</a>
</p>

<h3>Function Binding</h3>

<p>
    Function binding is most probably the least of your concerns when beginning with JavaScript, but when you realize that you need a solution to the problem of how to keep the context of this within another function, then you might realize that what you actually need is <b>Function.prototype.bind()</b>.
</p>

<p class="source">
    Source: <a target="_blank" href="http://coding.smashingmagazine.com/2014/01/23/understanding-javascript-function-prototype-bind/">Understanding JavaScript’s Function.prototype.bind</a>
</p>

<h3>Closure Function</h3>

<p>
    Closures are functions that refer to independent (free) variables. In other words, the function defined in the closure 'remembers' the environment in which it was created in.
It is an important concept to understand as it can be useful during development, like emulating private methods. It can also help to learn how to avoid common mistakes, like creating closures in loops.
 </p>

<p class="source">
    Source: <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures/">MDN - Closures</a>
</p>

<h3>Strict mode</h3>

<p>
    ECMAScript 5's strict mode is a way to opt in to a restricted variant of JavaScript. Strict mode isn't just a subset: it intentionally has different semantics from normal code. Browsers not supporting strict mode will run strict mode code with different behavior from browsers that do, so don't rely on strict mode without feature-testing for support for the relevant aspects of strict mode. Strict mode code and non-strict mode code can coexist, so scripts can opt into strict mode incrementally.
 </p>

<p class="source">
    Source: <a target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode/">MDN - Strict mode</a>
</p>

<h3>Immediately-Invoked Function Expression (IIFE)</h3>

<p>
   An immediately-invoked function expression is a pattern which produces a lexical scope using JavaScript's function scoping. Immediately-invoked function expressions can be used to avoid variable hoisting from within blocks, protect against polluting the global environment and simultaneously allow public access to methods while retaining privacy for variables defined within the function.<br/><br/>
   <i>This pattern has been referred to as a self-executing anonymous function, but <a target="_blank" href="http://twitter.com/cowboy">@cowboy</a> (Ben Alman) introduced the term IIFE as a more semantically accurate term for the pattern</i>.
</p>

<p class="source">
    Source: <a target="_blank" href="http://benalman.com/news/2010/11/immediately-invoked-function-expression/">Immediately-Invoked Function Expression (IIFE)</a>
</p>


================================================
FILE: i18n/en-us/partials/licence.html
================================================
               <p style="width: 100%; text-align: center; box-sizing: border-box;">
                    <a rel="license" target="_blank" href="http://creativecommons.org/licenses/by-nc/4.0/">
                        <img alt="Creative Commons License" style="border-width: 0;" src="http://i.creativecommons.org/l/by-nc/4.0/88x31.png" />
                    </a>
                    <br/>
                    <span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">JavaScript: The Right Way</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://github.com/gnuwilliam" target="_blank" property="cc:attributionName" rel="cc:attributionURL">William Oliveira</a>.<br />Licensed under a <a target="_blank" rel="license" href="http://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-NonCommercial 4.0 International License</a>.<br />Based on work at <a xmlns:dct="http://purl.org/dc/terms/" href="http://jstherightway.org" rel="dct:source">http://jstherightway.org</a>.
                </p>


================================================
FILE: i18n/en-us/partials/patterns.html
================================================

                <h3>Description</h3>

                <p>
                    While JavaScript contains design patterns that are exclusive to the language, many classical design patterns can also be implemented.
                </p>

                <p>
                    A good way to learn about these is <a target="_blank" href="https://twitter.com/addyosmani">Addy Osmani</a>’s open source book <a target="_blank" href="http://addyosmani.com/resources/essentialjsdesignpatterns/book/">Learning JavaScript Design Patterns</a>, and the links below are (in the majority) based on it.
                </p>

                <h3>Design Patterns</h3>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#factorypatternjavascript'>Factory</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#prototypepatternjavascript'>Prototype</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mixinpatternjavascript'>Mixin</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#singletonpatternjavascript'>Singleton</a></li>
                    </ul>
                </section>

                <p class="source">
                    Creational Design Patterns
                </p>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#wrapperpatternjquery'>Adapter</a></li>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-bridge/'>Bridge</a></li>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-composite/'>Composite</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#decoratorpatternjavascript'>Decorator</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#facadepatternjavascript'>Facade</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailflyweight'>Flyweight</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript'>Module</a></li>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-proxy/'>Proxy</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript'>Revealing Module</a></li>
                    </ul>
                </section>

                <p class="source">
                    Structural Design Patterns
                </p>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://www.joezimjs.com/javascript/javascript-design-patterns-chain-of-responsibility/'>Chain of Responsibility</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#commandpatternjavascript'>Command</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mediatorpatternjavascript'>Mediator</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#observerpatternjavascript'>Observer</a></li>
                    </ul>
                </section>

                <p class="source">
                    Behavioral Design Patterns
                </p>

                <h3>MV* Patterns</h3>

                <section class="txt">
                    There are some implementations of the traditional MVC Pattern and its variations in JavaScript.
                </section>

                <section class="txt">
                    <ul>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvc'>MVC Pattern</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvp'>MVP Pattern</a></li>
                        <li><a target="_blank" href='http://addyosmani.com/resources/essentialjsdesignpatterns/book/#detailmvvm'>MVVM Pattern</a></li>
                    </ul>
                </section>


================================================
FILE: i18n/en-us/partials/testing-tools.html
================================================
<h3>Description</h3>

<p>Various libraries and frameworks to do tests in JavaScript.</p>


================================================
FILE: i18n/en-us/partials/welcome.html
================================================
<h1>Hey, you!</h1>

<p>
    This is a guide intended to introduce new developers to JavaScript and help experienced developers learn more about its best practices.
</p>

<p>
    Despite the name, this guide doesn't necessarily mean "the only way" to do JavaScript.
</p>

<p>
    We just gather all the articles, tips, and tricks from top developers and put it here. Since it comes from exceptional folks, we could say that it is "the right way", or the best way to do so.
</p>


================================================
FILE: i18n/es-es/es-es.json
================================================
{
  "meta": {
      "title":"JS: La forma correcta",
      "description":"Una referencia a las mejores prácticas para escribir código JavaScript -- enlaces de patrones de código y tutoriales alrededor de la web"
  },
  "direction": "ltr",
  "welcome": "{{@link=partials/welcome.html}}",
  "menu": {
    "title": "Elije tu camino",
    "links": [
      {
        "title":"Primeros Pasos",
        "url":"#getting-started"
      },
      {
        "title":"Estilo de Código de JavaScript",
        "url":"#js-code-style"
      },
      {
        "title":"Las Buenas Partes",
        "url":"#the-good-parts"
      },
      {
        "title": "Must See",
        "url": "#must-see"
      },
      {
        "title":"Patrones",
        "url":"#patterns"
      },
      {
        "title":"Herramientas de Pruebas",
        "url":"#testing-tools"
      },
      {
        "title":"Frameworks",
        "url":"#frameworks"
      },
      {
        "title":"Motores de Juego",
        "url":"#game-engines"
      },
      {
        "title":"Noticias",
        "url":"#news"
      },
      {
        "title":"Lecturas",
        "url":"#reading"
      },
      {
        "title":"Podcasts",
        "url":"#podcasts"
      },
      {
        "title":"Videotutoriales",
        "url":"#screencasts"
      },
      {
        "title":"A quien seguir?",
        "url":"#whotofollow"
      },
      {
        "title":"Proveedores PaaS",
        "url":"#paas"
      },
      {
        "title":"Ayudantes",
        "url":"#helpers"
      }
    ]
  },
  "gettingStarted": {
    "title":"PRIMEROS PASOS",
    "text":"{{@link=partials/getting-started.html}}"
  },
  "codeStyle": {
    "title":"ESTILO DE CODIGO DE JS",
    "text":"{{@link=partials/code-style.html}}"
  },
  "goodParts":{
    "title":"LAS BUENAS PARTES",
    "text":"{{@link=partials/good-parts.html}}"
  },
  "patterns":{
    "title":"PATRONES",
    "text":"{{@link=partials/patterns.html}}"
  },
  "testingTools":{
    "title":"HERRAMIENTAS DE PRUEBAS",
    "text":"{{@link=partials/testing-tools.html}}",
    "links":[
      {
        "name":"Mocha",
        "url":"http://mochajs.org",
        "description":"Mantenido por <a target=\"_blank\" href=\"https://github.com/visionmedia\">TJ Holowaychuk</a>."
      },
      {
        "name":"QUnit",
        "url":"http://qunitjs.com",
        "description":"Mantenido por <a target=\"_blank\" href=\"https://github.com/jquery\">jQuery</a>."
      },
      {
        "name":"Jasmine",
        "url":"https://github.com/pivotal/jasmine",
        "description":"Mantenido por <a target=\"_blank\" href=\"https://github.com/pivotal/jasmine\">Pivotal Labs</a>."
      },
      {
        "name":"Karma",
        "url":"http://karma-runner.github.io/",
        "description":"Mantenido por el equipo detrás de  AngularJS. Mayormente por <a target=\"_blank\" href=\"https://github.com/vojtajina\">Vojta Jina</a>."
      },
      {
        "name":"Intern",
        "url":"http://theintern.io",
        "description":"Mantenido por <a target=\"_blank\" href=\"http://www.sitepen.com\">Sitepen</a>."
      },
      {
        "name":"Istanbul",
        "url":"http://gotwarlost.github.io/istanbul",
        "description":"Una herramienta de cobertura de código JavaScript escrita en JavaScript, mantenida por <a target=\"_blank\" href=\"https://github.com/gotwarlost\">Krishnan Anantheswaran</a>."
      },
      {
        "name":"Sinon.JS",
        "url":"http://sinonjs.org",
        "description":"Espias de pruebas autónomos, stubs y mocks para JavaScript. Sin ependencias, trabaja con cualquier framework de pruebas unitarias. Creado por <a target=\"_blank\" href=\"https://github.com/cjohansen/Sinon.JS\">Sinon.JS community</a>."
      },
      {
        "name":"DexterJS",
        "url":"https://github.com/leobalter/DexterJS",
        "description":"Un ayudante para simular funciones y objetos XHR, mantenido por <a target=\"_blank\" href=\"http://leobalter.github.io\">Leo Balter</a>."
      }
    ]
  },
  "frameworks":{
    "title":"FRAMEWORKS",
    "cat":[
      {
        "title":"PROPOSITO GENERAL",
        "links":[
          {
            "name":"jQuery",
            "url":"http://jquery.com",
            "description":"jQuery es una libreria hecha en Javascript rápida, pequeña, y abundante en características. Construida por <a target=\"_blank\" href=\"https://twitter.com/jeresig\">John Resig</a>."
          },
          {
            "name":"YUI",
            "url":"http://yuilibrary.com",
            "description":"Creado por Yahoo!, YUI es una libreria Javascript y CSS de código abierto para construir aplicaciones web altamente interactivas. <a target=\"_blank\" href=\"http://yahooeng.tumblr.com\">Apartir del 29 de Agosto del 2014 se detuvo el desarrollo del framework</a>."
          },
          {
            "name":"ZeptoJS",
            "url":"http://zeptojs.com",
            "description":"Zepto es una libreria JavaScript minimalista para navegadores modernos con una API en gran parte compatible con jQuery. Si usas jQuery, estas listo para conocer como se usa Zepto."
          },
          {
            "name":"Dojo Toolkit",
            "url":"http://dojotoolkit.org",
            "description":"Dojo dispone de una serie de herramientas Javascript gratuitas, de código abierto para construir aplicaciones web de alto rendimento. IBM y SitePen son patrocinadores del proyecto."
          },
          {
            "name":"Underscore.js",
            "url":"http://underscorejs.org",
            "description":"Underscore.js es una libreria JavaScript que nos proporciona una serie de utilidades de la programación funcional sin necesidad de extender de alguno de los objetos preconstruidos."
          }
        ]
      },
      {
        "title":"MV*",
        "links":[
          {
            "name":"Backbone.js",
            "url":"http://backbonejs.org",
            "description":"Creado por <a target=\"_blank\" href='http://twitter.com/wycats'>@wycats</a>, jQuery y personas del equipo de desarrollo de Ruby on Rails."
          },
          {
            "name":"Ember.js",
            "url":"http://emberjs.com/",
            "description":"Framework javascript del lado del cliente muy popular, Construido por <a target=\"_blank\" href='http://twitter.com/jashkenas'>@jashkenas</a>."
          },
          {
            "name":"Knockout.js",
            "url":"http://knockoutjs.com",
            "description":"Simplifica la creación de UI dinámicas en JavaScript aplicando el patrón Model-View-View Model (MVVM)."
          },
          {
            "name":"Angular.js",
            "url":"http://angularjs.org",
            "description":"Construido por Google, Angular.js es como un polyfill para el HTML del futuro."
          },
          {
            "name":"Angular",
            "url":"https://angular.io",
            "description":"Un framework.Mobile y escritorio. Una forma de crear aplicaciones con Angular y usar su código y habilidades para crear aplicaciones para cada meta de implementación. Para web, web móvil, teléfono móvil nativo y escritorio nativo."
          },
          {
            "name":"Cappuccino",
            "url":"http://www.cappuccino-project.org",
            "description":"Cappuccino es un framework de código abierto que hace fácil la contrucción de aplicaciones del calibre de aplicaciones desktop pero que se ejecutaran en un navegador web."
          },
          {
            "name":"JavaScript MVC",
            "url":"http://javascriptmvc.com/",
            "description":"JavaScriptMVC es un framework de código abierto que contiene las mejores ideas del desarrollo con jQuery."
          },
          {
            "name":"Meteor",
            "url":"https://www.meteor.com",
            "description":"Meteor es una plataforma de código abierto para construir aplicaciones web de alta calidad en corto tiempo, ideal para programadores avanzados, y también para programadores que hasta ahora estan comenzando."
          },
          {
            "name":"Spice.js",
            "url":"http://spicejs.github.io/spicejs/",
            "description":"Spice es un framework MVC flexible y extremadamente leve(&lt; 3k) para javascript. Spice fue construido para ser agregado fácilmente a cualquier aplicación existente y para coexistir con otras tecnologías tales como jQuery, pjax, turbolinks, node o cualquier otra libreria existente."
          },
          {
            "name":"Riot.js",
            "url":"http://www.riotjs.com/",
            "description":"Riot es una libreria (MV*) incriblemente rápida, poderosa y aún así ligera del lado del cliente para contruir aplicacione web de gran escala. A pesar de ser tan ligera cuenta con todas las funcionalidades necesarias: un motor de plantillas, enrutador, libreria para el control de eventos y un patrón MVP estricto para mantener todo organizado."
          },
          {
            "name":"CanJS",
            "url":"http://canjs.com",
            "description":"CanJS es un framework Javascript que hace el desarrollo de aplicaciones complejas sencillo y rápido. De fácil aprendizaje, pequeña, y sin forzar a utilizar ninguna estructura de aplicación, cuenta con características modernas como custom tags (etiquetas html customizadas) y 2-way binding (Vinculación de doble vía)."
          }
        ]
      },
      {
        "title":"Librerias",
        "links":[
          {
            "name":"React",
            "url":"http://facebook.github.io/react/s",
            "description":"Creada por Facebook. React es una libreria para crear interfaces de usuarios utilizada por Facebook e Instagram. Muchas personas tienen a pensar en React como el componente V (La vista) en el módelo MVC."
          },
          {
            "name":"Handlebars",
            "url":"http://handlebarsjs.com/",
            "description":"Handlebars provee el poder necesario para permitir la construción de plantillas semanticas sin ninguna fustración."
          },
          {
            "name":"Dust.js",
            "url":"http://linkedin.github.io/dustjs/",
            "description":"Plantillas asincronas para el navegador y node.js"
          }
        ]
      },
      {
        "title":"Animación",
        "links":[
          {
            "name":"Velocity.js",
            "url":"http://julian.com/research/velocity/",
            "description":"Velocity es un motor de animaciones que hace uso de la misma API de JQuery $.animate()."
          },
          {
            "name":"Bounce.js",
            "url":"http://bouncejs.com/",
            "description":"Bounce.js es una herramienta y una libreria de JS que permite crear poderosas animaciones CSS3."
          },
          {
            "name":"TweenJS",
            "url":"http://www.createjs.com/tweenjs",
            "description":"Una libreria de Javascript simple pero poderosa para interpolar y animar elementos de HTML5 y de JavaScript."
          },
          {
            "name":"Move.js",
            "url":"http://visionmedia.github.io/move.js/",
            "description":"Move.js es una pequeña libreria de JavaScript que permite crear animaciones CSS3 extremadamente simples y elegantes."
          },
          {
            "name":"Snap.svg",
            "url":"http://snapsvg.io/",
            "description":"SVG es una excelente forma de crear vectores gráficos interactivos, independientes de la resolución, los cuales luciran geniales en cualquier tamaño de pantalla."
          },
          {
            "name":"Rekapi",
            "url":"http://rekapi.com/",
            "description":"Rekapi es una libreria para crear animaciones en el canvas y en el DOM con Javascript, permitiendo también animaciones CSS utilizando @keyframe para los navegadores modernos."
          },
          {
            "name":"Favico.js",
            "url":"http://lab.ejci.net/favico.js/",
            "description":"Realiza tu favicon con banderillas, imagenes o videos."
          },
          {
            "name":"Textillate.js",
            "url":"http://jschr.github.io/textillate/",
            "description":"Textillate.js hace uso de algunas librerias increibles para proveer un plugin sencillo para realizar animaciones CSS3 en cualquier texto."
          },
          {
            "name":"Motio",
            "url":"http://darsa.in/motio/",
            "description":"Motio es una pequeña libreria JavaScript para crear animacione simples y poderosas basadas en sprites."
          }
        ]
      }
    ]
  },
  "gameEngines":{
    "title":"MOTORES DE JUEGO",
    "links":[
      {
        "name":"MelonJS",
        "url":"http://melonJS.org",
        "description":"MelonJS es un motor de juegos en HTML5 gratuito y ligero. El motor integra el formato de mapa de baldosas haciendo el diseño de niveles muy fácil."
      },
      {
        "name":"ImpactJS",
        "url":"http://impactjs.com",
        "description":"ImpactJS es uno de los mas probados y verdaderos motores de juegos en HTML5. Su publicación inicial se remonta a finales del 2010. Se encuentra muy bien mantenido y actualizado, y tiene toda una comunidad de gran tamaño que lo respalda. Existe suficiente documentación - incluso dos libros para la creación juegos con el motor ImpactJS."
      },
      {
        "name":"LimeJS",
        "url":"http://limejs.com",
        "description":"LimeJS is en un framework para la creación rápida de juegos en HTML5, creando una experiencia nativa en los navegadores modernos, tanto para dispositivos moviles como para dispositivos de escritorio."
      },
      {
        "name":"Crafty",
        "url":"http://craftyjs.com",
        "description":"Crafty es un motor de juegos creado a finales del 2010. Crafty hace que sea realmente fácil la creación de juegos con JavaScript."
      },
      {
        "name":"Cocos2d-HTML5",
        "url":"http://www.cocos2d-x.org/wiki/Cocos2d-html5",
        "description":"Cocos2d-html5 es un framework de juegos web 2D, liberado bajo licencia MIT. Este es una versión en HTML5 del proyecto Cocos2d-x. Cocos2d-html5 se enfoca en hacer que Cocos2d sea compatible en todas las plataformas, navegadores y applicaciones nativas."
      },
      {
        "name":"Phaser",
        "url":"http://phaser.io",
        "description":"Phaser se encuentra basado basado fuertemente en <a target=\"_blank\" href=\"http://www.flixel.org\">Flixel</a>. Es mantenido por Richard Davey (<a target=\"_blank\" href=\"http://www.photonstorm.com/\">Photon Storm</a>) quien ha sido muy activo en la comunidad de HTML5 durante años."
      },
      {
        "name":"Goo",
        "url":"http://www.goocreate.com/learn",
        "description":"Goo en es un motor de juegos 3D en JavaScript enteramente construido en WebGL/HTML5"
      },
      {
        "name":"LycheeJS",
        "url":"http://lycheejs.org",
        "description":"LycheeJS es una libreria para juegos en JavaScript que ofrece un solución completa para prototipar y desarrollar juegos basados en el Canvas de HTML5, WebGL u OpenGL(ES) nativo dentro del Navegador Web o ambientes nativos."
      },
      {
        "name":"Quintus",
        "url":"http://html5quintus.com",
        "description":"Quintus es un motor de juego HTML5 diseñado para ser modular y ligero, con una syntaxis concisa y amigable en JavaScript."
      },
      {
        "name":"KiwiJS",
        "url":"http://www.kiwijs.org",
        "description":"Kiwi.js es un Motor de Juegos divertido y amigable en HTML5 de Código Abierto. Algunas personas lo llaman el WordPress de los motores de juegos de HTML5"
      },
      {
        "name":"PandaJS",
        "url":"http://www.pandajs.net",
        "description":"Panda.js es un motor de juegos en HTML5 para moviles y escritorios con renderizado en Canvas y WebGL."
      }
    ]
  },
  "news":{
    "title":"Noticias",
    "cat":[
      {
        "title":"Sitios Web",
        "links":[
          {
            "name":"JavaScript.com",
            "url":"http://javascript.com",
            "description":""
          },
          {
            "name":"Echo JS",
            "url":"http://www.echojs.com",
            "description":""
          },
          {
            "name":"The Treehouse Show",
            "url":"http://teamtreehouse.com/library/the-treehouse-show",
            "description":""
          },
          {
            "name":"/r/javascript on Reddit",
            "url":"http://www.reddit.com/r/javascript",
            "description":""
          },
          {
            "name":"Open Web Platform Daily Digest",
            "url":"http://webplatformdaily.org",
            "description":""
          },
          {
            "name":"Badass JavaScript",
            "url":"http://badassjs.com",
            "description":""
          },
          {
            "name":"AngularJS Daily",
            "url":"http://paper.li/gwinnem/1390553142",
            "description":""
          }
        ]
      },
      {
        "title":"Boletín",
        "links":[
          {
            "name":"JavaScript Weekly",
            "url":"http://javascriptweekly.com",
            "description":""
          },
          {
            "name":"A Drip of JavaScript",
            "url":"http://designpepper.com/a-drip-of-javascript",
            "description":""
          },
          {
            "name":"Ember Weekly",
            "url":"http://emberweekly.com",
            "description":""
          },
          {
            "name":"Node Weekly",
            "url":"http://nodeweekly.com",
            "description":""
          },
          {
            "name":"Meteor Weekly",
            "url":"http://meteorhacks.com/meteor-weekly",
            "description":""
          },
          {
            "name":"Grunt Weekly",
            "url":"https://twitter.com/gruntweekly",
            "description":""
          },
          {
            "name":"Gamedev.js Weekly",
            "url":"http://weekly.gamedevjs.com",
            "description":""
          },
          {
            "name":"HTML5 Weekly",
            "url":"http://html5weekly.com",
            "description":""
          },
          {
            "name":"UDGWebDev Weekly",
            "url":"http://udgwebdev.com/newsletter",
            "description":""
          },
          {
            "name":"The React Newsletter",
            "url":"http://theproblemsolver.nl/TheReactNewsletter/Subscribe",
            "description":""
          }
        ]
      }
    ]
  },
  "reading":{
    "title":"Lectura",
    "cat":[
      {
        "title":"Artículos",
        "credit":true,
        "box":false,
        "links":[
          {
            "name":"Entendiendo programación orientada a objetos en JavaScript",
            "url":"http://robotlolita.github.io/2011/10/09/understanding-javascript-oop.html",
            "description":"por <a target=\"_blank\" href=\"https://github.com/robotlolita\">Quildreen Motta</a>"
          },
          {
            "name":"Entendiendo “Prototypes” en JavaScript",
            "url":"http://yehudakatz.com/2011/08/12/understanding-prototypes-in-JavaScript",
            "description":"por <a target=\"_blank\" href=\"https://github.com/wycats\">Yehuda Katz</a>"
          },
          {
            "name":"Prototipos y Herencia en JavaScript",
            "url":"http://msdn.microsoft.com/en-us/magazine/ff852808.aspx",
            "description":"por <a target=\"_blank\" href=\"http://odetocode.com/blogs/scott\">Scott Allen</a>"
          },
          {
            "name":"Aplicación Parcial en JavaScript",
            "url":"http://benalman.com/news/2012/09/partial-application-in-javascript",
            "description":"por <a target=\"_blank\" href=\"http://github.com/cowboy\">Ben Alman</a>"
          },
          {
            "name":"Atravesando jQuery",
            "url":"http://blog.ponyfoo.com/2013/07/09/getting-over-jquery",
            "description":"por <a target=\"_blank\" href=\"http://github.com/bevacqua\">Nico Bevacqua</a>"
          },
          {
            "name":"Una sumergida en JavaScript puro",
            "url":"http://blog.adtile.me/2014/01/16/a-dive-into-plain-javascript",
            "description":"por <a target=\"_blank\" href=\"https://twitter.com/viljamis\">Viljami S.</a>"
          },
          {
            "name":"Un Vista en Profundidad a Objetos en JavaScript",
            "url":"http://www.kirupa.com/html5/a_deeper_look_at_objects_in_javascript.htm",
            "description":"por <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
          },
          {
            "name":"Introducción al Easing(Flexibilización) en JavaScript",
            "url":"http://www.kirupa.com/html5/introduction_to_easing_in_javascript.htm",
            "description":"por <a target=\"_blank\" href=\"https://twitter.com/kirupa\">Kirupa Chinnathambi</a>"
          },
          {
            "name":"¿Cómo Aprender JavaScript Apropiadamente?",
            "url":"http://javascriptissexy.com/how-to-learn-javascript-properly",
            "description":"por <a target=\"_blank\" href=\"http://twitter.com/jsissexy\">JavaScript Is Sexy</a>"
          },
          {
            "name":"¿Cómo Comenzar con JavaScript?",
            "url":"http://jugoncalv.es/blog/javascript/how-to-start-with-javascript",
            "description":"por <a target=\"_blank\" href=\"http://twitter.com/junspector\">Ju Gonçalves</a>"
          }
        ]
      },
      {
        "title":"Libros",
        "credit":true,
        "box":false,
        "links":[
          {
            "name":"Eloquent Javascript",
            "url":"http://eloquentjavascript.net/",
            "description":"por <a target=\"_blank\" href=\"http://marijnhaverbeke.nl/\">Marijn Haverbeke</a>"
          },
          {
            "name":"JavaScript: La Guía Definitiva",
            "url":"http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527",
            "description":"por <a target=\"_blank\" href=\"http://www.amazon.com/David-Flanagan/e/B000APEZR4/ref=ntt_athr_dp_pel_pop_1\">David Flanagan</a>"
          },
          {
            "name":"JavaScript: Las Partes Buenas",
            "url":"http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742",
            "description":"por <a target=\"_blank\" href=\"http://www.amazon.com/Douglas-Crockford/e/B002N3VYB6/ref=ntt_athr_dp_pel_1\">Douglas Crockford</a>"
          },
          {
            "name":"Patrones en JavaScript",
            "url":"http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752",
            "description":"por <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
          },
          {
            "name":"Formulas de Pruebas en JavaScript",
            "url":"http://jstesting.jcoglan.com",
            "description":"by <a target=\"_blank\" href=\"http://jcoglan.com\">James Coglan</a>"
          },
          {
            "name":"JavaScript para Desarrolladores Web Profesionales",
            "url":"http://www.amazon.com/dp/1118026691/ref=wl_it_dp_o_pC_nS_ttl?_encoding=UTF8&colid=253J6SW0KPB7J&coliid=IC7UM9W2VVSHL",
            "description":"por <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
          },
          {
            "name":"JavaScript de Alto Rendimiento",
            "url":"http://www.amazon.com/Performance-JavaScript-Faster-Application-Interfaces/dp/059680279X",
            "description":"por <a target=\"_blank\" href=\"http://www.amazon.com/Nicholas-C.-Zakas/e/B001IGUTOC/ref=ntt_athr_dp_pel_1\">Nicholas C. Zakas</a>"
          },
          {
            "name":"JavaScript Humano",
            "url":"http://humanjavascript.com",
            "description":"por <a target=\"_blank\" href=\"http://joreteg.com/\">Henrik Joreteg</a>"
          },
          {
            "name":"JavaScript Orientado a Objetos",
            "url":"http://www.amazon.com/Object-Oriented-JavaScript-high-quality-applications-libraries/dp/1847194141",
            "description":"por <a target=\"_blank\" href=\"http://www.amazon.com/Stoyan-Stefanov/e/B002BLXYIG/ref=ntt_athr_dp_pel_1\">Stoyan Stefanov</a>"
          },
          {
            "name":"Pro JavaScript Patrones de Diseño",
            "url":"http://www.amazon.com/Pro-JavaScript-Design-Patterns-Object-Oriented/dp/159059908X",
            "description":"por <a target=\"_blank\" href=\"https://twitter.com/ded\">Dustin Diaz</a>"
          },
          {
            "name":"Secretos del JavaScript Ninja",
            "url":"http://jsninja.com",
            "description":"por <a target=\"_blank\" href=\"http://ejohn.org\">John Resig</a>"
          },
          {
            "name":"Diseño de Aplicaciones en JavaScript",
            "url":"http://bevacqua.io/bf",
            "description":"por <a target=\"_blank\" href=\"http://blog.ponyfoo.com\">Nicolas Bevacqua</a>"
          },
          {
            "name":"Hablando de JavaScript",
            "url":"http://speakingjs.com",
            "description":"por <a target=\"_blank\" href=\"http://www.rauschma.de\">Axel Rauschmayer</a>"
          },
          {
            "name":"Desarrollo de JavaScript Basado en Pruebas",
            "url":"http://tddjs.com",
            "description":"por <a target=\"_blank\" href=\"http://cjohansen.no\">Christian Johansen</a>"
          },
          {
            "name":"No conoces JS",
            "url":"https://github.com/getify/You-Dont-Know-JS",
            "description":"por <a target=\"_blank\" href=\"https://github.com/getify\">>Kyle Simpson</a>"
          },
          {
            "name":"Quizas no necesitas jQuery",
            "url":"http://youmightnotneedjquery.com",
            "description":"por <a target=\"_blank\" href=\"http://twitter.com/burgessdryan\">Ryan Burgess</a>"
          },
          {
            "name":"Jardín JavaScript",
            "url":"http://bonsaiden.github.io/JavaScript-Garden/",
            "description":"por <a target=\"_blank\" href=\"https://blog.grandcentrix.net\">Ivo Wetzel</a>"
          },
          {
            "name":"JavaScript Efectivo",
            "url":"http://effectivejs.com",
            "description":"por <a target=\"_blank\" href=\"http://calculist.org\">David Herman</a>"
          },
          {
            "name":"JavaScript Allongé",
            "url":"https://leanpub.com/javascript-allonge",
            "description":"por <a target=\"_blank\" href=\"http://raganwald.com\">Reginald Braithwaite</a>"
          },
          {
            "name":"JSBooks",
            "url":"http://jsbooks.revolunet.com",
            "description":"por <a target=\"_blank\" href=\"http://devfreebooks.org\">DevFreeBooks</a>"
          }
        ]
      },
      {
        "title":"E-Books Gratuitos",
        "credit":false,
        "box":true,
        "links":[
          {
            "name":"JSBooks",
            "url":"http://jsbooks.revolunet.com/",
            "description":""
          },
          {
            "name":"DevFreeBooks",
            "url":"http://devfreebooks.org",
            "description":""
          }
        ]
      },
      {
        "title":"Portales",
        "credit":false,
        "box":true,
        "links":[
          {
            "name":"JavaScript.com",
            "url":"https://www.javascript.com",
            "description":""
          },
          {
            "name":"HTML5 Rocks",
            "url":"http://www.html5rocks.com",
            "description":""
          },
          {
            "name":"W3Fools",
            "url":"http://www.w3fools.com",
            "description":""
          },
          {
            "name":"Red de Desarrolladores de Mozilla",
            "url":"http://developer.mozilla.org/docs/JavaScript",
            "description":""
          },
          {
            "name":"Plataforma Web",
            "url":"http://docs.webplatform.org/wiki/javascript",
            "description":""
          },
          {
            "name":"Smashing Magazine",
            "url":"http://coding.smashingmagazine.com/tag/javascript",
            "description":""
          },
          {
            "name":"Escuela de Node",
            "url":"http://nodeschool.io",
            "description":""
          },
          {
            "name":"¿Cómo hacer Node?",
            "url":"http://howtonode.org",
            "description":""
          },
          {
            "name":"La guía de Node.js de Felix",
            "url":"http://nodeguide.com/beginner.html",
            "description":""
          }
        ]
      }
    ]
  },
  "podcasts":{
    "title":"Podcasts",
    "links":[
      {
        "name":"JavaScript Jabber",
        "url":"http://javascriptjabber.com",
        "description":""
      },
      {
        "name":"Arriba Node",
        "url":"http://nodeup.com",
        "description":""
      },
      {
        "name":"5 Minutos de JavaScript",
        "url":"https://fivejs.codeschool.com",
        "description":""
      },
      {
        "name":"The Meteor Podcast",
        "url":"http://www.meteorpodcast.com",
        "description":""
      },
      {
        "name":"JSConf",
        "url":"https://www.youtube.com/user/jsconfeu",
        "description":""
      }
    ]
  },
  "screencasts":{
    "title":"Videotutoriales",
    "links":[
      {
        "name": "iLoveCoding",
        "img": "ilovecoding.svg",
        "url": "https://iLoveCoding.org",
        "description": "Full-Stack JavaScript video training."
      },
      {
        "name":"Egghead",
        "img":"egghead.svg",
        "url":"https://egghead.io/",
        "description":""
      },
      {
        "name":"DevFreeCasts",
        "img":"devfreecasts.png",
        "url":"http://devfreecasts.org",
        "description":""
      },
      {
        "name":"tagtree.tv",
        "img":"tagtree.png",
        "url":"https://tagtree.tv/",
        "description":""
      },
      {
        "name":"frontendmasters.com",
        "img":"frontendmasters.svg",
        "url":"http://frontendmasters.com",
        "description":""
      }
    ]
  },
  "whoToFollow":{
    "title":"¿A quién seguir?"
  },
  "paasProviders":{
    "title":"Proveedores PaaS",
    "links":[
      {
        "name":"Heroku",
        "url":"http://heroku.com/",
        "description":""
      },
      {
        "name":"Modulus",
        "url":"https://modulus.io",
        "description":""
      },
      {
        "name":"Nodejitsu",
        "url":"http://nodejitsu.com",
        "description":""
      },
      {
        "name":"OpenShift",
        "url":"https://www.openshift.com",
        "description":""
      },
      {
        "name":"Getup",
        "url":"http://getupcloud.com",
        "description":""
      },
      {
        "name":"Windows Azure",
        "url":"http://www.windowsazure.com/en-us/develop/nodejs",
        "description":""
      }
    ]
  },
  "helpers":{
    "title":"Ayudantes",
    "links":[
      {
        "name":"npm",
        "img":"npm.png",
        "url":"https://npmjs.org/",
        "description":""
      },
      {
        "name":"bower",
        "img":"bower-logo.png",
        "url":"http://bower.io",
        "description":""
      },
      {
        "name":"yeoman",
        "img":"yeoman-logo.png",
        "url":"http://yeoman.io",
        "description":""
      },
      {
        "name":"grunt",
        "img":"grunt-logo.png",
        "url":"http://gruntjs.com",
        "description":""
      },
      {
        "name":"gulp",
        "img":"gulp.png",
        "url":"http://gulpjs.com",
        "description":""
      },
      {
        "name":"brunch",
        "img":"brunch-logo.png",
        "url":"http://brunch.io",
        "description":""
      },
      {
        "name":"Browser compilation library",
        "img":"broccoli-logo.png",
        "url":"https://github.com/broccolijs/broccoli",
        "description":""
      },
      {
        "name":"todo mvc",
        "img":"todomvc-logo.png",
        "url":"http://todomvc.com",
        "description":""
      }
    ]
  },
  "footer":{
    "credit":"Creado y mantenido por",
    "contributors":"Colaboradores",
    "contribDesc":"Este proyecto no existiría sin estos maravillosos colaboradores. Muchas gracias muchachos por hacer esto real!",
    "licence":"{{@link=partials/licence.html}}"
  }
}


================================================
FILE: i18n/es-es/partials/code-style.html
================================================
<h3>Convenciones</h3>

<p>
    Como todo lenguaje, JavaScript tiene muchas guías de estilo. Quizas la más usada y recomendada es la <a target="_blank" href="https://google.github.io/styleguide/javascriptguide.xml">Guía de Estilo de Google para JavaScript</a>, pero nosotros te recomendamos leer <a target="_blank" href="https://github.com/rwldrn/idiomatic.js/">Idiomatic.js</a>.
</p>

<h3>Linting</h3>

<p>
    Actualmente la mejor herramienta para realizar linting (análisis) del código en JavaScript es <a target="_blank" href="http://www.jshint.com/">JSHint</a>. Nosotros recomendamos que siempre que sea posible se verifique el estilo y los patrones del código con una herramienta de análisis del código.
</p>


================================================
FILE: i18n/es-es/partials/getting-started.html
================================================
<h3>ACERCA</h3>

<p>
    Creado por Netscape en 1995 como una extensión de HTML para Netscape Navigator 2.0, JavaScript ha tenido como función principal la manipulación de los documentos HTML y la validación de formularios.

    Antes de ganar su nombre muy famoso en estos días, JavaScript fue llamado Mocha. Cuando fue lanzada su primera publicación beta, fue oficialmente llamado LiveScript y finalmente, cuando fue publicado por Sun Microsystems, fue bautizado con el nombre por el cual es conocido hoy.

    A causa de los nombres similares, las personas confunden JavaScript con Java. Aunque ambos tienen la estructura léxica de programación, ellos son lenguajes muy diferentes.

    Diferente de C, C# y Java, JavaScript es un lenguaje interpretado. Significa que este requiere un "interpreter". En el caso de JavaScript, el interpreter es el navegador.
</p>

<h3>VERSION ACTUAL</h3>

<p>
    El estándar de JavaScript es ECMAScript. A partir del 2012, todos los navegadores modernos soportan completamente ECMAScript 5.1. Los navegadores antiguos soportan al menos ECMAScript 3. En Junio de 2015 la especificación para la versión ES6/ES2015 fue aprobada. Puedes revisar las especificaciones de la version 2015 de ECMAScript en <a target="_blank" href="http://www.ecma-international.org/ecma-262/6.0/index.html">Ecma International</a>.
</p>

<p>
    Una buena referencia sobre las versiones, documentación, noticias y demás sobre JavaScript puede encontrarse en la <a target="_blank" href="https://developer.mozilla.org/es/docs/Web/JavaScript"> Red de Desarrolladores de Mozilla</a>.
</p>

<h3>EL DOM</h3>

<p>
    El Modelo de Objetos del Documento (DOM) es un API para documentos HTML y XML. Este prevee una representación estructural del documento, permitiéndole modificar su contenido y presentación visual mediante el uso de un lenguaje de scripting tal como JavaScript. Ver mas en <a target="_blank" href="https://developer.mozilla.org/es/docs/DOM">Red de Desarrolladores de Mozilla - DOM</a>.
</p>


================================================
FILE: i18n/es-es/partials/good-parts.html
================================================
<h3>Orientado a Objetos</h3>

<p>
    JavaScript tiene un fuerte enfoque de programación orientada a objetos, a pesar de algunos debates que tienen lugar debido a las diferencias de la orientacion a objetos en Javascript comparado con otros lenguajes.
</p>

<p class="source">
    Fuente: <a target="_blank" href="https://developer.mozilla.org/es/docs/Web/JavaScript/Introducci%C3%B3n_a_JavaScript_orientado_a_objetos">Introducción a JavaScript Orientado a Objetos</a>
</p>

<h3>Anonymous Functions (Funciones Anónimas)</h3>

<p>
    Funciones anómimas que son declaradas dinámicamente en tiempo de ejecución. Son llamadas anónimas porque no poseen un nombre de la misma manera que las funciones normales.
</p>

<p class="source">
    Fuente: <a target="_blank" href="http://helephant.com/2008/08/23/javascript-anonymous-functions/">Funciones anónimas</a>
</p>

<h3>Functions as First-class Objects (Funciones de Objetos de primera clase)</h3>

<p>
    Las funciones en JavaScript son objetos de primera clase. Esto significa que las funciones son simplemente un tipo de objeto especial, con las cuales se pueden hacer las mismas cosas que cualquier otro objeto podria hacer.
</p>

<p class="source">
    Fuente: <a target="_blank" href="http://helephant.com/2008/08/19/functions-are-first-class-objects-in-javascript/">Las funciones son objetos de primera clase en JavaScript</a>
</p>

<h3>Loose Typing (Tipado Blando)</h3>

<p>
    Para muchos desarrolladores front-end, JavaScript fue su primera experiencia en lenguajes de scripting y/o interpretados. Para estos desarrolladores, el concepto y las implicaciones de las variables de tipado blando quizas son de segunda naturaleza. Como siempre, el crecimiento explosivo en demanda para aplicaciones web modernas, ha resultado en un crecimiento en el número de desarrolladores back-end que han tenido que meter sus manos en tecnologías del lado del cliente. Muchos de estos programadores llegan experiencia en lenguajes de tipado fuerte, tales como C# o Java, y le resultan desconocidas las libertades y las potenciales trampas envueltas en el trabajo con variables de tipado blando.
</p>

<p class="source">
    Fuente: <a target="_blank" href="http://blog.jeremymartin.name/2008/03/understanding-loose-typing-in.html">Understanding Loose Typing in JavaScript</a>
</p>

<h3>Scoping and Hoisting (Alcance y Elevación)</h3>

<p>
    <b>Scoping o Alcance:</b> En JavaScript, las funcione
Download .txt
gitextract_ga3r34v9/

├── .gitignore
├── Gruntfile.js
├── LICENSE
├── README.md
├── i18n/
│   ├── README.md
│   ├── ar-ar/
│   │   ├── ar-ar.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── de-de/
│   │   ├── de-de.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── en-us/
│   │   ├── en-us.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── es-es/
│   │   ├── es-es.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── fa-ir/
│   │   ├── fa-ir.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── ko-kr/
│   │   ├── README.md
│   │   ├── ko-kr.json
│   │   └── partials/
│   │       ├── code-style.html
│   │       ├── getting-started.html
│   │       ├── good-parts.html
│   │       ├── licence.html
│   │       ├── patterns.html
│   │       ├── testing-tools.html
│   │       └── welcome.html
│   ├── pt-br/
│   │   ├── partials/
│   │   │   ├── code-style.html
│   │   │   ├── getting-started.html
│   │   │   ├── good-parts.html
│   │   │   ├── licence.html
│   │   │   ├── patterns.html
│   │   │   ├── testing-tools.html
│   │   │   └── welcome.html
│   │   └── pt-br.json
│   ├── ru-ru/
│   │   ├── partials/
│   │   │   ├── code-style.html
│   │   │   ├── getting-started.html
│   │   │   ├── good-parts.html
│   │   │   ├── licence.html
│   │   │   ├── patterns.html
│   │   │   ├── testing-tools.html
│   │   │   └── welcome.html
│   │   └── ru-ru.json
│   ├── zh-cn/
│   │   ├── partials/
│   │   │   ├── code-style.html
│   │   │   ├── getting-started.html
│   │   │   ├── good-parts.html
│   │   │   ├── licence.html
│   │   │   ├── patterns.html
│   │   │   ├── testing-tools.html
│   │   │   └── welcome.html
│   │   └── zh-cn.json
│   └── zh-tw/
│       ├── partials/
│       │   ├── code-style.html
│       │   ├── getting-started.html
│       │   ├── good-parts.html
│       │   ├── licence.html
│       │   ├── patterns.html
│       │   ├── testing-tools.html
│       │   └── welcome.html
│       └── zh-tw.json
├── manifest.json
├── package.json
├── public/
│   ├── assets/
│   │   ├── css/
│   │   │   ├── core.css
│   │   │   └── normalize.css
│   │   └── js/
│   │       ├── core.js
│   │       └── vendor/
│   │           ├── jquery.lazyload.js
│   │           └── jquery.scrollstop.js
│   ├── de-de/
│   │   └── index.html
│   ├── en-us/
│   │   └── index.html
│   ├── es-es/
│   │   └── index.html
│   ├── fa-ir/
│   │   └── index.html
│   ├── index.html
│   ├── ko-kr/
│   │   └── index.html
│   ├── pt-br/
│   │   └── index.html
│   ├── ru-ru/
│   │   └── index.html
│   ├── zh-cn/
│   │   └── index.html
│   └── zh-tw/
│       └── index.html
├── scripts/
│   └── tasks/
│       └── i18n.js
└── templates/
    ├── index.html
    └── old_index.html
Download .txt
SYMBOL INDEX (4 symbols across 2 files)

FILE: public/assets/js/core.js
  function cb (line 64) | function cb(result) {
  function cb (line 90) | function cb(result) {
  function shuffle (line 121) | function shuffle(array) {

FILE: public/assets/js/vendor/jquery.lazyload.js
  function update (line 35) | function update() {
Condensed preview — 106 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,445K chars).
[
  {
    "path": ".gitignore",
    "chars": 57,
    "preview": "_site/\n*.DS_Store\nnode_modules\nnpm-debug.log\ndist/\n.tmp/\n"
  },
  {
    "path": "Gruntfile.js",
    "chars": 4623,
    "preview": "module.exports = function(grunt){\n\n    // Loading i18n task\n    require('./scripts/tasks/i18n')(grunt);\n    // -- Init C"
  },
  {
    "path": "LICENSE",
    "chars": 87,
    "preview": "Copyright (c) 2014 William Oliveira\n\nhttp://creativecommons.org/licenses/by-nc-sa/3.0/\n"
  },
  {
    "path": "README.md",
    "chars": 706,
    "preview": "![](http://i.imgur.com/jaEbd80.png)\n\nFeel free to contribute!\n\n## Where?\n\n<http://www.jstherightway.org>\n\n## Why?\n\nToday"
  },
  {
    "path": "i18n/README.md",
    "chars": 465,
    "preview": "# Do you want this project in your language?\n\n### Feel free to contribute! :+1:\n\n\nTo translate this project to another l"
  },
  {
    "path": "i18n/ar-ar/ar-ar.json",
    "chars": 36722,
    "preview": "{\n    \"meta\": {\n        \"title\": \"جافاسكريبت: الطريقة الصحيحة\",\n        \"description\": \"A quick reference to best practi"
  },
  {
    "path": "i18n/ar-ar/partials/code-style.html",
    "chars": 615,
    "preview": "<h3>اصطلاحات</h3>\n\n<p>\n    As every language, JavaScript has many code style guides. Maybe the most used and recommended"
  },
  {
    "path": "i18n/ar-ar/partials/getting-started.html",
    "chars": 1821,
    "preview": "<h3>عن</h3>\n\n<p>\n    أُنشِئت من طرف ناتسكوب في سنة 1995 بصفتها ملحقا للـHTML من أجل متصفح ناتسكوب 2.0، كان لجافاسكريبت و"
  },
  {
    "path": "i18n/ar-ar/partials/good-parts.html",
    "chars": 5930,
    "preview": "<h3>كائنية التوجه</h3>\n\n<p>\n    JavaScript has strong object-oriented programming capabilities, even though some debates"
  },
  {
    "path": "i18n/ar-ar/partials/licence.html",
    "chars": 932,
    "preview": "<p style=\"width: 100%; text-align: center; box-sizing: border-box\">\n     <a rel=\"license\" target=\"_blank\" href=\"http://c"
  },
  {
    "path": "i18n/ar-ar/partials/patterns.html",
    "chars": 3859,
    "preview": "<h3>وصف</h3>\n\n<p>\n    While JavaScript contains design patterns that are exclusive to the language, many classical desig"
  },
  {
    "path": "i18n/ar-ar/partials/testing-tools.html",
    "chars": 87,
    "preview": "<h3>وصف</h3>\n\n<p>.هناك العديد من المكتبات وأطر العمل لعمل الاختبارات في جافاسكريبت</p>\n"
  },
  {
    "path": "i18n/ar-ar/partials/welcome.html",
    "chars": 409,
    "preview": "<h1>هاي، أنت!</h1>\n\n<p>\n    هذا دليل يهدف إلى تعريف المطورين الجدد بجافاسكريبت ومساعدة المطورين ذوي الخبرة في تعلم مزيد "
  },
  {
    "path": "i18n/de-de/de-de.json",
    "chars": 33715,
    "preview": "{\n  \"meta\": {\n    \"title\":\"JS: Der richtige Weg\",\n    \"description\":\"Eine kurze Übersicht an Best-Practices für das Prog"
  },
  {
    "path": "i18n/de-de/partials/code-style.html",
    "chars": 749,
    "preview": "<h3>Richtlinien</h3>\n\n<p>\n    Auch JavaScript hat, so wie jede Programmiersprache, viele unterschiedliche Leitfäden für "
  },
  {
    "path": "i18n/de-de/partials/getting-started.html",
    "chars": 2019,
    "preview": "<h3>ÜBER</h3>\n\n<p>\n    Erstellt von Netscape im Jahre 1995 als eine Erweiterung von HTML für den Netscape Navigator 2.0,"
  },
  {
    "path": "i18n/de-de/partials/good-parts.html",
    "chars": 6825,
    "preview": "<h3>Objektorientiert</h3>\n\n<p>\n    JavaScript hat große Möglichkeiten für objektorientierte Programmierung auch wenn es "
  },
  {
    "path": "i18n/de-de/partials/licence.html",
    "chars": 1057,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/de-de/partials/patterns.html",
    "chars": 4828,
    "preview": "\n                <h3>Beschreibung</h3>\n\n                <p>\n                    Während JavaScript einige exklusive Entw"
  },
  {
    "path": "i18n/de-de/partials/testing-tools.html",
    "chars": 108,
    "preview": "<h3>Beschreibung</h3>\n\n<p>Verschiedene Bibliotheken und Frameworks, um Tests in JavaScript auszuführen.</p>\n"
  },
  {
    "path": "i18n/de-de/partials/welcome.html",
    "chars": 524,
    "preview": "<h1>Hey, du!</h1>\n\n<p>\n    Dies ist ein Leitfaden, der Entwicklern beim Einstieg in JavaScript helfen soll und erfahrene"
  },
  {
    "path": "i18n/en-us/en-us.json",
    "chars": 36821,
    "preview": "{\n    \"meta\": {\n        \"title\": \"JS: The Right Way\",\n        \"description\": \"A quick reference to best practices for wr"
  },
  {
    "path": "i18n/en-us/partials/code-style.html",
    "chars": 618,
    "preview": "<h3>Conventions</h3>\n\n<p>\n    As every language, JavaScript has many code style guides. Maybe the most used and recommen"
  },
  {
    "path": "i18n/en-us/partials/getting-started.html",
    "chars": 1882,
    "preview": "<h3>ABOUT</h3>\n\n<p>\n    Created by Netscape in 1995 as an extension of HTML for Netscape Navigator 2.0, JavaScript had a"
  },
  {
    "path": "i18n/en-us/partials/good-parts.html",
    "chars": 5965,
    "preview": "<h3>Object Oriented</h3>\n\n<p>\n    JavaScript has strong object-oriented programming capabilities, even though some debat"
  },
  {
    "path": "i18n/en-us/partials/licence.html",
    "chars": 1029,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/en-us/partials/patterns.html",
    "chars": 4793,
    "preview": "\n                <h3>Description</h3>\n\n                <p>\n                    While JavaScript contains design patterns"
  },
  {
    "path": "i18n/en-us/partials/testing-tools.html",
    "chars": 89,
    "preview": "<h3>Description</h3>\n\n<p>Various libraries and frameworks to do tests in JavaScript.</p>\n"
  },
  {
    "path": "i18n/en-us/partials/welcome.html",
    "chars": 477,
    "preview": "<h1>Hey, you!</h1>\n\n<p>\n    This is a guide intended to introduce new developers to JavaScript and help experienced deve"
  },
  {
    "path": "i18n/es-es/es-es.json",
    "chars": 32515,
    "preview": "{\n  \"meta\": {\n      \"title\":\"JS: La forma correcta\",\n      \"description\":\"Una referencia a las mejores prácticas para es"
  },
  {
    "path": "i18n/es-es/partials/code-style.html",
    "chars": 714,
    "preview": "<h3>Convenciones</h3>\n\n<p>\n    Como todo lenguaje, JavaScript tiene muchas guías de estilo. Quizas la más usada y recome"
  },
  {
    "path": "i18n/es-es/partials/getting-started.html",
    "chars": 2012,
    "preview": "<h3>ACERCA</h3>\n\n<p>\n    Creado por Netscape en 1995 como una extensión de HTML para Netscape Navigator 2.0, JavaScript "
  },
  {
    "path": "i18n/es-es/partials/good-parts.html",
    "chars": 6761,
    "preview": "<h3>Orientado a Objetos</h3>\n\n<p>\n    JavaScript tiene un fuerte enfoque de programación orientada a objetos, a pesar de"
  },
  {
    "path": "i18n/es-es/partials/licence.html",
    "chars": 1053,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/es-es/partials/patterns.html",
    "chars": 5091,
    "preview": "\n                <h3>Descripción</h3>\n\n                <p>\n                    Mientras JavaScript contiene patrones de "
  },
  {
    "path": "i18n/es-es/partials/testing-tools.html",
    "chars": 96,
    "preview": "<h3>Descripción</h3>\n\n<p>Varias librerias y frameworks para realizar pruebas en JavaScript.</p>\n"
  },
  {
    "path": "i18n/es-es/partials/welcome.html",
    "chars": 631,
    "preview": "<h1>Oye, tú!</h1>\n\n<p>\n    Esta es una guía que busca introducir a nuevos desarrolladores en JavaScript y que busca tamb"
  },
  {
    "path": "i18n/fa-ir/fa-ir.json",
    "chars": 33147,
    "preview": "{\n  \"meta\": {\n      \"title\":\"جاوااسکریپت: از راه درستش\",\n      \"description\":\"یک مرجع سریع به بهترین شیوه برای برنامه‌نو"
  },
  {
    "path": "i18n/fa-ir/partials/code-style.html",
    "chars": 618,
    "preview": "<h3>Conventions</h3>\n\n<p>\n    As every language, JavaScript has many code style guides. Maybe the most used and recommen"
  },
  {
    "path": "i18n/fa-ir/partials/getting-started.html",
    "chars": 1515,
    "preview": "<h3>درباره</h3>\n\n<p>\n    جاوااسکریپت در سال ۱۹۹۵ توسط نت‌اسکیپ (Netscape) جهت گسترش HTML برای Netscape Navigator 2.0 ایج"
  },
  {
    "path": "i18n/fa-ir/partials/good-parts.html",
    "chars": 5965,
    "preview": "<h3>Object Oriented</h3>\n\n<p>\n    JavaScript has strong object-oriented programming capabilities, even though some debat"
  },
  {
    "path": "i18n/fa-ir/partials/licence.html",
    "chars": 1029,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/fa-ir/partials/patterns.html",
    "chars": 4793,
    "preview": "\n                <h3>Description</h3>\n\n                <p>\n                    While JavaScript contains design patterns"
  },
  {
    "path": "i18n/fa-ir/partials/testing-tools.html",
    "chars": 89,
    "preview": "<h3>Description</h3>\n\n<p>Various libraries and frameworks to do tests in JavaScript.</p>\n"
  },
  {
    "path": "i18n/fa-ir/partials/welcome.html",
    "chars": 461,
    "preview": "<h1>خوش‌آمدید!</h1>\n\n<p>\n    بهرتین شیوه‌های معرفی جاوااسکریپت به توسعه‌دهنده‌های جدید و کمک به توسعه‌دهنده‌های با تجربه"
  },
  {
    "path": "i18n/ko-kr/README.md",
    "chars": 1047,
    "preview": "# 한국어 번역에 참여하는 방법\n\n기본 룰\n-------\n\n1. 파일의 indentation, syntax가 손상되지 않도록 신경쓰면서 문장을 번역합니다.\n2. 번역된 문장은 반드시 존댓말이어야합니다.\n3. [부산대"
  },
  {
    "path": "i18n/ko-kr/ko-kr.json",
    "chars": 29235,
    "preview": "{\n  \"meta\": {\n      \"title\":\"JS: The Right Way\",\n      \"description\":\"JavaScript를 작성할 때 있어서 최고의 방법들에 대한 간편한 참고문헌입니다. 웹에 "
  },
  {
    "path": "i18n/ko-kr/partials/code-style.html",
    "chars": 529,
    "preview": "<h3>컨벤션 (코드 작성 규칙)</h3>\n\n<p>\n    다른 언어들과 마찬가지로 JavaScript에도 다양한 코딩 스타일 규칙이 있습니다. 아마도 가장 많은 이들이 사용하고, 추천하는 것은 <a target=\""
  },
  {
    "path": "i18n/ko-kr/partials/getting-started.html",
    "chars": 1270,
    "preview": "<h3>JavaScript란?</h3>\n\n<p>\n    JavaScript는 1995년에 Netscape Navigator 2.0의 확장 기능으로써 Netscape사에 의해 개발되었습니다. JavaScript의 주사"
  },
  {
    "path": "i18n/ko-kr/partials/good-parts.html",
    "chars": 4009,
    "preview": "<h3>객체지향</h3>\n\n<p>\n    JavaScript는 객체지향 프로그래밍에 강력한 호환성을 제공하고 있지만, 그런데도 타 객체 지향 언어와 비교했을 때 다른 점으로 인해 자주 논의됩니다.\n</p>\n\n<p c"
  },
  {
    "path": "i18n/ko-kr/partials/licence.html",
    "chars": 994,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/ko-kr/partials/patterns.html",
    "chars": 4552,
    "preview": "\n                <h3>설명</h3>\n\n                <p>\n                    JavaScript는 자기만의 독자적인 디자인 패턴을 가지고 있는 한편, 많은 고전적인 디"
  },
  {
    "path": "i18n/ko-kr/partials/testing-tools.html",
    "chars": 84,
    "preview": "<h3>설명</h3>\n\n<p>JavaScript로 작성된 프로그램을 테스트하는 데에 필요한 여러 가지 라이브러리들과 프레임워크들을 소개합니다.</p>\n"
  },
  {
    "path": "i18n/ko-kr/partials/welcome.html",
    "chars": 313,
    "preview": "<h1>저기요!</h1>\n\n<p>\n    이 안내 문서는 JavaScript를 처음 시작하는 개발자와 더 나은 방법들을 익히고자 하는 숙련된 개발자 모두를 위해 작성되었습니다.\n</p>\n\n<p>\n    이 문서의 이"
  },
  {
    "path": "i18n/pt-br/partials/code-style.html",
    "chars": 764,
    "preview": "<h3>Convenções</h3>\n\n<p>\n    Assim como todas as linguagens, JavaScript tem muitos guias de estilo de código. Talvez o m"
  },
  {
    "path": "i18n/pt-br/partials/getting-started.html",
    "chars": 1766,
    "preview": "<h3>SOBRE</h3>\n\n<p>\n    Criado pela Netscape em 1995 como uma extensão do HTML para o navegador Netscape Navigator 2.0, "
  },
  {
    "path": "i18n/pt-br/partials/good-parts.html",
    "chars": 6481,
    "preview": "<h3>Orientação a Objetos</h3>\n\n<p>\n    JavaScript tem fortes capacidades de programação orientada a objetos, apesar de o"
  },
  {
    "path": "i18n/pt-br/partials/licence.html",
    "chars": 1036,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/pt-br/partials/patterns.html",
    "chars": 4818,
    "preview": "\n                <h3>Descrição</h3>\n\n                <p>\n                    Apesar de o JavaScript possuir padrões de p"
  },
  {
    "path": "i18n/pt-br/partials/testing-tools.html",
    "chars": 92,
    "preview": "<h3>Descrição</h3>\n\n<p>Várias bibliotecas e frameworks para fazer testes em JavaScript.</p>\n"
  },
  {
    "path": "i18n/pt-br/partials/welcome.html",
    "chars": 536,
    "preview": "<h1>Ei, você!</h1>\n\n<p>\n    Esse é um guia com a intenção de apresentar novos desenvolvedores ao JavaScript e ajudar des"
  },
  {
    "path": "i18n/pt-br/pt-br.json",
    "chars": 32701,
    "preview": "{\n  \"meta\": {\n      \"title\":\"JS: A forma certa\",\n      \"description\":\"Uma referência rápida para as melhores práticas de"
  },
  {
    "path": "i18n/ru-ru/partials/code-style.html",
    "chars": 733,
    "preview": "<h3>Условные обозначения</h3>\n\n<p>\n    Как любой другой язык, JavaScript имеет множество стилей кодирования. Возможно са"
  },
  {
    "path": "i18n/ru-ru/partials/getting-started.html",
    "chars": 1937,
    "preview": "<h3>О ЯЗЫКЕ</h3>\n\n<p>\n  Созданный компанией Netscape в 1995 как расширение HTML для браузера  Netscape Navigator 2.0, Ja"
  },
  {
    "path": "i18n/ru-ru/partials/good-parts.html",
    "chars": 6412,
    "preview": "<h3>Объектно ориентированный</h3>\n\n<p>\n    Javascript имеет сильные объектно-ориентированные возможности. Несмотря на не"
  },
  {
    "path": "i18n/ru-ru/partials/licence.html",
    "chars": 1022,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/ru-ru/partials/patterns.html",
    "chars": 4830,
    "preview": "\n                <h3>Описание</h3>\n\n                <p>\n                    Javascript содержит достаточное колличество "
  },
  {
    "path": "i18n/ru-ru/partials/testing-tools.html",
    "chars": 97,
    "preview": "<h3>Описание</h3>\n\n<p>Различные библиотеки и фреймворки для тестирования кода на JavaScript.</p>\n"
  },
  {
    "path": "i18n/ru-ru/partials/welcome.html",
    "chars": 523,
    "preview": "<h1>Привет!</h1>\n\n<p>\n  Это руководство призвано ввести в курс новичков в  Javascript и помочь опытным разработчикам бол"
  },
  {
    "path": "i18n/ru-ru/ru-ru.json",
    "chars": 35259,
    "preview": "{\n  \"meta\": {\n      \"title\":\"JS: Правильный путь\",\n      \"description\":\"Краткий справочник по лучшим практикам написания"
  },
  {
    "path": "i18n/zh-cn/partials/code-style.html",
    "chars": 438,
    "preview": "<h3>编程风格规范</h3>\n\n<p>\n    JavaScript 和其他编程语言一样,有各种版本的编程风格指南。或许大家会推荐 <a target=\"_blank\" href=\"https://google.github.io/sty"
  },
  {
    "path": "i18n/zh-cn/partials/getting-started.html",
    "chars": 1042,
    "preview": "<h3>关于</h3>\n\n<p>\n    由网景公司在 1995 年给网景浏览器2.0创建的一个当做 HTML 扩展,JavaScript 最初主要的功能就是操作 HTML 文档和验证表单。 在取得这么大的名声之前,JavaScript 被"
  },
  {
    "path": "i18n/zh-cn/partials/good-parts.html",
    "chars": 3208,
    "preview": "<h3>面向对象</h3>\n\n<p>\n    JavaScriot 虽然和其他语言在面向对象上面有些不同的地方,但仍然具有面向对象的编程能力。\n</p>\n\n<p class=\"source\">\n    资源: <a target=\"_bla"
  },
  {
    "path": "i18n/zh-cn/partials/licence.html",
    "chars": 1029,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/zh-cn/partials/patterns.html",
    "chars": 4602,
    "preview": "\n                <h3>说明</h3>\n\n                <p>\n                    虽然 JavaScript 有其独有的设计模式,但许多经典的设计模式仍然是可以实现的。\n\n     "
  },
  {
    "path": "i18n/zh-cn/partials/testing-tools.html",
    "chars": 46,
    "preview": "<h3>说明</h3>\n\n<p>JavaScript 代码测试相关的函数库和框架。</p>\n"
  },
  {
    "path": "i18n/zh-cn/partials/welcome.html",
    "chars": 227,
    "preview": "<h1>嗨!你们好</h1>\n\n<p>\n    这是一份为 JavaScript 新手准备的指南,同时也包含了可以给高手学习的最佳资料\n</p>\n\n<p>\n    虽然本网站的名字是 the right way,但并不代表是学习 JavaS"
  },
  {
    "path": "i18n/zh-cn/zh-cn.json",
    "chars": 27824,
    "preview": "{\n  \"meta\": {\n      \"title\":\"JS: The Right Way\",\n      \"description\":\"学习 JavaScript 的最佳快速指南 -- 来自网上的代码风格和教程链接\"\n  },\n  \"d"
  },
  {
    "path": "i18n/zh-tw/partials/code-style.html",
    "chars": 437,
    "preview": "<h3>程式碼慣例</h3>\n\n<p>\n    JavaScript 和其他程式語言一樣,有各種版本的編碼風格指引。或許大家常會推薦 <a target=\"_blank\" href=\"https://google.github.io/sty"
  },
  {
    "path": "i18n/zh-tw/partials/getting-started.html",
    "chars": 1086,
    "preview": "<h3>關於</h3>\n\n<p>\n    由 Netscape 於1995年為了 Netscape Navigator 針對 HTML 所開發的擴充套件,JavaScript 主要的功能為操作 HTML 文件及表單驗證。\n\n    在贏得今"
  },
  {
    "path": "i18n/zh-tw/partials/good-parts.html",
    "chars": 3256,
    "preview": "<h3>物件導向</h3>\n\n<p>\n    JavaScript 即使跟其他語言在物件導向方面有些爭論的地方,但仍具有強烈物件導向的編程能力。\n</p>\n\n<p class=\"source\">\n    來源: <a target=\"_bl"
  },
  {
    "path": "i18n/zh-tw/partials/licence.html",
    "chars": 1029,
    "preview": "               <p style=\"width: 100%; text-align: center; box-sizing: border-box;\">\n                    <a rel=\"license\""
  },
  {
    "path": "i18n/zh-tw/partials/patterns.html",
    "chars": 4604,
    "preview": "\n                <h3>說明</h3>\n\n                <p>\n                    雖然 JavaScript 包含了自身語言獨有的設計模式,但許多經典的設計模式仍然可以實作。\n   "
  },
  {
    "path": "i18n/zh-tw/partials/testing-tools.html",
    "chars": 46,
    "preview": "<h3>說明</h3>\n\n<p>JavaScript 程式測試相關的函式庫及框架。</p>\n"
  },
  {
    "path": "i18n/zh-tw/partials/welcome.html",
    "chars": 235,
    "preview": "<h1>注意!螢幕前的你!</h1>\n\n<p>\n    這是一份為 JavaScript 新手準備的指南,同時也包含了可以給老手學習的最佳範本。\n</p>\n\n<p>\n    雖然本網站的名字是 the right way ,但並不表示是撰寫"
  },
  {
    "path": "i18n/zh-tw/zh-tw.json",
    "chars": 27880,
    "preview": "{\n  \"meta\": {\n      \"title\":\"JS: The Right Way\",\n      \"description\":\"練習撰寫 JavaScript 的最佳快速指南 -- 來自網路上的程式碼風格及教學連結\"\n  },\n"
  },
  {
    "path": "manifest.json",
    "chars": 133,
    "preview": "{\n  \"name\": \"JS The Right Way\",\n  \"icons\": [],\n  \"start_url\": \"index.html\",\n  \"display\": \"standalone\",\n  \"orientation\": "
  },
  {
    "path": "package.json",
    "chars": 998,
    "preview": "{\n  \"name\": \"js-the-right-way\",\n  \"version\": \"0.0.0\",\n  \"description\": \"![](http://i.imgur.com/jaEbd80.png)\",\n  \"main\": "
  },
  {
    "path": "public/assets/css/core.css",
    "chars": 12329,
    "preview": "html {\n    font-family: 'Open Sans', sans-serif;\n    background: #f5f5f5;\n    box-sizing: border-box;\n}\n\nbody {\n    marg"
  },
  {
    "path": "public/assets/css/normalize.css",
    "chars": 7583,
    "preview": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Pre"
  },
  {
    "path": "public/assets/js/core.js",
    "chars": 4170,
    "preview": "var App = (function (window, document, $) {\n\n    'use strict';\n\n    var users = shuffle([\n            'BrendanEich',\n   "
  },
  {
    "path": "public/assets/js/vendor/jquery.lazyload.js",
    "chars": 9058,
    "preview": "/*!\n * Lazy Load - jQuery plugin for lazy loading images\n *\n * Copyright (c) 2007-2015 Mika Tuupola\n *\n * Licensed under"
  },
  {
    "path": "public/assets/js/vendor/jquery.scrollstop.js",
    "chars": 2168,
    "preview": "/* http://james.padolsey.com/javascript/special-scroll-events-for-jquery/ */\n\n(function(){\n    \n    var special = jQuery"
  },
  {
    "path": "public/de-de/index.html",
    "chars": 79819,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/en-us/index.html",
    "chars": 77701,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/es-es/index.html",
    "chars": 80278,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/fa-ir/index.html",
    "chars": 77138,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/index.html",
    "chars": 77716,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/ko-kr/index.html",
    "chars": 72145,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/pt-br/index.html",
    "chars": 79087,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/ru-ru/index.html",
    "chars": 79239,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/zh-cn/index.html",
    "chars": 69747,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "public/zh-tw/index.html",
    "chars": 69905,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "scripts/tasks/i18n.js",
    "chars": 3540,
    "preview": "/*\n * i18n\n *\n * Make/render the index file for each language\n * Copyright (c) 2015 Allan Esquina, contributors\n * Licen"
  },
  {
    "path": "templates/index.html",
    "chars": 16907,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygo"
  },
  {
    "path": "templates/old_index.html",
    "chars": 67063,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"utf-8\">\n        <title>JS: The Right Way</title>\n    "
  }
]

About this extraction

This page contains the full source code of the jstherightway/js-the-right-way GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 106 files (1.3 MB), approximately 338.1k tokens, and a symbol index with 4 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!