|
1 | 1 | # KnoxDevs Website |
2 | 2 |
|
3 | | -This repository is a collection of pages and data files that are used by Github Pages to build a `jekyll` site for KnoxDevs based on a template developed by [mmistakes](https://github.com/mmistakes/minimal-mistakes). |
| 3 | +Source for [knoxdevs.com](https://knoxdevs.com) — built with [Astro](https://astro.build) and [Tailwind CSS](https://tailwindcss.com). Deployed automatically to GitHub Pages on every push to `master`. |
4 | 4 |
|
5 | | -The `_data` clusters and images for the corresponding clusters have been moved to a separate repository that is maintained separately for the [KnoxDevs Directory](https://github.com/KnoxDevs/directory) and the [Directory Images](https://github.com/KnoxDevs/directory_images). You will have to add the remotes upon cloning as described in the directions below. |
| 5 | +## Development |
6 | 6 |
|
7 | | -## Want to contribute to this project? |
8 | | - |
9 | | -Check out the [Contributing Guide](https://github.com/KnoxDevs/knoxdevs.github.io/blob/master/Contributing.md). |
10 | | - |
11 | | -Note that if you want to add information about yourself as a blogger or organizer (or wish to add other information to the directory, such as information about a conference), head over to the [directory repository](https://github.com/KnoxDevs/directory). |
12 | | - |
13 | | -**TL;DR** |
14 | | -1. [fork and clone the github repo](https://guides.github.com/activities/forking/) |
15 | | -2. Add the subtrees to the [KnoxDevs Directory](https://github.com/KnoxDevs/directory) and [KnoxDevs Directory Media](https://github.com/KnoxDevs/directory_images) repositories with the following commands: |
16 | 7 | ```bash |
17 | | -git remote add -f directory https://github.com/KnoxDevs/directory.git |
18 | | -git merge -s ours --no-commit --allow-unrelated-histories directory/master |
19 | | -git pull -s subtree -Xsubtree=_data directory master |
20 | | - |
21 | | -git remote add -f directory_images https://github.com/KnoxDevs/directory_images.git |
22 | | -git merge -s ours --no-commit --allow-unrelated-histories directory_images/master |
23 | | -git pull -s subtree -Xsubtree=assets/cluster_images directory_images master |
| 8 | +npm install |
| 9 | +npm run dev # http://localhost:4321 |
| 10 | +npm run build # build to dist/ |
24 | 11 | ``` |
25 | | -3. add your contribution to a new branch named `<username>/<feature-name>` |
26 | | -4. [install jekyll](https://jekyllrb.com/docs/installation/) OR [run a one liner Docker command](https://github.com/KnoxDevs/knoxdevs.github.io/blob/master/Contributing.md#docker-image) and skip to 5. |
27 | | - - install jekyll ruby dependencies using `bundle install` |
28 | | - - serve locally `bundle exec jekyll serve` |
29 | | -5. check that your addition is served properly |
30 | | -6. submit a PR where the two or so files you are changing can easily |
31 | | - be seen. Some tips for good PRs are in that |
32 | | - [guide](https://github.com/KnoxDevs/knoxdevs.github.io/blob/master/Contributing.md) |
33 | | -7. profit. |
34 | | - |
35 | | -## Have an Issue or Request? |
36 | | - |
37 | | -Submit an Issue above. As we get better at managing this repo, that's where feature requests can be handled. |
38 | | - |
39 | | -## Structure |
40 | | -Here's the general structure: |
41 | | - |
42 | | -``` |
43 | | -. |
44 | | -├── _config.yml |
45 | | -├── _data/ **actually a subtree of the KnoxDevs Directory** |
46 | | -├── _layouts/ |
47 | | -├── _pages/ |
48 | | -├── .forestry/ |
49 | | -├── .migrations/ |
50 | | -├── assets/ |
51 | | - ├── cluster_images/ **actually a subtree of the KnoxDevs Directory Images** |
52 | | - ├── icons/ |
53 | | - └── images/ |
54 | | -└── index.md |
55 | | -``` |
56 | | - |
57 | | -By using `remote_theme` in `_config.yml`, we avoid cluttering this repository with an `_includes`, `_sass`, and javascript and css files. The objective was to keep the repository as simple as possible and use the chosen theme directly. If more customization is needed, all of theme elements from [mmistakes](https://github.com/mmistakes/minimal-mistakes) can be incorporated if desired. |
58 | 12 |
|
59 | | -### _data folder |
| 13 | +## Contributing |
60 | 14 |
|
61 | | -This folder contains all of the clusters (stored in `.yml` files) associated with bloggers, groups, organizers, and much more. This folder is actually a subtree from a separate repository. If you want to make a change to one of the cluster subsets, please do so at the [KnoxDevs Directory](https://github.com/KnoxDevs/directory) repository. |
| 15 | +### Adding or updating a group, organizer, conference, organization, or space |
62 | 16 |
|
63 | | -### _layouts folder |
64 | | - |
65 | | -This folder only contains the default.html template where some customizations were made for the cards used predominately throughout the website. The minimal-mistakes theme uses much more layouts than that, but again, the remote theme is referenced every time Github rebuilds the website on a new push. |
66 | | - |
67 | | -### _pages folder |
68 | | - |
69 | | -This folder contains the markdown files used for each page. These markdown files also contain a mix of `html` and `liquid` tags to acheive the customization desired (mainly for the cards). This website has four (plus the home page which is at the top-level `index.md`). This may change as new features / or new decisions are implemented. |
70 | | - |
71 | | -### .forestry folder |
72 | | - |
73 | | -[Forestry.io](https://forestry.io) is a CMS for static site builders. Much of the customization that can be done via straight code and pull requests can be done somewhat GUI style through this CMS. A Forestry account has been set up for this website and via this CMS, pull requests are automatically accepted. This feature may be removed if desired. |
74 | | - |
75 | | -### .migrations folder |
76 | | - |
77 | | -Previously, the knoxdevs.com website used `json` files to represent data like bloggers. This is a folder that is completely unnecessary to the function of the website, but contains the `python` files used to convert the old `json` file to many `.yml` files, 1 for each blogger. At the time, this made more since than a separate repository for the work, at the cost of a few more bytes having to be cloned... |
78 | | - |
79 | | -### assets folder |
80 | | - |
81 | | -``` |
82 | | -. |
83 | | -├── assets/ |
84 | | - ├── cluster_images/ |
85 | | - ├── icons/ |
86 | | - └── images/ |
87 | | -``` |
| 17 | +1. Edit (or create) the relevant YAML file in `src/content/{collection}/` |
| 18 | +2. If adding a new entry with a logo/photo, drop the image in `public/images/{collection}/` and add `image: yourfilename.ext` to the YAML |
| 19 | +3. Open a pull request |
88 | 20 |
|
89 | | -This folder contains all of the images (and potentially javascript files for future extension of this website) used by the website for logos, icons, and headshots. There is a subfolder labeled `cluster_images` that is actually a subtree of a separate repository. Go to the [KnoxDevs Directory Images](https://github.com/KnoxDevs/directory_images) repository to see the inner ordering structure that mirrors the `_data` folder. |
| 21 | +### Collections |
90 | 22 |
|
91 | | -Icons and images related to sponsors and the main page header |
| 23 | +| Folder | What it contains | |
| 24 | +|---|---| |
| 25 | +| `src/content/groups/` | Developer meetup groups | |
| 26 | +| `src/content/organizers/` | Community organizers | |
| 27 | +| `src/content/conferences/` | Regional conferences | |
| 28 | +| `src/content/organizations/` | Supporting organizations | |
| 29 | +| `src/content/spaces/` | Coworking and event spaces | |
92 | 30 |
|
93 | | -Note that this folder _does not_ have a `_` preceding the name. This folder is publically accessible from the website. |
| 31 | +Images live in the matching `public/images/{collection}/` directory. |
94 | 32 |
|
95 | | -### api folder |
| 33 | +## Have an issue or request? |
96 | 34 |
|
97 | | -This folder is an idea for the future to provide an api where one could easily queue all of the data stored in this repo in a developer friendly way. It is imagined that a `travis.ci` build tool could rebuild a combined `.yml` or `.json` file each time a push to `master` is done. |
| 35 | +[Open an issue](https://github.com/KnoxDevs/knoxdevs.github.io/issues). |
0 commit comments