Skip to content
Merged
164 changes: 100 additions & 64 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,11 @@
"eslint-config-xo-space": "^0.17.0",
"eslint-plugin-flowtype": "^2.36.0",
"express": "^4.16.0",
"flow-bin": "^0.57.1",
"flow-bin": "^0.58.0",
"flow-remove-types": "^1.2.1",
"generate-release": "^0.14.0",
"nodemon": "^1.12.1",
"nsp": "^2.8.1",
"nsp": "^3.0.0",
"nyc": "^11.2.1",
"uuid": "^3.1.0"
}
Expand Down
11 changes: 9 additions & 2 deletions src/utils/head.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,18 @@ class HeadUtil {
}
if (vueObject.head && vueObject.head.meta) {
for (let metaItem of vueObject.head.meta) {
if (metaItem.name) {
if (metaItem.value) {
this.metaTags += `<meta name="${metaItem.name}" value="${metaItem.value}"/>\n`;
} else if (metaItem.name) {
this.metaTags += `<meta name="${metaItem.name}" content="${metaItem.content}"/>\n`;
} else if (metaItem.property) {
this.metaTags += `<meta property="${metaItem.property}" content="${metaItem.content}"/>\n`;
} else if (metaItem.script) {
const charset = metaItem.charset || 'utf-8';
const async = metaItem.async ? ' async=true' : '';
this.metaTags += `<script src="${metaItem.script}" charset="${charset}"${async}></script>\n`;
} else if (metaItem.charset) {
this.metaTags += `<meta charset="${metaItem.charset}"/>\n`;
} else if (metaItem.style) {
const type = metaItem.type || 'text/css';
const rel = 'stylesheet';
Expand All @@ -51,7 +55,10 @@ class HeadUtil {
const type = metaItem.type ? `type="${metaItem.type}" ` : '';
const href = metaItem.href ? `href="${metaItem.href}" ` : '';
const sizes = metaItem.sizes ? `sizes="${metaItem.sizes}" ` : '';
this.metaTags += `<link ${rel}${type}${href}${sizes}>\n`;
const itemprop = metaItem.itemprop ? `itemprop="${metaItem.itemprop}" ` : '';
const hreflang = metaItem.hreflang ? `hreflang="${metaItem.hreflang}" ` : '';
const crossorigin = metaItem.crossorigin ? `crossorigin="${metaItem.crossorigin}"` : '';
this.metaTags += `<link ${rel}${type}${href}${sizes}${itemprop}${hreflang}${crossorigin}>\n`;
} else if (metaItem.srcContents) {
this.metaTags += `${metaItem.srcContents}\n`;
}
Expand Down
14 changes: 14 additions & 0 deletions tests/example/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,20 @@ const options = {
}, {
name: 'viewport',
content: 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no'
},
{
rel: 'preconnect',
href: 'http://www.example.com',
itemprop: 'url',
hreflang: 'en',
crossorigin: 'anonymous'
},
{
name: 'google',
value: 'notranslate'
},
{
charset: 'UTF-8'
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion tests/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,4 @@ test('renders App object with custom layout', t => {
.catch(error => {
t.fail(error.stack);
});
});
});
Loading