Page MenuHomePhorge

PhabricatorRemarkupBlockInterpreterGraphviz.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

PhabricatorRemarkupBlockInterpreterGraphviz.php

<?php
final class PhabricatorRemarkupBlockInterpreterGraphviz
extends PhutilRemarkupBlockInterpreter {
public function getInterpreterName() {
return 'dot';
}
public function markupContent($content, array $argv) {
if (!Filesystem::binaryExists('dot')) {
return $this->markupError(
pht('Unable to locate the `dot` binary. Install Graphviz.'));
}
$future = id(new ExecFuture('dot -T%s', 'png'))
->setTimeout(15)
->write(trim($content));
list($err, $stdout, $stderr) = $future->resolve();
if ($err) {
return $this->markupError(
pht(
'Execution of `dot` failed (#%d), check your syntax: %s',
$err,
$stderr));
}
$file = PhabricatorFile::buildFromFileDataOrHash(
$stdout,
array(
'name' => 'graphviz.png',
));
if ($this->getEngine()->isTextMode()) {
return '<'.$file->getBestURI().'>';
}
return phutil_tag(
'img',
array(
'src' => $file->getBestURI(),
));
}
}

File Metadata

Mime Type
text/x-php
Expires
Sun, May 4, 7:27 AM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
64474
Default Alt Text
PhabricatorRemarkupBlockInterpreterGraphviz.php (1 KB)

Event Timeline