Meta Tags and Links supported by Core

The following is a list of HTML meta tags and links we want to support in Core. More will be added with time and some will be removed as their corresponding reference disappear.

Many of the links are defined by RFC 5988. Some are specific to a feature (icon, hub) and others are defined in Core (top, up, next, previous...)

Note that the Dublin Core meta tags were introduced with "dc." before. They now use "dcterm." instead.

Abstract Meta Tag

  • From <abstract> in /snap/page/body.
<meta name="abstract" content="This page lists supported meta tags"/>
<meta name="dcterms.abstract" content="This page lists supported meta tags"/>
<meta name="dc.subject" content="This page lists supported meta tags"/>
<meta name="dcterms.subject" content="This page lists supported meta tags"/>

The abstract meta tag is a brief (generally 1 line) description of the page. It is also called the topic of the page.

The subject may be an even shorter version of the abstract or really only relate the subject (i.e. "Meta Tags & Links in HTML Headers of Snap! C++")

Access Rights Meta Tag

  • From <permission> in /snap/page/body
<meta name="dcterms.accessRights" content="password protected page"/>

The access rights for a page. Obviously, if the access of a page is protected, then this meta tag is probably not very useful. Although we can still give the user some sort of information if he accesses the page on top of a 401 or 403.

Accrual Meta Tags

  • From <accrual-method>, <accrual-periodicity>, <accrual-policy> in /snap/page/body
<meta name="dcterms.accrualMethod" content="direct edit of the page"/>
<meta name="dcterms.accrualPeriodicity" content="1 week"/>
<meta name="dcterms.accrualPolicy" content="moderated"/>
<meta name="revisitAfter" content="1 week"/>

Defines how the page / website is being maintained.

accrualMethod — defines how the website (page) is being updated; we can save information such as whether the page was created by email, direct access through XML-RPC, or using the online edit capabilities; other methods would include aggregation or compilation of existing data (in a blog roll using a List feature [core])

revisitAfter & accrualPeriodicity — defines how often the page is being updated; this is redundant with the period defined in XML sitemap which computes the data

accrualPolicy — defines how new additions are governed on this website; if a page is to be moderated before it gets published, then we can give that information

  • From <desc> in /snap/head/metadata
<link rel="alternate" type="application/rss+xml" title="My Website RSS"
      href="http://www.example.com/rss.xml"/>

Alternate links are created for feeds. We support a Feed feature [core] (Atom, RSS 2.0, etc.), which automatically adds these alternate links as required. We also want to automatically support systems such as feedburner, feedzilla, etc. so the burden of sending all the feed data can be given to another system.

In general, you have one feed for the entire site and then a set of feeds defined by specific plugins such as a site offering many PAD and SNSD Files feature could offer a PAD File Feed. A blog could offer a feed for its Comment feature. A forum could offer a feed for new posts in a given Categorization feature (tags, hashtags, taxonomy) [core]. Etc.

Since we can define a List feature [core], we can also define a feed for that list (assuming the pages added to the list are public.)

Feeds may be shown in all pages, only the pages concerned, or only the front page of your site. The path to the current page may be used to determine the set of feeds available on this page.

Audience Meta Tags

  • From <audience>, <education-level> in /snap/page/body
<meta name="dcterms.audience" content="developers, website designers, website owners"/>
<meta name="dcterms.educationLevel" content="college"/>

This meta tag defines the target audience of the resource. It is expected to be a list of a specific set number of terms, but I haven't found the terms yet.

This can be particularly useful to mark a resource as an adult resource.

Author Meta Tag

  • From <author> in /snap/page/body
  • (TBD: support for multiple authors?)
<meta name="author" content="Albert Einstein"/>
<meta name="dc.creator" content="Albert Einstein"/>
<meta name="dcterms.creator" content="Albert Einstein"/>
<meta name="dcterms.mediator" content="Albert Einstein"/>

Define the name of the author, or authors (one tag per author.) This should be the name of the person who wrote the page. If a robot generated the page, or the page is a composite of all sorts of pages (i.e. a blog roll) then this tag should not be mentioned.

Note that there is also an Author navigation link. That link requires the creation of a specific page with the author information.

The dc.creator is often the same name as the author. We can offer two fields and auto-fill the dc.creator with the author name if not otherwise defined.

