我有一个遗留的 Lotus Domino Web 应用程序 - 当然还有数据数据库,还有 JavaScript、资源 - 包括 png 和 jpg 图像、HTML 和 CSS 子表单等。

我想导出应用程序本身 - 不是 数据,只是应用程序结构 - 这样我就可以在其他更现代的 Web 框架(例如Rails 或 NodeJS 或 PHP 或 Python 或其他)将 HTML 模板以及 CSS 和 JS 作为文件使用。

如何导出 HTML、CSS、JS、png、jpg 等现状如何?我很高兴采用 Designer 中所示的整个文件结构,只想获取实际的 HTML/CSS/JS/图像/等。在那里。

我尝试使用“源控制磁盘同步”选项,但文件以某种奇怪的 Domino 特定 XML 格式保存,底层 HTML/CSS/等存储为十六进制。不是很有帮助。

举个例子,我的应用程序中可能有 Shared Elements\subforms\main.login.subform (以及许多其他)看起来像:

<style>
#service-content {
    background-color: #fff;
}

label, input {
    width: 100px;
    display: inline-block;
    padding: 3px 5px;
    margin-bottom: 10px;
}

input {
    width: 300px;
}

#login-message, h1 {
    text-align: center;
}   
</style>
<div style="width: 450px; margin: 0 auto">
    <input type="hidden" value="/<Computed Value>/page?readform" name="RedirectTo" />

    <h1>Login</h1>
        <!-- lots of html here -->
</div>
<!--// NAVIGATION -->

我想提取它(其他人也喜欢它)。

编辑:

正如@AndrewB 在下面的评论中指出的,这值得更好的解释。

相关 Domino 应用程序(主要)使用静态 html 和 JS 通过 Ajax 从代理检索数据。因此,UI(html/css/js)对于任何支持都非常可重用,只需进行一些适度的工作。

但只有当我能够取出原始静态页面时它才有效。这些静态数据存储在 Resources\Files\ 或者 Shared Elements\subforms\

编辑2:

当我按照 @sjcged 关闭二进制 DXL 导出时,我会得到上述原始 HTML 的输出,如下所示(这只是结尾):

<font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#4200ff'/>"submit"</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/> </run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='purple'/>value</run>    
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/>=</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#4200ff'/>"Login"</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/> </run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>div</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;</run></par>
<par def='3'><run><font name='Courier New' pitch='fixed' truetype='true' familyid='30'/></run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>form</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;</run></par>
<par def='3'>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&lt;/</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='#3f8080'/>div</run>
<run><font name='Courier New' pitch='fixed' truetype='true' familyid='30' color='teal'/>&gt;
</run></par>
<par def='2'><run><font name='monospace'/>&lt;!--// NAVIGATION --&gt;</run></par></richtext>    
</body>
<item name='$$ScriptName' summary='false' sign='true'><text>main.nav</text></item></subform>
有帮助吗?

解决方案

@deitch,你就快到了:您确实想要启用源代码控制。其工作原理是将数据库的内容(自动或手动)与标准文件系统目录同步。有关详细信息,请参阅帮助主题“设置源代码管理启用功能”。

然而,要使其真正发挥作用,需要改变偏好。在设计师中,首先转到文件|首选项|设计师|源控制。确保未设置“使用二进制 DXL”。有关差异的更多信息,请参阅帮助主题“选择在磁盘上表示设计元素的方式”——基本上,使用常规 DXL 分离设计元素数据 [即来自包装设计元素在数据库中的 DXL 格式元数据的代码],其中二进制 DXL 将它们都放入二进制 blob 中,并阻止外部应用程序编辑它们。这里还有其他选项,请参阅帮助主题“设置源代码管理启用功能首选项”以获取更多信息。

完成此操作后,(仍在设计器中)右键单击该项目,选择“团队开发”,然后选择“为此应用程序设置源代码管理”。它可能会或可能不会显示启动屏幕并让您选择“下一步”,但最终它会显示一个对话框,要求您键入磁盘上项目的名称。确保第二行指向尚不存在的目录(默认情况下,选中“使用默认位置”复选框后,它将指向 Notes 数据目录并附加到该目录中作为名称输入的内容) -disk 项目作为新的目录名称)。当您选择 Finish 时,它会将 NSF 内的 Eclipse 虚拟文件系统导出到该文件系统,并使用该目录作为根目录。

(并非所有视角都显示“团队发展”条目。值得注意的是,Java 视角没有。然而,Domino 设计者的观点确实如此。要更改透视图,请选择窗口|开放透视并选择要使用的视角。)

完成此操作后,您可以使用外部工具将目录添加到源代码管理[这是 总是 一个好主意];只要取消选择“使用二进制 DXL”,您还可以使用外部工具来操作被视为应用程序一部分的代码和数据。

其他提示

简单的答案:没有办法做到这一点。

浏览器中显示的 Web 代码由 domino http-task 从表单、视图、页面、子表单、脚本库、公式等动态生成。

数据库中的任何地方都没有简单的 html 表示。

为了获得你想要的东西,你需要一个浸出器,它可以像浏览器一样抓取并下载生成的源代码。但由于许多功能是服务器端的(字段验证、代理、发送邮件等等......),因此您不会从该方法中获得任何足够的东西。

当然,您可以手动导出图像资源、css 文件以及可能的 JavaScript 库(如果有的话),但这不会让您更进一步实现您想要实现的目标。

如果你想将 nsf“迁移”到另一个平台,那么你将不得不重写整个内容......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top