@samitouri / QOS-React / commits / 3ce7e91946

[docs] Automate SRI hash generation with rake task

Paul O’Shannessy committed Feb 10, 2016 at 12:04 UTC 3ce7e91946aff88231964d446cb89fa1543057b7
3 files changed +39 -11
docs/Rakefile
+19
@@ -24,6 +24,25 @@ task :update_version do
24 end
25 end
26
27 +desc "update SRI hashes"
28 +task :update_hashes do
29 + map = {
30 + 'react.js': 'dev',
31 + 'react.min.js': 'prod',
32 + 'react-with-addons.js': 'addons_dev',
33 + 'react-with-addons.min.js': 'addons_prod',
34 + 'react-dom.js': 'dom_dev',
35 + 'react-dom.min.js': 'dom_prod',
36 + 'react-dom-server.js': 'dom_server_dev',
37 + 'react-dom-server.min.js': 'dom_server_prod'
38 + }
39 + site_config = YAML.load_file('_config.yml')
40 + map.each do |file, key|
41 + site_config['react_hashes'][key] = `openssl dgst -sha384 -binary ../../react-bower/#{file} | openssl base64 -A`
42 + end
43 + File.open('_config.yml', 'w+') { |f| f.write(site_config.to_yaml) }
44 +end
45 +
46 desc "update acknowledgements list"
47 task :update_acknowledgements do
48 authors = File.readlines('../AUTHORS').map {|author| author.gsub(/ <.*\n/,'')}
docs/_config.yml
+12 -3
@@ -2,9 +2,9 @@
2 name: React
3 description: A JavaScript library for building user interfaces
4 url: https://facebook.github.io
5 -baseurl: /react
6 -permalink: /blog/:year/:month/:day/:title.html
7 -paginate_path: /blog/page:num/
5 +baseurl: "/react"
6 +permalink: "/blog/:year/:month/:day/:title.html"
7 +paginate_path: "/blog/page:num/"
8 relative_permalinks: true
9 paginate: 5
10 timezone: America/Los_Angeles
@@ -37,3 +37,12 @@ sass:
37 gems:
38 - jekyll-redirect-from
39 react_version: 0.14.7
40 +react_hashes:
41 + dev: xQae1pUPdAKUe0u0KUTNt09zzdwheX4VSUsV8vatqM+t6X7rta01qOzessL808ox
42 + prod: zTm/dblzLXQNp3CgY+hfaC/WJ6h4XtNrePh2CW2+rO9GPuNiPb9jmthvAL+oI/dQ
43 + addons_dev: I5TF2q2QDmB31aN5lcClArdUo+WJH/Yi3hcH3PBVXFe5DYtYCFh7Jx/dmpba12zn
44 + addons_prod: KPHTQfiYMhtsIRbZcY4ri1lBYZQbj4ePsSdzODR2Bu5L5ts3APVyqwKPBThO5Hgc
45 + dom_dev: A1t0GCrR06cTHvMjaxeSE8XOiz6j7NvWdmxhN/9z748wEvJTVk13Rr8gMzTUnd8G
46 + dom_prod: ntqCsHbLdMxT352UbhPbT7fqjE8xi4jLmQYQa8mYR+ylAapbXRfdsDweueDObf7m
47 + dom_server_dev: 3I5+eGB/ILYa6pQQX+rM9O0SyDltamM40RiZ5JvIijSYEfVGZU0vY4Iwx9a1eYyD
48 + dom_server_prod: Kt9dEqXzv00orFPW2o3H+kxQtSiNO8EqXsXJT3i99rCcp74N/Km98V0kUxAzy44k
docs/downloads.md
+8 -8
@@ -24,32 +24,32 @@ If you're just starting out, make sure to use the development version.
24 The uncompressed, development version of [react.js](https://fb.me/react-{{site.react_version}}.js) and [react-dom.js](https://fb.me/react-dom-{{site.react_version}}.js) with inline documentation (you need both files).
25
26 ```html
27 -<script src="https://fb.me/react-{{site.react_version}}.js" integrity="sha384-xQae1pUPdAKUe0u0KUTNt09zzdwheX4VSUsV8vatqM+t6X7rta01qOzessL808ox" crossorigin="anonymous"></script>
28 -<script src="https://fb.me/react-dom-{{site.react_version}}.js" integrity="sha384-A1t0GCrR06cTHvMjaxeSE8XOiz6j7NvWdmxhN/9z748wEvJTVk13Rr8gMzTUnd8G" crossorigin="anonymous"></script>
27 +<script src="https://fb.me/react-{{site.react_version}}.js" integrity="sha384-{{site.react_hashes.dev}}" crossorigin="anonymous"></script>
28 +<script src="https://fb.me/react-dom-{{site.react_version}}.js" integrity="sha384-{{site.react_hashes.dom_dev}}" crossorigin="anonymous"></script>
29 ```
30
31 #### React {{site.react_version}} (production)
32 The compressed, production version of [react.js](https://fb.me/react-{{site.react_version}}.min.js) and [react-dom.js](https://fb.me/react-dom-{{site.react_version}}.min.js) (you need both).
33
34 ```html
35 -<script src="https://fb.me/react-{{site.react_version}}.min.js" integrity="sha384-zTm/dblzLXQNp3CgY+hfaC/WJ6h4XtNrePh2CW2+rO9GPuNiPb9jmthvAL+oI/dQ" crossorigin="anonymous"></script>
36 -<script src="https://fb.me/react-dom-{{site.react_version}}.min.js" integrity="sha384-ntqCsHbLdMxT352UbhPbT7fqjE8xi4jLmQYQa8mYR+ylAapbXRfdsDweueDObf7m" crossorigin="anonymous"></script>
35 +<script src="https://fb.me/react-{{site.react_version}}.min.js" integrity="sha384-{{site.react_hashes.prod}}" crossorigin="anonymous"></script>
36 +<script src="https://fb.me/react-dom-{{site.react_version}}.min.js" integrity="sha384-{{site.react_hashes.dom_prod}}" crossorigin="anonymous"></script>
37 ```
38
39 #### React with Add-Ons {{site.react_version}} (development)
40 The uncompressed, development version of React with [optional add-ons](/react/docs/addons.html).
41
42 ```html
43 -<script src="https://fb.me/react-with-addons-{{site.react_version}}.js" integrity="sha384-I5TF2q2QDmB31aN5lcClArdUo+WJH/Yi3hcH3PBVXFe5DYtYCFh7Jx/dmpba12zn" crossorigin="anonymous"></script>
44 -<script src="https://fb.me/react-dom-{{site.react_version}}.js" integrity="sha384-A1t0GCrR06cTHvMjaxeSE8XOiz6j7NvWdmxhN/9z748wEvJTVk13Rr8gMzTUnd8G" crossorigin="anonymous"></script>
43 +<script src="https://fb.me/react-with-addons-{{site.react_version}}.js" integrity="sha384-{{site.react_hashes.addons_dev}}" crossorigin="anonymous"></script>
44 +<script src="https://fb.me/react-dom-{{site.react_version}}.js" integrity="sha384-{{site.react_hashes.dom_dev}}" crossorigin="anonymous"></script>
45 ```
46
47 #### React with Add-Ons {{site.react_version}} (production)
48 The compressed, production version of React with [optional add-ons](/react/docs/addons.html).
49
50 ```html
51 -<script src="https://fb.me/react-with-addons-{{site.react_version}}.min.js" integrity="sha384-KPHTQfiYMhtsIRbZcY4ri1lBYZQbj4ePsSdzODR2Bu5L5ts3APVyqwKPBThO5Hgc" crossorigin="anonymous"></script>
52 -<script src="https://fb.me/react-dom-{{site.react_version}}.min.js" integrity="sha384-ntqCsHbLdMxT352UbhPbT7fqjE8xi4jLmQYQa8mYR+ylAapbXRfdsDweueDObf7m" crossorigin="anonymous"></script>
51 +<script src="https://fb.me/react-with-addons-{{site.react_version}}.min.js" integrity="sha384-{{site.react_hashes.addons_prod}}" crossorigin="anonymous"></script>
52 +<script src="https://fb.me/react-dom-{{site.react_version}}.min.js" integrity="sha384-{{site.react_hashes.dom_prod}}" crossorigin="anonymous"></script>
53 ```
54
55 All scripts are also available via [CDNJS](https://cdnjs.com/libraries/react/).