mirror of
https://github.com/CrispyPin/crispypin.cc.git
synced 2024-11-10 04:00:27 +01:00
cleanup
This commit is contained in:
parent
9bb895731e
commit
e3bd8369db
2 changed files with 30 additions and 22 deletions
|
@ -10,7 +10,7 @@
|
|||
<h>My awesome header</h>
|
||||
<p>todo: add links</p>
|
||||
<p>amazing content</p>
|
||||
<p>amazing footer</p>
|
||||
<p>amazing footer</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -5,50 +5,58 @@ PAGE_DIR = "./pages/"
|
|||
TEMPLATE_DIR = "./templates/"
|
||||
TARGET_DIR = "./docs/"
|
||||
|
||||
INCLUDE_DECORATOR = "&include("
|
||||
INCLUDE_DECORATOR_END = ")"
|
||||
INCLUDE_MARKER = "&include("
|
||||
INCLUDE_MARKER_END = ")"
|
||||
|
||||
def process_dir(path: str = "") -> None:
|
||||
items = os.listdir(PAGE_DIR + path)
|
||||
for i in items:
|
||||
i_path = path + i
|
||||
if os.path.isdir(i_path):
|
||||
process_dir(i_path + "/")
|
||||
for name in items:
|
||||
if os.path.isdir(path + name):
|
||||
process_dir(path + name + "/")
|
||||
else:
|
||||
process_file(i_path)
|
||||
process_file(path + name)
|
||||
|
||||
|
||||
def process_file(filepath: str) -> str:
|
||||
contents = read_file(PAGE_DIR, filepath)
|
||||
while INCLUDE_DECORATOR in contents:
|
||||
contents = replace_next_include(contents)
|
||||
contents = read_file(PAGE_DIR + filepath)
|
||||
while INCLUDE_MARKER in contents:
|
||||
contents = apply_include(contents)
|
||||
|
||||
with open(TARGET_DIR + filepath, "w") as f:
|
||||
f.write(contents)
|
||||
|
||||
|
||||
def replace_next_include(contents: str) -> str:
|
||||
index_start, index_end = get_include_indices(contents)
|
||||
|
||||
include_name = contents[index_start + len(INCLUDE_DECORATOR):index_end]
|
||||
def apply_include(contents: str) -> str:
|
||||
included_file = get_included_name(contents)
|
||||
|
||||
new_contents = read_file(TEMPLATE_DIR, include_name)
|
||||
new_contents = read_file(TEMPLATE_DIR + included_file)
|
||||
return insert_contents(contents, new_contents)
|
||||
|
||||
|
||||
def insert_contents(contents, new_contents):
|
||||
index_start, index_end = get_marker_indices(contents)
|
||||
return contents[:index_start] + new_contents + contents[index_end+1:]
|
||||
|
||||
|
||||
def get_include_indices(contents: str) -> tuple:
|
||||
index_start = contents.find(INCLUDE_DECORATOR)
|
||||
index_end = contents.find(INCLUDE_DECORATOR_END, index_start)
|
||||
def get_included_name(contents):
|
||||
marker_start, marker_end = get_marker_indices(contents)
|
||||
name_start = marker_start + len(INCLUDE_MARKER)
|
||||
name_end = marker_end - len(INCLUDE_MARKER_END)
|
||||
return contents[name_start:name_end + 1]
|
||||
|
||||
|
||||
def get_marker_indices(contents: str) -> tuple:
|
||||
index_start = contents.find(INCLUDE_MARKER)
|
||||
index_end = contents.find(INCLUDE_MARKER_END, index_start)
|
||||
return (index_start, index_end)
|
||||
|
||||
|
||||
def read_file(folder: str, filepath: str):
|
||||
def read_file(filepath: str):
|
||||
contents = ""
|
||||
with open(folder + filepath, "r") as f:
|
||||
with open(filepath, "r") as f:
|
||||
contents = f.read()
|
||||
return contents
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
process_dir()
|
Loading…
Reference in a new issue