diff --git a/bin/grav b/bin/grav
index 550767f9d..faa8846f7 100755
--- a/bin/grav
+++ b/bin/grav
@@ -41,8 +41,5 @@ $app->addCommands(array(
new \Grav\Console\Cli\ClearCacheCommand(),
new \Grav\Console\Cli\BackupCommand(),
new \Grav\Console\Cli\NewProjectCommand(),
- new \Grav\Console\Cli\NewUserCommand(),
- new \Grav\Console\Cli\DevTools\NewPluginCommand(),
- new \Grav\Console\Cli\DevTools\NewThemeCommand(),
));
$app->run();
diff --git a/system/src/Grav/Console/Cli/DevTools/DevToolsCommand.php b/system/src/Grav/Console/Cli/DevTools/DevToolsCommand.php
deleted file mode 100644
index dbdf1c8ff..000000000
--- a/system/src/Grav/Console/Cli/DevTools/DevToolsCommand.php
+++ /dev/null
@@ -1,192 +0,0 @@
-grav = Grav::instance(array('loader' => $autoload));
- $this->grav['config']->init();
- $this->grav['uri']->init();
- $this->grav['streams'];
- $this->inflector = $this->grav['inflector'];
- $this->locator = $this->grav['locator'];
- $this->twig = new Twig($this->grav);
- $this->gpm = new GPM(true);
-
- //Add `theme://` to prevent fail
- $this->locator->addPath('theme', '', []);
- }
-
- /**
- * Copies the component type and renames accordingly
- */
- protected function createComponent()
- {
- $name = $this->component['name'];
- $folderName = strtolower($this->inflector->hyphenize($name));
- $type = $this->component['type'];
-
- $template = $this->component['template'];
- $templateFolder = __DIR__ . '/components/' . $type . DS . $template;
- $componentFolder = $this->locator->findResource($type . 's://') . DS . $folderName;
-
- //Copy All files to component folder
- try {
- Folder::copy($templateFolder, $componentFolder);
- } catch (\Exception $e) {
- $this->output->writeln("" . $e->getMessage() . "");
- return false;
- }
-
- //Add Twig vars and templates then initialize
- $this->twig->twig_vars['component'] = $this->component;
- $this->twig->twig_paths[] = $templateFolder;
- $this->twig->init();
-
- //Get all templates of component then process each with twig and save
- $templates = Folder::all($componentFolder);
-
- try {
- foreach($templates as $templateFile) {
- if (Utils::endsWith($templateFile, '.twig') && !Utils::endsWith($templateFile, '.html.twig')) {
- $content = $this->twig->processTemplate($templateFile);
- $file = File::instance($componentFolder . DS . str_replace('.twig', '', $templateFile));
- $file->content($content);
- $file->save();
-
- //Delete twig template
- $file = File::instance($componentFolder . DS . $templateFile);
- $file->delete();
- }
- }
- } catch (\Exception $e) {
- $this->output->writeln("" . $e->getMessage() . "");
- $this->output->writeln("Rolling back...");
- Folder::delete($componentFolder);
- $this->output->writeln($type . "creation failed!");
- return false;
- }
-
- rename($componentFolder . DS . $type . '.php', $componentFolder . DS . $this->inflector->hyphenize($name) . '.php');
- rename($componentFolder . DS . $type . '.yaml', $componentFolder . DS . $this->inflector->hyphenize($name) . '.yaml');
-
- $this->output->writeln('');
- $this->output->writeln('SUCCESS ' . $type . ' ' . $name . ' -> Created Successfully');
- $this->output->writeln('');
- $this->output->writeln('Path: ' . $componentFolder . '');
- $this->output->writeln('');
- }
-
- /**
- * Iterate through all options and validate
- */
- protected function validateOptions()
- {
- foreach (array_filter($this->options) as $type => $value) {
- $this->validate($type, $value);
- }
- }
-
- /**
- * @param $type
- * @param $value
- * @param string $extra
- *
- * @return mixed
- */
- protected function validate($type, $value, $extra = '')
- {
- switch ($type) {
- case 'name':
- //Check If name
- if ($value == null || trim($value) == '') {
- throw new \RuntimeException('Name cannot be empty');
- }
- if (false != $this->gpm->findPackage($value)) {
- throw new \RuntimeException('Package name exists in GPM');
- }
-
- break;
-
- case 'description':
- if($value == null || trim($value) == '') {
- throw new \RuntimeException('Description cannot be empty');
- }
-
- break;
-
- case 'developer':
- if ($value === null || trim($value) == '') {
- throw new \RuntimeException('Developer\'s Name cannot be empty');
- }
-
- break;
-
- case 'email':
- if (!preg_match('/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/', $value)) {
- throw new \RuntimeException('Not a valid email address');
- }
-
- break;
- }
-
- return $value;
- }
-}
diff --git a/system/src/Grav/Console/Cli/DevTools/NewPluginCommand.php b/system/src/Grav/Console/Cli/DevTools/NewPluginCommand.php
deleted file mode 100644
index 8a0a47510..000000000
--- a/system/src/Grav/Console/Cli/DevTools/NewPluginCommand.php
+++ /dev/null
@@ -1,129 +0,0 @@
-setName('new-plugin')
- ->setAliases(['newplugin'])
- ->addOption(
- 'name',
- 'pn',
- InputOption::VALUE_OPTIONAL,
- 'The name of your new Grav plugin'
- )
- ->addOption(
- 'description',
- 'd',
- InputOption::VALUE_OPTIONAL,
- 'A description of your new Grav plugin'
- )
- ->addOption(
- 'developer',
- 'dv',
- InputOption::VALUE_OPTIONAL,
- 'The name/username of the developer'
- )
- ->addOption(
- 'email',
- 'e',
- InputOption::VALUE_OPTIONAL,
- 'The developer\'s email'
- )
- ->setDescription('Creates a new Grav plugin with the basic required files')
- ->setHelp('The new-plugin command creates a new Grav instance and performs the creation of a plugin.');
- }
-
- /**
- * @return int|null|void
- */
- protected function serve()
- {
- $this->init();
-
- /**
- * @var array DevToolsCommand $component
- */
- $this->component['type'] = 'plugin';
- $this->component['template'] = 'blank';
- $this->component['version'] = '0.1.0'; // @todo add optional non prompting version argument
-
- $this->options = [
- 'name' => $this->input->getOption('name'),
- 'description' => $this->input->getOption('description'),
- 'author' => [
- 'name' => $this->input->getOption('developer'),
- 'email' => $this->input->getOption('email')
- ]
- ];
-
- $this->validateOptions();
-
- $this->component = array_replace($this->component, $this->options);
-
- $helper = $this->getHelper('question');
-
- if (!$this->options['name']) {
- $question = new Question('Enter Plugin Name: ');
- $question->setValidator(function ($value) {
- return $this->validate('name', $value);
- });
-
- $this->component['name'] = $helper->ask($this->input, $this->output, $question);
- }
-
- if (!$this->options['description']) {
- $question = new Question('Enter Plugin Description: ');
- $question->setValidator(function ($value) {
- return $this->validate('description', $value);
- });
-
- $this->component['description'] = $helper->ask($this->input, $this->output, $question);
- }
-
- if (!$this->options['author']['name']) {
- $question = new Question('Enter Developer Name: ');
- $question->setValidator(function ($value) {
- return $this->validate('developer', $value);
- });
-
- $this->component['author']['name'] = $helper->ask($this->input, $this->output, $question);
- }
-
- if (!$this->options['author']['email']) {
- $question = new Question('Enter Developer Email: ');
- $question->setValidator(function ($value) {
- return $this->validate('email', $value);
- });
-
- $this->component['author']['email'] = $helper->ask($this->input, $this->output, $question);
- }
-
- $this->component['template'] = 'blank';
-
- $this->createComponent();
- }
-
-}
diff --git a/system/src/Grav/Console/Cli/DevTools/NewThemeCommand.php b/system/src/Grav/Console/Cli/DevTools/NewThemeCommand.php
deleted file mode 100644
index 10e76ad73..000000000
--- a/system/src/Grav/Console/Cli/DevTools/NewThemeCommand.php
+++ /dev/null
@@ -1,145 +0,0 @@
-setName('new-theme')
- ->setAliases(['newtheme'])
- ->addOption(
- 'name',
- 'pn',
- InputOption::VALUE_OPTIONAL,
- 'The name of your new Grav theme'
- )
- ->addOption(
- 'description',
- 'd',
- InputOption::VALUE_OPTIONAL,
- 'A description of your new Grav theme'
- )
- ->addOption(
- 'developer',
- 'dv',
- InputOption::VALUE_OPTIONAL,
- 'The name/username of the developer'
- )
- ->addOption(
- 'email',
- 'e',
- InputOption::VALUE_OPTIONAL,
- 'The developer\'s email'
- )
- ->setDescription('Creates a new Grav theme with the basic required files')
- ->setHelp('The new-theme command creates a new Grav instance and performs the creation of a theme.');
- }
-
- /**
- * @return int|null|void
- */
- protected function serve()
- {
- $this->init();
-
- /**
- * @var array DevToolsCommand $component
- */
- $this->component['type'] = 'theme';
- $this->component['template'] = 'blank';
- $this->component['version'] = '0.1.0'; // @todo add optional non prompting version argument
-
- $this->options = [
- 'name' => $this->input->getOption('name'),
- 'description' => $this->input->getOption('description'),
- 'author' => [
- 'name' => $this->input->getOption('developer'),
- 'email' => $this->input->getOption('email')
- ]
- ];
-
- $this->validateOptions();
-
- $this->component = array_replace($this->component, $this->options);
-
- $helper = $this->getHelper('question');
-
- if (!$this->options['name']) {
- $question = new Question('Enter Theme Name: ');
- $question->setValidator(function ($value) {
- return $this->validate('name', $value);
- });
-
- $this->component['name'] = $helper->ask($this->input, $this->output, $question);
- }
-
- if (!$this->options['description']) {
- $question = new Question('Enter Theme Description: ');
- $question->setValidator(function ($value) {
- return $this->validate('description', $value);
- });
-
- $this->component['description'] = $helper->ask($this->input, $this->output, $question);
- }
-
- if (!$this->options['author']['name']) {
- $question = new Question('Enter Developer Name: ');
- $question->setValidator(function ($value) {
- return $this->validate('developer', $value);
- });
-
- $this->component['author']['name'] = $helper->ask($this->input, $this->output, $question);
- }
-
- if (!$this->options['author']['email']) {
- $question = new Question('Enter Developer Email: ');
- $question->setValidator(function ($value) {
- return $this->validate('email', $value);
- });
-
- $this->component['author']['email'] = $helper->ask($this->input, $this->output, $question);
- }
-
- $question = new ChoiceQuestion(
- 'Please choose a template type',
- array('pure-blank', 'inheritence')
- );
- $this->component['template'] = $helper->ask($this->input, $this->output, $question);
-
- if ($this->component['template'] == 'inheritence') {
- $themes = $this->gpm->getInstalledThemes();
- $installedThemes = [];
- foreach($themes as $key => $theme) {
- array_push($installedThemes, $key);
- }
- $question = new ChoiceQuestion(
- 'Please choose a theme to extend: ',
- $installedThemes
- );
- $this->component['extends'] = $helper->ask($this->input, $this->output, $question);
- }
- $this->createComponent();
- }
-
-}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/CHANGELOG.md.twig b/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/CHANGELOG.md.twig
deleted file mode 100644
index 973fb2766..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/CHANGELOG.md.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-# v0.1.0
-## {{ "now"|date("m/d/Y") }}
-
-1. [](#new)
- * ChangeLog started...
diff --git a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/LICENSE.twig b/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/LICENSE.twig
deleted file mode 100644
index 6f88097cd..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/LICENSE.twig
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) {{ "now"|date("Y") }} {{ component.author.name }}
-
-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.
diff --git a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/README.md.twig b/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/README.md.twig
deleted file mode 100644
index 56a02db62..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/README.md.twig
+++ /dev/null
@@ -1,7 +0,0 @@
-# {{ component.name|titleize }} Plugin
-
-The **{{ component.name|titleize }}** Plugin is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this plugin.
-
-## Description
-
-{{ component.description }}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/blueprints.yaml.twig b/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/blueprints.yaml.twig
deleted file mode 100644
index ff985869e..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/blueprints.yaml.twig
+++ /dev/null
@@ -1,31 +0,0 @@
-name: {{ component.name|titleize }}
-version: 0.1.0
-description: {{ component.description }}
-icon: plug
-author:
- name: {{ component.author.name }}
- email: {{ component.author.email }}
-homepage: https://github.com/{{ component.author.name|hyphenize }}/grav-plugin-{{ component.name|hyphenize }}
-demo: http://demo.yoursite.com
-keywords: grav, plugin, etc
-bugs: https://github.com/{{ component.author.name|hyphenize }}/grav-plugin-{{ component.name|hyphenize }}/issues
-readme: https://github.com/{{ component.author.name|hyphenize }}/grav-plugin-{{ component.name|hyphenize }}/blob/develop/README.md
-license: MIT
-
-form:
- validation: strict
- fields:
- enabled:
- type: toggle
- label: Plugin status
- highlight: 1
- default: 0
- options:
- 1: Enabled
- 0: Disabled
- validate:
- type: bool
- text_var:
- type: text
- label: Text Variable
- help: Text to add to the top of a page
diff --git a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/plugin.php.twig b/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/plugin.php.twig
deleted file mode 100644
index 662724518..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/plugin.php.twig
+++ /dev/null
@@ -1,63 +0,0 @@
- ['onPluginsInitialized', 0]
- ];
- }
-
- /**
- * Initialize the plugin
- */
- public function onPluginsInitialized()
- {
- // Don't proceed if we are in the admin plugin
- if ($this->isAdmin()) {
- return;
- }
-
- // Enable the main event we are interested in
- $this->enable([
- 'onPageContentRaw' => ['onPageContentRaw', 0]
- ]);
- }
-
- /**
- * Do some work for this event, full details of events can be found
- * on the learn site: http://learn.getgrav.org/plugins/event-hooks
- *
- * @param Event $e
- */
- public function onPageContentRaw(Event $e)
- {
- // Get a variable from the plugin configuration
- $text = $this->grav['config']->get('plugins.{{ component.name|hyphenize }}.text_var');
-
- // Get the current raw content
- $content = $e['page']->getRawContent();
-
- // Prepend the output with the custom text and set back on the page
- $e['page']->setRawContent($text . "\n\n" . $content);
- }
-}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/plugin.yaml.twig b/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/plugin.yaml.twig
deleted file mode 100644
index 55e2f2ed7..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/plugin/blank/plugin.yaml.twig
+++ /dev/null
@@ -1,2 +0,0 @@
-enabled: true
-text_var: Custom Text added by the **{{ component.name|titleize }}** plugin (disable plugin to remove)
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/CHANGELOG.md.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/CHANGELOG.md.twig
deleted file mode 100644
index 973fb2766..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/CHANGELOG.md.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-# v0.1.0
-## {{ "now"|date("m/d/Y") }}
-
-1. [](#new)
- * ChangeLog started...
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/LICENSE.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/LICENSE.twig
deleted file mode 100644
index 6f88097cd..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/LICENSE.twig
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) {{ "now"|date("Y") }} {{ component.author.name }}
-
-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.
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/README.md.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/README.md.twig
deleted file mode 100644
index e4ff0fd9a..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/README.md.twig
+++ /dev/null
@@ -1,7 +0,0 @@
-# {{ component.name|titleize }} Plugin
-
-The **{{ component.name|titleize }}** Theme is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this theme.
-
-## Description
-
-{{ component.description }}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/blueprints.yaml.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/blueprints.yaml.twig
deleted file mode 100644
index 78c58b11c..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/blueprints.yaml.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-name: {{ component.name|titleize }}
-version: 0.1.0
-description: {{ component.description }}
-icon: rebel
-author:
- name: {{ component.author.name }}
- email: {{ component.author.email }}
-homepage: https://github.com/{{ component.author.name|hyphenize }}/grav-theme-{{ component.name|hyphenize }}
-demo: http://demo.yoursite.com
-keywords: grav, theme, etc
-bugs: https://github.com/{{ component.author.name|hyphenize }}/grav-theme-{{ component.name|hyphenize }}/issues
-readme: https://github.com/{{ component.author.name|hyphenize }}/grav-theme-{{ component.name|hyphenize }}/blob/develop/README.md
-license: MIT
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/css/.gitkeep b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/css/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/js/.gitkeep b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/js/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/screenshot.jpg b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/screenshot.jpg
deleted file mode 100644
index e37871b43..000000000
Binary files a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/screenshot.jpg and /dev/null differ
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/templates/.gitkeep b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/templates/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/theme.php.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/theme.php.twig
deleted file mode 100644
index 9bdfe8a59..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/inheritence/theme.php.twig
+++ /dev/null
@@ -1,9 +0,0 @@
- ul > li > a {
- border-radius: 2px;
-}
-
-/*Active dropdown nav item */
-.main-nav ul li:hover > a {
- background-color: #175E91;
-}
-
-/* Selected Dropdown nav item */
-.main-nav ul li.selected > a {
- background-color: #fff;
- color: #175E91;
-}
-
-/* Dropdown CSS */
-.main-nav ul li {position: relative;}
-
-.main-nav ul li ul {
- position: absolute;
- background-color: #1F8DD6;
- min-width: 100%;
- text-align: left;
- z-index: 999;
-
- display: none;
-}
-.main-nav ul li ul li {
- display: block;
-}
-
-/* Dropdown CSS */
-.main-nav ul li ul ul {
- left: 100%;
- top: 0;
-}
-
-/* Active on Hover */
-.main-nav li:hover > ul {
- display: block;
-}
-
-/* Child Indicator */
-.main-nav .has-children > a {
- padding-right: 30px;
-}
-.main-nav .has-children > a:after {
- font-family: FontAwesome;
- content: '\f107';
- position: absolute;
- display: inline-block;
- right: 8px;
- top: 0;
-}
-
-.main-nav .has-children .has-children > a:after {
- content: '\f105';
-}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/fonts/.gitkeep b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/fonts/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/images/logo.png b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/images/logo.png
deleted file mode 100644
index 64be1a963..000000000
Binary files a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/images/logo.png and /dev/null differ
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/js/.gitkeep b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/js/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/screenshot.jpg b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/screenshot.jpg
deleted file mode 100644
index e37871b43..000000000
Binary files a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/screenshot.jpg and /dev/null differ
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/default.html.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/default.html.twig
deleted file mode 100644
index 4dd67b693..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/default.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-{% extends 'partials/base.html.twig' %}
-
-{% block content %}
- {{ page.content }}
-{% endblock %}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/error.html.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/error.html.twig
deleted file mode 100644
index 31117fe41..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/error.html.twig
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends 'partials/base.html.twig' %}
-
-{% block content %}
-
-
Errror!
- {{ page.content }}
-
-{% endblock %}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/base.html.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/base.html.twig
deleted file mode 100644
index 858ad9b7e..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/base.html.twig
+++ /dev/null
@@ -1,68 +0,0 @@
-{% set theme_config = attribute(config.themes, config.system.pages.theme) %}
-
-
-
-{% block head %}
-
- {% if header.title %}{{ header.title|e('html') }} | {% endif %}{{ site.title|e('html') }}
-
-
-
- {% include 'partials/metadata.html.twig' %}
-
-
-
-
- {% block stylesheets %}
- {% do assets.addCss('http://yui.yahooapis.com/pure/0.6.0/pure-min.css', 100) %}
- {% do assets.addCss('https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css', 99) %}
- {% do assets.addCss('theme://css/custom.css', 98) %}
- {% endblock %}
- {{ assets.css() }}
-
- {% block javascripts %}
- {% do assets.addJs('jquery', 100) %}
- {% endblock %}
- {{ assets.js() }}
-
-{% endblock head%}
-
-
-
-{% block header %}
-
-{% endblock %}
-
-{% block body %}
-
-
- {% block content %}{% endblock %}
-
-
-{% endblock %}
-
-{% block footer %}
-
-{% endblock %}
-
-{% block bottom %}
- {{ assets.js('bottom') }}
-{% endblock %}
-
-
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/header.html.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/header.html.twig
deleted file mode 100644
index 3ea12975a..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/header.html.twig
+++ /dev/null
@@ -1,23 +0,0 @@
-
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/metadata.html.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/metadata.html.twig
deleted file mode 100644
index 2f08a0e5a..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/metadata.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% for meta in page.metadata %}
-
-{% endfor %}
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/navigation.html.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/navigation.html.twig
deleted file mode 100644
index fa4b71fd4..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/templates/partials/navigation.html.twig
+++ /dev/null
@@ -1,48 +0,0 @@
-{% macro loop(page) %}
- {% for p in page.children.visible %}
- {% set current_page = (p.active or p.activeChild) ? 'selected' : '' %}
- {% if p.children.visible.count > 0 %}
-
-
- {% if p.header.icon %}{% endif %}
- {{ p.menu }}
-
-
-
- {% else %}
-
-
- {% if p.header.icon %}{% endif %}
- {{ p.menu }}
-
-
- {% endif %}
- {% endfor %}
-{% endmacro %}
-
-
-
diff --git a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/theme.php.twig b/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/theme.php.twig
deleted file mode 100644
index 9bdfe8a59..000000000
--- a/system/src/Grav/Console/Cli/DevTools/components/theme/pure-blank/theme.php.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-