Skip to content
This repository
Browse code

Moving repo to github

commit bd6830fd1ec987ef8f614eed4255a3c57737a3c4 1 parent 91d5fb0
Eric Bidelman authored July 30, 2012

Showing 124 changed files with 55,789 additions and 0 deletions. Show diff stats Hide diff stats

  1. 8  .gitignore
  2. 68  Makefile
  3. 35  NOTICE
  4. 182  app.yaml
  5. 36  cache.appcache
  6. 16  common.py
  7. BIN  conf/locale/de/LC_MESSAGES/django.mo
  8. 4,495  conf/locale/de/LC_MESSAGES/django.po
  9. BIN  conf/locale/en/LC_MESSAGES/django.mo
  10. 3,763  conf/locale/en/LC_MESSAGES/django.po
  11. BIN  conf/locale/es/LC_MESSAGES/django.mo
  12. 4,616  conf/locale/es/LC_MESSAGES/django.po
  13. BIN  conf/locale/fr/LC_MESSAGES/django.mo
  14. 4,590  conf/locale/fr/LC_MESSAGES/django.po
  15. BIN  conf/locale/ja/LC_MESSAGES/django.mo
  16. 4,462  conf/locale/ja/LC_MESSAGES/django.po
  17. BIN  conf/locale/psu/LC_MESSAGES/django.mo
  18. 2,630  conf/locale/psu/LC_MESSAGES/django.po
  19. BIN  conf/locale/pt/LC_MESSAGES/django.mo
  20. 4,542  conf/locale/pt/LC_MESSAGES/django.po
  21. BIN  conf/locale/ru/LC_MESSAGES/django.mo
  22. 4,529  conf/locale/ru/LC_MESSAGES/django.po
  23. BIN  conf/locale/zh/LC_MESSAGES/django.mo
  24. 4,158  conf/locale/zh/LC_MESSAGES/django.po
  25. 160  content/business/index.html
  26. 245  content/community.html
  27. 75  content/features/_feature_blank.html
  28. 173  content/features/connectivity.html
  29. 109  content/features/feature.html
  30. 106  content/features/file_access.html
  31. 178  content/features/graphics.html
  32. 24  content/features/index.html
  33. 92  content/features/multimedia.html
  34. 180  content/features/nuts_and_bolts.html
  35. 121  content/features/offline.html
  36. 263  content/features/performance.html
  37. 170  content/features/presentation.html
  38. 132  content/features/semantics.html
  39. 112  content/features/storage.html
  40. 133  content/gaming/index.html
  41. 65  content/humans.txt
  42. 326  content/index.html
  43. 94  content/live.html
  44. 176  content/live/standby.html
  45. 12  content/mobile/cross-device/en/build.sh
  46. 1  content/mobile/cross-device/en/footer.html
  47. 17  content/mobile/cross-device/en/header.html
  48. 423  content/mobile/cross-device/en/index.html
  49. 413  content/mobile/cross-device/en/index.md
  50. 241  content/mobile/debugging/en/index.html
  51. 179  content/mobile/index.html
  52. 450  content/mobile/mobifying/en/index.html
  53. 349  content/mobile/nativedebate/en/index.html
  54. 760  content/mobile/optimization-and-performance/en/index.html
  55. 393  content/mobile/responsivedesign/en/index.html
  56. 289  content/mobile/touch/de/index.html
  57. 393  content/mobile/touch/en/index.html
  58. 289  content/mobile/touch/es/index.html
  59. 288  content/mobile/touch/fr/index.html
  60. 289  content/mobile/touch/ja/index.html
  61. 289  content/mobile/touch/pt/index.html
  62. 289  content/mobile/touch/ru/index.html
  63. 289  content/mobile/touch/zh/index.html
  64. 268  content/mobile/workingoffthegrid/en/index.html
  65. 23  content/privacy.html
  66. 125  content/profiles.html
  67. 391  content/resources.html
  68. 177  content/search.html
  69. 186  content/slides.html
  70. 23  content/tos.html
  71. 150  content/tutorials/3d/css/en/index.html
  72. 284  content/tutorials/appcache/beginner/de/index.html
  73. 322  content/tutorials/appcache/beginner/en/index.html
  74. 284  content/tutorials/appcache/beginner/es/index.html
  75. 284  content/tutorials/appcache/beginner/ja/index.html
  76. 284  content/tutorials/appcache/beginner/pt/index.html
  77. 284  content/tutorials/appcache/beginner/ru/index.html
  78. 11  content/tutorials/appcache/beginner/static/cache.manifest
  79. 284  content/tutorials/appcache/beginner/zh/index.html
  80. 232  content/tutorials/audio/quick/en/index.html
  81. BIN  content/tutorials/audio/quick/static/player_mp3_mini.swf
  82. BIN  content/tutorials/audio/quick/static/test.mp3
  83. BIN  content/tutorials/audio/quick/static/test.ogg
  84. 616  content/tutorials/canvas/imagefilters/en/index.html
  85. BIN  content/tutorials/canvas/imagefilters/static/demo_small.png
  86. 257  content/tutorials/canvas/integrating/en/index.html
  87. BIN  content/tutorials/canvas/integrating/static/box_canvas.png
  88. BIN  content/tutorials/canvas/integrating/static/harmony.png
  89. 74  content/tutorials/canvas/integrating/static/harmony/brushes/chrome.js
  90. 62  content/tutorials/canvas/integrating/static/harmony/brushes/circles.js
  91. 71  content/tutorials/canvas/integrating/static/harmony/brushes/fur.js
  92. 52  content/tutorials/canvas/integrating/static/harmony/brushes/grid.js
  93. 61  content/tutorials/canvas/integrating/static/harmony/brushes/longfur.js
  94. 84  content/tutorials/canvas/integrating/static/harmony/brushes/ribbon.js
  95. 68  content/tutorials/canvas/integrating/static/harmony/brushes/shaded.js
  96. 46  content/tutorials/canvas/integrating/static/harmony/brushes/simple.js
  97. 72  content/tutorials/canvas/integrating/static/harmony/brushes/sketchy.js
  98. 59  content/tutorials/canvas/integrating/static/harmony/brushes/squares.js
  99. 73  content/tutorials/canvas/integrating/static/harmony/brushes/web.js
  100. 287  content/tutorials/canvas/integrating/static/harmony/colorselector.js
  101. 50  content/tutorials/canvas/integrating/static/harmony/colorutils.js
  102. 326  content/tutorials/canvas/integrating/static/harmony/main.js
  103. 156  content/tutorials/canvas/integrating/static/harmony/menu.js
  104. 68  content/tutorials/canvas/integrating/static/harmony/palette.js
  105. BIN  content/tutorials/canvas/integrating/static/html5.gif
  106. BIN  content/tutorials/canvas/integrating/static/html5.png
  107. 2  content/tutorials/canvas/integrating/static/modernizr-1.7.min.js
  108. BIN  content/tutorials/canvas/integrating/static/paintweb_001.png
  109. 561  content/tutorials/canvas/notearsgame/en/index.html
  110. 245  content/tutorials/canvas/performance/de/index.html
  111. 5  content/tutorials/canvas/performance/en/build.sh
  112. 1  content/tutorials/canvas/performance/en/footer.html
  113. 33  content/tutorials/canvas/performance/en/header.html
  114. 407  content/tutorials/canvas/performance/en/index.html
  115. 427  content/tutorials/canvas/performance/en/index.md
  116. 245  content/tutorials/canvas/performance/es/index.html
  117. 245  content/tutorials/canvas/performance/ja/index.html
  118. 245  content/tutorials/canvas/performance/pt/index.html
  119. 245  content/tutorials/canvas/performance/ru/index.html
  120. BIN  content/tutorials/canvas/performance/static/bunny.png
  121. 45  content/tutorials/canvas/performance/static/embed.html
  122. 102  content/tutorials/canvas/performance/static/js/chart.js
  123. 170  content/tutorials/canvas/performance/static/js/deps/highcharts.js
8  .gitignore
... ...
@@ -0,0 +1,8 @@
  1
+*~
  2
+*.pyc
  3
+*.DS_Store
  4
+_localized
  5
+_unlocalized
  6
+
  7
+^studio\.html5rocks\.com\/samples\/.*\.zip
  8
+
68  Makefile
... ...
@@ -0,0 +1,68 @@
  1
+#
  2
+#	`make messages`
  3
+#
  4
+LANGUAGES=en de fr ja pt ru zh es
  5
