From 45e13428ace36fa108e398b3d527bb9ef53d29f2 Mon Sep 17 00:00:00 2001 From: chimchooree Date: Sat, 2 Mar 2024 19:09:47 -0600 Subject: [PATCH] sitemap up to date --- src/index.py | 81 +++++++++++-------------- src/views/header.tpl | 3 +- src/views/sitemap.tpl | 138 +++++++++++++++++++++++++++++------------- 3 files changed, 132 insertions(+), 90 deletions(-) diff --git a/src/index.py b/src/index.py index 0ecca36..d4c5f1f 100644 --- a/src/index.py +++ b/src/index.py @@ -340,7 +340,6 @@ def prepare_diary_entry(page, loc): print("HEY - Error: " + str(e)) print("HEY - loc: " + loc) print("HEY - page: " + page) - print("PASS - " + loc + page) return result # Return article as list of lines of text @@ -454,27 +453,27 @@ def get_robots(): # Error Page @error(404) def error404(error): - return "unfortunately, a 404 error. the page you're searching for doesn't exist. (or is it just in hiding?) try another page! return to blessfrey.me. " + return "Unfortunately, a 404 error. The page you're searching for doesn't exist. (Or is it just in hiding?) Try another page! Return to Blessfrey.me. " @error(500) def error500(error): - return "unfortunately, a 500 error. something is wrong with the page you're trying to find, if it exists at all. try another page! return to blessfrey.me." + return "Unfortunately, a 500 error. Something is wrong with the page you're trying to find, if it exists at all. Try another page! Return to Blessfrey.me." @error(502) def error502(error): - return "unfortunately, a 502 error. this was likely due to website maintenance. usually it'll be back up before you finish reading this, but otherwise, I'll notice something's wrong soon! return to blessfrey.me." + return "Unfortunately, a 502 error. This was likely due to website maintenance. Usually it'll be back up before you finish reading this, but otherwise, I'll notice something's wrong soon! Return to Blessfrey.me." # About Blessfrey Page @route('/about') def about(): """about""" - info = {'css': 'doc', 'title': 'about blessfrey', 'year': find_year()} + info = {'css': 'doc', 'preview': 'Learn more about Blessfrey by Chimchooree, an action RPG made in Godot 4.', 'title': 'about blessfrey', 'year': find_year()} return template('about.tpl', info) # Art Gallery Page @route('/art') def art(): """art""" - info = {'css': 'art', 'title': 'blessfrey art gallery', 'year': find_year()} + info = {'css': 'art', 'preview': 'Chimchooree\'s art, sewing projects, and screenshots.', 'title': 'blessfrey art gallery', 'year': find_year()} return template('art.tpl', info) # OC Page @@ -488,7 +487,7 @@ def char2(): def char(char_name): """character page""" loc = 'char/' - info = {'css': 'char', 'title': 'blessfrey - characters | meet ' + char_name, 'year': find_year(), 'ocs': ["Helia", "Rune", "Angel", "Tessa", "Chloe", "Aries", "Night", "Dia", "Bless", "WISE", "Abbey", "Calder", "Silke", "Aloin", "Fifi", "Bijoux", "CatMan", "Belfry", "Aristen", "Chimchooree", "Freya", "Lune", "Chandra", "Colt", "Cass", "Katherine"], 'name': char_name, 'profile': prepare_profile(loc, char_name), 'gallery': find_gallery(char_name)} + info = {'css': 'char', 'preview': 'Chimchooree\'s OC database. Meet ' + char_name + "!", 'title': 'blessfrey - characters | meet ' + char_name, 'year': find_year(), 'ocs': ["Helia", "Rune", "Angel", "Tessa", "Chloe", "Aries", "Night", "Dia", "Bless", "WISE", "Abbey", "Calder", "Silke", "Aloin", "Fifi", "Bijoux", "CatMan", "Belfry", "Aristen", "Chimchooree", "Freya", "Lune", "Chandra", "Colt", "Cass", "Katherine"], 'name': char_name, 'profile': prepare_profile(loc, char_name), 'gallery': find_gallery(char_name)} abs_app_dir_path = os.path.dirname(os.path.realpath(__file__)) abs_views_path = os.path.join(abs_app_dir_path, 'views') TEMPLATE_PATH.insert(0, abs_views_path ) @@ -498,39 +497,39 @@ def char(char_name): @route('/credits') def credits(): """credits""" - info = {'css': 'doc', 'title': 'blessfrey credits', 'year': find_year()} + info = {'css': 'doc', 'preview': 'Keeping track of everyone who contributed to Blessfrey', 'title': 'blessfrey credits', 'year': find_year()} return template('credits.tpl', info) # Blessfrey Games Page @route('/games') def games(): """games""" - info = {'css': 'games', 'title': 'blessfrey games', 'year': find_year()} + info = {'css': 'games', 'preview': 'Play Chimchooree\'s HTML5 games in the browser! Best played on the desktop.', 'title': 'blessfrey games', 'year': find_year()} return template('games.tpl', info) @route('/blue-planet') def bp(): """game""" - info = {'css': 'games', 'title': 'blue planet - blessfrey games', 'year': find_year()} + info = {'css': 'games', 'preview': 'Play Blue Planet by Chimchooree, an HTML5 dressup prototype in the browser. Made in Godot 3.', 'title': 'blue planet - blessfrey games', 'year': find_year()} return template('games-bp.tpl', info) @route('/cheeryOS') def co(): """game""" - info = {'css': 'games', 'title': 'cheeryOS - blessfrey games', 'year': find_year()} + info = {'css': 'games', 'preview': 'Play CheeryOS by Chimchooree, an HTML5 pretend OS prototype in the browser. Made in Godot 3.', 'title': 'cheeryOS - blessfrey games', 'year': find_year()} return template('games-co.tpl', info) @route('/no-legs-the-cat') def nltc(): """game""" - info = {'css': 'games', 'title': 'no-legs the cat - blessfrey games', 'year': find_year()} + info = {'css': 'games', 'preview': 'Play No-Legs the Cat by Chimchooree, an HTML5 maze game in the browser. Made in Godot 3.', 'title': 'no-legs the cat - blessfrey games', 'year': find_year()} return template('games-nltc.tpl', info) @route('/small-thing-that-makes-things') def sttmt(): """game""" - info = {'css': 'games', 'title': 'small thing that makes things - blessfrey games', 'year': find_year()} + info = {'css': 'games', 'preview': 'Play Small Thing That Makes Things, an HTML5 adventure platformer in the browser. Made in Godot 3 for #WeeklyGameJam.', 'title': 'small thing that makes things - blessfrey games', 'year': find_year()} return template('games-sttmt.tpl', info) @route('/stoplight') def sl(): """game""" - info = {'css': 'games', 'title': 'stoplight - blessfrey games', 'year': find_year()} + info = {'css': 'games', 'preview': 'Play Stoplight, an HTML5 coroutines prototype in the browser. Made in Godot 3.', 'title': 'stoplight - blessfrey games', 'year': find_year()} return template('games-sl.tpl', info) @@ -555,7 +554,7 @@ def diary(page): """diary""" loc = 'diary/entries/' assert isinstance(page, int) - info = {'css': 'diary', 'title': 'chimchooree\'s diary', 'year': find_year(), 'snippets': list_snippets(gather_and_sort(loc), loc), 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page, 'category': "diary"} + info = {'css': 'diary', 'title': 'chimchooree\'s diary', 'preview': 'Chimchooree\'s diary, sharing gamedev, webdev, Bible study, and personal reflections.', 'year': find_year(), 'snippets': list_snippets(gather_and_sort(loc), loc), 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page, 'category': "diary"} return template('diary.tpl', info) # Entry Page - Feature Template - for articles @@ -567,7 +566,8 @@ def entry(page_t): page = str(page_t) loc = 'diary/entries/' entry = prepare_diary_entry(page, loc) - info = {'css': 'entry', 'title': entry[0] + ' (blessfrey developer diary)', 'year': find_year(), 'entry': entry, 'recommends': list_rec(page, loc), 'articles': "Articles", 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'page': page, 'category': "diary"} + + info = {'css': 'entry', 'title': entry[0], 'year': find_year(), 'preview': prepare_article(entry[1], loc + page), 'entry': entry, 'recommends': list_rec(page, loc), 'articles': "Articles", 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'page': page, 'category': "diary"} abs_app_dir_path = os.path.dirname(os.path.realpath(__file__)) abs_views_path = os.path.join(abs_app_dir_path, 'views') TEMPLATE_PATH.insert(0, abs_views_path ) @@ -577,7 +577,7 @@ def entry(page_t): @route('/blessfrey-gdd') def gddbf(): """Game Design Document""" - info = {'css': 'doc', 'title': 'blessfrey gdd', 'year': find_year(), 'topics': get_gdd_topics( + info = {'css': 'doc', 'title': 'blessfrey gdd', 'preview': 'Blessfrey\'s game design document', 'year': find_year(), 'topics': get_gdd_topics( ["achievement", "ai", "armor-rating", "attack-loop", "attribute", "attribute-point", "cast", "character", "collision", "controls", "credits", "damage-type", "death-penalty", "design-philosophy", "dialogue", "docs", "environment-effect", "fog-of-war", "gear", "gig", "groups", "highlight", "ID", "inspect menu", "inventory", "item", "job", "keyword", "KnowledgeBase", "language", "life", "marketing", "mechanics", "MessageBus", "Mercur", "milestones", "miracles", "pathfinding", "perk", "pip", "projectile", "proxemics", "punishment", "setting", "skill", "smartphone", "spirit", "status-effect", "store", "story", "style guide", "terms", "ui", "vibe", "website", "xp", "xp-bar", "zone"],3 )} return template('bf-gdd.tpl', info) @@ -601,29 +601,29 @@ def page(page): # if page.lower() in ["job","keyword","skill"]: # return mechpage(page) loc = 'blessfrey-gdd/' - info = {'css': 'doc', 'title': 'Blessfrey GDD - ' + page, 'year': find_year(), 'topic': page.lower(), 'writeup': prepare_gdd_page(page, loc)} + info = {'css': 'doc', 'title': 'Blessfrey GDD - ' + page, 'preview': 'Blessfrey\'s GDD - ' + page, 'year': find_year(), 'topic': page.lower(), 'writeup': prepare_gdd_page(page, loc)} return template('page.tpl', info) # Blessfrey Docs (Objects, Variables, & Methods) @route('/blessfrey-gdd/docs') def docs(): """docs""" - info = {'css': 'doc', 'title': 'Blessfrey Documentation', 'year': find_year(), 'topic': 'docs', 'writeup': prepare_gdd_page('docs', 'blessfrey-gdd/docs/')} + info = {'css': 'doc', 'title': 'Blessfrey Documentation', 'preview': 'Blessfrey Documentation', 'year': find_year(), 'topic': 'docs', 'writeup': prepare_gdd_page('docs', 'blessfrey-gdd/docs/')} return template('page.tpl', info) @route('/blessfrey-gdd/docs/') def docpage(page): loc = 'blessfrey-gdd/docs/' - info = {'css': 'doc', 'title': 'Blessfrey GDD - ' + page, 'year': find_year(), 'topic': 'docs ~ ' + page.lower(), 'writeup': prepare_gdd_page(page, loc)} + info = {'css': 'doc', 'title': 'Blessfrey GDD - ' + page, 'preview': 'Blessfrey GDD - ' + page, 'year': find_year(), 'topic': 'docs ~ ' + page.lower(), 'writeup': prepare_gdd_page(page, loc)} return template('page.tpl', info) # Blessfrey Mechanics @route('/blessfrey-gdd/mechanics') def mech(): """mechanics""" - info = {'css': 'doc', 'title': 'game mechanics (blessfrey GDD)', 'year': find_year(), 'topic': 'game mechanics', 'writeup': prepare_gdd_page('mechanics', 'blessfrey-gdd/mechanics/')} + info = {'css': 'doc', 'title': 'game mechanics (blessfrey GDD)', 'preview': 'Blessfrey game design document - game mechanics', 'year': find_year(), 'topic': 'game mechanics', 'writeup': prepare_gdd_page('mechanics', 'blessfrey-gdd/mechanics/')} return template('page.tpl', info) @route('/blessfrey-gdd/mechanics/') def mechpage(page): loc = 'blessfrey-gdd/mechanics/' - info = {'css': 'doc', 'title': 'blessfrey GDD - ' + page, 'year': find_year(), 'topic': 'game mechanic ~ ' + page.lower(), 'writeup': prepare_gdd_page(page, loc)} + info = {'css': 'doc', 'title': 'blessfrey GDD - ' + page, 'preview': 'Blessfrey GDD' + page, 'year': find_year(), 'topic': 'game mechanic ~ ' + page.lower(), 'writeup': prepare_gdd_page(page, loc)} return template('page.tpl', info) # Blessfrey Style Guide Page @route('/blessfrey-style-guide') @@ -638,56 +638,49 @@ def style1(): @route('/style') def style(): """style guide""" - info = {'css': 'doc', 'title': 'blessfrey style guide', 'year': find_year()} + info = {'css': 'doc', 'title': 'blessfrey style guide', 'preview': 'Blessfrey\'s style guide', 'year': find_year()} return template('style-guide.tpl', info) # Me Page @route('/about-me') def me(): """me""" - info = {'css': 'me', 'title': 'meet me, chimchooree', 'year': find_year()} + info = {'css': 'me', 'title': 'meet me, chimchooree', 'preview': 'Meet me, Chimchooree, and learn more about my projects - gamedev, webdev, Bible study, creative writing, pixel art, and more!', 'year': find_year()} return template('me.tpl', info) # Feature Requirements @route('/milestones') def milestones(): """feature requirements""" - info = {'css': 'doc', 'title': 'blessfrey milestones', 'year': find_year()} + info = {'css': 'doc', 'title': 'blessfrey milestones', 'preview': 'Blessfrey milestones', 'year': find_year()} return template('milestones.tpl', info) # Blessfrey - Feature Requirements Page @route('/blessfrey-milestones') def milestones(): - info = {'css': 'doc', 'title': 'blessfrey milestones', 'year': find_year()} + info = {'css': 'doc', 'title': 'blessfrey milestones', 'preview': 'Blessfrey milestones', 'year': find_year()} return template('milestones-bf.tpl', info) # Lemonland - Feature Requirements Page @route('/lemonland-milestones') def milestones(): - info = {'css': 'doc', 'title': 'blessfrey milestones', 'year': find_year()} + info = {'css': 'doc', 'title': 'lemonland milestones', 'preview': 'Lemonland milestones', 'year': find_year()} return template('milestones-ll.tpl', info) # Blue Planet - Feature Requirements Page @route('/blueplanet-milestones') def milestones(): - info = {'css': 'doc', 'title': 'blessfrey milestones', 'year': find_year()} + info = {'css': 'doc', 'title': 'blue planet milestones', 'preview': 'Blue Planet milestones', 'year': find_year()} return template('milestones-bp.tpl', info) # LazyWiki - Feature Requirements Page @route('/lazywiki-milestones') def milestones(): """feature requirements""" - info = {'css': 'doc', 'title': 'blessfrey milestones', 'year': find_year()} + info = {'css': 'doc', 'title': 'lazywiki milestones', 'preview': 'LazyWiki milestones', 'year': find_year()} return template('milestones-lw.tpl', info) -# Blessfrey Presskit Page -@route('/blessfrey-presskit') -def presskit(): - """presskit""" - info = {'css': 'doc', 'title': 'blessfrey presskit', 'year': find_year()} - return template('blessfrey-presskit.tpl', info) - # Sitemap @route('/sitemap') def sitemap(): """sitemap""" - info = {'css': 'doc', 'title': 'blessfrey sitemap', 'year': find_year()} + info = {'css': 'doc', 'title': 'blessfrey sitemap', 'preview': 'Blessfrey\'s sitemap', 'year': find_year()} return template('sitemap.tpl', info) # Species Page @@ -704,7 +697,7 @@ def spec2(): def spec(species_name): """species page""" loc = 'species/' - info = {'css': 'char', 'title': 'blessfrey - species | meet ' + species_name, 'year': find_year(), 'ocs': ["human","giant","serpent"], 'name': species_name, 'profile': prepare_profile(loc, species_name), 'gallery': find_gallery(species_name)} + info = {'css': 'char', 'title': 'blessfrey - species | meet ' + species_name, 'preview': 'Blessfrey - species | Meet ' + species_name, 'year': find_year(), 'ocs': ["human","giant","serpent"], 'name': species_name, 'profile': prepare_profile(loc, species_name), 'gallery': find_gallery(species_name)} abs_app_dir_path = os.path.dirname(os.path.realpath(__file__)) abs_views_path = os.path.join(abs_app_dir_path, 'views') TEMPLATE_PATH.insert(0, abs_views_path ) @@ -717,7 +710,7 @@ def setting2(): @route('/blessfrey-gdd/setting') def setting(): """setting""" - info = {'css': 'doc', 'title': 'blessfrey gdd - setting', 'year': find_year()} + info = {'css': 'doc', 'title': 'blessfrey gdd - setting', 'preview': 'Blessfrey GDD - Setting', 'year': find_year()} return template('setting.tpl', info) # Story Page @@ -729,9 +722,7 @@ def story(story): """story""" loc = 'story/' entry = prepare_diary_entry(story, loc) - print("HEY ... ") - print(entry) - info = {'css': 'entry', 'title': entry[0], 'year': find_year(), 'entry': entry, 'recommends': list_rec(story, loc), 'articles': "Articles", 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'page': story, 'category': "story"} + info = {'css': 'entry', 'title': entry[0], 'preview': entry[1], 'year': find_year(), 'entry': entry, 'recommends': list_rec(story, loc), 'articles': "Articles", 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'page': story, 'category': "story"} abs_app_dir_path = os.path.dirname(os.path.realpath(__file__)) abs_views_path = os.path.join(abs_app_dir_path, 'views') TEMPLATE_PATH.insert(0, abs_views_path ) @@ -746,14 +737,14 @@ def story_tag(tagin, page, loc): print("PASS - TAG - " + tagin) assert isinstance(tagin, str) assert isinstance(page, int) - info = {'css': 'diary', 'title': 'blessfrey developer diary', 'year': find_year(), 'snippets': list_snippets(pull_tag(gather_and_sort(loc), tagin, loc), loc), 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page, 'category': "story"} + info = {'css': 'diary', 'title': 'Blessfrey stories', 'preview': 'Chimchooree\'s creative writing', 'year': find_year(), 'snippets': list_snippets(pull_tag(gather_and_sort(loc), tagin, loc), loc), 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page, 'category': "story"} return template('diary.tpl', info) # Blessfrey Wiki Page @route('/study') def study(): """study""" - redirect('/wiki.blessfrey.me/view/Main_Page') + redirect('wiki.blessfrey.me/view/Blessfrey') # Search Diary by Tag @route('/diary/tag/') # Start on first Diary tag page if no page given @@ -765,7 +756,7 @@ def diary_tag(tagin, page, loc): print("PASS - TAG - " + tagin) assert isinstance(tagin, str) assert isinstance(page, int) - info = {'css': 'diary', 'title': 'blessfrey developer diary', 'year': find_year(), 'snippets': list_snippets(pull_tag(gather_and_sort(loc), tagin, loc), loc), 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page, 'category': "diary"} + info = {'css': 'diary', 'title': 'blessfrey developer diary', 'preview': 'Search Chimchooree\'s diary by tag', 'year': find_year(), 'snippets': list_snippets(pull_tag(gather_and_sort(loc), tagin, loc), loc), 'latest': list_headlines(gather_and_sort(loc)[0:5], loc), 'tags': fill_word_cloud(curate_files(gather_files(loc)), loc), 'total': len(curate_files(gather_files(loc))), 'limit': 8, 'cluster': 3, 'page': page, 'category': "diary"} return template('diary.tpl', info) ## Main ## diff --git a/src/views/header.tpl b/src/views/header.tpl index 9dbf4c5..3f3f6c5 100644 --- a/src/views/header.tpl +++ b/src/views/header.tpl @@ -2,8 +2,7 @@ - - + diff --git a/src/views/sitemap.tpl b/src/views/sitemap.tpl index 5b9e3c5..c0632b4 100644 --- a/src/views/sitemap.tpl +++ b/src/views/sitemap.tpl @@ -7,71 +7,123 @@
diary
    -
  • {{random.choice(['.','•','☆','★'])}} specific diary page
  • -
  • {{random.choice(['.','•','☆','★'])}} specific diary tag
  • - % for i in ["220831"]: -
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • - % end +
    + diary entries +
      + % for i in ["220831","230227","230508","230519","240101","240108","240109","240219","240220","240301","240302"]: +
    • {{random.choice(['.','•','☆','★'])}} {{i}}
    • + % end +
    +
    + +
    + diary tags +
      + % for j in ["bible","bottlepy","christian","css","game-jam","godot","health","html","japanese","language-learning","personal","programming","python","simpletemplate","webdev","wiki"]: +
    • {{random.choice(['.','•','☆','★'])}} {{j}}
    • + % end +
    +

