我正在尝试查看是否可以在DuckDuckGo主网站的上下文之外使用来自DuckDuckHack Instant Answers 的代码。毕竟,Instant Answer 主要是一个独立的组件,由一些 HTML、CSS 和 Javascript 组成,应该是相对独立且可重用的。
由于 DuckDuckHack 项目处于维护模式,获取信息似乎有点困难:开发者指南中提到的 Slack 和 Forum已被禁用。我试图找出其他人是否试图让 Instant Answers 在其他情况下工作,但我找不到任何东西。有关于编写即时答案的教程,例如使用Perl 和 DuckPAN 工具的教程。我试图让现有的即时答案使用这些工具来工作,但我未能让它正常工作(不确定它们是否仍在维护)。
由于这些工具似乎有点重量级,我认为可以完全绕过它们并尝试直接使用 Instant Answer 中的 HTML、CSS 和 JS。
我已经给了计算器第一枪。我在duckduckgo/zeroclickinfo-goodies存储库的目录share/ goodie/calculator中确定了相关的源代码。HTML 似乎在content.handlebars
,然后是calculator.css
和calculator.js
。我创建了一个纯 HTML 文件,将 HTML 从content.handlebars
那里放入并包含对 CSS 文件和 JS 文件的引用。起初,CSS 不起作用,因为如果不添加更多包装器 div,CSS 规则将不适用,当检查 DuckDuckGo 站点时可以很容易地找到这些包装器 div,并且计算器 Instant Answer 可见。添加这些包装器 div 后,计算器 UI看起来或多或少完好无损. 但是,UI 的按钮根本不起作用。
查看 Javascript 控制台,我收到此错误:
Uncaught ReferenceError: DDH is not defined
at calculator.js:1
显然calculator.jsDDH
需要一个对象,但是我不知道该对象应该是什么以及如何创建它。
有谁知道这个DDH
变量通常是如何初始化的,或者更一般地说是如何使它工作的?任何对从 DuckDuckHack 为自己的站点重用代码的项目的引用也将受到高度赞赏。