A special type of pages, when created, could force the creator to enter the author and/or the creator fields.

The dcterms.mediator is a person who verifies the resource validity as it changes. It can generally seen as a moderator in the Internet world.

The author tag may include an href pointing to a complete page about the author.

<author
  href = uri>
  <!-- Content: text -->
</author>
  • From <desc> in /snap/head/metadata
<link rel="canonical" href="https://snapwebsites.org/implementation/feature-requirements"/>
<meta property="og:url" content="https://snapwebsites.org/implementation/feature-requirements"/>

The perfect URL to access this page. This ensures that when a robot finds your page it doesn't index it using the wrong URL assuming that you have multiple ways to access the exact same resource.

For example, when using Drupal you can access pages with node/<number> and their URL alias. The canonical meta tag is used to make sure that either way you tell search engines to use the URL alias over the ugly node/<number> representation.

Note: The Canonical Link is also added to the HTTP header in the "Link: ..." parameter.

City Meta Tag

  • From <city> in /snap/page/body/location
<meta name="city" content="Orangevale"/>

The city where your business resides. This is a good indication when you have a local business.

Content-Type Meta Tag

  • Hard coded in XSLT files.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

Right after the <head> tag and before the <title> tag, we want to include the Content-Type meta tag. This is redundant from the XML declaration, and the HTTP declaration but generally viewed as required because some browsers ignore the other two declarations.

Note that all our pages will be output as UTF-8 and thus this meta tag is simply hard coded (no need to waste time thinking maybe we could support another character set.)

Contributor Meta Tag

  • From <contributor> in /snap/page/body
<meta name="dc.contributor" content="John Smith"/>
<meta name="dcterms.contributor" content="John Smith"/>

The name of a person who help write or otherwise worked on this page.

  • From <owner>, <license>, and <provenance> in /snap/page/body
<meta name="copyright" content="Copyright by Made to Order Software Corporation"/>
<meta name="dc.rights" content="Copyright by Made to Order Software Corporation"/>
<meta name="dcterms.rights" content="Copyright by Made to Order Software Corporation"/>
<meta name="dcterms.rightsHolder" content="Copyright by Made to Order Software Corporation"/>
<meta name="dcterms.license" content="MIT License"/>
<meta name="dcterms.provenance" content="ACNE, Inc."/>

The copyright meta tag can be used to specifically copyright a page. This may be redundant with the copyright link, although a meta tag can be used to mark specific page when a page include content from another entity.

The provenance actually indicates where the resource is from originially. It should not be used if the resource was moved from one place to another.

The copyright, license, and provenance tags support the href attribute to reference pages with detailed information. The copyright can directly be used in the copyright link.

The <owner> tag defines the name of the copyright owner. It is used in the copyright and dcterms.rights with a prefix such as "Copyright © 1999 by <owner>".

The <owner> and <license> tags may include an href in which case a link is generated. The link is expected to send the user to a page about the owner or the complete license terms and conditions.

Country Meta Tag

  • From <country> in /site/page/body/location
<meta name="country" content="wonderland"/>

The country of residence of your business.

Coverage Meta Tag

  • From <location>, <since>, <until> in /site/page/body
<meta name="dc.coverage" content="Location, Time Period, Jurisdiction, ..."/>
<meta name="dcterms.coverage" content="Location, Time Period, Jurisdiction, ..."/>
<meta name="dcterms.spacial" content="Spacial Location"/>
<meta name="dcterms.temporal" content="Temporal Period"/>

What this resource covers in terms of location or time period or jurisdisction.

It is suggested that you use a known often used set of terms. For the location, longitude and latitude coordinates can be used.

Note: the <location> tag includes many sub-tags. The coverage could make use of the <longlat> and the <jurisdiction> sub-tags.

  • From the <style> tag (TBD)
<link rel="stylesheet" type="text/css" media="screen" href="/css/my-theme.css"/>

CSS data can be defined in a file, another website or inline. A link is used when defined in a file. However, Internet Explorer has limitations in the number of CSS files that can be referenced (about 32 links) which makes it ignore ALL the CSS files when reached. Thus, this method will not be used. Instead, we want to use a <style> tag and have @import instructions.

Date Meta Tags

  • From <created>, <modified>, <accepted>, <submitted>, <since>, <until>, <issued> in /span/page/body
