/// <summary> /// コンストラクタ /// </summary> /// <param name="markdownFileInfo"></param> public ArticleContent(FileInfo markdownFileInfo, bool isDraft, bool isShowMarkdownFilePath) { IsShowMarkdownFilePath = isShowMarkdownFilePath; _markdownText = IOUtil.ReadAllText(markdownFileInfo.FullName, MarkdownFileEncoding, StringUtil.Lf); _metadata = YamlConvert.DeserializeFirst <ArticleMetadata>(_markdownText); #if DEBUG // 記事IDの指定がなかった場合に内部で一時的な値を割り当てる if (string.IsNullOrEmpty(_metadata.Id)) { _metadata.Id = GuidUtil.NewNormalGuidString(); } #endif MarkdownFilePath = markdownFileInfo.FullName; MarkdownFileUpdateTime = markdownFileInfo.LastWriteTime; Permalink = string.Format(PermalinkFormat, _metadata.Id); var titlePre = isDraft ? "(draft) " : string.Empty; var fileName = Path.GetFileNameWithoutExtension(markdownFileInfo.Name); var date = fileName.Substring(0, 10); var title = fileName.Substring(11); Title = titlePre + title; Date = date; if (string.IsNullOrEmpty(Id)) { throw new Exception($"記事IDが指定されていません:{markdownFileInfo.FullName}"); } }
/// <summary> /// Initializes a new instance of <see cref="YamlLocalizationSourceBase{T}"/> /// </summary> /// <param name="filename">The filename of the json file the contains the localization.</param> public YamlLocalizationSourceBase(string filename) { this.localizations = YamlConvert.DeserializeObject <T>(Assemblies.GetManifestResource(filename).TryEncode()); }