def load_posts(path): g.source_directory = path readers = [] for name in settings.reader.get('active'): try: readers.append(import_object(name)) except ImportError: logging.error("Can't enable %s" % name) def detect_reader(filepath): for Reader in readers: reader = Reader(filepath) if reader.support(): return reader.run() return None for filepath in walk_dir(path): if os.path.abspath(g.output_directory) in \ os.path.abspath(filepath): continue post = detect_reader(filepath) if not post: g.pure_files.append(filepath) elif not post.date: g.pure_pages.append(post) elif post.public: g.public_posts.append(post) else: g.secure_posts.append(post) g.public_posts = sorted(g.public_posts, key=lambda o: o.date, reverse=True) g.secure_posts = sorted(g.secure_posts, key=lambda o: o.date, reverse=True) logging.info('Load Posts Finished')
def run(self): for source in walk_dir(self.staticdir): path = source.replace(ns.storage.projectdir, '').lstrip('/') if sys.platform.startswith('win'): path = path.lstrip('\\') dest = os.path.join(self.deploydir, path) copy_to(source, dest)
def start(self): static_path = os.path.join(g.theme_directory, 'static') l = len(static_path) + 1 for f in walk_dir(static_path): path = f[l:] dest = os.path.join(g.static_directory, path) copy_to(f, dest)
def load_posts(path): g.source_directory = path readers = [] for name in settings.readers: reader = settings.readers[name] if reader: readers.append(import_object(reader)) def detect_reader(filepath): for Reader in readers: reader = Reader(filepath) if reader.support(): return reader.run() return None for filepath in walk_dir(path): post = detect_reader(filepath) if not post: g.pure_files.append(filepath) elif not post.date: g.pure_pages.append(post) elif post.public: g.public_posts.append(post) else: g.secure_posts.append(post) g.public_posts = sorted(g.public_posts, key=lambda o: o.date, reverse=True) g.secure_posts = sorted(g.secure_posts, key=lambda o: o.date, reverse=True) logging.info('Load Posts Finished')
def load_posts(path): g.source_directory = path readers = [] for name in settings.reader.get('active'): readers.append(import_object(name)) def detect_reader(filepath): for Reader in readers: reader = Reader(filepath) if reader.support(): return reader.run() return None for filepath in walk_dir(path): post = detect_reader(filepath) if not post: g.pure_files.append(filepath) elif not post.date: g.pure_pages.append(post) elif post.public: g.public_posts.append(post) else: g.secure_posts.append(post) g.public_posts = sorted(g.public_posts, key=lambda o: o.date, reverse=True) g.secure_posts = sorted(g.secure_posts, key=lambda o: o.date, reverse=True) logging.info('Load Posts Finished')
def start(self): static_path = os.path.join(g.theme_directory, 'static') l = len(static_path) + 1 for f in walk_dir(static_path): path = f[l:] logging.debug('copy %s' % path) dest = os.path.join(g.static_directory, path) copy_to(f, dest)
def init_post(): ns.storage.projectdir = os.getcwd() postdir = os.path.join(ns.storage.projectdir, ns.site.postdir) for f in walk_dir(postdir): reader = detect_reader(f) if reader: post = reader.render() if post: # ignore invalid post ns.storage.posts.append(post) else: ns.storage.files.append(f) return ns
def init_post(): ns.storage.projectdir = os.getcwd() postdir = os.path.join(ns.storage.projectdir, ns.site.postdir) for f in walk_dir(postdir): reader = detect_reader(f) if reader: post = reader.render() if post: # ignore invalid post ns.storage.posts.append(post) else: ns.storage.files.append(f) ns.storage.posts = sorted( ns.storage.posts, key=lambda o: o.date, reverse=True) ns.storage.public_posts = filter( lambda post: post.public, ns.storage.posts) return ns
def init_post(): ns.storage.projectdir = os.getcwd() postdir = os.path.join(ns.storage.projectdir, ns.site.postdir) for f in walk_dir(postdir): reader = detect_reader(f) if reader: post = reader.render() if post: # ignore invalid post ns.storage.posts.append(post) else: ns.storage.files.append(f) ns.storage.posts = sorted(ns.storage.posts, key=lambda o: o.date, reverse=True) ns.storage.public_posts = filter(lambda post: post.public, ns.storage.posts) return ns
def load_posts(path): g.source_directory = path readers = [] for name in settings.reader.get('active'): try: readers.append(import_object(name)) except ImportError as e: logging.error("Can't enable %s" % name) if g.interrupt: raise e def detect_reader(filepath): for Reader in readers: reader = Reader(filepath) if reader.support(): return reader.run() return None output = os.path.abspath(g.output_directory) source = os.path.abspath(g.source_directory) if output == source: logging.warn('Output and source are the same directory') for filepath in walk_dir(path): if source in output and source != output and \ output in os.path.abspath(filepath): continue post = detect_reader(filepath) if not post: g.pure_files.append(filepath) elif not post.date: g.pure_pages.append(post) elif post.public: g.public_posts.append(post) else: g.secure_posts.append(post) g.public_posts = sorted(g.public_posts, key=lambda o: o.date, reverse=True) g.secure_posts = sorted(g.secure_posts, key=lambda o: o.date, reverse=True) logging.info('Load Posts Finished')
def _is_changed(self, path): def is_file_changed(path): if not os.path.isfile(path): return False _, ext = os.path.splitext(path) theme = settings.theme.get('vars') or {} if g.output_directory == g.source_directory: matches = theme.get('reload_match') or [] matches.extend(['.md', '.mkd', '.markdown', '.rst']) if ext not in matches: return False elif os.path.abspath(g.output_directory) in \ os.path.abspath(path): return False modified = int(os.stat(path).st_mtime) if path not in self._modified_times: self._modified_times[path] = modified return False if path in self._modified_times and \ self._modified_times[path] == modified: return False self._modified_times[path] = modified logging.info('file changed: %s' % path) return True for f in walk_dir(path): if is_file_changed(f): return True return False
def run(self): for source in walk_dir(self.staticdir): path = source.replace(ns.storage.projectdir, '').lstrip('/') dest = os.path.join(self.deploydir, path) copy_to(source, dest)