From 2ee5086ce9435d03778f680cc2a5fea652089c43 Mon Sep 17 00:00:00 2001 From: epriestley Date: Fri, 23 Mar 2012 15:32:07 -0700 Subject: [PATCH] With the {F...} syntax, render non-images as links Summary: We render a huge picture of a PDF for PDFs right now, etc. This is hella dumb. Also allow users to force this rendering style, and change the link name. Test Plan: Uploaded image and non-image files, used layout=link and name=.... Reviewers: btrahan Reviewed By: btrahan CC: aran, epriestley Maniphest Tasks: T1040 Differential Revision: https://secure.phabricator.com/D2006 --- src/__celerity_resource_map__.php | 46 +++++++++--------- src/docs/userguide/remarkup.diviner | 5 +- .../PhabricatorRemarkupRuleEmbedFile.php | 16 ++++++ webroot/rsrc/css/core/remarkup.css | 11 +++++ .../rsrc/image/icon/fatcow/page_white_put.png | Bin 0 -> 648 bytes 5 files changed, 54 insertions(+), 24 deletions(-) create mode 100755 webroot/rsrc/image/icon/fatcow/page_white_put.png diff --git a/src/__celerity_resource_map__.php b/src/__celerity_resource_map__.php index 9c8c0e0353..e2699e5b08 100644 --- a/src/__celerity_resource_map__.php +++ b/src/__celerity_resource_map__.php @@ -277,7 +277,7 @@ celerity_register_resource_map(array( ), 'diffusion-icons-css' => array( - 'uri' => '/res/2633e4b7/rsrc/css/application/diffusion/diffusion-icons.css', + 'uri' => '/res/b7e2a749/rsrc/css/application/diffusion/diffusion-icons.css', 'type' => 'css', 'requires' => array( @@ -1692,7 +1692,7 @@ celerity_register_resource_map(array( ), 'phabricator-remarkup-css' => array( - 'uri' => '/res/3a0eb9e5/rsrc/css/core/remarkup.css', + 'uri' => '/res/11f89984/rsrc/css/core/remarkup.css', 'type' => 'css', 'requires' => array( @@ -1968,7 +1968,7 @@ celerity_register_resource_map(array( ), array( 'packages' => array( - '05e42357' => + '66f447f1' => array( 'name' => 'core.pkg.css', 'symbols' => @@ -1993,7 +1993,7 @@ celerity_register_resource_map(array( 17 => 'aphront-pager-view-css', 18 => 'phabricator-transaction-view-css', ), - 'uri' => '/res/pkg/05e42357/core.pkg.css', + 'uri' => '/res/pkg/66f447f1/core.pkg.css', 'type' => 'css', ), '21d01ed8' => @@ -2140,17 +2140,17 @@ celerity_register_resource_map(array( 'reverse' => array( 'aphront-attached-file-view-css' => '31583232', - 'aphront-crumbs-view-css' => '05e42357', - 'aphront-dialog-view-css' => '05e42357', - 'aphront-form-view-css' => '05e42357', + 'aphront-crumbs-view-css' => '66f447f1', + 'aphront-dialog-view-css' => '66f447f1', + 'aphront-form-view-css' => '66f447f1', 'aphront-headsup-action-list-view-css' => '551249fc', - 'aphront-list-filter-view-css' => '05e42357', - 'aphront-pager-view-css' => '05e42357', - 'aphront-panel-view-css' => '05e42357', - 'aphront-side-nav-view-css' => '05e42357', - 'aphront-table-view-css' => '05e42357', - 'aphront-tokenizer-control-css' => '05e42357', - 'aphront-typeahead-control-css' => '05e42357', + 'aphront-list-filter-view-css' => '66f447f1', + 'aphront-pager-view-css' => '66f447f1', + 'aphront-panel-view-css' => '66f447f1', + 'aphront-side-nav-view-css' => '66f447f1', + 'aphront-table-view-css' => '66f447f1', + 'aphront-tokenizer-control-css' => '66f447f1', + 'aphront-typeahead-control-css' => '66f447f1', 'differential-changeset-view-css' => '551249fc', 'differential-core-view-css' => '551249fc', 'differential-inline-comment-editor' => '9b256876', @@ -2208,23 +2208,23 @@ celerity_register_resource_map(array( 'maniphest-task-detail-css' => '31583232', 'maniphest-task-summary-css' => '31583232', 'maniphest-transaction-detail-css' => '31583232', - 'phabricator-app-buttons-css' => '05e42357', + 'phabricator-app-buttons-css' => '66f447f1', 'phabricator-content-source-view-css' => '551249fc', - 'phabricator-core-buttons-css' => '05e42357', - 'phabricator-core-css' => '05e42357', - 'phabricator-directory-css' => '05e42357', + 'phabricator-core-buttons-css' => '66f447f1', + 'phabricator-core-css' => '66f447f1', + 'phabricator-directory-css' => '66f447f1', 'phabricator-drag-and-drop-file-upload' => '9b256876', 'phabricator-dropdown-menu' => '21d01ed8', - 'phabricator-jump-nav' => '05e42357', + 'phabricator-jump-nav' => '66f447f1', 'phabricator-keyboard-shortcut' => '21d01ed8', 'phabricator-keyboard-shortcut-manager' => '21d01ed8', 'phabricator-menu-item' => '21d01ed8', 'phabricator-object-selector-css' => '551249fc', 'phabricator-paste-file-upload' => '21d01ed8', - 'phabricator-remarkup-css' => '05e42357', + 'phabricator-remarkup-css' => '66f447f1', 'phabricator-shaped-request' => '9b256876', - 'phabricator-standard-page-view' => '05e42357', - 'phabricator-transaction-view-css' => '05e42357', - 'syntax-highlighting-css' => '05e42357', + 'phabricator-standard-page-view' => '66f447f1', + 'phabricator-transaction-view-css' => '66f447f1', + 'syntax-highlighting-css' => '66f447f1', ), )); diff --git a/src/docs/userguide/remarkup.diviner b/src/docs/userguide/remarkup.diviner index b737623c94..9dc4bb01bb 100644 --- a/src/docs/userguide/remarkup.diviner +++ b/src/docs/userguide/remarkup.diviner @@ -296,10 +296,13 @@ You can set file display options like this: Valid options are: - - **layout** left (default), center, right, inline + - **layout** left (default), center, right, inline, link (render a link + instead of a thumbnail for images) - **float** If layout is set to left or right, the image will be floated so text wraps around it. - **size** thumb (default), full + - **name** with `layout=link` or for non-images, use this name for the link + text = Embedding Media = diff --git a/src/infrastructure/markup/remarkup/markuprule/embedobject/PhabricatorRemarkupRuleEmbedFile.php b/src/infrastructure/markup/remarkup/markuprule/embedobject/PhabricatorRemarkupRuleEmbedFile.php index 9a6726a0ca..0b19b25e94 100644 --- a/src/infrastructure/markup/remarkup/markuprule/embedobject/PhabricatorRemarkupRuleEmbedFile.php +++ b/src/infrastructure/markup/remarkup/markuprule/embedobject/PhabricatorRemarkupRuleEmbedFile.php @@ -45,6 +45,7 @@ final class PhabricatorRemarkupRuleEmbedFile 'size' => 'thumb', 'layout' => 'left', 'float' => false, + 'name' => null, ); if (!empty($matches[2])) { @@ -52,6 +53,21 @@ final class PhabricatorRemarkupRuleEmbedFile $options = PhutilSimpleOptions::parse($matches[2]) + $options; } + $file_name = coalesce($options['name'], $file->getName()); + + if (!$file->isViewableImage() || $options['layout'] == 'link') { + // If a file isn't in image, just render a link to it. + $link = phutil_render_tag( + 'a', + array( + 'href' => $file->getBestURI(), + 'target' => '_blank', + 'class' => 'phabricator-remarkup-embed-layout-link', + ), + phutil_escape_html($file_name)); + return $this->getEngine()->storeText($link); + } + switch ($options['size']) { case 'full': $src_uri = $file->getBestURI(); diff --git a/webroot/rsrc/css/core/remarkup.css b/webroot/rsrc/css/core/remarkup.css index 83e6e651b9..27eefdb7c5 100644 --- a/webroot/rsrc/css/core/remarkup.css +++ b/webroot/rsrc/css/core/remarkup.css @@ -204,6 +204,11 @@ margin: .5em 1em 0; } +.phabricator-remarkup-embed-layout-link { + padding-left: 20px; + background: url(/rsrc/image/icon/fatcow/page_white_put.png) 0 0 no-repeat; +} + .phabricator-remarkup-embed-float-left { float: left; margin: .5em 1em 0; @@ -211,4 +216,10 @@ img.phabricator-remarkup-embed-image { display: inline; + border: 2px solid white; + background: white; + + box-shadow: 1px 1px 6px rgba(0,0,0,.5); + -moz-box-shadow: 1px 1px 6px rgba(0,0,0,.5); + -webkit-box-shadow: 1px 1px 6px rgba(0,0,0,.5); } diff --git a/webroot/rsrc/image/icon/fatcow/page_white_put.png b/webroot/rsrc/image/icon/fatcow/page_white_put.png new file mode 100755 index 0000000000000000000000000000000000000000..924ad29cecb7859f20a2295db93348de5d1b537a GIT binary patch literal 648 zcmV;30(bq1P)BZROx=jb=- zI8OS~^fdlutyXK~S+!cyG%epBg!_J&_fvC|d<)IZtzcDqWyMknmSy3zZRh?t&V7%V z_6CTlNC8djy4ovalyRrsMkbTNq;1c-uKOTP8sHEq=UkGr&JWKE&yS3ap|Y|9Rin%K zJP14!-eAEa*C3gp7{mb46F}MT-97A*v#=i+ z9zIAQ9s9%q7;*^nug1FpV$Fj_`AD8FQo+vDMo@S&K>_GnqL;xSltT!KlxE;&`2rp{ zmXXp4XrQEXmWz9I2v^!3eZ0wjKk10 zTz@!;=O1b~M|J$TSHbr8HQ2|1wGF%_8P$XY2_%M@Gm=DaWuu0<+4DGj$i(~h5|{~0 zP0Zlsz-p7m6A-yiG)1=7WS4CxjMug75!(I?kJaCieC iVo2lvtR8>-6<`27$E~}4jmEzK0000