- Add .dockerignore t - Create Gitea Action to build and publish image - Update Dockerfile to include build steps and health check - Revise README.md - Modify config.ts for site-specific settings - Enhance content.config.ts to define collections for events, workshops, news, and technical articles
343 lines
12 KiB
Markdown
343 lines
12 KiB
Markdown
# HEC IA Wiki 🤖
|
|
|
|

|
|
|
|
The official wiki and knowledge base for HEC IA student association. Built with [Astro](https://astro.build/) and the [AstroPaper](https://github.com/satnaing/astro-paper) theme.
|
|
|
|
## 📚 About
|
|
|
|
This wiki serves as a central hub for HEC IA's content, including:
|
|
|
|
- **Events**: Information about upcoming and past events
|
|
- **Workshops**: Hands-on technical workshops and tutorials
|
|
- **News**: Latest updates and announcements from HEC IA
|
|
- **Technical Deep Dives**: In-depth technical articles on AI topics
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js 18+
|
|
- npm or pnpm
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/hec-ia/wiki.git
|
|
cd wiki
|
|
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Start development server
|
|
npm run dev
|
|
```
|
|
|
|
The site will be available at `http://localhost:4321`
|
|
|
|
### Building for Production
|
|
|
|
```bash
|
|
# Build the site
|
|
npm run build
|
|
|
|
# Preview the build
|
|
npm run preview
|
|
```
|
|
|
|
## 📝 Adding Content
|
|
|
|
### Events
|
|
|
|
Create a new markdown file in `src/data/events/`:
|
|
|
|
```markdown
|
|
---
|
|
title: "Your Event Title"
|
|
description: "Event description"
|
|
author: "HEC IA"
|
|
pubDatetime: 2026-01-15T10:00:00Z
|
|
eventDate: 2026-02-05T14:00:00Z
|
|
eventEndDate: 2026-02-05T18:00:00Z
|
|
location: "Event Location"
|
|
tags: ["tag1", "tag2"]
|
|
featured: true
|
|
registrationLink: "https://registration-link.com"
|
|
---
|
|
|
|
Your event content here...
|
|
```
|
|
|
|
### Workshops
|
|
|
|
Create a new markdown file in `src/data/workshops/`:
|
|
|
|
```markdown
|
|
---
|
|
title: "Workshop Title"
|
|
description: "Workshop description"
|
|
author: "HEC IA"
|
|
pubDatetime: 2026-01-15T10:00:00Z
|
|
workshopDate: 2026-02-05T14:00:00Z
|
|
duration: "3 hours"
|
|
level: "beginner" # beginner, intermediate, or advanced
|
|
tags: ["machine-learning", "python"]
|
|
featured: true
|
|
materials: "https://github.com/hec-ia/workshop-materials"
|
|
---
|
|
|
|
Your workshop content here...
|
|
```
|
|
|
|
### News
|
|
|
|
Create a new markdown file in `src/data/news/`:
|
|
|
|
```markdown
|
|
---
|
|
title: "News Title"
|
|
description: "News description"
|
|
author: "HEC IA"
|
|
pubDatetime: 2026-01-25T10:00:00Z
|
|
tags: ["news", "announcement"]
|
|
featured: true
|
|
---
|
|
|
|
Your news content here...
|
|
```
|
|
|
|
### Technical Deep Dives
|
|
|
|
Create a new markdown file in `src/data/technical/`:
|
|
|
|
```markdown
|
|
---
|
|
title: "Technical Article Title"
|
|
description: "Article description"
|
|
author: "HEC IA Technical Team"
|
|
pubDatetime: 2026-01-28T10:00:00Z
|
|
tags: ["deep-learning", "nlp"]
|
|
difficulty: "advanced" # beginner, intermediate, or advanced
|
|
readingTime: "25 min"
|
|
featured: true
|
|
---
|
|
|
|
Your technical content here...
|
|
```
|
|
|
|
## 🎨 Customization
|
|
|
|
### Site Configuration
|
|
|
|
Edit `src/config.ts` to customize:
|
|
|
|
- Site title and description
|
|
- Author information
|
|
- Social links
|
|
- Posts per page
|
|
- And more...
|
|
|
|
### Theme Colors
|
|
|
|
The site uses Tailwind CSS. Customize colors in:
|
|
|
|
- `src/styles/base.css` for global styles
|
|
- `tailwind.config.js` for theme configuration
|
|
|
|
## 📂 Project Structure
|
|
|
|
```bash
|
|
/
|
|
├── public/
|
|
│ └── assets/ # Static assets
|
|
├── src/
|
|
│ ├── assets/ # SVG icons and images
|
|
│ ├── components/ # Astro components
|
|
│ ├── data/ # Content collections
|
|
│ │ ├── events/
|
|
│ │ ├── workshops/
|
|
│ │ ├── news/
|
|
│ │ └── technical/
|
|
│ ├── layouts/ # Page layouts
|
|
│ ├── pages/ # Route pages
|
|
│ ├── styles/ # Global styles
|
|
│ ├── utils/ # Utility functions
|
|
│ ├── config.ts # Site configuration
|
|
│ └── content.config.ts # Content collections config
|
|
├── astro.config.ts
|
|
├── package.json
|
|
└── README.md
|
|
```
|
|
|
|
## 🧞 Available Commands
|
|
|
|
| Command | Action |
|
|
| :--------------------- | :----------------------------------------------- |
|
|
| `npm install` | Installs dependencies |
|
|
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
|
| `npm run build` | Build your production site to `./dist/` |
|
|
| `npm run preview` | Preview your build locally, before deploying |
|
|
| `npm run format:check` | Check code format with Prettier |
|
|
| `npm run format` | Format codes with Prettier |
|
|
| `npm run sync` | Generates TypeScript types for all Astro modules |
|
|
| `npm run lint` | Lint with ESLint |
|
|
|
|
## 🤝 Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
1. Fork the repository
|
|
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
|
|
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
|
|
4. Push to the branch (`git push origin feature/AmazingFeature`)
|
|
5. Open a Pull Request
|
|
|
|
## 📄 License
|
|
|
|
This project is licensed under the MIT License - see the LICENSE file for details.
|
|
|
|
## 🙏 Acknowledgments
|
|
|
|
Built with:
|
|
|
|
- [Astro](https://astro.build/) - The web framework for content-driven websites
|
|
- [AstroPaper](https://github.com/satnaing/astro-paper) - The base theme
|
|
- [Tailwind CSS](https://tailwindcss.com/) - For styling
|
|
- [TypeScript](https://www.typescriptlang.org/) - For type safety
|
|
|
|
---
|
|
|
|
Made with ❤️ by HEC IA
|
|
│ │ ├── icons/
|
|
│ │ └── images/
|
|
│ ├── components/
|
|
│ ├── data/
|
|
│ │ └── blog/
|
|
│ │ └── some-blog-posts.md
|
|
│ ├── layouts/
|
|
│ ├── pages/
|
|
│ ├── scripts/
|
|
│ ├── styles/
|
|
│ ├── utils/
|
|
│ ├── config.ts
|
|
│ ├── constants.ts
|
|
│ ├── content.config.ts
|
|
│ ├── env.d.ts
|
|
│ └── remark-collapse.d.ts
|
|
└── astro.config.ts
|
|
|
|
````
|
|
|
|
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
|
|
|
|
Any static assets, like images, can be placed in the `public/` directory.
|
|
|
|
All blog posts are stored in `src/data/blog` directory.
|
|
|
|
## 📖 Documentation
|
|
|
|
Documentation can be read in two formats\_ _markdown_ & _blog post_.
|
|
|
|
- Configuration - [markdown](src/data/blog/how-to-configure-astropaper-theme.md) | [blog post](https://astro-paper.pages.dev/posts/how-to-configure-astropaper-theme/)
|
|
- Add Posts - [markdown](src/data/blog/adding-new-post.md) | [blog post](https://astro-paper.pages.dev/posts/adding-new-posts-in-astropaper-theme/)
|
|
- Customize Color Schemes - [markdown](src/data/blog/customizing-astropaper-theme-color-schemes.md) | [blog post](https://astro-paper.pages.dev/posts/customizing-astropaper-theme-color-schemes/)
|
|
- Predefined Color Schemes - [markdown](src/data/blog/predefined-color-schemes.md) | [blog post](https://astro-paper.pages.dev/posts/predefined-color-schemes/)
|
|
|
|
## 💻 Tech Stack
|
|
|
|
**Main Framework** - [Astro](https://astro.build/)
|
|
**Type Checking** - [TypeScript](https://www.typescriptlang.org/)
|
|
**Styling** - [TailwindCSS](https://tailwindcss.com/)
|
|
**UI/UX** - [Figma Design File](https://www.figma.com/community/file/1356898632249991861)
|
|
**Static Search** - [FuseJS](https://pagefind.app/)
|
|
**Icons** - [Tablers](https://tabler-icons.io/)
|
|
**Code Formatting** - [Prettier](https://prettier.io/)
|
|
**Deployment** - [Cloudflare Pages](https://pages.cloudflare.com/)
|
|
**Illustration in About Page** - [https://freesvgillustration.com](https://freesvgillustration.com/)
|
|
**Linting** - [ESLint](https://eslint.org)
|
|
|
|
## 👨🏻💻 Running Locally
|
|
|
|
You can start using this project locally by running the following command in your desired directory:
|
|
|
|
```bash
|
|
# pnpm
|
|
pnpm create astro@latest --template satnaing/astro-paper
|
|
|
|
# pnpm
|
|
pnpm create astro@latest -- --template satnaing/astro-paper
|
|
|
|
# yarn
|
|
yarn create astro --template satnaing/astro-paper
|
|
|
|
# bun
|
|
bun create astro@latest -- --template satnaing/astro-paper
|
|
````
|
|
|
|
Then start the project by running the following commands:
|
|
|
|
```bash
|
|
# install dependencies if you haven't done so in the previous step.
|
|
pnpm install
|
|
|
|
# start running the project
|
|
pnpm run dev
|
|
```
|
|
|
|
As an alternative approach, if you have Docker installed, you can use Docker to run this project locally. Here's how:
|
|
|
|
```bash
|
|
# Build the Docker image
|
|
docker build -t astropaper .
|
|
|
|
# Run the Docker container
|
|
docker run -p 4321:80 astropaper
|
|
```
|
|
|
|
## Google Site Verification (optional)
|
|
|
|
You can easily add your [Google Site Verification HTML tag](https://support.google.com/webmasters/answer/9008080#meta_tag_verification&zippy=%2Chtml-tag) in AstroPaper using an environment variable. This step is optional. If you don't add the following environment variable, the google-site-verification tag won't appear in the HTML `<head>` section.
|
|
|
|
```bash
|
|
# in your environment variable file (.env)
|
|
PUBLIC_GOOGLE_SITE_VERIFICATION=your-google-site-verification-value
|
|
```
|
|
|
|
> See [this discussion](https://github.com/satnaing/astro-paper/discussions/334#discussioncomment-10139247) for adding AstroPaper to the Google Search Console.
|
|
|
|
## 🧞 Commands
|
|
|
|
All commands are run from the root of the project, from a terminal:
|
|
|
|
> **_Note!_** For `Docker` commands we must have it [installed](https://docs.docker.com/engine/install/) in your machine.
|
|
|
|
| Command | Action |
|
|
| :------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `pnpm install` | Installs dependencies |
|
|
| `pnpm run dev` | Starts local dev server at `localhost:4321` |
|
|
| `pnpm run build` | Build your production site to `./dist/` |
|
|
| `pnpm run preview` | Preview your build locally, before deploying |
|
|
| `pnpm run format:check` | Check code format with Prettier |
|
|
| `pnpm run format` | Format codes with Prettier |
|
|
| `pnpm run sync` | Generates TypeScript types for all Astro modules. [Learn more](https://docs.astro.build/en/reference/cli-reference/#astro-sync). |
|
|
| `pnpm run lint` | Lint with ESLint |
|
|
| `docker compose up -d` | Run AstroPaper on docker, You can access with the same hostname and port informed on `dev` command. |
|
|
| `docker compose run app pnpm install` | You can run any command above into the docker container. |
|
|
| `docker build -t astropaper .` | Build Docker image for AstroPaper. |
|
|
| `docker run -p 4321:80 astropaper` | Run AstroPaper on Docker. The website will be accessible at `http://localhost:4321`. |
|
|
|
|
> **_Warning!_** Windows PowerShell users may need to install the [concurrently package](https://www.npmjs.com/package/concurrently) if they want to [run diagnostics](https://docs.astro.build/en/reference/cli-reference/#astro-check) during development (`astro check --watch & astro dev`). For more info, see [this issue](https://github.com/satnaing/astro-paper/issues/113).
|
|
|
|
## ✨ Feedback & Suggestions
|
|
|
|
If you have any suggestions/feedback, you can contact me via [my email](mailto:contact@satnaing.dev). Alternatively, feel free to open an issue if you find bugs or want to request new features.
|
|
|
|
## 📜 License
|
|
|
|
Licensed under the MIT License, Copyright © 2025
|
|
|
|
---
|
|
|
|
Made with 🤍 by [Sat Naing](https://satnaing.dev) 👨🏻💻 and [contributors](https://github.com/satnaing/astro-paper/graphs/contributors).
|