# Astrolabe website

## Getting started

Requirements : 

- Git
- Node.js (minimum version v12.15.0)

### Install

1. Clone or fork this repo: `git clone ssh://gitea@git.astrolabe.coop:2106/AstrolabeCAE/SiteWebAstrolabe.git`
2. `cd` into the project directory and run `npm install`
3. Once all the dependencies are installed run `npm start`
4. Open your browser at `http://localhost:8080` and away you go!

### Deploy

1. Copy paste deploy.js file in two new files `deploy-preprod.js`and `deploy-prod.js`
2. Make sure to fill in correct platform information in the two files
3. Run `npm run deploy-preprod`to deploy to the pre-production platform
4. Run `npm run deploy-prod`to deploy to the production platform

## Terminal commands

### Serve the site locally

```bash
npm start
```

### Build a production version of the site

```bash
npm run prod
```

### Lint Sass

```bash
npm run sass:lint
```

### Compile Sass

```bash
npm run sass:process
```

## Content editing

All operations are based on the `src` folder as a root.

### Add a new post

A post is composed of a markdown file and optionally images.

There is two kinds of posts :

- News post
- Event post

#### Add a 'news' post

In the `posts`folder, create a new mardown file `example.md`(or copy paste one of the existing files)

Fill in the meta information :

1. `title:` the post heading
2. `date:` the publication date, if further than current date the post won't appear in the posts list until current date is met.
3. `type:` 'news' for news post

Then add the post content in plain mardown language. You can add images to your post, make sure to place them in the `images`folder.

#### Add an 'event' post

In the `posts`folder, create a new mardown file `example-date.md`(or copy paste one of the existing files). Use date in post file name to identify them easily (not mandatory).

Fill in the meta information :

1. `title:` the post heading
2. `date:` the publication date, if further than current date the post won't appear in the posts list until current date is met.
3. `time:` the time of the event.
4. `type:` 'event' for event post

Then add the post content in plain mardown language. You can add images to your post, make sure to place them in the `images`folder.

### Add a new member

In the `members`folder, create a new mardown file `name-surname.md`(or copy paste one of the existing files)

Fill in the meta information :

1. `name:` the full name of the member
2. `position:` job title
3. `positionInternal:` internal role if any
4. `date:` date of arrival in the coop
5. `profile:` picture of the member, make sure to place it in the `images/profiles/` folder
6. `personalSite:` website url if any
7. `socialMastodon:` profile url if any
8. `socialTwitter:` profile url if any
9. `socialLinkedin:` profile url if any
10. `url:` personal page url in the website, eg `/members/name-surname`

Then add the member bio or any content

### Customers & Partners

The two are listed on the home page in different section. There is maximum of four per section, in reversed order regarding the date of addition.

#### Add a new customer

In the `customers`folder, create a new mardown file `customer-name.md`(or copy paste one of the existing files)

Fill in the meta information :

1. `name:` the brand name of the customer
2. `thumbnail:` the customer brand logo, make sure to place it in the `images/customers/`folder
3. `url:` the customer website

#### Add a new partner

In the `partners`folder, create a new mardown file `partner-name.md`(or copy paste one of the existing files)

Fill in the meta information :

1. `name:` the brand name of the partner
2. `thumbnail:` the partner brand logo, make sure to place it in the `images/partner/`folder
3. `url:` the partner website

### FAQ section

Edit `_data/faq.json` file to add a new Q/A couple object. Plain html e.g. `<br>` or `<a href="">link</a>` is supported