Comments (5)
perhaps its out of scope of this project. I managed to split it with simpleSitemapAndIndex
and lots of additional code
from sitemap.js.
@tasiotas Can you please show me how did you manage to create different multiple sitemaps with indexing.
from sitemap.js.
sorry, in the end I dropped sitemap.js lib and went full with custom code writing my own XMLs.
I dont have a code at hand where I had it working with simpleSitemapAndIndex
. I believe I was calling it multiple times, and then moving/renaming output file. I had to generate indexes by hand anyway...
from sitemap.js.
@tasiotas Thanks for the quick response.
Even I considered doing custom code to generate XML as I want as the package is less supportive for creating multiple sitemaps at once and index it in sitemap.xml.
from sitemap.js.
It's a little late to be here but here is how I managed it.
import fs from "node:fs";
import { type SitemapItemLoose, SitemapAndIndexStream, SitemapStream, SitemapIndexStream } from "sitemap";
const hostname = "https://...";
export default class SitemapApplication {
generateSitemap() {
const blogs= []; /* get items from somewhere */
const books= []; /* get items from somewhere */
const movies= []; /* get items from somewhere */
this.createSitemapCategory(blogs, "blog", true);
this.createSitemapCategory(books, "books", true);
this.createSitemapCategory(movies, "movies", true);
this.createIndexStream(["blog", "books", "movies"]);
}
private createIndexStream(categories: string[]) {
const indexStream = new SitemapIndexStream();
categories.forEach(category => indexStream.write({ url: `${hostname}/sitemap_${category}.xml` }));
indexStream.pipe(fs.createWriteStream("sitemap_index.xml"));
indexStream.end();
}
private createSitemapCategory(data: SitemapItemLoose[], name: string, singleFile = false) {
const stream = new SitemapAndIndexStream({
getSitemapStream: index => {
const sitemapStream = new SitemapStream({
hostname: hostname
});
const filePath = singleFile && index === 0 ? `sitemap_${name}.xml` : `sitemap_${name}-${index}.xml`;
const ws = sitemapStream
.pipe(fs.createWriteStream(filePath));
return [new URL(filePath, hostname).toString(), sitemapStream, ws];
}
});
data.forEach(item => stream.write(item));
stream.end();
}
}
from sitemap.js.
Related Issues (20)
- [ BUG ] Using 'links' option in an entry breaks sitemap generation HOT 10
- [Feature] Keep a record of the parent node HOT 1
- [Feature] cdn for sitemap?
- add <mobile:mobile type="pc,mobile"/>
- [question] How do we render the streamToPromise buffer response for storage in a Cache? HOT 3
- Add option for removing trailing slash from the root page HOT 4
- [Feature] Specify lastmod attribute per url link HOT 2
- [question] large sitemap, check last sitemap item and continue generate next file only? HOT 2
- [Feature] Support for custom elements in SitemapStream
- [ BUG ] Premature end of data in tag url line 1 HOT 2
- [ BUG ] Cannot set property IndexTagNames of #<Object> which has only a getter HOT 2
- [ BUG ] Sitemap not generated when url count is less than 5. HOT 3
- [question] How to append urls to existing xml?
- [question] How to allow empty sitemap? HOT 3
- [ BUG ] `SitemapAndIndexStream` hangs on end if `SitemapStream` encountered error writing to its destination
- [ BUG ] `streamToPromise` does not propagate read stream errors HOT 2
- [ BUG ] Examples / docs with sequential `write` without a callback are not ideal
- [Feature] Publish `typedoc` docs
- [question] Document node v20 memory usage improvement on perf test
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sitemap.js.