" I model common operations made with several markup files. " Class { #name : #MarkupFile, #superclass : #Object, #instVars : [ 'file' ], #category : #'MiniDocs-Core' } { #category : #persistence } MarkupFile class >> exportAsFileOn: aFileReferenceOrFileName containing: aString [ | file | file := aFileReferenceOrFileName asFileReference. file ensureDelete. file exists ifFalse: [ file ensureCreateFile ]. file writeStreamDo: [ :stream | stream nextPutAll: ( aString ) withInternetLineEndings]. self inform: 'Exported as: ', String cr, file fullName. ^ file ] { #category : #accessing } MarkupFile class >> installTemplate: anUrl into: aFolder [ | fileName | fileName := anUrl asUrl segments last. (aFolder / fileName) exists ifTrue: [ (aFolder / fileName) ensureDeleteFile ] ifFalse: [ aFolder ensureCreateDirectory ]. ZnClient new url: anUrl; downloadTo: aFolder. ^ aFolder ]