-play
-
- -
- info +
+ games +
    + % for k in ["blue-planet","cheeryOS","no-legs-the-cat","small-thing-that-makes-things","stoplight"]: +
  • {{random.choice(['.','•','☆','★'])}} {{k}}
  • + % end +
+
+ about Blessfrey RPG
    - % for i in ["milestones","gdd","presskit","characters"]: + % for i in ["credits","blessfrey-milestones","style-guide"]:
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • % end -
-
-
+
+ gdd +
    + % for i in ["achievement", "ai", "armor-rating", "attack-loop", "attribute", "attribute-point", "cast", "character", "collision", "controls", "credits", "damage-type", "death-penalty", "design-philosophy", "dialogue", "docs", "environment-effect", "fog-of-war", "gear", "gig", "groups", "highlight", "ID", "inspect menu", "inventory", "item", "job", "keyword", "KnowledgeBase", "language", "life", "marketing", "mechanics", "MessageBus", "Mercur", "milestones", "miracles", "pathfinding", "perk", "pip", "projectile", "proxemics", "punishment", "setting", "skill", "smartphone", "spirit", "status-effect", "store", "story", "style guide", "terms", "ui", "vibe", "website", "xp", "xp-bar", "zone"]: +
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • + % end +
+ + + +
+ documentation +
    + % for i in ["inspect-menu","skill-json","tangible-body"]: +
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • + % end +
+
+ +
+ +
+ about Lemonland, a petsite +
    + % for i in ["lemonland-milestones","style-guide"]: +
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • + % end +
+ +
+ about Blue Planet, a dressup game +
    + % for i in ["blueplanet-milestones","style-guide"]: +
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • + % end +
+ +
+ about LazyWiki, my husband's single-user wiki software +
    + % for i in ["lazywiki-milestones"]: +
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • + % end +
-dev
-
- -
- gdd -
    - % for i in ["cast","credits","ID","inspect menu","item","job","keyword","mechanics","Mercur","milestones","proxemics","setting","skill","story","style guide","terms","vibe","website"]: -
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • - % end -
-
+

- +
characters
    - % for i in ["Helia","Rune","Tessa","Abbey","Calder","Silke","Aristen","Chimchooree","Lune"]: + % for i in ["Helia", "Rune", "Angel", "Tessa", "Chloe", "Aries", "Night", "Dia", "Bless", "WISE", "Abbey", "Calder", "Silke", "Aloin", "Fifi", "Bijoux", "CatMan", "Belfry", "Aristen", "Chimchooree", "Freya", "Lune", "Chandra", "Colt", "Cass", "Katherine"]:
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • % end
-
- -
- species -
    - % for i in ["human"]: -
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • - % end -
-
-
+
- location + story
    - % for i in ["Lucrest"]: -
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • + % for i in ["hello-traveler", "home", "parasomnia", "whose-game-are-we-playing"]: +
  • {{random.choice(['.','•','☆','★'])}} {{i}}
  • % end
+
+ story tags +
    + % for j in ["cass", "chandra", "colt", "driscoll", "katherine", "van"]: +
  • {{random.choice(['.','•','☆','★'])}} {{j}}
  • + % end +
+
-
+
+ +art
+
+ +about me, Chimchooree
+
-presskit
+study wiki
+