Commit 011ce1a1 authored by Fabien Udriot's avatar Fabien Udriot
Browse files

First commit

Change-Id: I9840e7ba18c3effa65aa4bc35812c384c7504d9b
<ul class="breadcrumbs">
<a href="" target="_top" title="TYPO3 - The Enterprise Open Source CMS"></a>
<a href="" target="_top" title="Download">Download</a>
<li>TYPO3 CMS Composer Repository</li>
TYPO3 CMS Composer Repository
What Is It?
This is a [composer][1] repository, enabling you to install TYPO3 CMS core and extensions including dependencies via Composer.
This repository includes:
* TYPO3 CMS core. All versions currently supported by [](
* TYPO3 CMS extensions. All Extensions, not marked as un-secure, in the [TER](
* Composer Installer. To install everything into its right place (typo3conf/ext and typo3_src)
How to use it?
As a quick way, to use Composer, the Base Distribution can be downloaded. It can be done in a few commands:
# Install Composer on your system if not already done.
# Download the Base Distribution.
composer create-project typo3/cms-base-distribution CmsBaseDistribution
# Add and download additional extensions.
cd CmsBaseDistribution
composer require typo3-ter/tt-news
# Personalize your composer.json file.
edit composer.json
As you can see, using composer to install TYPO3 CMS is fairly simple. You just need to include the custom composer repository into your composer.json.
After you have done this, you can require the Core and / or extensions with the usual [composer versioning format][2].
In the example below, this will always get you the most current 6.2.x core of TYPO3 CMS, the most current version of a1_ttnews (including it's dependency tt_news!).
"repositories": [
"type": "composer",
"url": ""
"require": {
"typo3/cms": "~6.2",
"typo3-ter/a1_ttnews": "*"
Add your own composer.json file
It is encouraged to add your own ``composer.json`` file in your extension to be on the good side, as TYPO3 CMS will rely more and more on Composer to handle
dependencies. The file must be placed at the root of your extension and must look like as follows:
"name": "vendor-name/my-ext",
"type": "cms-extension",
"description": "My description comes here",
"homepage": "",
"license": ["GPL-2.0+"]
The ``vendor-name`` must be one of yours. It must not be "typo3" which is reserved for Core extensions.
There are some [conventions notes]( to be read in the TYPO3 Wiki related to namespaces.
Also, you have the chance to synchronise your package on Packagist, if you are hosting your code on
The benefit would be to be able to use the "master" branch as long as the "tags" - which is not possible with the TER. To have this possible, make sure to:
* Have a Composer file at the root of the extension, as shown above.
* Register the package at [Packagist](
* Add "typo3" as additional maintainer of your package on Packagist. This is required to have Gerrit's hook correctly triggering the update on Packagist.
How it works?
A few times a day we crawl the TYPO3 Extension Repository and the available core downloads.
We process all ext_emconf.php's (of every non un-secure version) to calculate the dependencies.
We generate the metadata (packages.json), needed by composer to find the right downloads which will be downloaded from the TER eventually.
Where can I report bug?
There is a [Forge project][fp] where issues and wishes can be reported on the [Bug Tracker][bt].
"config": {
"vendor-dir": "Packages/Libraries",
"bin-dir": "bin"
"require": {
"erusev/parsedown": "1.0.*"
\ No newline at end of file
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at",
"This file is @generated automatically"
"hash": "435d337cd25430b4d1d51cbe6686b028",
"packages": [
"name": "erusev/parsedown",
"version": "1.0.1",
"source": {
"type": "git",
"url": "",
"reference": "d24439ada0704948deef0d3eda2ea20fd8db1747"
"dist": {
"type": "zip",
"url": "",
"reference": "d24439ada0704948deef0d3eda2ea20fd8db1747",
"shasum": ""
"type": "library",
"autoload": {
"psr-0": {
"Parsedown": ""
"notification-url": "",
"license": [
"authors": [
"name": "Emanuil Rusev",
"email": "",
"homepage": ""
"description": "Parser for Markdown.",
"homepage": "",
"keywords": [
"time": "2014-05-21 20:20:46"
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"platform": [],
"platform-dev": []
require 'Packages/Libraries/autoload.php';
$template = 'Resources/template.html';
$output = file_get_contents($template);
$contentFile = '';
$contentRaw = file_get_contents($contentFile);
$parser = new Parsedown();
$content = $parser->text($contentRaw);
$output = str_replace('###CONTENT###', $content, $output);
$output = str_replace('../', '/Resources/', $output);
print $output;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment