Fri, 15 Mar 2013 08:52:20 +0100
correct instructions in README
1 SUMMARY
3 The CSSOM specifications are in the process of being transitioned from a
4 predominantly ANOLIS based processing tool to a combination of (1) a custom
5 pre-processor tool that uses WebIDL.js and (2) ANOLIS as a post-processor.
6 The goal of this change is to shift from using WebIDL embedded in HTML to HTML
7 embedded in WebIDL for the purpose of defining the source IDL specification
8 content. In the editors' opinion, this change permits better (automatic)
9 verification of IDL correctness along with subsequent HTML correctness.
11 More documentation on this custom tool will be provided before publishing a
12 new WD of the CSSOM specifications. So please remain patient if you are
13 looking for more details.
15 Note that substantial changes to the custom tool (organization, processing,
16 and syntax usage) are expected before concluding the above transition.
18 NOTES FOR EDITORS
20 1. The primary editor is using MacOSX 10.8 (Mountain Lion) and tools provided
21 by MacOSX, e.g., gcc, and MacPorts, e.g., py27-{lxml,html5lib} (used by
22 anolis), so if you aren't using this platform or something close to it, you
23 will have to account for any differences.
25 2. At the current time, the pre-processor tool requires a customized version
26 of WebIDL.js in order to support (1) string valued extended attributes and
27 (2) extended attributes on typedefs and other extended attributes, e.g.,
28 Constructor. See http://github.com/skynavga/webidl.js to obtain this
29 customized version.
31 3. At the current time, due to use of the C pre-processor to aggregate IDL
32 file definitions, the value of 'Documentation' extended attributes must not
33 contain an unescaped NEWLINE, meaning that values composed of multiple lines
34 must use C pre-processor style continuation lines, i.e., end in a backslash
35 character. This requirement is temporary and expected to go away in the
36 near future.
38 BUILDING
40 1. Satisfy all build dependencies (see next section below).
41 2. Run make (no arguments).
42 3. Open the resulting output file Overview.html.
44 BUILD DEPENDENCIES
46 In order to build the CSSOM related specification, you must install and
47 configure the following:
49 * node.js (http://nodejs.org)
50 * html5.js (http://github.com/aredridel/html5)
51 - must be loadable from node via require()
52 * webidl.js [customized] (http://github.com/skynavga/webidl.js)
53 - must be loadable from node via require()
54 * anolis (http://wiki.whatwg.org/wiki/Anolis)
56 The following shows a detailed version (with comments) of the above steps
57 performed on MacOSX 10.8.2, assuming your current directory is the same
58 directory that contains this README:
60 # Start from CSSOM directory.
61 % export CSSOM_HOME=`pwd`
63 # Make tools directory if needed.
64 % if [ ! -d tools ] ; then mkdir tools ; fi
65 % export CSSOM_TOOLS=$CSSOM_HOME/tools
66 % cd $CSSOM_TOOLS
68 # Fetch node.js 0.10.0
69 % wget http://nodejs.org/dist/v0.10.0/ $CSSOM_TOOLS/node-v0.10.0.pkg
71 # Install node.js 0.10.0
72 % open $CSSOM_TOOLS/node-v0.10.0.pkg
74 # Fetch html5.js
75 % git clone http://dinhe.net/~aredridel/projects/js/html5.git/ $CSSOM_TOOLS/html5.js
77 # Install local user copy of html5 (in ~/.npm and ~/node_modules).
78 % (cd $HOME; npm install $CSSOM_TOOLS/html5.js)
80 # Fetch (customized) webidl.js
81 % git clone http://github.com/skynavga/webidl.js $CSSOM_TOOLS/webidl.js
83 # Ensure node.js can access webidl.js
84 % if [ ! -d $HOME/.node_libraries ] ; then mkdir $HOME/.node_libraries ; fi
85 % ln -s $CSSOM_TOOLS/webidl.js/node/WebIDLParser.js $HOME/.node_libraries/
87 # Fetch anolis and make sure it is in $PATH.
88 % hg clone https://bitbucket.org/ms2ger/anolis $CSSOM_TOOLS/anolis
89 % sudo ln -s $CSSOM_TOOLS/anolis/anolis /usr/local/bin/anolis
91 COMMITTING CHANGES
93 1. hg pull
94 2. hg update
95 3. make cleanall all
96 4. [optionally] make clean in order to remove non-committed artifacts
97 5. hg commit -m 'comment'
98 6. hg push
100 TO DO
102 1. IDL Pre-Processor Related
104 * Enumerate constructors in a manner similar to attributes/operations.
105 * Perform keyword substitution in constructor documentation.
106 * Generate typedef and implements definitions.
107 * Generate extended attributes, e.g., PutForwards, NoInterfaceObject, etc.
108 * Generate setters, getters (not presently used in CSSOM IDL definitions).
110 2. Content Related
112 * Restore named properties (i.e., CSS2Properties) on CSSStyleDeclaration.
113 * Reorganize content sections, reordering aggregating/dividing as needed.
114 * Fill in implicit TBDs.
115 * Address outstanding bugs.