1

ファイルベースのブログを作成したい。データベースに保存できない/保存するデータベースについて十分に知らない/適合しないスクリプトがいくつかあります。ファイルベースのブログを作成するのは良い考えだと思います。言うほどのブログではありません。

使用したいフォルダー構造は次のとおりです。

App folder
 -- Posts 
 --- file1.erb
 --- file2.erb

 -- Posts2
 --- file3.erb
 --- file4.erb

Posts フォルダの内容を読み取って、タイトルを含む配列を作成するにはどうすればよいですか? それらをビューに保存できることは知っていますが、ビューはサイトのレイアウト用であると考えていました。

これは私がやっていることです:

get '/posts1/:id'  do 
    erb "posts_#{params[:id]}".to_sym
end

get '/posts2/:id'  do 
    erb "posts2_#{params[:id]}".to_sym
end

ブログに注意してください。これはブログではなく、それが何であるかを説明する最も簡単な方法です。

4

1 に答える 1

0

Markdown を使用する Sinatra でいくつかのアプリを作成しました。コンテンツに ERB を使用しないでください。

Markdown ファイルは次のようになります。

title: Breathe
date: 2013-08-05

Breathe.

マークダウン ファイルを含むディレクトリ "Posts" を指定すると、次のことができます。

Dir.glob "./app/posts/*.md" do |file|
  meta, content = File.read( file). split("\n\n", 2)
  article = OpenStruct.new YAML.load( meta)
  article.date = Time.parse article.date.to_s
  article.content = content
  article.slug = File.basename(file, '.md').gsub("_", '-')
  on "#{article.slug}" do
    erb :post, locals: { article: article }
  end
end

これにより、マークダウン ファイルのファイル名に基づいてルートが作成されます。だから「息をする」と言うならルートは「息をする」

ERBファイルでは、使用する必要があります

to_html(記事.コンテンツ)

ヘルパーを追加します。

require 'maruku'

def to_html(str)
  Maruku.new(str).to_html
end
于 2014-02-11T20:02:45.907 に答える