From 593ea5704838db500b2ee9b26aed961f8da901ba Mon Sep 17 00:00:00 2001 From: Tomaz Kragelj Date: Mon, 21 Feb 2011 12:54:17 +0100 Subject: [PATCH] Refactored HTML templates to use new layout. --- Application/GBApplicationSettingsProvider.h | 11 ++ Application/GBApplicationSettingsProvider.m | 16 +++ Libraries/Discount/mkdio.h | 106 ++++++++++++++++++++ Libraries/libmarkdown.a | Bin 0 -> 263680 bytes Model/GBComment.h | 37 +++++++ Model/GBComment.m | 24 +++++ Model/GBCommentComponent.m | 3 +- Templates/html/css/styles.css | 17 +++- Templates/html/document-template.html | 28 +----- Templates/html/object-template.html | 92 +++++++---------- Testing/GBCommentTesting.m | 17 ++++ appledoc.xcodeproj/project.pbxproj | 16 +++ 12 files changed, 283 insertions(+), 84 deletions(-) create mode 100644 Libraries/Discount/mkdio.h create mode 100644 Libraries/libmarkdown.a diff --git a/Application/GBApplicationSettingsProvider.h b/Application/GBApplicationSettingsProvider.h index 1a92215b..61c2de10 100644 --- a/Application/GBApplicationSettingsProvider.h +++ b/Application/GBApplicationSettingsProvider.h @@ -334,10 +334,21 @@ /// @name Application-wide HTML helpers ///--------------------------------------------------------------------------------------- +/** Returns a new string containing HTML representation of the given Markdown string. + + The resulting string is not escaped! + + @param markdown Markdown source string to convert. + @return Returns converted string. + @see stringByEscapingHTML: + */ +- (NSString *)stringByConvertingMarkdown:(NSString *)markdown; + /** Returns a new string by escaping the given HTML. @param string HTML string to escape. @return Returns escaped HTML string. + @see stringByConvertingMarkdown: */ - (NSString *)stringByEscapingHTML:(NSString *)string; diff --git a/Application/GBApplicationSettingsProvider.m b/Application/GBApplicationSettingsProvider.m index 03adb79d..31edfba5 100644 --- a/Application/GBApplicationSettingsProvider.m +++ b/Application/GBApplicationSettingsProvider.m @@ -6,6 +6,7 @@ // Copyright (C) 2010, Gentle Bytes. All rights reserved. // +#include "mkdio.h" #import #import "RegexKitLite.h" #import "GBDataObjects.h" @@ -147,6 +148,21 @@ - (void)replaceAllOccurencesOfPlaceholderStringsInSettingsValues { #pragma mark Common HTML handling +- (NSString *)stringByConvertingMarkdown:(NSString *)markdown { + NSString *result = nil; + MMIOT *document = mkd_string((char *)[markdown cStringUsingEncoding:NSUTF8StringEncoding], (int)[markdown length], 0); + mkd_compile(document, 0); + char *html = NULL; + int size = mkd_document(document, &html); + if (size <= 0) { + GBLogWarn(@"Failed converting markdown '%@' to HTML!", [markdown normalizedDescription]); + } else { + result = [NSString stringWithCString:html encoding:NSASCIIStringEncoding]; + } + mkd_cleanup(document); + return result; +} + - (NSString *)stringByEscapingHTML:(NSString *)string { // Copied directly from GRMustache's GRMustacheVariableElement.m... NSMutableString *result = [NSMutableString stringWithCapacity:5 + ceilf(string.length * 1.1)]; diff --git a/Libraries/Discount/mkdio.h b/Libraries/Discount/mkdio.h new file mode 100644 index 00000000..5c92720e --- /dev/null +++ b/Libraries/Discount/mkdio.h @@ -0,0 +1,106 @@ +#ifndef _MKDIO_D +#define _MKDIO_D + +#include + +typedef void MMIOT; + +typedef unsigned int mkd_flag_t; + +/* line builder for markdown() + */ +MMIOT *mkd_in(FILE*,mkd_flag_t); /* assemble input from a file */ +MMIOT *mkd_string(char*,int,mkd_flag_t); /* assemble input from a buffer */ + +void mkd_basename(MMIOT*,char*); + +void mkd_initialize(); +void mkd_with_html5_tags(); +void mkd_shlib_destructor(); + +/* compilation, debugging, cleanup + */ +int mkd_compile(MMIOT*, mkd_flag_t); +int mkd_cleanup(MMIOT*); + +/* markup functions + */ +int mkd_dump(MMIOT*, FILE*, int, char*); +int markdown(MMIOT*, FILE*, mkd_flag_t); +int mkd_line(char *, int, char **, mkd_flag_t); +typedef int (*mkd_sta_function_t)(const int,const void*); +void mkd_string_to_anchor(char *, int, mkd_sta_function_t, void*, int); +int mkd_xhtmlpage(MMIOT*,int,FILE*); + +/* header block access + */ +char* mkd_doc_title(MMIOT*); +char* mkd_doc_author(MMIOT*); +char* mkd_doc_date(MMIOT*); + +/* compiled data access + */ +int mkd_document(MMIOT*, char**); +int mkd_toc(MMIOT*, char**); +int mkd_css(MMIOT*, char **); +int mkd_xml(char *, int, char **); + +/* write-to-file functions + */ +int mkd_generatehtml(MMIOT*,FILE*); +int mkd_generatetoc(MMIOT*,FILE*); +int mkd_generatexml(char *, int,FILE*); +int mkd_generatecss(MMIOT*,FILE*); +#define mkd_style mkd_generatecss +int mkd_generateline(char *, int, FILE*, mkd_flag_t); +#define mkd_text mkd_generateline + +/* url generator callbacks + */ +typedef char * (*mkd_callback_t)(const char*, const int, void*); +typedef void (*mkd_free_t)(char*, void*); + +void mkd_e_url(void *, mkd_callback_t); +void mkd_e_flags(void *, mkd_callback_t); +void mkd_e_free(void *, mkd_free_t ); +void mkd_e_data(void *, void *); + +/* version#. + */ +extern char markdown_version[]; +void mkd_mmiot_flags(FILE *, MMIOT *, int); +void mkd_flags_are(FILE*, mkd_flag_t, int); + + +/* special flags for markdown() and mkd_text() + */ +#define MKD_NOLINKS 0x00000001 /* don't do link processing, block tags */ +#define MKD_NOIMAGE 0x00000002 /* don't do image processing, block */ +#define MKD_NOPANTS 0x00000004 /* don't run smartypants() */ +#define MKD_NOHTML 0x00000008 /* don't allow raw html through AT ALL */ +#define MKD_STRICT 0x00000010 /* disable SUPERSCRIPT, RELAXED_EMPHASIS */ +#define MKD_TAGTEXT 0x00000020 /* process text inside an html tag; no + * , no , no html or [] expansion */ +#define MKD_NO_EXT 0x00000040 /* don't allow pseudo-protocols */ +#define MKD_CDATA 0x00000080 /* generate code for xml ![CDATA[...]] */ +#define MKD_NOSUPERSCRIPT 0x00000100 /* no A^B */ +#define MKD_NORELAXED 0x00000200 /* emphasis happens /everywhere/ */ +#define MKD_NOTABLES 0x00000400 /* disallow tables */ +#define MKD_NOSTRIKETHROUGH 0x00000800 /* forbid ~~strikethrough~~ */ +#define MKD_TOC 0x00001000 /* do table-of-contents processing */ +#define MKD_1_COMPAT 0x00002000 /* compatibility with MarkdownTest_1.0 */ +#define MKD_AUTOLINK 0x00004000 /* make http://foo.com link even without <>s */ +#define MKD_SAFELINK 0x00008000 /* paranoid check for link protocol */ +#define MKD_NOHEADER 0x00010000 /* don't process header blocks */ +#define MKD_TABSTOP 0x00020000 /* expand tabs to 4 spaces */ +#define MKD_NODIVQUOTE 0x00040000 /* forbid >%class% blocks */ +#define MKD_NOALPHALIST 0x00080000 /* forbid alphabetic lists */ +#define MKD_NODLIST 0x00100000 /* forbid definition lists */ +#define MKD_EXTRA_FOOTNOTE 0x00200000 /* enable markdown extra-style footnotes */ +#define MKD_EMBED MKD_NOLINKS|MKD_NOIMAGE|MKD_TAGTEXT + +/* special flags for mkd_in() and mkd_string() + */ + + +#endif/*_MKDIO_D*/ diff --git a/Libraries/libmarkdown.a b/Libraries/libmarkdown.a new file mode 100644 index 0000000000000000000000000000000000000000..77339513fb96cf271f9639808f6c189d9872e15a GIT binary patch literal 263680 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

