From e5a0fdc8a8836aa0ee4db4ab3566595759691140 Mon Sep 17 00:00:00 2001 From: Tiark Rompf Date: Sun, 24 Aug 2014 00:32:48 -0400 Subject: [PATCH] basic include functionality --- src/main/scala/me/grison/scalocco/Scalocco.scala | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/scala/me/grison/scalocco/Scalocco.scala b/src/main/scala/me/grison/scalocco/Scalocco.scala index 9a5eeef..95aeec7 100644 --- a/src/main/scala/me/grison/scalocco/Scalocco.scala +++ b/src/main/scala/me/grison/scalocco/Scalocco.scala @@ -191,7 +191,7 @@ object Scalocco extends Markdown { // Reading a comment line `//` or ` * ` if inside `Scaladoc` //} else if (line.matches("^\\s*//.*") || inScalaDoc) { } else if (inScalaDoc) { - // if we did had code, store the code and documentation in the resulting section list + // if we had code, store the code and documentation in the resulting section list if (hasCode) { val documentation = scaladocIfNeeded(doc) sections ::= Section(documentation, code.toString) @@ -201,7 +201,15 @@ object Scalocco extends Markdown { code = new StringBuilder } val cleaned = line.replaceFirst(if (inScalaDoc) "^\\s*[*]" else "^\\s*//", "") - doc.append(cleaned).append("\n") + + val cmd = ".. includecode:: " + if (cleaned.trim.startsWith(cmd)) { + val filename = cleaned.trim.substring(cmd.length) + Source.fromFile(new File(source.getParent,filename)).getLines().foreach { inc => + doc.append(" ").append(inc).append("\n") + } + } else + doc.append(cleaned).append("\n") } else { hasCode = true if (!code.isEmpty || !line.trim.isEmpty)