public function register()
 {
     $this->app->singleton('editor', function ($app) {
         $config = $app->make('site')->getSite()->getConfigRepository();
         $styles = $config->get('editor.ckeditor4.styles', array());
         $pluginManager = new PluginManager();
         $pluginManager->selectMultiple($config->get('editor.ckeditor4.plugins.selected', array()));
         $this->registerCkeditorPlugins($pluginManager);
         $this->registerCorePlugins($pluginManager);
         $editor = new CkeditorEditor($config, $pluginManager, $styles);
         $editor->setToken($app->make('token')->generate('editor'));
         $filePermission = FilePermissions::getGlobal();
         $taskPermission = new TaskPermission();
         $editor->setAllowFileManager($filePermission->canAccessFileManager() && $config->get('editor.concrete.enable_filemanager'));
         $editor->setAllowSitemap($taskPermission->canAccessSitemap() && $config->get('editor.concrete.enable_sitemap'));
         return $editor;
     });
 }