Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: README.md

Issue 29712640: Issue 6309 - Start using SASS in adblockplusui (Closed)
Patch Set: Created March 1, 2018, 2:34 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « .hgignore ('k') | css/desktop-options.scss » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Shared Adblock Plus UI code 1 Shared Adblock Plus UI code
2 =========================== 2 ===========================
3 3
4 The user interface elements defined in this repository will be used by various 4 The user interface elements defined in this repository will be used by various
5 Adblock Plus products like Adblock Plus for Firefox. Their functionality can be 5 Adblock Plus products like Adblock Plus for Firefox. Their functionality can be
6 tested within this repository, even though they might not work exactly the same 6 tested within this repository, even though they might not work exactly the same
7 as they will do in the final product. 7 as they will do in the final product.
8 8
9 Installing dependencies 9 Installing dependencies
10 ----------------------- 10 -----------------------
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 Remember, both `eslint` and `stylelint` can help fixing issues via `--fix` flag. 77 Remember, both `eslint` and `stylelint` can help fixing issues via `--fix` flag.
78 78
79 You can try as example via [npx](https://medium.com/@maybekatz/introducing-npx-a n-npm-package-runner-55f7d4bd282b) 79 You can try as example via [npx](https://medium.com/@maybekatz/introducing-npx-a n-npm-package-runner-55f7d4bd282b)
80 which should be provided automatically when you install `npm`. 80 which should be provided automatically when you install `npm`.
81 81
82 ```sh 82 ```sh
83 npx stylelint --fix skin/real-file-name.css 83 npx stylelint --fix skin/real-file-name.css
84 ``` 84 ```
85 85
86 Bundling 86 Bundling JS
87 -------- 87 -----------
88 88
89 As it is for the `desktop-options.js` case, bundling is done via `package.json` 89 As it is for the `desktop-options.js` case, bundling is done via `package.json`
90 script entries. 90 script entries.
91 91
92 A dedicated script entry, such `bundle:desktop-options`, 92 A dedicated script entry, such `bundle:desktop-options.js`,
93 should perform the following operations: 93 should perform the following operations:
94 94
95 * ensure source code passes linting 95 * ensure source code passes linting
96 * ensure the bundle won't affect future linting operations 96 * ensure the bundle won't affect future linting operations
97 * ensure `browserify` uses `--node` and `--no-bundle-external` flags 97 * ensure `browserify` uses `--node` and `--no-bundle-external` flags
98 * point at the entry point, and output in the top level folder 98 * point at the entry point, and output in the top level folder
99 99
100 Accordingly, this is what happens with the `bundle:desktop-options`: 100 Accordingly, this is what happens with the `bundle:desktop-options.js`:
101 101
102 ```sh 102 ```sh
103 # the && operator ensure each step is executed only 103 # the && operator ensure each step is executed only
104 # if the previous one didn't produce an error 104 # if the previous one didn't produce an error
105 eslint ./js/**/*.js && 105 eslint ./js/**/*.js &&
106 # browserify doesn't offer a way to prefix with text 106 # browserify doesn't offer a way to prefix with text
107 # the file is hence created with eslint disabled and a warning 107 # the file is hence created with eslint disabled and a warning
108 echo '/* eslint-disable */// BUNDLED FILE' > ./desktop-options.js && 108 echo '/* eslint-disable */// BUNDLED FILE' > ./desktop-options.js &&
109 # browserify take an entry point and bundle all its required files 109 # browserify take an entry point and bundle all its required files
110 # outputting the result into ./desktop-options.js 110 # outputting the result into ./desktop-options.js
111 browserify --node --no-bundle-external js/desktop-options.js >> ./desktop-option s.js 111 browserify --node --no-bundle-external js/desktop-options.js >> ./desktop-option s.js
112 ``` 112 ```
113 113
114 For a new bundle, i.e. `mobile-options.js`, simply use the same procedure 114 For a new bundle, i.e. `mobile-options.js`, simply use the same procedure
115 but swap the `desktop-options` file/script name with `mobile-options`. 115 but swap the `desktop-options.js` file/script name with `mobile-options.js`.
116 116
117 The main `bundle` script should include each sub-bundle operation. 117 The main `bundle` script should include each sub-bundle operation.
118 118
119 Bundling CSS
120 ------------
121
122 As it is for the `desktop-options.css` case, bundling is done via `package.json`
123 script entries.
124
125 A dedicated script entry, such `bundle:desktop-options.css`,
126 should point at the entry scss point, and output in the _skin_ folder;
127
128 In case there are dependencies, please ensure these are
129 imported via `@import "dep.scss"` and not via `url(...)` syntax.
130
119 Watching 131 Watching
120 -------- 132 --------
121 133
122 While developing, it is convenient to bundle automatically 134 While developing, it is convenient to bundle automatically
123 each time a source file is changed. 135 each time a source file is changed.
124 136
125 As a team, we agreed on restructuring JS code inside the js folder, 137 As a team, we agreed on restructuring JS code inside the js folder,
126 so that is watched, and each bundled created, every time there is a changes. 138 so that is watched, and each bundled created, every time there is a changes.
127 139
128 Similarly done for bundles, watches follow the following convention: 140 Similarly done for bundles, watches follow the following convention:
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 errors when adding new filters on the options page 205 errors when adding new filters on the options page
194 * `blockedURLs`: a comma-separated list of URLs that should be considered 206 * `blockedURLs`: a comma-separated list of URLs that should be considered
195 blocked (necessary to test the check for blocked scripts in sharing buttons). 207 blocked (necessary to test the check for blocked scripts in sharing buttons).
196 * `downloadStatus`: sets downloadStatus parameter for filter lists, can be used 208 * `downloadStatus`: sets downloadStatus parameter for filter lists, can be used
197 to trigger various filter list download errors 209 to trigger various filter list download errors
198 * `platform=chromium`: shows the opt-out for the developer tools panel 210 * `platform=chromium`: shows the opt-out for the developer tools panel
199 * `showNotificationUI=true`: simulates user having opted-out of notifications 211 * `showNotificationUI=true`: simulates user having opted-out of notifications
200 212
201 213
202 [crowdin]: https://crowdin.com 214 [crowdin]: https://crowdin.com
OLDNEW
« no previous file with comments | « .hgignore ('k') | css/desktop-options.scss » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld