WIP: Website Initial Implementation #1
					 2 changed files with 62 additions and 4 deletions
				
			
		|  | @ -26,10 +26,16 @@ def _get_content_from_file(file_name: str) -> str: | ||||||
|     with open(file_name, 'r') as f: |     with open(file_name, 'r') as f: | ||||||
|         return f.read() |         return f.read() | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| def render_tab(tab_name: str): | def render_tab(tab_name: str): | ||||||
|  |     """ | ||||||
|  |     Render a simple webpage tab from a single file | ||||||
|  |     :param tab_name: Tab name to render | ||||||
|  |     """ | ||||||
|     file_name = _tab_to_content.get(tab_name, _error_page) |     file_name = _tab_to_content.get(tab_name, _error_page) | ||||||
|     with ui.scroll_area().classes('w-full h-screen no-wrap'): |     with ui.scroll_area().classes('w-full h-screen no-wrap'): | ||||||
|         ui.markdown(_get_content_from_file(file_name), extras=['cuddled-lists', 'fenced-code-blocks', 'tables']) |         ui.markdown(_get_content_from_file(file_name), | ||||||
|  |                     extras=['cuddled-lists', 'fenced-code-blocks', 'tables']) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def render_main() -> ui.tab_panels: | def render_main() -> ui.tab_panels: | ||||||
|  | @ -50,6 +56,14 @@ def main(): | ||||||
|     header.set_value(list(_tab_to_content.keys())[0]) |     header.set_value(list(_tab_to_content.keys())[0]) | ||||||
|     ui.query('.nicegui-content').classes('h-screen no-wrap') |     ui.query('.nicegui-content').classes('h-screen no-wrap') | ||||||
|     ui.html(_get_content_from_file(_footer_block), tag="footer").classes("rounded-lg shadow-sm m-4 w-full text-center") |     ui.html(_get_content_from_file(_footer_block), tag="footer").classes("rounded-lg shadow-sm m-4 w-full text-center") | ||||||
|  |     ui.add_css(""" | ||||||
|  |                .fa { | ||||||
|  |                  font-size: 30px; | ||||||
|  |                  text-decoration: none; | ||||||
|  |                  margin: 10px 5px; | ||||||
|  |                  vertical-align: bottom; | ||||||
|  |                } | ||||||
|  |                 """) | ||||||
|     ui.run(dark=None, reload=False, title="Daniel McKnight") |     ui.run(dark=None, reload=False, title="Daniel McKnight") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,3 +1,47 @@ | ||||||
| <span class="text-sm text-gray-500 sm:text-center dark:text-gray-400"> | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> | ||||||
|     © 2025 Daniel McKnight. All Rights Reserved. | 
 | ||||||
| </span> | <div> | ||||||
|  |   <span class="text-3xl"> | ||||||
|  |     <a href="https://forge.mcknight.tech/d_mcknight" class="fa"> | ||||||
|  |       <svg height="30" width="20" fill="currentcolor" viewBox="50 0 120 212" xmlns="http://www.w3.org/2000/svg"> | ||||||
|  |         <metadata | ||||||
|  |           xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||||||
|  |           xmlns:cc="http://creativecommons.org/ns#" | ||||||
|  |           xmlns:dc="http://purl.org/dc/elements/1.1/" | ||||||
|  |         > | ||||||
|  |           <rdf:RDF> | ||||||
|  |             <cc:Work rdf:about="https://codeberg.org/forgejo/meta/src/branch/readme/branding#logo"> | ||||||
|  |               <dc:title>Forgejo logo</dc:title> | ||||||
|  |               <cc:creator rdf:resource="https://caesarschinas.com/"><cc:attributionName>Caesar Schinas</cc:attributionName></cc:creator> | ||||||
|  |               <cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> | ||||||
|  |             </cc:Work> | ||||||
|  |           </rdf:RDF> | ||||||
|  |         </metadata> | ||||||
|  |         <g transform="translate(6,6)"> | ||||||
|  |           <path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" stroke-width="25" fill="none" stroke="currentcolor" /> | ||||||
|  |           <path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" stroke-width="25" fill="none" stroke="currentcolor" /> | ||||||
|  |           <circle cx="142" cy="20" r="18" stroke-width="15" fill="none" stroke="currentcolor" /> | ||||||
|  |           <circle cx="142" cy="88" r="18" stroke-width="15" fill="none" stroke="currentcolor" /> | ||||||
|  |           <circle cx="58" cy="180" r="18" stroke-width="15" fill="none" stroke="currentcolor" /> | ||||||
|  |         </g> | ||||||
|  |       </svg> | ||||||
|  |     </a> | ||||||
|  |     <a href="https://github.com/neondaniel" class="fa fa-github"></a> | ||||||
|  |     <a href="https://www.linkedin.com/in/daniel-mcknight-55a5a15a/" class="fa fa-linkedin-square"></a> | ||||||
|  |     <a href="https://matrix.to/#/@d_mcknight:matrix.mcknight.tech" class="fa"> | ||||||
|  |       <svg version="1.1" height="30" fill="currentcolor" viewBox="0 0 27.9 32" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | ||||||
|  |        <g transform="translate(-.095 .005)"> | ||||||
|  |         <path d="m27.1 31.2v-30.5h-2.19v-0.732h3.04v32h-3.04v-0.732z"/> | ||||||
|  |         <path d="m8.23 10.4v1.54h0.044c0.385-0.564 0.893-1.03 1.49-1.37 0.58-0.323 1.25-0.485 1.99-0.485 0.72 0 1.38 0.14 1.97 0.42 0.595 0.279 1.05 0.771 1.36 1.48 0.338-0.5 0.796-0.941 1.38-1.32 0.58-0.383 1.27-0.574 2.06-0.574 0.602 0 1.16 0.074 1.67 0.22 0.514 0.148 0.954 0.383 1.32 0.707 0.366 0.323 0.653 0.746 0.859 1.27 0.205 0.522 0.308 1.15 0.308 1.89v7.63h-3.13v-6.46c0-0.383-0.015-0.743-0.044-1.08-0.0209-0.307-0.103-0.607-0.242-0.882-0.133-0.251-0.336-0.458-0.584-0.596-0.257-0.146-0.606-0.22-1.05-0.22-0.44 0-0.796 0.085-1.07 0.253-0.272 0.17-0.485 0.39-0.639 0.662-0.159 0.287-0.264 0.602-0.308 0.927-0.052 0.347-0.078 0.697-0.078 1.05v6.35h-3.13v-6.4c0-0.338-7e-3 -0.673-0.021-1-0.0114-0.314-0.0749-0.623-0.188-0.916-0.108-0.277-0.3-0.512-0.55-0.673-0.258-0.168-0.636-0.253-1.14-0.253-0.198 0.0083-0.394 0.042-0.584 0.1-0.258 0.0745-0.498 0.202-0.705 0.374-0.228 0.184-0.422 0.449-0.584 0.794-0.161 0.346-0.242 0.798-0.242 1.36v6.62h-3.13v-11.4z"/> | ||||||
|  |         <path d="m0.936 0.732v30.5h2.19v0.732h-3.04v-32h3.03v0.732z"/> | ||||||
|  |        </g> | ||||||
|  |       </svg> | ||||||
|  |     </a> | ||||||
|  |   </span> | ||||||
|  | </div> | ||||||
|  | <div> | ||||||
|  |   <span class="text-sm text-gray-500 sm:text-center dark:text-gray-400"> | ||||||
|  |       © 2025 Daniel McKnight. All Rights Reserved. | ||||||
|  |   </span> | ||||||
|  | </div> | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue