@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<?php
2
3final class PhrictionMarkupPreviewController
4 extends PhabricatorController {
5
6 public function handleRequest(AphrontRequest $request) {
7 $viewer = $request->getViewer();
8
9 $text = $request->getStr('text');
10 $slug = $request->getStr('slug');
11
12 $document = id(new PhrictionDocumentQuery())
13 ->setViewer($viewer)
14 ->withSlugs(array($slug))
15 ->needContent(true)
16 ->executeOne();
17 if (!$document) {
18 $document = PhrictionDocument::initializeNewDocument(
19 $viewer,
20 $slug);
21
22 $content = id(new PhrictionContent())
23 ->setSlug($slug);
24
25 $document
26 ->setPHID($document->generatePHID())
27 ->attachContent($content);
28 }
29
30 $output = PhabricatorMarkupEngine::renderOneObject(
31 id(new PhabricatorMarkupOneOff())
32 ->setPreserveLinebreaks(true)
33 ->setDisableCache(true)
34 ->setContent($text),
35 'default',
36 $viewer,
37 $document);
38
39 return id(new AphrontAjaxResponse())
40 ->setContent($output);
41 }
42}