The YUI3NodeJS project uses several 3rd party open source libraries and tools.
This file summarizes the tools used, their purpose, and the licenses under which they’re released.
This node.js module attempts to setup and bootstrap a working YUI 3 instance.
This module includes support for remote script loading via Y.Get.script() and remote data fetching via Y.io.
See “JSDom Support” below for DOM manipulation.
All of the examples and tests assume you have
node in your path and they are all executable.
All dependencies are installed when you install the yui3 package via
For server side dom manipulation, you need the following packages installed:
npm install jsdom
npm install htmlparser
Express : LICENSE (MIT)
npm install express
Connect : LICENSE (MIT)
npm install connect
npm install yui3
You must have git and npm installed before you can develop.
git clone git://github.com/davglass/nodejs-yui3.git cd nodejs-yui3/ npm install .
To comply with the “no-globals” CommonJS spec, there is no global document or window in this mode.
Just including the nodejs-dom module will create a fake dom for this instance.
You can create a document like this:
View this Gist
You can make older DOM code run by setting up a couple of local variables, like this
If you are using YUI to serve pages, you should use a Nested Use to create the document when the request comes in.
I have an example showing this:
cd examples/ ./general-dom.js ./io.js ./library.js ./y-brower.js
When using JSDom, All relevent YUI 3 Dom & Selector tests pass. The ones that are skipped revolve around styles and postioning. Since there is no window or CSS cascade, these seem unimportant at the moment.
cd ./tests/ ./dom.js ./selector.js
This software is offered under the terms of the BSD license. See the LICENSE file or the YUI License for license text and copyright information.
Your contributions are welcome! Please review the YUI contributor guide before contributing. If you haven’t contributed to a YUI project before, you’ll need to review and sign the YUI CLA before we can accept your pull request.