将您的第一个Camel.js博客部署到Heroku

Camel是一个Node.js博客平台,旨在快速,简单且精简。

用骆驼的作者凯西·利斯(Casey Liss)的话说:

Camel既不是静态的Blog平台,也不是真正的动态平台。 它距A列有点远,距B列有点远。第一次加载帖子时,它是通过从Markdown转换为HTML呈现的,然后通过添加页眉和页脚以及对元数据进行替换来进行后处理。 完成渲染后,从该点开始存储并使用结果HTML。

如果您想看看在野外奔跑的Camel的一些示例,可以在Liss is More上查看原始的Camel支持的博客,或者在我的两个Camel支持的博客中: Data McFly BlogRogerStringer.com 。 后者以前是WordPress博客,拥有超过2,550篇博客文章,涵盖了十多年的博客工作,并且相当顺利地迁移到了Camel。

自2014年10月以来,我一直在使用Camel,尽管最初的设置可能会有些有趣,但与之合作有趣。 考虑到这一点,在本文中,我们将逐步建立您的第一个Camel博客并部署到Heroku。

骆驼入门

首先,请确保已安装Node.js和npm。 您可以下载节点从这里 ,和NPM 从这里 。 如果您在安装Node.js(或npm)方面需要帮助,请查看最近的SitePoint文章 ,该文章涵盖了该主题。

接下来,我们需要一份Camel仓库:

git clone https://github.com/cliss/camel.git

这将创建一个名为camel的文件夹,进入该文件夹并运行npm install来安装依赖项。

现在,我们可以通过键入node camel.js来测试Camel是否正常工作。 如果一切顺利,您应该可以在浏览器中访问http://localhost:5000并查看基本的Camel安装。

基本的骆驼安装屏幕截图

骆驼模板系统

骆驼的模板文件存储在templates文件夹中。

