Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Deliverables of the HTML Working Group

This branch is 2404 commits behind w3c:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
2dcontext/images
boilerplate
fonts
images
scripts
.gitignore
Makefile
README.md
cldr.inc
complete.html
entities-legacy.inc
entities-unicode.inc
entities.inc
index
source
unmergedFromWHATWG

README.md

html

Deliverables of the HTML Working Group


Build instructions:

python scripts/publish.py [html|2dcontext]

output is placed in output/[html|2dcontext]

Spec Editing Cheatsheet

Checking out the HTML spec

  1. the HTML spec is on GitHub https://github.com/w3c/html

  2. there are multiple branches - get master to build the spec

Pull the code from GitHub:

$ git clone git@github.com:w3c/html.git
$ cd html
$ git checkout -b whatwg origin/feature/whatwg
Check what branches you now have:
$ git branch

To continue editing at a later stage:

$ git checkout master
$ git pull --rebase
Then check out each branch and:
$ git rebase master

To commit and push code to GitHub:

$ git commit -a
$ git push

Configuring git

Installing the necessary software

  1. you need to have python installed

  2. install anolislib: https://github.com/sideshowbarker/html5forAuthors/tree/master/anolis/anolislib

Get anolislib from Mike’s github repo:

$ git clone git://github.com/sideshowbarker/html5forAuthors.git
$ mkdir ~/opt
$ easy_install -d ~/opt html5lib
$ easy_install -d ~/opt lxml

Build the HTML spec

$ cd html
$ git checkout master
$ export PYTHONPATH=~/opt:~/Sites/html5/html5forAuthors/anolis/
$ python scripts/publish.py html

Resulting page is in output/html/single-page.html Or the multipage version at output/html/spec.html

Cherry pick commits from the WHATWG spec

  1. the WHATWG spec is developed in SVN at the WHATWG
  2. there is a git clone of it on GitHub https://github.com/w3c/html/tree/feature/whatwg
  3. we cherry-pick commits from the WHATWG spec into the html spec

Checkout the WHATWG spec:

$ git checkout feature/whatwg

Find out commit differences to html branch:

$ git cherry master

Find a commit that you want to apply, get it’s SHA:

$ git log

Show the SHA commit e.g.:

$git show 56446c4536af1ec5b39bde03b402d0772625fd92

Checkout the html spec:

$ git checkout master

Cherry pick the commit selected from before:

$ git cherry-pick -x 56446c4536af1ec5b39bde03b402d0772625fd92

If you want to edit the commit:

$ git cherry-pick -x -e 56446c4536af1ec5b39bde03b402d0772625fd92

Show changes to GitHub:

$ git diff origin

If you want to abort a cherry-pick:

$ git cherry-pick --abort

If you need a merge strategy:

$ git cherry-pick --strategy=ours -x 56446c4536af1ec5b39bde03b402d0772625fd92

Only pick parts of the commit (no-commit, then add selectively):

$ git cherry-pick -n -x 56446c4536af1ec5b39bde03b402d0772625fd92
$ git add -i
   r = revert a file
   p = go through by hunk and re-patch
   (when “>>” hit ENTER to start)
   q = bye
To just commit the staged parts:
$ git commit
To reset the unselected hunks:
$ git checkout complete.html index source

Create a new feature branch:

[make sure your .gitconfig defaults push to upstream]

$ git checkout master
$ git checkout -b feature/blah
$ git push --set-upstream origin feature/blah

Merging a feature branch:

You should not use the GitHub pull request merge feature, but instead rebase locally and push (to avoid a messy merge and get a linear history):

$ git checkout feature/blah
$ git rebase master

Test everything still works, then push to GitHub:

$ git push -f

Then merge on master:

$ git checkout master
$ git merge feature/blah
$ git push

If you want to delete the branch, too, remove it both on local and GitHub (the issue with the pull request will continue to exist):

$ git branch -d feature/blah
$ git push origin :feature/blah
Something went wrong with that request. Please try again.