예제 #1
0
        /// <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}");
            }
        }
예제 #2
0
 /// <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());
 }