Recipe文件

Recipe是一个XML格式的文件,包含站点安装时需要进行的配置,我们在第一次启用Orchard站点,进入站点安装页面的时候,能够通过选择Recipe,将站点安装成我们想要的样子。

你能够自己创建Recipe文件,定义站点安装时需要进行的配置,需要下载、安装的模块,启用的主题等等。

使用 Recipe 创建站点

当我第一次启用orchard站点的时候,会弹出站点安装界面,在这里,有一个Recipe列表,我们选择我们需要的,然后安装:

默认有3个Recipe:

  • Default. 这个Recipe包含了页面、博客、自定义内容类型、评论、标签、部件和基础导航。
  • Blog. 提供了一个私人博客站点。
  • Core. 只提供了核心功能的站点。

    Recipes结构

    Recipe是一个XML格式的文件:

    <?xml version="1.0"?>

    <Orchard>

    <Recipe>

    <Name>Default</Name>

    <Description>The default recipe for an Orchard site that includes pages, blogs, custom content types, comments, tags, widgets and basic navigation.</Description>

    <Author>The Orchard Team</Author>

    <WebSite>http://orchardproject.net</WebSite>

    <Tags></Tags>

    <Version>1.0</Version>

    <IsSetupRecipe>true</IsSetupRecipe>

    </Recipe>

     

    <Feature enable="Orchard.Blogs,Orchard.Comments,Orchard.Tags,

    Orchard.Lists,TinyMce,Orchard.Media,Orchard.MediaPicker,Orchard.PublishLater,

    Orchard.jQuery,Orchard.Widgets,Orchard.ContentTypes,

    Orchard.Scripting,Orchard.Scripting.Lightweight,

    PackagingServices,Orchard.Packaging,Gallery,Gallery.Updates,

    TheThemeMachine" />

     

    <Metadata>

    <Types>

    <Page ContentTypeSettings.Draftable="True" TypeIndexing.Included="true">

    <TagsPart />

    <LocalizationPart />

    </Page>

    <BlogPost ContentTypeSettings.Draftable="True" TypeIndexing.Included="true">

    <CommentsPart />

    <TagsPart />

    <LocalizationPart />

    </BlogPost>

    </Types>

    <Parts>

    <BodyPart BodyPartSettings.FlavorDefault="html" />

    </Parts>

    </Metadata>

     

    <Settings />

     

    <Migration features="*" />

     

    <Command>

    layer create Default /LayerRule:"true"

    layer create Authenticated /LayerRule:"authenticated"

    layer create Anonymous /LayerRule:"not authenticated"

    layer create Disabled /LayerRule:"false"

    layer create TheHomepage /LayerRule:"url '~/'"

    page create /Slug:"welcome-to-orchard" /Title:"Welcome to Orchard!" /Path:"welcome-to-orchard" /Homepage:true /Publish:true /UseWelcomeText:true

    widget create HtmlWidget /Title:"First Leader Aside" /Zone:"TripelFirst" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true

    widget create HtmlWidget /Title:"Second Leader Aside" /Zone:"TripelSecond" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true

    widget create HtmlWidget /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true

    menuitem create /MenuPosition:"1" /MenuText:"Home" /Url:"" /OnMainMenu:true

    </Command>

    </Orchard>

    Recipe各个节点的含义如下:

  • Recipe. 这个节点包含了Recipe文件的基本信息,比如名称和描述。
  • Feature. 站点需要启用的特性。
  • Metadata. 类容类型、元件、字段配置。
  • Settings. 站点设置。
  • Command.站点安装的时候,需要执行的命令。

    创建一个自定义的 Recipe文件

    进入项目的Setup模块的Recipes文件夹,复制一个已经有的Recipes文件到当前文件夹,更改复制后的文件的名称,注意,文件名必须以recipe.xml结尾,比如,复制default.recipe.xml文件到当前目录,命名为custom.recipe.xml。

    打开custom.recipe.xml文件,更改Recipe节点的名称和说明,然后添加Bing.Maps模块和Orchard.Theme.Dark 主题,这个模块和主题,会在安装的时候,自动在网上下载(国内网速问题,不要用这种方法):

    <?xml version="1.0"?>

    <Orchard>

    <Recipe>

    <Name>Custom Recipe</Name>

    <Description>A recipe that includes a landing page with blog on a second tab.</Description>

    <Author>The Orchard Team</Author>

    <WebSite>http://orchardproject.net</WebSite>

    <Tags></Tags>

    <Version>1.0</Version>

    <IsSetupRecipe>true</IsSetupRecipe>

    </Recipe>

     

    <Module packageId="Orchard.Module.Bing.Maps" />

     

    <Theme packageId="Orchard.Theme.Dark" current="true" />

     

    <Feature enable="Orchard.Blogs,Orchard.Comments,Orchard.Tags,

    Orchard.Lists,TinyMce,Orchard.Media,Orchard.MediaPicker,Orchard.PublishLater,

    Orchard.jQuery,Orchard.Widgets,Orchard.Widgets.PageLayerHinting,Orchard.ContentTypes,

    Orchard.Scripting,Orchard.Scripting.Lightweight,

    PackagingServices,Orchard.Packaging,Gallery,Gallery.Updates,

    TheThemeMachine,Bing.Maps" />

     

    <Metadata>

    <Types>

    <Page ContentTypeSettings.Draftable="True" TypeIndexing.Included="true">

    <TagsPart />

    <LocalizationPart />

    </Page>

    <BlogPost ContentTypeSettings.Draftable="True" TypeIndexing.Included="true">

    <CommentsPart />

    <TagsPart />

    <LocalizationPart />

    </BlogPost>

    </Types>

    <Parts>

    <BodyPart BodyPartSettings.FlavorDefault="html" />

    </Parts>

    </Metadata>

     

    <Settings />

     

    <Migration features="*" />

     

    <Command>

    layer create Default /LayerRule:"true"

    layer create Authenticated /LayerRule:"authenticated"

    layer create Anonymous /LayerRule:"not authenticated"

    layer create Disabled /LayerRule:"false"

    layer create TheHomepage /LayerRule:"url '~/'"

    layer create Blog /LayerRule:"url '~/Blog'"

    layer create Maps /LayerRule:"url '~/Maps'"

    page create /Slug:"welcome-to-orchard" /Title:"Welcome to Orchard!" /Path:"welcome-to-orchard" /Homepage:true /Publish:true /UseWelcomeText:true

    blog create /Slug:"blog" /Title:"Blog" /Homepage:false /Description:"This is your Orchard Blog."

    page create /Slug:"maps" /Title:"Bing Maps" /Path:"bing-maps" /Homepage:false /Publish:true /UseWelcomeText:false

    widget create HtmlWidget /Title:"First Leader Aside" /Zone:"TripelFirst" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true

    widget create HtmlWidget /Title:"Second Leader Aside" /Zone:"TripelSecond" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true

    widget create HtmlWidget /Title:"Third Leader Aside" /Zone:"TripelThird" /Position:"5" /Layer:"TheHomepage" /UseLoremIpsumText:true

    menuitem create /MenuPosition:"1" /MenuText:"Home" /Url:"" /OnMainMenu:true

    menuitem create /MenuPosition:"2" /MenuText:"Blog" /Url:"~/Blog" /OnMainMenu:true

    menuitem create /MenuPosition:"3" /MenuText:"Maps" /Url:"~/Maps" /OnMainMenu:true

    </Command>

    </Orchard>

    我们对default.recipe.xml文件进行了下面的更改:

  • Module节点: 这个元素配置了安装站点时需要从Orchard园下载的模块。但是注意,这个节点不会自动启用模块的特性。
  • Theme节点: 这个元素配置了安装站点时需要从Orchard园下载的主题。如果current 特性设置为true,那么,该主题会作为当前主题。否则,只会下载和安装。

    注意: Module节点和Theme节点必须在Recipe节点后面。

  • layer create 命令:创建Blog 和Maps 层。
  • blog create 命令:创建博客命令。
  • page create 命令:创建Maps页面。
  • menuitem create 命令:创建了Blog和Maps菜单。

    Module和Theme节点都包含version特性,如果指明了version,那么下载时,只会下载给定版本号的模块或样式。他们还具有repository特性,该特性配置了指向orchard园的URL路径。

    Note that recipes used for importing mustn't contain an IsSetupRecipe element or it should be set to false.

    导入和导出Recipe

    Orchard提供从站点导入导出Recipe的能力.这个功能来源于Import Export 模块。

    首先,我们启用Import Export特性。

    点击后台Import/Export菜单项。进入Export Tab页,选中需要包含在Recipe文件中的types, metadata, data, 和 settings,单机Export.

    进入Import Tab页,我们可以导入Recipe文件:

posted @ 2015-08-27 14:39  争世不悔  阅读(2554)  评论(0编辑  收藏  举报