Skip to content
This repository has been archived by the owner on May 24, 2021. It is now read-only.

Commit

Permalink
feat(keyboard): Add keyboard effects
Browse files Browse the repository at this point in the history
- Left, Right: Scrub forward/backward
- Space: Play/Pause
- Use Github Pages for Docs
- Use Yarn
  • Loading branch information
alexander-heimbuch committed Apr 8, 2017
1 parent f4da1dd commit 3957b23
Show file tree
Hide file tree
Showing 26 changed files with 6,924 additions and 343 deletions.
19 changes: 17 additions & 2 deletions circle.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,32 @@
general:
branches:
ignore:
- gh-pages

machine:
environment:
PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
node:
version: 6.2.1

dependencies:
override:
- yarn
cache_directories:
- ~/.cache/yarn

compile:
override:
- npm run build
- yarn build

test:
override:
- yarn test
post:
- bash <(curl -s https://codecov.io/bash)

deployment:
production:
branch: v4
commands:
- surge --project ./dist --domain podlove-player.surge.sh
- ./scripts/deploy-ghpages.sh dist
116 changes: 45 additions & 71 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,8 @@
"license": "BSD-2-Clause",
"version": "4.0.0-proto",
"homepage": "https://github.com/podlove/podlove-web-player",
"contributors": [
{
"name": "Gerrit van Aaken",
"email": "info@praegnanz.de",
"url": "http://praegnanz.de"
},
{
"name": "Simon Waldherr",
"email": "contact@simonwaldherr.de",
"url": "http://simon.waldherr.eu/"
},
{
"name": "Frank Hase"
},
{
"name": "Eric Teubert"
},
{
"name": "Juri Leino",
"email": "contact@line-o.de",
"url": "http://line-o.de/"
}
],
"repository": {
"type": "git",
"url": "https://github.com/podlove/podlove-web-player.git"
},
"contributors": [],
"repository": "https://github.com/podlove/podlove-web-player.git",
"bugs": {
"url": "https://github.com/podlove/podlove-web-player/issues"
},
Expand All @@ -54,60 +29,57 @@
"dist:clean": "mkdir -p dist && rm -rf dist/*",
"app:statics": "cp -R statics/* dist",
"statics": "npm run app:statics",
"webpack:dev": "webpack-dashboard -- webpack-dev-server --content-base dist/ --progress --colors --hot --inline --config src/webpack.config.js",
"webpack:dev": "webpack-dashboard -- webpack-dev-server --content-base dist/ --progress --hot --inline --config src/webpack.config.js",
"webpack:build": "NODE_ENV='production' webpack --config src/webpack.config.js",
"build": "npm run dist:clean && npm run statics && npm run webpack:build",
"dev": "npm run dist:clean && npm run statics && npm run webpack:dev",
"test": "NODE_ENV=AVA nyc ava && nyc report --reporter=lcov",
"test:dev": "NODE_ENV=AVA ava --watch --fail-fast"
},
"dependencies": {
"blindparser": "^1.0.2",
"clipboard": "^1.6.0",
"color": "^1.0.3",
"detect-browser": "^1.6.2",
"hashcode": "^1.0.3",
"howler": "^2.0.2",
"iframe-resizer": "^3.5.7",
"lodash": "^4.17.4",
"query-string": "^4.3.1",
"react": "15.3.0",
"react-dom": "15.3.0",
"react-redux": "4.4.5",
"clipboard": "1.6.0",
"color": "1.0.3",
"detect-browser": "1.6.2",
"hashcode": "1.0.3",
"howler": "2.0.3",
"iframe-resizer": "3.5.7",
"keyboardjs": "2.3.3",
"lodash": "4.17.4",
"query-string": "4.3.1",
"redux": "3.5.2",
"revue": "^3.0.0",
"superagent": "^3.4.1",
"viscroll": "^1.0.0",
"vue": "^2.1.8"
"revue": "3.0.0",
"superagent": "3.4.1",
"viscroll": "1.0.0",
"vue": "2.2.6"
},
"devDependencies": {
"ava": "^0.18.2",
"babel-core": "^6.0.0",
"babel-loader": "^6.0.0",
"babel-plugin-transform-runtime": "^6.0.0",
"babel-plugin-webpack-alias": "^2.1.2",
"babel-preset-es2015": "^6.0.0",
"babel-preset-stage-2": "^6.0.0",
"babel-register": "^6.0.0",
"browser-env": "^2.0.25",
"cross-env": "^3.0.0",
"css-loader": "^0.25.0",
"file-loader": "^0.9.0",
"html-webpack-plugin": "^2.26.0",
"inject-loader": "^3.0.0-beta4",
"lolex": "^1.6.0",
"node-sass": "^4.1.1",
"nyc": "^10.1.2",
"raw-loader": "^0.5.1",
"sass-loader": "^4.1.1",
"sinon": "^1.17.7",
"surge": "^0.18.0",
"ava": "0.18.2",
"babel-core": "6.22.0",
"babel-loader": "6.4.1",
"babel-plugin-transform-runtime": "6.22.0",
"babel-plugin-webpack-alias": "2.1.2",
"babel-preset-es2015": "6.22.0",
"babel-preset-stage-2": "6.22.0",
"babel-register": "6.22.0",
"browser-env": "2.0.25",
"cross-env": "3.0.0",
"css-loader": "0.25.0",
"file-loader": "0.9.0",
"html-webpack-plugin": "2.26.0",
"inject-loader": "3.0.0-beta4",
"lolex": "1.6.0",
"node-sass": "4.1.1",
"nyc": "10.1.2",
"raw-loader": "0.5.1",
"sass-loader": "4.1.1",
"sinon": "2.1.0",
"surge": "0.18.0",
"transform-runtime": "0.0.0",
"vue-loader": "^10.0.0",
"vue-template-compiler": "^2.1.0",
"webpack": "^2.1.0-beta.25",
"webpack-dashboard": "^0.3.0",
"webpack-dev-server": "^2.1.0-beta.9"
"vue-loader": "11.3.4",
"vue-template-compiler": "2.2.6",
"webpack": "2.3.2",
"webpack-dashboard": "0.3.0",
"webpack-dev-server": "2.1.0-beta.9"
},
"engines": {
"node": ">=5.0.0"
Expand Down Expand Up @@ -147,5 +119,7 @@
"**/*.test.js",
"build"
]
}
},
"main": "index.js",
"author": "Alexander Heimbuch <github@heimbu.ch>"
}
119 changes: 23 additions & 96 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,88 +1,53 @@
# Podlove Web Player

