<div id="primaryLinks">
	<h3>Primary Links</h3>
	<ul>
		<li>
			<a id="buttonDownload" href="downloads" title="Download">
				<strong>Download</strong> Eclipse Distribution, Update Site, Dropins
			</a>
		</li>
		<li>
			<a id="buttonSupport" href="support" title="Support">
				<strong>Support</strong> Documentation, Newsgroup, Videos
			</a>
		</li>
		<li class="toTheRight">
			<a id="buttonInvolved" href="developers" title="Getting Involved">
				<strong>Getting Involved</strong> Git, Workspace Setup, Wiki, Committers
			</a>
		</li>
	</ul>
</div>

<div id="midcolumnhome">
	<h3>Acceleo - transforming models into code</h3>
	<div id="introText">
		<p class="left">
			<a href="http://wiki.eclipse.org/Acceleo">Acceleo</a> is a pragmatic implementation of the
			<a href="http://www.omg.org/">Object Management Group (OMG)</a> <a href="http://www.omg.org/spec/MOFM2T/1.0/">
			MOF Model to Text Language (MTL)</a> standard. You do not need to be an expert to start using the
			plug-ins and create your first code generator : using the provided example projects and the powerful
			completion feature of the Acceleo editor, it is very easy to get started and understand the basic principles.
		</p>
		<p class="right">
			Acceleo is the result of several man-years of R&D started in the French company Obeo. Junction between the
			OMG MTL standard, its team's experience with industrial code generation and the latest research advances into
			the M2T field, it offers outstanding advantages : High ability to customize, Interoperability, Easy kick off,
			Traceability Management, and many more!
		</p>
	</div>

	<div id="screencast">
		<a href="http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm" title="See Acceleo in action" rel="nofollow">
		<div class="prezi-player">
			<style type="text/css" media="screen">
				.prezi-player { width: 640px; }
				.prezi-player-links { text-align: center; }
			</style>
			<object id="prezi_xpdkccxjlj-e" name="prezi_xpdkccxjlj-e" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="480">
				<param name="movie" value="http://prezi.com/bin/preziloader.swf"/>
				<param name="allowfullscreen" value="true"/>
				<param name="allowscriptaccess" value="always"/>
				<param name="bgcolor" value="#ffffff"/>
				<param name="flashvars" value="prezi_id=xpdkccxjlj-e&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=yes&amp;autohide_ctrls=1"/>
				<embed id="preziEmbed_xpdkccxjlj-e" name="preziEmbed_xpdkccxjlj-e" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480" bgcolor="#ffffff" flashvars="prezi_id=xpdkccxjlj-e&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"></embed>
			</object>
			<div class="prezi-player-links">
				<p>
					<a title="Acceleo at the Eclipse-OMG Workshop" href="http://prezi.com/xpdkccxjlj-e/acceleo-at-the-eclipse-omg-workshop/">Acceleo at the Eclipse-OMG Workshop 2012</a>
				</p>
			</div>
		</div>
	</div>

	<h3>From Acceleo.org to Eclipse.org </h3>
	<div id="introText">
		<p class="left">
			The <a href="http://acceleo.org/pages/home">Acceleo</a> project was started 4 years ago. Over the years, it
			steadily grew from its first stable release up to its 2.x versions. Yet, the team has been more and more
			convinced that the future of code generation lied in the OMG
			<a href="http://www.omg.org/spec/MOFM2T/1.0/">MTL</a> specification, and that it was the way to go for the
			project.
		</p>
		<p class="right">
			The reference implementation we provide within the Eclipse M2T project, Acceleo 3, combines nice tooling,
			simple syntax and efficient code generation with all the pragmatism we had with the 2.x stream.
		</p>
	</div>

	<div id="feature">
		<h4>User Experience</h4>
		<p>
			The Acceleo generation module Editor supports the user with most of the features you would expect from modern
			IDEs : content assist, quick outline, navigation links to the declaration of model elements, template elements
			and variables, quick fixes, refactoring, syntax highlighting, occurences highlighting... and so much more!
		</p>
	</div>


	<div id="feature_discovery">
		<h4>Discovering features...</h4>
		<p>
			Read the <a href="/acceleo/documentation">documentation</a>, join the discussion at the
			<a href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=24&" rel="nofollow">newsgroup</a>, or get in touch with
			the team on <a href="https://twitter.com/#!/acceleo">Twitter</a> or <a href="https://plus.google.com/b/114651471803085159652/" rel="publisher">Google+</a>.
		</p>
	</div>
	
	<div id="acceleoInAction">
		<h4>See it in action !</h4>
		<p>
			<a href="http://www.obeo.fr/videos/acceleo-eclipse/eclipse-modeling-runaway-acceleo.htm" rel="nofollow">
			Acceleo used to create an Android application</a><br/>
			<a href="http://literate.modeling.free.fr/modeling/acceleo/06-acceleo-editor-features.htm" rel="nofollow">
			The Acceleo generation modules editor</a><br/>
			<a href="http://live.eclipse.org/node/926">Helios In Action: Modeling</a>. Modeling components in Helios.<br/>
			Take a look at the <a href="http://wiki.eclipse.org/Acceleo/Demonstrations">wiki page</a> for more !
		</p>
	</div>
</div>

<div id="rightcolumn">
	<div class="sideitem" id="obeo">
		<a href="http://www.obeo.fr" title="Main Obeo website"><img src="images/logo/logo_obeo.png"/></a>
	</div>
	
	<div class="sideitem maintenance">
		<a id="maintenanceLink" href="http://www.acceleo.org/pages/welcome/en" title="Maintenance 2.x stream website" rel="nofollow">
		2.x legacy stream website</a>
	</div>

	<div class="sideitem">
		<h6>Project Summary</h6>
		<div class="modal">
			<p>
				Read more <a href="http://www.eclipse.org/projects/project_summary.php?projectid=modeling.m2t.acceleo">about
				this project</a> and get all useful information and links about it in a nutshell.
			</p>
		</div>
	</div>
	
	<div class="sideitem">
		<h6><a href="awards">Awards</a></h6>
		<div class="modal">
			<br />
			<div id="OWFInnovationAward"><a href="awards"></a></div>
			<br />
			<div id="olderNews"><a href="awards">See more...</a></div>
		</div>
	</div>

	<div class="sideitem">
		<script src="http://widgets.twimg.com/j/2/widget.js"></script>
		<script>
			new TWTR.Widget({
				version: 2,
				type: 'profile',
				rpp: 8,
				interval: 6000,
				width: 260,
				height: 300,
				theme: {
					shell: {
						background: '#e8e7dd',
						color: '#000000'
					},
					tweets: {
						background: '#FFFFFF',
						color: '#000000',
					}
				},
				features: {
					scrollbar: true,
					loop: false,
					live: true,
					hashtags: true,
					timestamp: true,
					avatars: true,
					behavior: 'all'
				}
			}).render().setUser('acceleo').start();
		</script>
	</div>

	<div class="sideitem">
%%HEADLINES%%
	</div>
</div>
