A resources site for learning
_config.yml # Site config + topic navigation
_layouts/ # Layout templates
_data/resources.yml # Combined resources data (each item has 'main' topic key)
topics/*.md # Topic pages (one per topic)
assets/css/style.css # Styles
assets/js/filter.js # Filtering/sorting logic
construct.py # YAML constructor
index.md # Landing page with topic cards
| Field | Description |
|---|---|
| main | Classfication / Topic key of the resource (required) |
| title | Name of the resource (required) |
| url | Link (required) |
| description | Short summary |
| tags | List of lowercase tags (for filtering) |
| types | Array of types (e.g.["book", "course", "jupyter-notebook"]) |
| type (legacy) | Single type string (still supported, auto-upgraded to types) |
| level | beginner |
| added | YYYY-MM-DD (sorting) |
| rating | 1-5 subjective quality score |
| author | Optional author/source |
| language | e.g. en, ja |
Install Python, then:
python formatter.py- Tags should be short and consistent (e.g.
deep-learningnotDeep Learning). - If a resource belongs to multiple types, use the
types:array. - If you provide only
type:, it will be treated as[type]automatically.
Commit & push to gh-pages.
- Add entry to
nav_topicsin_config.yml. - Add entries with
main: <key>into_data/resources.yml. - Create
topics/<key>.mdwith front matter:--- layout: topic title: Descriptive Title topic_key: <key> ---
- Commit & push to
gh-pages.
Install Ruby + Bundler, then:
bundle init # if Gemfile not present
echo "gem 'github-pages', group: :jekyll_plugins" >> Gemfile
bundle install
bundle exec jekyll serve
- Global search across all topics (build merged JSON)
- Import from CSV / Google Sheet
- Sorter after constructor to ease manual insert
- A course section storing course material (pdf...)
- OpenAI bridge to utilize LLM to construct better description, tags, and types