easy-sitemap-generator 0.1.5 β 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/bin/cli.js +4 -4
- package/index.js +1 -1
- package/lib/sitemapGenerator.js +8 -8
- package/package.json +8 -8
- package/services/axios.js +1 -1
package/README.md
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
# πΊοΈ Easy Sitemap.xml generator
|
|
1
|
+
# πΊοΈ Easy Sitemap.xml generator
|
|
2
2
|
Finally! A free and easy-to-use `sitemap.xml` generator with no restrictions for your website.
|
|
3
3
|
Improve your search engine rankings effortlessly! All you need is Node.js installed and this module. Good luck!
|
|
4
4
|
|
|
5
5
|
<a href="https://www.npmjs.com/package/easy-sitemap-generator" target="_blank" title="easy-sitemap-generator - npm" style="text-decoration:none">
|
|
6
6
|
<img src="https://img.shields.io/npm/dt/easy-sitemap-generator.svg?maxAge=3600" alt="The number of downloads">
|
|
7
|
-
<img src="https://img.shields.io/github/issues/
|
|
8
|
-
<img src="https://img.shields.io/github/last-commit/
|
|
9
|
-
<img src="https://img.shields.io/github/commit-activity/w/
|
|
10
|
-
<img src="https://img.shields.io/github/languages/code-size/
|
|
7
|
+
<img src="https://img.shields.io/github/issues/sefinek/easy-sitemap-generator" alt="Issues">
|
|
8
|
+
<img src="https://img.shields.io/github/last-commit/sefinek/easy-sitemap-generator" alt="Last commit">
|
|
9
|
+
<img src="https://img.shields.io/github/commit-activity/w/sefinek/easy-sitemap-generator" alt="Commit activity">
|
|
10
|
+
<img src="https://img.shields.io/github/languages/code-size/sefinek/easy-sitemap-generator" alt="Code size">
|
|
11
11
|
</a>
|
|
12
12
|
|
|
13
13
|
## π€ How to use it?
|
|
14
14
|
### CLI (recommenced)
|
|
15
15
|
```bash
|
|
16
16
|
npm install easy-sitemap-generator -g
|
|
17
|
-
sitemap --
|
|
17
|
+
sitemap --url=https://example.com
|
|
18
18
|
```
|
|
19
|
+
|
|
19
20
|
#### Aliases
|
|
20
21
|
| sitemap-gen | sitemap-generator | generate-sitemap |
|
|
21
22
|
|-------------|-------------------|------------------|
|
package/bin/cli.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const { logError } = require('../utils/kleur.js');
|
|
4
|
-
const { generate } = require('../lib/sitemapGenerator');
|
|
4
|
+
const { generate } = require('../lib/sitemapGenerator.js');
|
|
5
5
|
|
|
6
6
|
const args = process.argv.slice(2);
|
|
7
|
-
const urlArg = args.find(arg => arg.startsWith('--
|
|
7
|
+
const urlArg = args.find(arg => arg.startsWith('--url='));
|
|
8
8
|
if (!urlArg) {
|
|
9
|
-
logError('No URL provided. Use: sitemap
|
|
9
|
+
logError('No URL provided. Use: sitemap --url=<YOUR-DOMAIN>');
|
|
10
10
|
process.exit(1);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
generate(
|
|
13
|
+
generate(urlArg.split('=')[1]).catch(err => {
|
|
14
14
|
logError(err);
|
|
15
15
|
process.exit(2);
|
|
16
16
|
});
|
package/index.js
CHANGED
package/lib/sitemapGenerator.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { JSDOM } = require('jsdom');
|
|
2
|
-
const urlModule = require('url');
|
|
3
|
-
const fs = require('fs/promises');
|
|
4
|
-
const path = require('path');
|
|
2
|
+
const urlModule = require('node:url');
|
|
3
|
+
const fs = require('node:fs/promises');
|
|
4
|
+
const path = require('node:path');
|
|
5
5
|
const { axios, version } = require('../services/axios.js');
|
|
6
6
|
const { escapeXml, normalizeUrl, calculatePriority } = require('../utils/xml.js');
|
|
7
7
|
const { logInfo, logSuccess, logError, logWarning } = require('../utils/kleur.js');
|
|
@@ -70,11 +70,11 @@ const crawl = async (url, baseUrl) => {
|
|
|
70
70
|
VISITED_URLS.set(normalizedUrl, {
|
|
71
71
|
url: normalizedUrl,
|
|
72
72
|
lastmod: (res.headers['last-modified'] ? new Date(res.headers['last-modified']) : new Date()).toISOString(),
|
|
73
|
-
priority: calculatePriority(normalizedUrl, baseUrl)
|
|
73
|
+
priority: calculatePriority(normalizedUrl, baseUrl),
|
|
74
74
|
});
|
|
75
75
|
};
|
|
76
76
|
|
|
77
|
-
const
|
|
77
|
+
const generate = async (baseUrl, destination = 'sitemap.xml') => {
|
|
78
78
|
logInfo(`Starting crawl for base URL: ${baseUrl}`);
|
|
79
79
|
|
|
80
80
|
await crawl(baseUrl, baseUrl);
|
|
@@ -86,7 +86,7 @@ const generateSitemap = async (baseUrl, destination = 'sitemap.xml') => {
|
|
|
86
86
|
.sort((a, b) => b.priority - a.priority);
|
|
87
87
|
|
|
88
88
|
const sitemapContent = `<?xml version="1.0" encoding="UTF-8"?>
|
|
89
|
-
<!-- Generated by https://github.com/
|
|
89
|
+
<!-- Generated by https://github.com/sefinek/easy-sitemap-generator v${version} at ${new Date().toISOString()} -->
|
|
90
90
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
|
91
91
|
${urls.map(({ url, priority, lastmod }) => ` <url>
|
|
92
92
|
<loc>${escapeXml(url)}</loc>
|
|
@@ -103,6 +103,6 @@ ${urls.map(({ url, priority, lastmod }) => ` <url>
|
|
|
103
103
|
};
|
|
104
104
|
|
|
105
105
|
module.exports = {
|
|
106
|
-
generate
|
|
107
|
-
version
|
|
106
|
+
generate,
|
|
107
|
+
version,
|
|
108
108
|
};
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easy-sitemap-generator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Easy and free sitemap.xml file generator without any restrictions for your website.",
|
|
5
|
-
"homepage": "https://github.com/
|
|
5
|
+
"homepage": "https://github.com/sefinek/easy-sitemap-generator#readme",
|
|
6
6
|
"bugs": {
|
|
7
|
-
"url": "https://github.com/
|
|
7
|
+
"url": "https://github.com/sefinek/easy-sitemap-generator/issues"
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/
|
|
11
|
+
"url": "git+https://github.com/sefinek/easy-sitemap-generator.git"
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
|
-
"author": "Sefinek <contact@
|
|
14
|
+
"author": "Sefinek <contact@sefinek.net> (https://sefinek.net)",
|
|
15
15
|
"main": "index.js",
|
|
16
16
|
"typings": "index.d.ts",
|
|
17
17
|
"bin": {
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
"up": "ncu -u && npm install && npm update && npm audit fix"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"axios": "^1.7.
|
|
28
|
+
"axios": "^1.7.8",
|
|
29
29
|
"jsdom": "^25.0.1",
|
|
30
30
|
"kleur": "^4.1.5"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@eslint/js": "^9.
|
|
34
|
-
"globals": "^15.
|
|
33
|
+
"@eslint/js": "^9.15.0",
|
|
34
|
+
"globals": "^15.12.0"
|
|
35
35
|
}
|
|
36
36
|
}
|
package/services/axios.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const axios = require('axios');
|
|
2
2
|
const { version } = require('../package.json');
|
|
3
3
|
|
|
4
|
+
axios.defaults.headers.common['User-Agent'] = `Mozilla/5.0 (compatible; EasySitemapGen/${version}; +https://github.com/sefinek/easy-sitemap-generator)`;
|
|
4
5
|
axios.defaults.timeout = 24000;
|
|
5
|
-
axios.defaults.headers.common['User-Agent'] = `Mozilla/5.0 (compatible; EasySitemapGen/${version}; +https://github.com/sefinek24/easy-sitemap-generator)`;
|
|
6
6
|
|
|
7
7
|
module.exports = { axios, version };
|