+MAC_DJANGO_ROOT=/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_2
  6
+LINUX_DJANGO_ROOT=/usr/local/google/google_appengine/lib/django_1_2
  7
+IMPORT_ROOT=~/git/html5/google3/blaze-genfiles/devrel/html5rocks/po_files/server/tc_dump
  8
+ifeq "$(shell uname)" "Darwin"
  9
+	DJANGO_ROOT=$(MAC_DJANGO_ROOT)
  10
+else
  11
+	DJANGO_ROOT=$(LINUX_DJANGO_ROOT)
  12
+endif
  13
+
  14
+define HEREDOC
  15
+
  16
+HTML5Rocks Makefile
  17
+===================
  18
+
  19
+Run `make messages` to regenerate the *.po files in `conf/locale/*`, and
  20
+`make compile` to recompile the *.mo files that gettext will use to
  21
+translate strings.
  22
+
  23
+We're currently generating message files for English, German, Japanese,
  24
+Portuguese, Russian, Simplified Chinese, and Spanish. For additional
  25
+languages, edit the `LANGUAGES` variable in the Makefile.
  26
+
  27
+endef
  28
+export HEREDOC
  29
+
  30
+define EXPORT
  31
+
  32
+Export to Translation Console
  33
+=============================
  34
+
  35
+Hi! I've copied the newly generated English PO file to your local checkout
  36
+of the TC directory. Assuming that went well, head over to ~/git/html5/google3
  37
+and generate a CL, then drop a line to the TC team once it lands.
  38
+
  39
+If you have questions, ask mkwst@google.com. :)
  40
+endef
  41
+export EXPORT
  42
+
  43
+help:
  44
+	@echo "$$HEREDOC"
  45
+
  46
+yaml:
  47
+	@python ./scripts/localizer/l7r.py --generate --yaml=database/tutorials.yaml
  48
+
  49
+messages: yaml
  50
+	@for locale in $(LANGUAGES) ; do \
  51
+		PYTHONPATH=$(DJANGO_ROOT) $(DJANGO_ROOT)/django/bin/django-admin.py makemessages -l $$locale ; \
  52
+	done
  53
+	@python ./scripts/localizer/l7r.py --generate
  54
+	@rm -f ./database/_tutorials.yaml.html
  55
+
  56
+compile:
  57
+	@PYTHONPATH=$(DJANGO_ROOT) $(DJANGO_ROOT)/django/bin/django-admin.py compilemessages
  58
+	@python ./scripts/localizer/l7r.py --import
  59
+
  60
+export: messages
  61
+	@cp ./conf/locale/en/LC_MESSAGES/django.po ~/git/html5/google3/devrel/html5rocks/po_files/django.po
  62
+	@echo "$$EXPORT"
  63
+
  64
+import:
  65
+	@for locale in $(LANGUAGES) ; do \
  66
+	  [ -r $(IMPORT_ROOT)/$$locale/django.po ] && cp $(IMPORT_ROOT)/$$locale/django.po ./conf/locale/$$locale/LC_MESSAGES/django.po ; \
  67
+	done
  68
+
35  NOTICE
... ...
@@ -0,0 +1,35 @@
  1
+This project includes the html5lib library:
  2
+http://code.google.com/p/html5lib/
  3
+
  4
+Which is licensed under the following license:
  5
+Copyright (c) 2006-2008 The Authors
  6
+
  7
+Contributors:
  8
+James Graham - jg307@cam.ac.uk
  9
+Anne van Kesteren - annevankesteren@gmail.com
  10
+Lachlan Hunt - lachlan.hunt@lachy.id.au
  11
+Matt McDonald - kanashii@kanashii.ca
  12
+Sam Ruby - rubys@intertwingly.net
  13
+Ian Hickson (Google) - ian@hixie.ch
  14
+Thomas Broyer - t.broyer@ltgt.net
  15
+Jacques Distler - distler@golem.ph.utexas.edu
  16
+Henri Sivonen - hsivonen@iki.fi
  17
+The Mozilla Foundation (contributions from Henri Sivonen since 2008)
  18
+
  19
+Permission is hereby granted, free of charge, to any person obtaining a copy of 
  20
+this software and associated documentation files (the "Software"), to deal in 
  21
+the Software without restriction, including without limitation the rights to 
  22
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
  23
+of the Software, and to permit persons to whom the Software is furnished to do 
  24
+so, subject to the following conditions:
  25
+
  26
+The above copyright notice and this permission notice shall be included in all 
  27
+copies or substantial portions of the Software.
  28
+
  29
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
  30
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
  31
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
  32
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
  33
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
  34
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
  35
+SOFTWARE.
182  app.yaml
... ...
@@ -0,0 +1,182 @@
  1
+application: html5rocks-hrd
  2
+version: master
  3
+runtime: python
  4
+api_version: 1
  5
+
  6
+default_expiration: "30d"
  7
+
  8
+handlers:
  9
+
  10
+- url: /google75906d613a2a09ba.html
  11
+  static_files: static/google75906d613a2a09ba.html
  12
+  upload: static/google75906d613a2a09ba.html
  13
+
  14
+# Web App Field Guide
  15
+
  16
+- url: /webappfieldguide/(.*\.(appcache|manifest))
  17
+  static_files: webappfieldguide/static/\1
  18
+  mime_type: text/cache-manifest
  19
+  upload: webappfieldguide/static/(.*\.(appcache|manifest))
  20
+  expiration: "0s"
  21
+
  22
+- url: /webappfieldguide/css
  23
+  static_dir: webappfieldguide/static/css
  24
+
  25
+- url: /webappfieldguide/img
  26
+  static_dir: webappfieldguide/static/img
  27
+
  28
+- url: /webappfieldguide/js
  29
+  static_dir: webappfieldguide/static/js
  30
+
  31
+- url: /webappfieldguide/index.html
  32
+  static_files: webappfieldguide/index/index.html
  33
+  upload: webappfieldguide/index/index.html
  34
+
  35
+- url: /webappfieldguide/(.*\.(html|txt|xml|png|ico))
  36
+  static_files: webappfieldguide/static/\1
  37
+  upload: webappfieldguide/static/(.*\.(html|txt|xml|png|ico))
  38
+
  39
+- url: /webappfieldguide
  40
+  static_files: webappfieldguide/index/index.html
  41
+  upload: webappfieldguide/index/index.html
  42
+
  43
+- url: /webappfieldguide/(.*)
  44
+  static_files: webappfieldguide/index/index.html
  45
+  upload: webappfieldguide/index/index.html
  46
+
  47
+
  48
+
  49
+# Server appropriate mimetype for certain static content.
  50
+
  51
+#
  52
+# Video Formats
  53
+#
  54
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.webm)
  55
+  mime_type: audio/webm
  56
+  static_files: content/\2/static/\3
  57
+  upload: content/tutorials/(.*\.webm)
  58
+
  59
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.webm)
  60
+  mime_type: video/webm
  61
+  static_files: content/\2/static/\3
  62
+  upload: content/tutorials/(.*\.webm)
  63
+
  64
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.ogv)
  65
+  mime_type: video/ogg
  66
+  static_files: content/\2/static/\3
  67
+  upload: content/tutorials/(.*\.ogv)
  68
+
  69
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.ogv)
  70
+  mime_type: video/ogg
  71
+  static_files: content/\2/static/\3
  72
+  upload: content/tutorials/(.*\.ogv)
  73
+
  74
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.mp4)
  75
+  mime_type: audio/mp4
  76
+  static_files: content/\2/static/\3
  77
+  upload: content/tutorials/(.*\.mp4)
  78
+
  79
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.mp4)
  80
+  mime_type: video/mp4
  81
+  static_files: content/\2/static/\3
  82
+  upload: content/tutorials/(.*\.mp4)
  83
+
  84
+#
  85
+# Audio Formats
  86
+#
  87
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.(ogg|oga))
  88
+  mime_type: audio/ogg
  89
+  static_files: content/\2/static/\3
  90
+  upload: content/tutorials/(.*\.(ogg|oga))
  91
+
  92
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.(ogg|oga))
  93
+  mime_type: audio/ogg
  94
+  static_files: content/\2/static/\3
  95
+  upload: content/tutorials/(.*\.(ogg|oga))
  96
+
  97
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.mp3)
  98
+  mime_type: audio/mp3
  99
+  static_files: content/\2/static/\3
  100
+  upload: content/tutorials/(.*\.mp3)
  101
+
  102
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.wav)
  103
