Как преобразовать текст RTF в обычный текст с синтаксисом Markdown в Какао? - PullRequest
7 голосов
/ 20 мая 2010

Мне нужно иметь возможность конвертировать RTF или HTML в простой текст с синтаксисом Markdown для загрузки на мой сервер. Мне нужно добиться этого в Какао / Obj-C 2.0. Кто-нибудь знает, как это сделать?

Большое спасибо - »Алекс.


Отредактировано Чт. 16:53

Ммм. В ответ на комментарий Юджи я пытаюсь создать каплю NSStatusItem, которая принимает текст. Не имеет значения, в каком формате находится текст, но мне нужно иметь возможность форматировать его как простой текст или простой текст, отформатированный с помощью Markdown. Я думаю, так как я не знаю, какой текст я получу ...

Ответы [ 3 ]

4 голосов
/ 21 мая 2010

Вот форматы, которые 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. Из проанализированного документа он может написать своего рода «простую» подценку, или стандартную разметку, или собственную обогащенную разметку, а также кучу других форматов. Внутреннее («нативное») представление намного богаче, чем требует стандартная спецификация Markdown, поэтому будет потеряно меньше информации, и вы сможете восстановить html для вашей уценки - или сделать pdf через латекс и т. Д. довольно легко взломать его для специальных целей .

Я не знаю, стабильны ли какие-либо из них, но число библиотек Пандока с других языков растет. Поиски в Github показывают, что наиболее подходящим для подключения к Obj C является простой C libpandoc . Кажется, Ruby обладает наибольшей активностью - я думаю, потому что это github - с pandoku , pandoc-ruby , rails-pandoc и так далее.

2 голосов
/ 21 октября 2013

Есть онлайн-форма, которая делает это: MarkItDown

2 голосов
/ 20 мая 2010

Ооо, это будет сложно. Как сказал Юджи, вы можете выразить гораздо больше в HTML / RTF, чем в уценке. В таком случае ...

Я бы конвертировал содержимое в NSAttributedString. Вы можете легко построить NSAttributedString из данных RTF; HTML будет намного сложнее. Однако после того, как вы это сделаете, вам нужно будет проверить все атрибуты строки и применить эквивалентную уценку к текстовой версии содержимого.

Исследование немного больше:

  • Markdownify - конвертировать HTML в Markdown в PHP
  • Pandoc - преобразовать уценку (и некоторые форматы) в другие форматы расширенного текста Он поддерживает Markdown => RTF, так что вы можете использовать это для создания обратного преобразования.
...