/jindojs-jindo

Jindo JavaScript Framework

Primary LanguageJavaScript

This project is no longer maintained since 2017. Please use alternatives libraries as 'jQuery' and 'egjs' instead of Jindo and JC/JMC. If you need to migrate, check out migration documents(jQuery/JMC) listed as below.

Jindo JavaScript Framework - Do more, easier and faster

Build Status

Jindo is open source JavaScript framework developed by NAVER Corp. since 2010 (originally the project was started since 2007, but has been redeveloped completely from that year), providing a lot of useful methods in a way of wrapping native object and extending it.

Jindo is the main JavaScript framework used for developing most of NAVER's web products.

Jindo is part of JindoJS family product

JindoJS consists with : Jindo, Jindo Component and Jindo Mobile Component

Download

You can download customized version at Jindo download page :

Or download with Bower :

$ bower install jindojs-jindo

Modules

  • $ : Select DOM elements by id or create new one.
  • $Jindo : Provide information about Jindo and utility methods.
  • $Class : Provide methods to make object oriented programming style code.
  • $$(cssquery) : CSS selector engine.
  • $Agent : Provide information about browser, operating systems and user's system.
  • $A : Utility methods handling Array.
  • $H : Make enumerated key/value pair object hash, and provide utility methods to handle.
  • $Fn : Wrap native Function object and extend it providing utility methods.
  • $Event : Wrap native Event object and extend it providing utility methods.
  • $Element : Wrap native HTML element and provide useful utility methods.
  • $ElementList : Provide methods to handle more than one DOM elements at same time.
  • $Form : Provide utility methods to handle <form> element and its child elements.
  • $Document : Provide information about document element.
  • $Window : Wrap window object and provide useful methods.
  • $S : Wrap native String object and extend it providing utility methods.
  • $Json : Provide utility methods to handle JSON(JavaScript Object Notation).
  • $Ajax : Utility methods handling AJAX request and response.
  • $Date : Wrap native Date object and extend it providing utility methods.
  • $Cookie : Utility methods handling Cookie.
  • $Template : Template engine.

How to build your own version of Jindo

First, make directory where you want have the source of Jindo, then get the source from repo.

# make directory and enter
$ mkdir jindo && cd jindo

# get the clone from the repo
$ git clone https://github.com/naver/jindojs-jindo.git

# install dependency modules for build and build!
$ npm install && grunt
  • All of the build information like version, namespace setting, license, etc., can be found on 'package.json' file.
  • Build files can be found at './dist' directory and the structure will be like :
depth1 depth2 Explanation
./dist
desktop desktop version object files, which each object files merged with comments
doc API documentaion
merged Files which are merged and minified for distribution
meta meta files (dependencies info and changelog)
mobile mobile version object files, which each object files merged with comments

Running the Unit Test & Code Quality Tool

Jindo use QUnit for unit test and JSHint for code quality, so make sure you have all the necessary dependencies installed.

Running on command line

Running test on command line require Grunt installed on your machine.

# to install dependencies modules
$ npm install

# run JSHInt & QUnit test together
$ grunt qp

# run JSHInt only
$ grunt jshint

# run QUnit test for deskop and mobile version
$ grunt qunit

# run QUnit test for desktop version only
$ grunt qunit:desktop

# run QUnit test for mobile version only
$ grunt qunit:mobile

Running on browser

To run the test on your browser, you need to have a web server(like Apache) installed on your local machine.

# Test can be runned using via 1)runner file or 2)module file.

# 1) Runner file provide easy way for test modules separately or all test together.
http://localhost/jindo/test/[desktop|mobile]/runner.html?[all | module]

ex)
http://localhost/jindo/test/desktop/runner.html?all  # run all the desktop tests
http://localhost/jindo/test/mobile/runner.html?jindo.$Ajax  # run jindo.$Ajax mobile module test only


# 2) Module runner file
http://localhost/jindo/test/[desktop|mobile]/{$MODULE_NAME}.html

ex)
http://localhost/jindo/test/desktop/jindo.$Element.html  # run jindo.$Element desktop module test

i18n

For now, Jindo support Korean(ko) and English(en) as well.

Issues

When you find a bug, please report us via the GitHub issues page.

License

Who uses Jindo?

Important numbers of companies has been chosen JindoJS to build their web products. A few of them are listed below.

They uses JindoJS!

Analytics