<meta name="date" content="2012-05-27T09:45:17+00:00"/>
<meta name="dc.date" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.date" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.created" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.dateAccepted" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.dateCopyrighted" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.dateSubmitted" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.valid" content="2012-05-27T09:45:17+00:00 2062-05-27T09:45:17+00:00"/>
<meta name="dcterms.available" content="2012-05-27T09:45:17+00:00 2062-05-27T09:45:17+00:00"/>
<meta name="dcterms.issued" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.modified" content="2012-05-27T09:45:17+00:00"/>
<meta name="dcterms.extent" content="50 years"/>

date — An important date for the resource. Generally, this is the date when the page was created or last updated.

Note that what the date represents is not specified in the Dublin Core or HTML specifications. The other date meta tags can be used to be more specific about the resource changes.

created — The date the resource was created; by default the date when the page was created in the database. That date should be editable for resources that come from other sources and could be much older than the time it is added to a Snap! website.

dateAccepted — The date when the content was accepted; we can use the date when the set of moderators accepted the resource.

dateCopyrighted — In general this date coincides with the publication date of the content. However, some content may have been copyrighted much earlier.

dateSubmitted — The date when the content was submitted to the publisher.

valid — The date for which the resource is valid. Before it is not yet valid and after it is not valid anymore. A resource that doesn't go out of date does not need to include an end date. This validity information can correspond to the lifetime publication of the resource (i.e. if the user schedules the page to appear for a week, the dates for that week can be used to determine this meta tag.)

available — Similar to valid, when the resource is available (i.e. it could be available for a longer period of time than it is valid so we could show a page for 2 weeks, but the form in the page can only be used for 1 week within these 2 weeks.)

issued — Formal date when the resource was issued (i.e. the book is now available at Amazon.com, the magazine in available in superstores, the CD can be bought at Virgin, etc.)

modified — The date when the resource was last modified.

extent — The expected duration of the resource.

Description Meta Tag

  • From <description> in /snap/page/body
<meta name="description" content="This page gives advanced details about meta tags"/>
<meta name="dc.description" content="This page gives advanced details about meta tags"/>
<meta name="dcterms.description" content="This page gives advanced details about meta tags"/>
<meta property="og:description" content="This page gives advanced details about meta tags"/>

This tag is very useful in all sorts of situations. Google uses it for pages that are composed of images only. They also use the content to reinforce the content of the page. Facebook and many other social websites display it whenever someone posts a link to your page.

The description should never be unique for an entire website (actually, not even for two distinct pages.) Google detects such duplicated descriptions and generally they do not like them. For this reason, Snap! will not offer such a feature.

The og:description will be used by social media websites.

Dublin Core Extensions Meta Tags

  • If any dcterms are added to the header, then the schema.dcterms shall be added first. (I'm not so sure that can easily be done in XSLT though... but it's certainly doable, right?)
<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/"/>
<link rel="schema.dcterms" href="http://purl.org/dc/terms/"/>

We will only use the dcterms since there is no need for us to go backward. The dcterms schema fully encompasses the dc schema.

The dcterms schema can be used with <meta> or <link>. For example, the dcterms.description is used with <meta>. The dcterms.isFormatOf is a link back to the original document.

  • From <shortcut> in snap/page/body/image
<link name="shortcut icon" type="image/ico" href="http://www.example.com/favicon.ico"/>
<link name="apple-touch-icon" sizes="57x57" type="image/png"
      href="http://www.example.com/apple-touch-icon.png"/>

Define icons used by browsers and similar systems to represent your website.

The Shortcut Icon is expected to be 16x16, although many people include many other larger sizes in the .ico files. Sizes are multiple of 16x16 such as 32x32 and 128x128.

The Apple Touch Icon sizes are expected to be 57x57, 72x72, 114x114, and 144x144 to be compatible with an iPhone. The sizes attribute is not required if you offer only one size. There is specific default. The Apple website currently uses a 129x129 image.

See also: favicon (Core)

IMPORTANT NOTE

The Apple Touch Icon is also checked by devices as apple-touch-icon-precomposed.png in your root folder. The support for Favicon should support that file too (as it will support the usual favicon.ico file too.)

Format Meta Tag

  • TBD
<meta name="dc.format" content="text/html"/>
<meta name="dcterms.format" content="text/html"/>

