Hey guys,
As you’ve probably guessed, I’ve been tidying up the API in RW9. The API has existed since the very beginning and as such has accumulated a lot of cruft, bad practices and duplicated functionality over the years. Trying to maintain everything in the API has become an impossible task and severally limits the new features I can add.
I’m routing through the API and will keep this post updated with the latest information on changes and removals, along with plugins that could be affected where possible. In many cases, fixing your plugin will simply be a case of removing the method/reference.
If your plugin requires anything mentioned here, let me know ASAP.
Cheers
Public API Changes
Undeclared methods
REMOVED - populatePluginSettings:
@protocol RWPluginEditing
REMOVED - (id)valueForThemeSpecificOptionKey:(NSString *)key;
REMOVED - (void)setValue:(id)value forThemeSpecificOptionKey:(NSString *)key;
Plugins affected Flow
REMOVED @protocol RWPluginSettings
REMOVED - (NSDictionary *)pluginSettings;
REMOVED - (void)setPluginSettings:(NSDictionary *)settings;
REMOVED - (BOOL)acceptsPluginSettings:(NSDictionary *)settings;
REMOVED - (BOOL)providesPluginSettings;
Plugins affected Flow
Defined in RWPluginExport
REMOVED extern NSString *const kRWExporterPageExportDidStart;
REMOVED extern NSString *const kRWExporterPageExportDidEnd;
Plugins affected RapidCartPro
Defined in RWAbstractPlugin
REMOVED - (NSString *)registerFileURL:(NSURL *)fileURL error:(NSError **)error;
REMOVED - (void)removeFileReferenceForToken:(NSString *)token;
REMOVED - (NSURL *)fileURLForToken:(NSString *)token error:(NSError **)error;
Plugins affected Hard to tell, possibly Stacks, FormLoom, PayLoom but I think they’re fine.
REMOVED @protocol RWPluginSettingsViewController
REMOVED - (NSViewController *)settingsViewController;
Plugins affected None
Defined in @protocol RWPluginArchiving
REMOVED - (NSString *)archivingName;
REMOVED - (NSString *)archivingAuthor;
REMOVED - (NSURL *)archivingHomepageURL;
REMOVED - (NSString *)archivingClassName;
REMOVED - (NSData *)archivingData;
Plugins affected None
Defined in RWPluginExport
REMOVED - (NSArray <NSString *> *)pagesForSiteMap:(NSDictionary *)info;
REMOVED - (RMHTMLPackage *)renderForPage:(RWExportParameters *)exportParameters;
Plugins affected None
Defined in RWAbstractPlugin
REMOVED extern NSString* const kRWPluginStartedLoadingNotification;
REMOVED extern NSString* const kRWPluginFinishedLoadingNotification;
REMOVED extern NSString* const kRWPluginStartedMigrationNotification;
REMOVED extern NSString* const kRWPluginFinishedMigrationNotification;
REMOVED extern NSString *const kRWPluginChangedNotification;
REMOVED extern NSString *const kRWPluginChangedInvertNotification;
REMOVED extern NSString *const kRWPluginExportStatusNotification;
REMOVED extern NSString *const kRWCurrentMediaChangedNotification;
REMOVED extern NSString *const kRWPluginPageSettingsRequestNotification;
REMOVED extern NSString *const kRWDoubleClickedMediaNotification;
REMOVED extern NSString *const kRWPluginChangedReloadPreviewUserInfoKey;
REMOVED enum {
kRWPageStyleVariationsPageMode,
kRWPageStyleVariationsSiteMode
};
Defined in RWAbstractPlugin
REMOVED - (void)broadcastPluginChangedReloadingPreviews:(BOOL)reloadPreview;
REMOVED + (NSString *)tempFilesDirectory:(NSString *)name forPlugin:(RWAbstractPlugin *)plugin;
REMOVED + (NSString *)tempFilesDirectory:(NSString *)name forUniqueID:(NSString *)unique;
REMOVED + (NSString *)pathToTempDirectory;
REMOVED + (NSString *)pathToAppTempDirectory;
REMOVED - (NSMutableDictionary *)contentOnlySubpageWithHTML:(NSString *)content name:(NSString *)name;
REMOVED - (NSMutableDictionary *)contentOnlySubpageWithData:(NSData *)content name:(NSString *)name;
REMOVED - (NSMutableDictionary *)contentOnlySubpageWithEntireHTML:(NSString *)content name:(NSString *)name;
REMOVED - (NSMutableDictionary *)customSubpageWithData:(NSData *)content name:(NSString *)name destination:(NSString *)destination;
REMOVED - (NSMutableString *)updatePageTemplate:(NSMutableString *)pageTemplate params:(NSDictionary *)params depth:(NSInteger)depth;
REMOVED - (NSString *)pathToThemeFile:(NSString *)file params:(NSDictionary *)params correction:(NSInteger)depth;
REMOVED - (NSArray *)directoryContents:(NSString *)path;
Plugins affected FormLoom & PayLoom
please use
- (NSString *)tempFilesDirectory:(NSString *)name
instead of
+ (NSString *)pathToAppTempDirectory
Defined in RWPluginMetadata
REMOVED + (BOOL)hasHTMLDescription;
REMOVED + (NSString *)pluginVersion;
REMOVED + (NSImage *)addMenuPluginIcon;
Plugins affected None
UPDATED 2020/04/16
Public API Changes
REMOVED RWAlert
Plugins affected Possibly Blocks & Collage 2
RWAlert
provides no additional functionality over NSAlert. Use NSAlert instead.
The following classes have been removed as they are no longer used or provide no real benefit.
REMOVED RWHTMLRendering
REMOVED RWWebResource
REMOVED RWExceptionName
REMOVED RWWebImageTransformationParameters
Plugins affected Unknown
Private API Changes
The following classes are private and so plugins shouldn’t be using them. They have been moved into RW or removed if no longer required.
REMOVED RWDocumentOptionsSnapshot
REMOVED RWDirectoryIndexEntry
REMOVED RWDocumentModel
REMOVED RWPageEncodings
REMOVED RWPageStyles
REMOVED RWSiteFolder
REMOVED RWLegacySourceListNode
REMOVED RWLegacyResourceDatabase
Moved to RW
RWIdentifiers
RWPage
RWPageAttributes
RWPlugin
RWPluginManager
RWExporter
RWDocument
RWPluginPlaceholder
RMXMLSiteMapEntry
RWJavaScript
RWErrorReporter
RWCrashChecker
RWManifestGenerator
RWPathInformation
RWSiteResource
MinifyJS
MinifyCSS
@interface NSMutableString (RWStyleSheet)
@interface NSUserDefaults (RWKit)
@interface NSFileManager (RWKit)
@interface NSURL (Paths)
@interface NSString (Minify)
UPDATED 2020/04/20
Public API Changes
REMOVED RWHTMLView
This class simply inherits RWCodeView
and sets the language to HTML. Please use RWCodeView
instead and set the language accordingly
[self.htmlView setLanguage:RWCodeHighlightingLanguageHTML];
Private API Changes
The Fragaria framework that powers RWCodeView
has been moved to it’s own separate framework instead of being part of RWKit