âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â ð shadcn/directory/udecode/plate/(plugins)/(collaboration)/comments.cn â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
title: è¯è®ºåèœ docs:
npm install @platejs/comment
import { commentPlugin } from '@/components/editor/plugins/comment-plugin';
import { discussionPlugin } from '@/components/editor/plugins/discussion-plugin';
const editor = createPlateEditor({
plugins: [
// ...å
¶ä»æä»¶
discussionPlugin,
commentPlugin,
],
});
è¯è®ºæä»¶éäžè®šè®ºæä»¶é å䜿çšä»¥æäŸå®æŽç讚论系ç»ã讚论æä»¶èŽèŽ£ç®¡ç讚论çé¢åçšæ·äº€äºå±ã瀺äŸäžæäŸäºäž€äžªæä»¶ç宿޿ºç ã
åèäžæ¹é¢è§ç»ä»¶ã
CommentPlugintf.comment.removeMarkä»çŒèŸåšäžç§»é€è¯è®ºæ è®°ã
tf.comment.setDraftåšåœåéåºè®Ÿçœ®èçš¿è¯è®ºæ è®°ã
tf.comment.unsetMarkä»çŒèŸåšäžç§»é€æå®IDçè¯è®ºèç¹ã
<API name="unsetMark"> <APIParameters> <APIItem name="id" type="string"> èŠç§»é€çè¯è®ºèç¹ID </APIItem> </APIParameters> </API>api.comment.hasæ£æ¥æå®IDçè¯è®ºæ¯åŠååšã
<API name="has"> <APIParameters> <APIItem name="id" type="string"> èŠæ£æ¥çè¯è®ºID </APIItem> </APIParameters> <APIReturns type="boolean"> è¯è®ºæ¯åŠååš </APIReturns> </API>api.comment.nodeè·åè¯è®ºèç¹entryã
<API name="node"> <APIOptions type="EditorNodesOptions & { id?: string; isDraft?: boolean }" optional> æ¥æŸèç¹çé 眮é项 </APIOptions> <APIReturns type="NodeEntry<TCommentText> | undefined"> æŸå°çè¯è®ºèç¹entryïŒåŠååšïŒ </APIReturns> </API>api.comment.nodeIdä»leafèç¹è·åè¯è®ºIDã
<API name="nodeId"> <APIParameters> <APIItem name="leaf" type="TCommentText"> è¯è®ºleafèç¹ </APIItem> </APIParameters> <APIReturns type="string | undefined"> æŸå°çè¯è®ºIDïŒåŠååšïŒ </APIReturns> </API>api.comment.nodesè·åææå¹é æ¡ä»¶çè¯è®ºèç¹entryã
<API name="nodes"> <APIOptions type="EditorNodesOptions & { id?: string; isDraft?: boolean }" optional> æ¥æŸèç¹çé 眮é项 </APIOptions> <APIReturns type="NodeEntry<TCommentText>[]"> è¯è®ºèç¹entryæ°ç» </APIReturns> </API>getCommentCountè·åè¯è®ºèç¹äžçéèçš¿è¯è®ºæ°éã
<API name="getCommentCount"> <APIParameters> <APIItem name="node" type="TCommentText"> è¯è®ºèç¹ </APIItem> </APIParameters> </API>getCommentKeyæ ¹æ®IDçæè¯è®ºkeyã
<API name="getCommentKey"> <APIParameters> <APIItem name="id" type="string"> è¯è®ºID </APIItem> </APIParameters> </API>getCommentKeyIdä»è¯è®ºkeyäžæåè¯è®ºIDã
<API name="getCommentKeyId"> <APIParameters> <APIItem name="key" type="string"> è¯è®ºkey </APIItem> </APIParameters> </API>getCommentKeysè¿åèç¹äžååšçææè¯è®ºkeyæ°ç»ã
<API name="getCommentKeys"> <APIParameters> <APIItem name="node" type="TCommentText"> èŠæ£æ¥çèç¹ </APIItem> </APIParameters> </API>getDraftCommentKeyè·åèçš¿è¯è®ºäœ¿çšçkeyã
isCommentKeyæ£æ¥ç»å®keyæ¯åŠäžºè¯è®ºkeyã
<API name="isCommentKey"> <APIParameters> <APIItem name="key" type="string"> èŠæ£æ¥çkey </APIItem> </APIParameters> <APIReturns type="boolean"> æ¯åŠäžºè¯è®ºkey </APIReturns> </API>isCommentNodeByIdæ£æ¥ç»å®èç¹æ¯åŠäžºæå®IDçè¯è®ºã
<API name="isCommentNodeById"> <APIParameters> <APIItem name="node" type="TNode"> èŠæ£æ¥çèç¹ </APIItem> <APIItem name="id" type="string"> è¯è®ºID </APIItem> </APIParameters> <APIReturns type="boolean"> æ¯åŠäžºæå®IDçè¯è®ºèç¹ </APIReturns> </API>TCommentTextå¯å å«è¯è®ºçææ¬èç¹æ¥å£ã
<API name="TCommentText"> <APIAttributes> <APIItem name="comment" type="boolean" optional> æ¯åŠäžºè¯è®ºèç¹ </APIItem> <APIItem name="comment_<id>" type="boolean" optional> è¯è®ºIDæ è¯ãåäžªææ¬èç¹å¯å å«å€äžªè¯è®ºã </APIItem> </APIAttributes> </API>â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â â
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