0

以下に示すソリューションを使用してみました。

Cocoa アプリケーションの Markdown の最も単純な実装は何ですか?

しかし、最後のタグ (または 2 つ?) が欠落しているため、どちらのソリューションも完全に有効な html を返しません。例えば:

このマークダウン:

### Markdown Example - Lists

#### Unordered list
* Aenean 
* vel 
    * libero 
    * eget 
* ante

#### Ordered list
1. Aenean 
2. vel 
3. libero 
4. eget 
5. ante

次の html を出力します。

<h3>Markdown Example - Lists</h3>

<h4>Unordered list</h4>

<ul>
    <li>Aenean </li>
    <li>vel 
        <ul>
            <li>libero </li>
            <li>eget </li>
        </ul>
    </li>
    <li>ante</li>
</ul>

<h4>Ordered list</h4>

<ol>
    <li>Aenean </li>
    <li>vel </li>
    <li>libero </li>
    <li>eget </li>
    <li>ante

(わかりやすくするためにインデントが追加されています)。

これを生成するために使用されるコードは、2 番目の回答から取得されます (最初の回答も試しましたが、結果は同じでした)。

    NSString *markdownXHTML = @"";
    if([ext isEqualToString:@"markdown"] || [ext isEqualToString:@"md"]){
        NSString *rawMarkdown = [NSString stringWithContentsOfFile:path
                                                          encoding:NSUTF8StringEncoding
                                                             error:NULL];
        const char * prose = [rawMarkdown UTF8String];  
        struct buf *ib, *ob;       

        int length = [rawMarkdown lengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 1;

        ib = bufnew(length);
        bufgrow(ib, length);
        memcpy(ib->data, prose, length);
        ib->size = length;

        ob = bufnew(64);

        struct sd_callbacks callbacks;
        struct html_renderopt options;
        struct sd_markdown *markdown;


        sdhtml_renderer(&callbacks, &options, 0);
        markdown = sd_markdown_new(0, 16, &callbacks, &options);

        sd_markdown_render(ob, ib->data, ib->size, markdown);
        sd_markdown_free(markdown);


        markdownXHTML = [NSString stringWithUTF8String: ob->data];

        bufrelease(ib);
        bufrelease(ob);
    }

誰にもアイデアはありますか?:)

4

2 に答える 2

1

引用した質問から次の回答のコードをうっかりコピーしたと思いますが、これは一見似ていますが、かなり異なります。おそらく、生データの決定に間違った関数を使用しています。length

于 2012-07-31T18:42:53.663 に答える
0

解決済み:

MMMarkdown ライブラリ [1] を使用して、マークダウンを完全に解析できました!

[1] https://github.com/mdiep/MMMarkdown

于 2012-08-05T02:05:00.097 に答える