diff --git a/install.py b/install.py index d0c1c3b..9c51af0 100755 --- a/install.py +++ b/install.py @@ -12,34 +12,87 @@ home = expanduser("~") config_dir = home + '/.config/StartTree' config_path = home + '/.config/StartTree/config.yaml' -# check if .config path exists -if not os.path.isdir(home + '/.config'): - print("The directory '~/.config' does not exist, or you do not have permissions to edit it.") - exit() +# get cache path +cache_dir = home + '/.cache/StartTree' -# check if .config/StartTree exists, create it and config if not -if not os.path.isdir(config_dir): - print("Creating '~/.config/StartTree'...") - os.mkdir(config_dir) - print("Copying config.yaml") - copyfile("./config.yaml", config_path) - print("") +def setup(): + # check if .config path exists + if not os.path.isdir(home + '/.config'): + print("The directory '~/.config' does not exist, or you do not have permissions to edit it.") + exit() -# check if config.yaml exists -if not os.path.exists(config_path): - print("No config.yaml found in '~/.config/StartTree'") - print("Copy the example config with:") - print("\tcp ./config.yaml $HOME/.config/StartTree/config.yaml") - print("or create your own in that directory.") - exit() + if not os.path.isdir(home + '/.cache'): + print("The directory '~/.cache' does not exist, or you do not have permissions to edit it.") + exit() + # check if .config/StartTree exists, create it and config if not + if not os.path.isdir(config_dir): + print("Creating '~/.config/StartTree'...") + os.mkdir(config_dir) + print("Copying config.yaml") + copyfile("./config.yaml", config_path) + print("") -file_dict = {} -num_columns = 0 + # check if config.yaml exists + if not os.path.exists(config_path): + print("No config.yaml found in '~/.config/StartTree'") + print("Copy the example config with:") + print("\tcp ./config.yaml $HOME/.config/StartTree/config.yaml") + print("or create your own in that directory.") + exit() -with open(config_path, mode='r') as file: - file_dict = yaml.full_load(file) - file.close() + # create directory structure in .cache + if not os.path.isdir(cache_dir): + print("Creating '" + cache_dir + "'...") + os.mkdir(cache_dir) -num_columns = len(file_dict) + print("Creating '" + cache_dir + "/styles'") + os.mkdir(cache_dir + '/styles') + print("Creating style.css") + copyfile("./skeletons/style.css", cache_dir + '/styles/style.css') + + print("Creating Hack.ttf") + copyfile("./skeletons/Hack.ttf", cache_dir + '/styles/Hack.ttf') + +def parse_yaml(): + with open(config_path, mode='r') as file: + file_dict = yaml.full_load(file) + file.close() + + return file_dict + +def print_keys(dictionary): + for key in dictionary: + print(key) + if isinstance(dictionary[key], dict): + print_keys(dictionary[key]) + +def gen_columns(html_file): + print("here") + +def gen_html(): + print("Generating index.html...") + + # open files + skeleton_html = open('./skeletons/index.html', 'r') + cache_html = open(cache_dir + '/index.html', 'w') + + # copy skeleton_html to cache_html until Column Start comment + lines = skeleton_html.readlines() + for line in lines: + if line == "": + gen_columns(cache_html) + else: + cache_html.write(line) + + # close files + skeleton_html.close() + cache_html.close() + + print("Done!") + +if __name__ == '__main__': + setup() + file_dict = parse_yaml() + gen_html() diff --git a/skeletons/Hack.ttf b/skeletons/Hack.ttf new file mode 100644 index 0000000..d770b83 Binary files /dev/null and b/skeletons/Hack.ttf differ diff --git a/skeletons/index.html b/skeletons/index.html index 9561f27..0e41d59 100644 --- a/skeletons/index.html +++ b/skeletons/index.html @@ -9,13 +9,10 @@
~ λ tree
- - +
~ λ ddg
- - -
+

search:

diff --git a/skeletons/style.css b/skeletons/style.css new file mode 100644 index 0000000..98ae136 --- /dev/null +++ b/skeletons/style.css @@ -0,0 +1,133 @@ +@import url('/home/paul/.cache/wal/colors.css'); +@font-face { + font-family: "Roboto Mono"; + src: url("./Hack.ttf"); +} + +:root { + --font: "Roboto Mono"; + /* --background: var(--background) !important; */ + /* --foreground: #fffffe; */ + /* --pink: #e53170; */ + /* --red: #f25f4c; */ + /* --orange: #ff8906; */ + /* --branch: 1px solid #a7a9be; */ + --branch: 1px solid var(--color12); +} + +html { + font-size: 22px; +} + +body { + background: var(--background); +} + +.container { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.prompt { + font-family: var(--font); + color: var(--color5); +} + +.prompt~.prompt { + padding: 1.5rem 0 0.3125rem; +} + +span { + color: var(--color10); +} + +h1 { + display: inline; + font-family: var(--font); + font-size: 1rem; + font-weight: normal; + color: var(--color9); +} + +.tree > ul { + margin: 0; + padding-left: 1rem; + padding-right: 1rem; +} + +ul { + list-style: none; + padding-left: 2.5rem; +} + +li { + position: relative; +} + +li::before, li::after { + content: ""; + position: absolute; + left: -0.75rem; +} + +li::before { + border-top: var(--branch); + top: 0.75rem; + width: 0.5rem; +} + +li::after { + border-left: var(--branch); + height: 100%; + top: 0.25rem; +} + +li:last-child::after { + height: 0.5rem; +} + +a { + font-family: var(--font); + font-size: 1rem; + color: var(--color6); + text-decoration: none; + outline: none; +} + +a:hover { + color: var(--color12); + background: var(--background); +} + +form h1 { + padding-left: 0.125rem; +} + +input { + font-family: var(--font); + font-size: 1rem; + color: var(--color6); + background-color: var(--background); + border-width: 1px; + border-color: var(--color12); + border-style: solid; + padding-top: 4px; + padding-bottom: 4px; +} + +.column { + flex: 50%; + padding: 5px; +} + +.row { + display: flex; +} + +.row:after { + content: ""; + display: table; + clear: both; +}