I'm not too sure what this means since an HTML page format is always text/html. Could it be that if the main purpose of the page is to display a Flash animation then we should put the Flash MIME type in this meta tag? (TBD)

  • This is hard coded in XSLT files.
<link rel="generator" type="text/html" title="Generator" href="https://snapwebsites.org/"/>
<meta name="generator" content="Snap! Websites"/>

The reference to the website used to generate this page. The link is for easy access to the Snap! website. The meta tag is the usual information tag about an HTML generator.

This meta tag is automatically generated by Snap!

Identifier Meta Tag

  • From <identifier> in /snap/page/body
<meta name="dc.identifier" content="SKU-123"/>
<meta name="dcterms.identifier" content="SKU-123"/>

A unique identifier for this page. This could be the SKU number of your products in your e-Commerce website. It could be the ISBN of your books. It could be the magazine serial number for your blog. Etc.

The unicity is expected in a given context. So if you publish an entire book and have an ISBN for that book, then all the pages can be assigned the same number (although the page number could be added to render the identifier unique on each page.)

Image Meta Tags

  • From <image> in /snap/page/body
<meta property="og:image" content="http://www.example.com/images/beach.png"/>
<link rel="image_src" type="image/jpeg" title="Island Beach"
      href="http://www.example.com/images/beach.png"/>

The image to display when the page is shared on a website such as Facebook.

The image_src link is the older version. Having both meta tags is probably a good idea for a while.

IMPORTANT NOTE

Many website will not support a format other than PNG, JPEG, or GIF. If the user selects an image with another format (i.e. BMP, SVG, etc.) then the system has to automatically convert the image to one of the most commonly supported formats. We should have a table somewhere that defines the format to use depending on the source image. If in doubt, ask the user?

Instructional Method Meta Tag

  • From <instructions> in /snap/page/body
<meta name="dcterms.instructionalMethod" content="self training, evaluation"/>

Describes instruction methods used in link with this resource.

Keywords Meta Tag

  • From <tags>/<tag> in /snap/page/body
<meta name="keywords" content="list, of, keywords, comma, separated"/>

The keywords meta tag can be used to declare a set of keywords for a page. It is said to be ignored by Google, although they may still check it out to see whether you are a liar or not. These can be automatically generated using a list of tokens defined as your website keywords. Those happening on that page can automatically be added to this meta tag.

<tags>
  <tag
    type = token
    href = uri>
  <!-- Content: /text representing the tag/ -->
  </tag>
</tags>

Language Meta Tag

  • From <lang> in /snap/page/body
<meta name="language" scheme="RFC1766" content="en"/>
<meta name="dc.language" scheme="dcterms.RFC3066" content="en-US"/>
<meta name="dcterms.language" content="en"/>
<meta property="og:locale" content="en_US"/>
<meta property="og:locale:alternate" content="fr_US"/>

Define the language of this page. This is redundant from the XML declaration, DOCTYPE declaration, HTML declaration, and the HTTP declaration.

The Dublin Core language specification is expected to follow RFC 4646. More or less, the 2 letter language name, followed by a dash and precision about the language such as the region (en-US).

TBD — what if we have boxes using another language? (from what I know we should just mark that content with a different language using an attribute on one of the boxes tags.)

Medium Meta Tag

  • From <medium> in /snap/page/body
<meta name="dcterms.medium" content="CD"/>

How the resource is available in the physical world. A software could be made available as a CD. A book could be available in Paper form. Etc.

  • From <navigation> in /snap/page/body (next, previous, up, top, index, table of contents)
  • From <copyright> in /snap/page/body (see Copyright Meta Tags)
  • From <author> in /snap/page/body (see Author Meta Tags)
  • From <publisher> in /snap/page/body (See Publisher Meta Tag)
  • From <translations> in /snap/page/body (list of languages)
  • From <formats> in /snap/page/body (list of format extensions: pdf, txt, etc.)
  • From <toc> in /snap/page/body (TBD)
  • From <bookmarks> in /snap/page/body (nearly all the others)
  • From <desc type="base"> in /snap/head/metadata (to complement URLs)
<link rel="top" type="text/html" title="Top"
      href="http://www.example.com/"/>
<link rel="next" type="text/html" title="Next"
      href="http://www.example.com/page/101"/>
