Giter VIP home page Giter VIP logo

rupantar's Introduction

gh-header

Readme Update Portfolio


introduction-terminal

๐Ÿ•น๏ธ Tech Stack:


๐Ÿงฉ Activities:

  • ๐Ÿ› ๏ธ Currently I'm working on:

    rupantar - Simple hackable static site generator with a focus on minimalism & extensibility

    JobAppTrackr - Track and manage your job applications on the web

    Refactoring and improving my previous projects...


Contact:

Open to collaborating in projects!


footer

rupantar's People

Contributors

bhodrolok avatar niharokz avatar

Stargazers

 avatar

rupantar's Issues

Use pathlib.Path over os.path

  • Using os.path seems to be kind of wonky, especially with the current implementation having to os.chdir() and all. Probably better off using the more modern library.
  • Also pathlib.Path looks to have more clutch methods & properties like .name, .stem, resolve(), etc.
  • builder.py - (b786875)
  • creator.py - (6eedf02 )
  • server.py - (119b10c)
  • configger.py - (9a618f1)
  • utils.py
  • logger.py - (46765da)

image

Improved documentation

Comprehensive documentation throughout the project.

  • Better README (expand where needed eg: development & building section).
  • Automate documentation generation using something like MKDocs or Sphinx.
  • Consistent docstrings using a standardized format (like reStructuredText, Google, NumPy/SciPy, etc.) for all functions/classes/modules. - (792f74d), Google style. Continous!
  • Add type annotations/hints for better readability and better define input/output.

Enhanced creator

  • Add demo.css for styling (example static content) - (0170568)

  • Add support for setting default config.yml based on user input (ex: title, url, mail, etc. ) before writing file. CLI option `init needs interactive prompts! (also let user know where they can place custom templates and data) - (#10)

  • As per codacy: By default, jinja2 sets autoescape to False. Consider using autoescape=True or use the select_autoescape function to mitigate XSS vulnerabilities. - (1d9cbd2)

  • Else just ( #3 ) and

  • ( #4 ) - (88087ec) + (ced6cd7) + (a01b26a)

  • Fix the new command's -sh flag (Show new page in home)

    • Should just work as 'option passed = True' without the user supplying a value after the -sh - (2e3c40e)

Enhanced builder

  • Separate class for config file handling + data loading (better code organization + data access/handling)
  • Read TOML files alongside the default YAML files - (1af59bf)
  • Add support for reading custom templates defined by user (optional) in config and building appropriately
  • Add better Documentation (#3)

Server reload on changes

  • #7
  • Watch for changes in the rupantar project directory
    • where a single Change as per this is the following:
      • Modifications
      • Deletions
      • Additions
      • for any directory(incl. sub-dirs) or file
  • Rebuild on change
  • Maybe make serve also rebuild the project before serving it (before the reloading)

Enhanced server

  • Add support for taking a port number from user (optional) as int input which the server will use

    • Choose randomly from dynamic ports range if valid value not supplied (default) - (8730bea)
  • Add support for taking a network interface from user (optional) as str input which the server will to listen for requests on

    • Use loopback interface if valid value not supplied (default) - (7a469bf)
  • Use with context manager for better handling server instance (resource management) - (47542f3)

  • Add TOML file parsing support - (792f74d)

  • Add better Documentation (#3) - (792f74d)

  • Add way for the server to 'watch' for changes in local files and 'hot reload' the browser page

    • Need to re-build & re-serve... - (9fe8e17)
  • Add support for opening built site using the user's default browser

    • Optional using a flag, not default behavior - (5c983ef)

serve command

  • Add support for serve command (subparser) for easily testing generated static pages locally before deployment
    • Add support for -p (--port) flag to give user option to specifiy port for using server
    • Add suport for -i(--interface) flag to give user option to specify network interface at which the server will be listening for requests
    • Add support for -c(--config) flag to give user option to use alternate config file than config.yml

Improved Error Handling + Logging

  • Robust error handling for exceptions/errors:
    • creator
    • builder
    • server
  • Logging events...
    • Store logs in separate directory rather than haphazardly somewhere - (88087ec)

Enhanced CLI

  • More descriptive and flexible argument parser
  • Add support for flags for optional args. Example: build -c config.new.yml
  • For new and build, add required flags for choosing mool/ directory
  • For serve, add required flag for choosing mool/ directory and optional flags for selecting TCP port, network interface and config file. Example: serve proj -p 42042 -i 0.0.0.0 -c config.random.yml. ( #5 )

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.