On this page:
There are two ways to edit an existing post:
- Directly edit post files online and submit Pull Request.
- Clone the repo locally (see next section), edit/save, git commit/push, and then open a Pull Request.
-
Fork the Austin JavaScript GitHub repo to your org.
-
Clone your repo to a local directory, replacing
{my-username}
below with your username.git clone https://github.com/{my-username}/austinjavascript.com.git cd austinjavascript.com
-
Set the
upstream
remote repo to "austinjavascript". (If you look at.git/config
, you should see that your fork is theorigin
remote.)git remote add upstream https://github.com/austinjavascript/austinjavascript.com.git
-
Create a new git branch for your work.
git checkout -b new-post
-
To review your work, you may want to run Eleventy — a JavaScript static site generator.
npm install
Once all the packages are done loading, you can start a local server.
npm start
Once the server is up and running, point your browser to the address that shows up in the terminal (e.g., http://localhost:8080) and enjoy the scenery.
To create a new meetup post, copy the /_drafts_/YYYY-MM-DD-meetup.md
file to the /_meetups/
directory, changing YYYY-MM-DD
to the appropriate year, month, and date.
IMPORTANT: Make sure the date part of the file name is the event date. This will be used for all related event data.
Open the Markdown file and notice the file structure.
---
{YAML front matter}
---
{Markdown content}
-
The {YAML front matter} contains all the variables that will be used by a magical template (
/_layouts/meetup.html
) to generate posts. It has the format:--- layout: meetup title: {presentation title} when: {ISO-8601 date-- e.g., 2019-04-16T19:30:00-05:00} slides: {presentation slides URL} video: {presentation video URL} speakers: - name: {full name - REQUIRED} title: {professional title} avatar: {twitter image URL} bio: {short bio blurb} email: {email address} homepage: {homepage url} twitter: {profile name} github: {profile name} linkedin: {profile name} sponsor: {key to sponsor data} name: {sponsor full name} url: {sponsor homepage URL} careerUrl: {sponsor career page URL} logo: {sponsor logo URL} venue: {key to host venue data - REQUIRED} after: {key to "after party" data} organizers: - {key to people data} ---
NOTE:
speakers
is a YAML array, so eachname
should be preceded by a dash. For example:speakers: - name: Pat Anser title: Developer Extraordinaire at Austin JavaScript .. - name: Dale Andhill title: Another Developer ..
If there are no speakers for the meetup, leave only the
speakers:
field and remove the rest of the array (e.g.,-name: ...
).NOTE: Should any front matter value start with a
[
or{
character, it will confuse the YAML parser (it thinks it's an array or object) and throw an error. If you need to start the value with one of those characters, be sure to wrap the entire value with quotes... bio: [Bob](https://bobross.com) is an American icon. ## throws error bio: "[Bob](https://bobross.com) is an American icon." ## works ..
NOTE: For multiline YAML, start the 1st line with a pipe, then start the content on the next line, indented.
.. bio: | This is a sentence. This is another sentence. * This is a list item * This is another list item ..
NOTE: For
sponsor
, if a key to the sponsor info exists in the/_data/organizations.yaml
file, then use it alone... sponsor: {key_name} venue: ... ..
If an org key doesn't exist, then add the fields:
name
,url
,careerUrl
(optional),logo
(optional), andmessage
(optional wholesale replacement text for sponsor template)... sponsor: name: {sponsor name} url: {sponsor URL} venue: ... ..
The
sponsor
,venue
, andafter
key values can be found in or added to/_data_/organizations.yaml
. The format for that YAML file is:{key - REQUIRED}: name: {org full name - REQUIRED} url: {org homepage URL} careerUrl: {org career page URL} logo: {org logo URL} location: {org full street address + floor and/or room} note: {additional notes}
-
The {Markdown content} follows the CommonMark spec for creating formatted HTML from plain text. Some tips for content:
- Provide context for presentation. What was the problem, solution, drama?
- Hyperlink all the things! ...and use Markdown syntax (e.g.,
[Eleventy](https://11ty.dev/)
).
Save and commit. Then push to your repo.
git add .
git commit -m "Add new meetup post"
git push origin new-post
Open your browser to the austinjavascript.com repo (or your fork) and open a Pull Request.