https://github.com/fslaborg/blog
The fslab blog
https://github.com/fslaborg/blog
Last synced: about 1 year ago
JSON representation
The fslab blog
- Host: GitHub
- URL: https://github.com/fslaborg/blog
- Owner: fslaborg
- License: mit
- Created: 2022-01-26T08:34:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-09-25T09:15:32.000Z (over 1 year ago)
- Last Synced: 2025-04-27T16:22:49.519Z (about 1 year ago)
- Language: Jupyter Notebook
- Homepage: http://fslab.org/blog/
- Size: 31.8 MB
- Stars: 0
- Watchers: 5
- Forks: 5
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# blog
The fslab blog
## Build the blog
### Prerequisites
- [.NET 6.0 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/6.0)
- Any conda distribution (e.g. [anaconda](https://www.anaconda.com/) or [miniconda](https://docs.conda.io/en/latest/miniconda.html))
- `dotnet tool restore` to install the `fornax` tool that is used to build the website
- `conda create --name fslab-blog --file requirements.txt` to set up the conda environment
### develop locally in watch mode
- `conda activate fslab-blog` (this has to be done once for each development session)
- go into the `/src` folder: `cd src`
- `dotnet fornax watch` to start the site generator in watch mode
- go to `127.0.0.1:8080` to see the blog
## add content
### blog posts
posts are generated from the contents of folders in `/src/posts`.
To add a new post:
- add a folder with a **url-safe** name of your post to `/src/posts`
- create a `post_config.md` file. this file should *only* create metadata about your post, and must have this structure:
```
---
title:
author:
author_link:
category:
date:
summary:
preview_image: images/
---
```
- `title` is the title of your post
- `author` is the author of the post (most likely your name)
- `author_link` is a link that will be associated with your name. You can for example link your github or twitter account here
- `category` is one of `fsharp`, `datascience`, `advanced`
- `date` is the date of submission in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
- `summary` is an optional short summary of the post. It is recommended to add for SEO.
- `perview_image` is an optional image that will be shown on post previews. ideally a 2-by-1 or 3-by-1 image with a width of 1200px. It is recommended to add for SEO.
- create a `post.ipynb` file that contains your blogpost. This notebook will be parsed and rendered to a html site. **do not forget to save the notebook with cell output**, as the notebook will not be executed on site generation.
### graph gallery
To add a graph post:
- add a folder with a **url-safe** name of your post to `/src/graph-gallery`
- create a `graph_post_config.md` file. this file should *only* create metadata about your post, and must have this structure:
```
---
title:
author:
author_link:
graph_category:
date:
summary:
preview_image: images/
---
```
- `title` is the title of your post
- `author` is the author of the post (most likely your name)
- `author_link` is a link that will be associated with your name. You can for example link your github or twitter account here
- `graph_category` is one of `basic`, `distribution`, `finance`, `3d`, `map`, `special` (corresponding to the categories of [plotly's docs](https://plotly.com/javascript/reference/))
- `date` is the date of submission in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
- `summary` is an optional short summary of the post. It is recommended to add for SEO.
- `perview_image` is an optional image that will be shown on post previews. ideally a 2-by-1 or 3-by-1 image with a width of 1200px. It is recommended to add for SEO.
- create a `.ipynb` file that contains your graph post. This notebook will be parsed and rendered to a html site. Ideally, you provide both `fsharp.ipynb` and `csharp.ipynb`, but F#-only is okay as well. **do not forget to save the notebook with cell output**, as the notebook will not be executed on site generation.
### update a post
- Update an existing blog or graph gallery post in line with the instructions above.
- Add metadata about the update to the `post_config.md` or `graph_post_config.md` according to this structure:
```
last_updated_on:
last_updated_by:
last_updated_by_link:
```
- `last_updated_on` is the date of the last update in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
- `last_updated_by` is an optional name of the contributing author
- `last_updated_by_link` is a optional link that will be associated with the contributing author name. Provide both `last_updated_by` and `last_updated_by_link` to display contributing author information. You can leave them out, for example, if you are updating your own post.