~brechtm/zim/mac

« back to all changes in this revision

Viewing changes to zim-dump.py

  • Committer: Jaap Karssenberg
  • Date: 2008-09-17 21:41:24 UTC
  • Revision ID: pardus@mirage-20080917214124-91d26kqc9s3qwmuz
Added classes Notebook, Page and PageList
Formats can be loaded dynamically
zim-dump can now generate index trees.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
import sys
4
4
 
5
 
from zim.formats import wiki, html
6
 
from zim.formats.base import ParserError
 
5
from zim.notebook import Notebook
 
6
from zim import formats
 
7
 
 
8
 
 
9
if not (len(sys.argv) >= 2 and len(sys.argv[1]) > 0):
 
10
        print >>sys.stderr, 'Usage: %s DIR [PAGE [FORMAT]]' % __file__
 
11
        sys.exit(1)
 
12
 
 
13
path = sys.argv[1]
 
14
print "Notebook: %s" % path
 
15
 
 
16
notebook = Notebook(path)
 
17
 
 
18
if len(sys.argv) == 2:
 
19
        # Only notebook - dump index
 
20
        print "Pages:"
 
21
        for page in notebook.get_root().walk():
 
22
                print page.name
 
23
        sys.exit(0)
 
24
 
7
25
 
8
26
if not (len(sys.argv) >= 2 and len(sys.argv[1]) > 0):
9
27
        print >>sys.stderr, 'Usage: %s FILE [FORMAT]' % __file__
10
28
        sys.exit(1)
11
29
 
12
 
path = sys.argv[1]
13
 
print "PATH: %s" % path
 
30
page = sys.argv[2]
 
31
print "Page: %s" % page
14
32
 
15
33
format = None
16
 
if len(sys.argv) == 3:
17
 
        format = sys.argv[2]
18
 
        print "FORMAT: %s" % format
19
 
 
20
 
try:
21
 
        tree = wiki.Parser().parse_file(path)
22
 
except ParserError, error:
23
 
        print "BUG in WikiParser:\n"+error
24
 
        sys.exit(1)
 
34
if len(sys.argv) == 4:
 
35
        format = sys.argv[3]
 
36
        print "Format: %s" % format
 
37
 
 
38
 
 
39
pageobj = notebook.get_page(page)
 
40
print "File: %s" % pageobj.source.path
 
41
 
 
42
tree = pageobj.get_parse_tree()
25
43
 
26
44
if not format:
27
45
        tree.dump()
28
46
        sys.exit()
29
 
 
30
 
try:
31
 
        # TODO actually use the format para to do a lookup
32
 
        html.Dumper().dump(tree, sys.stdout)
33
 
except ParserError, error:
34
 
        print 'BUG in HTMLDumper:\n'+error
35
 
        sys.exit(1)
 
47
else:
 
48
        mod = formats.get_format(format)
 
49
        mod.Dumper().dump(tree, sys.stdout)
 
50
        pass
36
51
 
37
52
# vim: tabstop=4