<HTML>
<HEAD>
<TITLE>NetBeans Website Guidelines</TITLE>
<META NAME="description" CONTENT="Guidelines for anyone working on a netbeans.org website">
<link rel="stylesheet" type="text/css" HREF="../../netbeans.css">
</HEAD>

<BODY>

<h1>Web Guidelines</h1>

<p><h2>The Basics:</h2>
<UL>
<li><a HREF="#intro">Introduction</a>
<li><a HREF="#start">Getting Started</a>
<li><a HREF="#css">Style Sheets</a>
<li><a HREF="#branding">Branding</a>
<li><a HREF="#meta">META tags</a>
<li><a HREF="#www">Working on www.netbeans.org</a>
</UL>

<p><h2>Automated, Site-Wide Procedures</h2>

<UL>
<li><a HREF="#stats">Website Traffic Analysis</a>
<li><a HREF="#linking">Linking to the Website</a>
<li><a HREF="#langsites">Setting up http://&lt;$your_language_here&gt;.netbeans.org/</a>
</UL>

<p><h2><a name="intro">Introduction</a></h2>
<BR>Every project (module) of netbeans.org has its own web pages, located at
<TT>http://module-name.netbeans.org/</TT>.

<p>The owner of the project is responsible for maintaining these pages.
If you want people to get interested and involved in your project,
a good start is to put some relevant content up on your pages,
explaining what the module does or will do.

<p>All web pages for all projects have a few standard elements
supplied by the infrastructure of the website.  Things like the NetBeans
logo and the standard navigation bar across the top will
appear on all pages.  These are not configurable per project.

<p><B>Note:</B> The site headers and footers are automatically
wrapped around your content &mdash; <I>you should not include them</I> in
your HTML.  Take a look at the supplied templates below for examples.

<h2><a name="start">Getting Started</a></h2>

<p>Web pages for a module are maintained via WebDAV.
Edit the files locally as you wish, and when done, upload the new versions to publish them.
As a project maintainer you use your netbeans.org account as credentials.
Read more about
<a href="https://netbeans.org/projects/help/pages/ManageProject#Website">Working With Your Project's Website</a> here.
Alternatively you have the option to use a
<a href="https://netbeans.org/projects/help/pages/ManageProject#Wiki">wiki as your project home page</a>.
</p>
<p>Here a few suggestions what to include on your project homepage
<UL>
<li>A description of the project: What is it, what will it do?</li>
<li>Current status, if appropriate</li>
<li>Screenshots, if appropriate</li>
<li>Members and contact info for feedback</li>
<li>Specs and proposals</li>
<li>TODO lists, future features lists</li>
</UL>

<h2><a name="css">Style Sheets</a></h2>
<p>We recommend you make use of the style sheets file available at
https://netbeans.org/netbeans.css. To use it, include this css link
in the head block of your HTML page.</p>
<pre>&lt;link rel="stylesheet" href="https://netbeans.org/netbeans.css" type="text/css"&gt;</pre>

<p>For more detail of how to make use of this guide, including a description
and examples of all defined styles, please see <a HREF="css-guide.html">the NetBeans CSS Guide</a>.

<p><h2><a name="branding">Branding</a></h2>
<BR>All <I>branding</I> of pages is done automatically.  This means
the the logo, the navigation links, colours and styles etc are all
"wrapped" around your content automatically, and you do not need to
add them yourself.

<p>It is possible to view your content <I>without</I>
this automatic branding.  This is really only useful for testing
and troubleshooting, and we request you don't use this format for
normal browsing or use of your content.  To view the unbranded
version of your page, append <tt>?print=yes</tt> to the end of the URL,
so for example
<UL>
<li>Branded version: <a HREF="http://openide.netbeans.org/tutorial/index.html">http://openide.netbeans.org/tutorial/index.html</a>
<li>UNbranded version: <a HREF="http://openide.netbeans.org/tutorial/index.html?print=yes">http://openide.netbeans.org/tutorial/index.html?print=yes</a>
</UL>

<p><h2><a name="meta">META tags</a></h2>

<p>For best results in search engine
listings, and also for use in your site map, please make use of META
DESCRIPTION and KEYWORD tags!  Use these tags to place a description of each page
in the HEAD of your HTML.  For example:

<p><TT>&lt;META NAME="description" CONTENT="Guidelines for setting up your netbeans.org project website"&gt;</TT> </p>
<p><TT>&lt;META NAME="keywords" CONTENT="netbeans.org, project, homepage, website, owner"&gt;</TT> </p>


<p><h2><a name="www">Working on www.netbeans.org</a></h2>
<BR>The web-content project is a just like any other,
however the <a HREF="../teams/web/index.html">NetBeans webteam</a>
have implemented a publishing system for www, and adding or editing
content there is quite different than for other project websites.
Please see the separate <a HREF="www-guide.html">Working on www Guidelines</a> for more details.

<!--
<p><h2><a name="map">Your Site Map</a></h2>
<BR>Site maps for all module websites are generated automatically,
and updated daily.  The maps are linked from the navigation
bar at the top of all pages.  See

<a HREF="https://netbeans.org/download/sitemaps/www_map.html">https://netbeans.org/gdownload/sitemaps/www_map.html</a>

for an example.  The site map will display the META DESCRIPTIONs
included in the HEAD of your HTML, where they are available.  If
there is no DESCRIPTION, the filename itself is used.  This is
much less useful than a custom description, so it is a good idea
to include these if you can!  See the <a HREF="#meta">META section</a>
for more info.

<p>If there are specific sections of your site you would like to <I>not</I> show
up in your site map, please <a href="https://netbeans.org/about/contact_form.html?to=1">contact us</a>,
this may be possible.
-->

<p><h2><a name="linking">Linking to the www Website</a></h2>
<BR>
There are a few key fixed URLs on the site:
These are pages whose location is guaranteed not to move, so please use
them if you need to link to the site from the IDE.

<p>The current set of fixed URLs is:

<UL>
<li><a HREF="https://netbeans.org/contact.html">https://netbeans.org/gcontact.html</a>
<li><a HREF="https://netbeans.org/issues.html">https://netbeans.org/gissues.html</a>
<li><a HREF="https://netbeans.org/faqs.html">https://netbeans.org/gfaqs.html</a>
</UL>

<p>If you need to link to a page not in this list from the IDE, please
contact <a href="https://netbeans.org/about/contact_form.html?to=1">webmaster</a> with
details, we can add it.  Obviously only fairly high-level and general
links are suitable.  See <a HREF="https://netbeans.org/bugzilla/show_bug.cgi?id=34149">issue 34149</a> for more info.

<p>Note that the real final content might not actually be at the above
locations, but those pages will always redirect the user to the correct
location.

<a name="langsites"></a>
<h2>Setting up http://&lt;$your_language_here&gt;.netbeans.org/</h2>

If you're interested in setting up a localised netbeans.org website, get in touch!  We'd
love to help get you started.

<p>
Contact the <a href="https://netbeans.org/about/contact_form.html?to=1">webmaster</a>.

</body>
</html>
