lotus-notes - 如何在 Lotus Domino Designer 中导出应用程序的组件?

标签 lotus-notes lotus-domino domino-designer-eclipse

我有一个遗留的 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,您已经快到了:您确实想要启用源代码控制。其工作原理是将数据库的内容(自动或手动)与标准文件系统目录同步。有关详细信息,请参阅帮助主题“设置源代码管理启用功能”。

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

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

(并非所有透视图都显示“团队开发”条目。值得注意的是,Java 透视图不显示。但是,Domino Designer 透视图显示。要更改透视图,请选择“窗口”|“打开透视图”并选择要使用的透视图。)

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

关于lotus-notes - 如何在 Lotus Domino Designer 中导出应用程序的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24014290/

相关文章:

java - 使用 NotesCalendar.getNewInvitations 时出现异常

新计算机上 DDE 中的 Java 编译器错误,在旧计算机上工作正常

Notes Client 和 Domino Designer 9.0.1 FP2 IF1 中未安装 Dojo 1.9.4?

git - Swiper 插件内部字段丢失

java - LotusNotes View 中的文档数

java - 尝试创建 Lotus Notes session 时出现 UnsatisfiledLinkerError

java - Domino java xpage - 在服务器范围内缓存值

java - 无法将调试器附加到 HTTP JVM,而是附加了 AMGR JVM

lotus-notes - 根据字段值查找 Lotus Notes 文档

java - 使用 Java API 从 Lotus Notes NSF 文件中提取电子邮件