public bool Process(WikiDocument doc, TagObj obj) { WikiHeader summary; object summaryText = obj[SUMMARY]; if (summaryText != null) { obj[SUMMARY] = null; summary = new WikiHeader(); summary.level = 1; summary.name = PAGENAME; string sum = summaryText.ToString(); if (String.IsNullOrEmpty(sum)) { sum = PAGENAME; } summary.text.Add(sum); doc.headers.Insert(0, summary); } WikiHeader head0 = doc.headers.Count > 0 ? doc.headers[0] : null; if ((head0 == null) || (!head0.name.Equals(PAGENAME))) { summary = new WikiHeader(); summary.level = 1; summary.name = PAGENAME; summary.text.Add(PAGENAME); doc.headers.Insert(0, summary); } return(true); }
public WikiDocument(string title, string text) { this.title = title; header = null; string[] rows = text.Split(SEP); for (int i = 0; i < rows.Length; i++) { ProcessRow(rows[i]); } }
public void Process(WikiDocument doc, WikiMedia.ExportNotify notify) { foreach (string name in blacklist) { WikiHeader header = doc.FindHeader(name); if (header != null) { notify("E\t" + doc.title + "\tInvalid header: " + name + "\n"); } } }
public void Process(WikiDocument doc, WikiMedia.ExportNotify notify) { foreach (string name in requiredNames) { WikiHeader header = doc.FindHeader(name); if (header == null) { notify("E\t" + doc.title + "\tMissing header: " + name + "\n"); } } }
public override string ToString() { StringBuilder sb = new StringBuilder(1024); for (int i = 0; i < rowData.text.Count; i++) { sb.Append(rowData.text[i].ToString()).Append('\n'); } for (int i = 0; i < headers.Count; i++) { WikiHeader header = headers[i]; sb.Append(header.ToString()); } return(sb.ToString()); }
public WikiHeader FindHeader(string name) { if (name != null) { for (int i = 0; i < headers.Count; i++) { WikiHeader header = headers[i]; if (name.Equals(header.name)) { return(header); } } } return(null); }
public WikiHeader FindHeader(int level, string name) { if (name != null) { for (int i = 0; i < headers.Count - 1; i++) { WikiHeader header = headers[i]; if ((header.level == level) && (name.Equals(header.name))) { return(header); } } } return(null); }
public bool Process(WikiDocument doc) { for (int i = doc.headers.Count - 1; i >= 0; i--) { WikiHeader header = doc.headers[i]; if (header.text.Count == 0) { int nextLev = header.level; if (i < doc.headers.Count - 1) { nextLev = doc.headers[i + 1].level; } if (header.level >= nextLev) { doc.headers.RemoveAt(i); } } } return(true); }
public void ProcessHeaderRow(string row) { WikiHeader newHeader = new WikiHeader(); int lev = 0; int state = 0; StringBuilder name = new StringBuilder(); for (int ci = 0; ci < row.Length; ci++) { if (row[ci] == '=') { if (state == 0) { lev++; } else { state = 2; } } else { if (state == 0) { state = 1; } if (state == 1) { name.Append(row[ci]); } } } newHeader.name = name.ToString().Trim(); newHeader.level = lev; headers.Add(newHeader); header = newHeader; }