<link rel="prev" type="text/html" title="Previous"
      href="http://www.example.com/page/99"/>
<link rel="up" type="text/html" title="Up"
      href="http://www.example.com/page/22"/>
<link rel="first" type="text/html" title="First Page"
      href="http://www.example.com/page/5"/>
<link rel="last" type="text/html" title="Last Page"
      href="http://www.example.com/page/205"/>
<link rel="start" type="text/html" title="Start"
      href="http://www.example.com/cover.html"/>
<link rel="toc" type="text/html" title="Table of Contents"
      href="http://www.example.com/page/205"/>
<link rel="index" type="text/html" title="Index"
      href="http://www.example.com/index.html"/>
<link rel="help" type="text/html" title="Help"
      href="http://www.example.com/help.html"/>
<link rel="glossary" type="text/html" title="Glossary"
      href="http://www.example.com/glossary.html"/>
<link rel="copyright" type="text/html" title="Copyright"
      href="http://www.example.com/copyright.html"/>
<link rel="author" type="text/html" title="Authors"
      href="http://www.example.com/authors.html"/>
<link rel="search" type="text/html" title="Search"
      href="http://www.example.com/search.html"/>
<link rel="bookmark" type="text/html" title="Bookmark Name"
      href="http://www.example.com/page-of-interest.html"/>
<link rel="chapter" type="text/html" title="Chapter I"
      href="http://www.example.com/chapter-1.html"/>
<link rel="section" type="text/html" title="Section 2.4"
      href="http://www.example.com/section-2-4.html"/>
<link rel="subsection" type="text/html" title="Sub-Section 3.2.7"
      href="http://www.example.com/subsection-3-2-7.html"/>
<link rel="appendix" type="text/html" title="Appendix A"
      href="http://www.example.com/appendix-A.html"/>
<link rel="alternate" type="text/html" title="French Translation"
      hreflang="fr" href="http://www.example.com/fr/page/100.html"/>
<link rel="alternate" type="text/html" title="Print Version"
      href="http://www.example.com/page/100.prt"/>
<link rel="alternate" type="text/plain" title="Text Version"
      href="http://www.example.com/page/100.txt"/>
<link rel="alternate" type="application/pdf" title="PDF Version"
      href="http://www.example.com/page/100.pdf"/>
<link rel="dcterms.isFormatOf" type="text/html" title="Original HTML Version"
      href="http://www.example.com/page/100.html"/>
<link rel="dcterms.hasFormat" type="application/pdf" title="PDF Version"
      href="http://www.example.com/page/100.pdf"/>
<link rel="related" type="text/html" title="Where META data is generated"
      href="http://www.example.com/meta-data-generator"/>
<link rel="conformsTo" type="text/html" title="Conforms to XML"
      href="http://www.example.com/xml-standard"/>

Here we show a pretty complete list of navigation meta tags. As shown, it can be used to reference an entire book 3 top sections and appendices. It can link pages as next, previous, and up. It has a number of special pages defined as an index, the top page (usually first page of a book, although you could have a cover too!), the first and last page of your book, the table of contents (toc), a help page, a glossary page, a copyright page, a search page, and bookmarks. Note that sub-sections should probably be limited to the current section or your metat tag will be many Kb long... and many people do not have access to that information.

It is also possible to overload the alternate with different version of the page (generally in a different format, or a different language. For a versioned product, we could also offer all the versions, the lastest version. Etc.) For a book, an alternate format could represent the entire book (i.e. getting the PDF version of a book could give you the entire book instead of just that one page.)

The alternate formats can also be represented by the dcterms.hasFormat Dublin Core extension. Dublin Core also includes a link back to the original with the dcterms.isFormatOf extension.

That navigation information can be defined on a per book basis. The entire website can represent one book in which case it is viewed as the entire website settings.

Note: the table of contents works with rel="toc" or rel="contents", also rel="top" can be defined as rel="home".

<navigation>
  <link
    rel = token
    title = string
    href = uri/>
