ProjectXML is designed to be an easy way to create project pages which
follow the Gentoo web style. It uses the same XML style as
ProjectXML is designed to be very easy to use so you don't need a special
knowledge. The only recommended read before touching a project page is the
official
To start writing our project page, first of all, we should define the proper doc headers. Just copy and paste the following lines:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="/xsl/project.xsl" type="text/xsl"?> <?xml-stylesheet href="/xsl/guide.xsl" type="text/xsl"?> <!DOCTYPE project SYSTEM "/dtd/project.dtd">
First part in our doc is the general data section which cover the basic
information of the project. Also, in this section we'll find the only
mandatory tags we need to set in order to create a valid page:
<project> <name>ProjectXML</name> <longname>A ProjectXML example page</longname> <date>2007-04-15</date> <description> A short project sentence describing the project. </description> <longdescription> <p> A more elaborated description about the project (edited as GuideXML block). </p> </longdescription> </project>
In order to reflect the final objective of the project, ProjectXML use the tag goals to include a description about what's the purpose of your work. Just a single sentence could be enough.
<goals> <p> The intention of the project is to show you how can you build a basic project page easily using ProjectXML. </p> </goals>
ProjectXML allow you to include a list of Gentoo developers who are involved in the project. You only need to write the developer nickname inside the tag and it will automatically be completed with the full real name when the page is rendered.
<dev role="Strategic Manager" description="Policy and releng">Dev1</dev> <dev role="Operational Manager" description="Security">Dev2</dev> <dev role="member">Dev3</dev>
As you can see in the example, the
Another interesting section to include in the project page is the list of
Gentoo herds which belong to the project. The only data which should be filled
is the
<herd name="herd1" /> <herd name="herd2" />
ProjectXML will parse the
It's also possible to include some resources links inside the project doc page. This links usually point to Gentoo documentation, external docs or useful Internet sites.
<resource link="/gentoo/link.xml"> (omitting http://www.gentoo.org) <resource link="http://www.useful.internet.site/">
Although the previous sections cover the basic information to create a project, there are other chapters which could be quite useful to use in some cases.
The information below, will show you how you can add extra information to the chapters saw in the previous section, how to create subprojects inside your project page or how to reflect tasks and its status.
ProjectXML allows to include a section which shows the open project jobs or
opportunities to collaborate. All you have to do is to include the
<recruitment>
<job>
<summary>First Open Position</summary>
<details>
Just an <e>example</e>> of how to write details about this
first open position
</details>
<requirements>
Needed <b>skills</b> to work in the open position
</requirements>
<contact>nick1</contact>
<contact>nick2</contact>
</job>
</recruitment>
All posted jobs from projects listed on our
If you think that the previous basic sections are a little empty or want to clarify some of them with a sentence or a paragraph, you can add some extra chapters which will be render just below the section you want.
The following sections can be target of adding extra content:
<extrachapter position="devs"> <title>Note about developers</title> <section> <body> <p> The list of devs only include the official gentoo devs but the project works thanks to many other contributors who are not gentoo devs. </p> </body> </section> </extrachapter>
Also, you can add one or more extrachapters to the top or the bottom of
the whole page. The
<extrachapter position="bottom"> <title>How to find us</title> <section> <title>Via mail</title> <body> <p> To contact with the Gentoo doc team you just need to subscribe to our mailing list: gentoo-doc@gentoo.org. </p> </body> </section> </extrachapter>
If the projects is composed from one or more subprojects, ProjectXML allow you to specify them in order to be show or linked from the main project page.
To determine what kind of subproject tag you need, you should follow the next instructions:
Subprojects: it's quite easy to set a subproject, just need to provide
the path where the subproject page is allocated. It also admit a couple of
possible attributes:
<subproject ref="/path/to/subproject.xml" inheritresources="yes" inheritmembers="yes"/>
Extraprojects: extraprojects need a mandatory
<extraproject name="First extraproject" lead="myself"> Here goes the description of the extraproject. GuideXML tags are allowed if you need to use them. </extraproject>
Plannedprojects: for future projects the only thing needed is the
<plannedproject name="Future ProjectXML"> Description of the future project goes here </plannedproject>
If the project has planned some tasks to accomplish the work, they can be reflected in the page. The tasks can be quite simple or can give a lot of details of what people is working on give info about the status and description.
The basic information we need to fill in for a task is: the attributes
<task id="basictask" lead="devnick" finished="no"> <name>Defining a basic task</name> <description>How to create a basic task</description> <startdate>01/01/2007</startdate> </task>
There are more elements which can be used to extending the information about tasks:
<task id="basictask" lead="devnick" finished="no"> <name>Defining a complete task</name> <description>How to create a complete task</description> <longdescription> A longer description about how to create a complete task. </longdescription> <startdate>01/01/2007</startdate> <enddate>06/04/2007</enddate> <dev role="designer" description="The only designer">dev1</dev> <reference><uri link="/path/to/doc.xml">Main guide</uri></reference> <reference><bug no="145234"/></reference> <milestone finished="yes"> <enddate>04/03/2007</enddate> <description>Thinking about write the guide</description> </milestone> <depends ref="task1"/> </task>
Gentoo provides a page with the
If you are writing a subproject page, it will be enough to have it listed as
it in the main project page (as described in the
If the project is a top level one, then you should add the project to:
<subproject ref="/proj/en/myproject/index.xml" inheritmembers="no"/>