我已经在 Meteor 上安装了 markdown 包:
meteor add markdown
并测试成功:
<body>
{{#markdown}}
#Hello world!#
{{/markdown}}
</body>
好的!
现在我想从文件导入 Markdown ,我已经尝试过这种方式:
if (Meteor.isClient) {
Session.set("markdown_data","MDFile.md");
Template.myTemplate.helpers({
markdown_data: function() {
return Session.get("markdown_data");
}
});
}
在 html 中:
<body>
{{#markdown}}{{{markdown_data}}}{{/markdown}}
</body>
但是网页上、网络控制台或终端上都没有出现任何内容。
我哪里错了?
更新 - 工作代码
if (Meteor.isClient) {
Markdown = new Mongo.Collection("markdown");
Template.myTemplate.helpers({
markdown_data: function() {
var markdown = Markdown.findOne();
return markdown && markdown.data;
}
});
}
if (Meteor.isServer) {
Markdown = new Mongo.Collection("markdown");
Meteor.startup(function () {
if(Markdown.find().count()===0){
Markdown.insert({
data: Assets.getText("teamProgramming.md")
});
}
});
}
最佳答案
这样不行,你应该将 markdown 文件放在私有(private)目录下,将其作为 Assets 服务器端加载并使用集合将其发送到客户端:
私有(private)/MDFile.md
#Hello world!#
lib/collections/markdown.js
Markdown=new Mongo.Collection("markdown");
服务器/startup.js
Meteor.startup(function(){
if(Markdown.find().count()===0){
Markdown.insert({
data: Assets.getText("MDFile.md");
});
}
});
服务器/集合/markdown.js
Meteor.publish(function(){
return Markdown.find();
});
client/views/main.html
<body>
{{#markdown}}
{{markdownData}}
{{/markdown}}
</body>
客户端/ View /main.js
Template.body.helpers({
markdownData:function(){
var markdown=Markdown.findOne();
return markdown && markdown.data;
}
});
关于Meteor:从文件导入 markdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29212859/