Project

duck_map

0.0
No commit activity in last 3 years
No release in over 3 years
Duck Map is a Rails 4.x compliant gem providing support for dynamically generating sitemaps and meta tags in HTML page headers.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 4.0.1
 Project Readme

Build Status

Duck Map

Homepage: http://jeffduckett.com

Git: http://github.com/jduckett/duck_map

Documentation: http://rubydoc.info/github/jduckett/duck_map/frames

Author: Jeff Duckett

Copyright: 2013

License: MIT License

Synopsis

Duck Map is a Rails 4.x compliant gem providing support for dynamically generating sitemaps and meta tags in HTML page headers.

Support

I am officially dropping support for this repo as I am moving away from Rails. Anybody want it?

Full Guide

For an in depth discussion see: {file:GUIDE.md Full guide (GUIDE.md)}

Feature List

  • Sitemaps are baked into the standard Rails Routing Code base and are defined directly in config/routes.rb.
  • Default sitemap at the root of the application named: /sitemap.xml
  • No code needed. Default sitemap.xml content is based on standard Rails controller actions: edit, index, new and show.
  • Designed to grab volitale elements such as last modified date directly from a model.
  • Automagically finds the first model on a controller and uses model attributes in sitemap and page headers.
  • Support for namespaces.
  • Support for nested resources.
  • Define as many sitemaps as you need.
  • Ability to sychronize static last modified dates directly from the rails view files or a .git repository.
  • Meta tags for HTML page headers such as title, last modified, canonical url, etc. that match data contained in sitemap.
  • Generate static sitemap files with compression.
  • Define global attributes and values and fine tune them down to the controller/model levels.
  • Support for mongoid

Quick Start

Follow these steps to create a Rails app with a sitemap.

# open a shell and navigate to a work directory.
# create a Rails app
rails new test.com --skip-bundle

# add the following to your Rails app test.com/Gemfile
gem 'duck_map'

# depending on your Rails version, you may have to add the following lines as well.
gem 'execjs'
gem 'therubyracer'

# make sure you have all the gems, etc.
bundle install

# create a controller
rails g controller home

# create a route in config/routes.rb
root :to => 'home#index'

# start the server
rails s

# view the sitemap
http://localhost:3000/sitemap.xml

# if you view the HTML source of: http://localhost:3000/sitemap.xml
# you should see something similar to the following:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://localhost:3000/</loc>
    <lastmod>2011-10-27T13:02:15+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>

Demo applications

You can find articles and demo apps at: http://jeffduckett.com/blogs.html

Why use the name Duck Map?

Having "Duck" built into the name? This stems from a habit I picked up years ago back in the days when I was doing DBase and Clipper programming for DOS. I picked up the idea from one of my favorite authors at the time (Rick Spence - or at least I think it was Rick). Anyway, the idea is to basically sign your code by incorporating your initials into library names or method calls. That way, you know the origin of a piece of code at a glance. The downside is that you definitely own it and can't blame it on that guy that keeps beating you to the good doughnuts. I hate that guy!! The second reason is that there was a pretty good chance I wouldn't run into naming conflicts.

Copyright

Copyright (c) 2013 Jeff Duckett. See license for details.