我有一个想法,用Java写一个笔记记录应用程序,在你输入时做一些简单的文本替换;可能是Markdown语法的一小部分.因此,例如,如果您输入的行是#sometext,它将被渲染:
sometext
Wikidpad是我正在尝试做的事情的一部分(我不只是重新实现它,只是部分语法/显示功能).
所以基本上我正在寻找一种方法来编写某种组件,当用户点击时
“返回”,它将查看输入的行并执行任何需要做的魔法才能使html标记正确.
我一直在反对Documents and DocumentFilters和DocumentListeners以及HTMLReaders,而且没有太多运气,有人能把我放在正确的道路上吗?
最佳答案
你感兴趣的是一个java text editor kit.这个教程很棒,帮助我实现了一个类似于你的问题的wiki编辑器. swing编辑器套件(信不信由你)是专为解决您的问题而设计的.我已经编写了一个动态wiki,比如使用这种技术链接系统,尽管并非没有太多的挣扎.这就是我必须做的事情:
>制作文件
第一项任务是创建一个文档模型,在标识文本时标记模式.如果查看链接示例中的JavaDocument,则会进行insertUpdate调用.在文档中,您可以找到所需的模式,并使用适当的自定义样式替换它.基本上,您只需创建一个样式并将其应用于匹配模式的文档.更新方法的替代方法是使用私有工作线程来定期扫描新的wiki内容.
>构建渲染上下文模型完成后,您可以实现构建适合渲染新文本的视图的上下文.在链接的示例中,它们扩展了StyleContext.这是用于将文本呈现给视图的内容.在这里,您可以设置可以找到特定标记的渲染规则,并执行类似下划线并删除方括号的操作.
>制作编辑器套件这将把所有东西拼接在一起并确定文档的内容类型.
将文档和视图保持为单独的上下文的好处是,您可以将文档附加到两个视图,一个是纯文本,另一个是新自定义上下文.由于默认样式无法识别您的标记,因此它应以原始维基代码形式显示.新视图将视图转换为适当的链接.
我希望这有帮助.需要注意的是,即使是挥杆,这些东西也很复杂.祝好运!