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; } }