meteor-blog, 在/blog,给你一个基本的,跳出了博客的博客

分享于 

17分钟阅读

GitHub

  繁體 雙語
Gives you a basic, out-of-the-box blog at /blog
  • 源代码名称:meteor-blog
  • 源代码网址:http://www.github.com/meteor-blog/meteor-blog
  • meteor-blog源代码文档
  • meteor-blog源代码下载
  • Git URL:
    git://www.github.com/meteor-blog/meteor-blog.git
    Git Clone代码到本地:
    git clone http://www.github.com/meteor-blog/meteor-blog
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/meteor-blog/meteor-blog
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Meteor 博客

    这个 Meteor 包提供了一个基本的out-of-the-box博客,位于 /blog ( 或者在哪里)。

    这个博客进行中。 为了帮助决定接下来添加什么,请使用你的 Github发布问题。

    Meteor Icon

    table-内容

    简介

    为什么?

    我们想在现有的项目中添加一个基于meteor的博客,而不运行其他应用程序。

    示例应用程序

    你可以在 http://blog-example.meteor.com 查看一个示例应用程序( 没有自定义)。

    Meteor 不再提供免费主机服务。 这里有一个示例应用程序,你可以自己。

    安装

    $ meteor add ryw:blog

    然后是:

    $ meteor add iron:router

    或者

    $ meteor add kadira:flow-router kadira:blaze-layout

    默认情况下,你将获取以下路由:

    
    /blog
    
    
    /admin/blog
    
    
    
    

    这些路径是可以定制的( 请参见下面)。 /admin/blog 要求 Meteor.user() 返回用户。

    特性

    • 中等样式编辑器
    • 基于锯齿的url ( 可以编辑)
    • 添加博客帖子图片( 存储在数据库中或者上传到 S3 )
    • 添加特色,"英文英文"图像的帖子
    • 支持 Disqus 注释
    • 博客帖子标签和标签视图
    • 将最近的帖子嵌入另一个窗口( 比如。 主页) 页
    • 自定义布局&模板
    • 自定义基本路径
    • SEO最佳实践( OpenGraph,Twitter 卡,共享按钮,Google+作者属性)
    • 自动保存
    • 分页
    • 代码语法高亮显示
    • 多个角色( 管理/作者)
    • 有 public,private &草稿模式
    • 对铁路由器和流量路由器的支持
    • RSS提要

    路线图

    查看增强跟踪程序。

    变更日志

    在版本之间的更改可以在 CHANGES.md 找到。

    概念

    你根本不需要任何配置,如果你对缺省值满意。 要配置博客,在客户机/服务器上创建一个共享文件,可能在 lib/blog.js 中。

    路由

    Meteor 博客与铁路由器和流量路由器一起工作。 如果你的应用程序和博客有冲突的路由,你的应用将获得优先权。 如果使用流路由器,则必须向应用程序添加 kadira:blaze-layout,因为 Meteor 博客在流路由器路由器中呈现模板的方式。

    自定义基本路径

    你可以定制博客的基本路径和博客管理区域。

    Blog.config({
     basePath:'/myBlog', // '/myBlog', '/myBlog/my-post', '/myBlog/tag/whatever', etc. adminBasePath:'/myBlogAdmin'});

    如果将 basepath 设置为 '/',则博客文章将出现在你应用程序的root 路径( 比如。 这意味着博客索引页面将是你的主页,除非你覆盖了该页面。 这也意味着 Meteor 博客可以作为一个简陋的CMS。 对于像特性一样的cms,创建一个 Github问题。

    如果需要一个 pathFor -like方法来生成 url,可以使用 blogPathFor ( 比如 )。 {{blogPathFor'blogIndex'}} )。

    角色

    默认情况下,任何登录的用户都可以管理这个博客。 要确保只有选择用户才能编辑博客,软件包支持两个角色:

    • adminRole - 可以创建,修改或者删除任何帖子。
    • authorRole - 只能创建,修改或者删除我自己的帖子。

    此外,如果使用 alanning:roles 包中的组,则使用

    • adminGroup - 与 adminRole 关联的组。
    • authorGroup - 与 authorRole 关联的组。

    要启用或者两个角色,请在博客配置中指定值:

    Blog.config({
     adminRole:'blogAdmin',
     authorRole:'blogAuthor'});

    然后,你需要给博客用户角色。 目前,你可以自己添加这些角色:

    管理模板

    管理模板是为 Bootstrap 设计的。 要使用管理区域,你应该添加 Meteor bootstrap-3 包。

    $ meteor add mrt:bootstrap-3

    自定义模板

    管理模板是为 Bootstrap 设计的。 但是前端是裸标记,准备通过样式化,并且不依赖于任何CSS框架。 如果默认模板没有为你执行,则可以通过设置配置变量,用自己的模板覆盖默认模板:

    Blog.config({
     blogIndexTemplate:'myBlogIndexTemplate', // '/blog' route blogShowTemplate:'myShowBlogTemplate'// '/blog/:slug' route});

    你可以在模板中使用软件包提供的这些Spacebars助手来显示带有一些基本的语义标记的博客帖子:

    • {{> blogIndex}} - 呈现博客帖子列表( /blog 路由)
    • {{> blogShow}} - 呈现单个博客帖子( /blog/:slug 路由器)

    例如:

    <templatename="myBlogIndexTemplate">
     <h1>Welcome to my Blog</h1>
     <div>{{> blogIndex}}</div>
    </template>

    如果不需要任何标记,请直接使用模板上下文中提供的博客数据:

    • blogReady - 当博客数据就绪时的true 标志
    • posts - minimongoid 博客帖子对象列表( /blog 路由)
    • post - minimongoid 博客帖子对象( /blog/:slug 路由)

    例如:

    <templatename="myBlogIndexTemplate">
     <h1>Welcome to my Blog</h1>
     <ul>
     {{#if blogReady}}
     {{#each posts}}
     <li>
     <h2>{{title}}</h2>
     <p>Published on {{publishedAt}}</p>
     <p>Excerpt: {{excerpt}}</p>
     </li>
     {{else}}
     <li>No posts found.</li>
     {{/each}}
     {{else}}
     <li>Loading...</li>
     {{/if}}
     </ul>
    </template>
    自定义布局

    默认情况下,为应用程序配置的布局使用。 若要仅为博客页面指定布局:

    Blog.config({
     blogLayoutTemplate:'myBlogLayout'});
    自定义密钥

    如果浏览器加载一个不存在的博客帖子,它将使用你的应用程序处理的notFound。 你可以提供一个自定义 notFoundTemplate,当没有找到博客帖子slug时使用。

    Blog.config({
     blogNotFoundTemplate:'myNotFoundTemplate'});

    评论

    Meteor 博客没有内置的注释功能。

    Disqus

    这里软件包支持 Disqus 注释。 在客户机中配置 Disqus 短名称,评论将在你的博客中显示 below。 如果你使用自己的blogShowTemplate 模板,请包括 {{> disqus this}} 来显示注释。

    Blog.config({
     comments: {
     disqusShortname:'myshortname' }
    });
    SideComments.js

    软件包与 SideComments.js 集成。 在你的博客设置中启用侧面评论。 目前,侧注释使用 Meteor 站点的Meteor 帐户作为评论用户,这可能不是你想要的。 你还可以允许匿名注释,它允许任何人键入任何内容,甚至不。 还有可能不是你想要的。

    Blog.config({
     comments: {
     useSideComments:true, // default is false allowAnonymous:true// default is false }
    });

    图像

    在你的博客帖子中添加图片可以工作,并将图片保存到Mongo数据库中的gridFS。

    S3映像

    你可以选择将这些图像设置为你配置的AmazonS3存储桶。 若要为文件存储设置 S3,请在 /settings.json ( 或者你选择的其他地点) 中添加以下内容。

    {
     "public": {
     "blog": {
     "useS3": true }
     },
     "private": {
     "blog": {
     "s3Config": {
     "bucket": "your-bucket-name",
     "s3ACL": "public-read",
     "s3MaxTries": 2,
     "accessKeyId": "XXXXXXXXXXXXX",
     "secretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
     "region": "(OPTIONAL most of the time)" }
     }
     }
    }

    博客文章模式

    在管理员中创建博客帖子时,你可以设置以下三种模式之一:

    • Public - 在博客中列出,谁可以看到
    • Private - 没有在博客中列出,但谁可以看到
    • Draft - 未发布且只能在博客管理员区域查看

    博客文章摘录

    默认情况下,博客摘要或者摘录是通过从博客文章中获取 1st 段来生成的。 可以通过配置自定义 excerptFunction 来重写这里函数。 例如如果你想从 1st 语句中创建一个摘录,请执行以下操作:

    Blog.config({
     excerptFunction:function(body) {
     returnbody.split('.')[0] +'.';
     }
    });

    分页

    默认情况下,博客文章以 20页的格式发布。 你可以在设置中修改此值。 设置为 null 以完全关闭分页。

    Blog.config({
     pageSize:10});

    默认的blogIndexTemplate 模板显示一个 Load More 按钮。 如果你使用自己的模板,请包括 {{blogPager}} helper 以显示按钮。

    代码突出显示

    如果你喜欢一个代码博客,博客包支持语法高亮使用 highlight.js。 如果启用,<pre> 标记中的任何内容都将被修改以突出显示语法。 你可以指定任何 highlight.js 样式文件。 示例配置:

    Blog.config({
     syntaxHighlighting:true, // default is false syntaxHighlightingTheme:'atelier-dune.dark'// default is 'github'});

    的社交共享

    这个软件包依赖于 liberation:shareit 软件包,用于电力社会共享。 默认情况下,显示Facebook和 Twitter 按钮。 你可以直接将配置传递给 shareit。 如果你使用自己的blogShowTemplate 模板,请包括 {{> shareit}} 以显示共享按钮。

    Blog.config({
     shareit: {
     siteOrder: ['twitter', 'facebook', 'pinterest'] // add Pinterest button }
    });

    最近的帖子小部件

    你可以包含一个基本的HTML Fragment来显示最近的博客文章( 比如。 在你的主页上,插入包含最新帖子的包含 helper。

    {{> blogLatest}}

    或者,你可以指定要显示的帖子的#:

    {{> blogLatest num=5}}

    模板中有类用于样式化,但是你也可以使用自己的小部件模板。

    Blog.config({
     blogLatestTemplate:'myLatestWidgetTemplate'});

    然后在任何地方包括 {{> myLatestWidgetTemplate}}。 它将接收以下数据上下文变量:

    • latest - 最新的num 博客文章列表
    • date - 日期格式 helper

    RSS

    /rss/posts 中自动生成一个RSS提要。 若要设置提要中的标题和说明,请配置 RSS:

    Blog.config({
     rss: {
     title:'My blog title',
     description:'My blog description' }
    });

    .html 文件中添加head标记,以便可以发现你的RSS提要:

    <head>
     <linkrel="alternate"type="application/rss+xml"title="My blog title"href="/rss/posts">
    </head>

    语言支持

    你可以更改博客在 Blog.config 中使用的标签的文本。
    以下是使用的默认标签:

    Blog.config({
     language: {
     blogEmpty:'This blog is looking pretty empty...',
     backToBlogIndex:'Back to the Blog',
     loadMore:'Load More',
     tags:'Tags',
     slug:'Slug',
     metaDescription:'Meta Description',
     body:'Body',
     showAsVisual:'Visual',
     showAsHtml:'HTML',
     save:'Save',
     cancel:'Cancel',
     "delete":'Delete',
     metaAuthorBy:'By',
     metaAuthorOn:'on',
     edit:'Edit',
     areYouSure:'Are you sure?',
     disqusPoweredBy:'comments powered by',
     adminHeader:'Blog Admin',
     addPost:'Add Blog Post',
     allPosts:'All Posts',
     myPosts:'My Posts',
     addPost:'Add Post',
     editPost:'Edit Post',
     title:'Title',
     author:'Author',
     updatedAt:'Updated At',
     publishedAt:'Published At',
     visibleTo:'Visible To',
     featuredImage:'Featured Image',
     selectFile:'Select File',
     imageAsBackground:'Use as background for title',
     enterTag:'Type in a tag & hit enter',
     postCreateFirst:'Create the first blog',
     postVisibilityAdmins:'Me & Admins only',
     postVisibilityLink:'Anyone with link',
     postVisibilityAnyone:'The world',
     saved:'Saved',
     editFeaturedImageSaved:'Featured image saved',
     editErrorSlugExists:'Blog with this slug already exists',
     editErrorBodyRequired:'Blog body is required' }
    });

    你可以更改博客在 Blog.config 中使用的日期格式。 可以选择 Moment.js 支持的任何可以接受的显示格式( ( 比如,had mm'或者'yyyy-MM-dd')。 默认日期格式为:

    Blog.config({
     dateFormat:'MMM Do, YYYY'});

    许可证

    MIT


    OUT  BOX  Basic  blog  
    相关文章