public void TestDefaultConfig() { var config = new SlugHelper.Config(); Assert.Equal(1, config.StringReplacements.Count); Assert.Equal("-", config.StringReplacements[" "]); }
static Class() { var config = new SlugHelper.Config(); config.StringReplacements[" "] = "_"; _slugHelper = new SlugHelper(config); }
public void TestEmptyConfig() { SlugHelper.Config config = new SlugHelper.Config(); Assert.IsTrue(config.ForceLowerCase); Assert.IsTrue(config.CollapseWhiteSpace); Assert.AreEqual(1, config.CharacterReplacements.Count); Assert.IsNotNull(new Regex(config.DeniedCharactersRegex)); }
public void TestDefaultConfig() { KeyValuePair <string, string> defaultReplacement = new KeyValuePair <string, string>(" ", "-"); SlugHelper.Config config = new SlugHelper.Config(); Assert.AreEqual(1, config.CharacterReplacements.Count); Assert.AreEqual("-", config.CharacterReplacements[" "]); }
public void TestCharacterReplacement() { String original = "abcde"; String expected = "xyzde"; SlugHelper.Config config = new SlugHelper.Config(); config.CharacterReplacements.Add("a", "x"); config.CharacterReplacements.Add("b", "y"); config.CharacterReplacements.Add("c", "z"); SlugHelper helper = new SlugHelper(config); Assert.AreEqual(expected, helper.GenerateSlug(original)); }
static void Main(string[] args) { #if DEBUG Console.WriteLine("Attach debugger now, then press key to continue"); Console.ReadKey(); #endif if (args.Length != 2) { Console.WriteLine("Usage: Blogger2Ghost <bloggerexport.xml> <outputfolder>"); } var bloggerXmlFile = args[0]; //@"C:\Users\Paul\Downloads\blog-04-23-2016.xml" var ghostOutputFolder = args[1]; //"ghost.json" //var bloggerXmlFile = @"C:\Users\Paul\Downloads\blog-04-23-2016.xml"; //var ghostOutputFolder = "."; ghostOutputFolder = CleanseFolderPath(ghostOutputFolder); var slugConfig = new SlugHelper.Config { ForceLowerCase = true, CharacterReplacements = new Dictionary <string, string>() { { " ", "_" }, { "'", "_" }, { "&", "_" }, { "-", "_" } } }; _slugifyHelper = new SlugHelper(slugConfig); var masterTerms = new List <string>(); var root = XElement.Load(bloggerXmlFile); var ghostImport = new GhostImport() { db = new List <Db>() { new Db() { meta = new Meta() { version = "004", exported_on = DateTime.UtcNow.ToEpochTimeInMilliseconds() } } } }; int postId = 0; foreach (var element in root.Elements().Where(e => e.Name.LocalName == "entry")) { var category = element.Elements().Single(e => e.Name.LocalName == "category" && e.Attribute("scheme").Value == "http://schemas.google.com/g/2005#kind"); var terms = element.Elements().Where(e => e.Name.LocalName == "category" && e.Attribute("scheme").Value == "http://www.blogger.com/atom/ns#"); //add any new terms foreach (var termValue in terms.Select(term => term.Attribute("term").Value).Where(termValue => !masterTerms.Contains(termValue))) { masterTerms.Add(termValue); } //It's a post if (category.Attribute("term").Value == "http://schemas.google.com/blogger/2008/kind#post") { var post = CreatePostFromElement(postId, element); if (String.IsNullOrEmpty(post.slug)) { post.slug = "Untitled_" + postId; } if (String.IsNullOrEmpty(post.title)) { post.title = "Untitled " + postId; } ghostImport.db[0].data.posts.Add(post); postId++; } } var json = JsonConvert.SerializeObject(ghostImport); var targetDirectory = ghostOutputFolder + "B2G_" + DateTime.UtcNow.ToString("yyyyMMdd_HHmmss") + "\\"; Directory.CreateDirectory(targetDirectory); File.WriteAllText(targetDirectory + "ghost.json", json); var imagesDirectory = targetDirectory + "images\\"; Directory.CreateDirectory(imagesDirectory); foreach (var downloadImage in _downloadImages) { WebClient client = new WebClient(); client.DownloadFile(downloadImage.Key, imagesDirectory + downloadImage.Value); } }