A mirror of my website's source code.

Rewrite readme

by steve0greatness, Wednesday, 17 July 2024, 19:13:44 (1721243624), pushed by steve0greatness, Wednesday, 17 July 2024, 19:14:01 (1721243641)

Author identity: Steve0Greatness <steve0greatnessiscool@gmail.com>

91f010f03574ebb46cebac9ea990f7ce708d9682

README.md

@@ -1,20 +0,0 @@

                                
                                
                                
                            
                                
                                    
                                        
                                        # Steve0Greatness' Website
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Note that whilst this repository is the official code of my website, the only offically support
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        depolyment of this code is [steve0greatness.nekoweb.org](https://steve0greatness.nekoweb.org).
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        This is the static site generator of my website! It's written completely in
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Python, using the libraries Jinja2(templating), Markdown2(blog posts), and PyYAML(lists).
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        It's built to be runnable with a single command, and can be ran on multiple operating systems
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        and then dump its contents into the `build` directory(this can be configured); and from there,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        you can pretty much do whatever you want with it:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * Deploy it to GitHub pages
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * Zip it up using and upload it to Nekoweb.org
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        I mostly use this SSG so I don't have to over-complicate my pages with tons of JavaScript that
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        slows down the load time significantly.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        It's licensed under GPL-v3, so don't go close-sourcing it :P
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                            
                                

README.txt

@@ -0,0 +1,118 @@

                                
                                
                                
                            
                                
                                    
                                        
                                        == Website Source Code ==
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        All of my site is generated using a small Python script.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        This script is build.py. Keep in mind that you may need
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        to install requirements (and also download Renderers.py
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        from this repo):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * Jinja2
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * Markdown2
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * PyYAML
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        This is all that is required. This script is licensed
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        under the LGPL, as I don't currently want to license my
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        site.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        If you plan to base your website on my own, I ask that
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        you simply copy the script, and not my entire site (IE:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Please only download build.py and Renderers.py). From
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        there, you will need to create a few folders:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * views
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * blog-posts
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * lists
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * static
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        The following few sections will explain these
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        directories.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ---
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        views includes all of your HTML templates which will be
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        used to render all pages on your site. It uses Jinja
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        syntax. You can find a reference for Jinja's syntax on
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        the project's website:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        https://jinja.palletsprojects.com/en/3.1.x/templates/
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ---
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        blog-posts contains all the markdown source files for
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        your blog-posts. These are written using a somewhat
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        unique format:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        title: <Title of the article>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        date: <Initial publication date>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        updated: <Last modification date (optional)>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        <Article body>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Also, I've enabled a bunch of extensions in MD2. Some
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        that matter include:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * header-ids
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * markdown-in-html
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * footnotes
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * strike
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        You can read MD2's Wiki* for more information on these:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        github.com/trentm/python-markdown2/wiki/Extras
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ---
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        lists includes all lists you may want to make. Lists
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        are a YAML based format.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        To begin with, there's the root list, which includes
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        its title and a starting paragragh, before denoting the
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        rest of the list using the list keyword.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        title: <Title of list>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        paragraph: <Starting paragraph>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        list:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        The list must be formated as a YAML list. Each element
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        in this list starts with a type. One such type is text.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Text is a small section of HTML. It requires there be a
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        text parameter.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        - type: text
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          text: <text>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          comment: <additional text>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        text may also have a comment, which is formated as
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        being in parenthesis. Here's a list of other available
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        types:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          - type: link
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            text: <link text>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            href: <link link>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            comment: <additional text>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          - type: category
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            title: <category title>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            id: <id used for the category's header>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            list:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              <sub elements>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          ```
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          Note that category can also have other categories.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ---
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        static is all static content, it's dumped into the base
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        directory of the output directory.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ---
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Speaking of the output directory: by default, it's at
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        build. build can be deployed to whatever hosting
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        service you are using, such as GitHub Pages.