applib
Library for common JavaScript transforms and CSS used by both the Android and iOS Wikipedia apps
Background
Presently we are consolidating duplicate Android and iOS Wikipedia app implementations of certain JavaScript transformations, such as image widening. Applib is where we are placing these consolidated JavaScript transform implementations.
What Applib is for
- JavaScript transforms common to both the Android and iOS Wikipedia apps.
What Applib is not for
- Android or iOS specific JS or CSS.
- CSS unrelated to a particular JavaScript transform. In the future we may re-evaluate this for CSS common between the Android and iOS apps, but for right now the only CSS in Applib should be CSS directly needed by a particular JavaScript transform.
What Applib delivers
- applib.js bundle of all transform JS
- applib.css bundle of all CSS required by the bundled transform JS
Conventions
File locations and naming
Example file names and locations for an image widening transform:
- src/WidenImage.js - the transform. required
- src/WidenImage.css - CSS used by the transform. optional
- test/WidenImage.js - tests of the transform. required
- test/fixtures/WidenImage.html - fixtures used by transform tests. optional
Changing styles
- Prefer to modify classlist rather than style attributes. For example, WidenImage.js mentioned above could add/remove a class name from WidenImage.css to an element's classlist to help achieve image widening.
Function naming
Coming soon.
Style naming
Coming soon.
Development setup and workflow
Coming soon.
License
Copyright 2017 Wikimedia Foundation
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.