geniv / nette-front-loader
Front loader extension for Nette Framework
Installs: 1 138
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/geniv/nette-front-loader
Requires
- php: >=7.0
- latte/latte: >=2.4
- nette/application: >=2.4
- nette/utils: >=2.4
- tracy/tracy: >=2.4
README
for CSS & JS loader
Installation
$ composer require geniv/nette-front-loader
or
"geniv/nette-front-loader": "^1.2"
require:
"php": ">=7.0", "nette/application": ">=2.4", "nette/utils": ">=2.4", "latte/latte": ">=2.4", "tracy/tracy": ">=2.4"
Include in application
neon configure:
# front loader frontLoader: # debugger: false # productionMode: true # developmentMode: false dir: %wwwDir% css: # files without extension - css/global - static:css/global1 - "https://fonts.googleapis.com" - "//fonts.googleapis.com" front: # source - css/styles1 - static:css/styles2 js: # files without extension - js/global - static:js/global1 - "https://cdnjs.com" - "//cdnjs.com" front: # source - js/script1 - static:js/script2 tagDev: '.' tagProd: '.min.' envDev: 'development' envProd: 'production' modifyTimeVar: 'mt'
if productionMode is not defined or set null then loader will be automatic detect production mode
developmet or stage environment is development (tagDev) settings (full css).
production environment is production (tagProd) settings (minimal css).
compile block work only developmentMode, other accept: productionMode.
Setting for load css/js file without change environment name begin keyword: static: like http.
each mode states:
-
development:
- productionMode: false
- developmentMode: true
-
stage:
- productionMode: false
- developmentMode: false
-
production:
- productionMode: true
- developmentMode: false
neon configure extension:
extensions: frontLoader: FrontLoader\Bridges\Nette\Extension
usage:
use FrontLoader\IFrontLoader; protected function createComponentFrontLoader(IFrontLoader $frontLoader): IFrontLoader { //$frontLoader->setFormat('css', ' <link rel="stylesheet" href="%s">'); //$frontLoader->setFormat('js', ' <script type="text/javascript" src="%s"></script>'); return $frontLoader; }
@layout.latte
for CSS
{block head} {control frontLoader:css} {/block}
or defined source
{block head} {control frontLoader:css 'front'} {/block}
for JS
{block scripts} {control frontLoader:js} {/block}
or defined source
{block scripts} {control frontLoader:js 'front'} {/block}
other presenter *.latte:
{block title}...{/block} {block description}...{/block} {block slug}...{/block} {block content} ... {/block} {block scripts} {include parent} <script src="source.js"></script> {/block} {block head} {include parent} <link rel="stylesheet" href="source.css"> {/block}