过去,我曾尝试两次实现多格式转换器。一种是标记语言转换器,应该能够将GitHub、StackOverflow、MoinMoin、MediaWiki等转换。另一种是相册转换器,目前将ifolor转换为scribus,但应支持至少两种以上的相册格式和pdf。
问题总是相同的:不同的格式具有不同的特点。例如:MediaWiki和MoinMoin对宏的理解不同,而大多数其他标记语言不支持宏。或者ifolor有一些边框格式,在scribus中很难实现,也不好看。
我不喜欢为每种可能的组合实现直接转换器的想法(对于4种格式,这是12个转换器,有很多冗余)。我从“超集数据结构”开始,该结构包含所有格式的所有功能作为给定格式的导入和导出过滤器之间的链接,但我想知道是否有最佳实践方法来做这样的事情或类似设计模式的东西可能会有所帮助,例如一个导入和导出直接通信而没有“超级格式”的架构?
问题总是相同的:不同的格式具有不同的特点。例如:MediaWiki和MoinMoin对宏的理解不同,而大多数其他标记语言不支持宏。或者ifolor有一些边框格式,在scribus中很难实现,也不好看。
我不喜欢为每种可能的组合实现直接转换器的想法(对于4种格式,这是12个转换器,有很多冗余)。我从“超集数据结构”开始,该结构包含所有格式的所有功能作为给定格式的导入和导出过滤器之间的链接,但我想知道是否有最佳实践方法来做这样的事情或类似设计模式的东西可能会有所帮助,例如一个导入和导出直接通信而没有“超级格式”的架构?
目前这两个项目因时间不足(和需求不高)而暂停了,但我愿意学习如何在下一次做得更好。相册为我的个人书籍完成了其工作,很可能很快就会继续。它的代码位于GitHub上。