private static void WriteTops(Node root, StreamWriter writer, int level = 2)
        {
            if (!root.HasNodes)
            {
                return;
            }

            foreach (var node in root.Children)
            {
                string name = Path.GetFileName(node.Path);
                writer.WriteLine(MarkdownConverter.GetHead(name, level));

                if (node.HasSystems)
                {
                    WriteTableSystem(node.Systems, writer);
                }

                if (node.HasComponents)
                {
                    WriteTableComponent(node.Components, writer);
                }

                writer.WriteLine(MarkdownConverter.GetLocalLink(imgArrowUp, context));

                if (node.HasNodes)
                {
                    WriteTops(node, writer, level + 1);
                }
            }
        }
        internal static void CreateDocumetation(Node root, string docDirectory)
        {
            string projectName = "NeonZuma documentation";

            using (var streamWriter = new StreamWriter(Path.Combine(docDirectory, docName), false, Encoding.UTF8))
            {
                // Before context
                streamWriter.WriteLine(MarkdownConverter.GetHead(projectName, 1));
                streamWriter.WriteLine(String.Format(projectDescription, projectName));
                streamWriter.WriteLine();

                // Context
                streamWriter.WriteLine(MarkdownConverter.GetHead(context, 2));
                WriteContext(root, streamWriter);
                streamWriter.WriteLine(MarkdownConverter.GetHorizontalLine());

                // Parse each top
                WriteTops(root, streamWriter);
            }
        }