Fornece um HttpHandler ASP.NET para auxiliar na geração de um arquivo sitemap.xml dinâmico
Há também uma extensão específica do Umbraco para Sitemapify que suporta a construção do mapa do site a partir do conteúdo do Umbraco CMS. Consulte Sitemapify.Umbraco para obter mais documentação
Install-Package Sitemapify
O processo de instalação deve ter atualizado seu arquivo web.config para incluir um httphandler para processar solicitações para sitemap.xml
, deve ser semelhante a:
< configuration > < system .webServer> < handlers > < add name = " Sitemapify " path = " sitemap.xml " verb = " GET " type = " Sitemapify.SitemapifyHttpHandler, Sitemapify " /> handlers > system .webServer> configuration >
O manipulador de mapa do site pode ser personalizado alterando a configuração básica por meio da classe de configuração estática Sitemapify.Configure
.
Sitemapify . Configure ( c => c
. UsingContentProvider ( new YourContentProvider ( ) )
. UsingCacheProvider ( new YourCacheProvider ( ) )
. UsingDocumentBuilder ( new YourDocumentBuilder ( ) )
) ;
O Sitemapify é dividido em provedores responsáveis pelos elementos da geração do mapa do site.
ISitemapifyContentProvider
) Uma implementação de um provedor de conteúdo fornece ao Sitemapify uma coleção de objetos SitemapUrl
que representam os nós para saída no mapa do site.
public interface ISitemapContentProvider
{
IEnumerable < SitemapUrl > GetSitemapUrls ( ) ;
bool Cacheable { get ; }
DateTime CacheUntil { get ; }
}
ISitemapifyCacheProvider
)Uma implementação de um provedor de cache permite a personalização do mecanismo de cache usado para otimizar a entrega do mapa do site ao navegador. Assim que o documento do mapa do site for gerado, ele será armazenado em cache por meio da implementação configurada desta interface.
public interface ISitemapCacheProvider
{
void Add ( XDocument sitemapContent , DateTimeOffset ? expires ) ;
bool IsCached { get ; }
XDocument Get ( ) ;
void Remove ( ) ;
}
ISitemapDocumentBuilder
) Uma implementação do ISitemapDocumentBuilder
permite a personalização completa do próprio documento do mapa do site. A implementação padrão gera um documento de mapa de site totalmente compatível com base no sitemap.xsd oficial.
public interface ISitemapDocumentBuilder
{
XDocument BuildSitemapXmlDocument ( IEnumerable < SitemapUrl > sitemapUrls ) ;
}
Esta versão do Sitemapify.Umbraco suporta Umbraco 8.1+. Para suporte ao Umbraco v7.*, consulte a versão 0.5.2.
Primeiro instale a extensão Umbraco:
Install-Package Sitemapify.Umbraco
Depois de instalar o Sitemapify.Umbraco, você pode criar um componente para configurar o Sitemapify para usar o "Provedor de conteúdo Umbraco" disponível para gerar o URL do mapa do site que forma o sitemap.xml.
public class SitemapifyComponent : IComponent
{
public void Initialize ( )
{
Configure . With ( config => config . UsingContentProvider ( new SitemapifyUmbracoContentProvider ( ) ) ) ;
}
public void Terminate ( ) { }
}
Você também precisará criar um UserComposer para registrar o Componente.
public class SitemapifyComposer : IUserComposer
{
public void Compose ( Composition composition )
{
composition . Components ( ) . Append < SitemapifyComponent > ( ) ;
}
}
Por padrão, o provedor de conteúdo Umbraco procurará propriedades de nós de conteúdo com nomes específicos para determinar se um nó específico deve ser incluído no arquivo de mapa do site gerado. Esses nomes de propriedades são:
umbracoNaviHide
- Verdadeiro/Falso para determinar se este nó está incluído (Padrão: falso)sitemapifyExcludeChildren
- Verdadeiro/Falso para determinar se todos os nós filhos abaixo deste nó devem ser ignorados (Padrão: falso)Se quiser alterar esses aliases de propriedade, você pode substituí-los através das configurações do aplicativo:
< appSettings > < add key = " Sitemapify.Umbraco:ExcludedFromSitemapPropertyAlias " value = " newPropertyAlias " /> < add key = " Sitemapify.Umbraco:ExcludedChildrenFromSitemapPropertyAlias " value = " anotherPropertyAlias " /> appSettings >