gulp-sitemap
Advanced tools
Comparing version 3.1.0 to 4.0.0
'use strict'; | ||
var chalk = require('chalk'); | ||
var defaults = require('lodash.defaults'); | ||
var defaults = require('lodash/defaults'); | ||
var gutil = require('gulp-util'); | ||
@@ -5,0 +5,0 @@ var path = require('path'); |
'use strict'; | ||
var defaults = require('lodash.defaults'); | ||
var find = require('lodash.find'); | ||
var includes = require('lodash.includes'); | ||
var defaults = require('lodash/defaults'); | ||
var find = require('lodash/find'); | ||
var includes = require('lodash/includes'); | ||
var multimatch = require('multimatch'); | ||
var slash = require('slash'); | ||
var pick = require('lodash.pick'); | ||
var pick = require('lodash/pick'); | ||
@@ -17,12 +17,12 @@ //TODO: export this to an external module | ||
function getEntryConfig(file, fileLastMod, config) { | ||
var mappingsForFile = find(config.mappings, function(item) { | ||
function getEntryConfig(file, fileLastMod, siteConfig) { | ||
var mappingsForFile = find(siteConfig.mappings, function(item) { | ||
return multimatch(file, item.pages).length > 0; | ||
}) || {}; | ||
var properties = ['lastmod', 'priority', 'changefreq', 'hreflang']; | ||
var properties = ['getLoc', 'lastmod', 'priority', 'changefreq', 'hreflang']; | ||
var entry = defaults( | ||
pick(mappingsForFile, properties), | ||
pick(config, properties) | ||
pick(siteConfig, properties) | ||
); | ||
@@ -40,3 +40,3 @@ | ||
var adjustedFile = slash(relativeFile); | ||
entry.loc = config.siteUrl + adjustedFile; | ||
entry.loc = siteConfig.siteUrl + adjustedFile; | ||
entry.file = adjustedFile; | ||
@@ -58,34 +58,37 @@ | ||
*/ | ||
function processEntry(entry, config) { | ||
var changefreq = entry.changefreq; | ||
var priority = entry.priority; | ||
function processEntry(entry, siteConfig) { | ||
var returnArr = [siteConfig.spacing + '<url>']; | ||
var loc = entry.getLoc ? entry.getLoc(siteConfig.siteUrl, entry.loc, entry) : entry.loc; | ||
returnArr.push(siteConfig.spacing + siteConfig.spacing + wrapTag('loc', loc)); | ||
var lastmod = entry.lastmod; | ||
var loc = entry.loc; | ||
var hreflang = entry.hreflang; | ||
var file = entry.file; | ||
var returnArr = [ | ||
config.spacing + '<url>', | ||
config.spacing + config.spacing + wrapTag('loc', loc) | ||
]; | ||
if (lastmod) { | ||
//format mtime to ISO (same as +00:00) | ||
lastmod = new Date(lastmod).toISOString(); | ||
returnArr.push(config.spacing + config.spacing + wrapTag('lastmod', lastmod)); | ||
returnArr.push(siteConfig.spacing + siteConfig.spacing + wrapTag('lastmod', lastmod)); | ||
} | ||
var changefreq = entry.changefreq; | ||
if (changefreq) { | ||
returnArr.push(config.spacing + config.spacing + wrapTag('changefreq', changefreq)); | ||
returnArr.push(siteConfig.spacing + siteConfig.spacing + wrapTag('changefreq', changefreq)); | ||
} | ||
var priority = entry.priority; | ||
if (priority || priority === 0) { | ||
returnArr.push(config.spacing + config.spacing + wrapTag('priority', priority)); | ||
returnArr.push(siteConfig.spacing + siteConfig.spacing + wrapTag('priority', priority)); | ||
} | ||
var hreflang = entry.hreflang; | ||
if (hreflang && hreflang.length > 0) { | ||
var file = entry.file; | ||
hreflang.forEach(function(item) { | ||
var href = item.getHref(config.siteUrl, file, item.lang, loc); | ||
var href = item.getHref(siteConfig.siteUrl, file, item.lang, loc); | ||
var tag = '<xhtml:link rel="alternate" hreflang="' + item.lang + '" href="' + href + '" />'; | ||
returnArr.push(config.spacing + config.spacing + tag); | ||
returnArr.push(siteConfig.spacing + siteConfig.spacing + tag); | ||
}); | ||
} | ||
returnArr.push(config.spacing + '</url>'); | ||
return returnArr.join(config.newLine); | ||
returnArr.push(siteConfig.spacing + '</url>'); | ||
return returnArr.join(siteConfig.newLine); | ||
} | ||
@@ -92,0 +95,0 @@ |
{ | ||
"name": "gulp-sitemap", | ||
"version": "3.1.0", | ||
"version": "4.0.0", | ||
"description": "Generate a search engine friendly sitemap.xml using a Gulp stream", | ||
@@ -39,6 +39,3 @@ "repository": "pgilad/gulp-sitemap", | ||
"gulp-util": "^3.0.7", | ||
"lodash.defaults": "^4.0.1", | ||
"lodash.find": "^4.0.2", | ||
"lodash.includes": "^4.0.1", | ||
"lodash.pick": "^4.0.1", | ||
"lodash": "^4.6.1", | ||
"multimatch": "^2.0.0", | ||
@@ -45,0 +42,0 @@ "slash": "^1.0.0", |
@@ -165,5 +165,8 @@ # [gulp](https://github.com/wearefractal/gulp)-sitemap | ||
lastmod: Date.now(), | ||
getLoc(siteUrl, loc, entry) { | ||
return loc.substr(0, loc.lastIndexOf('.')) || loc; // Removes the file extension | ||
}, | ||
hreflang: [{ | ||
lang: 'ru', | ||
getHref: function(siteUrl, file, lang, loc) { | ||
getHref(siteUrl, file, lang, loc) { | ||
return 'http://www.amazon.ru/' + file; | ||
@@ -180,3 +183,3 @@ } | ||
- Only the first match will apply, so consequent matches for the filename will not apply. | ||
- Possible attributes to set: `hreflang`, `changefreq`, `priority` and `lastmod`. | ||
- Possible attributes to set: `hreflang`, `changefreq`, `priority`, `loc` and `lastmod`. | ||
- All rules applying to [options](#options) apply to the attributes that can overridden. | ||
@@ -214,2 +217,12 @@ | ||
##### getLoc | ||
Matching pages can get their `loc` tag modified by using a function. | ||
```js | ||
getLoc: function(siteUrl, loc, entry) { | ||
return loc.substr(0, loc.lastIndexOf('.')) || loc; // Removes the file extension | ||
} | ||
``` | ||
#### verbose | ||
@@ -216,0 +229,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14286
6
246
178
+ Addedlodash@^4.6.1
+ Addedlodash@4.17.21(transitive)
- Removedlodash.defaults@^4.0.1
- Removedlodash.find@^4.0.2
- Removedlodash.includes@^4.0.1
- Removedlodash.pick@^4.0.1
- Removedlodash.defaults@4.2.0(transitive)
- Removedlodash.find@4.6.0(transitive)
- Removedlodash.includes@4.3.0(transitive)
- Removedlodash.pick@4.4.0(transitive)