This library written in TypeScript & ReactiveX/rxjs: A reactive programming library for JavaScript.
For more information about dependency Please look at the package.json.
- Markdown support
- Code highlighting
- Layout attributes
- keyboard control
- touch control
- Responsive scaling (4:3, 16:9)
- FullScreen mode
- Background image & filter
- Pointer attention
- Progress indicator
- Accessibility support
- Canvas drawing mode (experimental)
- WAI-ARIA IN FRESH! & AbemaTV
- CLIENT SIDE OF █████FRESH.TV
- Reactive Programming in JavaScript
- Bacon.js & Talkie.js
Talkie.js contains two of the CSS and one of JavaScript.
- dist/talkie.min.css
- dist/talkie.min.js
- dist/talkie-default.min.css
Next code is the simplest example.
<html>
<head>
<link rel="stylesheet" href="./dist/talkie.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/styles/monokai_sublime.min.css">
</head>
<body>
<!-- Pure HTML style -->
<section layout>
<h1>Slide 1</h1>
</section>
<!-- Markdown style ( require `type` attribute ) -->
<script layout type="text/x-markdown">
# Slide 2
</script>
<!-- You can also use `<template>` element -->
<template layout type="text/x-markdown">
# Slide 2
</template>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/highlight.min.js"></script>
<script src="./dist/talkie.js"></script>
<script>Talkie();</script>
</body>
</html>
If you use the code highlighting, you must load these files.
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/styles/monokai_sublime.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/highlight.min.js"></script>
The default slide 4:3 (width 1024px, height 768px). In the following code ratio 16:9 (width: 1366px, height 768px) you will.
Talkie({wide: true});
You can add backface
attribute into each slides. Image path that you specify in the backface attribute will be the background of when the slide is displayed.
<section layout
backface="background-image.jpg"
backface-filter="blur(1px) brightness(.8)">
<h1>Title</h1>
<p>foo, bar, baz, qux...</p>
</section>
backface-filter
attribute is applied to the background image as CSS Filters. But using this, will occur side effect significantly to performance on mobile device.
interface TalkieOptions {
wide?: boolean;
control?: boolean;
pointer?: boolean;
progress?: boolean;
backface?: boolean;
notransition?: boolean;
linkShouldBlank?: boolean;
}
Talkie(options);
When you press the "f" key will be a full-screen mode. "f" or "Esc" key Press and then exit.
When you press the "b" key, the pointer visibility
is toggled
When you press the "v" key, the drawing mode is toggled, and clear line when press "c" key.
Talkie()
returns an object with initialization. This object has some of the control bus and functionality.
var talkie = Talkie({wide:false});
You can define any key bindings.
talkie.key('space').subscribe(talkie.next$);
talkie.key('s').subscribe(talkie.next$);
talkie.key('n').subscribe(talkie.next$);
talkie.key('a').subscribe(talkie.prev$);
talkie.key('p').subscribe(talkie.prev$);
It is also possible to control these functions in the program.
window.next = function() {
talkie.next$.next();
};
window.prev = function() {
talkie.prev$.next();
};
window.jump = function(num) {
talkie.jump$.next(num);
};
interface TalkieExports {
key: (charKey: string) => Observable<KeyboardEvent>;
notes: { [pageNum: number]: string };
changed: Observable<HTMLElement>;
ratio: Observable<number>;
next$: Subject<void>;
prev$: Subject<void>;
jump$: Subject<number>;
}
var exports = Talkie();
Many thanks!
- ysugimoto/resumify: Capture screenshot and make PDF on your HTML presentation.
- nakajmg/talkie-generator: Templates generator for Talkie.js
- Add option
linkShouldBlank
. - Add
[horizontal]
style for default theme. - Fixed that transition suppression was not appropriate.
- Update dependencies.
- Add experimental feature "canvas drawing".
- Remove
Aozora Mincho
from default style.
- Improve accessibility support.
aria-hidden
attribute to use instead ofvisible
,- Rename attribute,
page
todata-page
. - Rename attribute,
body-bg
todata-body-bg
. - Rename attribute,
no-transition
todata-no-transition
.
- Remove the Bacon.js, to use the ReactiveX/rxjs instead.
- Add
TalkieExport.key: (charKey: string) => Observable<KeyboardEvent>
. - Deprecated
TalkieExport.api
- Deprecated
TalkieExport.controls
- Fixed unexpected transparent background at fullscreen.
- Default theme some style changes.
[invert]
has been cut out from the specified value of the layout.- Deprecated layouts
[title-invert]
,[bullets-invert]
- Now it is specified as
[layout=title][invert]
.
The MIT License (MIT)