+  mime_type: audio/wav
  104
+  static_files: content/\2/static/\3
  105
+  upload: content/tutorials/(.*\.wav)
  106
+
  107
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.wav)
  108
+  mime_type: audio/wav
  109
+  static_files: content/\2/static/\3
  110
+  upload: content/tutorials/(.*\.wav)
  111
+
  112
+#
  113
+# Cache Manifests
  114
+#
  115
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.(appcache|manifest))
  116
+  expiration: "0s"
  117
+  mime_type: text/cache-manifest
  118
+  static_files: content/\2/static/\3
  119
+  upload: content/tutorials/(.*\.(appcache|manifest))
  120
+
  121
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.(appcache|manifest))
  122
+  expiration: "0s"
  123
+  mime_type: text/cache-manifest
  124
+  static_files: content/\2/static/\3
  125
+  upload: content/tutorials/(.*\.(appcache|manifest))
  126
+
  127
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.crx)
  128
+  static_files: content/tutorials/\1
  129
+  mime_type: application/x-chrome-extension
  130
+  upload: content/tutorials/(.*\.crx)
  131
+
  132
+- url: /(.+\.(appcache|manifest))
  133
+  expiration: "0s"
  134
+  mime_type: text/cache-manifest
  135
+  static_files: \1
  136
+  upload: (.*\.(appcache|manifest))
  137
+
  138
+#
  139
+# Everything else
  140
+#
  141
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.vtt)
  142
+  mime_type: text/vtt
  143
+  static_files: content/\2/static/\3
  144
+  upload: content/tutorials/(.*\.vtt)
  145
+
  146
+- url: /(\w{2,3})/(tutorials/casestudies)/(.+\.(gif|swf|mp3|css|js|png|jpeg|jpg|svg|ogm|fla|zip|pdf))
  147
+  static_files: content/\2/static/\3
  148
+  upload: content/tutorials/casestudies/(.*\.(gif|swf|mp3|css|js|png|jpeg|jpg|svg|ogm|fla|zip|pdf))
  149
+
  150
+- url: /(\w{2,3})/(tutorials/[^/]+/[^/]+)/(.+\.(html|gif|swf|mp3|css|js|png|jpeg|jpg|svg|ogm|fla|zip|pdf))
  151
+  static_files: content/\2/static/\3
  152
+  upload: content/tutorials/(?!casestudies)(.*?/(?!index)[^/]*\.(html|gif|swf|mp3|css|js|png|jpeg|jpg|svg|ogm|fla|zip|pdf))
  153
+
  154
+# Anything under /static will automatically be considered static.
  155
+- url: /static
  156
+  static_dir: static
  157
+
  158
+- url: /favicon.ico
  159
+  static_files: static/favicon.ico
  160
+  upload: static/favicon.ico
  161
+
  162
+- url: /robots.txt
  163
+  static_files: static/robots.txt
  164
+  upload: static/robots.txt
  165
+
  166
+- url: /database/live
  167
+  script: main.py
  168
+  login: required
  169
+
  170
+- url: /database/.*
  171
+  script: main.py
  172
+  login: admin
  173
+
  174
+- url: /admin/.*
  175
+  script: $PYTHON_LIB/google/appengine/ext/admin
  176
+  login: admin
  177
+
  178
+- url: /echoserver
  179
+  script: echo.py
  180
+
  181
+- url: .*
  182
+  script: main.py
36  cache.appcache
... ...
@@ -0,0 +1,36 @@
  1
+CACHE MANIFEST
  2
+
  3
+CACHE:
  4
+/favicon.ico
  5
+
  6
+/static/js/app.min.js
  7
+/static/js/prettify.min.js
  8
+/static/js/profiles.min.js
  9
+/static/js/modernizr.custom.73722.js
  10
+/static/js/feature.min.js
  11
+/static/js/handlebars-1.min.js
  12
+/static/js/tutsapp.min.js
  13
+/static/js/persona.min.js
  14
+/static/js/search.min.js
  15
+
  16
+/static/css/base.min.css
  17
+/static/css/mobile.min.css
  18
+
  19
+/static/images/google_logo_small.png
  20
+/static/images/browser_logos.png
  21
+/static/images/identity/classes_32/badge-icon-sprite_32.png
  22
+/static/images/identity/HTML5_Badge_64.png
  23
+
  24
+FALLBACK:
  25
+/static/images/ /static/images/identity/HTML5_Badge_32.png
  26
+
  27
+NETWORK:
  28
+*
  29
+# Tue Jan 31 14:52:59 PST 2012
  30
+# Tue Jan 31 14:58:53 PST 2012
  31
+# Tue Jan 31 15:00:54 PST 2012
  32
+# Tue Jan 31 15:02:48 PST 2012
  33
+# Tue Jan 31 15:27:18 PST 2012
  34
+# Fri May 25 13:44:38 EST 2012
  35
+# Fri May 25 13:50:30 EST 2012
  36
+# Fri May 25 14:05:07 EST 2012
16  common.py
... ...
@@ -0,0 +1,16 @@
  1
+import os
  2
+
  3
+if 'SERVER_SOFTWARE' in os.environ:
  4
+  PROD = not os.environ['SERVER_SOFTWARE'].startswith('Development')
  5
+else:
  6
+  PROD = True
  7
+
  8
+APP_VERSION = os.environ['CURRENT_VERSION_ID'].split('.')[0]
  9
+
  10
+MEMCACHE_KEY_PREFIX = 'newscheme' #APP_VERSION
  11
+MAX_FETCH_LIMIT = 1000
  12
+
  13
+# Users whitelisted to access certain sections the site.
  14
+WHITELISTED_USERS = [
  15
+  'chrome.devrel@gmail.com'
  16
+]
BIN  conf/locale/de/LC_MESSAGES/django.mo
Binary file not shown
4,495  conf/locale/de/LC_MESSAGES/django.po
4495 additions, 0 deletions not shown
BIN  conf/locale/en/LC_MESSAGES/django.mo
Binary file not shown
3,763  conf/locale/en/LC_MESSAGES/django.po
3763 additions, 0 deletions not shown
BIN  conf/locale/es/LC_MESSAGES/django.mo
Binary file not shown
4,616  conf/locale/es/LC_MESSAGES/django.po
4616 additions, 0 deletions not shown
BIN  conf/locale/fr/LC_MESSAGES/django.mo
Binary file not shown
4,590  conf/locale/fr/LC_MESSAGES/django.po
4590 additions, 0 deletions not shown
BIN  conf/locale/ja/LC_MESSAGES/django.mo
Binary file not shown
4,462  conf/locale/ja/LC_MESSAGES/django.po
4462 additions, 0 deletions not shown
BIN  conf/locale/psu/LC_MESSAGES/django.mo
Binary file not shown
2,630  conf/locale/psu/LC_MESSAGES/django.po
2630 additions, 0 deletions not shown
BIN  conf/locale/pt/LC_MESSAGES/django.mo
Binary file not shown
4,542  conf/locale/pt/LC_MESSAGES/django.po
4542 additions, 0 deletions not shown
BIN  conf/locale/ru/LC_MESSAGES/django.mo
Binary file not shown
4,529  conf/locale/ru/LC_MESSAGES/django.po
4529 additions, 0 deletions not shown
BIN  conf/locale/zh/LC_MESSAGES/django.mo
Binary file not shown
4,158  conf/locale/zh/LC_MESSAGES/django.po
4158 additions, 0 deletions not shown
160  content/business/index.html
... ...
@@ -0,0 +1,160 @@
  1
+{% extends "base.html" %}
  2
+{% load i18n %}
  3
+{% get_current_language as LANGUAGE_CODE %}
  4
+
  5
+{% block headtitle %}Business{% endblock %}
  6
+
  7
+{% block head %}
  8
+<!--<link rel="stylesheet" media="screen" href="/static/css/feature{% if prod %}.min{% endif %}.css" />-->
  9
+{% endblock %}
  10
+
  11
+{% block body %}
  12
+<div data-import-html>
  13
+  <header class="two_columns persona_header clearfix pattern-bg-lighter">
  14
+    <hgroup>
  15
+      <img src="/static/images/banner-business.png" width="462" height="176">
  16
+      <h1>
  17
+        HTML5 Works Hard<br>
  18
+        <span>And We Mean Business</span>
  19
+      </h1>
  20
+    </hgroup>
  21
+
  22
+    <section>
  23
+      <p>Businesses need to let their users access their core applications quickly and easily.
  24
