Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Refactored HTML templates to use new layout.

  • Loading branch information...
commit 593ea5704838db500b2ee9b26aed961f8da901ba 1 parent 0d41271
@tomaz authored
View
11 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;
View
16 Application/GBApplicationSettingsProvider.m
@@ -6,6 +6,7 @@
// Copyright (C) 2010, Gentle Bytes. All rights reserved.
//
+#include "mkdio.h"
#import <objc/runtime.h>
#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)];
View
106 Libraries/Discount/mkdio.h
@@ -0,0 +1,106 @@
+#ifndef _MKDIO_D
+#define _MKDIO_D
+
+#include <stdio.h>
+
+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 <a> tags */
+#define MKD_NOIMAGE 0x00000002 /* don't do image processing, block <img> */
+#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
+ * <em>, no <bold>, 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*/
View
BIN  Libraries/libmarkdown.a
Binary file not shown
View
37 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
///---------------------------------------------------------------------------------------
View
24 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;
View
3  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;
}
View
17 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;
}
View
28 Templates/html/document-template.html
@@ -12,35 +12,17 @@
<article>
<a title="{{page/title}}" name="top"></a>
<div id="container">
- {{#object/comment}}{{>GBComment}}{{/object/comment}}
+ {{#object/comment}}{{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}}{{/object/comment}}
</div>
</article>
</body>
</html>
-Section GBComment
-{{#paragraphs}}
-<p>{{>GBCommentParagraph}}</p>
-{{/paragraphs}}
+Section GBCommentComponentsList
+{{#components}}{{>GBCommentComponent}}{{/components}}
EndSection
-Section GBCommentParagraph
-{{#paragraphItems}}{{>GBParagraphItem}}{{/paragraphItems}}
-EndSection
-
-Section GBParagraphItem
-{{#isTextItem}}{{&stringValue}}{{/isTextItem}}{{#isOrderedListItem}}<ol>{{>GBParagraphListItem}}</ol>{{/isOrderedListItem}}{{#isUnorderedListItem}}<ul>{{>GBParagraphListItem}}</ul>{{/isUnorderedListItem}}{{#isWarningSpecialItem}}<p class="warning">{{>GBParagraphSpecialItem}}</p>{{/isWarningSpecialItem}}{{#isBugSpecialItem}}<p class="bug">{{>GBParagraphSpecialItem}}</p>{{/isBugSpecialItem}}{{#isExampleSpecialItem}}<pre>{{>GBParagraphSpecialItem}}</pre>{{/isExampleSpecialItem}}{{#isBoldDecoratorItem}}<strong>{{>GBParagraphDecoratorItem}}</strong>{{/isBoldDecoratorItem}}{{#isItalicsDecoratorItem}}<em>{{>GBParagraphDecoratorItem}}</em>{{/isItalicsDecoratorItem}}{{#isCodeDecoratorItem}}<code>{{>GBParagraphDecoratorItem}}</code>{{/isCodeDecoratorItem}}{{#isLinkItem}}<a href="{{&href}}">{{&stringValue}}</a>{{/isLinkItem}}
-EndSection
-
-Section GBParagraphListItem
-{{#listItems}}<li>{{>GBCommentParagraph}}</li>{{/listItems}}
-EndSection
-
-Section GBParagraphSpecialItem
-{{#specialItemDescription}}{{>GBCommentParagraph}}{{/specialItemDescription}}
-EndSection
-
-Section GBParagraphDecoratorItem
-{{#decoratedItems}}{{>GBParagraphItem}}{{/decoratedItems}}
+Section GBCommentComponent
+{{&htmlValue}}
EndSection
View
92 Templates/html/object-template.html
@@ -46,11 +46,13 @@ <h1 class="title title-header">{{page/title}}</h1>
{{/page/specifications}}
{{#object/comment}}
+ {{#hasLongDescription}}
<div class="section section-overview">
<a title="{{strings/objectOverview/title}}" name="overview"></a>
<h2 class="subtitle subtitle-overview">{{strings/objectOverview/title}}</h2>
- {{>GBComment}}
+ {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}}
</div>
+ {{/hasLongDescription}}
{{/object/comment}}
{{#object/methods}}
@@ -209,69 +211,62 @@ <h2 class="subtitle subtitle-methods">{{strings/objectMethods/instanceMethodsTit
<h3 class="subsubtitle method-title">{{methodSelector}}</h3>
{{#comment}}
- {{#shortDescription}}
+ {{#hasShortDescription}}
<div class="method-subsection brief-description">
- <p>{{>GBCommentParagraph}}</p>
+ {{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}}
</div>
- {{/shortDescription}}
+ {{/hasShortDescription}}
<div class="method-subsection method-declaration"><code>{{>MethodDeclaration}}</code></div>
- {{#hasParameters}}
+ {{#hasMethodParameters}}
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">{{strings/objectMethods/parametersTitle}}</h4>
- {{#parameters}}
+ {{#methodParameters}}
<dl class="argument-def parameter-def">
<dt><em>{{argumentName}}</em></dt>
- <dd>{{#argumentDescription}}{{>GBCommentParagraph}}{{/argumentDescription}}</dd>
+ <dd>{{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}}</dd>
</dl>
- {{/parameters}}
+ {{/methodParameters}}
</div>
- {{/hasParameters}}
+ {{/hasMethodParameters}}
- {{#result}}
+ {{#hasMethodResult}}
<div class="method-subsection return">
<h4 class="method-subtitle parameter-title">{{strings/objectMethods/resultTitle}}</h4>
- <p>{{>GBCommentParagraph}}</p>
+ {{#methodResult}}{{>GBCommentComponentsList}}{{/methodResult}}
</div>
- {{/result}}
+ {{/hasMethodResult}}
- {{#hasDescriptionParagraphs}}
+ {{#hasLongDescription}}
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">{{strings/objectMethods/discussionTitle}}</h4>
- {{#descriptionParagraphs}}
- <p>{{>GBCommentParagraph}}</p>
- {{/descriptionParagraphs}}
+ {{#longDescription}}{{>GBCommentComponentsList}}{{/longDescription}}
</div>
- {{/hasDescriptionParagraphs}}
+ {{/hasLongDescription}}
- {{#hasExceptions}}
+ {{#hasMethodExceptions}}
<div class="method-subsection arguments-section exceptions">
<h4 class="method-subtitle exception-title">{{strings/objectMethods/exceptionsTitle}}</h4>
- {{#exceptions}}
+ {{#methodExceptions}}
<dl class="argument-def exception-def">
<dt><em>{{argumentName}}</em></dt>
- <dd>{{#argumentDescription}}{{>GBCommentParagraph}}{{/argumentDescription}}</dd>
+ <dd>{{#argumentDescription}}{{>GBCommentComponentsList}}{{/argumentDescription}}</dd>
</dl>
- {{/exceptions}}
+ {{/methodExceptions}}
</div>
- {{/hasExceptions}}
+ {{/hasMethodExceptions}}
- {{#hasCrossrefs}}
+ {{#hasRelatedItems}}
<div class="method-subsection see-also-section">
<h4 class="method-subtitle">{{strings/objectMethods/seeAlsoTitle}}</h4>
<ul>
- {{#crossrefs}}
- {{^member}}
- <li><code><a href="{{&href}}">{{&stringValue}}</a></code></li>
- {{/member}}
- {{#member}}
- <li><code><a href="{{&href}}">{{#member/isProperty}}&nbsp;&nbsp;@property{{/member/isProperty}}{{#member}}{{methodPrefix}}&nbsp;{{methodSelector}}{{/member}}</a></code></li>
- {{/member}}
- {{/crossrefs}}
+ {{#relatedItems/components}}
+ <li><code>{{>GBCommentComponent}}</code></li>
+ {{/relatedItems/components}}
</ul>
</div>
- {{/hasCrossrefs}}
+ {{/hasRelatedItems}}
{{#prefferedSourceInfo}}
<div class="method-subsection declared-in-section">
@@ -297,7 +292,7 @@ <h4 class="method-subtitle">{{strings/objectMethods/declaredInTitle}}</h4>
<li>
<span class="tooltip">
<code><a href="{{htmlLocalReference}}">{{>TaskSelector}}</a></code>
- {{#comment/shortDescription}}<span class="tooltip">{{>GBCommentParagraph}}</span>{{/comment/shortDescription}}
+ {{#comment}}{{#hasShortDescription}}<span class="tooltip">{{#shortDescription}}{{>GBCommentComponent}}{{/shortDescription}}</span>{{/hasShortDescription}}{{/comment}}
</span>
{{#isProperty}}<span class="task-item-suffix">{{strings/objectTasks/property}}</span>{{/isProperty}}
{{#isRequired}}<span class="task-item-suffix">{{strings/objectTasks/requiredMethod}}</span>{{/isRequired}}
@@ -309,33 +304,14 @@ <h4 class="method-subtitle">{{strings/objectMethods/declaredInTitle}}</h4>
EndSection
-Section GBComment
-{{#paragraphs}}
-<p>{{>GBCommentParagraph}}</p>
-{{/paragraphs}}
+Section GBCommentComponentsList
+{{#components}}{{>GBCommentComponent}}{{/components}}
EndSection
-Section GBCommentParagraph
-{{#paragraphItems}}{{>GBParagraphItem}}{{/paragraphItems}}
+Section GBCommentComponent
+{{&htmlValue}}
EndSection
-Section GBParagraphItem
-{{#isTextItem}}{{&stringValue}}{{/isTextItem}}{{#isOrderedListItem}}<ol>{{>GBParagraphListItem}}</ol>{{/isOrderedListItem}}{{#isUnorderedListItem}}<ul>{{>GBParagraphListItem}}</ul>{{/isUnorderedListItem}}{{#isWarningSpecialItem}}<p class="warning">{{>GBParagraphSpecialItem}}</p>{{/isWarningSpecialItem}}{{#isBugSpecialItem}}<p class="bug">{{>GBParagraphSpecialItem}}</p>{{/isBugSpecialItem}}{{#isExampleSpecialItem}}<pre>{{>GBParagraphSpecialItem}}</pre>{{/isExampleSpecialItem}}{{#isBoldDecoratorItem}}<strong>{{>GBParagraphDecoratorItem}}</strong>{{/isBoldDecoratorItem}}{{#isItalicsDecoratorItem}}<em>{{>GBParagraphDecoratorItem}}</em>{{/isItalicsDecoratorItem}}{{#isCodeDecoratorItem}}<code>{{>GBParagraphDecoratorItem}}</code>{{/isCodeDecoratorItem}}{{#isLinkItem}}<a href="{{&href}}">{{&stringValue}}</a>{{/isLinkItem}}
-EndSection
-
-Section GBParagraphListItem
-{{#listItems}}<li>{{>GBCommentParagraph}}</li>{{/listItems}}
-EndSection
-
-Section GBParagraphSpecialItem
-{{#specialItemDescription}}{{>GBCommentParagraph}}{{/specialItemDescription}}
-EndSection
-
-Section GBParagraphDecoratorItem
-{{#decoratedItems}}{{>GBParagraphItem}}{{/decoratedItems}}
-EndSection
-
-
Section ObjectSpecification
<tr>
<td class="specification-title">{{title}}</td>
@@ -375,14 +351,14 @@ <h4 class="method-subtitle">{{strings/objectMethods/declaredInTitle}}</h4>
{{#hasClassMethods}}
<option value="class_methods">{{strings/objectMethods/classMethodsTitle}}</option>
{{#classMethods}}
- <option value="{{htmlReferenceName}}">&nbsp;&nbsp;&nbsp;&nbsp;{{methodPrefix}}&nbsp;{{methodSelector}}</option>
+ <option value="{{htmlReferenceName}}">&nbsp;&nbsp;&nbsp;&nbsp;{{prefixedMethodSelector}}</option>
{{/classMethods}}
{{/hasClassMethods}}
{{#hasInstanceMethods}}
<option value="instance_methods">{{strings/objectMethods/instanceMethodsTitle}}</option>
{{#instanceMethods}}
- <option value="{{htmlReferenceName}}">&nbsp;&nbsp;&nbsp;&nbsp;{{methodPrefix}}&nbsp;{{methodSelector}}</option>
+ <option value="{{htmlReferenceName}}">&nbsp;&nbsp;&nbsp;&nbsp;{{prefixedMethodSelector}}</option>
{{/instanceMethods}}
{{/hasInstanceMethods}}
{{/object/methods}}
View
17 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
View
16 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 = "<group>"; };
73473D2F12A38B730011336C /* GBHTMLOutputGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GBHTMLOutputGenerator.h; sourceTree = "<group>"; };
73473D3012A38B730011336C /* GBHTMLOutputGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GBHTMLOutputGenerator.m; sourceTree = "<group>"; };
+ 7355E12D1312736D00B9C000 /* libmarkdown.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libmarkdown.a; sourceTree = "<group>"; };
+ 7355E131131273A000B9C000 /* mkdio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mkdio.h; sourceTree = "<group>"; };
7359B11F129A5A0600F67AD1 /* GRBoolean.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GRBoolean.h; path = GRMustache/GRBoolean.h; sourceTree = "<group>"; };
7359B120129A5A0600F67AD1 /* GRBoolean.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GRBoolean.m; path = GRMustache/GRBoolean.m; sourceTree = "<group>"; };
7359B121129A5A0600F67AD1 /* GRMustache_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GRMustache_private.h; path = GRMustache/GRMustache_private.h; sourceTree = "<group>"; };
@@ -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 = "<group>";
};
+ 7355E1301312737600B9C000 /* Discount */ = {
+ isa = PBXGroup;
+ children = (
+ 7355E131131273A000B9C000 /* mkdio.h */,
+ );
+ path = Discount;
+ sourceTree = "<group>";
+ };
7359B11E129A59EC00F67AD1 /* GRMustache */ = {
isa = PBXGroup;
children = (
Please sign in to comment.
Something went wrong with that request. Please try again.