UNPKG

2.33 kBMarkdownView Raw
1# Elmo
2
3Elmo is the web framework I've been using to create websites for the last 2 years. I'm currently porting the framework over from a private repository and adding tests and some functionality as I go.
4
5You can learn more about the project here: https://elmo-www.netlify.com/.
6
7I'm open sourcing this earlier than normal to hopefully get some feedback from you earlier on. The structure is in place and the pieces that do exist are well-tested. The CLI is not yet functional.
8
9Right now there's not a lot of documentation, but the tests should give a good sense of what each of the parts do. The goal of this project is break apart the framework into digestible, self-contained bits. You'll see from the tests that each test is fairly self-contained from the rest of the framework. This makes it easier to test and should make the system easier to understand.
10
11The source is separated into `browser/` modules, `nodejs/` modules and `internal/` modules which may target either browser or node.js. Anything public should be aliased by either `browser/` or `nodejs/` depending on the target. The tests all end with `_test.js`. Most files have a test.
12
13## Roadmap to being usable
14
15- [ ] Finish `elmo bundle`
16- [ ] Finish `elmo serve`
17- [ ] Finish `elmo new`
18- [ ] Finish `elmo build`
19- [ ] Add `<Style />` component
20- [ ] Add `<Link />` component
21- [ ] Add `<Context />` component
22- [ ] Add fetch
23- [ ] Add Promise polyfill
24- [ ] Cleanup misc files and package.json
25- [ ] Write the prepublish script
26
27Once this is complete, I'll start publishing to `elmo`.
28
29## 1.0
30
31- [ ] Add [linkstate](https://github.com/developit/linkstate) and [dlv](https://github.com/developit/dlv)
32- [ ] Cross-browser integration testing with Saucelabs
33- [ ] CI testing
34- [ ] Migrate from rollup to Webpack for testing
35- [ ] Extract essentials from styled-jsx
36
37## Developing
38
39I spent a lot of time trying to make it easy to develop and test Elmo. Each test builds the source code it needs to run the test use `mocha` without any additional build steps. There are also steps to test browser code via puppeteer. You can find the various test utilities in `src/testutil`
40
41Here's how to download and run all the tests:
42
43```
44git clone github.com/matthewmueller/elmo
45yarn # or npm install
46./node_modules/.bin/mocha './src/**/*_test.js'
47```
48
49## License
50
51MIT