ما هو أبسط تنفيذ تخفيض السعر لفترة الكاكاو التطبيق ؟

StackOverflow https://stackoverflow.com/questions/1435288

سؤال

أنا أكتب الكاكاو التطبيق في الهدف جيم, وأود أن تكون قادرة على دمج تخفيض السعر.المستخدم سوف يدخل النص في تخفيض السعر بناء الجملة ، انقر فوق "تصدير" زر, البرنامج سيتم إخراج ملف XHTML.

يبدو أن هناك الكثير من الخيارات على الرغم من.يمكنني استخدام واحدة من C/C++ تطبيقات, أنا يمكن أن تشغيل البرنامج النصي Perl كمصدر الكاكاو التطبيق, أفترض يمكن استخدام بايثون تنفيذ PyObjC جسر أو Perl تنفيذ CamelBones أو PerlObjC الجسور.ما يمكن أن يكون أبسط وأسهل حل ؟ أنا لا أفعل أي شيء معقد مثل المقدمة في الوقت الحقيقي معاينة هذا يتطلب خيوط.

هل كانت مفيدة؟

المحلول

وأنت قد ترغب في التحقق من المصدر المفتوح التطبيق Macdown حيث كتبت (أو بدلا من ذلك rentzsch ل Markdownlive )، التي تتضمن هذه الوظائف ك غرض وحيد من التطبيقات اثنين.

نصائح أخرى

وكان لي نظرة على الخيارات المختلفة، وفي النهاية وجدت libsoldout ، ل تنفيذ C صغيرة جدا أن من السهل جدا على الاندماج. كل ما تحتاجه لتشمل مجموعة [الفصل]، عازلة [الفصل]، تخفيض السعر [الفصل]، وعارضين [الفصل] في مشروع Xcode، ثم يمكنك تحويل NSString من تخفيض السعر إلى HTML مثل ذلك:....

NSString *rawMarkdown;
const char * prose = [rawMarkdown UTF8String];  
struct buf *ib, *ob;       

int length = rawMarkdown.length + 1;

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

ob = bufnew(64);
markdown(ob, ib, &mkd_xhtml);

NSString *shinyNewHTML = [NSString stringWithUTF8String: ob->data];
NSLog(@"%@", shinyNewHTML);

bufrelease(ib);
bufrelease(ob);

وكنت للتو المغيب تنفيذ الذي يتضمن دعم محنك، في التطبيق باد مع نجاحا كبيرا. استغرق نحو 15 دقيقة لبناء التطبيق الاختبار.

وافترض لديك UITextView * textView (الذي setDelegate: النفس)، وكذلك UIWebView * عرض ويب الذي لعرض نتائج:

- (void) textViewDidEndEditing:(UITextView *)textView
{
    NSString *rawMarkdown = [textView text];
    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);


    NSString *shinyNewHTML = [NSString stringWithUTF8String: ob->data];
    [webView loadHTMLString:shinyNewHTML baseURL:[[NSURL alloc] initWithString:@""]];

    bufrelease(ib);
    bufrelease(ob);
}

لقد وجدت مشاكل مع تجهيز كميات كبيرة من تخفيض السعر مع هذه ج-بناء المكتبات.

هناك طريقة بسيطة جدا Obj-C المكتبة التي عملت بالنسبة لي هنا:

https://github.com/mdiep/MMMarkdown


خطوات استخدام MMMarkdown:

  1. بناء OS X أو دائرة الرقابة الداخلية الهدف

  2. نسخ include/MMMarkdown.h و إما lib/libMMMarkdown-Mac.a أو lib/libMMMarkdown-iOS.a في المشروع الخاص بك

  3. ثم رمز:

#import "MMMarkdown.h"

NSError  *error;
NSString *markdown   = @"# Example\nWhat a library!";
NSString *htmlString = [MMMarkdown HTMLStringWithMarkdown:markdown error:&error];
// Returns @"<h1>Example</h1>\n<p>What a library!</p>"

ولقد استعملت الربط بين تخفيض السعر ، انها أسرع بكثير من بيرل الأصلي، ويمكن أن التعامل مع عدد قليل من ملحقات جملة إذا كنت تمكينهم.

  1. أوليفر الكاتب هو GHMarkdownParser ترجمة تخفيض السعر إلى HTML.
  2. فيل تولاند هو QLMarkdown QuickLook مولد تخفيض السعر الملفات.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top