1

私は、NodeJS 静的ブログ ジェネレーターである HarpJS を試しています。チュートリアルには、メタデータの例があります。

for article, slug in public.articles._data
 a(href="/articles/#{ slug }")
  h2= article.title

および_data.jsonファイル:

{
 "hello-world": {  <-- available everywhere as public.articles._data
  "title": "Hello World.",
  "date": "2013-02-28"
 },
 "hello-brazil": {
  "title": "Hello Brazil.",
  "date": "2013-03-04"
 }
}

私が理解していればfor article、すべての高レベルのオブジェクトが正しく取得され、 でタイトルarticle.titleまたは日付を取得できますarticle.date。しかし、何slugですか?Jade/HarpJs の定義済み変数ですか? もしそうなら、他にもありますか、それともコンセプトが間違っていましたか? このトピックに関する情報が見つかりませんでした。良い記事があれば、それを読んでいただければ幸いです。ありがとうございました。

@Brennan がコメントで示唆しているように、2 番目の引数はインデックスである可能性があります。変数の単純な置換と名前変更は、articleそれをslug証明しています。しかし、もう1つ問題があります。次の例を検討してください。

{
 "hello-world": {
  "title": "Hello World.",
  "date": "2013-02-28",
  "test": {
    "testContent": "123"
  }
 },
 "hello-brazil": {
  "title": "Hello Brazil.",
  "date": "2013-03-04"
 }
}


for s, a in public.articles._data
 a(href="/articles/#{ a }")
  h2= s.title
  h3= s.date
  h3= a
  - var obj =  s.test
  h3= obj
  h3= obj.testContent

このコードは、コンパイル中にエラーになります。最後の行にコメントすると、うまくいきます。そして、最後の行をドキュメントのスニペットに置き換えることはできません:

each val, index in obj
  h1=index + ': ' + val

入れ子配列や 2 次元配列はありませんか?

4

2 に答える 2

1

次の例は、おそらく質問に答えます。

<h1><%= title %></h1>
<ul>
  <% for (var slug in public.posts._data) { %>
    <% var post = public.posts._data[slug] %> 
    <li>
      <a href="posts/<%= slug %>">
        <%= post.title %>
      </a>
    </li>
  <% } %>
</ul>
于 2016-06-19T20:21:17.283 に答える