</navigation>
<formats original="<original format name>">
<!-- Content: text, list of space separated format names -->
</formats>
<translations original="<original language>">
<!-- Content: text, list of space separated language names -->
</translations>
<toc>
  <chapter
    href = uri>
  <!-- Content: (text | translations | formats)* -->
  </chapter>
  <section
    href = uri>
  <!-- Content: (text | translations | formats)* -->
  </section>
  <subsection
    href = uri>
  <!-- Content: (text | translations | formats)* -->
  </subsection>
  <appendix
    href = uri>
  <!-- Content: (text | translations | formats)* -->
  </appendix>
</toc>
<bookmarks>
  <link
    rel = token
    title? = string
    href = uri/>
</bookmarks>

Publisher Meta Tag

  • From <publisher> in /snap/page/body
<meta name="dc.publisher" content="Made to Order Software Corporation"/>
<meta name="dcterms.publisher" content="Made to Order Software Corporation"/>

The name of the entity making the resource available. This is generally the company offering the website hosting system and other such sponsors.

Relation Meta Tag

  • From <bookmarks> in /snap/page/body (see Navigation Tags)
<link rel="dc.relation" title="related resource name"
      href="http://www.example.com/related.html"/>
<link rel="dcterms.relation" title="related resource name"/>
      href="http://www.example.com/related.html"/>

Another resource this resource is related to. For example, this page is related to Page XSLT definitions which explains how meta tags are transformed from the XML internal format to HTML using XSLT files.

Robots Meta Tag

  • From <robots> in /snap/page/body
  • Link is hard coded
<meta name="robots" content="index,follow"/>
<meta name="googlebot" content="noodp"/>
<meta name="Slurp" content="noodp"/>
<meta name="msnbot" content="noodp"/>
<link rel="robots" href="/robots.txt"/>

The Robots meta tag defines details about whether a page can be indexed by different systems such as search engines and whether links on the page can be followed or not. This may look as redundant with the robots.txt file when in fact it is required if you really do not want a page to be indexed or archived, or its links followed. In other words, if the robots.txt file says that a file should not be indexed, it may still get indexed, whereas a meta data is 100% authoritative.

Also, we are likely to generate the X-Robots header with the robots information if that information is not index,follow[,archive] (the defaults). The X-Robots is definitively redundant but it may at times work better than the meta data.

Note that the example given here will never appear in the output because that is the default (i.e. search engines are welcome to index the page and follow its links.)

The link is my invention. It could be a good idea to have such a link as we do have a favicon, etc. It will most certainly be ignored though.

Supported robots flags (default appears first and is not required):

  • index / noindex -- whether the page can be indexed
  • follow / nofollow -- whether the links can be followed
  • archive / noarchive -- whether the page can can be archived
  • odp / noodp -- whether description of the Open Directory Project (ODP) may be used instead of your description tag
  • googlebot / nogooglebot -- prevent google from using that page's data
  • snippet / nosnippet -- prevents caching and in effect the description from being used in search results
  • ydir / noydir -- prevent the Yahoo! search engines from indexing your page

The special keyword "none" can be used in place of "noindex, nofollow", although all robots may not understand it.

The meta tag can be used to block the page from a specific search engines:

  • googlebot -- Google Search Engine
  • Slurp -- Yahoo! Search Engine
  • msnbot -- Bing Search Engine

Note

We should also support marking all the links of a box with nofollow if that specific page content is marked as nofollow!

  • From TBD in /snap/page/body
<link rel="shortlink" href="https://www.alexiswilke.me/s/1"/>

A shorter version of the page URI. This can be created using bit.ly or tinyurl.com or some other shortener website, or by using a short version such as a letter (s) and a number (1, 2, 3...) We have to be careful with Cassandra to not create two pages with the same short link.

Source Meta Tag

  • From <bookmarks> in /snap/page/body
<link rel="dcterms.source" title="Alexis' Brain" href="https://www.alexiswilke.me/"/>

The source is generally the resource where the data contained in this page came from assuming this page is not itself an original.

The reference could also be a formal identification of a non-electronic resource (i.e. a book title and ISBN, a URL to anothere website, etc.)

Table Of Contents Meta Tag

  • From <toc> in /snap/page/body (see Navigation, repeat the titles here)
<meta name="dcterms.tableOfContents" content="..."/>

This meta tag is expected to include a list of the sub-unit of the resource which means a table of contents. I'm not too sure it is wise to use as such a table can be enormous.

To automate the table of contents tag we can make use a limited number of the HTML header tags (H1 to H6.)

