static Changelog CreateChangelog(HtmlNode node) {
     var changelog = new Changelog();
     ChangelogVersion version = null;
     foreach (var child in node.ChildNodes) {
         HandleTitle(child, changelog);
         version = HandleChangelogVersionWithEntries(child, version, changelog);
         version = HandleOlderSection(child, version, changelog);
     }
     return changelog;
 }
        static ChangelogVersion CreateChangelogVersion(Changelog changelog, HtmlNode child) {
            string description = null;
            string title = null;
            string type = null;
            string version = null;
            DateTime dateTime;

            var data = Clean(child.InnerHtml);
            if (rxChangelogVersion.IsMatch(data)) {
                var match = rxChangelogVersion.Match(data);
                version = Version.Parse(match.Groups[1].Value).ToString();
                type = match.Groups[3].Value;
                dateTime = DateTime.Parse(match.Groups[5].Value);
            } else
                dateTime = DateTime.Parse(data);

            return new ChangelogVersion {
                Description = description,
                Title = title,
                Type = type,
                Changelog = changelog,
                Version = version,
                Released = dateTime
            };
        }
 static ChangelogVersion HandleChangelogVersion(HtmlNode child, Changelog changelog, ChangelogVersion version) {
     if (child.Name == "h3") {
         version = CreateChangelogVersion(changelog, child);
         changelog.Versions.Add(version);
     }
     return version;
 }
 static ChangelogVersion HandleChangelogVersionWithEntries(HtmlNode child, ChangelogVersion version,
     Changelog changelog) {
     version = HandleChangelogVersion(child, changelog, version);
     version = HandleChangelogEntries(child, version);
     return version;
 }
 static void HandleTitle(HtmlNode child, Changelog changelog) {
     if (child.Name == "h2")
         changelog.Title = child.InnerHtml;
 }
 static ChangelogVersion HandleOlderSection(HtmlNode child, ChangelogVersion version, Changelog changelog) {
     if (child.Name == "div" && child.Attributes["class"].Value.Contains("older")) {
         version = null;
         foreach (var n2 in child.ChildNodes)
             version = HandleChangelogVersionWithEntries(n2, version, changelog);
         version = null;
     }
     return version;
 }