public void ChangeDocumentLanguage(string language)
 {
     MarkdownValidator.LoadForbiddenWords(language);
     MarkdownCompletionData.BuildHtmlData(language);
     Settings.Default.DocumentLocale = language;
     Settings.Default.Save();
 }
Esempio n. 2
0
        public ActionResult Post(BuildRequestModel request)
        {
            var requestStart = DateTime.UtcNow;

            if (request == null)
            {
                return(BadRequest(new { error = "No build request was detected." }));
            }

            if (String.IsNullOrEmpty(request.GitUrl))
            {
                return(BadRequest(new { error = "No Repo URL was received." }));
            }

            // See if we can clone the URL provided
            var localPath = GitCloner.CloneGitRepoToLocalPath(request.GitUrl, request.Branch);

            // Do some validation on the cloned directory path
            var validator = new MarkdownValidator(localPath);

            validator.EnsureDocSet();
            validator.ClearExistingIssues();
            var result = validator.CheckForBrokenLinks();

            Console.WriteLine($"CheckForBrokenLinks returned {result}");

            Console.WriteLine($"Detected {validator.Issues.IssuesInCurrentScope} issues in the documentation.");

            var outputResults = from e in validator.Issues.Issues
                                where e.Code != ApiDoctor.Validation.Error.ValidationErrorCode.Unknown
                                select new { e.Code, e.Message, e.Source };

            try
            {
                // Delete the localPath since we're all done with that data
                Console.WriteLine($"Deleting local files in {localPath}.");
                System.IO.Directory.Delete(localPath, true);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Unable to clean up local files: {ex.Message}");
            }

            var requestCompleted = DateTime.UtcNow;
            var duration         = requestCompleted.Subtract(requestStart);

            return(Ok(new {
                contentIssues = outputResults,
                duration = duration,
                branch = request.Branch,
                repo = request.GitUrl
            }));
        }
Esempio n. 3
0
        public override void Update()
        {
            try
            {
                var headers   = EnumerateHeader(AbstractSyntaxTree);
                var outline   = new Outline(headers);
                var wordCount = CountWords(AbstractSyntaxTree, Text);
                Item.WordCount = wordCount;
                Item.Outline   = new OutlineViewModel(outline, JumpTo);

                foreach (var issue in MarkdownValidator.Validate(AbstractSyntaxTree, Text, Item.Data))
                {
                    AbstractSyntaxTree.Document.Issues.Add(issue);
                }
                Item.HasValidationErrors = AbstractSyntaxTree.Document.Issues.Any(e => e.Type == IssueType.Error);
            }
            catch
            {
                Trace.WriteLine("Debounced update failed", "Editor");
            }
        }
Esempio n. 4
0
        public static IEnumerable <Issue> Validate(IWorkspaceItem item)
        {
            var text = Encoding.UTF8.GetString(item.Read());

            return(MarkdownValidator.Validate(text, item));
        }