markslider toc
This commit is contained in:
@@ -119,9 +119,10 @@ class slide_reader:
|
||||
new_page.append(row)
|
||||
if len(new_page)>0:
|
||||
self.data.append(new_page)
|
||||
self.toc()
|
||||
self.pages=len(self.data)
|
||||
self.inc_page_no(0)
|
||||
self.toc()
|
||||
|
||||
|
||||
def get_data(self):
|
||||
return self.data
|
||||
@@ -162,16 +163,25 @@ class slide_reader:
|
||||
def toc(self):
|
||||
if self.opts.toc:
|
||||
TOC=["# "+self.opts.toc,""]
|
||||
for h1,page in enumerate(self.data):
|
||||
for h1,page in enumerate(self.data[(self.opts.toc_page-1):]):
|
||||
title=page[0].strip("# ")
|
||||
TOC.append("%d. %s"%(h1+1,title))
|
||||
h2=0
|
||||
subh=[0,0,0]
|
||||
if self.opts.toc_depth>1:
|
||||
for line in page:
|
||||
if re.search("^##[^#]", line):
|
||||
h2+=1
|
||||
title=line.strip("# ")
|
||||
TOC.append(" %d.%d. %s"%(h1+1,h2,title))
|
||||
self.data.insert(1,TOC)
|
||||
if re.search("^##[^#]", line):
|
||||
subh=[ subh[0]+1, 0, 0 ]
|
||||
TOC.append(" %d.%d. %s"%(h1+1,subh[0],title))
|
||||
if self.opts.toc_depth==2: continue
|
||||
if re.search("^###[^#]", line):
|
||||
subh=[ subh[0], subh[1]+1, 0 ]
|
||||
TOC.append(" %d.%d.%d. %s"%(h1+1,subh[0],subh[1],title))
|
||||
if self.opts.toc_depth==3: continue
|
||||
if re.search("^####[^#]", line):
|
||||
subh=[ subh[0], subh[1], subh[2]+1 ]
|
||||
TOC.append(" %d.%d.%d.%d. %s"%(h1+1,subh[0],subh[1],subh[2],title))
|
||||
self.data.insert(self.opts.toc_page-1,TOC)
|
||||
|
||||
|
||||
|
||||
@@ -196,22 +206,27 @@ def setup_options():
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog=__author__)
|
||||
|
||||
parser.add_argument("--no-color","-n",action="store_false",dest="color",default=True,
|
||||
help="Disable color.")
|
||||
|
||||
parser.add_argument("-v","--version",action="version",version=__version__)
|
||||
parser.add_argument("-m",action="store_true",dest="autocolor",default=False,
|
||||
help="Color by markdown structure.")
|
||||
|
||||
parser.add_argument("--dc",action="store_true",dest="dark_colors",default=False,
|
||||
help="Use dark colorscheme, better for white background terminals.")
|
||||
parser.add_argument("--toc",action="store_true",dest="toc",default=False,
|
||||
help="Display TOC as 2nd slide.")
|
||||
parser.add_argument("-m",action="store_true",dest="autocolor",default=False,
|
||||
help="Color by markdown structure.")
|
||||
parser.add_argument("--no-color","-n",action="store_false",dest="color",default=True,
|
||||
help="Disable color.")
|
||||
parser.add_argument("-s",action="store_false",dest="menu",default=True,
|
||||
help="Disable status bar.")
|
||||
parser.add_argument("-w",action="store_false",dest="wrap",default=True,
|
||||
help="Disable line wrapping. Cuts long lines.")
|
||||
parser.add_argument("-t",action="store",dest="toc",default=False,
|
||||
parser.add_argument("--toc",action="store",dest="toc",default=False,
|
||||
const="Table of contents", type=str, nargs='?',
|
||||
help="Insert table of contents as page 2. Define the header, or use default: %(const)s")
|
||||
help="Insert table of contents. Define the header, or use default: %(const)s")
|
||||
parser.add_argument("--toc-page",action="store",dest="toc_page",default=2, type=int,
|
||||
help="Insert table of contents on a chosen page. default: %(const)s")
|
||||
parser.add_argument("--toc-depth",action="store",dest="toc_depth",default=2, type=int,
|
||||
choices=xrange(1,5),
|
||||
help="Table of contents display depth. default: %(const)s")
|
||||
parser.add_argument("filename",type=str,
|
||||
help="File to show")
|
||||
opts=parser.parse_args()
|
||||
|
||||
Reference in New Issue
Block a user