javascript - 编写第一个 CoffeeScript 书签

标签 javascript coffeescript org-mode

我正在用 CoffeeScript 编写我的第一个小书签,但我在让任何重要的东西工作时遇到了困难。

这是我想要的脚本,我想用它来使用网页中选定的代码片段更新组织模式文件:

fs = require 'fs'

appendfile = fs.createWriteStream('webjournals.org',
    flags: "a"
)
appendfile.write("\n")
appendfile.write("* ")
appendfile.write(document.title)
appendfile.write("\n")
appendfile.end(window.getSelection().toString())

当编译为 JS 时(并通过 bookmarklet-izer 运行),这不起作用。事实上,甚至这也不起作用:

(function() {
  var fs;

  fs = require('fs');

  alert(document.title);

}).call(this);

不过,这有效:

(function() {
  var fs;

  alert(document.title);

}).call(this);

我在 Coffee 解释器中手动检查了这段代码与浏览器相关的功能,它有效——我可以看到 org 文件中的更改。我错过了什么?

最佳答案

您无法直接从浏览器使用 fs 模块,因为它是一个 Node.js API。

我能想到的最简单的解决方案是 create a web server使用 Coffeescript(例如在 localhost:1234 上)并让书签向您的服务器提交一个片段(使用 jQuery.post ),该片段又将写入本地文件。

以说明性的方式,片段将从左到右:

网页 --> 小书签 --> 本地 HTTP 服务器 --> 组织模式文件 --> Emacs

另一个解决方案是您制作一个 Firefox 插件,它将可以访问您的本地文件系统(但 API 似乎不允许附加到文件)。

有一些新的 API,例如 Filesystem API但它们似乎是一个死胡同,因为您无法访问完整的文件系统,而是访问沙盒文件系统,您也无法从 emacs 访问该文件系统。

关于javascript - 编写第一个 CoffeeScript 书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19110963/

相关文章:

javascript - 如何在 Javascript 的 console.log() 中插入介绍

javascript - AngularJS + Rails : Unknown provider: e

javascript - Angular $q 未按预期工作 - 返回未定义

node.js - 使用 Mongoose 查询嵌套的嵌入式文档

emacs - 如何防止 org-mode 执行所有 babel 源代码块?

javascript - 按钮发布要在另一个页面的表单的下拉列表中选择的值

javascript - 哪种类型的排序算法与此代码最相似? (如果有的话)。

javascript - 多次显示窗口警报 - Google Apps 脚本

elisp - 每第二个月的第三个星期三重复一个项目

emacs - 在 Emacs org-mode 中保存待办事项列表会删除所有纯文本吗?