From 768ee7773b52cddae0b4745ee0cbd50f92887302 Mon Sep 17 00:00:00 2001 From: q Date: Sat, 15 Jun 2019 08:52:09 +0300 Subject: [PATCH] markslider installer improvement, and dont break slides in code tags --- reporting/markslider.packager.sh | 15 ++------------- reporting/markslider.py | 9 ++++++--- reporting/markslider.tar.gz | Bin 12181 -> 12137 bytes 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/reporting/markslider.packager.sh b/reporting/markslider.packager.sh index 580bd76..e7413c6 100644 --- a/reporting/markslider.packager.sh +++ b/reporting/markslider.packager.sh @@ -4,20 +4,9 @@ set -e set -x rm -rf markslider -mkdir -p markslider/scripts markslider/markslider +mkdir -p markslider/markslider cp -v ansicodes.py md_color.py markslider.py markslider/markslider/ -echo '#!/usr/bin/env python -# -*- coding: utf-8 -*- -import re -import sys - -from markslider import main - -if __name__ == "__main__": - sys.exit(main()) -' > markslider/scripts/markslider - echo 'from markslider import *' > markslider/markslider/__init__.py echo 'Markdown slideshow. Display your markdown file directly in the terminal!' > markslider/README.md @@ -28,7 +17,7 @@ echo "from distutils.core import setup setup( name = 'markslider', packages = ['markslider'], - scripts = ['scripts/markslider'], + entry_points = {'console_scripts': 'markslider = markslider.markslider:main'}, version = '$( ./markslider.py -v 2>&1 )', description = 'Markdown viewer as slides', author = 'Ville Rantanen', diff --git a/reporting/markslider.py b/reporting/markslider.py index d5ee079..c1d4964 100755 --- a/reporting/markslider.py +++ b/reporting/markslider.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # coding=utf-8 # # Copyright 2016 Ville Rantanen @@ -20,7 +20,7 @@ '''Markslider: a slideshow engine based on markdown.''' __author__ = "Ville Rantanen " -__version__ = "1.2" +__version__ = "1.2.1" import sys,os,argparse,re,datetime from argparse import ArgumentParser @@ -81,6 +81,7 @@ class slide_reader: first_slide_found = False f=open(fname,'r') new_page=[] + in_code = False for row in f: if not row: continue @@ -89,11 +90,13 @@ class slide_reader: if row == EOS: break # find header to start a new page - if row.startswith("#") and not row.startswith("##"): + if row.startswith("#") and not row.startswith("##") and not in_code: first_slide_found=True if len(new_page)>0: self.data.append(new_page) new_page=[] + if row.startswith("```"): + in_code = not in_code # if first slide havent been found yet: if not first_slide_found: self.background.append(row) diff --git a/reporting/markslider.tar.gz b/reporting/markslider.tar.gz index cdc4e5da9df0e5eb067d4b015d665a36785e49b8..667a55455e5d0004df21957f9748ca22c184b5e5 100644 GIT binary patch literal 12137 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 WN`>VA2m2nL0r|m0Awc&)K>q`H>bb`N literal 12181 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 MO0yY2Zb3l)2OmDOnE(I)