石圈内容类型扩展:文档
项目描述
menhir.contenttype.document 为基于 Dolmen 和 Grok 的应用程序提供以文本为中心的内容。此文档类型有一个允许WYSIWYG编辑的字段,并自动索引以进行全文搜索。
模式
一个 Document 有一个专门的模式定义一个文本字段,除此之外还有基本的 IDescriptiveSchema
>>> from dolmen.app.content import IDescriptiveSchema >>> from menhir.contenttype.document import IDocument >>> IDocument.isOrExtends(IDescriptiveSchema) True >>> from dolmen.content import schema >>> from menhir.contenttype.document import Document >>> IDocument in schema.bind().get(Document) True
文本字段称为“body”,因为它代表文档的主体文本
>>> for attr, doc in IDocument.namesAndDescriptions(): ... print attr, ':', doc body : <zope.schema...Text object at ...>
工厂
为了创建一个 Document 内容,当前用户必须从 dolmen.app.security 包中授予 dolmen.content.Add 权限
>>> from dolmen.content import require >>> require.bind().get(Document) 'dolmen.content.Add'
表单
WYSIWYG小部件由 dolmen.widget.tinymce 提供,使用javascript库TinyMCE和jQuery。添加表单和编辑表单将显示小部件,因为 menhir.contenttype.document 提供了一个 FieldsCustomizer 适配器(请参阅 dolmen.forms.crud 文档)
>>> from dolmen.forms.crud import Edit >>> mydoc = Document(title=u'Some title', body=u"Some body") >>> from zope.publisher.browser import TestRequest >>> request = TestRequest() >>> editform = Edit(mydoc, request) >>> editform.update() >>> editform.fields['body'].mode <Marker TINYMCE.INPUT>
索引
一个 Document 使用一个 ISearchableText 适配器进行全文索引
>>> from zope.index.text.interfaces import ISearchableText >>> indexer = ISearchableText(mydoc) >>> indexer.getSearchableText() (u'Some title', u'', u'Some body\n\n') >>> mydoc.body = u'<p>Rich content comes in <strong>HTML</strong></p>' >>> indexer.getSearchableText() (u'Some title', u'', u'Rich content comes in **HTML**\n\n') >>> mydoc.description = u"I'm described" >>> indexer.getSearchableText() (u'Some title', u"I'm described", u'Rich content comes in **HTML**\n\n')
视图
一个 Document 有自己的索引视图,允许它以简单的方式渲染,而不使用默认字段名称(请参阅 dolmen.forms.crud)
>>> from zope.component import getMultiAdapter >>> view = getMultiAdapter((mydoc, request), name='index') >>> from dolmen.app.layout import Page >>> isinstance(view, Page) True >>> print view.content() <div class="document"> <h1>Some title</h1> <p>Rich content comes in <strong>HTML</strong></p> </div>
变更日志
0.2 (2011-02-14)
更新为使用来自 dolmen.app.content 的 IDescriptiveContent,而不是来自已不存在的 dolmen.content 的 IBaseContent:现在文档除了 标题 外还有一个 描述 属性。此更改已在索引器中得到反映。
更新了依赖项。
0.1 (2010-07-20)
首次发布
项目详情
关闭
menhir.contenttype.document-0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | be4c72efb1d259f966c3b58d0e46c808b1809b6ae68f5b253b2659970693b16a |
|
MD5 | 212fcddfb83386654c0f5d947fae4ee5 |
|
BLAKE2b-256 | 5dc0c94711398aa6a19322324c276ba8076104191ead35f82e75e35b567ae7b8 |