Cambiado de laravel a flask
Todo es mas simple~
This commit is contained in:
74
generator
Executable file
74
generator
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
from jinja2 import Template
|
||||
from markdown import markdown
|
||||
|
||||
src_dir = Path('src')
|
||||
out_dir = Path('www')
|
||||
|
||||
with open('template.html') as f:
|
||||
template = Template(f.read());
|
||||
|
||||
# Creates the directory tree for the out directory based on the src directory
|
||||
def create_dir_tree(path):
|
||||
out_dir.mkdir(exist_ok=True)
|
||||
for child in path.iterdir():
|
||||
if(child.is_dir()):
|
||||
(out_dir / child.relative_to(src_dir)).mkdir(exist_ok=True)
|
||||
create_dir_tree(child)
|
||||
|
||||
|
||||
# generates html from a md file and a jinja template
|
||||
def generate_html(md):
|
||||
return template.render(md=markdown(text=md, extensions=['codehilite']));
|
||||
|
||||
# takes a md file and puts it in a html file using generate_html
|
||||
def process_md(path):
|
||||
new_path = (out_dir / path.relative_to(src_dir)).with_suffix('.html')
|
||||
|
||||
with path.open(mode='r') as md_file:
|
||||
md = md_file.read()
|
||||
|
||||
html = generate_html(md)
|
||||
with new_path.open('w') as html_file:
|
||||
html_file.write(html)
|
||||
|
||||
# Every css file is appended to a file named style.css.
|
||||
def process_css(path):
|
||||
with open(str(path), 'rb') as src:
|
||||
with open(str(out_dir/'assets/style.css'), 'ab') as dst:
|
||||
shutil.copyfileobj(src, dst)
|
||||
|
||||
|
||||
# Every js file is just copied over to its destination
|
||||
def process_js(path):
|
||||
new_path = (out_dir / path.relative_to(src_dir))
|
||||
shutil.copyfile(str(path), str(new_path))
|
||||
|
||||
def process_any(path):
|
||||
new_path = (out_dir / path.relative_to(src_dir))
|
||||
shutil.copyfile(str(path), str(new_path))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
shutil.rmtree(out_dir)
|
||||
create_dir_tree(src_dir)
|
||||
|
||||
for path in Path(src_dir).rglob('*'):
|
||||
if path.suffix == '.draft':
|
||||
print('wont parse {} because is a draft'.format(path))
|
||||
continue
|
||||
elif path.suffix == '.md':
|
||||
print('parsing {} as md'.format(path))
|
||||
process_md(path)
|
||||
elif path.suffix == '.css':
|
||||
print('parsing {} as css'.format(path))
|
||||
process_css(path)
|
||||
elif path.suffix == '.js':
|
||||
print('parsing {} as js'.format(path))
|
||||
process_js(path)
|
||||
elif not path.is_dir():
|
||||
print('parsing {} as any'.format(path))
|
||||
process_any(path)
|
||||
Reference in New Issue
Block a user