Giter Club home page Giter Club logo

radish's Introduction

Hi, I'm Jake! ๐Ÿ‘‹

I'm just a programmer trying to make a home for myself on the WWW.

Some things I've written:

Some things I've built:

  • ๐Ÿ›๏ธ jake.museum โ€” a gallery of every website I've ever made
  • ๐ŸŽฅ SongRender โ€” a generative music video creator

Find me elsewhere:

radish's People

Contributors

jakelazaroff avatar thedavedavies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

radish's Issues

Creat

Hi,

Cool framework. I'm trying it out and found somethings that might improve the create experience.

This eslint packages are missing in the the eslint config that is added:

@typescript-eslint/eslint-plugin@latest 
eslint-plugin-react@latest
eslint-plugin-jsx-a11y@latest

And a nice to have will be to be able to run the create command with a dirty repo. Maybe one ones to migrate to radish and is a bit complicated if one needs to delete all.

Thanks again for the effort

Support RSS

Right now, Radish does a couple things that make the HTML authoring experience nicer:

  • HTML files are automatically nested in folders for nicer routing. For example, if a page is src/about.jsx, Radish will place the built file at about/index.html so that the path in the browser is /about/.
  • Radish generates an HTML "shell" โ€” the doctype, html, head and body tags.

These are both convenient for normal pages, but unnecessary for RSS, which is accessed by visiting the file directly (/blog/feed.xml) and doesn't need any sort of "shell" around it.

A solution to the first might be allowing the paths function to return file names as well. If the last segment of a path has an extension, Radish would create a file with that name and extension, rather than creating a folder and placing an index.html inside it.

I'm not sure how to solve the second right now โ€” maybe another export from pages (export const shell = false;) that instructs Radish not to generate the surrounding markup?

Pre-cache specific pages in service worker

Service workers can pre-populate their cache on install (MDN docs. It would be nice if Radish generated a service worker that pre-cached entire pages and their assets, controlled by the user. One possible API would be something like radish build --offline "/foo" --offline "/bar", where /foo and /bar are paths generated. Radish could look at the esbuild metafile to see which assets corresponded to those pages and cache them all on install.

The obstacle to this is that the content on each page isn't known when bundling โ€” Radish imports all of it and pages can filter it in JavaScript when rendering the component. This is fine for text that gets included in the HTML, but any assets such as images would be missing.

One possible solution is to overload the import in order to make the content known statically. For example, import posts from "content/blog/*"; could import all blog posts and associated assets, which would allow esbuild to associate them with the given entry point. There are a couple issues, though โ€” it's less flexible than getting all content in a big JS object that you can do whatever you want with, and it feels a bit too far removed from normal ES module imports.

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.