用户名称 ?input type="text" name="UserName" value="" style="width:100px;margin:0; padding:0;" /> 用户密码 ?input type="password" name="UserPassword" style="width:100px;margin:0; padding:0;" />
网站建设 快速入?/a> | 宏蓝主页  | 加入收藏

告别CMS与臃肿化      Logecho打造全静态 客系?/div>
发起人: pengwanqiu  回复数 0  浏览数 837  最后更 :2014-6-6 17:21:43 by pengwanqiu
分享到: 微信

选择查看  帖子排序 ?select onchange="javascript:if(this.options[this.selectedIndex].value)window.location.href='/bbs/ShowPost/ThreadID/12773/amp;SortOrder/.html'+this.options[this.selectedIndex].value">
2014-6-6 17:21:43
pengwanqiu





团长

角  色: 蓝?br />??数:1036
??值:2072
注册时间 ?013-9-12
联系 收藏 编辑 删除
告别CMS与臃肿化      Logecho打造全静态 客系?/div>

为什么要静 化

相比于各类 交网站的兴起,个人博客 这个平台也开始进入更深刻的自我转变过程。由于我个人一直在参与这个过程,所以更能感受到它所带来的影响?/p>

?Wordpress 为首的系统 越来越趋?CMS 化,并且不 避免地越来越臃肿。以 Ghost 为首的新平 ,却把重心转向了撰写体验地打造上?/p>

在这个过程 出现了一个异类,那就是静态博客系统。网页静态化似乎与现今越来越丰富地媒体展现背道而驰,但它的出现却把自由撰稿者从繁杂的不必要的系统维 护中解放出来,让大家更专注于内容本身的精雕细琢,至于内容的分享与传播则可以交给更多的社交平台?/p>

Logecho是什?

是的,你现 看到我的网站就是?Logecho 生成的全静 网站,它可以运行于任何支持静态网站的服务器上(基本上是所有的)或者类?github.io 之类提供静 托管的平台中。不需要任何服务器配 ,写完了就可以直接发布?/p>

这是我继 Typecho 之后开发的 一款博客软件,目前还处于测试阶段,如果你迫不及待想要去使用它,请看下面的文字?/p>

如何开 ?/strong>

需要注意的 ?Logecho 的本地运行 境需?PHP 5.4+ 的支持,如 你运行的是最新的 Mac OSX 系统那么就 用关注这些。另外我们的命令行模式对 Windows 还不支持, 一点请注意?/p>

因为目前还 测试中,所以你得先?github 上克隆代 ?/p>

git clone https://github.com/typecho/logecho.git

然后编译出 个可执行文件

cd logecho && php build.php

