This is a command-line application built with ES6 and Node.js that dynamically generates a professional README.md file based on user input. It streamlines the process of creating a high-quality README for open source projects on GitHub by automating the generation process.
- Professional README Generator
Download the project from GitHub repository on your local machine.
-
Open GitHub repository. (link to repository)
-
Select
Code
from top navigation section. (reference on the image below) ๐ -
Select
<> Code
dropdown button from sub section. (reference on the image below) ๐ -
Select
Download ZIP
from dropdown menu to download project in .zip format. (reference on the image below) ๐ -
Unzip the project.
[!TIP] You can use 7-Zip if you don't have file archiver. 7-Zip is free software with open source. The most of the code is under the GNU LGPL license. Some parts of the code are under the BSD 3-clause License. Also there is unRAR license restriction for some parts of the code. Read 7-Zip License information. Download the application from official website.
-
Open project with VS Code or other IDE.
-
On GitHub.com, navigate to the main page of the repository. (link to repository).
-
Above the list of files, click Code. (reference on the image below) ๐
-
Copy the URL for the repository.
-
To clone the repository using HTTPS, under "HTTPS", click
-
To clone the repository using an SSH key, including a certificate issued by your organization's SSH certificate authority, click SSH, then click
-
To clone a repository using GitHub CLI, click GitHub CLI, then click (reference on the image below) ๐
-
Open Git Bash.
-
Change the current working directory to the location where you want the cloned directory.
-
Type
git clone
, and then paste the URL you copied earlier.git clone https://github.com/FilipPaskalev/README-Generator.git
-
Press Enter to create your local clone.
$ git clone https://github.com/FilipPaskalev/README-Generator.git > Cloning into `Spoon-Knife`... > remote: Counting objects: 10, done. > remote: Compressing objects: 100% (8/8), done. > remove: Total 10 (delta 1), reused 10 (delta 1) > Unpacking objects: 100% (10/10), done.
To start the application, run the following command in your terminal:
npm start
When the application starts, you will be presented with a menu to choose the type of README generation:
Choose this option to generate a skeleton README without any user input, except project name.
Select this option to generate a README by providing information for each section interactively.
Choose this option to generate a comprehensive README with all available options, including license selection, contributing guidelines, and more.
If you'd like to contribute to this project, please follow the guidelines outlined in the CONTRIBUTING.md file.
NPM chalk is a third-party Node.js module that is used to add colour and styling to text on the command-line output. It also allows creating your own themes for your Node.js project. As per the Chalk GitHub page, it is:
Terminal string styling done right
Chalk supports multiple text styles with backgrounds supporting different colours and formatting. For instance, you can show text in red colour with a grey background that is bold and underlined. The chalk module is easy to install and use, depending on your terminal colours it can support a lot of colours.
It is an actively maintained project without any dependencies. Chalk also has an expressive API and it is a performant library. In the next part, you will know about the popularity of the NPM chalk module.
- Chalk is a library for styling command-line output. It provides a cleaner way to add color and styling to your console.log messages.
Inquirer is an NPM package that provides an easy way to capture user input in your Node.js command line interface applications. It provides several methods for asking questions and returning answers from the user that can be accessed by a .then promise function.
JSDoc 3 is an API documentation generator for JavaScript, similar to Javadoc. You add documentation comments directly to your source code, right alongside the code itself. The JSDoc tool will scan your source code and generate an HTML documentation website for you.
JSDoc's purpose is to document the API of your JavaScript application or library. It is assumed that you will want to document things like modules, namespaces, classes, methods, method parameters, and so on.
Prettier is an opinionated code formatter with support for:
- JavaScript (including experimental features)
- JSX
- Angular
- Vue
- Flow
- TypeScript
- CSS, Less, and SCSS
- HTML
- Ember/Handlebars
- JSON
- GraphQL
- Markdown, including GFM and MDX v1
- YAML
It removes all original styling* and ensures that all outputted code conforms to a consistent style. (See this blog post)
Prettier takes your code and reprints it from scratch by taking the line length into account.
Automated tests can be added in the future to ensure the stability and functionality of the application. At version 1.0.0 are no tests.
If you have any questions or need further assistance, feel free to reach out:
- GitHub: My GitHub
- Email: My Email Address
| Link 1 | Link 2 | Link 3 | Link 4 | Link 5 | Link 6 | Link 7 | Link 8 | Link 9 | Link 10 | Link 11 | Link 12 | Link 13 |
Copyright (c) 2024 Phil
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.