mirror of
https://github.com/there4/markdown-resume.git
synced 2024-12-03 08:59:35 -05:00
Html Command outputs formatted document
The section titles aren’t being handled correctly, but otherwise, the output looks good.
This commit is contained in:
parent
842fae2b6f
commit
57fbb3dd8f
@ -31,8 +31,6 @@
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"require": {
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/console": "v2.3.4",
|
||||
"symfony/config": "v2.3.4",
|
||||
"symfony/yaml": "v2.3.4",
|
||||
@ -41,6 +39,12 @@
|
||||
"twig/twig": "v1.13.2",
|
||||
"mustache/mustache": "2.5.1",
|
||||
"michelf/php-smartypants": "1.6.0-beta1",
|
||||
"simple-html-dom/simple-html-dom": "1.5.0"
|
||||
"simple-html-dom/simple-html-dom": "1.5.0",
|
||||
"kriswallsmith/assetic": "1.1.2"
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"vendor/simple-html-dom/simple-html-dom/"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
309
composer.lock
generated
309
composer.lock
generated
@ -3,8 +3,171 @@
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
|
||||
],
|
||||
"hash": "7f8d3ab6c722a1dfa180e92c876ffc63",
|
||||
"hash": "40e7ded8558afab5c3b481ec2d33dafe",
|
||||
"packages": [
|
||||
{
|
||||
"name": "kriswallsmith/assetic",
|
||||
"version": "v1.1.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/kriswallsmith/assetic.git",
|
||||
"reference": "735cffd3982c6e8cdebe292d5db39d077f65890f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/735cffd3982c6e8cdebe292d5db39d077f65890f",
|
||||
"reference": "735cffd3982c6e8cdebe292d5db39d077f65890f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.1",
|
||||
"symfony/process": "~2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"cssmin/cssmin": "*",
|
||||
"joliclic/javascript-packer": "*",
|
||||
"kamicane/packager": "*",
|
||||
"leafo/lessphp": "*",
|
||||
"leafo/scssphp": "*",
|
||||
"leafo/scssphp-compass": "*",
|
||||
"mrclay/minify": "*",
|
||||
"phpunit/phpunit": "~3.7",
|
||||
"ptachoire/cssembed": "*",
|
||||
"twig/twig": "~1.6"
|
||||
},
|
||||
"suggest": {
|
||||
"leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler",
|
||||
"leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler",
|
||||
"leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin",
|
||||
"ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris",
|
||||
"twig/twig": "Assetic provides the integration with the Twig templating engine"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Assetic": "src/"
|
||||
},
|
||||
"files": [
|
||||
"src/functions.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kris Wallsmith",
|
||||
"email": "kris.wallsmith@gmail.com",
|
||||
"homepage": "http://kriswallsmith.net/"
|
||||
}
|
||||
],
|
||||
"description": "Asset Management for PHP",
|
||||
"homepage": "https://github.com/kriswallsmith/assetic",
|
||||
"keywords": [
|
||||
"assets",
|
||||
"compression",
|
||||
"minification"
|
||||
],
|
||||
"time": "2013-07-19 00:03:27"
|
||||
},
|
||||
{
|
||||
"name": "leafo/lessphp",
|
||||
"version": "v0.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/leafo/lessphp.git",
|
||||
"reference": "51f3f06f0fe78a722dabfd14578444bdd078d9de"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/leafo/lessphp/zipball/51f3f06f0fe78a722dabfd14578444bdd078d9de",
|
||||
"reference": "51f3f06f0fe78a722dabfd14578444bdd078d9de",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"lessc.inc.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT",
|
||||
"GPL-3.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Leaf Corcoran",
|
||||
"email": "leafot@gmail.com",
|
||||
"homepage": "http://leafo.net"
|
||||
}
|
||||
],
|
||||
"description": "lessphp is a compiler for LESS written in PHP.",
|
||||
"homepage": "http://leafo.net/lessphp/",
|
||||
"time": "2013-08-09 17:09:19"
|
||||
},
|
||||
{
|
||||
"name": "michelf/php-markdown",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/michelf/php-markdown.git",
|
||||
"reference": "96d8150406f67e683ef4acc09fef91785fef1266"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/96d8150406f67e683ef4acc09fef91785fef1266",
|
||||
"reference": "96d8150406f67e683ef4acc09fef91785fef1266",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-lib": "1.4.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Michelf": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michel Fortin",
|
||||
"email": "michel.fortin@michelf.ca",
|
||||
"homepage": "http://michelf.ca/",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "John Gruber",
|
||||
"homepage": "http://daringfireball.net/"
|
||||
}
|
||||
],
|
||||
"description": "PHP Markdown",
|
||||
"homepage": "http://michelf.ca/projects/php-markdown/",
|
||||
"keywords": [
|
||||
"markdown"
|
||||
],
|
||||
"time": "2013-11-29 17:09:24"
|
||||
},
|
||||
{
|
||||
"name": "michelf/php-smartypants",
|
||||
"version": "1.6.0-beta1",
|
||||
@ -133,100 +296,6 @@
|
||||
],
|
||||
"description": "A copy of the PHP Simple HTML DOM Parser project.",
|
||||
"time": "2013-05-14 22:27:35"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "leafo/lessphp",
|
||||
"version": "v0.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/leafo/lessphp.git",
|
||||
"reference": "51f3f06f0fe78a722dabfd14578444bdd078d9de"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/leafo/lessphp/zipball/51f3f06f0fe78a722dabfd14578444bdd078d9de",
|
||||
"reference": "51f3f06f0fe78a722dabfd14578444bdd078d9de",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.3-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"lessc.inc.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT",
|
||||
"GPL-3.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Leaf Corcoran",
|
||||
"email": "leafot@gmail.com",
|
||||
"homepage": "http://leafo.net"
|
||||
}
|
||||
],
|
||||
"description": "lessphp is a compiler for LESS written in PHP.",
|
||||
"homepage": "http://leafo.net/lessphp/",
|
||||
"time": "2013-08-09 17:09:19"
|
||||
},
|
||||
{
|
||||
"name": "michelf/php-markdown",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/michelf/php-markdown.git",
|
||||
"reference": "96d8150406f67e683ef4acc09fef91785fef1266"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/96d8150406f67e683ef4acc09fef91785fef1266",
|
||||
"reference": "96d8150406f67e683ef4acc09fef91785fef1266",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-lib": "1.4.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Michelf": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Michel Fortin",
|
||||
"email": "michel.fortin@michelf.ca",
|
||||
"homepage": "http://michelf.ca/",
|
||||
"role": "Developer"
|
||||
},
|
||||
{
|
||||
"name": "John Gruber",
|
||||
"homepage": "http://daringfireball.net/"
|
||||
}
|
||||
],
|
||||
"description": "PHP Markdown",
|
||||
"homepage": "http://michelf.ca/projects/php-markdown/",
|
||||
"keywords": [
|
||||
"markdown"
|
||||
],
|
||||
"time": "2013-11-29 17:09:24"
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
@ -376,6 +445,53 @@
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2014-01-07 13:29:57"
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "dev-master",
|
||||
"target-dir": "Symfony/Component/Process",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/Process.git",
|
||||
"reference": "d4b086ca4d6e192d8c2c64fe011159c8bc4c9daa"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/Process/zipball/d4b086ca4d6e192d8c2c64fe011159c8bc4c9daa",
|
||||
"reference": "d4b086ca4d6e192d8c2c64fe011159c8bc4c9daa",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.3"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Symfony\\Component\\Process\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "http://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Symfony Process Component",
|
||||
"homepage": "http://symfony.com",
|
||||
"time": "2014-01-07 13:29:57"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v2.3.4",
|
||||
@ -472,6 +588,9 @@
|
||||
],
|
||||
"time": "2013-08-03 15:35:31"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
|
||||
],
|
||||
"aliases": [
|
||||
|
||||
|
@ -6,6 +6,12 @@ use Symfony\Component\Console\Input\InputOption;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Assetic\Asset\AssetCollection;
|
||||
use Assetic\Asset\FileAsset;
|
||||
use Assetic\Asset\GlobAsset;
|
||||
use Assetic\Filter;
|
||||
use Michelf\Markdown;
|
||||
use Michelf\SmartyPants;
|
||||
|
||||
class HtmlCommand extends Command
|
||||
{
|
||||
@ -65,18 +71,69 @@ class HtmlCommand extends Command
|
||||
$template = $this->app->defaultTemplate;
|
||||
}
|
||||
$templatePath = join(DIRECTORY_SEPARATOR, array(
|
||||
$this->app->templatePath, basename($template), '/index.html'
|
||||
$this->app->templatePath, basename($template)
|
||||
));
|
||||
if (!file_exists($templatePath)) {
|
||||
$templateIndexPath = join(DIRECTORY_SEPARATOR, array(
|
||||
$templatePath, 'index.html'
|
||||
));
|
||||
if (!file_exists($templateIndexPath)) {
|
||||
$output->writeln(
|
||||
sprintf(
|
||||
"<error>Unable to open template file: %s</error>",
|
||||
$templatePath
|
||||
$templateIndexPath
|
||||
),
|
||||
$this->app->outputFormat
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
// We build these into a single string so that we can deploy this resume as a
|
||||
// single file.
|
||||
$cssAssetSelector = join(DIRECTORY_SEPARATOR, array($templatePath, '/css/*.css'));
|
||||
$css = new AssetCollection(
|
||||
array(new GlobAsset($cssAssetSelector)),
|
||||
array(new Filter\LessphpFilter())
|
||||
);
|
||||
$style = $css->dump();
|
||||
|
||||
$templateContent = file_get_contents($templateIndexPath);
|
||||
$resumeContent = file_get_contents($source);
|
||||
|
||||
// Process with Markdown, and then use SmartyPants to clean up punctuation.
|
||||
$resumeHtml = Markdown::defaultTransform($resumeContent);
|
||||
$resumeHtml = SmartyPants::defaultTransform($resumeHtml);
|
||||
|
||||
// We'll construct the title for the html document from the h1 and h2 tags
|
||||
$simpleDom = new \simple_html_dom();
|
||||
$simpleDom->load($resumeHtml);
|
||||
$title = sprintf(
|
||||
'%s | %s',
|
||||
$simpleDom->find('h1', 0)->innertext,
|
||||
$simpleDom->find('h2', 0)->innertext
|
||||
);
|
||||
|
||||
// We'll now render the Markdown into an html file with Mustache Templates
|
||||
$m = new \Mustache_Engine;
|
||||
$rendered = $m->render(
|
||||
$templateContent,
|
||||
array(
|
||||
'title' => $title,
|
||||
'style' => $style,
|
||||
'resume' => $resumeHtml,
|
||||
'reload' => $refresh
|
||||
)
|
||||
);
|
||||
|
||||
// Save the fully rendered html to the final destination
|
||||
file_put_contents($destination, $rendered);
|
||||
$output->writeln(
|
||||
sprintf(
|
||||
"Wrote resume to: <info>%s</info>",
|
||||
$destination
|
||||
),
|
||||
$this->app->outputFormat
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user