我不确定这是否是正确的Stack Exchange页面(也许程序员也适合,尽管他们反对软件技术问题)。
但是,对于应该充当内部知识数据库客户端的程序,我正在调查来自不同框架的Rich Text控件/窗口小部件。此Rich Text控件应显示HTML的子集。仅支持h1-h6,b,i,img(嵌入或不嵌入),列表和简单表。 文本作为降价代码保存在数据模型中。
现在我需要一个控件,通过在线编辑显示此标记(就像文本处理器一样),并可以再次将内容保存为markdown。 客户端可以用Python(使用PyQt或wxPython)或C#和WinForms编写。 我在这些框架中测试了Rich Text控件,但它们并不合适。 WinForms的RichEditBox输出奇怪的RTF,其他一些格式可怕的HTML。 现在我想扩展一个现有的控件,使其在每一秒内将内容保持为markdown。
上述目标平台是否有任何优秀的,开源的控件/小部件可以作为良好的开端?
答案 0 :(得分:1)
查看Pandoc,转换为和 reStructuredText,Markdown,HTML和LaTeX(以及其他格式)。有一个在线编辑器演示了Pandoc here的使用。该网页的来源似乎非常简单,所以也许你可以尝试编写类似的东西。然而,Pandoc是用Haskell编写的。 Python等价物Docutils只能从reStructuredText(非Markdown)转换为HTML和其他格式,而不能转换为其他格式。
答案 1 :(得分:0)
您的要求似乎有点像边缘情况,因为降价是专门设计为易于人类编写,以便处理成其他格式。你正在做相反的事情,仍然......
我不知道任何WYSIWYG控件可以保存到Markdown,因此您可能需要自己动手。您可以做的是为现有控件创建子类,并实现一个持久性机制,该机制获取控件内容并生成Markdown。这将是棘手的,因为大多数富文本或HTML编辑器将支持比Markdown更多的功能。您应该能够实现控件的输入功能,以将它们限制为Markdown中支持的子集。可能有一些Python项目将有助于解析。 Pyth看起来很小,但可能很有用。
有很多Markdown to Format X转换器,但我所知道的另一种方法是(Markdownify),它在PHP中。