+      With HTML5, the browser is becoming the main business platform. Features like websockets,
  25
+      offline storage and rich user interface let you create amazing business web applications.
  26
+      HTML5 brings substantial benefits for companies that no other IT model can — in simplicity,
  27
+      cost, security, flexibility and mobility.</p>
  28
+    </section>
  29
+  </header>
  30
+
  31
+  <article class="sectioned">
  32
+    <section class="feed one_half">
  33
+      <h3>{% trans "Business" %} {% trans "Updates" %}</h3>
  34
+      <ul id="updates_list">
  35
+        {% for tut in tutorials %}
  36
+          {% if tut.type != 'tutorial' and tut.type != 'article' %}
  37
+            <li data-pubdate="{{tut.publication_date}}">
  38
+              <span class="date">{{tut.publication_date.month}}/{{tut.publication_date.day}}</span> <span class="author" data-author_id="{{ tut.author.key.name }}"><img src="/static/images/profiles/75/{{tut.author.key.name}}.75.png" alt="{{ tut.author.given_name }} {{ tut.author.family_name }}" title="{{ tut.author.given_name }} {{ tut.author.family_name }}"></span>
  39
+              <span class="title"><a href="{{tut.url}}">{{tut.title|safe}}</a></span>
  40
+              <span class="classes">
  41
+                {% for tag in tut.classes %}
  42
+                  <span class="class {{tag}}"><span class="class_name">{{tag}}</span></span>
  43
+                {% endfor %}
  44
+              </span>
  45
+            </li>
  46
+          {% endif %}
  47
+        {% empty %}
  48
+          Sorry, nothing available yet. Become a <a href="http://code.google.com/p/html5rocks/wiki/ContributorsGuide" target="_blank">contributor</a>.
  49
+        {% endfor %}
  50
+      </ul>
  51
+      <div><a href="/{{LANGUAGE_CODE}}/tutorials#audience:business">{% trans "Give me everything" %} &rarr;</a></div>
  52
+    </section>
  53
+
  54
+    <section class="tutorials one_half figures">
  55
+      <h3>{% trans "Business" %} {% trans "Tutorials" %}</h3>
  56
+      <ul class="definitions">
  57
+        {% for r in tutorials %}
  58
+          {% if forloop.counter0 < 10 %}
  59
+            {% if r.type == 'tutorial' or r.type == 'article' %}
  60
+            <li>
  61
+              <a href="{{r.url}}">{{r.title}}</a><br>
  62
+              <span>{{r.description|safe|truncatewords:15}}</span>
  63
+              </a>
  64
+            </li>
  65
+            {% endif %}
  66
+          {% endif %}
  67
+        {% empty %}
  68
+          <p>Sorry, nothing available yet. Become a <a href="http://code.google.com/p/html5rocks/wiki/ContributorsGuide" target="_blank">contributor</a>.</p>
  69
+        {% endfor %}
  70
+      </ul>
  71
+      <div><a href="/{{LANGUAGE_CODE}}/tutorials#audience:business">{% trans "Give me everything" %} &rarr;</a></div>
  72
+    </section>
  73
+
  74
+    <section>
  75
+      <h3>{% trans "Why move to HTML5 now than later?" %}</h3>
  76
+      <ul>
  77
+        <li>HTML5 can be deployed across multiple platforms and a wide range of mobile devices.</li>
  78
+        <li>It's a less expensive and more productive solution to have one source code for all your platforms. </li>
  79
+        <li>HTML5 contains a lot of features that are very useful and powerful for business:
  80
+          <ul>
  81
+            <li><b>Security</b>: Secure web sockets gives you high throughput on a secure channel.</li>
  82
+            <li><b>Efficiency</b>: Multi-threading with web workers let you do more computational tasks in your clients’ machines.</li>
  83
+            <li><b>Offline</b>: Client-side databases to store data so you can be productive when you don’t have an internet connection.</li>
  84
+          </ul>
  85
+        </li>
  86
+        <li>Lots of other leading companies are moving to HTML5: Adobe, Salesforce, Citrix,  <a href="" target="_blank">Netflix</a>, Twitter etc.</li>
  87
+      </ul>
  88
+    </section>
  89
+
  90
+    <section class="tools">
  91
+      <hgroup>
  92
+        <h3>{% trans "Tools &amp; Frameworks" %}</h3>
  93
+      </hgroup>
  94
+      <div>
  95
+        <ul class="two_columns">
  96
+          <li><a href="https://gist.github.com/350433">localStorage polyfill</a></li>
  97
+          <li><a href="http://code.google.com/p/sessionstorage/">sessionStorage polyfill</a></li>
  98
+          <li><a href="http://amplifyjs.com/">amplifyjs.js</a></li>
  99
+          <li><a href="https://github.com/jensarps/IDBWrapper">IDBWrapper</a> - wrapper library for IndexedDB</li>
  100
+          <li><a href="http://www.sencha.com/products/">Sencha</a></li>
  101
+          <li><a href="http://www.strobecorp.com/">Strobe</a></li>
  102
+          <li><a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a></li>
  103
+          <li><a href="http://code.google.com/closure/library/">Google Closure Library</a></li>
  104
+        </ul>
  105
+      </div>
  106
+    </section>
  107
+
  108
+    <section class="resources">
  109
+      <hgroup>
  110
+        <h3>{% trans "Additional Resources" %}</h3>
  111
+      </hgroup>
  112
+      <div>
  113
+        <ul class="two_columns">
  114
+          <li><a href="http://www.google.com/chromebook/#business-education/">Chromebooks for Business</a></li>
  115
+          <li><a href="http://hacks.mozilla.org/2010/01/offline-web-applications/">Mozilla Hack: Offline Web Applications</a></li>
  116
+          <li><a href="https://developer.mozilla.org/En/Offline_resources_in_Firefox">MDN Documentation: Offline</a></li>
  117
+          <li><a href="http://dev.opera.com/articles/view/offline-applications-html5-appcache/">Running your web applications offline with HTML5 AppCache</a></li>
  118
+        </ul>
  119
+      </div>
  120
+    </section>
  121
+
  122
+    <section class="contributors">
  123
+      <hgroup>
  124
+        <h3>{% trans "Recent Contributors" %}</h3>
  125
+      </hgroup>
  126
+      <ul class="authors">
  127
+        {% for a in authors %}
  128
+          {% if forloop.counter0 < 4 %}
  129
+          <li class="profile" id="{{ a.key.name }}" itemscope itemtype="http://microformats.org/profile/hcard">
  130
+            <a href="/{{LANGUAGE_CODE}}/profiles#{{ a.key.name }}">
  131
+              <img itemprop="photo" alt="{{ a.given_name }} {{ a.family_name }}" title="{{ a.given_name }} {{ a.family_name }}" src="/static/images/profiles/75/{{a.key.name}}.75.png">
  132
+              <h2>
  133
+                <div itemprop="fn">
  134
+                  <div itemprop="n" itemscope>
  135
+                    <span itemprop="given-name">{{ a.given_name }}</span>
  136
+                    <span itemprop="family-name">{{ a.family_name }}</span>
  137
+                  </div>
  138
+                </div>
  139
+              </h2>
  140
+              <h3 itemprop="org" itemscope>
  141
+                <div itemprop="organization-unit">{{ a.unit }}</div>
  142
+                <div itemprop="organization-name">{{ a.org}}</div>
  143
+              </h3>
  144
+            </a>
  145
+          </li>
  146
+          {% endif %}
  147
+          {% empty %}
  148
+          Sorry, nothing available yet. Become a <a href="http://code.google.com/p/html5rocks/wiki/ContributorsGuide" target="_blank">contributor</a>.
  149
+        {% endfor %}
  150
+      </ul>
  151
+    </section>
  152
+  </div>
  153
+</div>
  154
+
  155
+<script>
  156
+  var selfPage = '{{self_pagename}}'; // Need to pass in current page id to persona.js via template.
  157
+</script>
  158
+<script defer src="/static/js/handlebars-1{% if prod %}.min{% endif %}.js"></script>
  159
+<script defer src="/static/js/persona{% if prod %}.min{% endif %}.js"></script>
  160
+{% endblock %}
245  content/community.html
... ...
@@ -0,0 +1,245 @@
  1
+{% extends "base.html" %}
  2
+{% load i18n %}
  3
+{% get_current_language as LANGUAGE_CODE %}
  4
+
  5
+{% block headtitle %}{% trans "Home" %}{% endblock %}
  6
