You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.9 KiB
Python
159 lines
4.9 KiB
Python
import os
|
|
import markdown
|
|
from random import choice
|
|
|
|
# Get the directory path of the script
|
|
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
materials = ['1_situation', '2_binding', '3_paperformat', '4_add_ons']
|
|
|
|
cards = {
|
|
'1_situation' : {
|
|
'content' : [],
|
|
'make-a-notebook-that' : []
|
|
|
|
},
|
|
|
|
'2_binding' : {
|
|
'content' : [],
|
|
'make-a-notebook-that' : []
|
|
},
|
|
|
|
'3_paperformat' : {
|
|
'content' : [],
|
|
'make-a-notebook-that' : []
|
|
},
|
|
|
|
'4_add_ons' : {
|
|
'content' : [],
|
|
'make-a-notebook-that' : []
|
|
}
|
|
|
|
}
|
|
|
|
for folder in materials:
|
|
material_folder_path = os.path.join(script_dir, folder)
|
|
card_folders = os.listdir(material_folder_path)
|
|
#print(material_folder_path)
|
|
for card_folder in card_folders:
|
|
card_folder_path = os.path.join(material_folder_path, card_folder)
|
|
#print(card_folder_path) #these are content and make a notebook that folders paths
|
|
my_files = os.listdir(card_folder_path)
|
|
#print(my_files)
|
|
for my_file in my_files:
|
|
file_path = os.path.join(card_folder_path, my_file)
|
|
relative_file_path = os.path.relpath(file_path, os.path.dirname(__file__))
|
|
#image_path =
|
|
#print(file_path)
|
|
#print(relative_file_path)
|
|
|
|
if my_file.endswith(('.md', '.markdown')):
|
|
with open(file_path, 'r') as file:
|
|
md = file.read()
|
|
card = markdown.markdown(md)
|
|
#print(card) # the print of all the md files
|
|
cards[folder][card_folder].append(card)
|
|
elif my_file.endswith(('.jpg', '.jpeg', '.png')):
|
|
if 'prototype_' in my_file:
|
|
my_file= my_file.replace('.jpg', '').replace('.jpeg', '').replace('.png', '').replace('prototype_', '').replace('_', ' ')
|
|
image_html = f'<img src="{relative_file_path}" alt="{my_file}" />' + f"<div class='image_titles'>{my_file}</div>"
|
|
|
|
else:
|
|
image_html = f'<img src="{relative_file_path}" alt="{my_file}" />'
|
|
mycard = f'<div class="card" style="background-image: url("{relative_file_path}");">{image_html}</div> '
|
|
cards[folder][card_folder].append(mycard)
|
|
#print(my_file)
|
|
|
|
|
|
|
|
#print(card_folder)
|
|
#print(file_path)
|
|
|
|
|
|
number_pages = 32
|
|
pages = []
|
|
|
|
|
|
for page in range(number_pages):
|
|
|
|
|
|
card_1= choice(cards["1_situation"]["content"])
|
|
cards["1_situation"]["content"].remove(card_1)
|
|
card_2= choice(cards["1_situation"]["make-a-notebook-that"])
|
|
cards["1_situation"]["make-a-notebook-that"].remove(card_2)
|
|
|
|
card_3= choice(cards["2_binding"]["content"])
|
|
cards["2_binding"]["content"].remove(card_3)
|
|
card_4= choice(cards["2_binding"]["make-a-notebook-that"])
|
|
cards["2_binding"]["make-a-notebook-that"].remove(card_4)
|
|
|
|
card_5= choice(cards["3_paperformat"]["content"])
|
|
cards["3_paperformat"]["content"].remove(card_5)
|
|
card_6= choice(cards["3_paperformat"]["make-a-notebook-that"])
|
|
cards["3_paperformat"]["make-a-notebook-that"].remove(card_6)
|
|
|
|
card_7= choice(cards["4_add_ons"]["content"])
|
|
cards["4_add_ons"]["content"].remove(card_7)
|
|
card_8= choice(cards["4_add_ons"]["make-a-notebook-that"])
|
|
cards["4_add_ons"]["make-a-notebook-that"].remove(card_8)
|
|
|
|
|
|
|
|
page_html = f'''
|
|
|
|
<div class="page">
|
|
<div class="card left-card">{card_1}</div>
|
|
<div class="card right-card">{card_2}</div>
|
|
<div class="card left-card">{card_3}</div>
|
|
<div class="card right-card">{card_4}</div>
|
|
<div class="card left-card">{card_5}</div>
|
|
<div class="card right-card">{card_6}</div>
|
|
<div class="card left-card">{card_7}</div>
|
|
<div class="card right-card">{card_8}</div>
|
|
</div>
|
|
|
|
|
|
'''
|
|
|
|
pages.append(page_html)
|
|
#print(page_html)
|
|
|
|
|
|
#print(pages)
|
|
pages_string = "\n".join(pages)
|
|
|
|
html_template = f'''
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Document</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
<link href="https://fonts.cdnfonts.com/css/fjord" rel="stylesheet">
|
|
<link href="https://fonts.cdnfonts.com/css/notcouriersans" rel="stylesheet">
|
|
<link href='https://fonts.googleapis.com/css?family=Catamaran' rel='stylesheet'>
|
|
|
|
|
|
|
|
</head>
|
|
<body>
|
|
<nav><button class="btn infobutton">info</button>
|
|
<button class="btn print" onclick="window.print()">print</button>
|
|
<button class="btn mynotebooks"> my notebooks</button>
|
|
<button class="btn generator">online notebooks generator</button>
|
|
</nav>
|
|
|
|
|
|
{pages_string}
|
|
|
|
</body>
|
|
</html>
|
|
|
|
'''
|
|
|
|
#print(html_template)
|
|
#for i in range(10):
|
|
with open('notebooks.html', 'w') as out:
|
|
out.write(html_template)
|