<html>
<head>
 <title>Participate in OpenOffice.org</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <meta http-equiv="Content-Style-Type" content="text/css">
</head>

<body>
  <p><a href="index.html">Participate in OpenOffice.org</a></p>
  <table width="100%">
   <tr>
    <td width="70px"><a href="writing.html"><img src="_media/writing.png" border="0" alt="Writing" vspace="11" /></a></td>
    <td style="vertical-align:middle">
     <h1>Writing</h1>
    </td>
   </tr>
  </table>
<p>One of the best ways to contribute to OpenOffice.org is to write tutorials, guides, HOWTOs and FAQs. In so doing, you will be helping thousands of users. There are many ways you can help, everyone is welcome. And no matter your level of experience, there is a place here for you.</p>
<p>Here are some ideas for contribution:</p>
<ul>
  <li>
    <p><b style="color:#a00">User FAQs</b><br />
      The User FAQs (Frequently Asked Questions) are an excellent place to start contributing to OpenOffice.org. If you'd like to help, send an email to<a href="mailto:dev@documentation.openoffice.org"> this address</a> and introduce yourself.</p>
  </li>
  <li>
    <p><b style="color:#a00">HOW-Tos and Tutorials</b><br />
      These are short, self-contained documents, and a great place to get started. If there is a particular feature you enjoy, this is the place for you. Send an email to<a href="mailto:dev@documentation.openoffice.org"> this address</a> and tell us what you are interested in. Need ideas? Check out the <a href="//issues/buglist.cgi?issue_type=TASK&component=documentation&issue_status=UNCONFIRMED&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED">Task List</a> maintained the by <a href="http://documentation.openoffice.org">Documentation Project</a>.</p>
  </li>
  <li>
    <p><b style="color:#a00">User Guide</b><br />
      We are writing a comprehensive User Guide for OpenOffice.org, and we need <em>your</em> help. This is a large and very active project, and it's a fun place to work. You don't need to be an expert writer to contribute. We will help you. Please send an email to<a href="mailto:dev@documentation.openoffice.org"> this address</a> and introduce yourself.</p>
  </li>
  <li>
    <p><b style="color:#a00">Development Primer</b><br />
      This document is a complement to the <a href="http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html"> Developer's Guide</a>. It is meant to introduce the new developer to the art of OpenOffice.org programming. If you know something about programming for OpenOffice.org, please send an email to<a href="mailto:authors@user-faq.openoffice.org"> this address</a> and introduce yourself.</p>
  </li>
  <li>
    <p><b style="color:#a00">Documentation in your language</b><br />
      Documentation in different languages is being coordinated through the <a href="http://native-lang.openoffice.org">Native-Lang Confederation</a>.</p>
  </li>
</ul>
<table>
  <tr>
    <td><img src="/images/licensing.png" border="0" /></td>
    <td>OpenOffice.org documentation is released under the <a href="//licenses/PDL.html">Public Documentation License</a> or under the <a href="//license.html">LGPL</a>. For some good explanations of what the licenses mean and how to use them, go to our <a href="//FAQs/faq-licensing.html">Project FAQ</a>. To find out how collaboration is mediated within the OpenOffice.org community, please visit our <a href='//dev_docs/guidelines.html'>Guidelines for Participate in OpenOffice.org</a> page.</td>
  </tr>
</table>
<br />
<br />
<br>
 <!-- 

Public Documentation License Notice


The contents of this Documentation are subject to the Public Documentation License Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License. A copy of the License is available at //licenses/PDL.html.

The Original Documentation is "writing.html". The Initial Writer of the Original Documentation is Daniel Carrera Copyright (C) 2004. All Rights Reserved. (Initial Writer contact: dcarrera [at] digitaldistribution.com.)  This current document is derived from that original.

Contributor(s): Louis Suarez-Potts (LSP), louis [at] openoffice.org

For a record of all changes made to the original document by Louis Suarez-Potts, see the CVS history at OpenOffice.org ( www/www/contributing/writing.html and contributing/www/*)

-->


</body>
</html>
