private static string RenderingItems(PartPackage partPack, PackageBase[] itemPacks) { string result = ""; if (itemPacks.Length > 0) { result += RenderItemAsIfRenderSection(itemPacks[0], partPack); for (int i = 1; i < itemPacks.Length; i++) { string indent = ""; if (partPack.ContainsKey("Depth")) { int depth = int.Parse(partPack["Depth"]); indent = AddIndent(depth); indent += " "; } result += "\n" + indent + Properties.Resources.Separate; result += RenderItemAsIfRenderSection(itemPacks[i], partPack); } } return result; }
private static ItemPackage MakeInner(PartPackage partPack, SectionPackage[] sectionPacks) { int depth = 0; if (partPack.ContainsKey("Depth")) { depth = int.Parse(partPack["Depth"]) + 1; } ItemPackage inner_pack = new ItemPackage(partPack["ClassIdentifier"]); inner_pack["Contents"] = SectionPart.RenderSection(sectionPacks, depth); return inner_pack; }
// AddIndentとは互換性のない処理なので$Indent$を挿入してもうまくいかないので注意 private static string DepthForIndent(PartPackage partPack) { // subsection以降のインデントを整える if (partPack.ContainsKey("Depth")) { int depth = int.Parse(partPack["Depth"]); switch (depth) { case 1: return " "; case 2: return " "; } } return ""; }