@@ -34,6 +34,7 @@ protected function getResult(ConduitAPIRequest $request) {
3434
3535 $ best = -1 ;
3636 $ readme = '' ;
37+ $ best_render_type = 'plain ' ;
3738 foreach ($ paths as $ result_path ) {
3839 $ file_type = $ result_path ->getFileType ();
3940 if (($ file_type != ArcanistDiffChangeType::FILE_NORMAL ) &&
@@ -45,7 +46,7 @@ protected function getResult(ConduitAPIRequest $request) {
4546 $ path = strtolower ($ result_path ->getPath ());
4647
4748 if ($ path === 'readme ' ) {
48- $ path .= '.txt ' ;
49+ $ path .= '.remarkup ' ;
4950 }
5051
5152 if (strncmp ($ path , 'readme. ' , 7 ) !== 0 ) {
@@ -56,21 +57,30 @@ protected function getResult(ConduitAPIRequest $request) {
5657 switch (substr ($ path , 7 )) {
5758 case 'remarkup ' :
5859 $ priority = 100 ;
60+ $ render_type = 'remarkup ' ;
5961 break ;
6062 case 'rainbow ' :
6163 $ priority = 90 ;
64+ $ render_type = 'rainbow ' ;
6265 break ;
6366 case 'md ' :
6467 $ priority = 50 ;
68+ $ render_type = 'remarkup ' ;
6569 break ;
6670 case 'txt ' :
6771 $ priority = 10 ;
72+ $ render_type = 'plain ' ;
73+ break ;
74+ default :
75+ $ priority = 0 ;
76+ $ render_type = 'plain ' ;
6877 break ;
6978 }
7079
7180 if ($ priority > $ best ) {
7281 $ best = $ priority ;
7382 $ readme = $ result_path ;
83+ $ best_render_type = $ render_type ;
7484 }
7585 }
7686
@@ -98,47 +108,50 @@ protected function getResult(ConduitAPIRequest $request) {
98108 )));
99109 $ readme_content = $ file_content ->getCorpus ();
100110
101- if (preg_match ('/ \\.txt$/ ' , $ readme ->getPath ())) {
102- $ readme_content = phutil_escape_html_newlines ($ readme_content );
103-
104- $ class = null ;
105- } else if (preg_match ('/ \\.rainbow$/ ' , $ readme ->getPath ())) {
106- $ highlighter = new PhutilRainbowSyntaxHighlighter ();
107- $ readme_content = $ highlighter
108- ->getHighlightFuture ($ readme_content )
109- ->resolve ();
110- $ readme_content = phutil_escape_html_newlines ($ readme_content );
111-
112- require_celerity_resource ('syntax-highlighting-css ' );
113- $ class = 'remarkup-code ' ;
114- } else {
115- // TODO: This is sketchy, but make sure we hit the markup cache.
116- $ markup_object = id (new PhabricatorMarkupOneOff ())
117- ->setEngineRuleset ('diffusion-readme ' )
118- ->setContent ($ readme_content );
119- $ markup_field = 'default ' ;
120-
121- $ readme_content = id (new PhabricatorMarkupEngine ())
122- ->setViewer ($ request ->getUser ())
123- ->addObject ($ markup_object , $ markup_field )
124- ->process ()
125- ->getOutput ($ markup_object , $ markup_field );
126-
127- $ engine = $ markup_object ->newMarkupEngine ($ markup_field );
128- $ toc = PhutilRemarkupHeaderBlockRule::renderTableOfContents ($ engine );
129- if ($ toc ) {
130- $ toc = phutil_tag_div (
131- 'phabricator-remarkup-toc ' ,
132- array (
133- phutil_tag_div (
134- 'phabricator-remarkup-toc-header ' ,
135- pht ('Table of Contents ' )),
136- $ toc ,
137- ));
138- $ readme_content = array ($ toc , $ readme_content );
139- }
140-
141- $ class = 'phabricator-remarkup ' ;
111+ switch ($ best_render_type ) {
112+ case 'plain ' :
113+ $ readme_content = phutil_escape_html_newlines ($ readme_content );
114+ $ class = null ;
115+ break ;
116+ case 'rainbow ' :
117+ $ highlighter = new PhutilRainbowSyntaxHighlighter ();
118+ $ readme_content = $ highlighter
119+ ->getHighlightFuture ($ readme_content )
120+ ->resolve ();
121+ $ readme_content = phutil_escape_html_newlines ($ readme_content );
122+
123+ require_celerity_resource ('syntax-highlighting-css ' );
124+ $ class = 'remarkup-code ' ;
125+ break ;
126+ case 'remarkup ' :
127+ // TODO: This is sketchy, but make sure we hit the markup cache.
128+ $ markup_object = id (new PhabricatorMarkupOneOff ())
129+ ->setEngineRuleset ('diffusion-readme ' )
130+ ->setContent ($ readme_content );
131+ $ markup_field = 'default ' ;
132+
133+ $ readme_content = id (new PhabricatorMarkupEngine ())
134+ ->setViewer ($ request ->getUser ())
135+ ->addObject ($ markup_object , $ markup_field )
136+ ->process ()
137+ ->getOutput ($ markup_object , $ markup_field );
138+
139+ $ engine = $ markup_object ->newMarkupEngine ($ markup_field );
140+ $ toc = PhutilRemarkupHeaderBlockRule::renderTableOfContents ($ engine );
141+ if ($ toc ) {
142+ $ toc = phutil_tag_div (
143+ 'phabricator-remarkup-toc ' ,
144+ array (
145+ phutil_tag_div (
146+ 'phabricator-remarkup-toc-header ' ,
147+ pht ('Table of Contents ' )),
148+ $ toc ,
149+ ));
150+ $ readme_content = array ($ toc , $ readme_content );
151+ }
152+
153+ $ class = 'phabricator-remarkup ' ;
154+ break ;
142155 }
143156
144157 $ readme_content = phutil_tag (
0 commit comments