Add code
@@ -0,0 +1,67 @@
|
|||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
||||||
|
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||||
|
|
||||||
|
# User-specific stuff:
|
||||||
|
.idea/workspace.xml
|
||||||
|
.idea/tasks.xml
|
||||||
|
.idea/dictionaries
|
||||||
|
.idea/vcs.xml
|
||||||
|
.idea/jsLibraryMappings.xml
|
||||||
|
|
||||||
|
# Sensitive or high-churn files:
|
||||||
|
.idea/dataSources.ids
|
||||||
|
.idea/dataSources.xml
|
||||||
|
.idea/dataSources.local.xml
|
||||||
|
.idea/sqlDataSources.xml
|
||||||
|
.idea/dynamic.xml
|
||||||
|
.idea/uiDesigner.xml
|
||||||
|
|
||||||
|
# Gradle:
|
||||||
|
.idea/gradle.xml
|
||||||
|
.idea/libraries
|
||||||
|
|
||||||
|
# Mongo Explorer plugin:
|
||||||
|
.idea/mongoSettings.xml
|
||||||
|
|
||||||
|
## File-based project format:
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
## Plugin-specific files:
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
/out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
fabric.properties
|
||||||
|
|
||||||
|
# Composer packages
|
||||||
|
vendor
|
||||||
|
|
||||||
|
# NPM packages
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Bower packages
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# Utilities
|
||||||
|
composer.phar
|
||||||
|
phpunit.phar
|
||||||
|
|
||||||
|
# Cache
|
||||||
|
/cache/
|
||||||
|
|
||||||
|
# Sensitive
|
||||||
|
/config/config.yaml
|
||||||
|
|
||||||
|
# Compiled code
|
||||||
|
/web/js/
|
||||||
|
/web/css/
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<component name="CopyrightManager">
|
||||||
|
<settings default="" />
|
||||||
|
</component>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
||||||
|
<OptionsSetting value="true" id="Add" />
|
||||||
|
<OptionsSetting value="true" id="Remove" />
|
||||||
|
<OptionsSetting value="true" id="Checkout" />
|
||||||
|
<OptionsSetting value="true" id="Update" />
|
||||||
|
<OptionsSetting value="true" id="Status" />
|
||||||
|
<OptionsSetting value="true" id="Edit" />
|
||||||
|
<ConfirmationsSetting value="0" id="Add" />
|
||||||
|
<ConfirmationsSetting value="0" id="Remove" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/silex-base.iml" filepath="$PROJECT_DIR$/.idea/silex-base.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="module-library">
|
||||||
|
<library name="PHARS">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="phar://$MODULE_DIR$/composer.phar/" />
|
||||||
|
</CLASSES>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="phar://$MODULE_DIR$/composer.phar/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</orderEntry>
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 Saul Johnson
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
# Silex Base Template
|
||||||
|
Basic Silex project for a simple website.
|
||||||
|
|
||||||
|
I'm presenting here a clean (-ish) starting point for a website written in PHP on Silex. This is a direct port of [my Django base project](https://github.com/lambdacasserole/django-base/).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
You'll need to have a web server installed and configured with PHP for this to work. I really recommend [XAMPP](https://www.apachefriends.org/), especially for Windows users. Once you've done that you can proceed.
|
||||||
|
|
||||||
|
You'll also need [Node.js](https://nodejs.org/en/) and [npm](https://www.npmjs.com/) installed and working.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
A couple of files need changing to get the site working for you.
|
||||||
|
|
||||||
|
1. Copy `config.yaml.dist` and rename it to `config.yaml`. Fill in the fields according to their descriptions and save.
|
||||||
|
2. Locate `blog.coffee` and fill in the `blogId` and `apiKey` fields to get your blog working.
|
||||||
|
|
||||||
|
## Building
|
||||||
|
Clone the project down and open the folder in your favourite editor. It's a JetBrains PhpStorm project but you can use whichever paid/free software takes your fancy.
|
||||||
|
|
||||||
|
Before anything else, note that this project uses the [Composer](https://getcomposer.org/) package manager. Install composer (see their website) and run:
|
||||||
|
|
||||||
|
```
|
||||||
|
composer install
|
||||||
|
```
|
||||||
|
|
||||||
|
Or alternatively, if you're using the PHAR (make sure the `php.exe` executable is in your PATH):
|
||||||
|
|
||||||
|
```
|
||||||
|
php composer.phar install
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, install the npm packages necessary to build and run the website. Run the following in your terminal in the project root directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
This will install [Bower](https://bower.io/) which will allow you to install the assets the website requires (Bootstrap, jQuery etc.) using the command:
|
||||||
|
|
||||||
|
```
|
||||||
|
bower install
|
||||||
|
```
|
||||||
|
|
||||||
|
Gulp will also have been installed. This will compile the [Less](http://lesscss.org/) and [CoffeeScript](http://coffeescript.org/) into CSS and JavaScript ready for production. Do this using the command:
|
||||||
|
|
||||||
|
```
|
||||||
|
gulp
|
||||||
|
```
|
||||||
|
|
||||||
|
This command will need running again every time you make a change to a Less or CoffeeScript file. If you're working on them, run `gulp watch` in a terminal to watch for file changes and compile accordingly.
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
I'm not a web designer. The site isn't going to bring a tear to your eye with its beauty.
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "lambdacasserole/silex-base",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"homepage": "https://github.com/lambdacasserole/silex-base",
|
||||||
|
"authors": [
|
||||||
|
"Saul Johnson <saul.a.johnson@gmail.com>"
|
||||||
|
],
|
||||||
|
"description": "Basic Silex project for a simple website.",
|
||||||
|
"keywords": [
|
||||||
|
"basic",
|
||||||
|
"silex",
|
||||||
|
"simple",
|
||||||
|
"website"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"bootstrap": "~3.3.1",
|
||||||
|
"bootswatch": "^3.3.6"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "lambdacasserole/silex-base",
|
||||||
|
"description": "Basic Silex project for a simple website.",
|
||||||
|
"type": "project",
|
||||||
|
"license": "MIT",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Saul Johnson",
|
||||||
|
"email": "saul.a.johnson@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"silex/silex": "~2.0",
|
||||||
|
"twig/twig": "^1.24",
|
||||||
|
"mustangostang/spyc": "^0.5.1",
|
||||||
|
"intervention/image": "^2.4",
|
||||||
|
"guzzlehttp/guzzle": "^6.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,982 @@
|
|||||||
|
{
|
||||||
|
"_readme": [
|
||||||
|
"This file locks the dependencies of your project to a known state",
|
||||||
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
|
"This file is @generated automatically"
|
||||||
|
],
|
||||||
|
"content-hash": "5e740fc02164dd61e791ba1ae1a34860",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "guzzlehttp/guzzle",
|
||||||
|
"version": "6.3.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/guzzle/guzzle.git",
|
||||||
|
"reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699",
|
||||||
|
"reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"guzzlehttp/promises": "^1.0",
|
||||||
|
"guzzlehttp/psr7": "^1.4",
|
||||||
|
"php": ">=5.5"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ext-curl": "*",
|
||||||
|
"phpunit/phpunit": "^4.0 || ^5.0",
|
||||||
|
"psr/log": "^1.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"psr/log": "Required for using the Log middleware"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "6.2-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"src/functions_include.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"GuzzleHttp\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Michael Dowling",
|
||||||
|
"email": "mtdowling@gmail.com",
|
||||||
|
"homepage": "https://github.com/mtdowling"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Guzzle is a PHP HTTP client library",
|
||||||
|
"homepage": "http://guzzlephp.org/",
|
||||||
|
"keywords": [
|
||||||
|
"client",
|
||||||
|
"curl",
|
||||||
|
"framework",
|
||||||
|
"http",
|
||||||
|
"http client",
|
||||||
|
"rest",
|
||||||
|
"web service"
|
||||||
|
],
|
||||||
|
"time": "2017-06-22T18:50:49+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "guzzlehttp/promises",
|
||||||
|
"version": "v1.3.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/guzzle/promises.git",
|
||||||
|
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||||
|
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.4-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"GuzzleHttp\\Promise\\": "src/"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"src/functions_include.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Michael Dowling",
|
||||||
|
"email": "mtdowling@gmail.com",
|
||||||
|
"homepage": "https://github.com/mtdowling"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Guzzle promises library",
|
||||||
|
"keywords": [
|
||||||
|
"promise"
|
||||||
|
],
|
||||||
|
"time": "2016-12-20T10:07:11+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "guzzlehttp/psr7",
|
||||||
|
"version": "1.4.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/guzzle/psr7.git",
|
||||||
|
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
|
||||||
|
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.4.0",
|
||||||
|
"psr/http-message": "~1.0"
|
||||||
|
},
|
||||||
|
"provide": {
|
||||||
|
"psr/http-message-implementation": "1.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~4.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.4-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"GuzzleHttp\\Psr7\\": "src/"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"src/functions_include.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Michael Dowling",
|
||||||
|
"email": "mtdowling@gmail.com",
|
||||||
|
"homepage": "https://github.com/mtdowling"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tobias Schultze",
|
||||||
|
"homepage": "https://github.com/Tobion"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PSR-7 message implementation that also provides common utility methods",
|
||||||
|
"keywords": [
|
||||||
|
"http",
|
||||||
|
"message",
|
||||||
|
"request",
|
||||||
|
"response",
|
||||||
|
"stream",
|
||||||
|
"uri",
|
||||||
|
"url"
|
||||||
|
],
|
||||||
|
"time": "2017-03-20T17:10:46+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "intervention/image",
|
||||||
|
"version": "2.4.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Intervention/image.git",
|
||||||
|
"reference": "322a4ade249467179c50a3e50eda8760ff3af2a3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Intervention/image/zipball/322a4ade249467179c50a3e50eda8760ff3af2a3",
|
||||||
|
"reference": "322a4ade249467179c50a3e50eda8760ff3af2a3",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-fileinfo": "*",
|
||||||
|
"guzzlehttp/psr7": "~1.1",
|
||||||
|
"php": ">=5.4.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"mockery/mockery": "~0.9.2",
|
||||||
|
"phpunit/phpunit": "^4.8 || ^5.7"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-gd": "to use GD library based image processing.",
|
||||||
|
"ext-imagick": "to use Imagick based image processing.",
|
||||||
|
"intervention/imagecache": "Caching extension for the Intervention Image library"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.3-dev"
|
||||||
|
},
|
||||||
|
"laravel": {
|
||||||
|
"providers": [
|
||||||
|
"Intervention\\Image\\ImageServiceProvider"
|
||||||
|
],
|
||||||
|
"aliases": {
|
||||||
|
"Image": "Intervention\\Image\\Facades\\Image"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Intervention\\Image\\": "src/Intervention/Image"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Oliver Vogel",
|
||||||
|
"email": "oliver@olivervogel.com",
|
||||||
|
"homepage": "http://olivervogel.com/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Image handling and manipulation library with support for Laravel integration",
|
||||||
|
"homepage": "http://image.intervention.io/",
|
||||||
|
"keywords": [
|
||||||
|
"gd",
|
||||||
|
"image",
|
||||||
|
"imagick",
|
||||||
|
"laravel",
|
||||||
|
"thumbnail",
|
||||||
|
"watermark"
|
||||||
|
],
|
||||||
|
"time": "2017-07-03T15:50:40+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mustangostang/spyc",
|
||||||
|
"version": "0.5.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/mustangostang/spyc.git",
|
||||||
|
"reference": "dc4785b4d7227fd9905e086d499fb8abfadf9977"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/mustangostang/spyc/zipball/dc4785b4d7227fd9905e086d499fb8abfadf9977",
|
||||||
|
"reference": "dc4785b4d7227fd9905e086d499fb8abfadf9977",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "0.5.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"Spyc.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT License"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "mustangostang",
|
||||||
|
"email": "vlad.andersen@gmail.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A simple YAML loader/dumper class for PHP",
|
||||||
|
"homepage": "https://github.com/mustangostang/spyc/",
|
||||||
|
"keywords": [
|
||||||
|
"spyc",
|
||||||
|
"yaml",
|
||||||
|
"yml"
|
||||||
|
],
|
||||||
|
"time": "2013-02-21T10:52:01+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pimple/pimple",
|
||||||
|
"version": "v3.0.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/silexphp/Pimple.git",
|
||||||
|
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/silexphp/Pimple/zipball/a30f7d6e57565a2e1a316e1baf2a483f788b258a",
|
||||||
|
"reference": "a30f7d6e57565a2e1a316e1baf2a483f788b258a",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Pimple": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Pimple, a simple Dependency Injection Container",
|
||||||
|
"homepage": "http://pimple.sensiolabs.org",
|
||||||
|
"keywords": [
|
||||||
|
"container",
|
||||||
|
"dependency injection"
|
||||||
|
],
|
||||||
|
"time": "2015-09-11T15:10:35+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "psr/http-message",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-fig/http-message.git",
|
||||||
|
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||||
|
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Psr\\Http\\Message\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "PHP-FIG",
|
||||||
|
"homepage": "http://www.php-fig.org/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Common interface for HTTP messages",
|
||||||
|
"homepage": "https://github.com/php-fig/http-message",
|
||||||
|
"keywords": [
|
||||||
|
"http",
|
||||||
|
"http-message",
|
||||||
|
"psr",
|
||||||
|
"psr-7",
|
||||||
|
"request",
|
||||||
|
"response"
|
||||||
|
],
|
||||||
|
"time": "2016-08-06T14:39:51+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "psr/log",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/php-fig/log.git",
|
||||||
|
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
|
||||||
|
"reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Psr\\Log\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "PHP-FIG",
|
||||||
|
"homepage": "http://www.php-fig.org/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Common interface for logging libraries",
|
||||||
|
"keywords": [
|
||||||
|
"log",
|
||||||
|
"psr",
|
||||||
|
"psr-3"
|
||||||
|
],
|
||||||
|
"time": "2012-12-21T11:40:51+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "silex/silex",
|
||||||
|
"version": "v2.0.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/silexphp/Silex.git",
|
||||||
|
"reference": "7420ac96195ea7eb6f1e11dc273be49359dd50ad"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/silexphp/Silex/zipball/7420ac96195ea7eb6f1e11dc273be49359dd50ad",
|
||||||
|
"reference": "7420ac96195ea7eb6f1e11dc273be49359dd50ad",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5.9",
|
||||||
|
"pimple/pimple": "~3.0",
|
||||||
|
"symfony/event-dispatcher": "~2.8|^3.0",
|
||||||
|
"symfony/http-foundation": "~2.8|^3.0",
|
||||||
|
"symfony/http-kernel": "~2.8|^3.0",
|
||||||
|
"symfony/routing": "~2.8|^3.0"
|
||||||
|
},
|
||||||
|
"replace": {
|
||||||
|
"silex/api": "self.version",
|
||||||
|
"silex/providers": "self.version"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/dbal": "~2.2",
|
||||||
|
"monolog/monolog": "^1.4.1",
|
||||||
|
"swiftmailer/swiftmailer": "~5",
|
||||||
|
"symfony/asset": "~2.8|^3.0",
|
||||||
|
"symfony/browser-kit": "~2.8|^3.0",
|
||||||
|
"symfony/config": "~2.8|^3.0",
|
||||||
|
"symfony/css-selector": "~2.8|^3.0",
|
||||||
|
"symfony/debug": "~2.8|^3.0",
|
||||||
|
"symfony/doctrine-bridge": "~2.8|^3.0",
|
||||||
|
"symfony/dom-crawler": "~2.8|^3.0",
|
||||||
|
"symfony/expression-language": "~2.8|^3.0",
|
||||||
|
"symfony/finder": "~2.8|^3.0",
|
||||||
|
"symfony/form": "~2.8|^3.0",
|
||||||
|
"symfony/intl": "~2.8|^3.0",
|
||||||
|
"symfony/monolog-bridge": "~2.8|^3.0",
|
||||||
|
"symfony/options-resolver": "~2.8|^3.0",
|
||||||
|
"symfony/phpunit-bridge": "~2.8|^3.0",
|
||||||
|
"symfony/process": "~2.8|^3.0",
|
||||||
|
"symfony/security": "~2.8|^3.0",
|
||||||
|
"symfony/serializer": "~2.8|^3.0",
|
||||||
|
"symfony/translation": "~2.8|^3.0",
|
||||||
|
"symfony/twig-bridge": "~2.8|^3.0",
|
||||||
|
"symfony/validator": "~2.8|^3.0",
|
||||||
|
"symfony/var-dumper": "~2.8|^3.0",
|
||||||
|
"twig/twig": "~1.8|~2.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Silex\\": "src/Silex"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Igor Wiedler",
|
||||||
|
"email": "igor@wiedler.ch"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "The PHP micro-framework based on the Symfony Components",
|
||||||
|
"homepage": "http://silex.sensiolabs.org",
|
||||||
|
"keywords": [
|
||||||
|
"microframework"
|
||||||
|
],
|
||||||
|
"time": "2016-06-14T09:27:51+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/debug",
|
||||||
|
"version": "v3.1.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/debug.git",
|
||||||
|
"reference": "06e2d52e307ef880ac739f44ee6c2418ca9e3283"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/debug/zipball/06e2d52e307ef880ac739f44ee6c2418ca9e3283",
|
||||||
|
"reference": "06e2d52e307ef880ac739f44ee6c2418ca9e3283",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5.9",
|
||||||
|
"psr/log": "~1.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/class-loader": "~2.8|~3.0",
|
||||||
|
"symfony/http-kernel": "~2.8|~3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.1-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\Debug\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony Debug Component",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"time": "2016-06-29T05:41:56+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/event-dispatcher",
|
||||||
|
"version": "v3.1.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||||
|
"reference": "7f9839ede2070f53e7e2f0849b9bd14748c434c5"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7f9839ede2070f53e7e2f0849b9bd14748c434c5",
|
||||||
|
"reference": "7f9839ede2070f53e7e2f0849b9bd14748c434c5",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5.9"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"psr/log": "~1.0",
|
||||||
|
"symfony/config": "~2.8|~3.0",
|
||||||
|
"symfony/dependency-injection": "~2.8|~3.0",
|
||||||
|
"symfony/expression-language": "~2.8|~3.0",
|
||||||
|
"symfony/stopwatch": "~2.8|~3.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/dependency-injection": "",
|
||||||
|
"symfony/http-kernel": ""
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.1-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\EventDispatcher\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony EventDispatcher Component",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"time": "2016-06-29T05:41:56+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/http-foundation",
|
||||||
|
"version": "v3.1.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/http-foundation.git",
|
||||||
|
"reference": "6b5a3764c5b0ce1f0ec3b8be5bba969122a78cfc"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/6b5a3764c5b0ce1f0ec3b8be5bba969122a78cfc",
|
||||||
|
"reference": "6b5a3764c5b0ce1f0ec3b8be5bba969122a78cfc",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5.9",
|
||||||
|
"symfony/polyfill-mbstring": "~1.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/expression-language": "~2.8|~3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.1-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\HttpFoundation\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony HttpFoundation Component",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"time": "2016-06-29T07:02:31+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/http-kernel",
|
||||||
|
"version": "v3.1.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/http-kernel.git",
|
||||||
|
"reference": "3a1ce1829128988826739bd9dd820f3238b92d65"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/3a1ce1829128988826739bd9dd820f3238b92d65",
|
||||||
|
"reference": "3a1ce1829128988826739bd9dd820f3238b92d65",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5.9",
|
||||||
|
"psr/log": "~1.0",
|
||||||
|
"symfony/debug": "~2.8|~3.0",
|
||||||
|
"symfony/event-dispatcher": "~2.8|~3.0",
|
||||||
|
"symfony/http-foundation": "~2.8.8|~3.0.8|~3.1.2|~3.2"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/config": "<2.8"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/browser-kit": "~2.8|~3.0",
|
||||||
|
"symfony/class-loader": "~2.8|~3.0",
|
||||||
|
"symfony/config": "~2.8|~3.0",
|
||||||
|
"symfony/console": "~2.8|~3.0",
|
||||||
|
"symfony/css-selector": "~2.8|~3.0",
|
||||||
|
"symfony/dependency-injection": "~2.8|~3.0",
|
||||||
|
"symfony/dom-crawler": "~2.8|~3.0",
|
||||||
|
"symfony/expression-language": "~2.8|~3.0",
|
||||||
|
"symfony/finder": "~2.8|~3.0",
|
||||||
|
"symfony/process": "~2.8|~3.0",
|
||||||
|
"symfony/routing": "~2.8|~3.0",
|
||||||
|
"symfony/stopwatch": "~2.8|~3.0",
|
||||||
|
"symfony/templating": "~2.8|~3.0",
|
||||||
|
"symfony/translation": "~2.8|~3.0",
|
||||||
|
"symfony/var-dumper": "~2.8|~3.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"symfony/browser-kit": "",
|
||||||
|
"symfony/class-loader": "",
|
||||||
|
"symfony/config": "",
|
||||||
|
"symfony/console": "",
|
||||||
|
"symfony/dependency-injection": "",
|
||||||
|
"symfony/finder": "",
|
||||||
|
"symfony/var-dumper": ""
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.1-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\HttpKernel\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony HttpKernel Component",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"time": "2016-06-30T17:16:01+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/polyfill-mbstring",
|
||||||
|
"version": "v1.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||||
|
"reference": "dff51f72b0706335131b00a7f49606168c582594"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
|
||||||
|
"reference": "dff51f72b0706335131b00a7f49606168c582594",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-mbstring": "For best performance"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.2-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Polyfill\\Mbstring\\": ""
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"bootstrap.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nicolas Grekas",
|
||||||
|
"email": "p@tchwork.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony polyfill for the Mbstring extension",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"compatibility",
|
||||||
|
"mbstring",
|
||||||
|
"polyfill",
|
||||||
|
"portable",
|
||||||
|
"shim"
|
||||||
|
],
|
||||||
|
"time": "2016-05-18T14:26:46+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/routing",
|
||||||
|
"version": "v3.1.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/routing.git",
|
||||||
|
"reference": "22c7adc204057a0ff0b12eea2889782a5deb70a3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/routing/zipball/22c7adc204057a0ff0b12eea2889782a5deb70a3",
|
||||||
|
"reference": "22c7adc204057a0ff0b12eea2889782a5deb70a3",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5.9"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"symfony/config": "<2.8"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"doctrine/annotations": "~1.0",
|
||||||
|
"doctrine/common": "~2.2",
|
||||||
|
"psr/log": "~1.0",
|
||||||
|
"symfony/config": "~2.8|~3.0",
|
||||||
|
"symfony/expression-language": "~2.8|~3.0",
|
||||||
|
"symfony/http-foundation": "~2.8|~3.0",
|
||||||
|
"symfony/yaml": "~2.8|~3.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"doctrine/annotations": "For using the annotation loader",
|
||||||
|
"symfony/config": "For using the all-in-one router or any loader",
|
||||||
|
"symfony/dependency-injection": "For loading routes from a service",
|
||||||
|
"symfony/expression-language": "For using expression matching",
|
||||||
|
"symfony/http-foundation": "For using a Symfony Request object",
|
||||||
|
"symfony/yaml": "For using the YAML loader"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "3.1-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\Routing\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony Routing Component",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"keywords": [
|
||||||
|
"router",
|
||||||
|
"routing",
|
||||||
|
"uri",
|
||||||
|
"url"
|
||||||
|
],
|
||||||
|
"time": "2016-06-29T05:41:56+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "twig/twig",
|
||||||
|
"version": "v1.24.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/twigphp/Twig.git",
|
||||||
|
"reference": "3566d311a92aae4deec6e48682dc5a4528c4a512"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/twigphp/Twig/zipball/3566d311a92aae4deec6e48682dc5a4528c4a512",
|
||||||
|
"reference": "3566d311a92aae4deec6e48682dc5a4528c4a512",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.2.7"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/debug": "~2.7",
|
||||||
|
"symfony/phpunit-bridge": "~2.7"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.24-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Twig_": "lib/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com",
|
||||||
|
"homepage": "http://fabien.potencier.org",
|
||||||
|
"role": "Lead Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Armin Ronacher",
|
||||||
|
"email": "armin.ronacher@active-4.com",
|
||||||
|
"role": "Project Founder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Twig Team",
|
||||||
|
"homepage": "http://twig.sensiolabs.org/contributors",
|
||||||
|
"role": "Contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Twig, the flexible, fast, and secure template language for PHP",
|
||||||
|
"homepage": "http://twig.sensiolabs.org",
|
||||||
|
"keywords": [
|
||||||
|
"templating"
|
||||||
|
],
|
||||||
|
"time": "2016-05-30T09:11:59+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"packages-dev": [],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "stable",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": false,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": [],
|
||||||
|
"platform-dev": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# Don't commit this file to source control, it contains your secret settings.
|
||||||
|
|
||||||
|
contact_form_from: ~ # This is the email address that contact form correspondence will be sent from.
|
||||||
|
contact_form_from_name: ~ # This is the name that contact form correspondence will be sent from.
|
||||||
|
contact_form_target: ~ # This is the email address that contact form correspondence will be sent to.
|
||||||
|
linkedin_url: ~ # The URL of your LinkedIn profile.
|
||||||
|
twitter_url: ~ # The URL of your Twitter profile.
|
||||||
|
github_url: ~ # The URL of your GitHub profile.
|
||||||
|
blogger_url: ~ # The URL of your blog on Blogger.
|
||||||
|
blogger_atom_url: ~ # The URL of your blog's Atom feed on Blogger.
|
||||||
|
chem_name_lookup_service: ~ # The URL of the service to use to look up chemical names.
|
||||||
|
sourire_service: ~ # The URL of the Sourire molecule rendering service.
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
// Promise polyfill.
|
||||||
|
var Promise = require('es6-promise').Promise;
|
||||||
|
|
||||||
|
// Gulp itself.
|
||||||
|
var gulp = require('gulp');
|
||||||
|
|
||||||
|
// Less and CSS stuff.
|
||||||
|
var less = require('gulp-less');
|
||||||
|
var prefix = require('gulp-autoprefixer');
|
||||||
|
var minifycss = require('gulp-minify-css');
|
||||||
|
var coffee = require('gulp-coffee');
|
||||||
|
|
||||||
|
// Compile all the Less.
|
||||||
|
gulp.task('less', function () {
|
||||||
|
gulp.src(['./src/less/*.less'])
|
||||||
|
.pipe(less())
|
||||||
|
.pipe(prefix(
|
||||||
|
"last 1 version", "> 1%", "ie 8", "ie 7"
|
||||||
|
))
|
||||||
|
.pipe(minifycss()) // Minify resulting CSS.
|
||||||
|
.pipe(gulp.dest('./web/css'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// Compile all the CoffeeScript.
|
||||||
|
gulp.task('coffee', function () {
|
||||||
|
gulp.src(['./src/coffee/*.coffee'])
|
||||||
|
.pipe(coffee())
|
||||||
|
.pipe(gulp.dest('./web/js'));
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('watch', function() {
|
||||||
|
// Compile Less.
|
||||||
|
gulp.watch("./src/less/*.less", function(event) {
|
||||||
|
gulp.run('less');
|
||||||
|
});
|
||||||
|
// Compile CoffeeScript.
|
||||||
|
gulp.watch("./src/coffee/*.coffee", function(event) {
|
||||||
|
gulp.run('coffee');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('default', ['less', 'coffee']);
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "silex-base",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Basic Silex project for a simple website.",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/lambdacasserole/silex-base"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"basic",
|
||||||
|
"silex",
|
||||||
|
"simple",
|
||||||
|
"website"
|
||||||
|
],
|
||||||
|
"author": "Saul Johnson",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/lambdacasserole/silex-base/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/lambdacasserole/silex-base",
|
||||||
|
"devDependencies": {
|
||||||
|
"bower": "~1.4.1",
|
||||||
|
"es6-promise": "^3.2.1",
|
||||||
|
"gulp": "^3.8.8",
|
||||||
|
"gulp-autoprefixer": "^3.1.0",
|
||||||
|
"gulp-coffee": "^2.2.0",
|
||||||
|
"gulp-less": "^1.3.6",
|
||||||
|
"gulp-minify-css": "^1.2.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 66 KiB |
|
After Width: | Height: | Size: 80 KiB |
@@ -0,0 +1,21 @@
|
|||||||
|
blogId = "" # Your blog ID goes here.
|
||||||
|
|
||||||
|
apiKey = "" # Your API key goes here.
|
||||||
|
|
||||||
|
getUrl = "https://www.googleapis.com/blogger/v3/blogs/" + blogId + "/posts?key=" + apiKey
|
||||||
|
|
||||||
|
buildItemHtml = (item) ->
|
||||||
|
result = "<h2>" + item.title + "</h2>"
|
||||||
|
result += "<p>By <a target=\"_blank\" href=\"" + item.author.url + "\">" + item.author.displayName + "</a> "
|
||||||
|
result += "on " + new Date(item.published).toDateString() + "</p>"
|
||||||
|
result += "<p>" + item.content + "</p>"
|
||||||
|
return result
|
||||||
|
|
||||||
|
loadBlog = () ->
|
||||||
|
$.getJSON getUrl, (data) ->
|
||||||
|
target = $ ".js-blog-posts"
|
||||||
|
for item in data.items
|
||||||
|
target.append buildItemHtml(item)
|
||||||
|
|
||||||
|
$(document).ready () ->
|
||||||
|
loadBlog()
|
||||||
@@ -0,0 +1,108 @@
|
|||||||
|
@banner-giant-height: 300px;
|
||||||
|
@banner-giant-width: 480px;
|
||||||
|
|
||||||
|
html {
|
||||||
|
min-width: @banner-giant-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-divider {
|
||||||
|
height: 1px;
|
||||||
|
width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
background: rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.buffer-left {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
border-radius: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-giant {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-image: url(../images/cover_1.png);
|
||||||
|
background-size: cover;
|
||||||
|
width: 100%;
|
||||||
|
height: @banner-giant-height;
|
||||||
|
margin-top: 61px;
|
||||||
|
|
||||||
|
&-container {
|
||||||
|
height: @banner-giant-height;
|
||||||
|
width: @banner-giant-width;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-text {
|
||||||
|
height: @banner-giant-height;
|
||||||
|
width: @banner-giant-width;
|
||||||
|
text-align: center;
|
||||||
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-divider {
|
||||||
|
&-bottom {
|
||||||
|
.banner-divider();
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-top {
|
||||||
|
.banner-divider();
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-small {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-image: url(../images/cover_1.png);
|
||||||
|
background-size: cover;
|
||||||
|
width: 100%;
|
||||||
|
height: 48px;
|
||||||
|
margin-top: 45px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-giant-purple {
|
||||||
|
.banner-giant();
|
||||||
|
background-image: url(../images/cover_3.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-giant-green {
|
||||||
|
.banner-giant();
|
||||||
|
background-image: url(../images/cover_2.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-giant-orange {
|
||||||
|
.banner-giant();
|
||||||
|
background-image: url(../images/cover_4.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-giant-turquoise {
|
||||||
|
.banner-giant();
|
||||||
|
background-image: url(../images/cover_1.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.banner-giant-lavender {
|
||||||
|
.banner-giant();
|
||||||
|
background-image: url(../images/cover_5.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
.mt-plus {
|
||||||
|
margin-top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea.form-control {
|
||||||
|
height: 128px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{% block title %}{% endblock %} - Silex Base</title>
|
||||||
|
<!-- Responsive -->
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<!-- Favicon -->
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="/images/favicon/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="/images/favicon/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="/images/favicon/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/images/favicon/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="/images/favicon/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="/images/favicon/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="/images/favicon/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="/images/favicon/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/favicon/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/images/favicon/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="/images/favicon/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/images/favicon/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#ffffff">
|
||||||
|
<meta name="msapplication-TileImage" content="/images/favicon/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
<!-- Styles -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="/bower_components/bootstrap/dist/css/bootstrap.min.css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/bower_components/bootswatch/sandstone/bootstrap.min.css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/css/main.css" />
|
||||||
|
{% block styles %}{% endblock %}
|
||||||
|
<!-- Scripts -->
|
||||||
|
<script type="text/javascript" src="/bower_components/jquery/dist/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||||
|
{% block scripts %}{% endblock %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
|
||||||
|
<div class="container">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
||||||
|
<span class="sr-only">Toggle navigation</span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
<span class="icon-bar"></span>
|
||||||
|
</button>
|
||||||
|
<a class="navbar-brand" href="/">Lorem Ipsum</a>
|
||||||
|
</div>
|
||||||
|
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||||
|
<ul class="nav navbar-nav">
|
||||||
|
<li class="active"><a href="/">About</a></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Projects <span class="caret"></span></a>
|
||||||
|
<ul class="dropdown-menu" role="menu">
|
||||||
|
<li><a href="/project-1">Project 1</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li class="dropdown-header">Lorem Ipsum</li>
|
||||||
|
<li><a href="/project-2">Project 2</a></li>
|
||||||
|
<li><a href="/project-3">Project 3</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="/contact">Contact</a></li>
|
||||||
|
<li><a href="/blog">Blog</a></li>
|
||||||
|
</ul>
|
||||||
|
<ul class="nav navbar-nav navbar-right">
|
||||||
|
<li><a href="#">joe.bloggs@example.com</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
{% block banner %}
|
||||||
|
{% endblock %}
|
||||||
|
<div class="container">
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<hr />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h4>Legal</h4>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#">Terms of Use</a></li>
|
||||||
|
<li><a href="#">Privacy Policy</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h4>Lorem Ipsum</h4>
|
||||||
|
<p>
|
||||||
|
Aliquam erat volutpat. Nunc id orci quis nibh laoreet egestas. Suspendisse quis enim sapien.
|
||||||
|
Phasellus ut nunc vel diam cursus vulputate. Pellentesque nec eleifend felis. Duis quis
|
||||||
|
tincidunt sem.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h4>Communities</h4>
|
||||||
|
<a target="_blank" href="/linkedin"><img src="/images/linkedin.svg" /></a>
|
||||||
|
<a target="_blank" href="/twitter"><img class="buffer-left" src="/images/twitter.svg" /></a>
|
||||||
|
<a target="_blank" href="/github"><img class="buffer-left" src="/images/github.svg" /></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 text-muted text-center">
|
||||||
|
<small>Copyright © Joe Bloggs 2016</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{% extends "base.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}Blog{% endblock %}
|
||||||
|
|
||||||
|
{% block scripts %}
|
||||||
|
<script type="text/javascript" src=""></script>
|
||||||
|
<script type="text/javascript" src="/js/blog.js"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block banner %}
|
||||||
|
<div class="banner-giant-lavender">
|
||||||
|
<div class="banner-giant-container">
|
||||||
|
<div class="banner-giant-text">
|
||||||
|
<img src="/images/icon.png" class="logo"/>
|
||||||
|
<h3>My Blog</h3>
|
||||||
|
<p>
|
||||||
|
Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
</p>
|
||||||
|
<a class="btn btn-default" href="{{ blogger_url }}">Blogger</a>
|
||||||
|
<a class="btn btn-warning" target="_blank" href="{{ blogger_atom_url }}">Atom</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="banner-giant-divider-top"></div>
|
||||||
|
<div class="banner-giant-divider-bottom"></div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 js-blog-posts"></div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
{% extends "base.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}Contact{% endblock %}
|
||||||
|
|
||||||
|
{% block banner %}
|
||||||
|
<div class="banner-small">
|
||||||
|
<div class="banner-giant-divider-top"></div>
|
||||||
|
<div class="banner-giant-divider-bottom"></div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h1>Contact</h1>
|
||||||
|
<p>
|
||||||
|
Please use the form below to contact me.
|
||||||
|
</p>
|
||||||
|
{% if post %}
|
||||||
|
{% if success %}
|
||||||
|
<div class="alert alert-success">
|
||||||
|
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||||
|
<p><b>Thank you for your message!</b></p>
|
||||||
|
<p>
|
||||||
|
I'll get back to you as soon as I can.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-warning">
|
||||||
|
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||||
|
<p><b>Couple of problems...</b></p>
|
||||||
|
<p>
|
||||||
|
There was a problem or two with some of the information you submitted. Please correct the
|
||||||
|
following and try again:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
{% for error in errors %}
|
||||||
|
<li>
|
||||||
|
{{ error }}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form method="post">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="name">Name</label>
|
||||||
|
<input id="name" type="text" class="form-control" name="name">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="email">Email</label>
|
||||||
|
<input id="email" type="email" class="form-control" name="email">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<label for="message">Message</label>
|
||||||
|
<textarea id="message" class="form-control" name="message"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mt-plus">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<p class="pull-right">
|
||||||
|
<input type="submit" class="btn btn-primary" value="Send">
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
{% extends "base.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}Home{% endblock %}
|
||||||
|
|
||||||
|
{% block banner %}
|
||||||
|
<div class="banner-giant">
|
||||||
|
<div class="banner-giant-container">
|
||||||
|
<div class="banner-giant-text">
|
||||||
|
<img src="/images/icon.png" class="logo"/>
|
||||||
|
<h3>Lorem Ipsum</h3>
|
||||||
|
<p>
|
||||||
|
Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
</p>
|
||||||
|
<a class="btn btn-default" href="/project-1">Read more</a>
|
||||||
|
<a class="btn btn-primary" target="_blank" href="#">GitHub</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="banner-giant-divider-top"></div>
|
||||||
|
<div class="banner-giant-divider-bottom"></div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h1>Lorem Ipsum</h1>
|
||||||
|
<p>
|
||||||
|
Aliquam erat volutpat. Nunc id orci quis nibh laoreet egestas. Suspendisse quis enim sapien. Phasellus ut
|
||||||
|
nunc vel diam cursus vulputate. Pellentesque nec eleifend felis. Duis quis tincidunt sem. Phasellus sagittis
|
||||||
|
magna sed ligula ultricies, at imperdiet metus condimentum. Sed aliquam libero ac urna porta, a euismod
|
||||||
|
lorem aliquet.
|
||||||
|
</p>
|
||||||
|
<h3>Sed Lectus Diam</h3>
|
||||||
|
<div class="octocat-icecream"></div>
|
||||||
|
<p>
|
||||||
|
<i>"Duis venenatis tincidunt ullamcorper."</i>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Integer mattis posuere orci, vel iaculis augue pellentesque porttitor. Morbi vitae tortor mi. Duis maximus
|
||||||
|
euismod laoreet. Cras tempor maximus augue sed faucibus.
|
||||||
|
<p>
|
||||||
|
Donec porttitor nunc ligula, quis feugiat mi porttitor quis. Ut elementum mi sit amet finibus vulputate. Ut
|
||||||
|
vitae faucibus nisl, sed malesuada lacus. Pellentesque sit amet tortor commodo arcu facilisis ultricies.
|
||||||
|
Etiam convallis feugiat sapien, ac luctus diam pretium vitae. Duis et mi vulputate, condimentum justo ac,
|
||||||
|
tempus sem.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Etiam id laoreet dolor. Sed cursus quam a hendrerit euismod. Proin orci urna, fermentum ut ullamcorper at,
|
||||||
|
fermentum quis sapien. Donec vel dictum dui.
|
||||||
|
</p>
|
||||||
|
<h3>Fusce Mollis Elit Lectus</h3>
|
||||||
|
<p>
|
||||||
|
Aenean velit tellus, maximus vulputate ex id, bibendum venenatis purus. Nullam varius turpis ac arcu laoreet
|
||||||
|
semper. Sed mi purus, rutrum mattis sapien ac, malesuada accumsan tortor. Fusce turpis tellus, blandit ut
|
||||||
|
imperdiet ut, tempus in eros.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{% extends "base.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}Project 1{% endblock %}
|
||||||
|
|
||||||
|
{% block banner %}
|
||||||
|
<div class="banner-giant-green">
|
||||||
|
<div class="banner-giant-container">
|
||||||
|
<div class="banner-giant-text">
|
||||||
|
<img src="/images/icon.png" class="logo"/>
|
||||||
|
<h3>Project 1</h3>
|
||||||
|
<p>
|
||||||
|
Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
</p>
|
||||||
|
<a class="btn btn-default" href="#">Download</a>
|
||||||
|
<a class="btn btn-primary" target="_blank" href="#">GitHub</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="banner-giant-divider-top"></div>
|
||||||
|
<div class="banner-giant-divider-bottom"></div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h1>Project 1</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed orci in nulla ultrices porta et sed
|
||||||
|
felis. Aliquam aliquam leo nec maximus imperdiet. Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
Vestibulum diam ex, suscipit sed est vel, fringilla sodales dui. Maecenas viverra consectetur risus in
|
||||||
|
hendrerit. Sed sit amet venenatis leo. Curabitur placerat pellentesque nunc, at eleifend massa scelerisque
|
||||||
|
ac. Suspendisse potenti. Donec semper nunc non est venenatis, ac lacinia tellus placerat. Proin vel est in
|
||||||
|
erat interdum vestibulum in in orci. Suspendisse hendrerit lorem dolor, nec ornare urna elementum fringilla.
|
||||||
|
Fusce malesuada nulla at eros porttitor, et maximus ipsum tristique. Maecenas vel mi nisi. Donec mattis,
|
||||||
|
tellus a pellentesque posuere, elit elit sagittis risus, venenatis condimentum lacus nibh sed velit. Donec
|
||||||
|
vestibulum nisl a est facilisis, ultricies consectetur ipsum varius. Suspendisse molestie scelerisque velit.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{% extends "base.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}Project 2{% endblock %}
|
||||||
|
|
||||||
|
{% block banner %}
|
||||||
|
<div class="banner-giant-purple">
|
||||||
|
<div class="banner-giant-container">
|
||||||
|
<div class="banner-giant-text">
|
||||||
|
<img src="/images/icon.png" class="logo"/>
|
||||||
|
<h3>Project 2</h3>
|
||||||
|
<p>
|
||||||
|
Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
</p>
|
||||||
|
<a class="btn btn-default" href="#">Download</a>
|
||||||
|
<a class="btn btn-primary" target="_blank" href="#">GitHub</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="banner-giant-divider-top"></div>
|
||||||
|
<div class="banner-giant-divider-bottom"></div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h1>Project 2</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed orci in nulla ultrices porta et sed
|
||||||
|
felis. Aliquam aliquam leo nec maximus imperdiet. Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
Vestibulum diam ex, suscipit sed est vel, fringilla sodales dui. Maecenas viverra consectetur risus in
|
||||||
|
hendrerit. Sed sit amet venenatis leo. Curabitur placerat pellentesque nunc, at eleifend massa scelerisque
|
||||||
|
ac. Suspendisse potenti. Donec semper nunc non est venenatis, ac lacinia tellus placerat. Proin vel est in
|
||||||
|
erat interdum vestibulum in in orci. Suspendisse hendrerit lorem dolor, nec ornare urna elementum fringilla.
|
||||||
|
Fusce malesuada nulla at eros porttitor, et maximus ipsum tristique. Maecenas vel mi nisi. Donec mattis,
|
||||||
|
tellus a pellentesque posuere, elit elit sagittis risus, venenatis condimentum lacus nibh sed velit. Donec
|
||||||
|
vestibulum nisl a est facilisis, ultricies consectetur ipsum varius. Suspendisse molestie scelerisque velit.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
{% extends "base.html.twig" %}
|
||||||
|
|
||||||
|
{% block title %}Project 3{% endblock %}
|
||||||
|
|
||||||
|
{% block banner %}
|
||||||
|
<div class="banner-giant-orange">
|
||||||
|
<div class="banner-giant-container">
|
||||||
|
<div class="banner-giant-text">
|
||||||
|
<img src="/images/icon.png" class="logo"/>
|
||||||
|
<h3>Project 3</h3>
|
||||||
|
<p>
|
||||||
|
Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
</p>
|
||||||
|
<a class="btn btn-default" href="#">Download</a>
|
||||||
|
<a class="btn btn-primary" target="_blank" href="#">GitHub</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="banner-giant-divider-top"></div>
|
||||||
|
<div class="banner-giant-divider-bottom"></div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h1>Project 3</h1>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed orci in nulla ultrices porta et sed
|
||||||
|
felis. Aliquam aliquam leo nec maximus imperdiet. Suspendisse quis rhoncus felis, non vulputate est.
|
||||||
|
Vestibulum diam ex, suscipit sed est vel, fringilla sodales dui. Maecenas viverra consectetur risus in
|
||||||
|
hendrerit. Sed sit amet venenatis leo. Curabitur placerat pellentesque nunc, at eleifend massa scelerisque
|
||||||
|
ac. Suspendisse potenti. Donec semper nunc non est venenatis, ac lacinia tellus placerat. Proin vel est in
|
||||||
|
erat interdum vestibulum in in orci. Suspendisse hendrerit lorem dolor, nec ornare urna elementum fringilla.
|
||||||
|
Fusce malesuada nulla at eros porttitor, et maximus ipsum tristique. Maecenas vel mi nisi. Donec mattis,
|
||||||
|
tellus a pellentesque posuere, elit elit sagittis risus, venenatis condimentum lacus nibh sed velit. Donec
|
||||||
|
vestibulum nisl a est facilisis, ultricies consectetur ipsum varius. Suspendisse molestie scelerisque velit.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
Options -MultiViews
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
#RewriteBase /path/to/app
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteRule ^ index.php [QSA,L]
|
||||||
|
</IfModule>
|
||||||
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 848 B |
|
After Width: | Height: | Size: 776 B |
|
After Width: | Height: | Size: 828 B |
|
After Width: | Height: | Size: 901 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 858 B |
|
After Width: | Height: | Size: 890 B |
|
After Width: | Height: | Size: 901 B |
|
After Width: | Height: | Size: 946 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
||||||
|
After Width: | Height: | Size: 700 B |
|
After Width: | Height: | Size: 791 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"name": "App",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-36x36.png",
|
||||||
|
"sizes": "36x36",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "0.75"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-48x48.png",
|
||||||
|
"sizes": "48x48",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-72x72.png",
|
||||||
|
"sizes": "72x72",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-144x144.png",
|
||||||
|
"sizes": "144x144",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/android-icon-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "4.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 898 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="68.267" height="68.267" viewBox="0 0 63.999998 63.999997"><g transform="translate(5.457 -10.5) scale(.08682)"><circle r="291.429" cy="489.505" cx="305.714" fill="#fff"/><path d="M305.715 120.934a368.571 368.571 0 0 0-368.572 368.57 368.571 368.571 0 0 0 368.572 368.572 368.571 368.571 0 0 0 368.57-368.572 368.571 368.571 0 0 0-368.57-368.57zm-181 178.865l10.219.639c23.61 1.477 50.121 13.254 76.818 34.123l10.418 8.142 6.643-1.256c9.73-1.84 145.253-1.742 155.021.114 7.06 1.34 7.38 1.3 10.723-1.42 18.463-15.02 36.827-26.43 51.984-32.297 10.89-4.216 27.023-7.706 35.71-7.727l6.357-.013 2.99 6.314c4.165 8.797 8.05 22.842 9.719 35.14 1.953 14.392.897 39.453-2.277 53.981l-2.479 11.338 6.412 9.545c12.383 18.432 20.69 38.235 25.541 60.902 2.13 9.955 2.54 15.378 2.56 33.866.039 34.717-4.91 59.574-16.796 84.38-7.839 16.36-15.83 27.913-27.12 39.202-24.177 24.177-57.738 38.697-100.443 43.457-12.225 1.362-151.996 1.283-164.24-.094-58.944-6.627-100.292-32.305-122.736-76.219-18.496-36.19-24.469-88.894-14.819-130.799 4.511-19.587 15.513-43.506 27.188-59.111l4.531-6.057-1.816-8.617c-6.951-32.989-4.514-64.738 6.974-90.89l2.918-6.643zm279.735 178.86c-10.202.063-23.556 1.378-42.746 3.863-24.902 3.223-36.703 4.187-56.827 4.636-24.055.538-26.889.37-53.617-3.158-45.121-5.956-59.915-5.014-75.316 4.799-20.99 13.374-34.178 44.878-34.178 81.652 0 14.393.294 16.696 3.277 25.8 8.085 24.665 27.757 43.088 53.758 50.343 7.949 2.218 25.26 4.108 45.686 4.992 18.239.79 136.925-.384 147.568-1.459 15.335-1.548 24.64-4.028 36.426-9.709 26.66-12.85 42.583-36.608 44.273-66.06 1.037-18.066-4.516-43.769-13.369-61.885-5.475-11.206-16.416-23.067-25.52-27.666-8.395-4.241-16.3-6.23-29.415-6.149zm-185.711 29.054c5.94.096 11.905 2.756 17.619 7.979 11.793 10.778 17.227 27.036 16.226 48.55-.634 13.646-2.044 19.632-6.86 29.137-7.875 15.54-22.508 23.575-34.667 19.037-11.9-4.44-20.294-15.692-24.773-33.207-6.014-23.514.41-50.969 14.996-64.082 5.605-5.04 11.52-7.51 17.459-7.414zm171.619.281c15.404-.275 29.503 14.863 33.807 38.582 4.893 26.97-5.437 56.209-22.766 64.432-5.08 2.41-12.258 3.246-16.383 1.906-12.98-4.216-23.431-17.982-27.101-35.691-1.956-9.435-1.675-26.85.574-35.528 3.839-14.815 11.625-26.243 21.1-30.964 3.589-1.79 7.214-2.673 10.769-2.737z" fill="#1a1a1a"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="68.267" height="68.267" viewBox="0 0 64.000005 64.000004"><g transform="translate(14.458 -10.776) scale(.11883)"><circle r="231.429" cy="359.972" cx="147.623" fill="#fff"/><path d="M147.624 90.686a269.286 269.286 0 0 0-269.288 269.287 269.286 269.286 0 0 0 269.288 269.285 269.286 269.286 0 0 0 269.285-269.285A269.286 269.286 0 0 0 147.624 90.686zM29.895 205.914c4.774-.007 9.674.65 12.943 1.92 25.594 9.943 32.594 41.847 13.358 60.879-5.577 5.518-10.137 8.269-16.422 9.906-5.176 1.348-14.344 1.331-19.424-.035-8.33-2.24-16.447-8.002-21.058-14.95-8.345-12.57-8.392-29.071-.12-41.515 4.79-7.205 11.755-12.255 20.635-14.959 2.737-.833 6.375-1.241 10.088-1.246zm197.807 97.348c23.097-.02 39.76 5.748 52.16 17.984 8.816 8.7 14.24 18.94 17.775 33.55 4.034 16.674 4.046 16.942 4.338 90.89l.272 68.343h-63.899l-.273-60.533c-.262-58.063-.332-60.794-1.737-66.924-2.004-8.75-4.435-13.858-8.787-18.459-6.738-7.125-16.53-9.939-29.074-8.355-18.422 2.325-28.373 14.02-31.215 36.683-.427 3.412-.717 28.266-.717 61.653v55.935H102.64V308.11h61.067v13.845c0 7.616.238 13.845.53 13.842.294-.003 1.738-1.876 3.21-4.16 3.758-5.834 10.519-12.423 17.355-16.912 12.176-7.996 21.724-10.84 38.196-11.381 1.597-.053 3.165-.08 4.705-.082zm-229.444 4.847h63.907V514.03H-1.742V308.11z" fill="#214478"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="68.267" height="68.267" viewBox="0 0 63.999996 64.000003"><g transform="matrix(.064 0 0 .064 9.835 -2.065)"><circle r="401.429" cy="532.271" cx="346.333" fill="#fff"/><path d="M346.333 32.271a500 500 0 0 0-500 500 500 500 0 0 0 500 500 500 500 0 0 0 500-500 500 500 0 0 0-500-500zm-154.28 187.292c32.958.199 62.825 21.225 73.98 54.798l2.825 8.5.326 64.23.326 64.231 116.71.27 116.708.27 9.166 3.117c20.681 7.033 37.388 23.148 45.493 43.882 2.756 7.05 3.185 9.514 3.617 20.74.546 14.226-.55 21.889-4.467 31.21-10.131 24.106-32.424 41.373-57.47 44.513-5.284.663-48.428 1.037-119.061 1.037H269.428l.01 30.75c0 16.913.474 33.613 1.041 37.112 4.836 29.802 26.94 54.058 56.87 62.4 7.41 2.066 9.542 2.119 94.081 2.395 57.595.187 89.007.66 94 1.41 22.782 3.42 45.189 20.419 55.952 42.449 9.345 19.128 10.31 43.445 2.502 63.041-8.575 21.522-28.486 39.548-51.48 46.61l-7.474 2.292-90 .147c-49.5.08-93.862-.204-98.583-.633h-.004c-30.047-2.731-57.525-10.24-81.518-22.273-24.375-12.225-41.83-25.036-62.897-46.163-37.341-37.447-57.735-77.594-66.12-130.156-1.587-9.94-1.77-25.473-2.124-179.88-.394-172.175-.234-181.448 3.336-192.239 8.157-24.658 27.535-43.609 51.914-50.77 7.743-2.274 15.514-3.336 23.12-3.29z" fill="#37abc8"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,144 @@
|
|||||||
|
<?php
|
||||||
|
// web/index.php
|
||||||
|
require_once __DIR__.'/../vendor/autoload.php';
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||||
|
use Intervention\Image\ImageManagerStatic as Image;
|
||||||
|
|
||||||
|
Image::configure(array('driver' => 'gd'));
|
||||||
|
|
||||||
|
$config = Spyc::YAMLLoad(__DIR__.'/../config/config.yaml'); // Load config.
|
||||||
|
|
||||||
|
$app = new Silex\Application();
|
||||||
|
|
||||||
|
// Uncomment the line below while debugging your app.
|
||||||
|
$app['debug'] = true;
|
||||||
|
|
||||||
|
// Twig initialization.
|
||||||
|
$loader = new Twig_Loader_Filesystem(__DIR__.'/../templates');
|
||||||
|
$twig = new Twig_Environment($loader, array(
|
||||||
|
'cache' => __DIR__.'/../cache',
|
||||||
|
));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Route actions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$app->get('/', function () use ($twig, $config) {
|
||||||
|
return $twig->render('index.html.twig', $config);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/contact', function () use ($twig, $config) {
|
||||||
|
return $twig->render('contact.html.twig', $config);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->post('/contact', function () use ($twig, $config) {
|
||||||
|
// Collect form fields.
|
||||||
|
$name = $_POST['name'];
|
||||||
|
$email = $_POST['email'];
|
||||||
|
$message = $_POST['message'];
|
||||||
|
|
||||||
|
// Validate form.
|
||||||
|
$errors = [];
|
||||||
|
if (strlen($name) < 2) {
|
||||||
|
$errors[] = 'The name you provide needs to 2 or more characters in length.';
|
||||||
|
}
|
||||||
|
if (strlen($message) < 30) {
|
||||||
|
$errors[] = 'The message you submit needs to be 30 or more characters in length.';
|
||||||
|
}
|
||||||
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
$errors[] = 'The email address you provided is invalid.';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Send message if no errors.
|
||||||
|
if (sizeof($errors) == 0) {
|
||||||
|
|
||||||
|
// Prepare headers.
|
||||||
|
$headers = 'MIME-Version: 1.0' . "\r\n";
|
||||||
|
$headers .= 'From: ' . $config['contact_form_from_name'] . ' <' . $config['contact_form_from'] . '>' . "\r\n";
|
||||||
|
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
|
||||||
|
|
||||||
|
mail($config['contact_form_target'], 'Website contact', "Name: $name\r\nWebsite: $website\r\nEmail: $email\r\nMessage: $message", $headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Render contact page with success/error message.
|
||||||
|
$vars = array_merge($config, array(
|
||||||
|
'success' => sizeof($errors) == 0,
|
||||||
|
'errors' => $errors,
|
||||||
|
'post' => $_POST
|
||||||
|
));
|
||||||
|
return $twig->render('contact.html.twig', $vars);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/linkedin', function () use ($twig, $config) {
|
||||||
|
header('Location: ' . $config['linkedin_url']);
|
||||||
|
die();
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/twitter', function () use ($twig, $config) {
|
||||||
|
header('Location: ' . $config['twitter_url']);
|
||||||
|
die();
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/github', function () use ($twig, $config) {
|
||||||
|
header('Location: ' . $config['github_url']);
|
||||||
|
die();
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/project-1', function () use ($twig, $config) {
|
||||||
|
return $twig->render('project-1.html.twig', $config);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/project-2', function () use ($twig, $config) {
|
||||||
|
return $twig->render('project-2.html.twig', $config);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/project-3', function () use ($twig, $config) {
|
||||||
|
return $twig->render('project-3.html.twig', $config);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/blog', function () use ($twig, $config) {
|
||||||
|
return $twig->render('blog.html.twig', $config);
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/api/smiles/{width}/{height}/{bgcolor}/{fgcolor}/{smiles}', function ($width, $height, $bgcolor, $fgcolor, $smiles) use ($twig, $config) {
|
||||||
|
|
||||||
|
// Set up background.
|
||||||
|
$img = Image::canvas($width, $height, "#$bgcolor");
|
||||||
|
|
||||||
|
// Proxy into Sourire for molecule render.
|
||||||
|
$molecule = Image::make('http://localhost:8080/molecule/' . urlencode($smiles));
|
||||||
|
|
||||||
|
// Colorize molecule.
|
||||||
|
list($r, $g, $b) = sscanf($fgcolor, "%02x%02x%02x");
|
||||||
|
$n = 100 / 255;
|
||||||
|
$molecule->colorize($n * $r, $n * $g, $n * $b);
|
||||||
|
|
||||||
|
// Center molecule on background.
|
||||||
|
$img->insert($molecule, 'center');
|
||||||
|
|
||||||
|
// Send image out
|
||||||
|
echo $img->response();
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->get('/api/name/{width}/{height}/{bgcolor}/{fgcolor}/{name}', function ($width, $height, $bgcolor, $fgcolor, $name) use ($app, $twig, $config) {
|
||||||
|
|
||||||
|
// Convert chemical name to SMILES if we can.
|
||||||
|
$client = new GuzzleHttp\Client(['verify' => false, 'exceptions'=>false]);
|
||||||
|
$res = $client->request('GET', str_replace('$name', $name, $config['chem_name_lookup_service']));
|
||||||
|
|
||||||
|
if ($res->getStatusCode() == 200) {
|
||||||
|
|
||||||
|
// Forward to SMILES route.
|
||||||
|
$smiles = $res->getBody();
|
||||||
|
$smilesRequest = Request::create("/api/smiles/$width/$height/$bgcolor/$fgcolor}/$smiles", 'GET');
|
||||||
|
return $app->handle($smilesRequest, HttpKernelInterface::SUB_REQUEST);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Invalid chemical name.
|
||||||
|
$app->abort(404, "Chemical name could not be converted to SMILES.");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$app->run();
|
||||||