php mediawiki預(yù)覽是指在編輯wiki內(nèi)容時,用戶可以在編輯頁面上查看當(dāng)前修改的結(jié)果。這個功能非常有用,可以讓用戶及時了解修改后的效果,從而適時調(diào)整修改內(nèi)容,提高工作效率。
在mediawiki中,預(yù)覽功能是通過Preview按鈕實現(xiàn)的。用戶在編輯頁面上修改內(nèi)容后,點擊Preview按鈕即可在同一頁面上看到修改后的效果,而不必離開編輯頁面。
<input type="submit" accesskey="p" name="wpPreview" value="#{$wgText['showpreview']}" title="{$wgContLang->convertGrammar( $wgUser->getSkin(), $wgText['tooltip-preview'] )}" />
查看代碼可以發(fā)現(xiàn),Preview按鈕是一個input元素,type為submit,點擊后會觸發(fā)表單的提交。在檢驗表單項通過后,mediawiki會使用當(dāng)前表單內(nèi)容生成一個動態(tài)頁面,并在當(dāng)前編輯頁面上展示出來。
preview功能還有個“顯示差異”選項,可以比較當(dāng)前修改與原內(nèi)容的不同之處。這個功能特別適用于對長篇文章進行修改,能夠幫助用戶迅速找到并了解他所做的修改。
$diff = new DifferenceEngine( $ctx, $current, $text, $title, $id, $start ); $output = $diff->showDiff( $deletedrev, $new, $movedto );
mediawiki中差異對比的實現(xiàn)部分代碼如上,通過DiffereceEngine將當(dāng)前修改內(nèi)容和原內(nèi)容進行差異比較。差異比較之后,生成的頁面將當(dāng)前兩個版本的頁面內(nèi)容并排展示,在不同的地方作出標記。
值得一提的是,在mediawiki 1.26版本中對preview功能進行了重構(gòu),提升了preview的性能和效率。新版本的preview在處理巨大頁面時,不會像之前版本那樣卡死不響應(yīng),而是支持異步提交和BackgroundFetch這些新特性,保證大頁面的處理速度和體驗。
總的來說,preview是一個非常實用的wiki編輯工具,可以讓用戶在編輯文章時更加方便地查看修改結(jié)果。通過查看mediawiki的源代碼,可以更深入地了解preview和差異對比的實現(xiàn)原理,這對提升wiki的使用效率和創(chuàng)建精準的文章都有很大幫助。