mirror of
https://github.com/webslides/WebSlides.git
synced 2025-08-17 10:30:51 +02:00
Final touches
This commit is contained in:
45
CHANGELOG.md
Normal file
45
CHANGELOG.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# 1.0.0 (2017-02-23)
|
||||||
|
|
||||||
|
This release is a special one since it sets up in the path of a better development environment. Although it's far from
|
||||||
|
perfect, it's a solid beginning.
|
||||||
|
|
||||||
|
All the code has been migrated from jQuery with ES5 to vanilla JavaScript with ES2015 (or ES6) and is fully modular.
|
||||||
|
This means that WebSlides is a (base module)[src/js/modules/webslides.js] with a solid API (few public methods) and
|
||||||
|
it's extended by (plugins)[src/js/plugins]. This leads to more granularity and less code to dive through while fixing a
|
||||||
|
bug.
|
||||||
|
|
||||||
|
The benefit from this approach is that now it's really easy to extend WebSlides to achieve what you need. You can also
|
||||||
|
overwrite current plugins. Say you don't like the current navigation with arrows and want to create a menu instead, you
|
||||||
|
can just write that for yourself with your custom needs and register it as `nav` and it will overwrite our nav with
|
||||||
|
your code.
|
||||||
|
|
||||||
|
We hope this leads to a better environment in which WebSlides can grow better.
|
||||||
|
|
||||||
|
All the technical specs live now in [this document](docs/technical.md).
|
||||||
|
|
||||||
|
## Bugfixes
|
||||||
|
|
||||||
|
- Fixed a bug with back/next buttons on the browser which lead the nav bar to not work.
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
|
||||||
|
- Linking to slides without window open.
|
||||||
|
- Added custom events to listen for. `ws:init` whenever webslides is ready and `ws:slide-change` whenever a slide changes.
|
||||||
|
- Added play/stop methods.
|
||||||
|
|
||||||
|
## Breaking Changes
|
||||||
|
|
||||||
|
- This "stable" release drops the jQuery requirement and leans on ES2015 for the architecture. Hence, it's no longer possible
|
||||||
|
to use the library as before.
|
||||||
|
|
||||||
|
# 0.2.0 (2017-02-22)
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
|
||||||
|
- Adding autoslide option.
|
||||||
|
|
||||||
|
# 0.1.1 (2017-02-11)
|
||||||
|
|
||||||
|
- Transform the library into an object.
|
||||||
|
- `.tabs` removed.
|
||||||
|
- `webslides-lite.js` removed.
|
@@ -3,7 +3,9 @@
|
|||||||
[](http://opensource.org/licenses/MIT)
|
[](http://opensource.org/licenses/MIT)
|
||||||
[](https://twitter.com/webslides)
|
[](https://twitter.com/webslides)
|
||||||
|
|
||||||
Finally, everything you need to make HTML presentations in a beautiful way. Just the essentials. You can create your own presentation instantly. Simply choose a demo and customize it in minutes — [https://webslides.tv/demos](https://webslides.tv/demos)
|
Finally, everything you need to make HTML presentations in a beautiful way. Just the essentials. You can create your own presentation instantly. Simply choose a demo and customize it in minutes — https://webslides.tv/demos.
|
||||||
|
|
||||||
|
A new release (at least) every 8th day of the month.
|
||||||
|
|
||||||
### Why WebSlides?
|
### Why WebSlides?
|
||||||
Good karma and productivity. Just a basic knowledge of HTML and CSS is required. Designers, marketers, and journalists can now focus on the content.
|
Good karma and productivity. Just a basic knowledge of HTML and CSS is required. Designers, marketers, and journalists can now focus on the content.
|
||||||
|
@@ -115,15 +115,15 @@ Almost every single feature of WebSlides is a plugin that can be overwritten and
|
|||||||
|
|
||||||
```
|
```
|
||||||
// Adding the constructor to WebSlides
|
// Adding the constructor to WebSlides
|
||||||
WebSlides.registerPlugin('MyPlugin', MyPlugin);
|
WebSlides.registerPlugin('myPlugin', MyPlugin);
|
||||||
|
|
||||||
// Starting WebSlides
|
// Starting WebSlides
|
||||||
// Your plugin will be constructed at this time and it will receive the webslides instance as the only parameter.
|
// Your plugin will be constructed at this time and it will receive the webslides instance as the only parameter.
|
||||||
const ws = new WebSlides();
|
const ws = new WebSlides();
|
||||||
// You can also access ws.plugins.MyPlugin now
|
// You can also access ws.plugins.myPlugin now
|
||||||
```
|
```
|
||||||
|
|
||||||
This allows you to rewrite the navigation to use a menu (for example) or add that missing piece of functionality you'd like to see.
|
This allows you to rewrite the navigation to use a menu (for example) or add that missing piece of functionality you'd like to see. See [this part of the code](../src/js/modules/webslides.js#L11) to see all the plugins we're using and the name they're using.
|
||||||
|
|
||||||
Make sure to let us know so it could get added to the repo!
|
Make sure to let us know so it could get added to the repo!
|
||||||
|
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
"babel-core": "^6.23.1",
|
"babel-core": "^6.23.1",
|
||||||
"babel-loader": "^6.3.2",
|
"babel-loader": "^6.3.2",
|
||||||
"babel-preset-es2015": "^6.22.0",
|
"babel-preset-es2015": "^6.22.0",
|
||||||
"npm-run-all": "^4.0.1",
|
"npm-run-all": "^4.0.2",
|
||||||
"rimraf": "^2.6.0",
|
"rimraf": "^2.6.0",
|
||||||
"webpack": "^2.2.1",
|
"webpack": "^2.2.1",
|
||||||
"webpack-dev-server": "^2.4.1"
|
"webpack-dev-server": "^2.4.1"
|
||||||
|
@@ -1,10 +0,0 @@
|
|||||||
import WebSlides from './modules/webslides';
|
|
||||||
import Scroll from './plugins/scroll';
|
|
||||||
import Touch from './plugins/touch';
|
|
||||||
import Grid from './plugins/grid';
|
|
||||||
|
|
||||||
WebSlides.registerPlugin('Scroll', Scroll);
|
|
||||||
WebSlides.registerPlugin('Touch', Touch);
|
|
||||||
WebSlides.registerPlugin('Grid', Grid);
|
|
||||||
|
|
||||||
window.WebSlides = WebSlides;
|
|
@@ -1,8 +1,3 @@
|
|||||||
import WebSlides from './modules/webslides';
|
import WebSlides from './modules/webslides';
|
||||||
import Scroll from './plugins/scroll';
|
|
||||||
import Touch from './plugins/touch';
|
|
||||||
|
|
||||||
WebSlides.registerPlugin('Scroll', Scroll);
|
|
||||||
WebSlides.registerPlugin('Touch', Touch);
|
|
||||||
|
|
||||||
window.WebSlides = WebSlides;
|
window.WebSlides = WebSlides;
|
||||||
|
@@ -9,9 +9,12 @@ const CLASSES = {
|
|||||||
|
|
||||||
// Default plugins
|
// Default plugins
|
||||||
const PLUGINS = {
|
const PLUGINS = {
|
||||||
'nav': Plugins.Navigation,
|
'grid': Plugins.Grid,
|
||||||
'hash': Plugins.Hash,
|
'hash': Plugins.Hash,
|
||||||
'keyboard': Plugins.Keyboard
|
'keyboard': Plugins.Keyboard,
|
||||||
|
'nav': Plugins.Navigation,
|
||||||
|
'scroll': Plugins.Scroll,
|
||||||
|
'touch': Plugins.touch
|
||||||
};
|
};
|
||||||
|
|
||||||
export default class WebSlides {
|
export default class WebSlides {
|
||||||
@@ -166,7 +169,7 @@ export default class WebSlides {
|
|||||||
const nextSlide = this.slides[slideI];
|
const nextSlide = this.slides[slideI];
|
||||||
|
|
||||||
if (this.currentSlide_ !== null && this.isVertical &&
|
if (this.currentSlide_ !== null && this.isVertical &&
|
||||||
(!this.plugins.Touch || !this.plugins.Touch.isEnabled)) {
|
(!this.plugins.touch || !this.plugins.touch.isEnabled)) {
|
||||||
this.scrollTransitionToSlide_(
|
this.scrollTransitionToSlide_(
|
||||||
isMovingForward, nextSlide, this.onSlideChange_);
|
isMovingForward, nextSlide, this.onSlideChange_);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -1,9 +1,15 @@
|
|||||||
import Navigation from './navigation';
|
import Grid from './grid';
|
||||||
import Hash from './hash';
|
import Hash from './hash';
|
||||||
import Keyboard from './keyboard';
|
import Keyboard from './keyboard';
|
||||||
|
import Navigation from './navigation';
|
||||||
|
import Scroll from './scroll';
|
||||||
|
import Touch from './touch';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
Navigation,
|
Grid,
|
||||||
Hash,
|
Hash,
|
||||||
Keyboard
|
Keyboard,
|
||||||
|
Navigation,
|
||||||
|
Scroll,
|
||||||
|
Touch
|
||||||
};
|
};
|
||||||
|
@@ -5,13 +5,12 @@ const src = path.join(__dirname, 'src');
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
context: src,
|
context: src,
|
||||||
entry: {
|
entry: {
|
||||||
webslides: './js/full.js',
|
webslides: './js/full.js'
|
||||||
'webslides-dev': './js/dev.js',
|
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
filename: '[name].js',
|
filename: '[name].js',
|
||||||
path: path.join(__dirname, 'static/js'),
|
path: path.join(__dirname, 'static/js'),
|
||||||
publicPath: '/static/js/',
|
publicPath: '/static/js/'
|
||||||
},
|
},
|
||||||
devServer: {
|
devServer: {
|
||||||
contentBase: __dirname,
|
contentBase: __dirname,
|
||||||
|
Reference in New Issue
Block a user