Metadata-Version: 1.1
Name: neuronjs
Version: 2.3.1
Summary: The python middleware for neuron.js
Home-page: https://github.com/kaelzhang/python-neuronjs
Author: Kael Zhang
Author-email: i@kael.me
License: MIT
Description: |Build Status|
        
        python-neuronjs
        ===============
        
        Python utilities and middleware for neuron.js
        
        neuronjs analyzes the dependencies from user defined facades according
        to the dependency tree, and outputs ``<script>`` tags and configurations
        for `neuron.js <https://github.com/kaelzhang/neuron>`__
        
        The dependency tree can be generated by
        `neuron-package-dependency <https://github.com/kaelzhang/neuron-package-dependency>`__
        
        Install
        -------
        
        .. code:: sh
        
            $ pip install neuronjs
        
        Usage
        -----
        
        .. code:: py
        
            from neuronjs import Neuron
        
            n = Neuron(
              dependency_tree = dependency_tree,  # must defined
              resolve = resolve,
              version = version,
              cache = cache,
              debug = False)
        
        ``neuronjs`` could be used either in template file or your python
        controller.
        
        `Here <./sample/sample-jinja.html>`__ is a sample Jinja2 template file.
        
        -  **dependency\_tree** ``dict`` the ``json.loads()``\ ed dependency
           tree
        -  **resolve** ``function(id)=`` (optional) implements your own custom
           resolver. ``resolve`` accepts one parameter ``id`` which can be
           either a ``str`` of module id or a ``list`` of module ids. If a
           ``str`` is passed in, the method should returns the resolved absolute
           url of the module id. If ``id`` is a ``list``, an url of comboed
           script files should be returned.
        -  **debug** ``function|bool=False`` tells neuronjs whether should
           switch on debug mode. When on debug mode, no javascript files of
           dependencies will be preloaded, and the output will not be
           compressed.
        -  if ``debug`` is callable, neuronjs will use the return value of
           method ``debug``
        -  if ``debug`` is a boolean value, and ``debug`` is true, the debug
           mode will be on.
        -  **cache** ``dict=None`` if ``cache`` is defined, it should contains 3
           methods:
        -  ``cache.has(key)`` returns ``bool``
        -  ``cache.get(key)`` looks up and returns the cached value by key
        -  ``cache.set(key, value)`` sets the value by key
        -  **version** ``str`` only works if ``cache`` is defined. neuronjs will
           uses ``version`` to generate the key to cache the output result
        
        module id
        ^^^^^^^^^
        
        .. code:: js
        
            <name>@<version><path>  # for example: 'jquery@2.0.0/jquery.js'
        
        n.facade(entry, data=None, defer=False)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        -  **entry** ``str`` id of the entry module
        -  **data** ``dict=None`` the data of the facade, which will be passed
           to the entry module.
        -  **defer** ``bool=False`` whether should defer the loading process of
           the facade. If ``True``, the script of the facade and its
           dependencies will not be loaded at the beginning of the page as much
           as possible.
        
        Registers a facade entry with ``data``. neuronjs will
        
        Returns ``''``\ (empty string), so you can use this method in python
        template
        
        n.combo(id...)
        ^^^^^^^^^^^^^^
        
        Makes packages of ids to combine into a single file.
        
        -  id ``str`` the module id of commonjs module or css module.
        
        .. code:: js
        
            n.combo('jquery', 'underscore')
            n.combo('app-home/style.css', 'app-user/user.css')
        
        Returns ``''``
        
        n.css(id)
        ^^^^^^^^^
        
        Registers an css module, and tell neuronjs to output it on the page.
        
        Returns ``''``
        
        n.src(id)
        ^^^^^^^^^
        
        Returns the absolute path of the corresponding module.
        
        --------------
        
            Methods below are used in base template.
        
        n.output\_scripts()
        ^^^^^^^^^^^^^^^^^^^
        
        Outputs neuron.js, neuron initial configurations and the html of script
        tags.
        
        For most cases, this method should be used in the base template file,
        see `example <./sample/sample-jinja.html>`__.
        
        Returns ``str``
        
        n.output\_facades()
        ^^^^^^^^^^^^^^^^^^^
        
        Outputs the initialization of facades.
        
        Returns ``str``
        
        n.output\_css()
        ^^^^^^^^^^^^^^^
        
        Outputs the html of link elements of csses.
        
        For most cases, this method should be used in the base template file,
        see `example <./sample/sample-jinja.html>`__.
        
        Returns ``str``
        
        License
        -------
        
        MIT
        
        .. |Build Status| image:: https://travis-ci.org/kaelzhang/python-neuronjs.svg?branch=master
           :target: https://travis-ci.org/kaelzhang/python-neuronjs
        
Keywords: neuron.js middleware javascript loader facade
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: MIT License
