kubernetes-handbook/sitemap/README.md

195 lines
5.6 KiB
Markdown

sitemap.js
==========
**sitemap.js** is a high-level sitemap-generating framework that
makes creating [sitemap XML](http://www.sitemaps.org/) files easy.
Table of Contents
=================
* [Table of Contents](#table-of-contents)
* [sitemap.js](#sitemapjs)
* [Installation](#installation)
* [Usage](#usage)
* [Example of using sitemap.js with <a href="https://github.com/visionmedia/express">express</a>:](#example-of-using-sitemapjs-with-express)
* [Example of synchronous sitemap.js usage:](#example-of-synchronous-sitemapjs-usage)
* [Example of dynamic page manipulations into sitemap:](#example-of-dynamic-page-manipulations-into-sitemap)
* [Example of pre-generating sitemap based on existing static files:](#example-of-pre-generating-sitemap-based-on-existing-static-files)
* [Example of indicating alternate language pages:](#example-of-indicating-alternate-language-pages)
* [Example of Sitemap Styling](#example-of-sitemap-styling)
* [Example of mobile URL](#example-of-mobile-url)
* [License](#license)
TOC created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc)
Installation
------------
It's recommended to install via [npm](https://github.com/isaacs/npm/):
npm install --save sitemap
Usage
-----
The main functions you want to use in the sitemap module are
```javascript
var sm = require('sitemap')
// Creates a sitemap object given the input configuration with URLs
var sitemap = sm.createSitemap({ options });
// Generates XML with a callback function
sitemap.toXML( function(xml){ console.log(xml) });
// Gives you a string containing the XML data
var xml = sitemap.toString();
```
###Example of using sitemap.js with [express](https://github.com/visionmedia/express):
```javascript
var express = require('express')
, sm = require('sitemap');
var app = express()
, sitemap = sm.createSitemap ({
hostname: 'http://example.com',
cacheTime: 600000, // 600 sec - cache purge period
urls: [
{ url: '/page-1/', changefreq: 'daily', priority: 0.3 },
{ url: '/page-2/', changefreq: 'monthly', priority: 0.7 },
{ url: '/page-3/'}, // changefreq: 'weekly', priority: 0.5
{ url: '/page-4/', img: "http://urlTest.com" }
]
});
app.get('/sitemap.xml', function(req, res) {
sitemap.toXML( function (err, xml) {
if (err) {
return res.status(500).end();
}
res.header('Content-Type', 'application/xml');
res.send( xml );
});
});
app.listen(3000);
```
###Example of synchronous sitemap.js usage:
```javascript
var express = require('express')
, sm = require('sitemap');
var app = express()
, sitemap = sm.createSitemap ({
hostname: 'http://example.com',
cacheTime: 600000, // 600 sec cache period
urls: [
{ url: '/page-1/', changefreq: 'daily', priority: 0.3 },
{ url: '/page-2/', changefreq: 'monthly', priority: 0.7 },
{ url: '/page-3/' } // changefreq: 'weekly', priority: 0.5
]
});
app.get('/sitemap.xml', function(req, res) {
res.header('Content-Type', 'application/xml');
res.send( sitemap.toString() );
});
app.listen(3000);
```
###Example of dynamic page manipulations into sitemap:
```javascript
var sitemap = sm.createSitemap ({
hostname: 'http://example.com',
cacheTime: 600000
});
sitemap.add({url: '/page-1/'});
sitemap.add({url: '/page-2/', changefreq: 'monthly', priority: 0.7});
sitemap.del({url: '/page-2/'});
sitemap.del('/page-1/');
```
###Example of pre-generating sitemap based on existing static files:
```javascript
var sm = require('sitemap')
, fs = require('fs');
var sitemap = sm.createSitemap({
hostname: 'http://www.mywebsite.com',
cacheTime: 600000, //600 sec (10 min) cache purge period
urls: [
{ url: '/' , changefreq: 'weekly', priority: 0.8, lastmodrealtime: true, lastmodfile: 'app/assets/index.html' },
{ url: '/page1', changefreq: 'weekly', priority: 0.8, lastmodrealtime: true, lastmodfile: 'app/assets/page1.html' },
{ url: '/page2' , changefreq: 'weekly', priority: 0.8, lastmodrealtime: true, lastmodfile: 'app/templates/page2.hbs' } /* useful to monitor template content files instead of generated static files */
]
});
fs.writeFileSync("app/assets/sitemap.xml", sitemap.toString());
```
###Example of indicating alternate language pages:
[Description](https://support.google.com/webmasters/answer/2620865?hl=en) in
the google's Search Console Help.
```javascript
var sm = sm.createSitemap({
urls: [{
url: 'http://test.com/page-1/',
changefreq: 'weekly',
priority: 0.3,
links: [
{ lang: 'en', url: 'http://test.com/page-1/', },
{ lang: 'ja', url: 'http://test.com/page-1/ja/', },
]
},]
});
```
###Example of Sitemap Styling
```javascript
var sm = sm.createSitemap({
urls: [{
url: 'http://test.com/page-1/',
changefreq: 'weekly',
priority: 0.3,
links: [
{ lang: 'en', url: 'http://test.com/page-1/', },
{ lang: 'ja', url: 'http://test.com/page-1/ja/', },
]
},],
xslUrl: 'sitemap.xsl'
});
```
### Example of mobile URL
[Description](https://support.google.com/webmasters/answer/34648?hl=en) in
the google's Search Console Help.
```javascript
var sm = sm.createSitemap({
urls: [{
url: 'http://mobile.test.com/page-1/',
changefreq: 'weekly',
priority: 0.3,
mobile: true
},],
xslUrl: 'sitemap.xsl'
});
```
License
-------
See [LICENSE](https://github.com/ekalinin/sitemap.js/blob/master/LICENSE)
file.