diff --git a/particle-counter/.gitignore b/particle-counter/.gitignore
new file mode 100644
index 0000000..363ed5c
--- /dev/null
+++ b/particle-counter/.gitignore
@@ -0,0 +1,19 @@
+.idea/
+*.iml
+*.iws
+*.eml
+out/
+.DS_Store
+.svn
+log/*.log
+tmp/**
+node_modules/
+.sass-cache
+css/reveal.min.css
+js/reveal.min.js
+
+.vs
+local.py
+local.sh
+
+*build*
\ No newline at end of file
diff --git a/particle-counter/.gitlab-ci.yml b/particle-counter/.gitlab-ci.yml
new file mode 100644
index 0000000..bf9100a
--- /dev/null
+++ b/particle-counter/.gitlab-ci.yml
@@ -0,0 +1,23 @@
+image: debian:buster
+
+devops:
+ only:
+ refs:
+ - master
+ - develop
+
+ before_script:
+ - apt-get update -y
+ - apt-get install -y sshpass openssh-client
+ - mkdir -p ~/.ssh
+ - chmod 700 ~/.ssh
+ - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
+ - echo -e "Host ToliakRuVM\n\tHostname 127.0.0.1\n\tUser root" >> ~/.ssh/config
+ - echo -e "\tIdentityFile ~/.ssh/ToliakRuVM\n\tIdentitiesOnly no\n\n" >> ~/.ssh/config
+
+ script:
+ - if [ ${CI_COMMIT_REF_SLUG} = develop ]; then SUB_SCRIPT="_dev"; fi
+ - echo $SUB_SCRIPT
+ - sshpass -p $CI_PASSWORD_VISITOR scp visitor@skeak.toliak.ru:~/.ssh/ToliakRuVM ~/.ssh/ToliakRuVM
+ - sshpass -p $CI_PASSWORD_VISITOR ssh -L 127.0.0.1:8022:ToliakRuVM:22 visitor@skeak.toliak.ru -f 'sleep 1000'
+ - ssh -p 8022 ToliakRuVM ./update_course_project_presentation$SUB_SCRIPT.sh ${CI_COMMIT_REF_SLUG}
diff --git a/particle-counter/CONTRIBUTING.md b/particle-counter/CONTRIBUTING.md
new file mode 100644
index 0000000..c2091e8
--- /dev/null
+++ b/particle-counter/CONTRIBUTING.md
@@ -0,0 +1,23 @@
+## Contributing
+
+Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**.
+
+
+### Personal Support
+If you have personal support or setup questions the best place to ask those are [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js).
+
+
+### Bug Reports
+When reporting a bug make sure to include information about which browser and operating system you are on as well as the necessary steps to reproduce the issue. If possible please include a link to a sample presentation where the bug can be tested.
+
+
+### Pull Requests
+- Should follow the coding style of the file you work in, most importantly:
+ - Tabs to indent
+ - Single-quoted strings
+- Should be made towards the **dev branch**
+- Should be submitted from a feature/topic branch (not your master)
+
+
+### Plugins
+Please do not submit plugins as pull requests. They should be maintained in their own separate repository. More information here: https://github.com/hakimel/reveal.js/wiki/Plugin-Guidelines
diff --git a/particle-counter/LICENSE b/particle-counter/LICENSE
new file mode 100644
index 0000000..697d156
--- /dev/null
+++ b/particle-counter/LICENSE
@@ -0,0 +1,19 @@
+Copyright (C) 2019 Hakim El Hattab, http://hakim.se, and reveal.js contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
\ No newline at end of file
diff --git a/particle-counter/README.md b/particle-counter/README.md
new file mode 100644
index 0000000..33956e9
--- /dev/null
+++ b/particle-counter/README.md
@@ -0,0 +1,1438 @@
+# reveal.js [![Build Status](https://travis-ci.org/hakimel/reveal.js.svg?branch=master)](https://travis-ci.org/hakimel/reveal.js)
+
+A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://revealjs.com/).
+
+reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [Markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). There's also a fully featured visual editor and platform for sharing reveal.js presentations at [slides.com](https://slides.com?ref=github).
+
+
+## Table of contents
+
+- [Online Editor](#online-editor)
+- [Installation](#installation)
+ - [Basic setup](#basic-setup)
+ - [Full setup](#full-setup)
+ - [Folder Structure](#folder-structure)
+- [Instructions](#instructions)
+ - [Markup](#markup)
+ - [Markdown](#markdown)
+ - [Element Attributes](#element-attributes)
+ - [Slide Attributes](#slide-attributes)
+- [Configuration](#configuration)
+- [Presentation Size](#presentation-size)
+- [Dependencies](#dependencies)
+- [Ready Event](#ready-event)
+- [Auto-sliding](#auto-sliding)
+- [Keyboard Bindings](#keyboard-bindings)
+- [Vertical Slide Navigation](#vertical-slide-navigation)
+- [Touch Navigation](#touch-navigation)
+- [Lazy Loading](#lazy-loading)
+- [API](#api)
+ - [Slide Changed Event](#slide-changed-event)
+ - [Presentation State](#presentation-state)
+ - [Slide States](#slide-states)
+ - [Slide Backgrounds](#slide-backgrounds)
+ - [Parallax Background](#parallax-background)
+ - [Slide Transitions](#slide-transitions)
+ - [Internal links](#internal-links)
+ - [Fragments](#fragments)
+ - [Fragment events](#fragment-events)
+ - [Code syntax highlighting](#code-syntax-highlighting)
+ - [Slide number](#slide-number)
+ - [Overview mode](#overview-mode)
+ - [Fullscreen mode](#fullscreen-mode)
+ - [Embedded media](#embedded-media)
+ - [Stretching elements](#stretching-elements)
+ - [Resize Event](#resize-event)
+ - [postMessage API](#postmessage-api)
+- [PDF Export](#pdf-export)
+- [Theming](#theming)
+- [Speaker Notes](#speaker-notes)
+ - [Share and Print Speaker Notes](#share-and-print-speaker-notes)
+ - [Server Side Speaker Notes](#server-side-speaker-notes)
+- [Plugins](#plugins)
+- [Multiplexing](#multiplexing)
+ - [Master presentation](#master-presentation)
+ - [Client presentation](#client-presentation)
+ - [Socket.io server](#socketio-server)
+- [MathJax](#mathjax)
+- [License](#license)
+
+#### More reading
+
+- [Changelog](https://github.com/hakimel/reveal.js/releases): Up-to-date version history.
+- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own!
+- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Browser-Support): Explanation of browser support and fallbacks.
+- [Plugins](https://github.com/hakimel/reveal.js/wiki/Plugins,-Tools-and-Hardware): A list of plugins that can be used to extend reveal.js.
+
+
+## Online Editor
+
+Presentations are written using HTML or Markdown but there's also an online editor for those of you who prefer a graphical interface. Give it a try at [https://slides.com](https://slides.com?ref=github).
+
+
+## Installation
+
+The **basic setup** is for authoring presentations only. The **full setup** gives you access to all reveal.js features and plugins such as speaker notes as well as the development tasks needed to make changes to the source.
+
+### Basic setup
+
+The core of reveal.js is very easy to install. You'll simply need to download a copy of this repository and open the index.html file directly in your browser.
+
+1. Download the latest version of reveal.js from
"+u(e.message+"",!0)+"";throw e}}f.exec=f,m.options=m.setOptions=function(e){return d(m.defaults,e),m},m.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new r,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},m.defaults=m.getDefaults(),m.Parser=p,m.parser=p.parse,m.Renderer=r,m.TextRenderer=s,m.Lexer=a,m.lexer=a.lex,m.InlineLexer=h,m.inlineLexer=h.output,m.Slugger=t,m.parse=m,"undefined"!=typeof module&&"object"==typeof exports?module.exports=m:"function"==typeof define&&define.amd?define(function(){return m}):e.marked=m}(this||("undefined"!=typeof window?window:global)); \ No newline at end of file diff --git a/particle-counter/plugin/math/math.js b/particle-counter/plugin/math/math.js new file mode 100644 index 0000000..d76c9dd --- /dev/null +++ b/particle-counter/plugin/math/math.js @@ -0,0 +1,92 @@ +/** + * A plugin which enables rendering of math equations inside + * of reveal.js slides. Essentially a thin wrapper for MathJax. + * + * @author Hakim El Hattab + */ +var RevealMath = window.RevealMath || (function(){ + + var options = Reveal.getConfig().math || {}; + var mathjax = options.mathjax || 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js'; + var config = options.config || 'TeX-AMS_HTML-full'; + var url = mathjax + '?config=' + config; + + var defaultOptions = { + messageStyle: 'none', + tex2jax: { + inlineMath: [ [ '$', '$' ], [ '\\(', '\\)' ] ], + skipTags: [ 'script', 'noscript', 'style', 'textarea', 'pre' ] + }, + skipStartupTypeset: true + }; + + function defaults( options, defaultOptions ) { + + for ( var i in defaultOptions ) { + if ( !options.hasOwnProperty( i ) ) { + options[i] = defaultOptions[i]; + } + } + + } + + function loadScript( url, callback ) { + + var head = document.querySelector( 'head' ); + var script = document.createElement( 'script' ); + script.type = 'text/javascript'; + script.src = url; + + // Wrapper for callback to make sure it only fires once + var finish = function() { + if( typeof callback === 'function' ) { + callback.call(); + callback = null; + } + } + + script.onload = finish; + + // IE + script.onreadystatechange = function() { + if ( this.readyState === 'loaded' ) { + finish(); + } + } + + // Normal browsers + head.appendChild( script ); + + } + + return { + init: function() { + + defaults( options, defaultOptions ); + defaults( options.tex2jax, defaultOptions.tex2jax ); + options.mathjax = options.config = null; + + loadScript( url, function() { + + MathJax.Hub.Config( options ); + + // Typeset followed by an immediate reveal.js layout since + // the typesetting process could affect slide height + MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] ); + MathJax.Hub.Queue( Reveal.layout ); + + // Reprocess equations in slides when they turn visible + Reveal.addEventListener( 'slidechanged', function( event ) { + + MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] ); + + } ); + + } ); + + } + } + +})(); + +Reveal.registerPlugin( 'math', RevealMath ); diff --git a/particle-counter/plugin/menu/LICENSE b/particle-counter/plugin/menu/LICENSE new file mode 100644 index 0000000..8097948 --- /dev/null +++ b/particle-counter/plugin/menu/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2015 Greg Denehy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/particle-counter/plugin/menu/README.md b/particle-counter/plugin/menu/README.md new file mode 100644 index 0000000..2d65fed --- /dev/null +++ b/particle-counter/plugin/menu/README.md @@ -0,0 +1,235 @@ +# reveal.js-menu + +A slideout menu plugin for [Reveal.js](https://github.com/hakimel/reveal.js) to quickly jump to any slide by title. Also optionally change the theme and set the default transition. [Check out the live demo](https://denehyg.github.io/reveal.js-menu) + +## Installation + +### Bower + +Download and install the package in your project: + +```bower install reveal.js-menu``` + +Add the plugin to the dependencies in your presentation, as below. + +```javascript +Reveal.initialize({ + // ... + + dependencies: [ + // ... + + { src: 'bower_components/reveal.js-menu/menu.js' } + ] +}); +``` + +### Manual + +Copy this repository into the plugins folder of your reveal.js presentation, ie ```plugins/menu```. + +Add the plugin to the dependencies in your presentation, as below. + +```javascript +Reveal.initialize({ + // ... + + dependencies: [ + // ... + + { src: 'plugin/menu/menu.js' } + ] +}); +``` + +## Configuration + +You can configure the menu for your presentation by providing a ```menu``` option in the reveal.js initialization options. Note that all config values are optional and will default as specified below. + + +```javascript +Reveal.initialize({ + // ... + + menu: { + // Specifies which side of the presentation the menu will + // be shown. Use 'left' or 'right'. + side: 'left', + + // Add slide numbers to the titles in the slide list. + // Use 'true' or format string (same as reveal.js slide numbers) + numbers: false, + + // Specifies which slide elements will be used for generating + // the slide titles in the menu. The default selects the first + // heading element found in the slide, but you can specify any + // valid css selector and the text from the first matching + // element will be used. + // Note: that a section data-menu-title attribute or an element + // with a menu-title class will take precedence over this option + titleSelector: 'h1, h2, h3, h4, h5, h6', + + // Hide slides from the menu that do not have a title. + // Set to 'true' to only list slides with titles. + hideMissingTitles: false, + + // Add markers to the slide titles to indicate the + // progress through the presentation + markers: false, + + // Specify custom panels to be included in the menu, by + // providing an array of objects with 'title', 'icon' + // properties, and either a 'src' or 'content' property. + custom: false, + + // Specifies the themes that will be available in the themes + // menu panel. Set to 'false' to hide themes panel. + themes: [ + { name: 'Black', theme: 'css/theme/black.css' }, + { name: 'White', theme: 'css/theme/white.css' }, + { name: 'League', theme: 'css/theme/league.css' }, + { name: 'Sky', theme: 'css/theme/sky.css' }, + { name: 'Beige', theme: 'css/theme/beige.css' }, + { name: 'Simple', theme: 'css/theme/simple.css' }, + { name: 'Serif', theme: 'css/theme/serif.css' }, + { name: 'Blood', theme: 'css/theme/blood.css' }, + { name: 'Night', theme: 'css/theme/night.css' }, + { name: 'Moon', theme: 'css/theme/moon.css' }, + { name: 'Solarized', theme: 'css/theme/solarized.css' } + ], + + // Specifies if the transitions menu panel will be shown. + transitions: true, + + // Adds a menu button to the slides to open the menu panel. + // Set to 'false' to hide the button. + openButton: true, + + // If 'true' allows the slide number in the presentation to + // open the menu panel. The reveal.js slideNumber option must + // be displayed for this to take effect + openSlideNumber: false, + + // If true allows the user to open and navigate the menu using + // the keyboard. Standard keyboard interaction with reveal + // will be disabled while the menu is open. + keyboard: true + }, + +}); +``` + +## Slide Titles + +The slide titles used in the menu can be supplied explicitly or are taken directly from the presentation, using the following rules... + +###### 1. The section's ```data-menu-title``` attribute. +If the slide's section element contains a ```data-menu-title``` attribute this will be used for the slide title in the menu. For example... + +```html +
...
+...
+...
+This will be the slide title in the menu
+...
+...
+This slidedeck is created with reveal.js
' } + ] + } +}); +``` + +```title``` and ```icon``` are used for the toolbar buttons at the top of the menu. There are two approaches you can use to provide content for the panels... + +* Provide html in ```content``` and this will be added to the custom panel. +* You can also provide a URL in ```src``` to load html from another file. + +###### Custom slide menu items + +You can provide menu items in your custom panels using the following format. This allows you to define your own navigation links for your presentation. + +```html +Expected: | " + escapeText(expected) + " |
---|---|
Result: | " + escapeText(actual) + " |
Diff: | " + diff + " |
Source: | " + escapeText(details.source) + " |
Source: | " + escapeText(details.source) + " |
---|