<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.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>
