Skip to content

Commit 96bfea1

Browse files
CopilotDRSDavidSoft
andcommitted
Add build infrastructure, GitHub Actions, migrate Bootstrap v5, convert CSS to SCSS
Co-authored-by: DRSDavidSoft <[email protected]>
1 parent ed2e98b commit 96bfea1

File tree

11 files changed

+762
-342
lines changed

11 files changed

+762
-342
lines changed

.github/workflows/ci.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ master, main ]
6+
pull_request:
7+
branches: [ master, main ]
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Set up Ruby
17+
uses: ruby/setup-ruby@v1
18+
with:
19+
ruby-version: '3.2'
20+
bundler-cache: true
21+
22+
- name: Set up Node.js
23+
uses: actions/setup-node@v4
24+
with:
25+
node-version: '20'
26+
cache: 'npm'
27+
28+
- name: Install Node dependencies
29+
run: npm ci
30+
31+
- name: Lint SCSS
32+
run: npm run lint:scss
33+
34+
- name: Lint HTML
35+
run: npm run lint:html
36+
37+
- name: Build CSS
38+
run: npm run build
39+
40+
- name: Build Jekyll site
41+
run: bundle exec jekyll build
42+
env:
43+
NOKOGIRI_USE_SYSTEM_LIBRARIES: true
44+
45+
- name: Test with html-proofer
46+
run: bundle exec htmlproofer ./_site --disable-external

.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,20 @@
55
# Reserved hidden directory
66
.*_space
77

8+
# =========================
9+
# Build and Dependencies
10+
# =========================
11+
12+
# Node modules
13+
node_modules/
14+
package-lock.json
15+
16+
# Jekyll
17+
_site/
18+
.sass-cache/
19+
.jekyll-cache/
20+
.jekyll-metadata
21+
822
# =========================
923
# Operating System Files
1024
# =========================

.htmlhintrc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"tagname-lowercase": true,
3+
"attr-lowercase": true,
4+
"attr-value-double-quotes": true,
5+
"doctype-first": true,
6+
"tag-pair": true,
7+
"spec-char-escape": true,
8+
"id-unique": true,
9+
"src-not-empty": true,
10+
"attr-no-duplication": true,
11+
"title-require": true
12+
}

.stylelintrc.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"extends": "stylelint-config-standard-scss",
3+
"rules": {
4+
"scss/at-rule-no-unknown": null,
5+
"selector-class-pattern": null,
6+
"custom-property-pattern": null
7+
}
8+
}

README.md

Lines changed: 189 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,190 @@
1-
# cmderdev.github.io
2-
The cmder.net page.
1+
# Cmder Website
32

4-
[![Build Status](https://travis-ci.org/cmderdev/cmderdev.github.io.svg?branch=master)](https://travis-ci.org/cmderdev/cmderdev.github.io)
3+
[![CI](https://github.com/cmderdev/cmderdev.github.io/actions/workflows/ci.yml/badge.svg)](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

Comments
 (0)