2017-08-19 6 views
-1

静的なHTMLページを作成し、そのコンテンツをjavascriptオブジェクトにバインドしたいのですが、markdownファイルの値をhtmlにバインドするMetalSmith-layoutというプラグインがありますが、私の場合バインド値は動的なので、静的なマークダウンを準備することはできません。または、マークダウンファイルを作成する必要があります。Metalsmith htmlテンプレートビューモデルバインド

私の質問では、Expressルータと同じようにテンプレートとjavascriptオブジェクトをバインドする方法がありますか? なvm.json

<html> 
... 
    <div>{{ firstName }}</div> 
    <div>{{ lastName }}</div> 
... 
</html> 

homepage.swig

/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('homepage', vm); 
}); 

として

{ 
    "firstName":"Tom", 
    "lastName":"Hansk" 
} 

答えて

0

私はちょうど私は、メタデータ内の私の見解モデルを追加することができ、すべてのレイアウトページができることを見出しましたこのグローバルオブジェクトにアクセスします。

var viewModel = 
{     
    firstName: "Tom", 
    lastName: "Hanks" 
}; 

Metalsmith(__dirname)   // __dirname defined by node.js: 
          // name of current working directory 
    .metadata(viewModel) // add any variable you want 
          // use them in layout-files 
    ... 
    .use(layouts({    // wrap layouts around html 
    engine: 'handlebars',  // use the layout engine you like 
    })) 
    ... 

template.html

<html> 
... 
    <div>{{ firstName }}</div> 
    <div>{{ lastName }}</div> 
... 
</html> 

ソース:https://github.com/segmentio/metalsmith/blob/master/examples/static-site/index.js

関連する問題