1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-20 20:40:56 +01:00

Add explicit width/height controls for embedded images in Remarkup

Summary: User request. See screenshot.

Test Plan: doge

Reviewers: btrahan, bigo

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D7610
This commit is contained in:
epriestley 2013-11-19 17:33:55 -08:00
parent ccfce7c4ee
commit ab64ad1257
2 changed files with 46 additions and 15 deletions

View file

@ -50,9 +50,11 @@ final class PhabricatorRemarkupRuleEmbedFile
private function getFileOptions($option_string) {
$options = array(
'size' => 'thumb',
'size' => null,
'layout' => 'left',
'float' => false,
'width' => null,
'height' => null,
);
if ($option_string) {
@ -73,23 +75,40 @@ final class PhabricatorRemarkupRuleEmbedFile
$attrs = array();
$image_class = null;
switch ((string)$options['size']) {
case 'full':
$use_size = true;
if (!$options['size']) {
$width = $this->parseDimension($options['width']);
$height = $this->parseDimension($options['height']);
if ($width || $height) {
$use_size = false;
$attrs += array(
'src' => $file->getBestURI(),
'width' => $file->getImageWidth(),
'height' => $file->getImageHeight(),
'width' => $width,
'height' => $height,
);
break;
case 'thumb':
default:
$attrs['src'] = $file->getPreview220URI();
$dimensions =
PhabricatorImageTransformer::getPreviewDimensions($file, 220);
$attrs['width'] = $dimensions['sdx'];
$attrs['height'] = $dimensions['sdy'];
$image_class = 'phabricator-remarkup-embed-image';
break;
}
}
if ($use_size) {
switch ((string)$options['size']) {
case 'full':
$attrs += array(
'src' => $file->getBestURI(),
'width' => $file->getImageWidth(),
'height' => $file->getImageHeight(),
);
break;
case 'thumb':
default:
$attrs['src'] = $file->getPreview220URI();
$dimensions =
PhabricatorImageTransformer::getPreviewDimensions($file, 220);
$attrs['width'] = $dimensions['sdx'];
$attrs['height'] = $dimensions['sdy'];
$image_class = 'phabricator-remarkup-embed-image';
break;
}
}
$img = phutil_tag('img', $attrs);
@ -186,4 +205,14 @@ final class PhabricatorRemarkupRuleEmbedFile
->setFileViewable($options['viewable']);
}
private function parseDimension($string) {
$string = trim($string);
if (preg_match('/^(?:\d*\\.)?\d+%?$/', $string)) {
return $string;
}
return null;
}
}

View file

@ -345,6 +345,8 @@ Valid options are:
- **size** thumb (default), full
- **name** with `layout=link` or for non-images, use this name for the link
text
- **width** Scale image to a specific width.
- **height** Scale image to a specific height.
== Embedding Countdowns