>CtqnW%NM=+d@FMN#i|i(( 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 CKzV-v literal 0 HcmV?d00001 diff --git a/Model/GBComment.h b/Model/GBComment.h index 871189cb..d47c9bee 100644 --- a/Model/GBComment.h +++ b/Model/GBComment.h @@ -115,6 +115,43 @@ */ @property (assign) BOOL isCopied; +/** Specifies whether the comment has short description or not. + + @see hasLongDescription + */ +@property (readonly) BOOL hasShortDescription; + +/** Specifies whether the comment has long description or not. + + @see hasShortDescription + */ +@property (readonly) BOOL hasLongDescription; + +/** Specifies whether the `methodParameters` contains at least one object or not. + + @see hasMethodExceptions + @see hasMethodResult + */ +@property (readonly) BOOL hasMethodParameters; + +/** Specifies whether the `methodExceptions` contains at least one object or not. + + @see hasMethodParameters + @see hasMethodResult + */ +@property (readonly) BOOL hasMethodExceptions; + +/** Specifies whether the `methodResult` contains at least one object or not. + + @see hasMethodParameters + @see hasMethodExceptions + */ +@property (readonly) BOOL hasMethodResult; + +/** Specifies whether the `relatedItems` contains at least one object or not. + */ +@property (readonly) BOOL hasRelatedItems; + ///--------------------------------------------------------------------------------------- /// @name Input values ///--------------------------------------------------------------------------------------- diff --git a/Model/GBComment.m b/Model/GBComment.m index 782d1d4b..8c8d4289 100644 --- a/Model/GBComment.m +++ b/Model/GBComment.m @@ -48,6 +48,30 @@ - (NSString *)debugDescription { #pragma mark Properties +- (BOOL)hasShortDescription { + return self.shortDescription != nil; +} + +- (BOOL)hasLongDescription { + return [self.longDescription.components count] > 0; +} + +- (BOOL)hasMethodParameters { + return [self.methodParameters count] > 0; +} + +- (BOOL)hasMethodExceptions { + return [self.methodExceptions count] > 0; +} + +- (BOOL)hasMethodResult { + return [self.methodResult.components count] > 0; +} + +- (BOOL)hasRelatedItems { + return [self.relatedItems.components count] > 0; +} + @synthesize isCopied; @synthesize sourceInfo; @synthesize stringValue; diff --git a/Model/GBCommentComponent.m b/Model/GBCommentComponent.m index f7b92f59..e1da95d2 100644 --- a/Model/GBCommentComponent.m +++ b/Model/GBCommentComponent.m @@ -6,6 +6,7 @@ // Copyright 2011 Gentle Bytes. All rights reserved. // +#import "GBApplicationSettingsProvider.h" #import "GBCommentComponent.h" @implementation GBCommentComponent @@ -28,7 +29,7 @@ + (id)componentWithStringValue:(NSString *)value sourceInfo:(GBSourceInfo *)info - (NSString *)htmlValue { if (!self.settings) return self.markdownValue; if (_htmlValue) return _htmlValue; - _htmlValue = self.markdownValue; + _htmlValue = [self.settings stringByConvertingMarkdown:self.markdownValue]; return _htmlValue; } diff --git a/Templates/html/css/styles.css b/Templates/html/css/styles.css index 6591155b..403e04f2 100644 --- a/Templates/html/css/styles.css +++ b/Templates/html/css/styles.css @@ -29,6 +29,10 @@ li { margin-bottom: 10px; } +p:first-child { + margin-top: 0.5em; +} + a { text-decoration: none; color: #36C; @@ -363,14 +367,14 @@ li#jumpto_button select { border: 1px solid #5088C5; background-color: #F0F3F7; margin-bottom: 0.5em; - padding: 0.3em 0.8em; + padding: 0em 0.8em; } .bug { border: 1px solid #000; background-color: #ffffcc; margin-bottom: 0.5em; - padding: 0.3em 0.8em; + padding: 0em 0.8em; } /* @end */ @@ -435,6 +439,10 @@ span.tooltip span.tooltip { text-align: left; } +span.tooltip span.tooltip p { + margin: 0.1em 0.3em; +} + span.tooltip:hover span.tooltip { display: block; position: absolute; @@ -496,6 +504,11 @@ span.tooltip:hover span.tooltip { margin-bottom: 3px; } +.see-also-section p { + margin-top: 0; + margin-bottom: 0; +} + .declared-in-ref { color: #666; } diff --git a/Templates/html/document-template.html b/Templates/html/document-template.html index 02c7d37f..3349d89c 100644 --- a/Templates/html/document-template.html +++ b/Templates/html/document-template.html @@ -12,35 +12,17 @@

