Skip to content

Commit 19e583c

Browse files
committed
Big commit, sorry.
Added menu item and keyboard shortcut (Command-U) to toggle Source/Preview. Added menu option and keyboard shortcut (Command-Shift-S) to save Preview HTML Added option (checkbox on Save HTML panel) to include template elements in Save HTML output Made Textile rendering work in SaveHTML if that's the selected Preview mode
1 parent 9925a38 commit 19e583c

File tree

13 files changed

+1493
-23
lines changed

13 files changed

+1493
-23
lines changed

AppController.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ void outletObjectAwoke(id sender);
145145
-(IBAction)togglePreview:(id)sender;
146146
-(void)postTextUpdate;
147147
-(IBAction)selectPreviewMode:(id)sender;
148+
-(IBAction)toggleSourceView:(id)sender;
149+
- (IBAction)savePreview:(id)sender;
150+
- (IBAction)sharePreview:(id)sender;
148151

149152
-(void)setMenuItemStates;
150153
-(IBAction)toggleLayout:(id)sender;

AppController.m

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1788,6 +1788,24 @@ - (IBAction)togglePreview:(id)sender
17881788
[previewController togglePreview:self];
17891789
}
17901790

1791+
- (IBAction)toggleSourceView:(id)sender
1792+
{
1793+
[previewController switchTabs:self];
1794+
}
1795+
1796+
- (IBAction)savePreview:(id)sender
1797+
{
1798+
if (![[previewController window] isVisible]) {
1799+
[previewController togglePreview:self];
1800+
}
1801+
[previewController saveHTML:self];
1802+
}
1803+
1804+
- (IBAction)sharePreview:(id)sender
1805+
{
1806+
[previewController shareAsk:self];
1807+
}
1808+
17911809
- (void)postTextUpdate
17921810
{
17931811

English.lproj/MainMenu.nib/designable.nib

Lines changed: 77 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
538 Bytes
Binary file not shown.

NSString_MultiMarkdown.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77

88
#import <Cocoa/Cocoa.h>
99

10+
@class AppController;
11+
@class NoteObject;
12+
@class PreviewController;
1013

1114
@interface NSString (MultiMarkdown)
1215

1316
+ (NSString*)stringWithProcessedMultiMarkdown:(NSString*)inputString;
1417
+ (NSString*)documentWithProcessedMultiMarkdown:(NSString*)inputString;
18+
+ (NSString*)xhtmlWithProcessedMultiMarkdown:(NSString*)inputString;
1519
+ (NSString*)processMultiMarkdown:(NSString*)inputString;
1620

1721
@end

NSString_MultiMarkdown.m

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
//
77

88
#import "NSString_MultiMarkdown.h"
9-
9+
#import "PreviewController.h"
10+
#import "AppController.h"
1011

1112
@implementation NSString (MultiMarkdown)
1213

@@ -80,6 +81,25 @@ +(NSString*)processMultiMarkdown:(NSString*)inputString
8081
}
8182

