Important information: Google announced that, from September 2026, Android devices will require ALL apps to be signed by Google, effectively leading to an iOS situation. Value your right to a computer that does what you want; do not tolerate this monopolistic practice! Contact me if you don't understand why it is bad. Click to learn more.

Bump to v0.1.0

by roundabout, Sunday, 31 March 2024, 08:35:08 (1711874108), pushed by roundabout, Wednesday, 31 July 2024, 06:54:43 (1722408883)

Author identity: vlad <vlad.muntoiu@gmail.com>

d9e9acd54a15c549e52ac91d5ed8777060ee5ec4

app.py

@@ -1,4 +1,4 @@

                                
                                
                                
                            
                                
                                    
                                        
                                        __version__ = "0.0.1"
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        __version__ = "0.1.0"
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            import os
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            import shutil
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        

@@ -110,7 +110,7 @@ def main():

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            @app.route("/userstyle")
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                            def userstyle():
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            if flask.session.get("username"):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            if flask.session.get("username") and os.path.exists(os.path.join(config.REPOS_PATH, flask.session.get("username"), ".config", "theme.css")):
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    return flask.send_from_directory(os.path.join(config.REPOS_PATH, flask.session.get("username"), ".config"), "theme.css")
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                else:
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    return flask.Response("", mimetype="text/css")
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                            
                                

doc/changelog/0.1.0 (2024-03-31).md

@@ -0,0 +1,59 @@

                                
                                
                                
                            
                                
                                    
                                        
                                        Changelog for version 0.1.0
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ===========================
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        This is the first non-patch update to the project, still in άλφα state.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        New features in this release
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ----------------------------
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * Give each user a `.config` repo, which is used for storing settings, like
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          userstyles.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Userstyles can be added to the `.config` repo under the name `theme.css`,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            and they will be applied to the UI.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Efficient UI CSS variables can be overridden as well.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * The `.config` repo is created automatically when a user is created.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * The `.config` repo is private by default, but can be made public or
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            unlisted like any other.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Right now, the `.config` repo is not used for anything else, but it will
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            be in the future.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * When repo deletion will be added, the `.config` will not be deletable.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Currently, it is not possible for previous users to get a `.config` repo,
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            but this will be added very soon.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * Render markdown files, like this one, on file pages.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Markdown comments are not yet rendered: that requires caching so loading
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            comments is not too slow.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Markdown is rendered using a custom renderer, which is _not_ CommonMark
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            compliant.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Some features are missing, but it supports extra features like ++diffs++ or
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            ~~strikethrough~~, and even *******7-star emphasis*******.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            * Missing features include:
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Tables
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Footnotes
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Definition lists
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Task lists
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Indented code blocks
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Ordered lists (will be fixed with patch)
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * ID attributes
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Subscript and superscript
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Setext headers
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * URL title attributes
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * Backslash escaping for format specifiers
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                              * HTML entities
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Old features like trailing space hard breaks are not supported.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * No subset of HTML is rendered yet.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Changed features in this release
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ================================
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * Make the tab component styling look nicer.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Colour now matches the nav tabs.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        Fixed bugs in this release
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        ==========================
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * The `safari-pinned-tab.svg` file now matches the updated logo.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * Before it matched a really similar development logo.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        * When accessing a nonexistent repository from the web interface, it now returns
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          a 404 error instead of a 403 error.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                          * This was because the access control was done before the repository existence
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            check.
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                            
                                

templates/no-home.html

@@ -30,7 +30,7 @@

                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                <x-frame class="inner" style="--width: 768px; padding: 24px; margin: 0; justify-content: center; display: flex; flex-direction: column;">
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                    <x-vbox style="justify-content: center; align-items: stretch;">
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        <div>
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                        <h1 class="headline">{% trans %}Welcome to the roundabout{% endtrans %}</h1>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                                        <h1 class="headline">roundabout-host.com</h1>
                                        
                                        
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                            <p>{% trans %}Easy git repository hosting, with free software{% endtrans %}</p>
                                        
                                        
                                            
                                            
                                            
                                            
                                        
                                    
                                
                                
                                
                            
                                
                                    
                                        
                                            
                                                        </div>