Fix keylighter version switcher

This commit is contained in:
Kacper Donat 2020-04-12 22:46:16 +02:00
parent 3d0de63540
commit 2c5428c828
6 changed files with 44 additions and 75 deletions

View File

@ -8,7 +8,6 @@
"ext-json": "*",
"ext-curl": "*",
"ext-zip": "*",
"kadet/keylighter": "dev-master",
"league/commonmark": "^1.3",
"sensio/framework-extra-bundle": "^5.5",
"symfony/asset": "5.0.*",

63
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "21e44e8aa90d4d7ae44c34fdfdee4f2c",
"content-hash": "ff5ad5d6a23af043f032470a0f69507e",
"packages": [
{
"name": "doctrine/annotations",
@ -1228,59 +1228,6 @@
],
"time": "2014-01-12T16:20:24+00:00"
},
{
"name": "kadet/keylighter",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/kadet1090/KeyLighter.git",
"reference": "f3f2804ba69766681f8df1887f8e7d58a5504642"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kadet1090/KeyLighter/zipball/f3f2804ba69766681f8df1887f8e7d58a5504642",
"reference": "f3f2804ba69766681f8df1887f8e7d58a5504642",
"shasum": ""
},
"require": {
"php": "^7.1.3"
},
"require-dev": {
"easybook/geshi": "v1.0.8.19",
"ext-json": "*",
"phpunit/phpunit": "^7.0",
"squizlabs/php_codesniffer": "^3.5",
"symfony/console": "^4.4",
"symfony/var-exporter": "^4.4"
},
"suggest": {
"symfony/console": "Allows usage of keylighters CLI utility."
},
"bin": [
"bin/keylighter"
],
"type": "library",
"autoload": {
"psr-4": {
"Kadet\\Highlighter\\": "."
},
"files": [
"./functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kacper Donat",
"email": "contact@kadet.net"
}
],
"description": "Yet another syntax highlighter for PHP",
"time": "2020-04-09T07:40:39+00:00"
},
{
"name": "league/commonmark",
"version": "1.3.3",
@ -4702,16 +4649,16 @@
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"kadet/keylighter": 20
},
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
"php": "^7.2.5",
"ext-ctype": "*",
"ext-iconv": "*",
"ext-json": "*"
"ext-json": "*",
"ext-curl": "*",
"ext-zip": "*"
},
"platform-dev": [],
"plugin-api-version": "1.1.0"

View File

@ -53,8 +53,7 @@ services:
$installed: "%keylighter_dir%/installed.json"
Kadet\Highlighter\KeyLighter:
class: Kadet\Highlighter\KeyLighter
factory: 'Kadet\Highlighter\KeyLighter::get'
factory: ['@App\Service\KeyLighterVersioner', 'getKeyLighter']
League\CommonMark\Environment:
factory: ['League\CommonMark\Environment', 'createGFMEnvironment']

View File

@ -3,6 +3,7 @@
namespace App\Service;
use App\Message\UpdateKeylighterMessage;
use Kadet\Highlighter\KeyLighter;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Messenger\MessageBusInterface;
@ -21,7 +22,7 @@ class KeyLighterVersioner
{
$this->filesystem = $filesystem;
$this->parameters = $parameters;
$this->bus = $bus;
$this->bus = $bus;
}
public function getAvailableVersions()
@ -83,6 +84,7 @@ class KeyLighterVersioner
}
require $this->getDirectory($version).'/vendor/autoload.php';
$this->current = $version;
}
@ -91,6 +93,15 @@ class KeyLighterVersioner
return $this->current;
}
public function getKeyLighter()
{
if (!class_exists(KeyLighter::class)) {
$this->load('dev-master');
}
return KeyLighter::get();
}
public function getCurrentDir()
{
return $this->getDirectory($this->current);

View File

@ -21,17 +21,33 @@ class KeyLighterTwigAccess
public function getLanguages()
{
$languages = require $this->versioner->getCurrentDir().'/Config/metadata.php';
$languages = collect($languages);
switch (true) {
case version_compare(KeyLighter::VERSION, '0.9.0', '>'):
$languages = require $this->versioner->getCurrentDir().'/Config/metadata.php';
$languages = collect($languages);
$languages = $languages->reduce(function (Collection $collection, $language) {
return $collection->merge(array_fill_keys($language['name'], [
'class' => $language[0],
'standalone' => $language['standalone'],
'embeddable' => $language['injectable']
]));
}, collect());
$languages = $languages->reduce(function (Collection $collection, $language) {
return $collection->merge(array_fill_keys($language['name'], [
'class' => $language[0],
'standalone' => $language['standalone'],
'embeddable' => $language['injectable']
]));
}, collect());
return $languages;
return $languages;
default:
$languages = collect($this->keylighter->registeredLanguages('name', true));
return $languages->mapWithKeys(function ($class, $language) {
return [
$language => [
'class' => $class,
'standalone' => true,
'embeddable' => true,
]
];
});
}
}
}

View File

@ -78,9 +78,6 @@
"jdorn/sql-formatter": {
"version": "v1.2.17"
},
"kadet/keylighter": {
"version": "dev-master"
},
"league/commonmark": {
"version": "1.3.3"
},