Initial version
This commit is contained in:
parent
0d3af577a5
commit
da83098ac7
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*~
|
||||||
|
*.pyc
|
69
linklist.py
Normal file
69
linklist.py
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
from zim.plugins import PluginClass
|
||||||
|
from zim.command import Command
|
||||||
|
from zim.notebook import resolve_notebook, build_notebook
|
||||||
|
|
||||||
|
usagehelp ='''\
|
||||||
|
usage: zim --plugin linklist [OPTIONS]
|
||||||
|
|
||||||
|
--help, -h Print this help
|
||||||
|
--notebook URI Set notebook to operate on
|
||||||
|
'''
|
||||||
|
class LinkListPlugin(PluginClass):
|
||||||
|
plugin_info = {
|
||||||
|
'name': 'Link List',
|
||||||
|
'description': '''\
|
||||||
|
List all links throughout the pages
|
||||||
|
''',
|
||||||
|
'author': 'Gergely Polonkai',
|
||||||
|
}
|
||||||
|
|
||||||
|
class LinkListCommand(Command):
|
||||||
|
options = (
|
||||||
|
('help', 'h', 'Print this help text and exit'),
|
||||||
|
('notebook=', '', 'Select a notebook'),
|
||||||
|
('existing-only', 'e', 'List only existing pages'),
|
||||||
|
('missing-only', 'm', 'List only missing pages'),
|
||||||
|
)
|
||||||
|
|
||||||
|
def parse_options(self, *args):
|
||||||
|
Command.parse_options(self, *args)
|
||||||
|
|
||||||
|
def _all_links(self):
|
||||||
|
for page in self.nb.index.walk():
|
||||||
|
yield page
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
if self.opts.get('help'):
|
||||||
|
print usagehelp
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
nbi = None
|
||||||
|
if 'notebook' in self.opts:
|
||||||
|
nbi = resolve_notebook(self.opts['notebook'])
|
||||||
|
|
||||||
|
if nbi == None:
|
||||||
|
print("Notebook must be specified!")
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
self.nb, ns = build_notebook(nbi)
|
||||||
|
|
||||||
|
listing = None
|
||||||
|
|
||||||
|
if self.opts.get('missing-only'):
|
||||||
|
listing = 'M'
|
||||||
|
|
||||||
|
if self.opts.get('existing-only'):
|
||||||
|
if listing == 'M':
|
||||||
|
print """\
|
||||||
|
--missing-only and --existing-only are mutually exclusive!"""
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
listing = 'E'
|
||||||
|
|
||||||
|
for page in self._all_links():
|
||||||
|
exists = page.exists()
|
||||||
|
if listing == None or (listing == 'M' and exists == 0) or (listing == 'E' and exists == 1):
|
||||||
|
print "%c %s" % ('E' if exists == 1 else 'M', page.name)
|
Loading…
Reference in New Issue
Block a user