diff --git a/reporting/markslider.py b/reporting/markslider.py index 8206e3c..2e9e09d 100755 --- a/reporting/markslider.py +++ b/reporting/markslider.py @@ -74,10 +74,11 @@ class slide_reader: self.pages=0 self.data=[] self.file_start_page=[] + first_slide_found=False for fname in self.files: + first_slide_found=False f=open(fname,'r') new_page=[] - first_slide_found=False for row in f: if not row: continue @@ -113,7 +114,7 @@ class slide_reader: return self.data def get_current_filename(self): for i,offset in enumerate(self.file_start_page): - if offset>=self.page: + if offset>self.page: return self.files[i] return "NA" def get_filename(self): @@ -158,11 +159,14 @@ class slide_reader: def get_max_width(self): return self.max_width - def get_toc(self): + def get_toc(self,display_position=False): title=self.opts.toc if self.opts.toc else "Table of Contents" TOC=["# "+title,""] - for h1,page in enumerate(self.data[(self.opts.toc_page-1):]): + offset=(self.opts.toc_page-1) if self.opts.toc else 0 + for h1,page in enumerate(self.data[offset:]): title=page[0].strip("# ") + if display_position and h1==self.page-offset: + title="_%s_"%(title,) TOC.append("%d. %s"%(h1+1,title)) subh=[0,0,0] if self.opts.toc_depth>1: @@ -378,7 +382,7 @@ def page_print(reader,opts,offset): sys.stdout.flush() return -def menu_print(reader,opts): +def print_menu(reader,opts): bc.posprint( opts.size[0], 0, colorify("${y}%d${Z}/%d %s|%s"%( @@ -402,7 +406,7 @@ def print_help(reader,opts): def print_toc(reader,opts): ''' Create a window with TOC ''' - text=reader.get_toc() + text=reader.get_toc(display_position=True) title=opts.toc if opts.toc else "Table of Contents" maxlen=max([len(x) for x in text]) bc.posprint(3,3,"+"+"-"*maxlen+"+") @@ -411,6 +415,7 @@ def print_toc(reader,opts): colored=md_color.colorize(parsed,not opts.color,opts.dark_colors) else: if opts.color: + colored=[bc.color_string(row[1]) for row in parsed] else: colored=[bc.nocolor_string(row[1]) for row in parsed] @@ -455,7 +460,7 @@ def browser(opts,files): opts.size=get_console_size() page_print(reader,opts,offset) if opts.menu: - menu_print(reader,opts) + print_menu(reader,opts) sys.stdout.write(bc.pos(opts.size[0], opts.size[1])) sys.stdout.flush() if opts.screenshots: @@ -612,9 +617,12 @@ def launch(reader,opts,offset): def modify_file(reader,offset): row=1 + row_restarts=reader.file_start_page for page in range(reader.page): row+=len(reader.data[page]) - subprocess.call("vim +%d -c 'exe \"normal! zt\"' -c %d %s"%(row,row+offset[1],reader.filename), + if (page+1) in row_restarts: + row=1 + subprocess.call("vim +%d -c 'exe \"normal! zt\"' -c %d %s"%(row,row+offset[1],reader.get_current_filename()), shell=True) def take_screenshot(reader,opts):