+
  7
+{% block head %}
  8
+<style>
  9
+  h1 {
  10
+    font-family: 'Droid Sans';
  11
+  }
  12
+  #community .resource-category {
  13
+    font-size: 20px;
  14
+    font-weight: bold;
  15
+    font-family: 'Droid Sans';
  16
+    color: black;
  17
+    padding: 0;
  18
+    text-transform: uppercase;
  19
+  }
  20
+  #community iframe {
  21
+    width: 100%;
  22
+  }
  23
+  #community nav ul {
  24
+    width: 100%;
  25
+    overflow: hidden;
  26
+    padding: 0;
  27
+    border-bottom: 1px solid #666;
  28
+  }
  29
+  #community nav li:first-child {
  30
+    margin-left: 10px;
  31
+  }
  32
+
  33
+  #community nav img {
  34
+    width: 20px;
  35
+    height: 20px;
  36
+    vertical-align: bottom;
  37
+    margin: 0 4px -1px 0;
  38
+  }
  39
+  #community nav li {
  40
+    float: left;
  41
+    list-style: none;
  42
+    padding: 5px 12px;
  43
+    margin-right: 3px;
  44
+    border: 1px solid #666;
  45
+    border-bottom: none;
  46
+    width: 20%;
  47
+    cursor: pointer;
  48
+    background-color: #ddd;
  49
+    -webkit-transition: all .5s ease-in;
  50
+  }
  51
+  #community .community-section {
  52
+    -webkit-transition: all .5s ease-in;
  53
+    display: none;
  54
+  }
  55
+  #community nav li.active {
  56
+    background-color: white;
  57
+  }
  58
+  #stackoverflow {
  59
+    margin-top: 40px;
  60
+    color: black;
  61
+    padding: 5px;
  62
+  }
  63
+  #stackoverflow .gfc-title {
  64
+    font-size: 20px;
  65
+    padding: 10px 0;
  66
+    display: block;
  67
+    color: black;
  68
+  }
  69
+  #stackoverflow .gfc-result {
  70
+    padding: 5px 0;
  71
+    border-bottom: 1px solid #ddd;
  72
+  }
  73
+ </style>
  74
+{% endblock %}
  75
+
  76
+{% block body %}
  77
+{% include "header.html" %}
  78
+<h1>{% trans "Community" %}</h1>
  79
+<p>{% trans "The HTML5 community is getting bigger and bigger. Here you will find some resources to be up to date about the latest HTML5 news as well as to be able to discuss with developers and engineers the experimental features and proposals around the standards and browser implementations." %}</p>
  80
+
  81
+<div id="community">
  82
+  <nav>
  83
+    <ul>
  84
+      <li data-tab="forum" class="active"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG2YAABzjgAA9p4AAIW3AAB6nAAA+BkAADGPAAAVH/ZpW8gAAARsSURBVHjarJVLbBVlFMf/M/PNzJ374HJvm9vKLdBiS6OFxpKoxAg+FmhpAtGYoNEaJdGIEDbKipXRunKtGzAseIjGWKsiRtASW1FCiZLyrBdbem9f9znvmW9mvs8FhoSERBec5TnJ7/xz/sn/CJxz3MsS+vr67mgwxiAIAgJK4fk+EolEGyGkO5vNdGlaYgUNfKtRr98gErlSqZQLRJY9AQIYi6CoMZC7bQnDEL7vd/f29r7Z39+/bX1vb2dbWxtULQ7bDVCpLOHa1Wvm2JnR0bPjZw44tjMiK/LdFVJKoSjKG7t37/5gx44Xc8lk4vYs4EC1EUKLEUgyYFoBJs79Hh34+KPPJicvvp1KpY07gIwxAHhpaGjo8MDAgBhxIIwYwohheHQGP1+YgyAIUBUJ2ze3o3tVBpBUzM3NYmj/nqM3Cn+9IrW2tgIAOOdwHCc/OPjq8Z07X0/7AUMQMshERHHRwanzJWzZuBJPbsjjxPgMXC/EhrXNqNUNyFoa2abc+gu/jV4klFIAQBSFSKZST2wd2NrGAUT/uk8pQ0uThl3P9+D7s7M4cnIKK1sS2LapHQ3Lg+VReIaHTO5+5Fd1PEfCMLh9u1wu15bNZhHdkgzGBfgBQxhxvHdwAmAcg/1r0d6agEcD1E0PrkvhuAE8n0KLp9qILCsAAFEUYVv2dLlcxX35PBw3gkNvwYgoYEN3M3o6MljRpKGsO3A8CsehcBwfLg1hmTpMvVYURVGEKApQFBWWbZ0aGflmUncBw2XwKAMNGJbqLkQBEASOsm7DtH1Ypg/L9qAbFip1E/M3r6K8WBwmjEXgnIFzAZRS+eiRQ6MP9vate/TxLfCoD4BDt32cPl+CpgDLEzJ004HjuGiYFmoNE4S7mPhl5Jjn02ECAEEQJHO5ln1PPf3C4MbHNuW7OjuxLMZQKlZh+wCXJAw+swam6WB+yYVu6NDNBjzXh0Cr9uWJH76euTH1lhrTIkKpn1zf23f43f0fbu/p6YIoAHU9wLfjN7EqpWPqynV4ARBxERAVUOoh5AR+lIAECxNnPj+4sLC4L55IUgCQOtpX79n1zvt7m/PdaNQNhDTEXNnCd+OzeHbzOuTzK5BJJ7EsoWLsxy+XfjpxbE+lePVSOqmujmnJeHMmmVlaKILS4BznHCSZSj0Qcg1ThSKIyJBNa6ARR3NaRsOwIREFTa2roS1nUOMpapjmIUoD1CrHP+ns7FpTqemG59PLgiBwACC1SvXQxK8nX17zUL9mWSbmFyV4kQTGgdmFGhgDXBrAqM7h+pU/huPxlCAIAicyKYmSXBJF8Y4skHItLbOl6WvzMUV4OCLplGH7sGwXlmnDNA2UKzVU5wps7OSRL25OF/YqaoxyxkCIiEwmC8d14TjObSBRFAWu5386NTm+6ZHWjtdKM4WZKDB1RVbjf097Nb02d2lhtjDS0I1hRVX/M2AJABBZTktEnfpzbHh/ZWH2K0VVa0SWZcs03Xq9UVVjGmRF/X+Jfa9fwD8DAH1dVXZg9O0EAAAAAElFTkSuQmCC" /><a href="#">{% trans "Forum" %}</a></li>
  85
+      <li data-tab="events"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG2YAABzjgAA9p4AAIW3AAB6nAAA+BkAADGPAAAVH/ZpW8gAAAMCSURBVHja5JRLbxtlFIaf75s4jh3n4nEcX2LHtUOccFUJlUAFCkJVV13BP2DVDX8BfgOI/4GE2LFpFyABIZQKioQDCY58t8eX8fibsWfmY1VE5W0XSLyrd/XoPTrnPUJrzbOU5Bnrvw9ceWLufdp63lsY6/noZfrYvDrpRq7fj42/fddIvfm93f7pcHu3ohrdyfia6RzUZ+XTPXn2TlPe+uasLuwPbw5/vfvey/ZTwGhUfFbKx2+/Vqr8cv7bIGvmCh9txXKjx3b847euHzz66pQbt984fnT648/VQrXci1qXQasX/2Q7scBfLN4HvngKKMSKTCVXOW+NXrL8XUx3Tr0Ry6xnYzx47N9Y28xyVlOvDP0MftstTntbrCXXUJ5PEGpzaeRsYtDeFD46EcEQGTajio2DIya2xc5+BU8pXF+QPyoytiekSmUSccWF20IEKlwCnuzbF3fePiIIQy4bbQ6Ku8xcl05/TrlgMrIdps6MQtak09eEWpJLJ/n6QY2hNRBLQEf58vfLFoEOmdiKwG8yX4RMlWIW9pHNGrnTL3FyJaKtC5qHtxi9eJNWf0p8JaKXzmZFiEj1Wo5qKUdyM85z5Tz7+TSp7QTV/R1KMTAqx/gf3EO/8Dp7KA4LSczkFlqjlxO63sr5X238MGQ0cTi/aOLNfaaui0cEabmYP9xntdtlUXtI7+QusmnTH45JRP4V7ImJrUbCSjGDHwT8edWlXMwzdRSdgUUpZ9JfexW7UKG4k6QxGLIaiVPc2aC2kWA+s5YTevNQ1Js9Aq2ZODPqzQ7zhY/tKK4aHaauy8IPCUaKiQoQykYIGDkO61IuAw0ZGNmMiQ4h8DV7mTRT5SKlJJdNM5xMUcojm97BkAZaa3LpNBvxdQJlLW/Zm9lhvd7EdmZctvoMLAvlLRjZU3qDIbYzw3XntLsDRmMbrTWd3pBGq0M+GTWWgDPX/bz2x/l3C09thIEI6vWxAKENAc36MMSQQoDsNgaBkFKgoeX0ZCEVE9n09sN/Gvf/e7B/DwASGoVisMH94QAAAABJRU5ErkJggg==" /><a href="#">{% trans "Events" %}</a></li>
  86
