diff --git a/README.md b/README.md
index 86e435d345..b27e9e0e32 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-#
+# ![NodeBB](public/images/logo.svg)
[![Build Status](https://travis-ci.org/NodeBB/NodeBB.svg?branch=master)](https://travis-ci.org/NodeBB/NodeBB)
[![Coverage Status](https://coveralls.io/repos/github/NodeBB/NodeBB/badge.svg?branch=master)](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
diff --git a/public/favicon.ico b/public/favicon.ico
index 70b00c4301..e73d1c1546 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/public/images/logo.png b/public/images/logo.png
index 42555dd395..45f5be50ca 100644
Binary files a/public/images/logo.png and b/public/images/logo.png differ
diff --git a/public/images/logo.svg b/public/images/logo.svg
new file mode 100644
index 0000000000..cc1c56f881
--- /dev/null
+++ b/public/images/logo.svg
@@ -0,0 +1,16 @@
+
diff --git a/public/images/logo@3x.png b/public/images/logo@3x.png
new file mode 100644
index 0000000000..bda2ba2524
Binary files /dev/null and b/public/images/logo@3x.png differ
diff --git a/public/images/touch/144.png b/public/images/touch/144.png
new file mode 100644
index 0000000000..1c8c82af5f
Binary files /dev/null and b/public/images/touch/144.png differ
diff --git a/public/images/touch/192.png b/public/images/touch/192.png
new file mode 100644
index 0000000000..3fb8cbec5b
Binary files /dev/null and b/public/images/touch/192.png differ
diff --git a/public/images/touch/36.png b/public/images/touch/36.png
new file mode 100644
index 0000000000..b589e22b47
Binary files /dev/null and b/public/images/touch/36.png differ
diff --git a/public/images/touch/48.png b/public/images/touch/48.png
new file mode 100644
index 0000000000..504bb1feca
Binary files /dev/null and b/public/images/touch/48.png differ
diff --git a/public/images/touch/512.png b/public/images/touch/512.png
new file mode 100644
index 0000000000..e2b09cee1c
Binary files /dev/null and b/public/images/touch/512.png differ
diff --git a/public/images/touch/72.png b/public/images/touch/72.png
new file mode 100644
index 0000000000..d6668ed60d
Binary files /dev/null and b/public/images/touch/72.png differ
diff --git a/public/images/touch/96.png b/public/images/touch/96.png
new file mode 100644
index 0000000000..58626a4b17
Binary files /dev/null and b/public/images/touch/96.png differ
diff --git a/public/logo.png b/public/logo.png
index d8dcba4638..e56dfb7906 100644
Binary files a/public/logo.png and b/public/logo.png differ
diff --git a/src/meta/tags.js b/src/meta/tags.js
index 3b3e1e9e10..2fa073d4ad 100644
--- a/src/meta/tags.js
+++ b/src/meta/tags.js
@@ -55,7 +55,7 @@ Tags.parse = async (req, data, meta, link) => {
var defaultLinks = [{
rel: 'icon',
type: 'image/x-icon',
- href: nconf.get('relative_path') + nconf.get('upload_url') + '/system/favicon.ico' + (Meta.config['cache-buster'] ? '?' + Meta.config['cache-buster'] : ''),
+ href: nconf.get('relative_path') + '/favicon.ico' + (Meta.config['cache-buster'] ? '?' + Meta.config['cache-buster'] : ''),
}, {
rel: 'manifest',
href: nconf.get('relative_path') + '/manifest.webmanifest',
@@ -100,6 +100,39 @@ Tags.parse = async (req, data, meta, link) => {
sizes: '192x192',
href: nconf.get('relative_path') + nconf.get('upload_url') + '/system/touchicon-192.png',
});
+ } else {
+ defaultLinks.push({
+ rel: 'apple-touch-icon',
+ href: nconf.get('relative_path') + '/assets/images/touch/512.png',
+ }, {
+ rel: 'icon',
+ sizes: '36x36',
+ href: nconf.get('relative_path') + '/assets/images/touch/192.png',
+ }, {
+ rel: 'icon',
+ sizes: '48x48',
+ href: nconf.get('relative_path') + '/assets/images/touch/144.png',
+ }, {
+ rel: 'icon',
+ sizes: '72x72',
+ href: nconf.get('relative_path') + '/assets/images/touch/96.png',
+ }, {
+ rel: 'icon',
+ sizes: '96x96',
+ href: nconf.get('relative_path') + '/assets/images/touch/72.png',
+ }, {
+ rel: 'icon',
+ sizes: '144x144',
+ href: nconf.get('relative_path') + '/assets/images/touch/48.png',
+ }, {
+ rel: 'icon',
+ sizes: '192x192',
+ href: nconf.get('relative_path') + '/assets/images/touch/36.png',
+ }, {
+ rel: 'icon',
+ sizes: '512x512',
+ href: nconf.get('relative_path') + '/assets/images/touch/512.png',
+ });
}
const results = await utils.promiseParallel({
@@ -192,18 +225,18 @@ function addSiteOGImage(meta) {
// Push fallback logo
meta.push({
property: 'og:image',
- content: nconf.get('url') + '/assets/logo.png',
+ content: nconf.get('url') + '/assets/images/logo@3x.png',
noEscape: true,
}, {
property: 'og:image:url',
- content: nconf.get('url') + '/assets/logo.png',
+ content: nconf.get('url') + '/assets/images/logo@3x.png',
noEscape: true,
}, {
property: 'og:image:width',
- content: '128',
+ content: '963',
}, {
property: 'og:image:height',
- content: '128',
+ content: '225',
});
}
}
diff --git a/src/middleware/index.js b/src/middleware/index.js
index 8a33f12b2f..28f4794db1 100644
--- a/src/middleware/index.js
+++ b/src/middleware/index.js
@@ -121,7 +121,7 @@ middleware.routeTouchIcon = function routeTouchIcon(req, res) {
if (meta.config['brand:touchIcon']) {
iconPath = path.join(nconf.get('upload_path'), meta.config['brand:touchIcon'].replace(/assets\/uploads/, ''));
} else {
- iconPath = path.join(nconf.get('base_dir'), 'public/logo.png');
+ iconPath = path.join(nconf.get('base_dir'), 'public/images/touch/512.png');
}
return res.sendFile(iconPath, {