AiEditor 是一款面向人工智能的下一代富文本編輯器,它結(jié)合了人工智能技術(shù)與現(xiàn)代編輯工具的優(yōu)勢(shì),為用戶(hù)提供了一種全新的創(chuàng)作體驗(yàn)。通過(guò)使用 AiEditor,用戶(hù)可以輕松地創(chuàng)建、編輯和格式化文本內(nèi)容,同時(shí)還能利用 AI 技術(shù)實(shí)現(xiàn)智能推薦、自動(dòng)糾錯(cuò)等功能,大大提高了寫(xiě)作效率和質(zhì)量。以下是 AiEditor 的一些主要特點(diǎn):
Markdown
,Html
,純文本
,json
, 即是html編輯器 亦是Markdown編輯器總之,AiEditor 作為一個(gè)面向人工智能的下一代富文本編輯器,不僅提供了豐富的編輯功能和便捷的操作體驗(yàn),還充分利用了人工智能技術(shù),為用戶(hù)帶來(lái)了前所未有的創(chuàng)作樂(lè)趣。無(wú)論是專(zhuān)業(yè)作家、學(xué)生還是普通用戶(hù),都可以通過(guò) AiEditor 輕松地完成各種寫(xiě)作任務(wù),實(shí)現(xiàn)高效、高質(zhì)量的創(chuàng)作。
結(jié)合webman提供了強(qiáng)大的封裝能力
遇到問(wèn)題不要慌
8988354@qq.com
會(huì)為你服務(wù) 或加微TycoonSong89
<?php echo showAiEditor($id,$value,$config,$options);?>
要想使用好它 你需要了解下面關(guān)于它的配置信息
$id
當(dāng)你一個(gè)頁(yè)面有多個(gè)編輯器時(shí) 它顯得格外得重要 因此你得注意它得重復(fù)性 此項(xiàng)即是id也是表單name$value
編輯器內(nèi)容$config
編輯器相關(guān)配置信息 它是由一個(gè)數(shù)組組合而成 所有參數(shù)都是非必填項(xiàng),你可以根據(jù)需要寫(xiě)入$options
編輯器原始配置信息, 它是由一個(gè)數(shù)組組合而成,后被轉(zhuǎn)化為JS信息,因此你寫(xiě)入的時(shí)候得注意區(qū)分,所有參數(shù)都是非必填項(xiàng),你可以根據(jù)需要寫(xiě)入關(guān)于$config的詳細(xì)配置說(shuō)明
'et'=>'/app/ai_editor/admin/ajax/et'
填寫(xiě)此參數(shù)時(shí)代表你需要@提及功能,需要填寫(xiě)一個(gè)完整的可訪問(wèn)的接口地址,以此來(lái)達(dá)到在編輯器輸入@后得到可選擇的數(shù)據(jù)'type' => 'all'
有三個(gè)參數(shù)可供填寫(xiě)basic
,simple
,all
。此參數(shù)跟編輯器的工具欄相關(guān),分別代表著極簡(jiǎn),常規(guī)和全部,為了方便使用者應(yīng)用在不同場(chǎng)景下,當(dāng)然你也可以在$options
配置toolbarKeys
來(lái)設(shè)定工具欄'model'=> 'default'
可填寫(xiě)default
默認(rèn),apart
分離式。 默認(rèn)為傳統(tǒng)模式,分離式類(lèi)似于騰訊文檔 工具欄與內(nèi)容是分開(kāi)的'style' => 'width:100%; height:300px'
編輯器樣式設(shè)置'uploadUrl'=> '/app/ai_editor/admin/ajax/upload'
上傳接口配置,如不配置則被允許為保存base64'accessUrl'=> '/app/ai_editor/admin/ajax/access'
驗(yàn)簽接口配置 防止數(shù)據(jù)泄露風(fēng)險(xiǎn) 采用后端驗(yàn)簽避免敏感數(shù)據(jù)泄露'tokenUrl'=> '/app/ai_editor/admin/ajax/token'
記錄 Token 消耗情況'image' => true
是否允許上傳圖片默認(rèn)true ,false關(guān)閉'video' => true
是否允許上傳視頻默認(rèn)true ,false關(guān)閉'attachment' => true
是否允許上傳附件默認(rèn)true ,false關(guān)閉'contentType'=> 'html'
得到內(nèi)容值 默認(rèn)html 可選參數(shù) json
json描述數(shù)據(jù),html
html內(nèi)容,text
純文本, markdown
Markdown內(nèi)容關(guān)于$options的詳細(xì)配置說(shuō)明
'toolbarKeys' => ['undo','redo','|','bold']
編輯器工具欄配置'contentRetention'=>false
是否自動(dòng)保存(緩存)當(dāng)前編輯的內(nèi)容,默認(rèn)為:false
。'contentRetentionKey'=>'ai-editor-content'
自動(dòng)保存(緩存)到 localStorage 的 key 值,默認(rèn)為:ai-editor-content
。'placeholder'=> '點(diǎn)擊輸入內(nèi)容...'
無(wú)內(nèi)容提示語(yǔ)'content'=> ''
富文本內(nèi)容'lang'=> 'zh'
默認(rèn)語(yǔ)言'i18n'=>['zh'=>['undo'=>'撤銷(xiāo)'],'en'=>['undo'=>'Undo']]
自定義語(yǔ)言'editable'=> true
設(shè)置為false時(shí) 編輯器為只讀模式'fontSize'=>['values'=>[['name'=>'小五', 'value'=> '12']]]
字號(hào)配置'fontFamily'=>['values'=>[['name'=>'宋體', 'value'=> 'SimSun']]]
字體配置'link'=>['autolink'=>true,'rel'=>'','class'=>'']
超鏈接配置 autolink: 自動(dòng)連接 rel: a
標(biāo)簽的 ref
屬性默認(rèn)值配置 class: a
標(biāo)簽的 class
屬性默認(rèn)值配置'ai'=>[]
ai的相關(guān)配置看下方說(shuō)明關(guān)于
$options['ai']
的詳細(xì)配置說(shuō)明
'ai'=>[
'bubblePanelEnable' => true, // 彈出框是否使用的 ai 默認(rèn)會(huì)根據(jù)ai開(kāi)關(guān)來(lái)設(shè)定
'bubblePanelModel' => 'spark', // 彈出框使用的 ai 模型 默認(rèn)會(huì)自動(dòng)讀取設(shè)定項(xiàng)
// icon:用于菜單顯示的 icon,暫時(shí)只支持 svg 配置,svg icon 建議使用 https://remixicon.com 提供的 icon,以保證和 AiEditor 的 icon 風(fēng)格保持統(tǒng)一。
// name:AI 菜單的名稱(chēng)
// prompt:AI 提示語(yǔ)
// text:文字內(nèi)容,支持 "focusBefore" 和 "selected" 可選;"focusBefore" 表示獲取當(dāng)前焦點(diǎn)前的文字內(nèi)容,"selected" 表示獲取當(dāng)前選中的文本內(nèi)容。
// model:使用的 AI 大模型,目前支持 spark (星火大模型)、wenxin(文心一言)以及 custom(自定義類(lèi)型),來(lái)未來(lái)會(huì)支持文心一言、ChatGPT 等多模型共存。
'menus' => [
['icon'=>'','name'=>'AI 續(xù)寫(xiě)','prompt'=>'請(qǐng)幫我繼續(xù)擴(kuò)展一些這段話(huà)的內(nèi)容','text'=>'focusBefore','model'=>'spark'],
['icon'=>'','name'=>'AI 優(yōu)化','prompt'=>'請(qǐng)幫我優(yōu)化一下這段文字的內(nèi)容,并返回結(jié)果','text'=>'selected','model'=>'spark']
],
// name:AI 菜單的名稱(chēng)
// prompt:AI 提示語(yǔ)
// model:使用的 AI 大模型,目前支持 spark (星火大模型)、wenxin(文心一言)以及 custom(自定義類(lèi)型),來(lái)未來(lái)會(huì)支持文心一言、ChatGPT 等多模型共存。
'commands' => [
['name'=>'AI 續(xù)寫(xiě)','prompt'=>'請(qǐng)幫我繼續(xù)擴(kuò)展一些這段話(huà)的內(nèi)容','model'=>'spark'],
['name'=>'AI 提問(wèn)','prompt'=>'','model'=>'spark']
],
// 在代碼編輯器的組件中,有關(guān)于 “AI自動(dòng)添加注釋” 和 “AI解釋代碼含義” 的兩個(gè) AI 功能
'codeBlock' => [
'codeComments' => ['prompt'=>'幫我對(duì)這個(gè)代碼添加一些注釋?zhuān)⒎祷靥砑幼⑨尩拇a,只返回代碼','model'=>'spark'],
'codeExplain' => ['prompt'=>'幫我對(duì)這個(gè)代碼進(jìn)行解釋?zhuān)祷卮a的解釋內(nèi)容,注意,不需要對(duì)代碼的注釋進(jìn)行解釋','model'=>'spark'],
]
]
編輯器可用api js需在引用下方
<script>
// 編輯器對(duì)象要對(duì)應(yīng)你設(shè)置的$id下面的$id要替換成你設(shè)定的值
const aiEditor = window.editor_$id;
//切換當(dāng)前語(yǔ)言到英語(yǔ)
aiEditor.changeLang("en")
// 設(shè)置編輯器為只讀模式
aiEditor.setEditable(false)
// 獲取編輯器html內(nèi)容
aiEditor.getHtml()
// 獲取當(dāng)前編輯器的 json 描述數(shù)據(jù)。
aiEditor.getJson()
// 獲取當(dāng)前編輯器的 純文本 內(nèi)容(不包含 html)。
aiEditor.getText()
// 獲取當(dāng)前編輯器選中的 純文本 內(nèi)容(不包含 html)。
aiEditor.getSelectedText()
// 獲取當(dāng)前編輯器的獲取 markdown 格式內(nèi)容。
aiEditor.getMarkdown()
// 獲取當(dāng)前編輯器的配置信息。
aiEditor.getOptions()
// 獲得內(nèi)容的目錄,返回一個(gè)數(shù)組
aiEditor.getOutline()
// 讓編輯器獲得焦點(diǎn)。
aiEditor.focus()
// 讓編輯器的指定位置獲得焦點(diǎn)。
aiEditor.focusPos(pos)
// 讓編輯器獲得焦點(diǎn),并設(shè)置光標(biāo)在最開(kāi)始位置。
aiEditor.focusStart()
// 讓編輯器獲得焦點(diǎn),并設(shè)置光標(biāo)在最末尾位置。
aiEditor.focusEnd()
// 檢測(cè)當(dāng)前編輯器是否獲得焦點(diǎn)。
aiEditor.isFocused()
// 失去焦點(diǎn)
aiEditor.blur()
// 動(dòng)態(tài)插入 html、文本、或者 Markdown 內(nèi)容。注意: 當(dāng) aiEditor 沒(méi)有獲得焦點(diǎn)時(shí),調(diào)用該方法無(wú)效,可以通過(guò) aiEditor.focus().insert(string) 先獲得焦點(diǎn)后,再插入內(nèi)容。
aiEditor.insert(content)
// 刪除編輯器里的所有內(nèi)容。
aiEditor.clear()
// 動(dòng)態(tài)設(shè)置編輯器的內(nèi)容。
aiEditor.setContent(value)
// 檢查編輯器里是否有內(nèi)容。
aiEditor.isEmpty()
// 移除編輯器自動(dòng)記錄和保存的編輯內(nèi)容。
aiEditor.removeRetention()
// 銷(xiāo)毀當(dāng)前實(shí)例,常用于 react 或者 vue 中,當(dāng)組件卸載時(shí)調(diào)用。
aiEditor.destroy()
</script>
關(guān)于工具欄可配置