cssom/README

Fri, 15 Mar 2013 08:52:20 +0100

author
Simon Pieters <simonp@opera.com>
date
Fri, 15 Mar 2013 08:52:20 +0100
changeset 7759
654203ca5641
parent 7758
21e64880a16a
child 8018
9ccea5fe11d4
permissions
-rwxr-xr-x

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.

mercurial