标签: middleman

静态网站生成

我需要一种简单的方法来生成静态网页,以便我可以使用Apache或Nginx提供它们.目前我正在使用SproutCore的构建工具(Abbot)来生成静态页面,但这有点麻烦,因为它是为构建SproutCore应用程序而非非SproutCore HTML页面而设计的.

这是我的要求:

  • Javascript必须合并和缩小
  • 必须组合CSS文件
  • 每个image/CSS/Javascript资产必须具有唯一的URL才能获得更好的缓存(查询字符串不够)
  • 资产URL只有在真正发生变化时才会有所不同
  • 本地化支持彻底的HTML,CSS,Javascript和图像文件
  • 漂亮的模板引擎与布局,局部等.

以下是我找到的可能的解决方案:

有什么想法吗?

经过漫长的评估过程,我决定使用Middleman.它可以解决问题,我喜欢它的简单性以及我可以使用现有的Rack组件.

最好的祝福,

佩卡·马蒂拉

ruby ruby-on-rails-plugins ruby-on-rails-3 middleman

16
推荐指数
1
解决办法
5130
查看次数

在Middleman布局文件中获取页面的当前路径

是否可以在中间人文件中检索页面的当前路径?例如,如果我有一个layout.erb类似于以下内容的布局文件:

<%= page.path %>
<%= yield %>
Run Code Online (Sandbox Code Playgroud)

和测试文件index.html:

Testing
Run Code Online (Sandbox Code Playgroud)

当Middleman渲染页面时,我会得到类似的东西:

/index.html
Testing
Run Code Online (Sandbox Code Playgroud)

ruby middleman

16
推荐指数
1
解决办法
1万
查看次数

使用MIddleman 3.0 - 如何在动态页面上设置单个页面标题?

我正在中间人组建一个简单的投资组合网站.我根据本地YAML数据动态生成"工作"页面.这是在config.rb中:

data.work.projects.each do |project|
  page "/work/#{project[0]}.html", :proxy => "project_template.html" do
    @project = project
  end
end
Run Code Online (Sandbox Code Playgroud)

出于搜索引擎优化的目的,我希望这些动态生成的页面中的每一个都具有唯一的页面标题和描述.

标题当前在布局文件中设置如下

  %title
    = current_page.data.title
Run Code Online (Sandbox Code Playgroud)

而且我知道我可以使用frontmatter来设置这样的current_page变量

---
title: "Recent Work - "
---
Run Code Online (Sandbox Code Playgroud)

我可以将它粘贴到我的project_template.haml中,但是有什么方法可以让这样的东西工作吗?

---
title: "Recent Work - " + @project.title
---
Run Code Online (Sandbox Code Playgroud)

ruby middleman

13
推荐指数
2
解决办法
5884
查看次数

在中间部署中,部署路径不适用于Git Deploy Method

我正在使用middleman-blogmiddleman-deploy.

我想要做的是,在我部署的分支内,我希望将静态文件部署到repo中的子文件夹(即不是根文件夹).

我尝试在我这样做config.rb:

activate :deploy do |deploy|
  deploy.build_before = true
  deploy.deploy_method = :git
  deploy.branch = 'gh-pages-2'
  deploy.remote = 'github'
  deploy.path = 'blog'
end
Run Code Online (Sandbox Code Playgroud)

但这不起作用,它仍然部署到根目录.事实上,它甚至没有创建/blog我正在寻找的文件夹.

当我在本地访问配置设置时,这些是我在下面看到的设置:deploy:

:deploy
   :branch = "gh-pages"
   :build_before = true
   :clean = false
   :commit_message = nil
   :deploy_method = :git
   :flags = nil
   :host = nil
   :password = nil
   :path = "blog"
   :port = 22
   :remote = "github"
   :strategy = :force_push
   :user = nil
Run Code Online (Sandbox Code Playgroud)

这向我表明正确设置了path属性.

我也尝试过deploy.path = '/blog' …

ruby git deployment middleman

13
推荐指数
1
解决办法
268
查看次数

如何在静态站点中创建根相对链接?

构建静态HTML网站时,您可以像这样设置基本网址<base url="http://localhost:8888/mysite" />.据说当你插入一个图像时,你可以从那个基本网址中这样做<img src="/img/logo.png" />,这相当于<img src="http://localhost:8888/mysite/img/logo.png" />

我的问题是,当我移动网站时,这些相对链接不起作用,这很痛苦,因为我试图与Dropbox上的某人分享.我以为我可以将基本网址添加到其中<base url="http://dl.dropbox.com/u/xxxxxxxx/mysite" />,但图片链接在这里查看:<img src="http://dl.dropbox.com/img/logo.png" />而不是我在头部设置的完整基本网址.

为什么是这样?

html url relative-path root middleman

11
推荐指数
1
解决办法
3万
查看次数

如何知道代码运行在什么环境中?

layout的文件haml,我想确定我们是否在我们的发展和建设环境.我们正在使用米德曼.

我想做这样的事情:

- if environment == 'development'
    / Development Code
    = javascript_include_tag "Dev.js"
Run Code Online (Sandbox Code Playgroud)

我试图访问Ruby的环境变量,并在config.rb文件中定义自定义变量但没有成功.

ruby haml middleman

11
推荐指数
1
解决办法
3967
查看次数

Middleman和Github页面

我正在尝试使用Middleman创建一个静态站点.git repo master有源文件.静态文件在build文件夹中生成.gitignore.我有一个gh-pagesGithub页面的分支.如何设置gh-pages具有build文件夹内容的东西master.

谢谢.

github middleman github-pages

10
推荐指数
2
解决办法
3681
查看次数

中间人控制台:如何使用它?

我想知道如何使用middleman console.这是一个简单的irb吗?我能用它做什么与简单的irb不同?

middleman console [options]         # Start an interactive console in the cont...
Run Code Online (Sandbox Code Playgroud)

我有一些文章,我尝试做,Article.all但我有以下错误:

NameError: uninitialized constant Middleman::Application::MiddlemanApplication1::Article
    from (irb#1):1
Run Code Online (Sandbox Code Playgroud)

我也有本地数据 /data/friends.json但Friend.all输出错误.

{
  "friends": [
    "Tom",
    "Dick",
    "Harry"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我看到Symbol.all_symbols输出了很多中间变量和函数,但我真的不知道如何使用中间人控制台.

middleman

10
推荐指数
1
解决办法
1571
查看次数

如何在Middleman中生成导航?

我只是习惯了Middleman和Ruby.生成具有活动状态的导航的最佳方法是什么?

ruby navigation middleman

9
推荐指数
1
解决办法
5477
查看次数

Cloudfront/S3:服务器不同的文件,具体取决于请求标头

我将在CloudFront和S3上托管使用Middleman生成的静态网站.我想添加多语言支持,中间人允许我本地化内容,并在/index.html上有英文版本,在/sp/index.html上有翻译内容.

我希望能够在请求中检测"Accept-Language"标头,并基于该服务器/index.html或/sp/index.html.

根据我的研究,我无法看到使用S3和Cloudfront做到这一点的方法,但也许你们有个主意?

如果没有"适当和好的方式"使用CloudFront和S3这样做,那么下一个最佳替代方案是什么?目前我正在考虑在JavaScript中检测语言,然后在语言不是英语的情况下重定向用户.

问候,金

localization amazon-s3 middleman amazon-cloudfront

9
推荐指数
1
解决办法
2591
查看次数