|
1 | | -# cmderdev.github.io |
2 | | -The cmder.net page. |
| 1 | +# Cmder Website |
3 | 2 |
|
4 | | -[](https://travis-ci.org/cmderdev/cmderdev.github.io) |
| 3 | +[](https://github.com/cmderdev/cmderdev.github.io/actions/workflows/ci.yml) |
| 4 | + |
| 5 | +The official website for Cmder - a portable console emulator for Windows. |
| 6 | + |
| 7 | +Visit us at: **[https://cmder.app](https://cmder.app)** |
| 8 | + |
| 9 | +## About Cmder |
| 10 | + |
| 11 | +Cmder is a software package created out of pure frustration over the absence of nice console emulators on Windows. It is based on amazing software, and spiced up with the Monokai color scheme and a custom prompt layout, looking sexy from the start. |
| 12 | + |
| 13 | +## About This Repository |
| 14 | + |
| 15 | +This repository contains the source code for the Cmder website, built as a static GitHub Pages site using: |
| 16 | + |
| 17 | +- **Bootstrap 5** - Modern responsive framework |
| 18 | +- **SCSS** - Structured stylesheets with CSS variables |
| 19 | +- **Jekyll** - Static site generation |
| 20 | +- **GitHub Actions** - Automated CI/CD pipeline |
| 21 | + |
| 22 | +## Development Setup |
| 23 | + |
| 24 | +### Prerequisites |
| 25 | + |
| 26 | +- **Ruby** 3.x or higher (for Jekyll) |
| 27 | +- **Node.js** 18.x or higher (for SCSS build tools) |
| 28 | +- **Bundler** (Ruby gem manager) |
| 29 | +- **npm** (Node package manager) |
| 30 | + |
| 31 | +### Installation |
| 32 | + |
| 33 | +1. **Clone the repository** |
| 34 | + ```bash |
| 35 | + git clone https://github.com/cmderdev/cmderdev.github.io.git |
| 36 | + cd cmderdev.github.io |
| 37 | + ``` |
| 38 | + |
| 39 | +2. **Install Ruby dependencies** |
| 40 | + ```bash |
| 41 | + bundle install |
| 42 | + ``` |
| 43 | + |
| 44 | +3. **Install Node.js dependencies** |
| 45 | + ```bash |
| 46 | + npm install |
| 47 | + ``` |
| 48 | + |
| 49 | +### Building the Site |
| 50 | + |
| 51 | +**Build CSS from SCSS:** |
| 52 | +```bash |
| 53 | +npm run build |
| 54 | +``` |
| 55 | + |
| 56 | +This will: |
| 57 | +1. Compile SCSS to CSS |
| 58 | +2. Add vendor prefixes with Autoprefixer |
| 59 | +3. Minify the CSS output |
| 60 | + |
| 61 | +**Build Jekyll site:** |
| 62 | +```bash |
| 63 | +bundle exec jekyll build |
| 64 | +``` |
| 65 | + |
| 66 | +The site will be generated in the `_site` directory. |
| 67 | + |
| 68 | +**Serve locally for development:** |
| 69 | +```bash |
| 70 | +bundle exec jekyll serve |
| 71 | +``` |
| 72 | + |
| 73 | +Visit `http://localhost:4000` to view the site. |
| 74 | + |
| 75 | +### Development Workflow |
| 76 | + |
| 77 | +**Watch SCSS files for changes:** |
| 78 | +```bash |
| 79 | +npm run watch |
| 80 | +``` |
| 81 | + |
| 82 | +This will automatically rebuild CSS when SCSS files are modified. |
| 83 | + |
| 84 | +**Run linters:** |
| 85 | +```bash |
| 86 | +npm run lint:scss # Lint SCSS files |
| 87 | +npm run lint:html # Lint HTML files |
| 88 | +npm test # Run all linters and build CSS |
| 89 | +``` |
| 90 | + |
| 91 | +## Project Structure |
| 92 | + |
| 93 | +``` |
| 94 | +cmderdev.github.io/ |
| 95 | +├── .github/ |
| 96 | +│ └── workflows/ |
| 97 | +│ └── ci.yml # GitHub Actions CI pipeline |
| 98 | +├── css/ |
| 99 | +│ ├── main.css # Compiled CSS (expanded) |
| 100 | +│ └── main.min.css # Compiled CSS (minified) |
| 101 | +├── scss/ |
| 102 | +│ └── main.scss # Source SCSS with CSS variables |
| 103 | +├── img/ # Images and assets |
| 104 | +├── script/ |
| 105 | +│ └── cibuild # CI build script |
| 106 | +├── index.html # Main HTML page |
| 107 | +├── package.json # Node.js dependencies |
| 108 | +├── Gemfile # Ruby dependencies |
| 109 | +└── README.md # This file |
| 110 | +``` |
| 111 | + |
| 112 | +## CSS Architecture |
| 113 | + |
| 114 | +The site uses modern CSS practices: |
| 115 | + |
| 116 | +- **CSS Variables** - All colors, spacing, and typography use CSS variables for easy theming |
| 117 | +- **No Vendor Prefixes** - Autoprefixer automatically adds them during build |
| 118 | +- **Smooth Transitions** - Performant animations on hover and interactions |
| 119 | +- **Dark Mode** - Automatic dark mode support via `prefers-color-scheme` |
| 120 | +- **Mobile-First** - Responsive design for all screen sizes |
| 121 | + |
| 122 | +## Contributing |
| 123 | + |
| 124 | +Contributions are welcome! Here's how you can help: |
| 125 | + |
| 126 | +1. Fork the repository |
| 127 | +2. Create a feature branch (`git checkout -b feature/amazing-feature`) |
| 128 | +3. Make your changes |
| 129 | +4. Run tests (`npm test`) |
| 130 | +5. Commit your changes (`git commit -m 'Add amazing feature'`) |
| 131 | +6. Push to the branch (`git push origin feature/amazing-feature`) |
| 132 | +7. Open a Pull Request |
| 133 | + |
| 134 | +### Contribution Guidelines |
| 135 | + |
| 136 | +- Follow the existing code style |
| 137 | +- Test your changes locally before submitting |
| 138 | +- Ensure all linters pass |
| 139 | +- Update documentation if needed |
| 140 | +- Keep commits focused and atomic |
| 141 | + |
| 142 | +## Testing |
| 143 | + |
| 144 | +The CI pipeline automatically runs: |
| 145 | + |
| 146 | +1. **SCSS Linting** - Validates SCSS syntax and style |
| 147 | +2. **HTML Linting** - Validates HTML structure |
| 148 | +3. **CSS Build** - Ensures CSS compiles without errors |
| 149 | +4. **Jekyll Build** - Validates site generation |
| 150 | +5. **Link Checking** - Verifies all links work (html-proofer) |
| 151 | + |
| 152 | +Run tests locally: |
| 153 | +```bash |
| 154 | +npm test # Run all linters |
| 155 | +bundle exec jekyll build # Build site |
| 156 | +bundle exec htmlproofer ./_site --disable-external # Check links |
| 157 | +``` |
| 158 | + |
| 159 | +## Browser Support |
| 160 | + |
| 161 | +We target all modern browsers: |
| 162 | + |
| 163 | +- Chrome (last 2 versions) |
| 164 | +- Firefox (last 2 versions) |
| 165 | +- Safari (last 2 versions) |
| 166 | +- Edge (last 2 versions) |
| 167 | + |
| 168 | +Legacy browser support (IE11 and below) is not provided. |
| 169 | + |
| 170 | +## License |
| 171 | + |
| 172 | +This website is part of the Cmder project. For information about Cmder itself, visit the [main repository](https://github.com/cmderdev/cmder). |
| 173 | + |
| 174 | +## Maintainers |
| 175 | + |
| 176 | +- [Samuel Vasko](https://github.com/samvasko) - Creator |
| 177 | +- [Martin Kemp](https://github.com/MartiUK) - Maintainer |
| 178 | +- [The cmderdev team](https://github.com/cmderdev) - Core team |
| 179 | +- [All contributors](https://github.com/cmderdev/cmder/graphs/contributors) |
| 180 | + |
| 181 | +## Links |
| 182 | + |
| 183 | +- **Website**: [https://cmder.app](https://cmder.app) |
| 184 | +- **Main Repository**: [https://github.com/cmderdev/cmder](https://github.com/cmderdev/cmder) |
| 185 | +- **Issues**: [https://github.com/cmderdev/cmder/issues](https://github.com/cmderdev/cmder/issues) |
| 186 | +- **Wiki**: [https://github.com/cmderdev/cmder/wiki](https://github.com/cmderdev/cmder/wiki) |
| 187 | + |
| 188 | +--- |
| 189 | + |
| 190 | +Made with ❤️ by the Cmder community |
0 commit comments