diff --git a/docs/Deployment.md b/docs/Deployment.md index e69de29..f9d920e 100644 --- a/docs/Deployment.md +++ b/docs/Deployment.md @@ -0,0 +1,14 @@ +# Deployment + +Here is an example on how you can deploy with an envoy tasks. Of course make sure to add any other relevant operations for your server setup. Such as permissions. + +```php +@task('deploy') +git pull origin master +composer install --optimize-autoloader --no-dev +rm {{ $projectPath }}/public/live +php artisan lucent:schemas +php artisan lucent:livelink +php artisan generate:static +@endtask +``` \ No newline at end of file diff --git a/docs/Records.md b/docs/Records.md deleted file mode 100644 index e69de29..0000000 diff --git a/docs/Static Generator.md b/docs/Static Generator.md index e69de29..222a9df 100644 --- a/docs/Static Generator.md +++ b/docs/Static Generator.md @@ -0,0 +1,74 @@ +# Static Generator + +To generate the static content of the website, lucent provides a helper class. + + +## Laravel Command + +Just create a command and name it as you like. Make sure to inject the StaticGenerator class. + +```php +public function __construct( + public StaticGenerator $staticGenerator, +) { + parent::__construct(); +} +``` + +## Redirect command + +There are cases which is useful to create a redirect like when you have a multilingual website: + +```php +$this->staticGenerator->run(function ($writer) { + $writer->createRedirect("/", "/el"); +}); +``` + +## The Writer save command + +In order to create an html file, you have to use the writer's save command + +The first argument is the url and the second is the rendered HTML. That's where the page classes do come handy. + +```php +$this->staticGenerator->run(function ($writer) { + $writer->save("/", $this->ctx->render("homepage")); + $writer->save("/about", $this->ctx->render("about")); +}); +``` + +## Storage and Permissions + +All the generated html is stored on `storage/lucent/live` +In order to make it accessible you have to create symlink: + +```bash +php artisan lucent:livelink +``` + +Now your static website is accessible in http://localhost:8000/live + +But it would not be nice to have the **live** prefix everywhere. That's why you need to make the following tweak in the nginx vhost + +```nginxconf +location / { + try_files /live$uri/index.html /live$uri $uri $uri/ /index.php?$query_string; +} +``` + +## Build from the Lucent UI + +In your lucent.php config file you can define your command that is used to generate the static files: + +```php +"generateCommand" => "generate:static" +``` +That way, the users will be able to initiate the build command through the user interface. + + + + + + +