+      <li data-tab="irc-channel"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG2YAABzjgAA9p4AAIW3AAB6nAAA+BkAADGPAAAVH/ZpW8gAAAMAUExURfDWx21mT0atdJOpzmuHs7Kysujn5/Hk0bQjJ+bQssu1jiJJdcvLyvavseYsMWdWL/38/NrFokNojKKMbtzc234bHPPy8nyRi/WNkO9RVamhl3h8bvjw5pOHeqGWiPNwdMzX6KtVVrbF3z+KYH5vWItVWKqNTffo3cDk0L69vOrs79JPU6xwcd/j6Y2qlmo0Mvr17QM4aLieZZB/Y5N3PClgQtXU0r6lf8GKi53RtKI7PamopMfUzf7w8Pn5+f///0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///8NVCm0AAABAdFJOU////////////////////////////////////////////////////////////////////////////////////wDCe7FEAAABEUlEQVR42oyQsU7CUABFz2urrY8CjVpFEqCgJAwGBhd14eedHJwUAhKBiIpSGmmsxSeCQ0kcXLjjSU5y7xVN/kdjU2gAtAutWLiq8XBwUwgboHuAurNLUWYZraJQZUa5tW56A8zKY3nfRNbXOnpbsybZzDUa+G4Cw708vehWt5SlfYYJvBLnLbUlvmT19Ufk50klcRk4sqLL2r1Si8CaYEBQ9HWmRzU+XOl0+sxcDdrMo+FpKvT7I+Hb9F10D6c7m4kXObYF799PnLUKBgzrXeSkk44XkLN3twW6x/jZLsq5mTKP34hLvZ0TRBNYMZ1ioiIOBxdivUiQJVCRShc7VfF3XXfp+3E5jg0XSPSNTv4dADIZZKh9KudKAAAAAElFTkSuQmCC" /><a href="#">{% trans "IRC Channel" %}</a></li>
  87
+      <li data-tab="twitter"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG2YAABzjgAA9p4AAIW3AAB6nAAA+BkAADGPAAAVH/ZpW8gAAANPSURBVHjarJRNaFxVGIbf83PvnZl7507mJ0nppEkT05Q0lVoV0bbgT7MRxI2gKwtKN+rC4sqtIKWupFoqRcSFbrQbQakSWvAHNzZqaKslIdH+hHSmM+00c2fu3Dnn3vO5SCmNZEAhLxw4Bw4fz3ve7zuMiLCZ4thkyfsPr33xOwjA0qp51ss4Whmc+/Zyc80DYwDY3Zu0tjgDTAI6emBjQsYAIhr1bT6dy1jH6136IO/Zh2BoBAn9f8LP/4wwVkg9Nb0z/5YQHDv63V00KVBtqeCbi7ffu1KLjkIy+s9vGHTinYWsc6ylOaSKMGwbVG8FyDsi++rjg+9uK9lvINF3LQMwZOFfoa4ruG8s/8pzY/5A/U4FxWwa434V2bSFtkqQJAYHd/QdctOWABFszobLudSRjCMf62n5kZH+iQl2Ei9tO4EOJJYqB6HFCbg8BGMMrmBFHahhSBFODXlHdm9xX2jrpADglw0LBp1o4XwyBUdMwrU5ZulNZGQMizNIziA5tj86npvtK7r2WM7ymi39dbOlP1kX7P2N/cT7v22dHN0yk3bElC05XGmQljGkYOAE1MMI/kAX12pAEEToROG5r2bUNH36dI9QWnrl7+qt57u6Pe8gBCcFIoAISAhwU0BIEYbKFRzYUwV3uiOulH7PUIgIlUr414XFO6cIDJwBOiGo2EAlhG5sYAA0kjYuNSoImpm2TPNuz1BWLt4GGUI1LT8r5a3X948Xx20BtFQCQ0ArSBC2I8gCIbw5gBT8nwfLUbc3oWYgzYCY1ZdX1eEf52vNK/UODAmQARwnBamKaF2dQAoPNVbJOtmRdu9JIb0KMgSjBETi/6Ct3DNzNXacLd/cL+1UO+M6c0L2qd3u93uziXm7muz7oz+/flLWpczt7FrhJIZXHkH/g09i7zBj77x849RHM/7Zs7PZL4eKwLEXfzpcvrGw/PGZ0neXriucPl/rRdi6t+8sz6NWu47GA/Hg0nZ7dfGMqaxcoK0P7+mOLv7q7/pwrrBweqaDqN3oTejncvc+JykES9mW7GpytBbKErFjS1gxuInDOCTBjO0wRFEUB0GwMWHOX9dSFASB9jxPK6GY1nGsEgbihBJX1A47FGdK8DyvN+Fm6J8BAGl0idz72NFtAAAAAElFTkSuQmCC" /><a href="#">{% trans "Twitter" %}</a></li>
  88
+    </ul>
  89
+  </nav>
  90
+  <section id="forum" class="community-section">
  91
+    <!--
  92
+      Forum section
  93
+    -->
  94
+    <iframe id="forum_embed"
  95
+            src="javascript:void(0)"
  96
+            scrolling="no"
  97
+            frameborder="0"
  98
+            width="900"
  99
+            height="700">
  100
+    </iframe>
  101
+    <div id="stackoverflow">
  102
+
  103
+    </div>
  104
+  </section>
  105
+  <section id="events" class="community-section">
  106
+    <!--
  107
+      Events section
  108
+    -->
  109
+    <div id="events-list"></div>
  110
+  </section>
  111
+
  112
+  <section id="irc-channel" class="community-section">
  113
+    <!--
  114
+      IRC section
  115
+    -->
  116
+    <iframe src="http://webchat.freenode.net?channels=html5&uio=d4" height="400"></iframe>
  117
+  </section>
  118
+
  119
+  <section id="twitter" class="community-section">
  120
+    <!--
  121
+      Twitter section
  122
+    -->
  123
+    <div id="twitter-widget"></div>
  124
+  </section>
  125
+
  126
+  <script src="http://www.google.com/jsapi"></script>
  127
+
  128
+  <!-- tab handling -->
  129
+  <script>
  130
+    document.querySelector('#forum').style.display = 'block';
  131
+    var sections = document.querySelectorAll('.community-section');
  132
+    var tabs = document.querySelectorAll('nav li');
  133
+    document.querySelector('#community nav ul')
  134
+      .addEventListener('click', function(e) {
  135
+        e.preventDefault();
  136
+        var sectionName = e.target.getAttribute('data-tab') ||
  137
+                          e.target.parentNode.getAttribute('data-tab');
  138
+        var tabEl = (e.target.tagName == 'LI') ? e.target : e.target.parentNode;
  139
+        for (var k = 0; k < tabs.length; k++) {
  140
+          if (tabs[k] == tabEl) {
  141
+            if (!tabs[k].classList.contains('active'))
  142
+              tabs[k].classList.add('active');
  143
+          } else {
  144
+            tabs[k].classList.remove('active');
  145
+          }
  146
+        }
  147
+        if (sectionName) {
  148
+          for (var i = 0; i < sections.length; i++) {
  149
+            sections[i].style.display = (sections[i].id == sectionName) ?
  150
+                                       'block' : 'none';
  151
+          }
  152
+        }
  153
+    }, false);
  154
+  </script>
  155
+
  156
+  <!-- JS and CSS for events and forum section -->
  157
+  <script src="http://www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol.js">
  158
+  </script>
  159
+  <style>
  160
+    @import url("http://www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol.css");
  161
+  </style>
  162
+
  163
+  <script>
  164
+  document.getElementById("forum_embed").src = "https://groups.google.com/a/chromium.org/forum/embed/#!forum/chromium-html5";
  165
