Changeset 330

Show
Ignore:
Timestamp:
09/26/08 18:48:49 (3 months ago)
Author:
wolf
Message:

[NEW] MarkdownLive?: first rough (but working) cut of using discount.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cocoa/MarkdownLive/MarkdownLive.xcodeproj/project.pbxproj

    r329 r330  
    88 
    99/* Begin PBXBuildFile section */ 
     10                79252F250E8DF46200DFAD98 /* discountInclude.c in Sources */ = {isa = PBXBuildFile; fileRef = 79252F240E8DF46200DFAD98 /* discountInclude.c */; }; 
     11                79252F560E8DFAF200DFAD98 /* DDTemporaryFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 79252F520E8DFAF200DFAD98 /* DDTemporaryFile.m */; }; 
     12                79252F570E8DFAF200DFAD98 /* DDTemporaryDirectory.m in Sources */ = {isa = PBXBuildFile; fileRef = 79252F540E8DFAF200DFAD98 /* DDTemporaryDirectory.m */; }; 
     13                79252F5F0E8E017E00DFAD98 /* JRLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 79252F5D0E8E017E00DFAD98 /* JRLog.m */; }; 
     14                79252FF20E8E080100DFAD98 /* generate.c in Sources */ = {isa = PBXBuildFile; fileRef = 79252FF10E8E080100DFAD98 /* generate.c */; }; 
    1015                796A2AD80A20DCEE00440275 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 796A2AD70A20DCEE00440275 /* WebKit.framework */; }; 
    11                 7972D9090E42AF6100BF53B8 /* NSTask+runMaruku.m in Sources */ = {isa = PBXBuildFile; fileRef = 7972D9080E42AF6100BF53B8 /* NSTask+runMaruku.m */; }; 
    12                 7979D3260E8D4BFF00768BE3 /* markdown.c in Sources */ = {isa = PBXBuildFile; fileRef = 7979D2F20E8D4BFF00768BE3 /* markdown.c */; }; 
    13                 7979D32A0E8D4BFF00768BE3 /* mkdio.c in Sources */ = {isa = PBXBuildFile; fileRef = 7979D2F70E8D4BFF00768BE3 /* mkdio.c */; }; 
    14                 7979D32C0E8D4BFF00768BE3 /* resource.c in Sources */ = {isa = PBXBuildFile; fileRef = 7979D2FA0E8D4BFF00768BE3 /* resource.c */; }; 
    1516                79F7EF740AC39638003DAB4E /* MarkdownLiveApp.icns in Resources */ = {isa = PBXBuildFile; fileRef = 79F7EF730AC39638003DAB4E /* MarkdownLiveApp.icns */; }; 
    1617                8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; 
     
    3637                2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; }; 
    3738                32DBCF750370BD2300C91783 /* MarkdownLive_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MarkdownLive_Prefix.pch; sourceTree = "<group>"; }; 
     39                79252F230E8DF46200DFAD98 /* discountInclude.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = discountInclude.h; sourceTree = "<group>"; }; 
     40                79252F240E8DF46200DFAD98 /* discountInclude.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = discountInclude.c; sourceTree = "<group>"; }; 
     41                79252F520E8DFAF200DFAD98 /* DDTemporaryFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDTemporaryFile.m; sourceTree = "<group>"; }; 
     42                79252F530E8DFAF200DFAD98 /* DDTemporaryFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDTemporaryFile.h; sourceTree = "<group>"; }; 
     43                79252F540E8DFAF200DFAD98 /* DDTemporaryDirectory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDTemporaryDirectory.m; sourceTree = "<group>"; }; 
     44                79252F550E8DFAF200DFAD98 /* DDTemporaryDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDTemporaryDirectory.h; sourceTree = "<group>"; }; 
     45                79252F5D0E8E017E00DFAD98 /* JRLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JRLog.m; sourceTree = "<group>"; }; 
     46                79252F5E0E8E017E00DFAD98 /* JRLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JRLog.h; sourceTree = "<group>"; }; 
     47                79252FF10E8E080100DFAD98 /* generate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = generate.c; path = "discount-1.2.10/generate.c"; sourceTree = "<group>"; }; 
    3848                796A2AD70A20DCEE00440275 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; }; 
    39                 7972D9070E42AF6100BF53B8 /* NSTask+runMaruku.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSTask+runMaruku.h"; sourceTree = "<group>"; }; 
    40                 7972D9080E42AF6100BF53B8 /* NSTask+runMaruku.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTask+runMaruku.m"; sourceTree = "<group>"; }; 
    41                 7979D2F20E8D4BFF00768BE3 /* markdown.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = markdown.c; sourceTree = "<group>"; }; 
    42                 7979D2F30E8D4BFF00768BE3 /* markdown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = markdown.h; sourceTree = "<group>"; }; 
    43                 7979D2F70E8D4BFF00768BE3 /* mkdio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mkdio.c; sourceTree = "<group>"; }; 
    44                 7979D2F80E8D4BFF00768BE3 /* mkdio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mkdio.h; sourceTree = "<group>"; }; 
    45                 7979D2FA0E8D4BFF00768BE3 /* resource.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = resource.c; sourceTree = "<group>"; }; 
    4649                79F7EF730AC39638003DAB4E /* MarkdownLiveApp.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = MarkdownLiveApp.icns; sourceTree = "<group>"; }; 
    4750                8D15AC360486D014006FF6A4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 
     
    9396                        children = ( 
    9497                                2A37F4ABFDCFA73011CA2CEA /* Classes */, 
    95                                 7979D2E10E8D4BFF00768BE3 /* discount-1.2.10 */, 
    9698                                2A37F4AFFDCFA73011CA2CEA /* Other Sources */, 
    9799                                2A37F4B8FDCFA73011CA2CEA /* Resources */, 
     
    107109                                2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */, 
    108110                                2A37F4ACFDCFA73011CA2CEA /* MyDocument.m */, 
    109                                 7972D9070E42AF6100BF53B8 /* NSTask+runMaruku.h */, 
    110                                 7972D9080E42AF6100BF53B8 /* NSTask+runMaruku.m */, 
     111                                79252F230E8DF46200DFAD98 /* discountInclude.h */, 
     112                                79252F240E8DF46200DFAD98 /* discountInclude.c */, 
     113                                79252F520E8DFAF200DFAD98 /* DDTemporaryFile.m */, 
     114                                79252F530E8DFAF200DFAD98 /* DDTemporaryFile.h */, 
     115                                79252F540E8DFAF200DFAD98 /* DDTemporaryDirectory.m */, 
     116                                79252F550E8DFAF200DFAD98 /* DDTemporaryDirectory.h */, 
     117                                79252F5D0E8E017E00DFAD98 /* JRLog.m */, 
     118                                79252F5E0E8E017E00DFAD98 /* JRLog.h */, 
     119                                79252FF10E8E080100DFAD98 /* generate.c */, 
    111120                        ); 
    112121                        name = Classes; 
     
    142151                        ); 
    143152                        name = Frameworks; 
    144                         sourceTree = "<group>"; 
    145                 }; 
    146                 7979D2E10E8D4BFF00768BE3 /* discount-1.2.10 */ = { 
    147                         isa = PBXGroup; 
    148                         children = ( 
    149                                 7979D2F20E8D4BFF00768BE3 /* markdown.c */, 
    150                                 7979D2F30E8D4BFF00768BE3 /* markdown.h */, 
    151                                 7979D2F70E8D4BFF00768BE3 /* mkdio.c */, 
    152                                 7979D2F80E8D4BFF00768BE3 /* mkdio.h */, 
    153                                 7979D2FA0E8D4BFF00768BE3 /* resource.c */, 
    154                         ); 
    155                         path = "discount-1.2.10"; 
    156153                        sourceTree = "<group>"; 
    157154                }; 
     
    216213                                8D15AC310486D014006FF6A4 /* MyDocument.m in Sources */, 
    217214                                8D15AC320486D014006FF6A4 /* main.m in Sources */, 
    218                                 7972D9090E42AF6100BF53B8 /* NSTask+runMaruku.m in Sources */, 
    219                                 7979D3260E8D4BFF00768BE3 /* markdown.c in Sources */, 
    220                                 7979D32A0E8D4BFF00768BE3 /* mkdio.c in Sources */, 
    221                                 7979D32C0E8D4BFF00768BE3 /* resource.c in Sources */, 
     215                                79252F250E8DF46200DFAD98 /* discountInclude.c in Sources */, 
     216                                79252F560E8DFAF200DFAD98 /* DDTemporaryFile.m in Sources */, 
     217                                79252F570E8DFAF200DFAD98 /* DDTemporaryDirectory.m in Sources */, 
     218                                79252F5F0E8E017E00DFAD98 /* JRLog.m in Sources */, 
     219                                79252FF20E8E080100DFAD98 /* generate.c in Sources */, 
    222220                        ); 
    223221                        runOnlyForDeploymentPostprocessing = 0; 
  • trunk/cocoa/MarkdownLive/MyDocument.h

    r223 r330  
    11#import <Cocoa/Cocoa.h> 
    22#import <WebKit/WebKit.h> 
     3#import "DDTemporaryFile.h" 
    34 
    45@interface MyDocument : NSDocument { 
     
    1415                                NSPoint                                         savedOrigin; 
    1516                                BOOL                                            savedAtBottom; 
     17                DDTemporaryFile             *markdownSourceTempFile; 
     18                DDTemporaryFile             *htmlOutputTempFile; 
    1619} 
    1720 
  • trunk/cocoa/MarkdownLive/MyDocument.m

    r329 r330  
    11#import "MyDocument.h" 
    2 #import "NSTask+runMaruku.h" 
    3 #include "markdown.h" 
     2#include "discountInclude.h" 
     3#import "JRLog.h" 
    44 
    55NSString        *kMarkdownDocumentType = @"MarkdownDocumentType"; 
     
    1616     
    1717    NSError *error = nil; 
    18 #if 1 
    1918     
    20 #else 
    21     NSString *html = [NSTask runMarukuWithInput:markdown_ error:&error]; 
    22 #endif 
     19    [markdown_ writeToFile:[markdownSourceTempFile fullPath] 
     20                atomically:NO 
     21                  encoding:NSUTF8StringEncoding 
     22                     error:&error]; 
     23    NSString *html = @"an error occured"; 
     24    if (!error) { 
     25        FILE *markdownSourceTempFILE = fopen([[markdownSourceTempFile fullPath] fileSystemRepresentation], "r"); 
     26        Document *discountContext = mkd_in(markdownSourceTempFILE, 0); 
     27        assert(discountContext); 
     28         
     29        FILE *htmlOutputTempFILE = fopen([[htmlOutputTempFile fullPath] fileSystemRepresentation], "w+"); 
     30        int markdown_result = markdown(discountContext, htmlOutputTempFILE, 0); 
     31        assert(markdown_result == 0); 
     32        fclose(markdownSourceTempFILE); 
     33        fclose(htmlOutputTempFILE); 
     34        html = [NSString stringWithContentsOfFile:[htmlOutputTempFile fullPath] 
     35                                         encoding:NSUTF8StringEncoding 
     36                                            error:&error]; 
     37        JRLogDebug(@"html: {%@}", html); 
     38    } 
     39     
    2340    if (error) { 
    2441        [NSApp presentError:error]; 
     
    3956                                                                                                                  userInfo:nil 
    4057                                                                                                                   repeats:YES]; 
     58        markdownSourceTempFile = [[DDTemporaryFile alloc] initWithName:@"tmp.markdown"]; 
     59        JRLogDebug(@"markdownSourceTempFile: %@", [markdownSourceTempFile fullPath]); 
     60        htmlOutputTempFile = [[DDTemporaryFile alloc] initWithName:@"tmp.html"]; 
     61        JRLogDebug(@"htmlOutputTempFile: %@", [htmlOutputTempFile fullPath]); 
    4162    } 
    4263    return self; 
     
    4667        [htmlPreviewTimer invalidate]; htmlPreviewTimer = nil; 
    4768        [markdownSource release]; markdownSource = nil; 
     69     
     70    [markdownSourceTempFile release]; 
     71    [htmlOutputTempFile release]; 
     72     
    4873        [super dealloc]; 
    4974}