+-- templates/
|     +-- defaultTags.html
|     +-- header.html
|     +-- footer.html
|     +-- postHeader.html
|     `-- rssFooter.html
  • defaultTags.html是我们存储站点范围内元数据的地方,例如作者信息,站点URL和站点标题。
  • header.html是我们博客的标题,显示在网站的每个页面上。
  • footer.html是网站页脚,也显示在每个页面上。
  • postHeader.html是用于显示帖子标题的文件。 它将插入网站标题后,并显示在每个帖子中。
  • rssFooter.html显示在每个RSS项的末尾。 这可能是指向您博客的链接,也可能是模糊的页面,用于告诉读者帖子的来源。

循环在Camel中的处理方式略有不同,而不是放在单独的文件中,而是将它们作为Handlebars模板存储在posts/index.md文件中:

@@ Title=Home
@@ BodyClass=homepage
@@ DayTemplate=<div class="day">...</div>
@@ ArticlePartial=<div class="article">...</div>
@@ FooterTemplate=<div class="paginationFooter">...</div>

此页面包含在整个站点范围内使用的三个把手模板:

  • DayTemplate用于呈现帖子列表中的每一天。
  • ArticlePartial用于呈现单个文章。
  • FooterTemplate用于在页面底部呈现分页。

最后,我们需要考虑样式。 打开templates/header.html ,然后将<body>标记替换为:

<body class="@@BodyClass@@">
  <div class="container">
    <div class="content">
      <div class="header">
        <div class="siteTitle"><a href="/">@@SiteTitle@@</a></div>
        <div class="siteByline">By @@siteAuthor@@</div>
        <nav>
          <a href="/about" rel="author">About</a>
          <span class="dot">&bull;</span>
          <a href="/rss">RSS</a>
        </nav>
      </div><!-- header -->
      <div class="main">

这将为我们的网站标题提供定义。

打开templates/footer.html并添加网站页脚:

</div><!-- main -->
      </div><!-- content -->
      <footer>
        <p class="copyright">Copyright &copy; 2015 - My Site</p>
      </footer>
    </div><!-- container -->
  </body>
</html>

最后,打开public/css/site.css添加一些样式。 我们将使用此代码段 ,但随时可以添加自己的代码段

提交对Git的更改:

git add .
git commit -m "Added basic styling"

然后重新启动服务器并刷新浏览器

关于缓存的一句话

默认情况下,每次对Camel博客进行任何更改并且要在浏览器中查看它们时,都必须重新启动服务器(每30分钟清除一次缓存)。 这会很快变得很烦人。

要解决此问题,请取消注释camel.js的以下行:

// app.get('/tosscache', function (request, response) {
//     emptyCache();
//     response.send(205);
// });

重新启动服务器,然后您将有一个/tosscache路由可供使用,顾名思义,该路由清空缓存并允许您预览更改而无需重新启动。

骆驼直播

现在是时候启动您的Camel博客了,让全世界看看。 我们将使用Heroku作为我们的虚拟主机,因为它可以很好地处理Node.js网站。

首先,注册一个免费帐户。 然后,下载并安装Heroku Toolbelt(一种非常方便的命令行工具),使您可以从终端管理站点。

现在,通过五个简单的步骤,我们将创建Heroku应用并部署博客。 从您的camel文件夹中的终端:

  1. heroku login以登录Heroku。
  2. heroku create在Heroku中创建应用程序。
  3. git push heroku master将您的网站推送到Heroku。
  4. heroku ps:scale web=1告诉Heroku创建一个dyno (一个工作程序,响应Web请求)。
  5. 将打开heroku open以使用新的自定义URL打开浏览器。

添加您自己的域名

现在,您将获得一个随机生成的子域,该子域表示为http://random-name-12345.herokuapp.com 。 这对于测试是很好的选择,但是对于您希望每个人都阅读的真实世界级博客而言,则不是。

要将您自己的域名添加到您的Heroku应用程序,请在终端上运行以下命令:

heroku domains:add www.mysite.com

然后,当您使用DNS管理工具(可能是GoDaddy,CloudFlare(或其他任何地方))时,只需将您的域作为CNAME记录指向您的站点。

因此,如果您的Heroku子域为: random-name-12345.herokuapp.com ,并且将其指向名为myawesomeblog.com的域,则CNAME如下所示:

www CNAME random-name-12345.herokuapp.com
myawesomeblog.com CNAME random-name-12345.herokuapp.com

本地管理帖子

添加新帖子时,首先将文件添加到年份文件夹,然后是月份文件夹,再添加到要为其创建帖子的当天文件夹。 例如,要添加2015年2月24日的信息,我们将使用以下文件夹结构:

`-- posts/
    +-- 2015/
    |     +-- 2/
    |     |   +-- 24/
    |     |   |    `-- my-new-blog-post.md

文件my-new-blog-post.md是新帖子。 如果您要在新的月份或日期创建帖子,则可以随时创建这些文件夹。

页面(例如/aboutposts文件夹的根目录中创建。

现在,让我们编辑my-new-blog-post.md并添加一些内容。 对于每个帖子,元数据都在顶部指定,并且可以在正文中使用。

@@ Title=Hello, World!
@@ Date=2015-03 17:50
@@ Description=This is a short description used in Twitter cards and Facebook Open Graph.
@@ Image=http://somehost.com/someimage.png

This is a *test post* entitled "@@Title@@".

TitleDate字段是必填字段。 其他任何元数据(例如DescriptionImage )都是可选的。

将更新推送到Heroku

添加或编辑帖子后,您将需要将更新的博客部署到Heroku。

为此,将文件提交到Git( 如上所示 ),然后运行:

git push heroku master
heroku open

它将把您的更改推送到Heroku并在浏览器中打开更新的博客

这种方法的唯一缺点是,您只能使用设置此方法的计算机。 如果您是移动用户,并且想在平板电脑或手机上编辑帖子,则不合适。

幸运的是,Heroku已为您服务,并可以与您的Dropbox帐户同步。

管理您的Dropbox帐户中的帖子

设置您的骆驼博客以与您的Dropbox帐户同步,使您可以从任何地方编辑帖子。 我通常会从iPhone或iPad起草帖子,然后将新帖子部署到Heroku。

要进行设置,请转到您的Heroku帐户,然后单击为博客设置的Heroku应用。

单击Deploy按钮,然后选择Dropbox

然后将提示您将Dropbox帐户链接到Heroku应用程序。 完成此操作后,您的Camel博客将出现在您的Dropbox帐户中。

Heroku使用以下文件夹结构设置您的网站:

`– Apps/
    +– Heroku/
    |     +– my-camel-blog/

从现在开始,您可以转到该文件夹​​并添加或编辑帖子和模板。

通过Dropbox部署

进行更改后,就可以再次进行部署了。

使用Dropbox设置,通过登录到Heroku仪表板将更改推送到Heroku,而不是从终端推送更改。

准备好部署更改时,请输入简短的更改描述,然后单击Heroku仪表板上的“ Deploy按钮。 您输入的用于部署的消息将作为提交消息。

启动后,仪表板将显示发布进度,并通知您是否有任何问题。

结论

在本教程中,您学习了如何将第一个Camel博客部署到Heroku,如何在本地使用您的博客,以及如何使用Dropbox从任何设备编辑和撰写帖子。

总体而言,Camel是一个简洁的博客引擎,易于扩展和构建。 例如,如果您查看CamelData McFly版本 ,我添加了对类别和站点地图的支持。

实际上,与其他博客引擎相比,我更喜欢Camel,这主要是因为其简单且没有膨胀。

From: https://www.sitepoint.com/deploying-camel-js-blog-heroku/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值