Skip to content

nebaughman/low-cal

Repository files navigation

Low-Cal

The low-calorie* Vue calendar.

(*) There are lower-calorie (smaller) Vue calendars, such as flatpickr. I just thought low-cal sounded clever.

What it Does

Low-Cal provides a Vue component to show a simple month-oriented calendar.

It's not a date picker as such, but could be used as the basis for one.

To learn how to use it ... kindly refer to the code :)

Fair warning: The primary purpose of this project is to learn a thing or two, rather than maintain a fully-featured component. Share and enjoy

Technologies

Points of Interest

  • See main.ts, which configures VueFontAwesome as <fa-icon> component and imports only the specific icons needed.

  • DateComputer.ts demonstrates a vue-class-component TypeScript class used as a reactive state class (not a Vue component).

Development

Build ala Vue-Cli:

  • yarn install : set up project
  • yarn serve : hot-reloading for development
  • yarn build : compiles distribution for production

Development process inspired by git-flow:

  • master branch holds tagged releases (only)
  • develop branch follows development

Other git-flow tenets are loosely followed (it's a small project)

Release process:

  1. Update the version in package.json

  2. git commit -a -m "vX.Y.Z" (with optional release notes)

  3. yarn build (produces production dist, clears /docs, copies /dist to /docs for GitHub Pages demo site)

  4. git checkout master && git merge develop && git tag X.Y.Z (no 'v')

  5. git push --all && git push --tags

    ... voila!

Demo Site

Low-Cal Demo Site

This project is hosted on GitHub, using GitHub Pages to host the demo site.

Commentary:

I chose to include the static demo site under /docs directory. So, part of the release process is to build the new distribution and put it under /docs before merging to master.

Strictly following git-flow, this would imply that the demo site cannot be updated without producing a new release, since only release merges touch master.

License

MIT License © Nathaniel Baughman