public void Process(Document source, Stage stage)
        {
            Document template = Influx.Documents.First();

            string t = template.Text;
            string s = source.Text;
            Document d = stage.CloneAndPost(source);
            d.Text = t + s;
        }
        public void Process(Document input, Stage output)
        {
            input.Context.EnsureTarget();
            Log.Debug("Copy \n from: {0} \n ..to: {1}.", 
                Path.Combine(input.Context.Source.Directory, input.Name),
                input.Context.Target.Directory);

            File.Copy(input.SourceFullPath, input.TargetFullPath, true);
        }
        public void Process(Document input, Stage output)
        {
            Document template = Influx.Single(input);
            Document result = input.CloneMetadata();
            
            result.Text = template.Text.Replace("%body%", input.Text);
            result.Extension = template.Extension;

            output.Post(result);
           
        }
        public void Render(Document input, Document output)
        {
            output.Extension = ".html";
            var mark = new Markdown();

            //set preferences of your markdown
            mark.SafeMode = true;
            mark.ExtraMode = true;
            
            string mdtext = input.Text;
            output.Text = mark.Transform(mdtext);
        }
        public void Process(Document input, Stage output)
        {

            IEnumerable<string> folders = Disk.Directories(input.Context.Source.Directory, pattern);
            foreach(string folder in folders)
            {
                Context context = Context.CreateFromSource(input.Context.Root, folder);

                IWork work = Make.InterpretDocument(input.Text, context);
                work.Execute();
            }
        }
        public void Process(Document input, Stage output)
        {
            StringBuilder builder = new StringBuilder(input.Text);

            foreach(Document doc in input.Attachments)
            {
                builder.Append(doc.Text);
            }

            foreach(Document doc in Influx.Documents)
            {
                builder.Append(doc.Text);
            }

            Document result = output.CloneAndPost(input);
            result.Text = builder.ToString();
        }
        public void Process(Document input, Stage output)
        {
            if (Mask != null)
            {
                if (Mask.StartsWith("."))
                {
                    input.Extension = Mask;
                }
                else 
                {
                    string s = Disk.ParseMask(input.Name, Mask);
                    input.SetFilename(s);
                }
            }

            input.Save();
        }
Beispiel #8
0
 public static Document Single(this ISelector selector, Document document)
 {
     
     IEnumerable<Document> documents = Selector.Match(selector, document);
     Document output = documents.FirstOrDefault();
     if (output == null)
     {
         throw new Exception(string.Format("Selection {0} is empty for {1}.", selector, document));
     }
     else return output;
 }
Beispiel #9
0
 public static IEnumerable<Document> Match(this ISelector selector, Document document)
 {
     if (selector.Mask != null)
     {
         string name = Disk.ParseMask(document.Name, selector.Mask).ToLower();
         return selector.Documents.Where(d => d.Name.ToLower() == name);
     }
     else
     {
         return selector.Documents;
     }
 }
Beispiel #10
0
 public static void Push(string key, Document document)
 {
     Stage stage = Assert(key);
     stage.Post(document);
 }
 public void Process(Document input, Stage stage)
 {
     Log.Debug("Rendering {0} \n from: {1} \n ..to: {2}.", Renderer.GetType().Name, input.SourceFullPath, input.TargetFullPath);
     Document output = stage.CloneAndPost(input);
     Renderer.Render(input, output);
 }
 public void Process(Document input, Stage output)
 {
     Stash.Push(key, input.Clone());
 }
Beispiel #13
0
 public static Document CreateFromFullPath(Context context, string fullpath)
 {
     Document document = new Document();
     document.Context = Context.CreateFromSource(context.Root, fullpath);
     document.SetFilename(fullpath);
     return document;
 }
Beispiel #14
0
 public void Post(Document item)
 {
     queue.Enqueue(item);
 }
 public TestProcessor(Context context, string filename)
 {
     // todo: move to influx !!!!
     template = Document.CreateInContext(context, filename);
 }
 public void Process(Document input, Stage output)
 {
     IWork work = Make.InterpretDocument(input.Text, input.Context);
     work.Execute();
 }
 public void Render(Document input, Document output)
 {
     output.Extension = ".html";
     output.Text = Razor.Render(input.Context, input.Text);
 }
Beispiel #18
0
 public static Document CreateInContext(Context context, string filename)
 {
     Document document = new Document();
     document.Context = context.Clone();
     string dir = Path.GetDirectoryName(filename);
     document.Context.MoveTo(dir);
     document.SetFilename(filename);
     return document;
 }
Beispiel #19
0
 public Document CloneAndPost(Document source)
 {
     Document item = source.CloneMetadata();
     Post(item);
     return item;
 }
Beispiel #20
0
 public static IWork InterpretDocument(Document document)
 {
     return InterpretDocument(document.Text, document.Context);
 }
 public void Process(Document input, Stage output)
 {
     input.Attach(Influx.Documents);
     output.Post(input);
 }
Beispiel #22
0
 /// <summary>
 /// Create a new Item, based on the current item, but with a new stream
 /// </summary>
 /// <returns></returns>
 public Document CloneMetadata()
 {
     Document doc = new Document();
     doc.Context = this.Context.Clone();
     doc.Name = this.Name;
     doc.Extension = this.Extension;
     doc.State = this.State;
     return doc;
 }