[![Code Climate](https://codeclimate.com/github/podlove/podlove-web-player/badges/gpa.svg)](https://codeclimate.com/github/podlove/podlove-web-player)

[![Build Status](https://travis-ci.org/podlove/podlove-web-player.svg)](https://travis-ci.org/podlove/podlove-web-player)
[![Build Status](https://img.shields.io/circleci/project/github/podlove/podlove-web-player/v4.svg)](https://circleci.com/gh/podlove/podlove-web-player)
[![Coverage](https://img.shields.io/codecov/c/github/podlove/podlove-web-player/feature/coverage.svg)](https://codecov.io/gh/podlove/podlove-web-player/branch/v4)
[![Coverage](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/feross/standard)

## About

HTML5 Goodness for Podcasting

**Podlove** Web Player is a Podcast-optimized, HTML5-based video and audio player with Flash fallback.
**Podlove** Web Player is a Podcast-optimized, HTML5-based video and audio player.
It can be used as a WordPress plugin or within a static HTML/JavaScript context.

The **Podlove** Web Player supports almost every modern browser and also does captions, chapters and much more.
Thanks to MediaElement.js for providing the foundation.
Thanks to Howler.js for providing the foundation.

* [Web Player Documentation](http://docs.podlove.org/podlove-web-player/)
* [Web Player Wiki](https://github.com/podlove/podlove-web-player/wiki)
* [Official site on podlove.org](http://podlove.org/podlove-web-player/)
* [WordPress Plugin Page](http://wordpress.org/plugins/podlove-web-player/)

## Usage

The release version should have the application, the moderator their dependencies and necessary styles and fonts
ready in the `dist` folder.
Along with them there is a running example that shows you how to integrate the player in any webpage.
Either directly as in `embed.html` or as an iframe/ embedded player as in `index.html`.

## Installation

Clone the repository and install all dependencies with

bower install
npm install
npm install -g gulp

## Install autoprefixer

Install autoprefixer to parse CSS and add vendor prefixes to rules fetched from 'Can I Use'
[https://github.com/ai/autoprefixer](https://github.com/ai/autoprefixer)

sudo npm install --global autoprefixer

## Build the CSS file

There is a gulp task for that, processing a version with line comments as well as a minified one

gulp styles

## Build Distribution Package

Make is now replaced by [gulp](https://github.com/gulpjs/gulp/blob/master/docs/README.md)

Just run the default task to build the distribution package to `dist` folder.

gulp

### For production

npm install -g uglifyify minifyify

smallest possible code (>50kB)

browserify -g uglifyify js/app.js > static/podlove-web-player.js

with sourcemaps (~250kB)
## Used Technologies

browserify -d js/app.js | minifyify > static/podlove-web-player.js
- Package Manager: [Yarn](https://github.com/yarnpkg/yarn)
- Media Library: [Howler](https://github.com/goldfire/howler.js/)
- View Renderer: [VueJS](https://github.com/vuejs/vue)
- Bundler: [Webpack](https://github.com/webpack/webpack)
- State Management: [Redux](https://github.com/reactjs/redux)

## Development

Build, serve and watch the local repository version. With livereload on top
### Setup

gulp serve
Clone the repository and install all dependencies with `yarn`

## Test
### Local Development

Some automated tests are written and can be found in the *spec* folder.
Install [PhantomJS](http://phantomjs.org/) to be able to run them on your machine.
1. Run `yarn dev`
2. Access `http://localhost:8080/standalone.html` for development

Run them with
### Tests

gulp test
1. Run `yarn test` for test suite
2. or `yarn test:dev` for interactive mode

Each commit pushed to the repo will automatically launch the tests on TravisCI.
### Build

1. Run `yarn build`
2. Locate build artefacts in `dist/`

## Info

Expand All @@ -107,44 +72,6 @@ Push to the branch

Create new Pull Request

## Release

git fetch

git checkout -b release origin/release

git merge origin/dev

gulp build

Force add all changes. Otherwise changes to the `dist` folder would not be part
of the release.

git add dist -f

git commit "release <version-number>"

git push

Copy the commit messages from the merge commit to clipboard for later use.

git show HEAD^

Go to https://github.com/podlove/podlove-web-player/releases/new

Use <version-number> as the tagname. Be sure to add a "v" to the beginning.
Versions follow semantic versioning (for details see http://semver.org).

Find a (funny) name that can be easily remembered by humans.

Paste the contents of your clipboard into the description field and edit them
to be a human readable changelog.

Hit the **save** button.

<hr>
## Send feedback about the Podlove Web Player

### Join the conversation

Become a part of the
Expand Down
55 changes: 55 additions & 0 deletions scripts/deploy-ghpages.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/bin/sh
# ideas used from https://gist.github.com/motemen/8595451

# abort the script if there is a non-zero error
set -e

# show where we are on the machine
pwd

remote=$(git config remote.origin.url)

siteSource="$1"

if [ ! -d "$siteSource" ]
then
echo "Usage: $0 <site source dir>"
exit 1
fi

# make a directory to put the gp-pages branch
mkdir gh-pages-branch
cd gh-pages-branch
# now lets setup a new repo so we can update the gh-pages branch
git config --global user.email "$GH_EMAIL" > /dev/null 2>&1
git config --global user.name "$GH_NAME" > /dev/null 2>&1
git init
git remote add --fetch origin "$remote"

# switch into the the gh-pages branch
if git rev-parse --verify origin/gh-pages > /dev/null 2>&1
then
git checkout gh-pages
# delete any old site as we are going to replace it
# Note: this explodes if there aren't any, so moving it here for now
git rm -rf .
else
git checkout --orphan gh-pages
fi

# copy over or recompile the new site
cp -a "../${siteSource}/." .

# stage any changes and new files
git add -A
# now commit, ignoring branch gh-pages doesn't seem to work, so trying skip
git commit --allow-empty -m "Deploy to GitHub pages [ci skip]"
# and push, but send any output to /dev/null to hide anything sensitive
git push --force --quiet origin gh-pages > /dev/null 2>&1

# go back to where we started and remove the gh-pages git repo we made and used
# for deployment
cd ..
rm -rf gh-pages-branch

echo "Finished Deployment!"
Loading

0 comments on commit 3957b23

Please sign in to comment.