Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit 9495e9d

Browse files
Initial import
0 parents  commit 9495e9d

31 files changed

+6289
-0
lines changed

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# http://editorconfig.org
2+
3+
root = true
4+
5+
[*]
6+
charset = utf-8
7+
indent_style = space
8+
indent_size = 2
9+
end_of_line = lf
10+
insert_final_newline = true
11+
trim_trailing_whitespace = true
12+
13+
[*.md]
14+
insert_final_newline = false
15+
trim_trailing_whitespace = false

.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
dist/
2+
www/
3+
4+
*~
5+
*.sw[mnpcod]
6+
*.log
7+
*.lock
8+
*.tmp
9+
*.tmp.*
10+
log.txt
11+
*.sublime-project
12+
*.sublime-workspace
13+
14+
.stencil/
15+
.idea/
16+
.vscode/
17+
.sass-cache/
18+
.versions/
19+
node_modules/
20+
$RECYCLE.BIN/
21+
22+
.DS_Store
23+
Thumbs.db
24+
UserInterfaceState.xcuserstate
25+
.env

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2017 David Dal Busco
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
# DeckDeckGo
2+
3+
Add a lightweight presentation to your web project using HTML and Web Components.
4+
5+
[DeckDeckGo] is build with [Stencil](https://stenciljs.com) and could be use in any modern framework or even without any.
6+
7+
## Table of contents
8+
9+
- [DeckDeckGo](#deckdeckgo)
10+
- [Table of contents](#table-of-contents)
11+
- [Features](#features)
12+
- [Starter kit extra features](#starter-kit-extra-features)
13+
- [Getting Started](#getting-started)
14+
- [Using DeckDeckGo from a CDN](#using-deckdeckgo-from-a-cdn)
15+
- [Install DeckDeckGo from npm](#install-deckdeckgo-from-npm)
16+
- [Framework integration](#framework-integration)
17+
- [Editing](#editing)
18+
- [Showcasing code](#showcasing-code)
19+
- [Navigation](#navigation)
20+
- [Extra features](#extra-features)
21+
- [Lazy loading](#lazy-loading)
22+
- [Theming](#theming)
23+
- [Talks](#talks)
24+
- [Send me your talks](#send-me-your-talks)
25+
- [Backstory](#backstory)
26+
- [License](#license)
27+
28+
## Features
29+
30+
* ✏️ Use HTML and CSS to create **without effort** your presentation
31+
32+
* 📰 Use predefined **templates**
33+
34+
* 🌈 **Style** your presentation quickly
35+
36+
* 🌅 Create a **lightweight** presentation where images are **lazy** loaded
37+
38+
* 📱 Ceate slides which looks good on **mobile** devices too
39+
40+
* 🎁 Free and **open source**
41+
42+
### Starter kit extra features
43+
44+
[DeckDeckGo] offers also a [starter kit](https://github.com/fluster/deckdeckgo-starter) kit which lets you additionally:
45+
46+
* 🚀 Bundles your presentation as a **Progressive Web App**
47+
48+
* 🦄 Use **Ionic** components and icons to create the content or even add extra features
49+
50+
*Note: [DeckDeckGo] will soon offer a CLI to let you initialize your presentation based on the starter kit more easily*
51+
52+
## Getting Started
53+
54+
Use [DeckDeckGo] directly in your project from a CDN using a simple script include or install it from [npm](https://www.npmjs.com/package/deckdeckgo)
55+
56+
### Using DeckDeckGo from a CDN
57+
58+
It's recommended to use [unpkg](https://unpkg.com/) to use the [DeckDeckGo] from a CDN. To do so, add the following include script in the main HTML file of your project:
59+
60+
```
61+
<script src="https://unpkg.com/deckdeckgo@latest/dist/deckdeckgo.js"></script>
62+
```
63+
64+
### Install DeckDeckGo from NPM
65+
66+
Install [DeckDeckGo] in your project from [npm](https://www.npmjs.com/package/deckdeckgo) using the following command:
67+
68+
```bash
69+
npm install deckdeckgo
70+
```
71+
72+
### Framework integration
73+
74+
The [Stencil documentation](https://stenciljs.com/docs/overview) provide examples of framework integration for [Angular](https://stenciljs.com/docs/angular), [React](https://stenciljs.com/docs/react), [Vue](https://stenciljs.com/docs/vue) and [Ember](https://stenciljs.com/docs/ember).
75+
76+
## Editing
77+
78+
[DeckDeckGo] is a deck of slides where each slide has its own layout and behaviour. Their content could be edited and structured using the provided `slots`.
79+
80+
The slides [documentation](doc/slides/slides.md) display all templates and all options available for each slide.
81+
82+
```
83+
<deckgo-deck>
84+
<deckgo-slide-title>
85+
<h1 slot="title">My presentation title</h1>
86+
<p slot="content">
87+
Hello World 🚀
88+
</p>
89+
</deckgo-slide-title>
90+
</deckgo-deck>
91+
```
92+
93+
### Showcasing code
94+
95+
[DeckDeckGo] offers an handy slide to showcase code in your presentation. Instead of having to copy/paste your code inside the presentation itself, the provided template only need an url to the piece of code you would like display.
96+
97+
For example, in the following example, the slide is showcasing a piece of code of [DeckDeckGo] hosted on [Github](https://raw.githubusercontent.com/fluster/deckdeckgo/master/src/components/slides/deckdeckgo-slide-code/deckdeckgo-slide-code.tsx).
98+
99+
```
100+
<deckgo-deck>
101+
<deckgo-slide-code src-file="https://raw.githubusercontent.com/fluster/deckdeckgo/master/src/components/slides/deckdeckgo-slide-code/deckdeckgo-slide-code.tsx">
102+
<h1 slot="title">My code</h1>
103+
</deckgo-slide-title>
104+
</deckgo-deck>
105+
```
106+
107+
## Navigation
108+
109+
Furthermore than the default swiping, the [DeckDeckGo] deck expose some asynchronous methods in case you would like to add navigation features to your presentation.
110+
111+
These features are described in the separate [documentation](doc/features/navigation.md) about navigation.
112+
113+
## Extra features
114+
115+
Finally [DeckDeckGo] offers extra features, as for example a print feature or a full screen toggler, which could be added to your presentation too.
116+
117+
These features are described in the separate [documentation](doc/features/extra.md) about extra features.
118+
119+
## Lazy loading
120+
121+
In order to lazy load the images of your presentation, provide their url using the attribute `data-src` instead of `src`. [DeckDeckGo] will then take care of loading them only when needed.
122+
123+
```
124+
<img data-src="https://deckdeckgo.com/assets/img/deckdeckgo.png"/>
125+
```
126+
127+
## Theming
128+
129+
Theming is an ongoing improvement I'm currently working on. The already available options are described in the slides [documentation](doc/slides/slides.md).
130+
131+
## Talks
132+
133+
A collection of talks where [DeckDeckGo] was used:
134+
135+
| Title | Event | Author and repo | Available online |
136+
| -------------------------- |:-----------------:|:-----------------:| ---------------:|
137+
| Ionic v4, web components, shadow dom and beyond | 2018/10/16 [Pantalks](https://www.meetup.com/fr-FR/Pantalks-tech-non-tech-talks-Panter-AG-Zurich/events/255430094/), Zürich | [Peterpeterparker](https://github.com/peterpeterparker/ionicv4-and-beyond) | |
138+
| Ionic v4 and web components | 2018/10/26 [Web Zürich October](https://www.meetup.com/fr-FR/Web-Zurich/events/255699446), Zürich | [Peterpeterparker](https://github.com/peterpeterparker/webzueri) | |
139+
140+
### Send me your talks
141+
142+
If you would publish online a talk you would have built with [DeckDeckGo], reach me out, I would be super duper happy to list these ❤️
143+
144+
## Backstory
145+
146+
I had the opportunity to talk about Web Components and Ionic. While I was developing my presentation it came to my mind that I was not really following what I was about to present, that's why I wrapped up together [DeckDeckGo], this new tool to create lightweight presentation using HTML, Web Components and Ionic.
147+
148+
## License
149+
150+
MIT © [David Dal Busco](mailto:[email protected])
151+
152+
[DeckDeckGo]: https://deckdeckgo.com

doc/features/extra.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# DeckDeckGo - Extra Features
2+
3+
The [DeckDeckGo] deck expose a couple of extra features which could be added to your presentation too.
4+
5+
## Table of contents
6+
7+
- [Extra features](#extra-features)
8+
- [Toggle on/off the full screen mode](#toggle-onoff-the-full-screen-mode)
9+
- [Print the presentation](#print-the-presentation)
10+
11+
## Extra features
12+
13+
[DeckDeckGo] offers currently two extra features available on the deck element `<deckgo-deck>`.
14+
15+
For example, in Vanilla Javascript, we would get a reference to the deck using the following selector:
16+
17+
```
18+
const deck = document.getElementsByTagName('deckgo-deck');
19+
```
20+
21+
### Toggle on/off the full screen mode
22+
23+
```
24+
await deck.toggleFullScreen();
25+
```
26+
27+
### Print the presentation
28+
29+
```
30+
await deck.print();
31+
```
32+
33+
[DeckDeckGo]: https://deckdeckgo.com

doc/features/navigation.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# DeckDeckGo - Navigation
2+
3+
Furthermore than the default swiping, the [DeckDeckGo] deck expose the following asynchronous methods in case you would like to add navigation features to your presentation.
4+
5+
## Table of contents
6+
7+
- [Navigation](#navigation)
8+
- [Go to next slide](#go-to-next-slide)
9+
- [Go to previous slide](#go-to-previous-slide)
10+
- [Go to a specific slide](#go-to-a-specific-slide)
11+
- [Is the deck at the begin](#is-the-deck-at-the-begin)
12+
- [Is the deck at the end](#is-the-deck-at-the-end)
13+
- [Get the index of the current slide](#get-the-index-of-the-current-slide)
14+
- [Get the length of the deck](#get-the-length-of-the-deck)
15+
16+
## Navigation
17+
18+
In the following examples we are accessing the features available on the deck element `<deckgo-deck>`.
19+
20+
For example, in Vanilla Javascript, we would get a reference to the deck using the following selector:
21+
22+
```
23+
const deck = document.getElementsByTagName('deckgo-deck');
24+
```
25+
26+
### Go to next slide
27+
28+
```
29+
await deck.slideNext();
30+
```
31+
32+
### Go to previous slide
33+
34+
```
35+
await deck.slidePrev();
36+
```
37+
38+
### Go to a specific slide
39+
40+
```
41+
await deck.slideTo(0); // parameters: index: number, speed?: number | undefined
42+
```
43+
44+
### Is the deck at the begin
45+
46+
```
47+
await deck.isBeginning(); // resolve a boolean
48+
```
49+
50+
### Is the deck at the end
51+
52+
```
53+
await deck.isEnd(); // resolve a boolean
54+
```
55+
56+
### Get the index of the current slide
57+
58+
```
59+
await deck.getActiveIndex(); // resolve a number
60+
```
61+
62+
### Get the length of the deck
63+
64+
```
65+
await deck.getLength(); // resolve a number
66+
```
67+
68+
[DeckDeckGo]: https://deckdeckgo.com
1.79 MB
Loading
11.6 KB
Loading
12.5 KB
Loading
11.4 KB
Loading

0 commit comments

Comments
 (0)