import re from datetime import datetime from markdown import markdown def create_date(date_str, date_formats=None): """ 2016 2016.10 2016.10.10 -> datetime :param date_str: :return: """ if not date_formats: date_formats = [ '%Y', '%Y.%m', '%Y.%m.%d' ] for format in date_formats: try: return datetime.strptime(date_str, format) except: continue return None # 2016 На крыльях бабочек # 2016.10 На крыльях бабочек # 2016.10.10 На крыльях бабочек folder_name_pattern = re.compile('([\d.]+)(.*)') def create_date_and_title_from_folder_name(folder_name, date_formats=None): m = folder_name_pattern.findall(folder_name) if not m: return None, None date_str, title = m[0] title = title.strip() date = create_date(date_str, date_formats) if not date: return None, title return date, title create_post_from_image_list = lambda images: markdown( '\n'.join(map( lambda i: '![]({img})'.format(img=i), images )) )