代码之家  ›  专栏  ›  技术社区  ›  Alexsander Akers

如何在cocoa中将rtf文本转换为markdown语法纯文本?

  •  6
  • Alexsander Akers  · 技术社区  · 14 年前

    我需要能够将rtf或html转换为markdown语法纯文本,以便上传到我的服务器。我需要在cocoa/obj-c 2.0中实现这一点。有人知道怎么做吗?

    非常感谢亚历克斯。


    编辑时间:周四下午4:53

    嗯。作为对Yuji评论的回应,我试图 NSStatusItem 接受文本的Droplet。不管文本采用什么格式,但我需要能够将其格式化为纯文本或带标记的纯文本。我想既然我不知道会收到什么样的短信…

    3 回复  |  直到 14 年前
        1
  •  2
  •   Dave DeLong    14 年前

    噢,这会很棘手的。正如Yuji所说,你可以用HTML/RTF来表达,而不是用降价。既然如此…

    我会把内容转换成 NSAttributedString . 您可以轻松地构造 NSattributedString 从RTF数据来看,HTML将更加困难。但是,一旦您这样做了,就需要检查字符串上的所有属性,并对内容的纯文本版本应用同等的标记。

    进一步研究:

    • Markdownify -在php中将html转换为markdown
    • Pandoc -将降价(和某些格式)转换为其他格式文本格式。它支持markdown=>rtf,因此您可以使用它来创建反向转换。
        2
  •  4
  •   applicative    14 年前

    以下是PanDoc解析和写入的格式:

    > pandoc --help
    pandoc [OPTIONS] [FILES]
    
    Input formats:  native, markdown, markdown+lhs, rst, rst+lhs, html, 
    latex, latex+lhs
    
    Output formats:  native, html, html+lhs, s5, docbook, opendocument, odt, latex, 
    latex+lhs, context, texinfo, man, markdown, markdown+lhs, plain, rst, rst+lhs, 
    mediawiki, rtf
    

    不幸的是,RTF不是它解析的格式之一。这是一个haskell程序,因此不安装haskell平台就很难获得它。从解析的文档中,它可以编写一种“普通”的子标记、标准标记或其自己的强化标记,以及一堆其他格式。内部(“本机”)表示比标准降价规范要求的要丰富得多,因此会丢失较少的信息,并且您将能够恢复降价所需的HTML——或者通过LaTex等生成PDF。相当容易 hack at it for special purposes .

    我不知道它们中是否有稳定的,但是有越来越多的绑定来自周围其他语言的pandoc库。对Github的搜索表明,寻找与obj c连接最相关的是普通的c libpandoc . Ruby的活动似乎最多,我猜是因为它是Github pandoku , pandoc-ruby , rails-pandoc 诸如此类。

        3
  •  2
  •   Bambax    11 年前

    有一个在线表单可以做到这一点: MarkItDown