elliotblackburn / mdpdf

Markdown to PDF command line app with support for stylesheets
https://npmjs.com/package/mdpdf
Apache License 2.0
712 stars 46 forks source link

Enhance project organisation #83

Open jooola opened 4 years ago

jooola commented 4 years ago

I'd like to enhance the project organization:

But as shown in the contributing document I wanted to first discuss changes in here.

Some point are almost fulfilled, but I had some improvement to propose.

@BlueHatbRit What do you think of my proposal ? In the long run in think this will make to project easier to maintain.

elliotblackburn commented 4 years ago

Hi @jooola, thanks for the thoughts 😄 I'm glad you're interested in keeping the project alive and thinking about the longevity of it.

First of all, I don't think any of these suggestions are bad or wrong, they're great and I really appreciate having them proposed! Mdpdf is a small portion of my time and I'd like to see it remain easy for others to work on. I've got a bit of gut-reaction feedback on some of the ideas so I thought I'd put them down so you can expand on your thoughts a bit more.

  1. Cleaning up old files seems generally a good idea, I'll review PR #82 seperately to this 😄
  2. I like Prettier and I'm up for changing the scope of the commands a bit if there are things it isn't catching. It's been a while since I've re-visited its configuration. What files does the current scope miss? Eslint is great on larger projects, I've not really ever bothered with it for things on the scale of mdpdf. I don't think I'm against including it, but I think I'd prefer it didn't block merging and was just informational if we did decide to add it. I find sometimes it can get in the way although most of the time it makes good suggestions.
  3. I'm not sure I see the value of Jest over mocha right now. I've used Jest a bit and it's a good testing library but from my understanding Jest won't give us anything we don't already have with mocha. I'm much more familiar with mocha as well which makes my life a lot easier. Why do you think Jest will make testing easier and enable us to write tests we can't already write? On a side note, I think in the best case scenario I'd like tests that do deeper inspection of the PDF. However, this would require a lot of work writing something to inspect PDF structures so it's probably not worth it right now.
  4. Could you expand on this point a little more, I'm not clear what you wish to change with the CI/CD, is it just adding linting and automated releases? I'm up for adding both I think, I actually spent a while getting releases in place but found github actions a royal pain to get releases working. I'm not too fussed about manual releases for mdpdf right now as it's fairly irregular that releases are made and it's very low effort. That said, if automating them was much easier and done in a way that fit my existing workflow, I'd definetely be up for accepting something.
  5. I really like TS, and I do/have used it for a lot of projects. In the case of mdpdf, I think typescript is a little bit overkill. This is a small project maintained really by just myself, TS is getting better but it's still not quite as easy as JS is to get up and running with. I find the simplicity of just running raw JS to be a big reason I'm able to move so fast on this project at the moment. It might be something worth looking into if the project expanded, but at it's current size I'm not sure I'm a fan of migrating over. Right now it's pretty easy to manage and I don't have to faff around with transpiling or types. If it grows substantially then I'd definetely be up for revisiting this point, but considering the project has stayed roughly the same size since it's first release, I'm not sure it's something I'd want to do right now.

Thanks so much for the suggestions, please do let me know what you think and feel free to expand more on some of your ideas. It's great having contributions like this and I really appreciate them. Thanks for your time and energy 😄

elliotblackburn commented 4 years ago

Updated: