diff --git a/assets/favicon/android-chrome-192x192.png b/assets/favicon/android-chrome-192x192.png
new file mode 100644
index 0000000..c8aed28
Binary files /dev/null and b/assets/favicon/android-chrome-192x192.png differ
diff --git a/assets/favicon/android-chrome-512x512.png b/assets/favicon/android-chrome-512x512.png
new file mode 100644
index 0000000..c046f0b
Binary files /dev/null and b/assets/favicon/android-chrome-512x512.png differ
diff --git a/assets/favicon/apple-touch-icon.png b/assets/favicon/apple-touch-icon.png
new file mode 100644
index 0000000..90b6db1
Binary files /dev/null and b/assets/favicon/apple-touch-icon.png differ
diff --git a/assets/favicon/browserconfig.xml b/assets/favicon/browserconfig.xml
new file mode 100644
index 0000000..153c99b
--- /dev/null
+++ b/assets/favicon/browserconfig.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+ #dc0067
+
+
+
diff --git a/assets/favicon/favicon-16x16.png b/assets/favicon/favicon-16x16.png
new file mode 100644
index 0000000..62c4991
Binary files /dev/null and b/assets/favicon/favicon-16x16.png differ
diff --git a/assets/favicon/favicon-32x32.png b/assets/favicon/favicon-32x32.png
new file mode 100644
index 0000000..a4907a6
Binary files /dev/null and b/assets/favicon/favicon-32x32.png differ
diff --git a/assets/favicon/favicon.ico b/assets/favicon/favicon.ico
new file mode 100644
index 0000000..fc79f4e
Binary files /dev/null and b/assets/favicon/favicon.ico differ
diff --git a/assets/favicon/manifest.json b/assets/favicon/manifest.json
new file mode 100644
index 0000000..e7e10e0
--- /dev/null
+++ b/assets/favicon/manifest.json
@@ -0,0 +1,18 @@
+{
+ "name": "Meshviewer",
+ "icons": [
+ {
+ "src": "./android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "./android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#dc0067",
+ "background_color": "#dc0067",
+ "display": "standalone"
+}
diff --git a/assets/favicon/mstile-144x144.png b/assets/favicon/mstile-144x144.png
new file mode 100644
index 0000000..4be7a27
Binary files /dev/null and b/assets/favicon/mstile-144x144.png differ
diff --git a/assets/favicon/mstile-150x150.png b/assets/favicon/mstile-150x150.png
new file mode 100644
index 0000000..2ea0c5f
Binary files /dev/null and b/assets/favicon/mstile-150x150.png differ
diff --git a/assets/favicon/mstile-310x150.png b/assets/favicon/mstile-310x150.png
new file mode 100644
index 0000000..b4bcb75
Binary files /dev/null and b/assets/favicon/mstile-310x150.png differ
diff --git a/assets/favicon/mstile-310x310.png b/assets/favicon/mstile-310x310.png
new file mode 100644
index 0000000..b2a9f39
Binary files /dev/null and b/assets/favicon/mstile-310x310.png differ
diff --git a/assets/favicon/mstile-70x70.png b/assets/favicon/mstile-70x70.png
new file mode 100644
index 0000000..82ea876
Binary files /dev/null and b/assets/favicon/mstile-70x70.png differ
diff --git a/assets/favicon/safari-pinned-tab.svg b/assets/favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000..a732bc7
--- /dev/null
+++ b/assets/favicon/safari-pinned-tab.svg
@@ -0,0 +1,134 @@
+
+
+
diff --git a/assets/faviconData.json b/assets/faviconData.json
new file mode 100644
index 0000000..d4b60d2
--- /dev/null
+++ b/assets/faviconData.json
@@ -0,0 +1 @@
+{"result":{"status":"success"},"favicon":{"package_url":"https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/favicons.zip","files_urls":["https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/android-chrome-192x192.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/android-chrome-512x512.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/apple-touch-icon.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/browserconfig.xml","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/favicon-16x16.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/favicon-32x32.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/favicon.ico","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/manifest.json","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/mstile-144x144.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/mstile-150x150.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/mstile-310x150.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/mstile-310x310.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/mstile-70x70.png","https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/package_files/safari-pinned-tab.svg"],"html_code":"\n\n\n\n\n\n\n\n\n\n\n","compression":"true","overlapping_markups":["link[rel=\"apple-touch-icon\"]","meta[name=\"apple-mobile-web-app-title\"]","link[rel=\"shortcut\"]","link[rel=\"shortcut icon\"]","link[rel=\"icon\",sizes=\"16x16\"]","link[rel=\"icon\",sizes=\"32x32\"]","meta[name=\"msapplication-TileColor\"]","meta[name=\"msapplication-TileImage\"]","meta[name=\"msapplication-config\"]","meta[name=\"application-name\"]","link[rel=\"manifest\"]","meta[name=\"theme-color\"]","link[rel=\"mask-icon\"]"]},"files_location":{"type":"path","path":"."},"preview_picture_url":"https://realfavicongenerator.net/files/03dc81277d21a8ed4bb836b4c05ada2ee75b9e3c/favicon_preview.png","version":"0.14"}
diff --git a/assets/logo.svg b/assets/logo.svg
new file mode 100644
index 0000000..b8d9c32
--- /dev/null
+++ b/assets/logo.svg
@@ -0,0 +1,7 @@
+
diff --git a/gulp/config.js b/gulp/config.js
index 15413cb..f34cd8e 100644
--- a/gulp/config.js
+++ b/gulp/config.js
@@ -3,6 +3,7 @@ module.exports = function () {
return {
build: build,
+ faviconData: 'assets/faviconData.json',
src: {
sass: 'scss/**/*.scss',
javascript: ['app.js', 'lib/**/*.js'],
diff --git a/gulp/tasks/copy.js b/gulp/tasks/copy.js
index ee2fb4c..b01325a 100644
--- a/gulp/tasks/copy.js
+++ b/gulp/tasks/copy.js
@@ -2,6 +2,8 @@ module.exports = function (gulp, plugins, config) {
return function copy() {
gulp.src(['html/*.html', 'assets/favicon/*'])
.pipe(gulp.dest(config.build));
+ gulp.src(['assets/logo.svg'])
+ .pipe(gulp.dest(config.build));
gulp.src('node_modules/promise-polyfill/promise.js')
.pipe(gulp.dest(config.build + '/vendor'));
return gulp.src(['assets/fonts/*', 'assets/icons/fonts/*'])
diff --git a/gulp/tasks/favicon.js b/gulp/tasks/favicon.js
new file mode 100644
index 0000000..cabe0f6
--- /dev/null
+++ b/gulp/tasks/favicon.js
@@ -0,0 +1,65 @@
+module.exports = function (gulp, plugins, config) {
+ return function javascript(cb) {
+ plugins.realFavicon.generateFavicon({
+ masterPicture: 'assets/logo.svg',
+ dest: 'assets/favicon',
+ iconsPath: '.',
+ design: {
+ ios: {
+ pictureAspect: 'backgroundAndMargin',
+ backgroundColor: '#000000',
+ margin: '14%',
+ assets: {
+ ios6AndPriorIcons: false,
+ ios7AndLaterIcons: false,
+ precomposedIcons: false,
+ declareOnlyDefaultIcon: true
+ },
+ appName: 'Meshviewer'
+ },
+ desktopBrowser: {},
+ windows: {
+ pictureAspect: 'noChange',
+ backgroundColor: '#dc0067',
+ onConflict: 'override',
+ assets: {
+ windows80Ie10Tile: false,
+ windows10Ie11EdgeTiles: {
+ small: true,
+ medium: true,
+ big: true,
+ rectangle: false
+ }
+ },
+ appName: 'Meshviewer'
+ },
+ androidChrome: {
+ // pictureAspect: 'shadow',
+ themeColor: '#dc0067',
+ manifest: {
+ name: 'Meshviewer',
+ display: 'standalone',
+ orientation: 'notSet',
+ onConflict: 'override',
+ declared: true
+ },
+ assets: {
+ legacyIcon: false,
+ lowResolutionIcons: false
+ }
+ },
+ safariPinnedTab: {
+ pictureAspect: 'silhouette',
+ themeColor: '#dc0067'
+ }
+ },
+ settings: {
+ compression: 2,
+ scalingAlgorithm: 'Mitchell',
+ errorOnImageTooSmall: false
+ },
+ markupFile: config.faviconData
+ });
+ return cb();
+ };
+};
diff --git a/gulp/tasks/html.js b/gulp/tasks/html.js
index e675513..4994e6d 100644
--- a/gulp/tasks/html.js
+++ b/gulp/tasks/html.js
@@ -1,3 +1,4 @@
+const fs = require('fs');
module.exports = function (gulp, plugins, config, env) {
return function html() {
return gulp.src(env.production() ? config.build + '/*.html' : 'html/*.html')
@@ -13,6 +14,7 @@ module.exports = function (gulp, plugins, config, env) {
}
}))
.pipe(env.production(plugins.kyhInlineSource({ compress: false })))
+ .pipe(plugins.realFavicon.injectFaviconMarkups(JSON.parse(fs.readFileSync(config.faviconData)).favicon.html_code))
.pipe(plugins.cacheBust({
type: 'timestamp'
}))
diff --git a/gulpfile.js b/gulpfile.js
index b8d0d8d..e217c8f 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -14,6 +14,10 @@ function getTask(task) {
return require('./gulp/tasks/' + task)(gulp, plugins, config, env);
}
+gulp.task('generate-favicon',
+ getTask('favicon')
+);
+
require('./gulp/serve')(gulp, plugins, config, env);
gulp.task('serve',
gulp.series(
diff --git a/html/index.html b/html/index.html
index 57d4051..b44227d 100644
--- a/html/index.html
+++ b/html/index.html
@@ -15,7 +15,8 @@
Lade
-
+
+
Karten & Knoten...