diff --git a/reporting/markslider.py b/reporting/markslider.py index 7a779ad..a644ae2 100755 --- a/reporting/markslider.py +++ b/reporting/markslider.py @@ -57,6 +57,8 @@ class slide_reader: self.page=0 self.width=None self.height=None + self.max_width=None + self.max_height=None self.data=[] self.re_image_convert=re.compile("(.*)(!\[.*\])\((.*)\)>") self.re_command=re.compile("(.*)`(.*)`>(.*)") @@ -95,7 +97,12 @@ class slide_reader: self.toc() self.pages=len(self.data) self.inc_page_no(0) - + self.max_width=0 + self.max_height=0 + for page in self.data: + self.max_height=max(self.max_height, len(page)) + for row in page: + self.max_width=max(self.max_width, len(row)) def get_data(self): return self.data @@ -136,6 +143,10 @@ class slide_reader: return self.height def get_page_width(self): return self.width + def get_max_height(self): + return self.max_height + def get_max_width(self): + return self.max_width def toc(self): if self.opts.toc: @@ -254,6 +265,8 @@ Keyboard shortcuts: execution = parser.add_argument_group('execution') control = parser.add_argument_group('controls') + content.add_argument("--center",action="store_true",dest="center",default=False, + help="Center slides on screen.") content.add_argument("--dc",action="store_true",dest="dark_colors",default=False, help="Use dark colorscheme, better for white background terminals.") content.add_argument("-m",action="store_false",dest="autocolor",default=True, @@ -302,10 +315,11 @@ def page_print(reader,opts,offset): scrsize=opts.size # clear page bc.clear() - if False: # Placeholder for 80x25 center alignment - align_x_offset=scrsize[1]/2-40 + if opts.center: # Placeholder for 80x25 center alignment + align_width=reader.get_max_width() + align_x_offset=scrsize[1]/2-align_width/2 align_pad=" "*align_x_offset - align_y_offset=scrsize[0]/2-12 + align_y_offset=scrsize[0]/2-reader.get_max_height()/2 bc.down_line(align_y_offset) else: align_pad="" @@ -317,6 +331,8 @@ def page_print(reader,opts,offset): print(align_pad+colorify(coloring+page[0],opts)+bc.Z) # Print page rows + if not opts.wrap: + page=[cut_line(row,scrsize[1]-1) for row in page] parsed=md_color.parse(page) if opts.autocolor: colored=md_color.colorize(parsed,not opts.color,opts.dark_colors) @@ -331,11 +347,11 @@ def page_print(reader,opts,offset): if row_i