project: Difference between revisions
(Preliminary hProject specification / mostly ideas) |
|||
Line 15: | Line 15: | ||
<h1>Some informations</h1> | <h1>Some informations</h1> | ||
<a href=". | <a href="http://microformats.org/" rel="home">The primary home page of the project.</a> | ||
<a href="..." rel="source">Here you can find it's source code.</a> | <a href="..." rel="source">Here you can find it's source code.</a> | ||
<a href="..." rel="release">Get the releases.</a> | <a href="..." rel="release">Get the releases.</a> |
Revision as of 15:02, 5 January 2008
hProject
Please note : This spec is under construction. For now, it is only a dump of ideas.
hProject is an open and simple format to describe the various aspects of a public project like open-source software or other kinds of artistic distributions. One if it's primary intent is to allow robots to automatically classify projects in a freshmeat manner by browsing the web.
Let's start by an example
<div class="project" id="uuid:233f6e5d-2ad2-4b7e-a3fe-1b90ef2fef57"> <img class="logo" src="..." /> <span class="name">Microformats</span> <span class="desc">An initiative to extract common patterns from POSH</span> <h1>Some informations</h1> <a href="http://microformats.org/" rel="home">The primary home page of the project.</a> <a href="..." rel="source">Here you can find it's source code.</a> <a href="..." rel="release">Get the releases.</a> <-- Every hCard is looked as a participant --> <h1>Project's tags</h1> <ul> <li class="tag">open</li> <li class="tag">format</li> <li class="tag">standard</li> </ul> </div>
CSS selection specification
A good way to describe the structure, is to look at it trough the view of css selectors. Designers some times need wrappers, which makes it hard to keep a strict structure. If you used jQuery, you know what I mean.
.project[@id] : is an UUID. A unique identifier for the project. It is used to resolve name clashes. .project .name : the content describes the project name. Should not appear more that one time per project. .project IMG.logo : the src is a link to the logo. Can have different sizes with by adding "low | mid | high" classes. .project A[@rel=home] : a project's home page .project A[@rel=source] : a link to the project's source. If it is a scm, it is generally solved by using different uris. Like git:// or bzr:// or http+git:// .project A[@rel=release] : the linked pages contains file releases. This page can contain hRelease microformat. .project A[@rel=...] : many extensions can be imagined, like : "blog | wiki | parent-project | ..." .project .tag : the content describes a project tag. You can have as many as you wish.
TODO
- Lots of discussion I guess, to satisfy different kinds of projects
- Semantic approval of experts
Author's notes
Please, keep the format simple. Unlike hCard, it doesn't follow an existing standard, which permits to keep it simple. I'd much more prefer to develop sub-standards instead of being verbose. For example, the uuid:.. or scm:// ones.
Related pages
- hRelease : semantic description of a project release. Possible usages : automatic tracking and/or conversion for package managers, automatic platform/mirror selection for download managers.