'', ' '', ']]]]>]]>' => '', ']]>' => '', '' => '', ]; private $options; /** @var CommonMarkConverter */ protected $commonmark; public function __construct(array $data) { $this->data = $data; if (array_key_exists('options', $data)) { $this->options = $data['options']; } $this->commonmark = new CommonMarkConverter([ 'allow_unsafe_links' => false, // 'html_input' => 'allow', ]); } public function design(Design $design) { $this->design = $design; $this->initializeDomDocument(); return $this; } public function build() { if (isset($this->data['template']) && isset($this->data['variables'])) { $this->getEmptyElements($this->data['template'], $this->data['variables']); } if (isset($this->data['template'])) { $this->updateElementProperties($this->data['template']); } if(isset($this->options)) { $replacements = []; $contents = $this->document->getElementsByTagName('ninja'); foreach ($contents as $content) { $template = $content->ownerDocument->saveHTML($content); $loader = new \Twig\Loader\FilesystemLoader(storage_path()); $twig = new \Twig\Environment($loader); $string_extension = new \Twig\Extension\StringLoaderExtension(); $twig->addExtension($string_extension); $template = $twig->createTemplate(html_entity_decode($template)); $template = $template->render($this->options); $f = $this->document->createDocumentFragment(); $f->appendXML($template); $replacements[] = $f; } foreach($contents as $key => $content){ $content->parentNode->replaceChild($replacements[$key], $content); } } if (isset($this->data['variables'])) { $this->updateVariables($this->data['variables']); } return $this; } /** * Final method to get compiled HTML. * * @param bool $final @deprecated // is it? i still see it being called elsewhere * @return mixed */ public function getCompiledHTML($final = false) { $html = $this->document->saveHTML(); nlog($html); return str_replace('%24', '$', $html); } }