Exemple #1
0
        private void ForceParsing()
        {
            var elements = new EMElements(this, new EMElementOrigin(0, preprocessedText), null);

            elements.Parse(preprocessedText, TransformationData);

            data = elements;
        }
 // empty document constructor
 private EMDocument()
 {
     LocalPath = null;
     TransformationData = null;
     data = new EMElements(this, new EMElementOrigin(0, ""), null);
     preprocessedData = null;
     publish = true;
 }
        private void ForceParsing()
        {
            var elements = new EMElements(this, new EMElementOrigin(0, preprocessedText), null);

            elements.Parse(preprocessedText, TransformationData);

            data = elements;
        }
 // empty document constructor
 private EMDocument()
 {
     LocalPath          = null;
     TransformationData = null;
     data             = new EMElements(this, new EMElementOrigin(0, ""), null);
     preprocessedData = null;
     publish          = true;
 }
Exemple #5
0
        public static EMElements ExcerptLazyParser(EMDocument doc, EMElement parent, string content, TransformationData data)
        {
            content = Preprocessor.CutoutComments(content, null);

            var elements = new EMElements(doc, new EMElementOrigin(0, content), parent);

            var previousCurrentFolder = data.CurrentFolderDetails.CurrentFolderFromMarkdownAsTopLeaf;
            var newCurrentFolder      = doc.GetAbsoluteMarkdownPath();

            data.CurrentFolderDetails.CurrentFolderFromMarkdownAsTopLeaf = newCurrentFolder;

            elements.Parse(content, data);

            data.CurrentFolderDetails.CurrentFolderFromMarkdownAsTopLeaf = previousCurrentFolder;

            return(elements);
        }
        public static EMElements ExcerptLazyParser(EMDocument doc, EMElement parent, string content, TransformationData data)
        {
            content = Preprocessor.CutoutComments(content, null);

            var elements = new EMElements(doc, new EMElementOrigin(0, content), parent);

            var previousCurrentFolder = data.CurrentFolderDetails.CurrentFolderFromMarkdownAsTopLeaf;
            var newCurrentFolder = doc.GetAbsoluteMarkdownPath();

            data.CurrentFolderDetails.CurrentFolderFromMarkdownAsTopLeaf = newCurrentFolder;

            elements.Parse(content, data);

            data.CurrentFolderDetails.CurrentFolderFromMarkdownAsTopLeaf = previousCurrentFolder;

            return elements;
        }
Exemple #7
0
        public static EMElement CreateIncludeFilesFromText(string text, EMDocument doc, EMElementOrigin origin, EMElement parent, TransformationData data)
        {
            var specs = Preprocessor.UnescapeChars(IncludeFilesPattern.Match(text).Groups["specs"].Value, true);

            var paths = GetIncludesFromPathSpecs(specs, data);

            var inclusions = new EMElements(doc, origin, parent);

            var i = 0;

            foreach (var path in paths)
            {
                var pathOrigin = new EMElementOrigin(i, "");

                try
                {
                    bool languageChanged;

                    var excerpt =
                        ExcerptsManager.Get(data.ProcessedDocumentCache,
                                            Path.Combine(data.CurrentFolderDetails.AbsoluteMarkdownPath, path),
                                            data.CurrentFolderDetails.Language,
                                            "",
                                            out languageChanged);

                    inclusions.Add(new EMInclude(doc, pathOrigin, inclusions, excerpt, 0, languageChanged, false));
                }
                catch (ExcerptsManagerException e)
                {
                    inclusions.Add(EMErrorElement.Create(doc, pathOrigin, inclusions, data, e.MessageId, e.MessageArgs));
                }

                ++i;
            }

            return(inclusions);
        }
        public void Parse(EMDocument doc, Match match, TransformationData data)
        {
            var itemContent = match.Groups["listItemContent"];

            var lineEnding          = itemContent.Value.IndexOf('\n');
            var definitionSeparator = itemContent.Value.LastIndexOf(':', lineEnding);

            var dt = itemContent.Value.Substring(0, definitionSeparator > 0 ? definitionSeparator : itemContent.Length);

            Declaration = new EMSpanElements(doc, new EMElementOrigin(itemContent.Index - Origin.Start, dt), this);
            Declaration.Parse(dt, data);

            if (definitionSeparator > 0)
            {
                var dd = itemContent.Value.Substring(definitionSeparator + 1);

                Elements = new EMElements(doc, new EMElementOrigin(itemContent.Index + definitionSeparator + 1 - Origin.Start, dd), this);
                Elements.Parse(0, Markdown.Outdent(dd, Elements.TextMap), data);
            }
            else
            {
                Elements = null;
            }
        }
 protected EMElementWithElements(EMDocument doc, EMElementOrigin origin, EMElement parent, int elementsOriginOffset, int elementsOriginLength)
     : base(doc, origin, parent)
 {
     Elements = new EMElements(doc, new EMElementOrigin(elementsOriginOffset, origin.Text.Substring(elementsOriginOffset, elementsOriginLength)), this);
 }