+      // "&showsearch=true&showpopout=true&parenturl=" +
  166
+      // encodeURIComponent(window.location.href);
  167
+
  168
+
  169
+    google.load('feeds', '1');
  170
+
  171
+    function OnLoad() {
  172
+      var eventFeeds = [
  173
+        {
  174
+          title: '{% trans "HTML5 conferences (Lanyrd)" %}',
  175
+          url: 'http://lanyrd.com/topics/html5-1/feed/'
  176
+        },
  177
+        {
  178
+          title: '{% trans "HTML5 Meetup Groups" %}',
  179
+          url: 'http://html5.meetup.com/newest/rss/New+HTML5+Groups'
  180
+        },
  181
+        {
  182
+          title: '{% trans "Google Developer Events Calendar" %}',
  183
+          url: 'http://www.google.com/calendar/feeds/developer-calendar@google.com/public/basic'
  184
+        }
  185
+      ];
  186
+
  187
+      var eventOptions = {
  188
+        stacked : true,
  189
+        horizontal : false,
  190
+        title : "{% trans "HTML5 Events" %}"
  191
+      };
  192
+
  193
+      new GFdynamicFeedControl(eventFeeds, 'events-list', eventOptions);
  194
+
  195
+      // Pulling stackoverflow google-chrome tagged to show in forum section
  196
+      var feedControl = new google.feeds.FeedControl();
  197
+      feedControl.addFeed("http://stackoverflow.com/feeds/tag/google-chrome", "Stack Overflow #google-chrome");
  198
+      feedControl.draw(document.getElementById("stackoverflow"));
  199
+    }
  200
+    google.setOnLoadCallback(OnLoad);
  201
+  </script>
  202
+
  203
+</div>
  204
+<script src="http://widgets.twimg.com/j/2/widget.js"></script>
  205
+<script>
  206
+  /*
  207
+   * Twitter gadget script
  208
+   */
  209
+  window.addEventListener('load', function() {
  210
+    new TWTR.Widget({
  211
+      version: 2,
  212
+      type: 'profile',
  213
+      rpp: 10,
  214
+      interval: 6000,
  215
+      width: 'auto',
  216
+      id: 'twitter-widget',
  217
+      height: 300,
  218
+      theme: {
  219
+        shell: {
  220
+          background: '#346fa3',
  221
+          color: '#ffffff'
  222
+        },
  223
+        tweets: {
  224
+          background: '#ffffff',
  225
+          color: '#000000',
  226
+          links: '#2ba0d6'
  227
+        }
  228
+      },
  229
+      features: {
  230
+        scrollbar: false,
  231
+        loop: false,
  232
+        live: true,
  233
+        hashtags: true,
  234
+        timestamp: true,
  235
+        avatars: false,
  236
+        behavior: 'all'
  237
+      }
  238
+    }).render().setUser('ChromiumDev').start();
  239
+  }, false);
  240
+
  241
+</script>
  242
+  {% include "footer.html" %}
  243
+
  244
+
  245
+{% endblock %}
75  content/features/_feature_blank.html
... ...
@@ -0,0 +1,75 @@
  1
+{% extends "feature.html" %}
  2
+{% load i18n %}
  3
+{% get_current_language as LANGUAGE_CODE %}
  4
+
  5
+{% block headtitle %}{% trans "Storage" %}{% endblock %}
  6
+{% block h2title   %}{% trans "Storage" %}{% endblock %}
  7
+{% block tuttags   %}storage,file,offline,webdatabase{% endblock %}
  8
+{% block caniuse   %}{% endblock %}
  9
+{% block supportblockstyle %}{% endblock %} <!-- 'multiple' if more than one caniuse class, 'none' if none. TODO: This logic should be moved out of the view!! -->
  10
+
  11
+{% block header %}
  12
+  <section id="intro">
  13
+    <p class="intro">
  14
+      {% blocktrans %}
  15
+        Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue. Fusce a felis in mi auctor rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse suscipit.
  16
+      {% endblocktrans %}
  17
+    </p>
  18
+  </section>
  19
+{% endblock %}
  20
+
  21
+
  22
+{% block description %}
  23
+  <section id="description">
  24
+    <h3>Lorem Ipsum</h3>
  25
+    <p>{% blocktrans %}Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue. Fusce a felis in mi auctor rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse suscipit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum est. Cras felis diam, malesuada in, pellentesque vel, ornare ut, purus. Suspendisse eget libero.{% endblocktrans %}</p>
  26
+
  27
+    <h3>{% trans "Foo" %}</h3>
  28
+    <p>{% blocktrans %}Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue. Fusce a felis in mi auctor rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse suscipit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum est. Cras felis diam, malesuada in, pellentesque vel, ornare ut, purus. Suspendisse eget libero.{% endblocktrans %}</p>
  29
+  </section>
  30
+{% endblock %}
  31
+
  32
+
  33
+{% block support_details %}
  34
+  <!-- <p>Lorem ipsum.</p>  -->
  35
+{% endblock %}
  36
+
  37
+
  38
+{% block tutorials %}
  39
+  <li><a href="http://example.com/foo">Lorem Ipsum Dolor Sit Amet</a></li>
  40
+  <li><a href="http://example.com/bar">consectetuer Adipiscing Elit</a></li>
  41
+{% endblock %}
  42
+
  43
+
  44
+{% block content %}
  45
+  <section id="demos">
  46
+    <h3>Demos</h3>
  47
+    <figure>
  48
+      <a href="">
  49
+        <img src="/static/images/features/">
  50
+        <figcaption></figcaption>
  51
+      </a>
  52
+    </figure>
  53
+  </section>
  54
+
  55
+  <section id="in_the_wild">
  56
+    <h3>In the Wild</h3>
  57
+    <figure>
  58
+      <a href="">
  59
+        <img src="/static/images/features/">
  60
+        <figcaption></figcaption>
  61
+      </a>
  62
+    </figure>
  63
+  </section>
  64
+
  65
+  <section id="resources">
  66
+    <h3>Resources</h3>
  67
+    <dl>
  68
+      <dt><a href="http://example.com/foo/bar/baz">Foo</a></dt>
  69
+      <dd>{% trans "Lorem ipsum dolor sit amet, consectetuer adipiscing elit." %}</dd>
  70
+    </dl>
  71
+  </section>
  72
+
  73
+  <!-- Add as many <section>s as you like! The three above are the most common. -->
  74
+  <!-- Make sure that new sections are given IDs and new entries in the master TOC navigator in the base template. -->
  75
+{% endblock %}
173  content/features/connectivity.html
... ...
@@ -0,0 +1,173 @@
  1
+{% extends "feature.html" %}
  2
+{% load i18n %}
  3
+{% get_current_language as LANGUAGE_CODE %}
  4
+
  5
+{% block headtitle %}{% trans "Connectivity" %}{% endblock %}
  6
+{% block h2title   %}{% trans "Connectivity" %}{% endblock %}
  7
+{% block tuttags   %}TODO{% endblock %}
  8
+{% block caniuse   %}TODO{% endblock %}
  9
+{% block updatesblockstyle %}two_columns{% endblock %}
  10
+{% block supportblockstyle %}none{% endblock %} <!-- 'multiple' if more than one caniuse class, 'none' if none. TODO: This logic should be moved out of the view!! -->
  11
+
  12
+{% block header %}
  13
+  <section id="intro">
  14
+    <p class="intro">
  15
+      {% blocktrans %}
  16
+        More efficient connectivity means more real-time chats, faster games, and better communication. Web Sockets and Server-Sent Events are pushing (pun intended) data between client and server more efficiently than ever before.
  17
+      {% endblocktrans %}
  18
+    </p>
  19
+<!--
  20
+    <div class="two_columns">
  21
+      <p>
  22
+        {% blocktrans %}Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue. Fusce a felis in mi auctor rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.{% endblocktrans %}
  23
+      </p>
  24
+      <p>
  25
+        {% blocktrans %}Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue. Fusce a felis in mi auctor rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus.{% endblocktrans %}      </p>
  26
+    </div>
  27
+    -->
  28
+  </section>
  29
+{% endblock %}
  30
+
  31
+
  32
+{% block description %}
  33
+  <!--<section id="description">
  34
+    <h3>Lorem Ipsum</h3>
  35
+    <p>
  36
+      {% blocktrans %}
  37
+        Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue.
  38
+      {% endblocktrans %}
  39
+    </p>
  40
+
  41