Title Meta Tag

  • From <title> in /snap/page/body
  • From <desc type="name"> in /snap/head/metadata
<meta name="dc.title" content="This page's title"/>
<meta name="dcterms.title" content="This page's title"/>
<meta name="dcterms.alternative" content="Page Title"/>
<meta property="og:title" content="This Page's Title"/>
<meta property="og:site_name" content="This Site's Name"/>

This is generally a duplicate of the page's title (the <title> tag appearing in the HTML <head>.) We may want to use this meta tag with the title only opposed to the main document title that generally includes the website name, the number of new comments/posts/users, etc. In other words, the dry name of the page.

The dcterms.alternative is another way to write the title. This could be useful if we auto-generate a title for all pages which could be done for lists (i.e. Page # of <blah>).

The og:title and og:site_name are part of the Open Graph extensions. They will always be defined.

Type Meta Tag

  • From @type (type attribute) of /snap/page/body
<meta name="dc.type" content="Text"/>
<meta name="dcterms.type" schema="dcterms.DCMIType" content="Text"/>
<meta property="og:type" content="Website"/>

Defines the type of content of the page. Dublin Core defines a set of types that is best to choose from than attempting to give users a way to enter their own choosen type.

  • Collection — an aggregation of multiple resources (i.e. List pages)
  • Dataset — data in a list, table, xml, generally a machine readable format
  • Event — a page about something that occurs at a given date and does not persist
  • Image — an image resource (photo, drawing, etc. but not text)
  • InteractiveResource — a form, a flash animation with mouse/keyboard interaction, etc.
  • MovingImage — a video or set of images/graphics that move
  • PhysicalObject — resource about a real physical object, liquid, etc.
  • Service — resource about a service
  • Software — resource about a software in source or compiled form
  • Sound — an auditory resource such as a sound or music
  • StillImage — an image which is not animated (but not text)
  • Text — this page is composed primarily of text (including images of written text)

User Defined Meta Tags

  • From <desc type="user"> in /snap/head/metadata
<meta name="..." content="..."/>

Many systems request the owner of a website to enter a meta tag. These have to be supported too. User meta tags are generally added to the home page, but some time it will appear on other pages (your blog, your cart, your download page, etc.)

User defined meta tags must have a name defined in their data.

Version / Relatives Meta Tags

  • From <bookmarks> in /snap/page/body
<link rel="dcterms.isVersionOf" href="resource identification"/>
<link rel="dcterms.hasVersion" href="resource identification"/>
<link rel="dcterms.isReplacedBy" href="resource identification"/>
<link rel="dcterms.replaces" href="resource identification"/>
<link rel="dcterms.isRequiredBy" href="resource identification"/>
<link rel="dcterms.requires" href="resource identification"/>
<link rel="dcterms.isPartOf" href="resource identification"/>
<link rel="dcterms.hasPart" href="resource identification"/>
<link rel="dcterms.isReferencedBy" href="resource identification"/>
<link rel="dcterms.references" href="resource identification"/>
<link rel="dcterms.bibliographicCitation" href="resource identification"/>

isVersionOf — Represents that this resource is a different version of another resource.

hasVersion — Represents that this resource is the original version and that the other resource is a derivative version.

isReplacedBy — Represents that this resource is an older version of the new indicated resource.

replaces — Represents that this resource replaces the one indicated.

isRequiredBy — Represents that this resource is necessary to implement another resource (a dependency.)

requires — Represents that this resource needs another to function (a dependency.)

isPartOf — Represents that this resource is part of a bigger picture element.

hasPart — Represents that this resource uses that other part.

isReferencedBy — Represents that this resource is referenced by the other indicated resource.

references — A list of references related to this resource.

bibliographicCitation — A reference to a bibliographic citation used in the resource.

Zip Code Meta Tag

  • From <postal-code> in /snap/page/body/location
<meta name="zipcode" content="95662"/>

The zipcode of your head quarters. This can be multiple zipcodes including all your locations.

http://dublincore.org/ -- Dublin Core, advanced details about resources often used in academia environment such as university research papers

http://ogp.me/ -- Open Graph Protocol, meta tags to describe your content; used by Facebook and many other social media systems

http://schema.org/ -- Schema.org, a large number of hiearchical way to describe the content of your pages in a manner that search engines recognize at first glance

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly