feat(static): modernize directory listing UI (#507)

- Redesign the `listDirectory` HTML output to use a clean, modern, and
  responsive table layout with system fonts.
- Add inline SVG icons to differentiate between files and directories.
- Display file sizes and last modified dates the directory views.
- Rewrite the internal `listDirector` implementation to use `async/await`
  with a `StringBuffer` instead of the legacy `StreamController<List<int>>`,
  simplifying the logic while remaining non-blocking.
- Fix example.dart to use `exitCode = 64` and `return` instead
  of the abrupt `exit(64)` when handling format exceptions during parsing.
- Minor markdown formatting fix in `static_handler.dart` documentation.
4 files changed
tree: 28402fae4f9e50eac125240cd8c3c298f4e5561d
  1. .github/
  2. pkgs/
  3. tool/
  4. .gitignore
  5. CONTRIBUTING.md
  6. LICENSE
  7. mono_repo.yaml
  8. README.md
README.md

Build Status

About Shelf

Shelf makes it easy to create and compose web servers and parts of web servers. How?

  • Expose a small set of simple types.
  • Map server logic into a simple function: a single argument for the request, the response is the return value.
  • Trivially mix and match synchronous and asynchronous processing.
  • Flexibility to return a simple string or a byte stream with the same model.

It was inspired by Connect for NodeJS and Rack for Ruby.

See the package:shelf readme for more information.

Packages

PackageDescriptionIssuesVersion
shelfA model for web server middleware that encourages composition and easy reuse.issuespub package
shelf_packages_handlerA shelf handler for serving a packages/ directory.issuespub package
shelf_proxyA shelf handler for proxying HTTP requests to another server.issuespub package
shelf_routerA convenient request router for the shelf web-framework, with support for URL-parameters, nested routers and routers generated from source annotations.issuespub package
shelf_router_generatorA package:build-compatible builder for generating request routers for the shelf web-framework based on source annotations.issuespub package
shelf_staticStatic file server support for the shelf package and ecosystem.issuespub package
shelf_test_handlerA Shelf handler that makes it easy to test HTTP interactions.issuespub package
shelf_web_socketA shelf handler that wires up a listener for every connection.issuespub package

Publishing automation

For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.