config = $config; } protected function createConverter() { return new CommonMarkConverter(['daux' => $this->config]); } protected function getConverter() { if (!$this->converter) { $this->converter = $this->createConverter(); } return $this->converter; } /** * @return string[] */ public function getExtensions() { return ['md', 'markdown']; } protected function doConversion($raw) { Daux::writeln("Running conversion", OutputInterface::VERBOSITY_VERBOSE); return $this->getConverter()->convertToHtml($raw); } public function convert($raw, Content $node) { $this->config->setCurrentPage($node); $can_cache = $this->config->canCache(); // TODO :: add daux version to cache key $cacheKey = $this->config->getCacheKey() . sha1($raw); $payload = Cache::get($cacheKey); if ($can_cache && $payload) { Daux::writeln("Using cached version", OutputInterface::VERBOSITY_VERBOSE); } if (!$can_cache || !$payload) { Daux::writeln($can_cache ? "Not found in the cache, generating..." : "Cache disabled, generating...", OutputInterface::VERBOSITY_VERBOSE); $payload = $this->doConversion($raw); } if ($can_cache) { Cache::put($cacheKey, $payload); } return $payload; } }