+    <ul>
  42
+      <li>{% blocktrans %}<a href="http://example.com/">Foo</a> bar baz.{% endblocktrans %}</li>
  43
+      <li>{% blocktrans %}<a href="http://example.com/">Foo</a> bar baz.{% endblocktrans %}</li>
  44
+      <li>{% blocktrans %}<a href="http://example.com/">Foo</a> bar baz.{% endblocktrans %}</li>
  45
+    </ul>
  46
+
  47
+    <p>{% blocktrans %}Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue. Fusce a felis in mi auctor rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse suscipit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum est. Cras felis diam, malesuada in, pellentesque vel, ornare ut, purus. Suspendisse eget libero.{% endblocktrans %}</p>
  48
+
  49
+    <h3>{% trans "Foo" %}</h3>
  50
+    <p>{% blocktrans %}Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse pharetra purus vitae elit. Praesent sodales dolor. Etiam congue. Fusce a felis in mi auctor rhoncus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse suscipit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum est. Cras felis diam, malesuada in, pellentesque vel, ornare ut, purus. Suspendisse eget libero.{% endblocktrans %}</p>
  51
+  </section>-->
  52
+{% endblock %}
  53
+
  54
+
  55
+{% block support_details %}
  56
+  <!-- <p>foo</p>  -->
  57
+{% endblock %}
  58
+
  59
+
  60
+{% block tutorials %}
  61
+  <li><a href="http://updates.html5rocks.com/2011/08/What-s-different-in-the-new-WebSocket-protocol">What's different in the new WebSocket protocol</a>
  62
+
  63
+  <li>
  64
+    <a href="http://www.html5rocks.com/en/tutorials/websockets/basics/">Introducing WebSockets: Bringing Sockets to the Web</a>
  65
+
  66
+  <li><a href="http://www.html5rocks.com/en/tutorials/casestudies/sunlight_streamcongress.html">Case Study: Real-Time Updates in Stream Congress</a>
  67
+
  68
+  <li><a href="http://html5doctor.com/server-sent-events/">HTML5 Doctor: Server Sent Events</a>
  69
+
  70
+<li><a href="http://www.igvita.com/2011/08/26/server-sent-event-notifications-with-html5/">Server-Sent Event Notifications with HTML5</a>
  71
+
  72
+{% endblock %}
  73
+
  74
+
  75
+{% block content %}
  76
+  <section id="demos">
  77
+    <h3>Demos</h3>
  78
+    <figure>
  79
+      <a href="http://websocket.org/echo.html">
  80
+        <img src="/static/images/features/wsorg.png">
  81
+        <figcaption>Websocket.org echo test</figcaption>
  82
+      </a>
  83
+    </figure>
  84
+    <figure>
  85
+      <a href="http://html5demos.com/web-socket">
  86
+        <img src="/static/images/features/h5d-ws.png">
  87
+        <figcaption>HTML5demo.com websocket demo</figcaption>
  88
+      </a>
  89
+    </figure>
  90
+
  91
+    <figure>
  92
+      <a href="http://html5demos.com/offline">
  93
+        <img src="/static/images/features/h5d-conn.png">
  94
+        <figcaption>HTML5demo.com online connectivity monitor</figcaption>
  95
+      </a>
  96
+    </figure>
  97
+    
  98
+
  99
+    
  100
+  </section>
  101
+
  102
+  <section id="in_the_wild">
  103
+    <h3>In the Wild</h3>
  104
+
  105
+
  106
+        <figure>
  107
+      <a href="http://labs.dinahmoe.com/plink">
  108
+        <img src="/static/images/features/plink.png">
  109
+        <figcaption>Plink</figcaption>
  110
+      </a>
  111
+    </figure>
  112
+
  113
+    <figure>
  114
+      <a href="http://wordsquared.com/">
  115
+        <img src="/static/images/features/word2.png">
  116
+        <figcaption>Word<sup>2</sup></figcaption>
  117
+      </a>
  118
+    </figure>
  119
+
  120
+    <figure>
  121
+      <a href="http://streamcongress.com/">
  122
+        <img src="/static/images/features/streamcongress.png">
  123
+        <figcaption>Stream Congress</figcaption>
  124
+      </a>
  125
+    </figure>
  126
+
  127
+       <figure>
  128
+      <a href="http://hummingbirdstats.com/">
  129
+        <img src="/static/images/features/hummingbird.png">
  130
+        <figcaption>Hummingbird Realtime Analytics</figcaption>
  131
+      </a>
  132
+    </figure>
  133
+
  134
+    <figure>
  135
+      <a href="http://scrumblr.ca/">
  136
+        <img src="/static/images/features/scrumblr.png">
  137
+        <figcaption>Scrumblr realtime SCRUM sprint board</figcaption>
  138
+      </a>
  139
+    </figure>
  140
+
  141
+    <figure>
  142
+      <a href="http://noVNC.com">
  143
+        <img src="/static/images/features/novnc.png">
  144
+        <figcaption>noVNC - a full VNC client implemented in Canvas & WebSockets</figcaption>
  145
+      </a>
  146
+    </figure>
  147
+
  148
+  </section>
  149
+
  150
+  <section id="resources">
  151
+    <h3>Resources</h3>
  152
+    <ul class="definitions">
  153
+      <li>
  154
+        <a href="http://weblog.bocoup.com/category/eventsource/">Bocoup's posts on EventSource</a>
  155
+        <span>{% trans "HTML5 agency Bocoup's deep research into EventSource" %}</span>
  156
+      </li>
  157
+      <li>
  158
+             <a href="http://pusher.com/">Pusher</a>
  159
+        <span>{% trans "a hosted API for adding scalable realtime WebSockets functionality to your apps" %}</span>
  160
+      </li>
  161
+
  162
+  <li>
  163
+             <a href="https://github.com/rwldrn/jquery.eventsource">jQuery.EventSource</a>
  164
+        <span>{% trans "The power of the EventSource API across browsers" %}</span>
  165
+      </li>
  166
+
  167
+
  168
+
  169
+    </ul>
  170
+  </section>
  171
+
  172
+  <!-- Add as many <section>s as you like! The three above are the most common. -->
  173
+{% endblock %}
109  content/features/feature.html
... ...
@@ -0,0 +1,109 @@
  1
+{% extends "base.html" %}
  2
+{% load i18n %}
  3
+{% get_current_language as LANGUAGE_CODE %}
  4
+
  5
+{% block headtitle %}{% trans "Feature" %}{% endblock %}
  6
+
  7
+{% block head %}{% endblock %}
  8
+
  9
+{% block body %}
  10
+  <div data-import-html>
  11
+    <header class="clearfix pattern-bg-lighter">
  12
+      <hgroup>
  13
+        <h1>HTML5 Features</h1>
  14
+        <h2>{% block h2title %}{% trans "Feature" %}{% endblock %}</h2>
  15
+      </hgroup>
  16
+
  17
+      <div class="feature_icon"></div>
  18
+
  19
+      {% block header %}{% endblock %}
  20
+
  21
+      <span class="share">
  22
+        <ul>
  23
+          <li class="googleplus"><div class="g-plusone" data-size="medium" data-count="true" data-href="{{disqus_url}}"></div></li>
  24
+          <li class="facebook" data-url="{{disqus_url}}"></li>
  25
+          <li class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-url="{{disqus_url}}" data-lang="{{LANGUAGE_CODE}}" data-related="ChromiumDev:News and announcements for developers from the Google Chrome team and makers of HTML5 Rocks.">{% trans "Tweet" %}</a></li>
  26
+        </ul>
  27
+      </span>
  28
+    </header>
  29
+
  30
+    <article class="sectioned feature">
  31
+      <section id="updates" class="updates {% block updatesblockstyle %}{% endblock %}">
  32
+        <h3>{% trans "What&rsquo;s New" %}</h3>
  33
+
  34
+        <ul>
  35
+          {% for r in updates %}
  36
+            <li><a href="{{r.url}}">{{r.title}}</a></li>
  37
+          {% endfor %}
  38
+          {% block tutorials %}{% endblock %}
  39
+        </ul>
  40
+      </section>
  41
+
  42
+      {% block description %}{% endblock %}
  43
+
  44
+      {% block support %}
  45
+        <section id="support" class="support {% block supportblockstyle %}{% endblock %}" style="display:none"
  46
+          data-caniusefeatures="{% block caniuse %}{% endblock %}"
  47
+          data-features="{% block tuttags %}{% endblock %}">
 </