summaryrefslogtreecommitdiff
path: root/jt
diff options
context:
space:
mode:
Diffstat (limited to 'jt')
-rwxr-xr-xjt31
1 files changed, 31 insertions, 0 deletions
diff --git a/jt b/jt
index 02a9bb8..72fcedb 100755
--- a/jt
+++ b/jt
@@ -235,6 +235,33 @@ class FinishCommand(Command):
cwd=self._app.settings['source'])
+class NewTopicCommand(Command):
+
+ def run(self, args):
+ if len(args) != 2:
+ raise cliapp.AppException(
+ 'Must be given two args (page path, title) (%r)' % args)
+
+ pathname = self._topic_pathname(args[0])
+ self._create_topic_page(pathname, args[1])
+
+ def _topic_pathname(self, page_path):
+ return os.path.join(self._app.settings['source'], page_path + '.mdwn')
+
+ def _create_topic_page(self, pathname, title):
+ dirname = os.path.dirname(pathname)
+ if not os.path.exists(dirname):
+ os.makedirs(dirname)
+
+ with open(pathname, 'w') as f:
+ f.write('''\
+[[!meta title="%(title)s"]]
+[[!inline pages="link(.)" archive=yes reverse=yes trail=yes]]
+''' % {
+ 'title': title,
+})
+
+
class NewPersonCommand(Command):
def run(self, args):
@@ -329,6 +356,10 @@ class JournalTool(cliapp.Application):
'''Publish a draft journal entry.'''
FinishCommand(self).run(args)
+ def cmd_new_topic(self, args):
+ '''Create a new topic page.'''
+ NewTopicCommand(self).run(args)
+
def cmd_new_person(self, args):
'''Create a page to list all notes referring to a person.