1 | # Elmo
|
2 |
|
3 | Elmo 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 |
|
5 | You can learn more about the project here: https://elmo-www.netlify.com/.
|
6 |
|
7 | I'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 |
|
9 | Right 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 |
|
11 | The 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 |
|
27 | Once 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 |
|
39 | I 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 |
|
41 | Here's how to download and run all the tests:
|
42 |
|
43 | ```
|
44 | git clone github.com/matthewmueller/elmo
|
45 | yarn # or npm install
|
46 | ./node_modules/.bin/mocha './src/**/*_test.js'
|
47 | ```
|
48 |
|
49 | ## License
|
50 |
|
51 | MIT
|