internal static AbstractTopicInfo GetAbstractTopicInfo(this AbstractTopic abstractTopic) { if (cache.ContainsKey(abstractTopic)) { return(cache[abstractTopic]); } var abstractTopicInfo = new AbstractTopicInfo(abstractTopic); cache.Add(abstractTopic, abstractTopicInfo); return(abstractTopicInfo); }
public AbstractTopicInfo(AbstractTopic abstractTopic) { Filename = Path.GetFileName(abstractTopic.Path); var firstFourLines = File.ReadLines(abstractTopic.Path, Encoding.UTF8).Take(4).ToArray(); AuthorUri = new Uri(UrlHeaderRegex.Match(firstFourLines[0]).Groups[1].ToString()); { var authorInfoMatch = AuthorHeaderRegex.Match(firstFourLines[1]); AuthorName = authorInfoMatch.Groups[1].ToString(); AuthorEmail = authorInfoMatch.Groups[2].ToString(); } Title = TitleHeaderRegex.Match(firstFourLines[3]).Groups[1].ToString(); }
internal AbstractTopicRenderer(AbstractTopic input) : base(input) { this.input = input; abstractTopicInfo = JsonConvert.DeserializeObject <AbstractTopicInfo>(File.ReadAllText(input.Path + AbstractTopicInfo.FilenameExtension, Encoding.UTF8)); }
private void Leave(AbstractTopic abstractTopic) { contentIO.CreateOutputFile(abstractTopic.Path + AbstractTopicInfo.FilenameExtension, abstractTopic.GetAbstractTopicInfo().GetOutputFileContents()); Leave((Item)abstractTopic); }