- {{#object/comment}}{{>GBComment}}{{/object/comment}} + {{#object/comment}}{{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}}{{/object/comment}}
-Section GBComment -{{#paragraphs}} -

{{>GBCommentParagraph}}

-{{/paragraphs}} +Section GBCommentComponentsList +{{#components}}{{>GBCommentComponent}}{{/components}} EndSection -Section GBCommentParagraph -{{#paragraphItems}}{{>GBParagraphItem}}{{/paragraphItems}} -EndSection - -Section GBParagraphItem -{{#isTextItem}}{{&stringValue}}{{/isTextItem}}{{#isOrderedListItem}}
    {{>GBParagraphListItem}}
{{/isOrderedListItem}}{{#isUnorderedListItem}}
    {{>GBParagraphListItem}}
{{/isUnorderedListItem}}{{#isWarningSpecialItem}}

{{>GBParagraphSpecialItem}}

{{/isWarningSpecialItem}}{{#isBugSpecialItem}}

{{>GBParagraphSpecialItem}}

{{/isBugSpecialItem}}{{#isExampleSpecialItem}}
{{>GBParagraphSpecialItem}}
{{/isExampleSpecialItem}}{{#isBoldDecoratorItem}}{{>GBParagraphDecoratorItem}}{{/isBoldDecoratorItem}}{{#isItalicsDecoratorItem}}{{>GBParagraphDecoratorItem}}{{/isItalicsDecoratorItem}}{{#isCodeDecoratorItem}}{{>GBParagraphDecoratorItem}}{{/isCodeDecoratorItem}}{{#isLinkItem}}{{&stringValue}}{{/isLinkItem}} -EndSection - -Section GBParagraphListItem -{{#listItems}}
  • {{>GBCommentParagraph}}
  • {{/listItems}} -EndSection - -Section GBParagraphSpecialItem -{{#specialItemDescription}}{{>GBCommentParagraph}}{{/specialItemDescription}} -EndSection - -Section GBParagraphDecoratorItem -{{#decoratedItems}}{{>GBParagraphItem}}{{/decoratedItems}} +Section GBCommentComponent +{{&htmlValue}} EndSection diff --git a/Templates/html/object-template.html b/Templates/html/object-template.html index 7936369f..42cd684b 100644 --- a/Templates/html/object-template.html +++ b/Templates/html/object-template.html @@ -46,11 +46,13 @@

    {{page/title}}

    {{/page/specifications}} {{#object/comment}} + {{#hasLongDescription}}

    {{strings/objectOverview/title}}

    - {{>GBComment}} + {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}}
    + {{/hasLongDescription}} {{/object/comment}} {{#object/methods}} @@ -209,69 +211,62 @@

    {{strings/objectMethods/instanceMethodsTit

    {{methodSelector}}

    {{#comment}} - {{#shortDescription}} + {{#hasShortDescription}}
    -

    {{>GBCommentParagraph}}

    + {{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}}
    - {{/shortDescription}} + {{/hasShortDescription}}
    {{>MethodDeclaration}}
    - {{#hasParameters}} + {{#hasMethodParameters}}

    {{strings/objectMethods/parametersTitle}}

    - {{#parameters}} + {{#methodParameters}}
    {{argumentName}}
    -
    {{#argumentDescription}}{{>GBCommentParagraph}}{{/argumentDescription}}
    +
    {{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}}
    - {{/parameters}} + {{/methodParameters}}
    - {{/hasParameters}} + {{/hasMethodParameters}} - {{#result}} + {{#hasMethodResult}}

    {{strings/objectMethods/resultTitle}}

    -

    {{>GBCommentParagraph}}

    + {{#methodResult}}{{>GBCommentComponentsList}}{{/methodResult}}
    - {{/result}} + {{/hasMethodResult}} - {{#hasDescriptionParagraphs}} + {{#hasLongDescription}}

    {{strings/objectMethods/discussionTitle}}

    - {{#descriptionParagraphs}} -

    {{>GBCommentParagraph}}

    - {{/descriptionParagraphs}} + {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}}
    - {{/hasDescriptionParagraphs}} + {{/hasLongDescription}} - {{#hasExceptions}} + {{#hasMethodExceptions}}

    {{strings/objectMethods/exceptionsTitle}}

    - {{#exceptions}} + {{#methodExceptions}}
    {{argumentName}}
    -
    {{#argumentDescription}}{{>GBCommentParagraph}}{{/argumentDescription}}
    +
    {{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}}
    - {{/exceptions}} + {{/methodExceptions}}
    - {{/hasExceptions}} + {{/hasMethodExceptions}} - {{#hasCrossrefs}} + {{#hasRelatedItems}}

    {{strings/objectMethods/seeAlsoTitle}}

    - {{/hasCrossrefs}} + {{/hasRelatedItems}} {{#prefferedSourceInfo}}
    @@ -297,7 +292,7 @@

    {{strings/objectMethods/declaredInTitle}}

  • {{>TaskSelector}} - {{#comment/shortDescription}}{{>GBCommentParagraph}}{{/comment/shortDescription}} + {{#comment}}{{#hasShortDescription}}{{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}}{{/hasShortDescription}}{{/comment}} {{#isProperty}}{{strings/objectTasks/property}}{{/isProperty}} {{#isRequired}}{{strings/objectTasks/requiredMethod}}{{/isRequired}} @@ -309,33 +304,14 @@

    {{strings/objectMethods/declaredInTitle}}

    EndSection -Section GBComment -{{#paragraphs}} -

    {{>GBCommentParagraph}}

    -{{/paragraphs}} +Section GBCommentComponentsList +{{#components}}{{>GBCommentComponent}}{{/components}} EndSection -Section GBCommentParagraph -{{#paragraphItems}}{{>GBParagraphItem}}{{/paragraphItems}} +Section GBCommentComponent +{{&htmlValue}} EndSection -Section GBParagraphItem -{{#isTextItem}}{{&stringValue}}{{/isTextItem}}{{#isOrderedListItem}}
      {{>GBParagraphListItem}}
    {{/isOrderedListItem}}{{#isUnorderedListItem}}
      {{>GBParagraphListItem}}
    {{/isUnorderedListItem}}{{#isWarningSpecialItem}}

    {{>GBParagraphSpecialItem}}

    {{/isWarningSpecialItem}}{{#isBugSpecialItem}}

    {{>GBParagraphSpecialItem}}

    {{/isBugSpecialItem}}{{#isExampleSpecialItem}}
    {{>GBParagraphSpecialItem}}
    {{/isExampleSpecialItem}}{{#isBoldDecoratorItem}}{{>GBParagraphDecoratorItem}}{{/isBoldDecoratorItem}}{{#isItalicsDecoratorItem}}{{>GBParagraphDecoratorItem}}{{/isItalicsDecoratorItem}}{{#isCodeDecoratorItem}}{{>GBParagraphDecoratorItem}}{{/isCodeDecoratorItem}}{{#isLinkItem}}{{&stringValue}}{{/isLinkItem}} -EndSection - -Section GBParagraphListItem -{{#listItems}}
  • {{>GBCommentParagraph}}
  • {{/listItems}} -EndSection - -Section GBParagraphSpecialItem -{{#specialItemDescription}}{{>GBCommentParagraph}}{{/specialItemDescription}} -EndSection - -Section GBParagraphDecoratorItem -{{#decoratedItems}}{{>GBParagraphItem}}{{/decoratedItems}} -EndSection - - Section ObjectSpecification {{title}} @@ -375,14 +351,14 @@

    {{strings/objectMethods/declaredInTitle}}

    {{#hasClassMethods}} {{#classMethods}} - + {{/classMethods}} {{/hasClassMethods}} {{#hasInstanceMethods}} {{#instanceMethods}} - + {{/instanceMethods}} {{/hasInstanceMethods}} {{/object/methods}} diff --git a/Testing/GBCommentTesting.m b/Testing/GBCommentTesting.m index 47588415..69032b15 100644 --- a/Testing/GBCommentTesting.m +++ b/Testing/GBCommentTesting.m @@ -6,6 +6,7 @@ // Copyright (C) 2010 Gentle Bytes. All rights reserved. // +#import "GBApplicationSettingsProvider.h" #import "GBDataObjects.h" @interface GBCommentTesting : GHTestCase @@ -26,4 +27,20 @@ - (void)testInit_shouldSetupDefaultComponents { assertThat(comment.methodResult, isNot(nil)); } +#pragma mark Comment components testing + +- (void)testHtmlString_shouldUseAssignedSettings { + // setup + GBCommentComponent *component = [GBCommentComponent componentWithStringValue:@"source"]; + component.markdownValue = @"markdown"; + OCMockObject *settings = [GBTestObjectsRegistry mockSettingsProvider]; + component.settings = settings; + [[settings expect] stringByConvertingMarkdown:component.markdownValue]; + // execute + NSString *html = component.htmlValue; + // verify + [settings verify]; + html = nil; // just to suppress compiler warning of unused var... +} + @end diff --git a/appledoc.xcodeproj/project.pbxproj b/appledoc.xcodeproj/project.pbxproj index 2022d84d..c45f37e0 100644 --- a/appledoc.xcodeproj/project.pbxproj +++ b/appledoc.xcodeproj/project.pbxproj @@ -92,6 +92,8 @@ 7340F02811FCC63100E712A4 /* NSFileManager+GBFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 7340F02511FCC63100E712A4 /* NSFileManager+GBFileManager.m */; }; 7340F02911FCC63100E712A4 /* NSObject+GBObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 7340F02711FCC63100E712A4 /* NSObject+GBObject.m */; }; 73473D3112A38B730011336C /* GBHTMLOutputGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 73473D3012A38B730011336C /* GBHTMLOutputGenerator.m */; }; + 7355E12E1312736D00B9C000 /* libmarkdown.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7355E12D1312736D00B9C000 /* libmarkdown.a */; }; + 7355E12F1312736D00B9C000 /* libmarkdown.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7355E12D1312736D00B9C000 /* libmarkdown.a */; }; 7359B149129A5A0700F67AD1 /* GRBoolean.m in Sources */ = {isa = PBXBuildFile; fileRef = 7359B120129A5A0600F67AD1 /* GRBoolean.m */; }; 7359B14A129A5A0700F67AD1 /* GRBoolean.m in Sources */ = {isa = PBXBuildFile; fileRef = 7359B120129A5A0600F67AD1 /* GRBoolean.m */; }; 7359B14B129A5A0700F67AD1 /* GRMustache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7359B123129A5A0600F67AD1 /* GRMustache.m */; }; @@ -246,6 +248,8 @@ 7340F02711FCC63100E712A4 /* NSObject+GBObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+GBObject.m"; sourceTree = ""; }; 73473D2F12A38B730011336C /* GBHTMLOutputGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GBHTMLOutputGenerator.h; sourceTree = ""; }; 73473D3012A38B730011336C /* GBHTMLOutputGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GBHTMLOutputGenerator.m; sourceTree = ""; }; + 7355E12D1312736D00B9C000 /* libmarkdown.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libmarkdown.a; sourceTree = ""; }; + 7355E131131273A000B9C000 /* mkdio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mkdio.h; sourceTree = ""; }; 7359B11F129A5A0600F67AD1 /* GRBoolean.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GRBoolean.h; path = GRMustache/GRBoolean.h; sourceTree = ""; }; 7359B120129A5A0600F67AD1 /* GRBoolean.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GRBoolean.m; path = GRMustache/GRBoolean.m; sourceTree = ""; }; 7359B121129A5A0600F67AD1 /* GRMustache_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GRMustache_private.h; path = GRMustache/GRMustache_private.h; sourceTree = ""; }; @@ -497,6 +501,7 @@ 733EA134122BDD910060CBDE /* Foundation.framework in Frameworks */, 73F5689E12A2244300A72BB2 /* SystemConfiguration.framework in Frameworks */, 73F568D412A22CFF00A72BB2 /* CoreServices.framework in Frameworks */, + 7355E12F1312736D00B9C000 /* libmarkdown.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -508,6 +513,7 @@ 73FC6FAB11FCE93400AAD0B9 /* libParseKitLib.a in Frameworks */, 73F5689D12A2244300A72BB2 /* SystemConfiguration.framework in Frameworks */, 73F568D312A22CFF00A72BB2 /* CoreServices.framework in Frameworks */, + 7355E12E1312736D00B9C000 /* libmarkdown.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -534,7 +540,9 @@ children = ( 73FC720411FD7FB200AAD0B9 /* Copy to ~/Library/Frameworks!!! */, 73FC6FC411FCE9E900AAD0B9 /* ParseKit */, + 7355E1301312737600B9C000 /* Discount */, 73FC6FA911FCE93400AAD0B9 /* libParseKitLib.a */, + 7355E12D1312736D00B9C000 /* libmarkdown.a */, 08FB779EFE84155DC02AAC07 /* Foundation.framework */, 73D8E98911FCC97100966C4A /* AppKit.framework */, 73D8E98B11FCC97100966C4A /* Cocoa.framework */, @@ -577,6 +585,14 @@ path = Testing; sourceTree = ""; }; + 7355E1301312737600B9C000 /* Discount */ = { + isa = PBXGroup; + children = ( + 7355E131131273A000B9C000 /* mkdio.h */, + ); + path = Discount; + sourceTree = ""; + }; 7359B11E129A59EC00F67AD1 /* GRMustache */ = { isa = PBXGroup; children = (