Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: CI

on:
push:
branches: [ master, main ]
pull_request:
branches: [ master, main ]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'

- name: Install Node dependencies
run: npm ci

- name: Lint SCSS
run: npm run lint:scss

- name: Lint HTML
run: npm run lint:html

- name: Build CSS
run: npm run build

- name: Build Jekyll site
run: bundle exec jekyll build
env:
NOKOGIRI_USE_SYSTEM_LIBRARIES: true

- name: Test with html-proofer
run: bundle exec htmlproofer ./_site --disable-external
16 changes: 15 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
# =========================
# Cmder.net Home page
# Cmder.app Home page
# =========================

# Reserved hidden directory
.*_space

# =========================
# Build and Dependencies
# =========================

# Node modules
node_modules/
package-lock.json

# Jekyll
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata

# =========================
# Operating System Files
# =========================
Expand Down
12 changes: 12 additions & 0 deletions .htmlhintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"tagname-lowercase": true,
"attr-lowercase": true,
"attr-value-double-quotes": true,
"doctype-first": true,
"tag-pair": true,
"spec-char-escape": true,
"id-unique": true,
"src-not-empty": true,
"attr-no-duplication": true,
"title-require": true
}
8 changes: 8 additions & 0 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"extends": "stylelint-config-standard-scss",
"rules": {
"scss/at-rule-no-unknown": null,
"selector-class-pattern": null,
"custom-property-pattern": null
}
}
192 changes: 189 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,190 @@
# cmderdev.github.io
The cmder.net page.
# Cmder Website

[![Build Status](https://travis-ci.org/cmderdev/cmderdev.github.io.svg?branch=master)](https://travis-ci.org/cmderdev/cmderdev.github.io)
[![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)

The official website for Cmder - a portable console emulator for Windows.

Visit us at: **[https://cmder.app](https://cmder.app)**

## About Cmder

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.

## About This Repository

This repository contains the source code for the Cmder website, built as a static GitHub Pages site using:

- **Bootstrap 5** - Modern responsive framework
- **SCSS** - Structured stylesheets with CSS variables
- **Jekyll** - Static site generation
- **GitHub Actions** - Automated CI/CD pipeline

## Development Setup

### Prerequisites

- **Ruby** 3.x or higher (for Jekyll)
- **Node.js** 18.x or higher (for SCSS build tools)
- **Bundler** (Ruby gem manager)
- **npm** (Node package manager)

### Installation

1. **Clone the repository**
```bash
git clone https://github.com/cmderdev/cmderdev.github.io.git
cd cmderdev.github.io
```

2. **Install Ruby dependencies**
```bash
bundle install
```

3. **Install Node.js dependencies**
```bash
npm install
```

### Building the Site

**Build CSS from SCSS:**
```bash
npm run build
```

This will:
1. Compile SCSS to CSS
2. Add vendor prefixes with Autoprefixer
3. Minify the CSS output

**Build Jekyll site:**
```bash
bundle exec jekyll build
```

The site will be generated in the `_site` directory.

**Serve locally for development:**
```bash
bundle exec jekyll serve
```

Visit `http://localhost:4000` to view the site.

### Development Workflow

**Watch SCSS files for changes:**
```bash
npm run watch
```

This will automatically rebuild CSS when SCSS files are modified.

**Run linters:**
```bash
npm run lint:scss # Lint SCSS files
npm run lint:html # Lint HTML files
npm test # Run all linters and build CSS
```

## Project Structure

```
cmderdev.github.io/
β”œβ”€β”€ .github/
β”‚ └── workflows/
β”‚ └── ci.yml # GitHub Actions CI pipeline
β”œβ”€β”€ css/
β”‚ β”œβ”€β”€ main.css # Compiled CSS (expanded)
β”‚ └── main.min.css # Compiled CSS (minified)
β”œβ”€β”€ scss/
β”‚ └── main.scss # Source SCSS with CSS variables
β”œβ”€β”€ img/ # Images and assets
β”œβ”€β”€ script/
β”‚ └── cibuild # CI build script
β”œβ”€β”€ index.html # Main HTML page
β”œβ”€β”€ package.json # Node.js dependencies
β”œβ”€β”€ Gemfile # Ruby dependencies
└── README.md # This file
```

## CSS Architecture

The site uses modern CSS practices:

- **CSS Variables** - All colors, spacing, and typography use CSS variables for easy theming
- **No Vendor Prefixes** - Autoprefixer automatically adds them during build
- **Smooth Transitions** - Performant animations on hover and interactions
- **Dark Mode** - Automatic dark mode support via `prefers-color-scheme`
- **Mobile-First** - Responsive design for all screen sizes

## Contributing

Contributions are welcome! Here's how you can help:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests (`npm test`)
5. Commit your changes (`git commit -m 'Add amazing feature'`)
6. Push to the branch (`git push origin feature/amazing-feature`)
7. Open a Pull Request

### Contribution Guidelines

- Follow the existing code style
- Test your changes locally before submitting
- Ensure all linters pass
- Update documentation if needed
- Keep commits focused and atomic

## Testing

The CI pipeline automatically runs:

1. **SCSS Linting** - Validates SCSS syntax and style
2. **HTML Linting** - Validates HTML structure
3. **CSS Build** - Ensures CSS compiles without errors
4. **Jekyll Build** - Validates site generation
5. **Link Checking** - Verifies all links work (html-proofer)

Run tests locally:
```bash
npm test # Run all linters
bundle exec jekyll build # Build site
bundle exec htmlproofer ./_site --disable-external # Check links
```

## Browser Support

We target all modern browsers:

- Chrome (last 2 versions)
- Firefox (last 2 versions)
- Safari (last 2 versions)
- Edge (last 2 versions)

Legacy browser support (IE11 and below) is not provided.

## License

This website is part of the Cmder project. For information about Cmder itself, visit the [main repository](https://github.com/cmderdev/cmder).

## Maintainers

- [Samuel Vasko](https://github.com/samvasko) - Creator
- [Martin Kemp](https://github.com/MartiUK) - Maintainer
- [The cmderdev team](https://github.com/cmderdev) - Core team
- [All contributors](https://github.com/cmderdev/cmder/graphs/contributors)

## Links

- **Website**: [https://cmder.app](https://cmder.app)
- **Main Repository**: [https://github.com/cmderdev/cmder](https://github.com/cmderdev/cmder)
- **Issues**: [https://github.com/cmderdev/cmder/issues](https://github.com/cmderdev/cmder/issues)
- **Wiki**: [https://github.com/cmderdev/cmder/wiki](https://github.com/cmderdev/cmder/wiki)

---

Made with ❀️ by the Cmder community
Loading