Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de Impress.js
El conjunto predeterminado de complementos
Muchas características impress.js se implementarán y se implementarán como
complementos. Cada complemento tiene documentación de usuario en un archivo
README.md en su propio directorio .
Complementos adicionales
Sin embargo, hay más funciones disponibles en presentaciones que
permiten complementos adicionales . Los complementos adicionales son
complementos de terceros que no forman parte de impress.js, pero que, sin
embargo, hemos recopilado en el repositorio impress-extras para proporcionar un
acceso conveniente y estandarizado a ellos. Para incluir los complementos
adicionales al revisar impress.js, use git clone --recursive. Incluso entonces, no se
activan por defecto en una presentación, sino que cada uno debe incluirse con su
propia <script>etiqueta.
Nota: El activar complementos adicionales se inicializan automáticamente por
los extras plugin.
<h1>Slide content</h1>
<ul>
<li class="substep">Point 1</li>
<li class="substep">Point 2</li>
</ul>
<div class="notes">
Speaker notes are shown in the impressConsole.
</div>
</div>
</div>
<div id="impress-toolbar"></div>
<div class="impress-progressbar"><div></div></div>
<div class="impress-progress"></div>
<div id="impress-help"></div>
<script type="text/javascript"
src="../../extras/highlight/highlight.pack.js"></script>
<script type="text/javascript"
src="../../extras/mermaid/mermaid.min.js"></script>
<script type="text/javascript"
src="../../extras/markdown/markdown.js"></script>
<script type="text/javascript" src="../../extras/mathjax/MathJax.js?
config=TeX-AMS_CHTML"></script>
</body>
/* Toolbar plugin */
.impress-enabled div#impress-toolbar {
position: fixed;
right: 1px;
bottom: 1px;
opacity: 0.6;
z-index: 10;
}
.impress-enabled div#impress-toolbar > span {
margin-right: 10px;
}
.impress-enabled div#impress-toolbar.impress-toolbar-show {
display: block;
}
.impress-enabled div#impress-toolbar.impress-toolbar-hide {
display: none;
}
/* Progress bar */
.impress-enabled .impress-progressbar {
position: absolute;
right: 318px;
bottom: 1px;
left: 118px;
border-radius: 7px;
border: 2px solid rgba(100, 100, 100, 0.2);
}
.impress-enabled .impress-progressbar DIV {
width: 0;
height: 2px;
border-radius: 5px;
background: rgba(75, 75, 75, 0.4);
transition: width 1s linear;
}
.impress-enabled .impress-progress {
position: absolute;
left: 59px;
bottom: 1px;
text-align: left;
opacity: 0.6;
}
.impress-enabled #impress-help {
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.5);
color: #EEEEEE;
font-size: 80%;
position: fixed;
left: 2em;
bottom: 2em;
width: 24em;
border-radius: 1em;
padding: 1em;
text-align: center;
z-index: 100;
font-family: Verdana, Arial, Sans;
}
.impress-enabled #impress-help td {
padding-left: 1em;
padding-right: 1em;
}
Para desarrolladores
La visión de impress.js es proporcionar una biblioteca central compacta que haga
las presentaciones reales, con una colección de complementos que brindan
funcionalidad adicional. Un conjunto predeterminado de complementos se
distribuye junto con el núcleo impress.js, y se encuentra en este directorio. Se
llaman complementos predeterminados porque se distribuyen y se activan cuando
los usuarios usan js / impress.js en sus presentaciones.
Construyendo js / impress.js
La forma común de usar impress.js es vincular al archivo js / impress.js . Esta es
una simple concatenación del núcleo impress.js y todos los complementos en este
directorio. Si edita o agrega código en src / , puede ejecutarlo node build.jspara
recrear el js/impress.jsarchivo distribuible . El script de compilación también crea
un archivo minificado, pero esto no está incluido en el repositorio de git.
/home/hingo/hacking/impress.js/node_modules/uglify-js/lib/parse-js.js:271
throw new JS_Parse_Error(message, line, col, pos);
^
Error
at new JS_Parse_Error (/home/hingo/hacking/impress.js/node_modules/uglify-
js/lib/parse-js.js:263:18)
at js_error (/home/hingo/hacking/impress.js/node_modules/uglify-
js/lib/parse-js.js:271:11)
at croak (/home/hingo/hacking/impress.js/node_modules/uglify-js/lib/parse-
js.js:733:9)
at token_error (/home/hingo/hacking/impress.js/node_modules/uglify-
js/lib/parse-js.js:740:9)
at unexpected (/home/hingo/hacking/impress.js/node_modules/uglify-
js/lib/parse-js.js:746:9)
at Object.semicolon [as 1]
(/home/hingo/hacking/impress.js/node_modules/uglify-js/lib/parse-js.js:766:43)
at prog1 (/home/hingo/hacking/impress.js/node_modules/uglify-js/lib/parse-
js.js:1314:21)
at simple_statement (/home/hingo/hacking/impress.js/node_modules/uglify-
js/lib/parse-js.js:906:27)
at /home/hingo/hacking/impress.js/node_modules/uglify-js/lib/parse-
js.js:814:19
at block_ (/home/hingo/hacking/impress.js/node_modules/uglify-js/lib/parse-
js.js:1003:20)
Le complacerá saber que la concatenación del archivo no minificado js /
impress.js ya ha tenido éxito en este momento. Simplemente abra una prueba en
su navegador, y el navegador le mostrará la línea y el error.
Pruebas
El directorio de complementos también debe incluir pruebas, que deben usar
las bibliotecas QUnit y Syn en prueba / . Puede realizar tantas pruebas como
desee, pero se sugiere que se llame a su primer y principal archivo de
prueba plugina_tests.html y plugina_tests.jsrespectivamente. Debe agregar
su .jsarchivo de prueba en /qunit_test_runner.html , y el .jsarchivo debe
comenzar cargando el .htmlarchivo de prueba en iframe#presentation-
iframe. Consulte el complemento de navegación-ui para ver un ejemplo.
Puede probar su complemento de la forma que desee, pero el enfoque general es
que la prueba cargue el archivo js / impress.js producido por build.js. De esta
manera, está probando lo que los usuarios realmente usarán, en lugar del código
fuente sin compilar.
Encapsulación
Para evitar contaminar el espacio de nombres global, los complementos deben
encapsularlos en la función anónima estándar de javascript:
/**
* Plugin A - An example plugin
*
* Description...
*
* Copyright 2016 Firstname Lastname, email or github handle
* Released under the MIT license.
*/
(function ( document, window ) {
// Plugin implementation...
})(document, window);
Complementos de inicio
Clasificamos los complementos en varias categorías, según cómo y cuándo se
llaman, y qué hacen.
Complementos Pre-StepLeave
Un complemento pre-stepleave se llama sincrónicamente desde impress.js core al
comienzo de impress().goto().
Para registrar un complemento, llame
impress.addPreStepLeavePlugin( plugin [, weight] );
Cuando se ejecuta la función del complemento, se le pasará un argumento similar
al eventobjeto de los controladores de eventos DOM:
event.target contiene el paso actual, que estamos a punto de abandonar.
event.detail.next contiene el elemento al que estamos a punto de hacer la
transición.
event.detail.reason contiene una cadena, una de "siguiente", "anterior" o "goto",
que le indica qué función API se llamó para iniciar la transición.
event.detail.transitionDuration contiene la transición Duración para la próxima
transición.
Un complemento previo a stepleave puede alterar los valores en event.detail(a
excepción de reason), y esto puede cambiar el comportamiento de la próxima
transición. Por ejemplo, el gotocomplemento establecerá event.detail.nextque
apunte a algún otro elemento, haciendo que la presentación salte a ese paso.
Complementos de GUI
Un complemento GUI es en realidad solo un complemento init, pero es una
categoría especial que expone widgets o efectos visibles en la presentación. Por
ejemplo, podría proporcionar botones en los que se pueda hacer clic para ir a la
diapositiva siguiente y anterior.
Dependencias
Si pluginB depende de la existencia de pluginA , y también pluginA debe
ejecutarse antes de pluginB , entonces pluginB no debería escuchar
el impress:initevento, sino que pluginA debería enviar su propio evento init,
que pluginB escucha.
Ejemplo:
// pluginA
document.addEventListener("impress:init", function (event) {
// plugin A does it's own initialization first...
// pluginB
document.addEventListener("impress:plugina:init", function (event) {
// plugin B implementation
}, false);
Un complemento debe usar el espacio impress:pluginname:*de nombres para
cualquier evento que envíe.
En teoría, todos los complementos siempre pueden enviar uno inity otros
eventos, pero en la práctica los estamos agregando según sea necesario.