8283
+(NSString*)documentWithProcessedMultiMarkdown:(NSString*)inputString
84+
{
85+
AppController *app = [[NSApplication sharedApplication] delegate];
86+
NSString *rawString = [@"format: snippet\n\n" stringByAppendingString:inputString];
87+
NSString *processedString = [self processMultiMarkdown:rawString];
88+
NSString *htmlString = [[PreviewController class] html];
89+
NSString *cssString = [[PreviewController class] css];
90+
NSMutableString *outputString = [NSMutableString stringWithString:(NSString *)htmlString];
91+
NSString *noteTitle = ([app selectedNoteObject]) ? [NSString stringWithFormat:@"%@",titleOfNote([app selectedNoteObject])] : @"";
92+
93+
NSString *nvSupportPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/Notational Velocity"];
94+
[outputString replaceOccurrencesOfString:@"{%support%}" withString:nvSupportPath options:0 range:NSMakeRange(0, [outputString length])];
95+
[outputString replaceOccurrencesOfString:@"{%title%}" withString:noteTitle options:0 range:NSMakeRange(0, [outputString length])];
96+
[outputString replaceOccurrencesOfString:@"{%content%}" withString:processedString options:0 range:NSMakeRange(0, [outputString length])];
97+
[outputString replaceOccurrencesOfString:@"{%style%}" withString:cssString options:0 range:NSMakeRange(0, [outputString length])];
98+
99+
return outputString;
100+
}
101+
102+
+(NSString*)xhtmlWithProcessedMultiMarkdown:(NSString*)inputString
83103
{
84104
inputString = [@"format: complete\n\n" stringByAppendingString:inputString];
85105
return [self processMultiMarkdown:inputString];

NSString_Textile.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@
55

66
#import <Cocoa/Cocoa.h>
77

8+
@class AppController;
9+
@class NoteObject;
10+
@class PreviewController;
811

912
@interface NSString (Textile)
1013

1114
+ (NSString*)stringWithProcessedTextile:(NSString*)inputString;
15+
+ (NSString*)documentWithProcessedTextile:(NSString*)inputString;
16+
+ (NSString*)xhtmlWithProcessedTextile:(NSString*)inputString;
17+
+ (NSString*)processTextile:(NSString*)inputString;
1218

1319
@end

NSString_Textile.m

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
//
55

66
#import "NSString_Textile.h"
7+
#import "PreviewController.h"
8+
#import "AppController.h"
79

810
@implementation NSString (Textile)
911

10-
+ (NSString*)stringWithProcessedTextile:(NSString*)inputString
12+
+(NSString*)processTextile:(NSString*)inputString
1113
{
1214
NSString* mdScriptPath = [[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Textile_2.12"] stringByAppendingPathComponent:@"textilize.pl"];
1315

@@ -40,4 +42,35 @@ + (NSString*)stringWithProcessedTextile:(NSString*)inputString
4042
return outputString;
4143
}
4244

45+
+(NSString*)documentWithProcessedTextile:(NSString*)inputString
46+
{
47+
AppController *app = [[NSApplication sharedApplication] delegate];
48+
NSString *processedString = [self processTextile:inputString];
49+
NSString *htmlString = [[PreviewController class] html];
50+
NSString *cssString = [[PreviewController class] css];
51+
NSMutableString *outputString = [NSMutableString stringWithString:(NSString *)htmlString];
52+
NSString *noteTitle = ([app selectedNoteObject]) ? [NSString stringWithFormat:@"%@",titleOfNote([app selectedNoteObject])] : @"";
53+
54+
NSString *nvSupportPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Application Support/Notational Velocity"];
55+
[outputString replaceOccurrencesOfString:@"{%support%}" withString:nvSupportPath options:0 range:NSMakeRange(0, [outputString length])];
56+
[outputString replaceOccurrencesOfString:@"{%title%}" withString:noteTitle options:0 range:NSMakeRange(0, [outputString length])];
57+
[outputString replaceOccurrencesOfString:@"{%content%}" withString:processedString options:0 range:NSMakeRange(0, [outputString length])];
58+
[outputString replaceOccurrencesOfString:@"{%style%}" withString:cssString options:0 range:NSMakeRange(0, [outputString length])];
59+
60+
return outputString;
61+
}
62+
63+
+(NSString*)xhtmlWithProcessedTextile:(NSString*)inputString
64+
{
65+
AppController *app = [[NSApplication sharedApplication] delegate];
66+
NSString *noteTitle = ([app selectedNoteObject]) ? [NSString stringWithFormat:@"%@",titleOfNote([app selectedNoteObject])] : @"";
67+
NSString *processedString = [self processTextile:inputString];
68+
return [NSString stringWithFormat:@"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n\n <title>%@</title>\n \n</head>\n\n<body>\n%@\n\n</body>\n</html>\n",noteTitle,processedString];
69+
}
70+
71+
+(NSString*)stringWithProcessedTextile:(NSString*)inputString
72+
{
73+
return [self processTextile:inputString];
74+
}
75+
4376
@end

0 commit comments

Comments
 (0)