你现在可以 当前目录下看?logecho 这样一个可 行文件,运行它可以看到一些基本用?/p>

  • $ ./logecho
  • LOGECHO 1.0.0
  • Copyright (c) 2013-2014 Logecho (http://logecho.com)
  • usage: logecho (init|build|sync|serve|help|update|import)
  • [your-working-directory]

实际上这个 件就是所?logecho 的全部了, 可以把它拷贝到任意你想要的位置,或者将其加入到环境变量中,这样你可以直接在任何地方使用logecho这样一个命 ?/p>

初始化一个 ?/p>

  • mkdir bloglogecho
  • init blog

这样 blog 目录就初始 完成了,它的结构?/p>

个人博客
 Logecho 网站系统
 服务器配
? border=

可以从字面 思直观理解到

  •     _theme目录放置的 模版文件 ,Logecho 采用了Twig模版引擎
  •     posts目录放置的 文章文件,都?markdown 格式?/li>
  •     config.yaml是一个配置 件,在后面我会来解释?/li>

配置文件

  • # You can configure this file to customize your site
    globals:
        # Definition of global variable
        title : My Blog Site
        description : Yet another logecho site
        url : http://logecho.com/
    blocks:
        # All blocks to compile
        post:
            source  : /posts/
            target  : /posts/
        category:
            source  :
                default : Default
            template  : archives.twig
            target    : archives.html
        tag:
            template  : archives.twig
            target    : archives.html
        archive:
            template  : archives.twig
            target    : archives.html   
        index:
            template  : index.twig
            target    : index.html
            limit     : 10
    feeds:
        # Definition of feeds gererating
        source  : post
        recent  : 20
        target  : feeds.xml
        author  : Logecho
    build:
        # The commands running after compile
        - cp -f @THEME/style.css @TARGET/style.css
    sync:
        # The commands running with sync operation

这是一个配置文件 的样本,从上到?/p>

globals

这里可以设 所有的全局变量,需要特别注意的是,在Logecho里没有任何 设的全局变量,你在这里 定的值只是为了方便你从模版里面调用对应的变量?/p>

 blocks

 这里用来设 所有的内容源以及编译关系,它主要有四种类型,用来描述内容和归档之间的关系。内容就是诸如文章,页面之类的载体,归档就是诸如分类,标签之 类的集合。我们通过?block 不同的定义 实现这两者之间的组合

  •     ?source 设置为一个  录:这种类型将被 logecho 自动识别为 容,并从你设置的这个目录下读取所有后缀?md的文章 ?/li>
  •     ?source 设置为一个 hash结构:这种 型将被视为归档,并且归档的范围就在你预设的这些hash结构?/li>
  •     不设?source:这种类型 被视为归档,范围约定,只要在文章中出现就会被归档
  •     特殊?archive 归档:这是 个预设的归档类型,所有文章将按照月份被归档到这个类型下面
  •     特殊?index 归档:这同 是一个预设的归档类型,所有内容的最新条目将被归档到这个 block 下,你可以 定一?limit 来指定它收 的条数限制,如果不设定将默认限制?10 条。它也可 可以是一?hash 结构,用来 定不同的内容收录不同的条数?/li>

 编译目标 target

 每个 block 都会设定一 ?target,也就是生 的文件目标,它可以是一个文件也可以是一个目录,如果是一个目?logecho 将自动按每 条目生成单个文件,如果是一个文?logecho 将把所有条 生成到一个文件中?/p>

注意:Logecho 会按照字符 结尾处有没有/来判断是否 一个目录。如果你不设?target,logecho 将自动把 block 编译为一个 它的类型为文件名?html 文件,比 ?tag 将编译为 tag.html?/strong>

关联内容和 ?/strong>

在某篇内容 ,比如hello-world.md文件的最前 加上如下语法即可将这个内容与相应的归档关联起?/p>

@category:default

@tag:php,redis

....

以上语法将 篇内容关联到名为default的category下面,以及 为php和redis的tag下面.其中category必须关联你 source 中指定的名 ,而tag因为没有指 source,则可以关 任意名称?/p>

模版文件

Logecho 采用了Twig模版系统 ?/p>

每个 block 都必须指定一个模版文件 ,主页的模版文件 将自动识别为index.twig。如果你不 定相?block 的模版文件 ,logecho 将自动指定 个以它的类型为文件名?twig 文件作为模 ,比?tag 的模版将识 ?tag.twig?/strong>

在模版中你 以使用如下变?/p>

  • 所有在globals里定义的变
  • 当前 block 生成的变 ?/li>

对于当前 block 生成的变 遵循如下原?/p>

变量名就是 block名称

比如?post 对应?post.twig 里,你可以 接使用{{ post.title }}语法来调 ?post 变量的相关 性?/p>

在归档页按 target的类型来读

在前面对 config 的解释中, target 可以设置为 录,也可以设置为单个文件,当它为目录的时候,当前 block 的变量取出 是一个标准的 hash 结构

比如在category.twig中,你可以 接使用{{ category.name }}来调用category的属性 ?/p>

但如果它是 个目录,那么 block 的变量取出 就是一个数组,你需要用循环的语法取出每个元?/p>

比如在category.twig中,你需 ?/p>

{% for cat in category %}

{{ cat.name }}

{% endfor %}

其他命令

build

logecho build /your-blog-dir/

它将根据你 配置,生成所有的 target 文件

serve

logecho serve /your-blog-dir/

它将先生成 ?target 文件,然后 动一?mini ?http 服务器,以 便你直接预览你的网页。你可以直接访问http://localhost:7000/来浏?/p>

sync

logecho sync /your-blog-dir/

将在执行 ?build 之后,再执 你再config.yaml里设定的 sync命令

import

logecho import http://your-blog-domain /your-blog-dir/

倒入任何支 xmlrpc 接口的博客 本地

update logecho update


:    31彩票   金沙彩票   七喜彩票娱乐   V8彩票多少赔率   彩票计划