@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Phtize phabricator-remarkup-assist

Test Plan: Translated 'bold text' as 'txt', clicked on B without selection, saw 'txt'.

CC: epriestley, aran

Differential Revision: https://secure.phabricator.com/D7335

+64 -50
+46 -45
src/__celerity_resource_map__.php
··· 2147 2147 ), 2148 2148 'javelin-behavior-phabricator-remarkup-assist' => 2149 2149 array( 2150 - 'uri' => '/res/c3f4439f/rsrc/js/core/behavior-phabricator-remarkup-assist.js', 2150 + 'uri' => '/res/1d8dab1f/rsrc/js/core/behavior-phabricator-remarkup-assist.js', 2151 2151 'type' => 'js', 2152 2152 'requires' => 2153 2153 array( 2154 2154 0 => 'javelin-behavior', 2155 2155 1 => 'javelin-stratcom', 2156 2156 2 => 'javelin-dom', 2157 - 3 => 'phabricator-textareautils', 2158 - 4 => 'javelin-workflow', 2159 - 5 => 'javelin-vector', 2157 + 3 => 'phabricator-phtize', 2158 + 4 => 'phabricator-textareautils', 2159 + 5 => 'javelin-workflow', 2160 + 6 => 'javelin-vector', 2160 2161 ), 2161 2162 'disk' => '/rsrc/js/core/behavior-phabricator-remarkup-assist.js', 2162 2163 ), ··· 4324 4325 'uri' => '/res/pkg/a4e76ef8/core.pkg.css', 4325 4326 'type' => 'css', 4326 4327 ), 4327 - 'adee86d9' => 4328 + '6041c6c8' => 4328 4329 array( 4329 4330 'name' => 'core.pkg.js', 4330 4331 'symbols' => ··· 4369 4370 37 => 'javelin-color', 4370 4371 38 => 'javelin-fx', 4371 4372 ), 4372 - 'uri' => '/res/pkg/adee86d9/core.pkg.js', 4373 + 'uri' => '/res/pkg/6041c6c8/core.pkg.js', 4373 4374 'type' => 'js', 4374 4375 ), 4375 4376 '4ccfeb47' => ··· 4537 4538 'diffusion-icons-css' => '270f4eb4', 4538 4539 'global-drag-and-drop-css' => 'a4e76ef8', 4539 4540 'inline-comment-summary-css' => '7cd7e387', 4540 - 'javelin-aphlict' => 'adee86d9', 4541 + 'javelin-aphlict' => '6041c6c8', 4541 4542 'javelin-behavior' => '3e3be199', 4542 - 'javelin-behavior-aphlict-dropdown' => 'adee86d9', 4543 - 'javelin-behavior-aphlict-listen' => 'adee86d9', 4544 - 'javelin-behavior-aphront-basic-tokenizer' => 'adee86d9', 4543 + 'javelin-behavior-aphlict-dropdown' => '6041c6c8', 4544 + 'javelin-behavior-aphlict-listen' => '6041c6c8', 4545 + 'javelin-behavior-aphront-basic-tokenizer' => '6041c6c8', 4545 4546 'javelin-behavior-aphront-drag-and-drop-textarea' => '5e9e5c4e', 4546 - 'javelin-behavior-aphront-form-disable-on-submit' => 'adee86d9', 4547 + 'javelin-behavior-aphront-form-disable-on-submit' => '6041c6c8', 4547 4548 'javelin-behavior-audit-preview' => '96909266', 4548 4549 'javelin-behavior-dark-console' => '4ccfeb47', 4549 - 'javelin-behavior-device' => 'adee86d9', 4550 + 'javelin-behavior-device' => '6041c6c8', 4550 4551 'javelin-behavior-differential-accept-with-errors' => '5e9e5c4e', 4551 4552 'javelin-behavior-differential-add-reviewers-and-ccs' => '5e9e5c4e', 4552 4553 'javelin-behavior-differential-comment-jump' => '5e9e5c4e', ··· 4562 4563 'javelin-behavior-diffusion-commit-graph' => '96909266', 4563 4564 'javelin-behavior-diffusion-pull-lastmodified' => '96909266', 4564 4565 'javelin-behavior-error-log' => '4ccfeb47', 4565 - 'javelin-behavior-global-drag-and-drop' => 'adee86d9', 4566 - 'javelin-behavior-history-install' => 'adee86d9', 4567 - 'javelin-behavior-konami' => 'adee86d9', 4568 - 'javelin-behavior-lightbox-attachments' => 'adee86d9', 4566 + 'javelin-behavior-global-drag-and-drop' => '6041c6c8', 4567 + 'javelin-behavior-history-install' => '6041c6c8', 4568 + 'javelin-behavior-konami' => '6041c6c8', 4569 + 'javelin-behavior-lightbox-attachments' => '6041c6c8', 4569 4570 'javelin-behavior-load-blame' => '5e9e5c4e', 4570 4571 'javelin-behavior-maniphest-batch-selector' => '0a694954', 4571 4572 'javelin-behavior-maniphest-subpriority-editor' => '0a694954', 4572 4573 'javelin-behavior-maniphest-transaction-controls' => '0a694954', 4573 4574 'javelin-behavior-maniphest-transaction-expand' => '0a694954', 4574 4575 'javelin-behavior-maniphest-transaction-preview' => '0a694954', 4575 - 'javelin-behavior-phabricator-active-nav' => 'adee86d9', 4576 - 'javelin-behavior-phabricator-autofocus' => 'adee86d9', 4577 - 'javelin-behavior-phabricator-gesture' => 'adee86d9', 4578 - 'javelin-behavior-phabricator-hovercards' => 'adee86d9', 4579 - 'javelin-behavior-phabricator-keyboard-shortcuts' => 'adee86d9', 4580 - 'javelin-behavior-phabricator-nav' => 'adee86d9', 4576 + 'javelin-behavior-phabricator-active-nav' => '6041c6c8', 4577 + 'javelin-behavior-phabricator-autofocus' => '6041c6c8', 4578 + 'javelin-behavior-phabricator-gesture' => '6041c6c8', 4579 + 'javelin-behavior-phabricator-hovercards' => '6041c6c8', 4580 + 'javelin-behavior-phabricator-keyboard-shortcuts' => '6041c6c8', 4581 + 'javelin-behavior-phabricator-nav' => '6041c6c8', 4581 4582 'javelin-behavior-phabricator-object-selector' => '5e9e5c4e', 4582 - 'javelin-behavior-phabricator-oncopy' => 'adee86d9', 4583 - 'javelin-behavior-phabricator-remarkup-assist' => 'adee86d9', 4584 - 'javelin-behavior-phabricator-reveal-content' => 'adee86d9', 4585 - 'javelin-behavior-phabricator-search-typeahead' => 'adee86d9', 4586 - 'javelin-behavior-phabricator-tooltips' => 'adee86d9', 4587 - 'javelin-behavior-phabricator-watch-anchor' => 'adee86d9', 4588 - 'javelin-behavior-refresh-csrf' => 'adee86d9', 4583 + 'javelin-behavior-phabricator-oncopy' => '6041c6c8', 4584 + 'javelin-behavior-phabricator-remarkup-assist' => '6041c6c8', 4585 + 'javelin-behavior-phabricator-reveal-content' => '6041c6c8', 4586 + 'javelin-behavior-phabricator-search-typeahead' => '6041c6c8', 4587 + 'javelin-behavior-phabricator-tooltips' => '6041c6c8', 4588 + 'javelin-behavior-phabricator-watch-anchor' => '6041c6c8', 4589 + 'javelin-behavior-refresh-csrf' => '6041c6c8', 4589 4590 'javelin-behavior-repository-crossreference' => '5e9e5c4e', 4590 - 'javelin-behavior-toggle-class' => 'adee86d9', 4591 - 'javelin-behavior-workflow' => 'adee86d9', 4592 - 'javelin-color' => 'adee86d9', 4591 + 'javelin-behavior-toggle-class' => '6041c6c8', 4592 + 'javelin-behavior-workflow' => '6041c6c8', 4593 + 'javelin-color' => '6041c6c8', 4593 4594 'javelin-dom' => '3e3be199', 4594 4595 'javelin-event' => '3e3be199', 4595 - 'javelin-fx' => 'adee86d9', 4596 + 'javelin-fx' => '6041c6c8', 4596 4597 'javelin-history' => '3e3be199', 4597 4598 'javelin-install' => '3e3be199', 4598 4599 'javelin-json' => '3e3be199', ··· 4614 4615 'maniphest-task-summary-css' => '49898640', 4615 4616 'phabricator-action-list-view-css' => 'a4e76ef8', 4616 4617 'phabricator-application-launch-view-css' => 'a4e76ef8', 4617 - 'phabricator-busy' => 'adee86d9', 4618 + 'phabricator-busy' => '6041c6c8', 4618 4619 'phabricator-content-source-view-css' => '7cd7e387', 4619 4620 'phabricator-core-css' => 'a4e76ef8', 4620 4621 'phabricator-crumbs-view-css' => 'a4e76ef8', 4621 4622 'phabricator-drag-and-drop-file-upload' => '5e9e5c4e', 4622 - 'phabricator-dropdown-menu' => 'adee86d9', 4623 - 'phabricator-file-upload' => 'adee86d9', 4623 + 'phabricator-dropdown-menu' => '6041c6c8', 4624 + 'phabricator-file-upload' => '6041c6c8', 4624 4625 'phabricator-filetree-view-css' => 'a4e76ef8', 4625 4626 'phabricator-flag-css' => 'a4e76ef8', 4626 - 'phabricator-hovercard' => 'adee86d9', 4627 + 'phabricator-hovercard' => '6041c6c8', 4627 4628 'phabricator-jump-nav' => 'a4e76ef8', 4628 - 'phabricator-keyboard-shortcut' => 'adee86d9', 4629 - 'phabricator-keyboard-shortcut-manager' => 'adee86d9', 4629 + 'phabricator-keyboard-shortcut' => '6041c6c8', 4630 + 'phabricator-keyboard-shortcut-manager' => '6041c6c8', 4630 4631 'phabricator-main-menu-view' => 'a4e76ef8', 4631 - 'phabricator-menu-item' => 'adee86d9', 4632 + 'phabricator-menu-item' => '6041c6c8', 4632 4633 'phabricator-nav-view-css' => 'a4e76ef8', 4633 - 'phabricator-notification' => 'adee86d9', 4634 + 'phabricator-notification' => '6041c6c8', 4634 4635 'phabricator-notification-css' => 'a4e76ef8', 4635 4636 'phabricator-notification-menu-css' => 'a4e76ef8', 4636 4637 'phabricator-object-selector-css' => '7cd7e387', 4637 - 'phabricator-phtize' => 'adee86d9', 4638 - 'phabricator-prefab' => 'adee86d9', 4638 + 'phabricator-phtize' => '6041c6c8', 4639 + 'phabricator-prefab' => '6041c6c8', 4639 4640 'phabricator-project-tag-css' => '49898640', 4640 4641 'phabricator-remarkup-css' => 'a4e76ef8', 4641 4642 'phabricator-shaped-request' => '5e9e5c4e', 4642 4643 'phabricator-side-menu-view-css' => 'a4e76ef8', 4643 4644 'phabricator-standard-page-view' => 'a4e76ef8', 4644 4645 'phabricator-tag-view-css' => 'a4e76ef8', 4645 - 'phabricator-textareautils' => 'adee86d9', 4646 - 'phabricator-tooltip' => 'adee86d9', 4646 + 'phabricator-textareautils' => '6041c6c8', 4647 + 'phabricator-tooltip' => '6041c6c8', 4647 4648 'phabricator-transaction-view-css' => 'a4e76ef8', 4648 4649 'phabricator-zindex-css' => 'a4e76ef8', 4649 4650 'phui-button-css' => 'a4e76ef8',
+10
src/infrastructure/javelin/Javelin.php
··· 19 19 'Configure Editor' => pht('Configure Editor'), 20 20 ); 21 21 break; 22 + 23 + case 'phabricator-remarkup-assist': 24 + $config['pht'] = array( 25 + 'bold text' => pht('bold text'), 26 + 'italic text' => pht('italic text'), 27 + 'monospaced text' => pht('monospaced text'), 28 + 'List Item' => pht('List Item'), 29 + 'data' => pht('data'), 30 + ); 31 + break; 22 32 } 23 33 24 34 $response = CelerityAPI::getStaticResourceResponse();
+8 -5
webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js
··· 3 3 * @requires javelin-behavior 4 4 * javelin-stratcom 5 5 * javelin-dom 6 + * phabricator-phtize 6 7 * phabricator-textareautils 7 8 * javelin-workflow 8 9 * javelin-vector 9 10 */ 10 11 11 12 JX.behavior('phabricator-remarkup-assist', function(config) { 13 + var pht = JX.phtize(config.pht); 12 14 13 15 var edit_mode = 'normal'; 14 16 var edit_root = null; ··· 100 102 101 103 switch (action) { 102 104 case 'b': 103 - update(area, '**', sel || 'bold text', '**'); 105 + update(area, '**', sel || pht('bold text'), '**'); 104 106 break; 105 107 case 'i': 106 - update(area, '//', sel || 'italic text', '//'); 108 + update(area, '//', sel || pht('italic text'), '//'); 107 109 break; 108 110 case 'tt': 109 - update(area, '`', sel || 'monospaced text', '`'); 111 + update(area, '`', sel || pht('monospaced text'), '`'); 110 112 break; 111 113 case 'ul': 112 114 case 'ol': ··· 114 116 if (sel) { 115 117 sel = sel.split("\n"); 116 118 } else { 117 - sel = ["List Item"]; 119 + sel = [pht('List Item')]; 118 120 } 119 121 sel = sel.join("\n" + ch); 120 122 update(area, ((r.start === 0) ? "" : "\n\n") + ch, sel, "\n\n"); ··· 126 128 update(area, ((r.start === 0) ? "" : "\n\n"), sel, "\n\n"); 127 129 break; 128 130 case 'table': 129 - update(area, (r.start === 0 ? '' : '\n\n') + '| ', sel || 'data', ' |'); 131 + var prefix = (r.start === 0 ? '' : '\n\n'); 132 + update(area, prefix + '| ', sel || pht('data'), ' |'); 130 133 break; 131 134 case 'meme': 132 135 new JX.Workflow('/macro/meme/create/')