You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.7 KiB

  1. # Contributing
  2. ### Publicity
  3. One of the easiest ways to support Semantic UI is to get the word out
  4. ## Making Semantic Better
  5. ### Bugs & Issues
  6. Please submit any bugs you encounter when using the library to our [Github Issues Tracker](https://github.com/jlukic/Semantic-UI/issues?state=open).
  7. When submiting a bug report, please include a set of steps to reproduce the issue and any related information, browser, OS etc. If we can't see the issue then it will make solving things much more difficult.
  8. Please create a fork of this [jsfiddle](http://jsfiddle.net/pMDsH/) to demonstrate bugs.
  9. ### Style Guide
  10. Contributors should read over the coding guidelines for the project. Most importantly, the guide for language, as it is one of the most important parts about Semantic UI.
  11. [Language](http://semantic-ui.com/guide/styleguide.html)
  12. [CSS](http://semantic-ui.com/guide/cssguide.html)
  13. [Javascript](http://semantic-ui.com/guide/javascriptguide.html)
  14. ### Pull Requests
  15. Anyone can jump on the issues board and grab off bugs to fix. This is probably the best way to become a contributor to Semantic. Be sure to adhere to the style guides when submitting code.
  16. * [Create a Pull Request](https://github.com/jlukic/Semantic-UI/compare/)
  17. * [View Open Issues](https://github.com/jlukic/Semantic-UI/issues?state=open)
  18. ### Expanding UI
  19. Semantic is looking for people to help contribute new core UI components, and suggest extensions for the library.
  20. If you have suggestions for components missing from Semantic which you'd like to see in future versions please add them to our public UI Component board. The current list of upcoming components, and their current development status can be seen on the contributor UI board.
  21. ---
  22. ## Development
  23. A guide to developing locally
  24. ## Running Locally
  25. It may be useful to run the development docs locally when working on a forked version of semantic, as the docs themselves help in testing out changes to ui components.
  26. ### 1) Install Node
  27. Semantic docs are written in DocPad which requires NodeJS.
  28. Make sure npm does not require sudo to operate, this might cause permissions issues.
  29. * [Node JS via Package Manager](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager)
  30. * [Installing Node JS without sudo](https://gist.github.com/isaacs/579814)
  31. ### 2) Install Dependencies
  32. ```bash
  33. npm install -g docpad
  34. docpad install eco
  35. docpad update; docpad upgrade
  36. ```
  37. ```bash
  38. npm install -g grunt-cli
  39. ```
  40. ### 3) Fork Semantic
  41. [Fork](https://github.com/jlukic/Semantic-UI/fork)
  42. ### 4A) Build Semantic
  43. In order to have the current version of semantic available inside your local documentation, you will have to build it once with Grunt
  44. ```bash
  45. grunt build
  46. ```
  47. ### 4B) Start Your Server
  48. ```bash
  49. docpad run
  50. ```
  51. Docpad should now run an instance of semantic-ui.com locally you can access at `http://localhost:9778`
  52. Note that some asset files might be missing until you run `grunt build` once.
  53. ## Fixing Bugs
  54. ### Watch Script
  55. If you are working on fixing a UI component that is part of Semantic, your best bet is to work actively on the file in `/src/{type}/{elementname}/` while running a watch script from grunt. This will rebuild the docs after you make changes, so you can see if you have corrected the issue you are fixing.
  56. To see exactly what this is doing you can check out our [commented gruntfile](https://github.com/jlukic/Semantic-UI/blob/master/Gruntfile.js)
  57. ```bash
  58. grunt
  59. ```
  60. The watch task is the default grunt task for Semantic, so you can start it quite simply.
  61. ### Packaging Elements
  62. For convenience there is also a separate grunt command for building minified, packaged, and compressed versions of the library.
  63. ```bash
  64. grunt build
  65. ```