75 |
76 |
77 | ## 网络协议设计
78 | ### 1.0版,先只实现桌面画面观看,计划使用先已成熟的RTMP协议作为视频传输协议。
79 | ### 2.0版,实现鼠标键盘的控制,键盘消息鼠标消息的控制协议也在第二版再考虑。
80 |
81 | ## 编译方法
82 | Windows 请设置以下第三方库的环境变量:
83 | ### FFMPEG_LIBRARY_DIR
84 | ### FFMPEG_INCLUDE_DIR
85 | ### Boost_LIBRARY_DIR
86 | ### Boost_INCLUDE_DIRS
87 | ### Zlib_LIBRARY_DIR
88 | ### Zlib_INCLUDE_DIR
89 | ### Openssl_LIBRARY_DIR
90 | ### Openssl_INCLUDE_DIR
91 | ### SDL_INCLUDE_DIR (debug only)
92 | ### SDL_LIBRARY_DIR (debug only)
93 |
--------------------------------------------------------------------------------
/client/.editorconfig:
--------------------------------------------------------------------------------
1 | # For more information about the properties used in
2 | # this file, please see the EditorConfig documentation:
3 | # http://editorconfig.org/
4 |
5 | root = true
6 |
7 | [*]
8 | charset = utf-8
9 | end_of_line = lf
10 | indent_size = 4
11 | indent_style = space
12 | insert_final_newline = true
13 | trim_trailing_whitespace = true
14 |
15 | [*.md]
16 | trim_trailing_whitespace = false
17 |
18 | [{.travis.yml,package.json}]
19 | # The indent size used in the `package.json` file cannot be changed
20 | # https://github.com/npm/npm/pull/3180#issuecomment-16336516
21 | indent_size = 2
22 | indent_style = space
23 |
--------------------------------------------------------------------------------
/client/.gitattributes:
--------------------------------------------------------------------------------
1 | # Automatically normalize line endings for all text-based files
2 | # http://git-scm.com/docs/gitattributes#_end_of_line_conversion
3 | * text=auto
4 |
5 | # For the following file types, normalize line endings to LF on
6 | # checkin and prevent conversion to CRLF when they are checked out
7 | # (this is required in order to prevent newline related issues like,
8 | # for example, after the build script is run)
9 | .* text eol=lf
10 | *.css text eol=lf
11 | *.html text eol=lf
12 | *.js text eol=lf
13 | *.json text eol=lf
14 | *.md text eol=lf
15 | *.sh text eol=lf
16 | *.txt text eol=lf
17 | *.xml text eol=lf
18 |
19 | # Exclude the `.htaccess` file from GitHub's language statistics
20 | # https://github.com/github/linguist#using-gitattributes
21 | dist/.htaccess linguist-vendored
22 |
--------------------------------------------------------------------------------
/client/.gitignore:
--------------------------------------------------------------------------------
1 | archive
2 | node_modules
3 |
--------------------------------------------------------------------------------
/client/.idea/.name:
--------------------------------------------------------------------------------
1 | client
--------------------------------------------------------------------------------
/client/.idea/client.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/client/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/client/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/client/.idea/scopes/scope_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/client/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/client/.jscsrc:
--------------------------------------------------------------------------------
1 | {
2 | "disallowEmptyBlocks": true,
3 | "disallowKeywords": [
4 | "with"
5 | ],
6 | "disallowMixedSpacesAndTabs": true,
7 | "disallowMultipleLineStrings": true,
8 | "disallowMultipleVarDecl": true,
9 | "disallowSpaceAfterPrefixUnaryOperators": [
10 | "!",
11 | "+",
12 | "++",
13 | "-",
14 | "--",
15 | "~"
16 | ],
17 | "disallowSpaceBeforeBinaryOperators": [
18 | ","
19 | ],
20 | "disallowSpaceBeforePostfixUnaryOperators": true,
21 | "disallowSpacesInNamedFunctionExpression": {
22 | "beforeOpeningRoundBrace": true
23 | },
24 | "disallowSpacesInsideArrayBrackets": true,
25 | "disallowSpacesInsideParentheses": true,
26 | "disallowTrailingComma": true,
27 | "disallowTrailingWhitespace": true,
28 | "requireCamelCaseOrUpperCaseIdentifiers": true,
29 | "requireCapitalizedConstructors": true,
30 | "requireCommaBeforeLineBreak": true,
31 | "requireCurlyBraces": true,
32 | "requireDotNotation": true,
33 | "requireLineFeedAtFileEnd": true,
34 | "requireParenthesesAroundIIFE": true,
35 | "requireSpaceAfterBinaryOperators": true,
36 | "requireSpaceAfterKeywords": [
37 | "catch",
38 | "do",
39 | "else",
40 | "for",
41 | "if",
42 | "return",
43 | "switch",
44 | "try",
45 | "while"
46 | ],
47 | "requireSpaceAfterLineComment": true,
48 | "requireSpaceBeforeBinaryOperators": true,
49 | "requireSpaceBeforeBlockStatements": true,
50 | "requireSpacesInAnonymousFunctionExpression": {
51 | "beforeOpeningCurlyBrace": true
52 | },
53 | "requireSpacesInConditionalExpression": true,
54 | "requireSpacesInFunctionDeclaration": {
55 | "beforeOpeningCurlyBrace": true
56 | },
57 | "requireSpacesInFunctionExpression": {
58 | "beforeOpeningCurlyBrace": true
59 | },
60 | "requireSpacesInNamedFunctionExpression": {
61 | "beforeOpeningCurlyBrace": true
62 | },
63 | "requireSpacesInsideObjectBrackets": "allButNested",
64 | "validateIndentation": 4,
65 | "validateLineBreaks": "LF",
66 | "validateParameterSeparator": ", ",
67 | "validateQuoteMarks": "'"
68 | }
69 |
--------------------------------------------------------------------------------
/client/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 |
3 | // Enforcing options
4 | // http://www.jshint.com/docs/options/#enforcing-options
5 |
6 | "bitwise": true,
7 | "eqeqeq": true,
8 | "forin": true,
9 | "latedef": true,
10 | "noarg": true,
11 | "nonbsp": true,
12 | "nonew": true,
13 | "undef": true,
14 | "unused": true,
15 |
16 | // - - - - - - - - - - - - - - - - - - - - - - - - - - -
17 |
18 | // Relaxing options
19 | // http://www.jshint.com/docs/options/#relaxing-options
20 |
21 | "esnext": true,
22 |
23 | // - - - - - - - - - - - - - - - - - - - - - - - - - - -
24 |
25 | // Environments
26 | // http://www.jshint.com/docs/options/#environments
27 |
28 | "browser": true,
29 | "jquery": true,
30 | "node": true
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/client/.travis.yml:
--------------------------------------------------------------------------------
1 | # For more information about the configurations used
2 | # in this file, please see the Travis CI documentation:
3 | # http://docs.travis-ci.com
4 |
5 | after_success:
6 |
7 | # Temporary workaround for:
8 | # https://github.com/travis-ci/travis-ci/issues/929
9 |
10 | - python travis_after_all.py
11 | - export $(cat .to_export_back) &> /dev/null
12 | - |
13 |
14 | # If all the tests pass in all the runtimes, make Travis
15 | # automatically download and execute the following script
16 |
17 | if [ "$BUILD_LEADER" == "YES" ]; then
18 | if [ "$BUILD_AGGREGATE_STATUS" == "others_succeeded" ]; then \
19 |
20 | # Clean up helper files
21 | rm -rf travis_after_all.py .to_export_back && \
22 |
23 | # The `commit_build_changes.sh` script will run the build,
24 | # and if that generates changes, it will commit them to the
25 | # `master` branch:
26 | #
27 | # * ensuring that the content from the `dist/` directory
28 | # is always in sync with the rest of the content
29 | #
30 | # * removing the need to execute the build step locally
31 | # everytime a change is made (especially in the case
32 | # of trivial changes such as typos)
33 | #
34 | # Note: The `commit_build_changes.sh` script will only run
35 | # if the commit was made to the `master` branch.
36 |
37 | curl -sSL "https://raw.githubusercontent.com/h5bp-bot/scripts/0.6.1/commit_build_changes.sh" |
38 | bash -s -- --branch "master" \
39 | --commands "npm install && npm run build" \
40 | --commit-message "Update content from the \`dist\` directory [skip ci]";
41 |
42 | fi
43 | fi
44 |
45 | env:
46 | global:
47 |
48 | # The `secure` key contains three encrypted environment variables
49 | # (GH_TOKEN, GH_USER_EMAIL and GH_USER_NAME), the values of which
50 | # are used by the scripts that are automatically executed by Travis.
51 | #
52 | # Note: The `secure` key will only work for this repository, so if
53 | # you create your own fork, you will need to generate your own key:
54 | #
55 | # travis encrypt -r "/" \
56 | # GH_TOKEN="" \
57 | # GH_USER_EMAIL="" \
58 | # GH_USER_NAME=""
59 | #
60 | # To learn more about how to generate the:
61 | #
62 | # * `secure` key, see:
63 | # http://docs.travis-ci.com/user/encryption-keys/
64 | #
65 | # * GitHub access token, see:
66 | # https://help.github.com/articles/creating-an-access-token-for-command-line-use/
67 |
68 | - secure: "OQnRHkXKdvSujTPm0DSXJFrso0zKltkso0e8zF/2GLI7ouv60ELHhYCrWFuoeefSJFbiPeH/9GXnTAv7y+gC08Ba/DSlXGaHl4db5xU/7AazzQR4YaTks6z0CfvlftdlimGOY27tuDU8hMfqHJKybJGcEvFKCVJms/7udYYh+CA="
69 |
70 | git:
71 | depth: 10
72 |
73 | language: node_js
74 |
75 | node_js:
76 | - "iojs"
77 | - "0.12"
78 |
79 | script:
80 | - curl -sSLo travis_after_all.py https://raw.github.com/dmakhno/travis_after_all/master/travis_after_all.py
81 |
82 | sudo: false
83 |
--------------------------------------------------------------------------------
/client/CHANGELOG.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avplayer/AVRemoteControl/9906b0302271be1099856eea407b3c00e4570c84/client/CHANGELOG.md
--------------------------------------------------------------------------------
/client/CONTRIBUTING.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avplayer/AVRemoteControl/9906b0302271be1099856eea407b3c00e4570c84/client/CONTRIBUTING.md
--------------------------------------------------------------------------------
/client/LICENSE.txt:
--------------------------------------------------------------------------------
1 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
5 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
6 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
7 | SOFTWARE.
8 |
--------------------------------------------------------------------------------
/client/README.md:
--------------------------------------------------------------------------------
1 | THis is the client for AV remote control.
2 |
--------------------------------------------------------------------------------
/client/gulpfile.js:
--------------------------------------------------------------------------------
1 | var fs = require('fs');
2 | var path = require('path');
3 |
4 | var gulp = require('gulp');
5 |
6 | // Load all gulp plugins automatically
7 | // and attach them to the `plugins` object
8 | var plugins = require('gulp-load-plugins')();
9 |
10 | // Temporary solution until gulp 4
11 | // https://github.com/gulpjs/gulp/issues/355
12 | var runSequence = require('run-sequence');
13 |
14 | var pkg = require('./package.json');
15 | var dirs = pkg['h5bp-configs'].directories;
16 |
17 | // ---------------------------------------------------------------------
18 | // | Helper tasks |
19 | // ---------------------------------------------------------------------
20 |
21 | gulp.task('archive:create_archive_dir', function () {
22 | fs.mkdirSync(path.resolve(dirs.archive), '0755');
23 | });
24 |
25 | gulp.task('archive:zip', function (done) {
26 |
27 | var archiveName = path.resolve(dirs.archive, pkg.name + '_v' + pkg.version + '.zip');
28 | var archiver = require('archiver')('zip');
29 | var files = require('glob').sync('**/*.*', {
30 | 'cwd': dirs.dist,
31 | 'dot': true // include hidden files
32 | });
33 | var output = fs.createWriteStream(archiveName);
34 |
35 | archiver.on('error', function (error) {
36 | done();
37 | throw error;
38 | });
39 |
40 | output.on('close', done);
41 |
42 | files.forEach(function (file) {
43 |
44 | var filePath = path.resolve(dirs.dist, file);
45 |
46 | // `archiver.bulk` does not maintain the file
47 | // permissions, so we need to add files individually
48 | archiver.append(fs.createReadStream(filePath), {
49 | 'name': file,
50 | 'mode': fs.statSync(filePath)
51 | });
52 |
53 | });
54 |
55 | archiver.pipe(output);
56 | archiver.finalize();
57 |
58 | });
59 |
60 | gulp.task('clean', function (done) {
61 | require('del')([
62 | dirs.archive,
63 | dirs.dist
64 | ], done);
65 | });
66 |
67 | gulp.task('copy', [
68 | 'copy:.htaccess',
69 | 'copy:index.html',
70 | 'copy:jquery',
71 | 'copy:license',
72 | 'copy:main.css',
73 | 'copy:misc',
74 | 'copy:normalize'
75 | ]);
76 |
77 | gulp.task('copy:.htaccess', function () {
78 | return gulp.src('node_modules/apache-server-configs/dist/.htaccess')
79 | .pipe(plugins.replace(/# ErrorDocument/g, 'ErrorDocument'))
80 | .pipe(gulp.dest(dirs.dist));
81 | });
82 |
83 | gulp.task('copy:index.html', function () {
84 | return gulp.src(dirs.src + '/index.html')
85 | .pipe(plugins.replace(/{{JQUERY_VERSION}}/g, pkg.devDependencies.jquery))
86 | .pipe(gulp.dest(dirs.dist));
87 | });
88 |
89 | gulp.task('copy:jquery', function () {
90 | return gulp.src(['node_modules/jquery/dist/jquery.min.js'])
91 | .pipe(plugins.rename('jquery-' + pkg.devDependencies.jquery + '.min.js'))
92 | .pipe(gulp.dest(dirs.dist + '/js/vendor'));
93 | });
94 |
95 | gulp.task('copy:license', function () {
96 | return gulp.src('LICENSE.txt')
97 | .pipe(gulp.dest(dirs.dist));
98 | });
99 |
100 | gulp.task('copy:main.css', function () {
101 |
102 | var banner = '/*! HTML5 Boilerplate v' + pkg.version +
103 | ' | ' + pkg.license.type + ' License' +
104 | ' | ' + pkg.homepage + ' */\n\n';
105 |
106 | return gulp.src(dirs.src + '/css/main.css')
107 | .pipe(plugins.header(banner))
108 | .pipe(plugins.autoprefixer({
109 | browsers: ['last 2 versions', 'ie >= 8', '> 1%'],
110 | cascade: false
111 | }))
112 | .pipe(gulp.dest(dirs.dist + '/css'));
113 | });
114 |
115 | gulp.task('copy:misc', function () {
116 | return gulp.src([
117 |
118 | // Copy all files
119 | dirs.src + '/**/*',
120 |
121 | // Exclude the following files
122 | // (other tasks will handle the copying of these files)
123 | '!' + dirs.src + '/css/main.css',
124 | '!' + dirs.src + '/index.html'
125 |
126 | ], {
127 |
128 | // Include hidden files by default
129 | dot: true
130 |
131 | }).pipe(gulp.dest(dirs.dist));
132 | });
133 |
134 | gulp.task('copy:normalize', function () {
135 | return gulp.src('node_modules/normalize.css/normalize.css')
136 | .pipe(gulp.dest(dirs.dist + '/css'));
137 | });
138 |
139 | gulp.task('lint:js', function () {
140 | return gulp.src([
141 | 'gulpfile.js',
142 | dirs.src + '/js/*.js',
143 | dirs.test + '/*.js'
144 | ]).pipe(plugins.jscs())
145 | .pipe(plugins.jshint())
146 | .pipe(plugins.jshint.reporter('jshint-stylish'))
147 | .pipe(plugins.jshint.reporter('fail'));
148 | });
149 |
150 |
151 | // ---------------------------------------------------------------------
152 | // | Main tasks |
153 | // ---------------------------------------------------------------------
154 |
155 | gulp.task('archive', function (done) {
156 | runSequence(
157 | 'build',
158 | 'archive:create_archive_dir',
159 | 'archive:zip',
160 | done);
161 | });
162 |
163 | gulp.task('build', function (done) {
164 | runSequence(
165 | ['clean', 'lint:js'],
166 | 'copy',
167 | done);
168 | });
169 |
170 | gulp.task('default', ['build']);
171 |
--------------------------------------------------------------------------------
/client/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "devDependencies": {
3 | "apache-server-configs": "2.14.0",
4 | "archiver": "^0.14.3",
5 | "del": "^1.1.1",
6 | "glob": "^5.0.5",
7 | "gulp": "^3.8.11",
8 | "gulp-autoprefixer": "^2.1.0",
9 | "gulp-header": "^1.2.2",
10 | "gulp-jscs": "^1.5.1",
11 | "gulp-jshint": "^1.9.2",
12 | "gulp-load-plugins": "^0.10.0",
13 | "gulp-rename": "^1.2.0",
14 | "gulp-replace": "^0.5.3",
15 | "jquery": "1.11.3",
16 | "jshint-stylish": "^1.0.1",
17 | "mocha": "^2.2.4",
18 | "normalize.css": "3.0.3",
19 | "run-sequence": "^1.0.2"
20 | },
21 | "engines": {
22 | "node": ">=0.10.0"
23 | },
24 | "h5bp-configs": {
25 | "directories": {
26 | "archive": "archive",
27 | "dist": "dist",
28 | "src": "src",
29 | "test": "test"
30 | }
31 | },
32 | "homepage": "https://html5boilerplate.com/",
33 | "license": {
34 | "type": "MIT",
35 | "url": "https://github.com/h5bp/html5-boilerplate/blob/master/LICENSE.txt"
36 | },
37 | "name": "html5-boilerplate",
38 | "private": true,
39 | "scripts": {
40 | "build": "gulp build",
41 | "test": "gulp archive && mocha --reporter spec --timeout 5000"
42 | },
43 | "version": "5.2.0"
44 | }
45 |
--------------------------------------------------------------------------------
/client/src/.editorconfig:
--------------------------------------------------------------------------------
1 | # editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_size = 4
8 | indent_style = space
9 | insert_final_newline = true
10 | trim_trailing_whitespace = true
11 |
12 | [*.md]
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/client/src/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 |
--------------------------------------------------------------------------------
/client/src/.gitignore:
--------------------------------------------------------------------------------
1 | # Include your project-specific ignores in this file
2 | # Read about how to use .gitignore: https://help.github.com/articles/ignoring-files
3 |
--------------------------------------------------------------------------------
/client/src/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Page Not Found
6 |
7 |
54 |
55 |
56 |
Page Not Found
57 |
Sorry, but the page you were trying to view does not exist.
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/client/src/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avplayer/AVRemoteControl/9906b0302271be1099856eea407b3c00e4570c84/client/src/apple-touch-icon.png
--------------------------------------------------------------------------------
/client/src/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/client/src/crossdomain.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/client/src/css/main.css:
--------------------------------------------------------------------------------
1 | /*
2 | * What follows is the result of much research on cross-browser styling.
3 | * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
4 | * Kroc Camen, and the H5BP dev community and team.
5 | */
6 |
7 | /* ==========================================================================
8 | Base styles: opinionated defaults
9 | ========================================================================== */
10 |
11 | html {
12 | color: #222;
13 | font-size: 1em;
14 | line-height: 1.4;
15 | }
16 |
17 | /*
18 | * Remove text-shadow in selection highlight:
19 | * https://twitter.com/miketaylr/status/12228805301
20 | *
21 | * These selection rule sets have to be separate.
22 | * Customize the background color to match your design.
23 | */
24 |
25 | ::selection {
26 | background: #b3d4fc;
27 | text-shadow: none;
28 | }
29 |
30 | /*
31 | * A better looking default horizontal rule
32 | */
33 |
34 | hr {
35 | display: block;
36 | height: 1px;
37 | border: 0;
38 | border-top: 1px solid #ccc;
39 | margin: 1em 0;
40 | padding: 0;
41 | }
42 |
43 | /*
44 | * Remove the gap between audio, canvas, iframes,
45 | * images, videos and the bottom of their containers:
46 | * https://github.com/h5bp/html5-boilerplate/issues/440
47 | */
48 |
49 | audio,
50 | canvas,
51 | iframe,
52 | img,
53 | svg,
54 | video {
55 | vertical-align: middle;
56 | }
57 |
58 | /*
59 | * Remove default fieldset styles.
60 | */
61 |
62 | fieldset {
63 | border: 0;
64 | margin: 0;
65 | padding: 0;
66 | }
67 |
68 | /*
69 | * Allow only vertical resizing of textareas.
70 | */
71 |
72 | textarea {
73 | resize: vertical;
74 | }
75 |
76 | /* ==========================================================================
77 | Browser Upgrade Prompt
78 | ========================================================================== */
79 |
80 | .browserupgrade {
81 | margin: 0.2em 0;
82 | background: #ccc;
83 | color: #000;
84 | padding: 0.2em 0;
85 | }
86 |
87 | /* ==========================================================================
88 | Author's custom styles
89 | ========================================================================== */
90 |
91 |
92 | .centered
93 | {
94 | text-align:center;
95 | }
96 |
97 | h1
98 | {
99 | color: #fcfffe;
100 | text-shadow: none;
101 | }
102 |
103 |
104 | h3
105 | {
106 | margin-top: 3px;
107 | color: #acc0af;
108 | font-family: Tangerine, verdana, arial, serif;
109 | font-size: 32px;
110 | text-shadow: #23343c 0 0 4px;
111 | }
112 |
113 | body
114 | {
115 | font-family: Vollkorn, sans-serif;
116 | color: #bbffff;
117 | background-color: #2c2638;
118 | text-shadow: #333333 1px 1px 4px;
119 | margin: 0;
120 | padding: 0;
121 | }
122 |
123 | .canvas_block
124 | {
125 | background-color: #111111;
126 | padding: 0;
127 | margin: 0px 10px 10px 10px;
128 | box-shadow: rgb(240, 248, 255) 1px 1px 4px;
129 | width: 800px;
130 | height: 600px;
131 | left: 0;
132 | float: left;
133 | }
134 |
135 | .text_block
136 | {
137 | overflow: auto;
138 | background-color: #3c3648;
139 | padding: 5px;
140 | margin: 10px;
141 | box-shadow: rgb(240, 248, 255) 1px 1px 4px;
142 | width: auto;
143 | height: 590px;
144 | left: 0;
145 | right: 0;
146 | float: none;
147 | }
148 |
149 | .container
150 | {
151 | width:100%;
152 | height:100%;
153 | margin: 0;
154 | padding: 0;
155 | }
156 |
157 | .tail
158 | {
159 | background-color: #222222;
160 | position: fixed;
161 | bottom: 0;
162 | width: 100%;
163 | height: 21px;
164 | margin: 0;
165 | padding: 15px 0;
166 | }
167 |
168 | #param_pad td:last-child
169 | {
170 | color: #22ff33;
171 | }
172 |
173 | canvas
174 | {
175 | margin: 0;
176 | padding: 0;
177 | }
178 |
179 | /* ==========================================================================
180 | Helper classes
181 | ========================================================================== */
182 |
183 | /*
184 | * Hide visually and from screen readers:
185 | */
186 |
187 | .hidden {
188 | display: none !important;
189 | }
190 |
191 | /*
192 | * Hide only visually, but have it available for screen readers:
193 | * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
194 | */
195 |
196 | .visuallyhidden {
197 | border: 0;
198 | clip: rect(0 0 0 0);
199 | height: 1px;
200 | margin: -1px;
201 | overflow: hidden;
202 | padding: 0;
203 | position: absolute;
204 | width: 1px;
205 | }
206 |
207 | /*
208 | * Extends the .visuallyhidden class to allow the element
209 | * to be focusable when navigated to via the keyboard:
210 | * https://www.drupal.org/node/897638
211 | */
212 |
213 | .visuallyhidden.focusable:active,
214 | .visuallyhidden.focusable:focus {
215 | clip: auto;
216 | height: auto;
217 | margin: 0;
218 | overflow: visible;
219 | position: static;
220 | width: auto;
221 | }
222 |
223 | /*
224 | * Hide visually and from screen readers, but maintain layout
225 | */
226 |
227 | .invisible {
228 | visibility: hidden;
229 | }
230 |
231 | /*
232 | * Clearfix: contain floats
233 | *
234 | * For modern browsers
235 | * 1. The space content is one way to avoid an Opera bug when the
236 | * `contenteditable` attribute is included anywhere else in the document.
237 | * Otherwise it causes space to appear at the top and bottom of elements
238 | * that receive the `clearfix` class.
239 | * 2. The use of `table` rather than `block` is only necessary if using
240 | * `:before` to contain the top-margins of child elements.
241 | */
242 |
243 | .clearfix:before,
244 | .clearfix:after {
245 | content: " "; /* 1 */
246 | display: table; /* 2 */
247 | }
248 |
249 | .clearfix:after {
250 | clear: both;
251 | }
252 |
253 | /* ==========================================================================
254 | EXAMPLE Media Queries for Responsive Design.
255 | These examples override the primary ('mobile first') styles.
256 | Modify as content requires.
257 | ========================================================================== */
258 |
259 | @media only screen and (min-width: 35em) {
260 | /* Style adjustments for viewports that meet the condition */
261 | }
262 |
263 | @media print,
264 | (min-resolution: 1.25dppx),
265 | (min-resolution: 120dpi) {
266 | /* Style adjustments for high resolution devices */
267 | }
268 |
269 | /* ==========================================================================
270 | Print styles.
271 | Inlined to avoid the additional HTTP request:
272 | http://www.phpied.com/delay-loading-your-print-css/
273 | ========================================================================== */
274 |
275 | @media print {
276 | *,
277 | *:before,
278 | *:after {
279 | background: transparent !important;
280 | color: #000 !important; /* Black prints faster:
281 | http://www.sanbeiji.com/archives/953 */
282 | box-shadow: none !important;
283 | text-shadow: none !important;
284 | }
285 |
286 | a,
287 | a:visited {
288 | text-decoration: underline;
289 | }
290 |
291 | a[href]:after {
292 | content: " (" attr(href) ")";
293 | }
294 |
295 | abbr[title]:after {
296 | content: " (" attr(title) ")";
297 | }
298 |
299 | /*
300 | * Don't show links that are fragment identifiers,
301 | * or use the `javascript:` pseudo protocol
302 | */
303 |
304 | a[href^="#"]:after,
305 | a[href^="javascript:"]:after {
306 | content: "";
307 | }
308 |
309 | pre,
310 | blockquote {
311 | border: 1px solid #999;
312 | page-break-inside: avoid;
313 | }
314 |
315 | /*
316 | * Printing Tables:
317 | * http://css-discuss.incutio.com/wiki/Printing_Tables
318 | */
319 |
320 | thead {
321 | display: table-header-group;
322 | }
323 |
324 | tr,
325 | img {
326 | page-break-inside: avoid;
327 | }
328 |
329 | img {
330 | max-width: 100% !important;
331 | }
332 |
333 | p,
334 | h2,
335 | h3 {
336 | orphans: 3;
337 | widows: 3;
338 | }
339 |
340 | h2,
341 | h3 {
342 | page-break-after: avoid;
343 | }
344 | }
345 |
--------------------------------------------------------------------------------
/client/src/doc/TOC.md:
--------------------------------------------------------------------------------
1 | [HTML5 Boilerplate homepage](https://html5boilerplate.com)
2 |
3 | ## Getting started
4 |
5 | * [Usage](usage.md) — Overview of the project contents.
6 | * [FAQ](faq.md) — Frequently asked questions along with their answers.
7 |
8 | ## HTML5 Boilerplate core
9 |
10 | * [HTML](html.md) — Guide to the default HTML.
11 | * [CSS](css.md) — Guide to the default CSS.
12 | * [JavaScript](js.md) — Guide to the default JavaScript.
13 | * [Everything else](misc.md).
14 |
15 | ## Development
16 |
17 | * [Extending and customizing HTML5 Boilerplate](extend.md) — Going further
18 | with the boilerplate.
19 |
20 | ## Related projects
21 |
22 | The [H5BP organization](https://github.com/h5bp) maintains several projects
23 | that complement HTML5 Boilerplate, projects that can help you improve different
24 | aspects of your website/web app (e.g.: the performance, security, etc.).
25 |
26 | * [Server Configs](https://github.com/h5bp/server-configs) — Fast and
27 | smart configurations for web servers such as Apache and Nginx.
28 | * [Ant Build Script](https://github.com/h5bp/ant-build-script) — Apache
29 | Ant based build script.
30 |
--------------------------------------------------------------------------------
/client/src/doc/css.md:
--------------------------------------------------------------------------------
1 | [HTML5 Boilerplate homepage](https://html5boilerplate.com) | [Documentation
2 | table of contents](TOC.md)
3 |
4 | # The CSS
5 |
6 | HTML5 Boilerplate's CSS includes:
7 |
8 | * [Normalize.css](#normalizecss)
9 | * [Useful defaults](#useful-defaults)
10 | * [Common helpers](#common-helpers)
11 | * [Placeholder media queries](#media-queries)
12 | * [Print styles](#print-styles)
13 |
14 | This starting CSS does not rely on the presence of
15 | [conditional class names](https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/),
16 | [conditional style sheets](https://css-tricks.com/how-to-create-an-ie-only-stylesheet/),
17 | or [Modernizr](http://modernizr.com/), and it is ready to use no matter what
18 | your development preferences happen to be.
19 |
20 |
21 | ## Normalize.css
22 |
23 | In order to make browsers render all elements more consistently and in line
24 | with modern standards, we include
25 | [Normalize.css](https://necolas.github.io/normalize.css/) — a modern, HTML5-ready
26 | alternative to CSS resets.
27 |
28 | As opposed to CSS resets, Normalize.css:
29 |
30 | * targets only the styles that need normalizing
31 | * preserves useful browser defaults rather than erasing them
32 | * corrects bugs and common browser inconsistencies
33 | * improves usability with subtle improvements
34 | * doesn't clutter the debugging tools
35 | * has better documentation
36 |
37 | For more information about Normalize.css, please refer to its [project
38 | page](https://necolas.github.com/normalize.css/), as well as this
39 | [blog post](http://nicolasgallagher.com/about-normalize-css/).
40 |
41 |
42 | ## Useful defaults
43 |
44 | Several base styles are included that build upon `Normalize.css`. These
45 | styles:
46 |
47 | * provide basic typography settings that improve text readability
48 | * protect against unwanted `text-shadow` during text highlighting
49 | * tweak the default alignment of some elements (e.g.: `img`, `video`,
50 | `fieldset`, `textarea`)
51 | * style the prompt that is displayed to users using an outdated browser
52 |
53 | You are free and even encouraged to modify or add to these base styles as your
54 | project requires.
55 |
56 |
57 | ## Common helpers
58 |
59 | Along with the base styles, we also provide some commonly used helper classes.
60 |
61 | #### `.hidden`
62 |
63 | The `hidden` class can be added to any element that you want to hide visually
64 | and from screen readers. It could be an element that will be populated and
65 | displayed later, or an element you will hide with JavaScript.
66 |
67 | #### `.visuallyhidden`
68 |
69 | The `visuallyhidden` class can be added to any element that you want to hide
70 | visually, while still have its content accessible to screen readers.
71 |
72 | See also:
73 |
74 | * [CSS in Action: Invisible Content Just for Screen Reader
75 | Users](http://www.webaim.org/techniques/css/invisiblecontent/)
76 | * [Hiding content for
77 | accessibility](http://snook.ca/archives/html_and_css/hiding-content-for-accessibility)
78 | * [HTML5 Boilerplate - Issue #194](https://github.com/h5bp/html5-boilerplate/issues/194/).
79 |
80 | #### `.invisible`
81 |
82 | The `invisible` class can be added to any element that you want to hide
83 | visually and from screen readers, but without affecting the layout.
84 |
85 | As opposed to the `hidden` class that effectively removes the element from the
86 | layout, the `invisible` class will simply make the element invisible while
87 | keeping it in the flow and not affecting the positioning of the surrounding
88 | content.
89 |
90 | __N.B.__ Try to stay away from, and don't use the classes specified above for
91 | [keyword stuffing](https://en.wikipedia.org/wiki/Keyword_stuffing) as you will
92 | harm your site's ranking!
93 |
94 | #### `.clearfix`
95 |
96 | The `clearfix` class can be added to any element to ensure that it always fully
97 | contains its floated children.
98 |
99 | Over the years there have been many variants of the clearfix hack, but currently,
100 | we use the [micro clearfix](http://nicolasgallagher.com/micro-clearfix-hack/).
101 |
102 |
103 | ## Media Queries
104 |
105 | HTML5 Boilerplate makes it easy for you to get started with a
106 | [_mobile first_](http://www.lukew.com/presos/preso.asp?26) and [_responsive web
107 | design_](http://www.alistapart.com/articles/responsive-web-design/) approach to
108 | development. But it's worth remembering that there are [no silver
109 | bullets](http://blog.cloudfour.com/css-media-query-for-mobile-is-fools-gold/).
110 |
111 | We include placeholder media queries to help you build up your mobile styles for
112 | wider viewports and high-resolution displays. It's recommended that you adapt
113 | these media queries based on the content of your site rather than mirroring the
114 | fixed dimensions of specific devices.
115 |
116 | If you do not want to take the _mobile first_ approach, you can simply edit or
117 | remove these placeholder media queries. One possibility would be to work from
118 | wide viewports down, and use `max-width` media queries instead (e.g.:
119 | `@media only screen and (max-width: 480px)`).
120 |
121 | For more features that can help you in your mobile web development, take a look
122 | into our [Mobile Boilerplate](https://github.com/h5bp/mobile-boilerplate).
123 |
124 |
125 | ## Print styles
126 |
127 | Lastly, we provide some useful print styles that will optimize the printing
128 | process, as well as make the printed pages easier to read.
129 |
130 | At printing time, these styles will:
131 |
132 | * strip all background colors, change the font color to black, and remove the
133 | `text-shadow` — done in order to [help save printer ink and speed up the
134 | printing process](http://www.sanbeiji.com/archives/953)
135 | * underline and expand links to include the URL — done in order to allow users
136 | to know where to refer to
137 | (exceptions to this are: the links that are
138 | [fragment identifiers](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-href),
139 | or use the
140 | [`javascript:` pseudo protocol](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void#JavaScript_URIs))
141 | * expand abbreviations to include the full description — done in order to allow
142 | users to know what the abbreviations stands for
143 | * provide instructions on how browsers should break the content into pages and
144 | on [orphans/widows](https://en.wikipedia.org/wiki/Widows_and_orphans), namely,
145 | we instruct
146 | [supporting browsers](https://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28Cascading_Style_Sheets%29#Grammar_and_rules)
147 | that they should:
148 |
149 | * ensure the table header (``) is [printed on each page spanned by the
150 | table](http://css-discuss.incutio.com/wiki/Printing_Tables)
151 | * prevent block quotations, preformatted text, images and table rows from
152 | being split onto two different pages
153 | * ensure that headings never appear on a different page than the text they
154 | are associated with
155 | * ensure that
156 | [orphans and widows](https://en.wikipedia.org/wiki/Widows_and_orphans) do
157 | [not appear on printed pages](https://css-tricks.com/almanac/properties/o/orphans/)
158 |
159 | The print styles are included along with the other `css` to [avoid the
160 | additional HTTP request](http://www.phpied.com/delay-loading-your-print-css/).
161 | Also, they should always be included last, so that the other styles can be
162 | overwritten.
163 |
--------------------------------------------------------------------------------
/client/src/doc/faq.md:
--------------------------------------------------------------------------------
1 | [HTML5 Boilerplate homepage](https://html5boilerplate.com) | [Documentation
2 | table of contents](TOC.md)
3 |
4 | # Frequently asked questions
5 |
6 | * [Why don't you automatically load the latest version of jQuery from the Google
7 | CDN?](#why-dont-you-automatically-load-the-latest-version-of-jquery-from-the-google-cdn)
8 | * [Why is the Google Analytics code at the bottom? Google recommends it be
9 | placed in the ``.](#why-is-the-google-analytics-code-at-the-bottom-google-recommends-it-be-placed-in-the-head)
10 | * [How can I integrate Bootstrap with HTML5
11 | Boilerplate?](#how-can-i-integrate-bootstrap-with-html5-boilerplate)
12 | * [Do I need to upgrade my site each time a new version of HTML5 Boilerplate is
13 | released?](#do-i-need-to-upgrade-my-site-each-time-a-new-version-of-html5-boilerplate-is-released)
14 | * [Where can I get help with support
15 | questions?](#where-can-i-get-help-with-support-questions)
16 |
17 | --
18 |
19 | ### Why don't you automatically load the latest version of jQuery from the Google CDN?
20 |
21 | The [file](https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js) to which
22 | the Google [CDN](https://en.wikipedia.org/wiki/Content_delivery_network) points
23 | to is [no longer updated and will stay locked at version `1.11.1` in order to
24 | prevent inadvertent web
25 | breakage](http://blog.jquery.com/2014/07/03/dont-use-jquery-latest-js/).
26 |
27 | In general, version updating should be an intentional decision! You shouldn't
28 | include a URL that will always point to the latest version, as that version:
29 |
30 | * may not be compatible with the existing plugins/code on the site
31 | * will have a very short cache time compare to the specific version,
32 | which means that users won't get the benefits of long-term caching
33 |
34 | ### Why is the Google Analytics code at the bottom? Google recommends it be placed in the ``.
35 |
36 | The main advantage of placing it in the `` is that you will track the
37 | user's `pageview` even if they leave the page before it has been fully loaded.
38 | However, having the code at the bottom of the page [helps improve
39 | performance](https://stevesouders.com/efws/inline-scripts-bottom.php).
40 |
41 |
42 | ### How can I integrate [Bootstrap](http://getbootstrap.com/) with HTML5 Boilerplate?
43 |
44 | One simple way is to use [Initializr](http://www.initializr.com/) and create a
45 | custom build that includes both HTML5 Boilerplate and
46 | [Bootstrap](http://getbootstrap.com/).
47 |
48 | Read more about how [HTML5 Boilerplate and Bootstrap complement each
49 | other](https://www.quora.com/Is-Bootstrap-a-complement-or-an-alternative-to-HTML5-Boilerplate-or-viceversa/answer/Nicolas-Gallagher).
50 |
51 |
52 | ### Do I need to upgrade my site each time a new version of HTML5 Boilerplate is released?
53 |
54 | No, same as you don't normally replace the foundation of a house once it
55 | was built. However, there is nothing stopping you from trying to work in the
56 | latest changes, but you'll have to assess the costs/benefits of doing so.
57 |
58 |
59 | ### Where can I get help with support questions?
60 |
61 | Please ask for help on
62 | [StackOverflow](https://stackoverflow.com/questions/tagged/html5boilerplate).
63 |
--------------------------------------------------------------------------------
/client/src/doc/html.md:
--------------------------------------------------------------------------------
1 | [HTML5 Boilerplate homepage](https://html5boilerplate.com) | [Documentation
2 | table of contents](TOC.md)
3 |
4 | # The HTML
5 |
6 | By default, HTML5 Boilerplate provides two `html` pages:
7 |
8 | * [`index.html`](#indexhtml) - a default HTML skeleton that should form the
9 | basis of all pages on your website
10 | * [`404.html`](#404html) - a placeholder 404 error page
11 |
12 |
13 | ## `index.html`
14 |
15 |
16 | ### The `no-js` class
17 |
18 | The `no-js` class is provided in order to allow you to more easily and
19 | explicitly add custom styles based on whether JavaScript is disabled
20 | (`.no-js`) or enabled (`.js`). Using this technique also helps [avoid the
21 | FOUC](https://www.paulirish.com/2009/avoiding-the-fouc-v3/).
22 |
23 |
24 | ## Language attribute
25 |
26 | Please consider specifying the language of your content by adding the `lang`
27 | attribute to `` as in this example:
28 |
29 | ```html
30 |
31 | ```
32 |
33 | ### The order of the `` and `` tags
34 |
35 | The order in which the `` and the `` tags are specified is
36 | important because:
37 |
38 | 1) the charset declaration (``):
39 |
40 | * must be included completely within the [first 1024 bytes of the
41 | document](https://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset)
42 |
43 | * should be specified as early as possible (before any content that could
44 | be controlled by an attacker, such as a `` element) in order to
45 | avoid a potential [encoding-related security
46 | issue](https://code.google.com/p/doctype-mirror/wiki/ArticleUtf7) in
47 | Internet Explorer
48 |
49 | 2) the meta tag for compatibility mode
50 | (``):
51 |
52 | * [needs to be included before all other tags except for the `` and
53 | the other ``
54 | tags](https://msdn.microsoft.com/en-us/library/cc288325.aspx)
55 |
56 |
57 | ### `x-ua-compatible`
58 |
59 | Internet Explorer 8/9/10 support [document compatibility
60 | modes](https://msdn.microsoft.com/en-us/library/cc288325.aspx) that affect the
61 | way webpages are interpreted and displayed. Because of this, even if your site's
62 | visitor is using, let's say, Internet Explorer 9, it's possible that IE will not
63 | use the latest rendering engine, and instead, decide to render your page using
64 | the Internet Explorer 5.5 rendering engine.
65 |
66 | Specifying the `x-ua-compatible` meta tag:
67 |
68 | ```html
69 |
70 | ```
71 |
72 | or sending the page with the following HTTP response header
73 |
74 | ```
75 | X-UA-Compatible: IE=edge
76 | ```
77 |
78 | will force Internet Explorer 8/9/10 to render the webpage in the highest
79 | available mode in [the various cases when it may
80 | not](https://hsivonen.fi/doctype/#ie8), and therefore, ensure that anyone
81 | browsing your site is treated to the best possible user experience that
82 | browser can offer.
83 |
84 | If possible, we recommend that you remove the `meta` tag and send only the
85 | HTTP response header as the `meta` tag will not always work if your site is
86 | served on a non-standard port, as Internet Explorer's preference option
87 | `Display intranet sites in Compatibility View` is checked by default.
88 |
89 | If you are using Apache as your webserver, including the
90 | [`.htaccess`](https://github.com/h5bp/server-configs-apache) file takes care of
91 | the HTTP header. If you are using a different server, check out our [other
92 | server config](https://github.com/h5bp/server-configs).
93 |
94 | Starting with Internet Explorer 11, [document modes are
95 | deprecated](https://msdn.microsoft.com/en-us/library/ie/bg182625.aspx#docmode).
96 | If your business still relies on older web apps and services that were
97 | designed for older versions of Internet Explorer, you might want to consider
98 | enabling [Enterprise Mode](http://blogs.msdn.com/b/ie/archive/2014/04/02/stay-up-to-date-with-enterprise-mode-for-internet-explorer-11.aspx) throughout your company.
99 |
100 |
101 | ## Mobile viewport
102 |
103 | There are a few different options that you can use with the [`viewport` meta
104 | tag](https://docs.google.com/present/view?id=dkx3qtm_22dxsrgcf4 "Viewport and
105 | Media Queries - The Complete Idiot's Guide"). You can find out more in [the
106 | Apple developer docs](https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariWebContent/UsingtheViewport/UsingtheViewport.html).
107 | HTML5 Boilerplate comes with a simple setup that strikes a good balance for general use cases.
108 |
109 | ```html
110 |
111 | ```
112 |
113 | ## Favicons and Touch Icon
114 |
115 | The shortcut icons should be put in the root directory of your site. HTML5
116 | Boilerplate comes with a default set of icons (include favicon and one Apple
117 | Touch Icon) that you can use as a baseline to create your own.
118 |
119 | Please refer to the more detailed description in the [Extend section](extend.md)
120 | of these docs.
121 |
122 | ## Modernizr
123 |
124 | HTML5 Boilerplate uses a custom build of Modernizr.
125 |
126 | [Modernizr](http://modernizr.com) is a JavaScript library which adds classes to
127 | the `html` element based on the results of feature test and which ensures that
128 | all browsers can make use of HTML5 elements (as it includes the HTML5 Shiv).
129 | This allows you to target parts of your CSS and JavaScript based on the
130 | features supported by a browser.
131 |
132 | In general, in order to keep page load times to a minimum, it's best to call
133 | any JavaScript at the end of the page because if a script is slow to load
134 | from an external server it may cause the whole page to hang. That said, the
135 | Modernizr script *needs* to run *before* the browser begins rendering the page,
136 | so that browsers lacking support for some of the new HTML5 elements are able to
137 | handle them properly. Therefore the Modernizr script is the only JavaScript
138 | file synchronously loaded at the top of the document.
139 |
140 | ## What about polyfills?
141 |
142 | If you need to include [polyfills](https://remysharp.com/2010/10/08/what-is-a-polyfill)
143 | in your project, you must make sure those load before any other JavaScript. If you're
144 | using some polyfill CDN service, like [cdn.polyfill.io](https://cdn.polyfill.io/),
145 | just put it before the other scripts in the bottom of the page:
146 |
147 | ```html
148 |
149 |
150 |
151 |
152 |
153 |
154 | ```
155 |
156 | If you like to just include the polyfills yourself, you could include them in
157 | `js/plugins.js`. When you have a bunch of polyfills to load in, you could
158 | also create a `polyfills.js` file in the `js/vendor` directory. Also using
159 | this technique, make sure the polyfills are all loaded before any other
160 | Javascript.
161 |
162 | There are some misconceptions about Modernizr and polyfills. It's important
163 | to understand that Modernizr just handles feature checking, not polyfilling
164 | itself. The only thing Modernizr does regarding polyfills is that the team
165 | maintains [a huge list of cross Browser polyfills](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills).
166 |
167 | ## The content area
168 |
169 | The central part of the boilerplate template is pretty much empty. This is
170 | intentional, in order to make the boilerplate suitable for both web page and
171 | web app development.
172 |
173 | ### Browser Upgrade Prompt
174 |
175 | The main content area of the boilerplate includes a prompt to install an up to
176 | date browser for users of IE 6/7. If you intended to support IE 6/7, then you
177 | should remove the snippet of code.
178 |
179 | ### Google CDN for jQuery
180 |
181 | The Google CDN version of the jQuery JavaScript library is referenced towards
182 | the bottom of the page using a protocol-independent path (read more about this
183 | in the [FAQ](faq.md)). A local fallback of jQuery is included for rare instances
184 | when the CDN version might not be available, and to facilitate offline
185 | development.
186 |
187 | The Google CDN version is chosen over other [potential candidates (like the
188 | jQuery CDN](https://jquery.com/download/#using-jquery-with-a-cdn)) because
189 | it's fast in absolute terms and it has the best overall
190 | [penetration](http://httparchive.org/trends.php#perGlibs) which increases the
191 | odds of having a copy of the library in your user's browser cache.
192 |
193 | While the Google CDN is a strong default solution your site or application may
194 | require a different configuration. Testing your site with services like
195 | [WebPageTest](https://www.webpagetest.org/) and browser tools like
196 | [PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/) or
197 | [YSlow](https://developer.yahoo.com/yslow/) will help you examine the real
198 | world performance of your site and can show where you can optimize your specific
199 | site or application.
200 |
201 |
202 | ### Google Universal Analytics Tracking Code
203 |
204 | Finally, an optimized version of the Google Universal Analytics tracking code is
205 | included. Google recommends that this script be placed at the top of the page.
206 | Factors to consider: if you place this script at the top of the page, you’ll
207 | be able to count users who don’t fully load the page, and you’ll incur the max
208 | number of simultaneous connections of the browser.
209 |
210 | Further information:
211 |
212 | * [Optimizing the Google Universal Analytics
213 | Snippet](https://mathiasbynens.be/notes/async-analytics-snippet#universal-analytics)
214 | * [Introduction to
215 | Analytics.js](https://developers.google.com/analytics/devguides/collection/analyticsjs/)
216 | * [Google Analytics Demos & Tools](https://ga-dev-tools.appspot.com/)
217 |
218 | **N.B.** The Google Universal Analytics snippet is included by default mainly
219 | because Google Analytics is [currently one of the most popular tracking
220 | solutions](https://trends.builtwith.com/analytics/Google-Analytics) out there.
221 | However, its usage isn't set in stone, and you SHOULD consider exploring the
222 | [alternatives](https://en.wikipedia.org/wiki/List_of_web_analytics_software)
223 | and use whatever suits your needs best!
224 |
--------------------------------------------------------------------------------
/client/src/doc/js.md:
--------------------------------------------------------------------------------
1 | [HTML5 Boilerplate homepage](https://html5boilerplate.com) | [Documentation
2 | table of contents](TOC.md)
3 |
4 | # The JavaScript
5 |
6 | Information about the default JavaScript included in the project.
7 |
8 | ## main.js
9 |
10 | This file can be used to contain or reference your site/app JavaScript code.
11 | For larger projects, you can make use of a JavaScript module loader, like
12 | [Require.js](http://requirejs.org/), to load any other scripts you need to
13 | run.
14 |
15 | ## plugins.js
16 |
17 | This file can be used to contain all your plugins, such as jQuery plugins and
18 | other 3rd party scripts.
19 |
20 | One approach is to put jQuery plugins inside of a `(function($){ ...
21 | })(jQuery);` closure to make sure they're in the jQuery namespace safety
22 | blanket. Read more about [jQuery plugin
23 | authoring](https://learn.jquery.com/plugins/#Getting_Started).
24 |
25 | By default the `plugins.js` file contains a small script to avoid `console`
26 | errors in browsers that lack a `console`. The script will make sure that, if
27 | a console method isn't available, that method will have the value of empty
28 | function, thus, preventing the browser from throwing an error.
29 |
30 |
31 | ## vendor
32 |
33 | This directory can be used to contain all 3rd party library code.
34 |
35 | Minified versions of the latest jQuery and Modernizr libraries are included by
36 | default. You may wish to create your own [custom Modernizr
37 | build](http://www.modernizr.com/download/).
38 |
--------------------------------------------------------------------------------
/client/src/doc/misc.md:
--------------------------------------------------------------------------------
1 | [HTML5 Boilerplate homepage](https://html5boilerplate.com) | [Documentation
2 | table of contents](TOC.md)
3 |
4 | # Miscellaneous
5 |
6 | * [.gitignore](#gitignore)
7 | * [.editorconfig](#editorconfig)
8 | * [Server Configuration](#server-configuration)
9 | * [crossdomain.xml](#crossdomainxml)
10 | * [robots.txt](#robotstxt)
11 | * [browserconfig.xml](#browserconfigxml)
12 |
13 | --
14 |
15 | ## .gitignore
16 |
17 | HTML5 Boilerplate includes a basic project-level `.gitignore`. This should
18 | primarily be used to avoid certain project-level files and directories from
19 | being kept under source control. Different development-environments will
20 | benefit from different collections of ignores.
21 |
22 | OS-specific and editor-specific files should be ignored using a "global
23 | ignore" that applies to all repositories on your system.
24 |
25 | For example, add the following to your `~/.gitconfig`, where the `.gitignore`
26 | in your HOME directory contains the files and directories you'd like to
27 | globally ignore:
28 |
29 | ```gitignore
30 | [core]
31 | excludesfile = ~/.gitignore
32 | ```
33 |
34 | * More on global ignores: https://help.github.com/articles/ignoring-files
35 | * Comprehensive set of ignores on GitHub: https://github.com/github/gitignore
36 |
37 |
38 | ## .editorconfig
39 |
40 | The `.editorconfig` file is provided in order to encourage and help you and
41 | your team define and maintain consistent coding styles between different
42 | editors and IDEs.
43 |
44 | By default, `.editorconfig` includes some basic
45 | [properties](http://editorconfig.org/#supported-properties) that reflect the
46 | coding styles from the files provided by default, but you can easily change
47 | them to better suit your needs.
48 |
49 | In order for your editor/IDE to apply the
50 | [properties](http://editorconfig.org/#supported-properties) from the
51 | `.editorconfig` file, you will need to [install a
52 | plugin]( http://editorconfig.org/#download).
53 |
54 | __N.B.__ If you aren't using the server configurations provided by HTML5
55 | Boilerplate, we highly encourage you to configure your server to block
56 | access to `.editorconfig` files, as they can disclose sensitive information!
57 |
58 | For more details, please refer to the [EditorConfig
59 | project](http://editorconfig.org/).
60 |
61 |
62 | ## Server Configuration
63 |
64 | H5BP includes a [`.htaccess`](#htaccess) file for the Apache HTTP server. If you are not using
65 | Apache as your web server, then you are encouraged to download a
66 | [server configuration](https://github.com/h5bp/server-configs) that corresponds
67 | to your web server and environment.
68 |
69 | A `.htaccess` (hypertext access) file is a
70 | [Apache HTTP server configuration file](https://github.com/h5bp/server-configs-apache).
71 | The `.htaccess` file is mostly used for:
72 |
73 | * Rewriting URLs
74 | * Controlling cache
75 | * Authentication
76 | * Server-side includes
77 | * Redirects
78 | * Gzipping
79 |
80 | If you have access to the main server configuration file (usually called
81 | `httpd.conf`), you should add the logic from the `.htaccess` file in, for
82 | example, a section in the main configuration file. This is usually
83 | the recommended way, as using .htaccess files slows down Apache!
84 |
85 | To enable Apache modules locally, please see:
86 | https://github.com/h5bp/server-configs-apache/wiki/How-to-enable-Apache-modules.
87 |
88 | In the repo the `.htaccess` is used for:
89 |
90 | * Allowing cross-origin access to web fonts
91 | * CORS header for images when browsers request it
92 | * Enable `404.html` as 404 error document
93 | * Making the website experience better for IE users better
94 | * Media UTF-8 as character encoding for `text/html` and `text/plain`
95 | * Enabling the rewrite URLs engine
96 | * Forcing or removing the `www.` at the begin of a URL
97 | * It blocks access to directories without a default document
98 | * It blocks access to files that can expose sensitive information.
99 | * It reduces MIME type security risks
100 | * It forces compressing (gzipping)
101 | * It tells the browser whether they should request a specific file from the
102 | server or whether they should grab it from the browser's cache
103 |
104 | When using `.htaccess` we recommend reading all inline comments (the rules after
105 | a `#`) in the file once. There is a bunch of optional stuff in it.
106 |
107 | If you want to know more about the `.htaccess` file check out
108 | https://httpd.apache.org/docs/current/howto/htaccess.html.
109 |
110 | Notice that the original repo for the `.htaccess` file is [this
111 | one](https://github.com/h5bp/server-configs-apache).
112 |
113 |
114 | ## crossdomain.xml
115 |
116 | The _cross-domain policy file_ is an XML document that gives a web client —
117 | such as Adobe Flash Player, Adobe Reader, etc. — permission to handle data
118 | across multiple domains, by:
119 |
120 | * granting read access to data
121 | * permitting the client to include custom headers in cross-domain requests
122 | * granting permissions for socket-based connections
123 |
124 | __e.g.__ If a client hosts content from a particular source domain and that
125 | content makes requests directed towards a domain other than its own, the remote
126 | domain would need to host a cross-domain policy file in order to grant access
127 | to the source domain and allow the client to continue with the transaction.
128 |
129 | For more in-depth information, please see Adobe's [cross-domain policy file
130 | specification](https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html).
131 |
132 |
133 | ## robots.txt
134 |
135 | The `robots.txt` file is used to give instructions to web robots on what can
136 | be crawled from the website.
137 |
138 | By default, the file provided by this project includes the next two lines:
139 |
140 | * `User-agent: *` - the following rules apply to all web robots
141 | * `Disallow:` - everything on the website is allowed to be crawled
142 |
143 | If you want to disallow certain pages you will need to specify the path in a
144 | `Disallow` directive (e.g.: `Disallow: /path`) or, if you want to disallow
145 | crawling of all content, use `Disallow: /`.
146 |
147 | The `/robots.txt` file is not intended for access control, so don't try to
148 | use it as such. Think of it as a "No Entry" sign, rather than a locked door.
149 | URLs disallowed by the `robots.txt` file might still be indexed without being
150 | crawled, and the content from within the `robots.txt` file can be viewed by
151 | anyone, potentially disclosing the location of your private content! So, if
152 | you want to block access to private content, use proper authentication instead.
153 |
154 | For more information about `robots.txt`, please see:
155 |
156 | * [robotstxt.org](http://www.robotstxt.org/)
157 | * [How Google handles the `robots.txt` file](https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt)
158 |
159 |
160 | ## browserconfig.xml
161 |
162 | The `browserconfig.xml` file is used to customize the tile displayed when users
163 | pin your site to the Windows 8.1 start screen. In there you can define custom
164 | tile colors, custom images or even [live tiles](https://msdn.microsoft.com/en-us/library/ie/dn455106.aspx#CreatingLiveTiles).
165 |
166 | By default, the file points to 2 placeholder tile images:
167 |
168 | * `tile.png` (558x558px): used for `Small`, `Medium` and `Large` tiles.
169 | This image resizes automatically when necessary.
170 | * `tile-wide.png` (558x270px): user for `Wide` tiles.
171 |
172 | Notice that IE11 uses the same images when adding a site to the `favorites`.
173 |
174 | For more in-depth information about the `browserconfig.xml` file, please
175 | see [MSDN](https://msdn.microsoft.com/en-us/library/ie/dn320426.aspx).
176 |
--------------------------------------------------------------------------------
/client/src/doc/usage.md:
--------------------------------------------------------------------------------
1 | [HTML5 Boilerplate homepage](https://html5boilerplate.com) | [Documentation
2 | table of contents](TOC.md)
3 |
4 | # Usage
5 |
6 | Once you have cloned or downloaded HTML5 Boilerplate, creating a site or app
7 | usually involves the following:
8 |
9 | 1. Set up the basic structure of the site.
10 | 2. Add some content, style, and functionality.
11 | 3. Run your site locally to see how it looks.
12 | 4. (Optionally run a build script to automate the optimization of your site -
13 | e.g. [ant build script](https://github.com/h5bp/ant-build-script))
14 | 5. Deploy your site.
15 |
16 |
17 | ## Basic structure
18 |
19 | A basic HTML5 Boilerplate site initially looks something like this:
20 |
21 | ```
22 | .
23 | ├── css
24 | │ ├── main.css
25 | │ └── normalize.css
26 | ├── doc
27 | ├── img
28 | ├── js
29 | │ ├── main.js
30 | │ ├── plugins.js
31 | │ └── vendor
32 | │ ├── jquery.min.js
33 | │ └── modernizr.min.js
34 | ├── .editorconfig
35 | ├── .htaccess
36 | ├── 404.html
37 | ├── apple-touch-icon.png
38 | ├── browserconfig.xml
39 | ├── index.html
40 | ├── humans.txt
41 | ├── robots.txt
42 | ├── crossdomain.xml
43 | ├── favicon.ico
44 | ├── tile-wide.png
45 | └── tile.png
46 | ```
47 |
48 | What follows is a general overview of each major part and how to use them.
49 |
50 | ### css
51 |
52 | This directory should contain all your project's CSS files. It includes some
53 | initial CSS to help get you started from a solid foundation. [About the
54 | CSS](css.md).
55 |
56 | ### doc
57 |
58 | This directory contains all the HTML5 Boilerplate documentation. You can use it
59 | as the location and basis for your own project's documentation.
60 |
61 | ### js
62 |
63 | This directory should contain all your project's JS files. Libraries, plugins,
64 | and custom code can all be included here. It includes some initial JS to help
65 | get you started. [About the JavaScript](js.md).
66 |
67 | ### .htaccess
68 |
69 | The default web server configs are for Apache. For more information, please
70 | refer to the [Apache Server Configs
71 | repository](https://github.com/h5bp/server-configs-apache).
72 |
73 | Host your site on a server other than Apache? You're likely to find the
74 | corresponding server configs project listed in our [Server Configs
75 | ](https://github.com/h5bp/server-configs/blob/master/README.md) repository.
76 |
77 | ### 404.html
78 |
79 | A helpful custom 404 to get you started.
80 |
81 | ### browserconfig.xml
82 |
83 | This file contains all settings regarding custom tiles for IE11.
84 |
85 | For more info on this topic, please refer to
86 | [MSDN](https://msdn.microsoft.com/en-us/library/ie/dn455106.aspx).
87 |
88 | ### .editorconfig
89 |
90 | The `.editorconfig` file is provided in order to encourage and help you and
91 | your team to maintain consistent coding styles between different
92 | editors and IDEs. [Read more about the `.editorconfig` file](misc.md#editorconfig).
93 |
94 | ### index.html
95 |
96 | This is the default HTML skeleton that should form the basis of all pages on
97 | your site. If you are using a server-side templating framework, then you will
98 | need to integrate this starting HTML with your setup.
99 |
100 | Make sure that you update the URLs for the referenced CSS and JavaScript if you
101 | modify the directory structure at all.
102 |
103 | If you are using Google Universal Analytics, make sure that you edit the
104 | corresponding snippet at the bottom to include your analytics ID.
105 |
106 | ### humans.txt
107 |
108 | Edit this file to include the team that worked on your site/app, and the
109 | technology powering it.
110 |
111 | ### robots.txt
112 |
113 | Edit this file to include any pages you need hidden from search engines.
114 |
115 | ### crossdomain.xml
116 |
117 | A template for working with cross-domain requests. [About
118 | crossdomain.xml](misc.md#crossdomainxml).
119 |
120 | ### Icons
121 |
122 | Replace the default `favicon.ico`, `tile.png`, `tile-wide.png` and Apple
123 | Touch Icon with your own.
124 |
125 | If you want to use different Apple Touch Icons for different resolutions please
126 | refer to the [according documentation](extend.md#apple-touch-icons).
127 |
128 | You might want to check out Hans' handy [HTML5 Boilerplate Favicon and Apple
129 | Touch Icon
130 | PSD-Template](https://drublic.de/blog/html5-boilerplate-favicons-psd-template/).
131 |
--------------------------------------------------------------------------------
/client/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avplayer/AVRemoteControl/9906b0302271be1099856eea407b3c00e4570c84/client/src/favicon.ico
--------------------------------------------------------------------------------
/client/src/humans.txt:
--------------------------------------------------------------------------------
1 | # humanstxt.org/
2 | # The humans responsible & technology colophon
3 |
4 | # TEAM
5 |
6 | -- --
7 |
8 | # THANKS
9 |
10 |
11 |
12 | # TECHNOLOGY COLOPHON
13 |
14 | CSS3, HTML5
15 | Apache Server Configs, jQuery, Modernizr, Normalize.css
16 |
--------------------------------------------------------------------------------
/client/src/img/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/avplayer/AVRemoteControl/9906b0302271be1099856eea407b3c00e4570c84/client/src/img/.gitignore
--------------------------------------------------------------------------------
/client/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
21 |
22 |