jstoobz / website

Erlang Ecosystem Foundation Website

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Erlef

CI

Prerequisites

A .tool-versions file is provided in this repo for asdf users.

  • Erlang/OTP 23
  • Elixir 1.11
  • NodeJS v10 (or greatter)

Up and running

  • Install dependencies with mix deps.get
  • Install Node.js dependencies with npm install --prefix assets
  • Run mix ecto.setup to setup the local database
  • Start Phoenix endpoint with mix phx.server

Now you can visit localhost:4000 from your browser.

Creating blog posts

The eef.gen.post mix task should be used to create new blog posts. The command structure is as follows:

mix eef.gen.post <working-group> <slug>

The current options are available:

  • --author <string> or -a <string>
  • --title <string> or -t <string>

Note that you may edit the author, title, and other meta data after the post is generated.

mix eef.gen.post education missing-rug --author "The Dude" --title "It tied the room together"
* creating priv/posts/education/20190708231334_missing-rug.md

Now you may open up the created file and edit the metadata and author the content of your post with your favorite editor.

In this example to preview the rendered markdown on the local instance of the site one would visit http://localhost:4000/news/education/missing-rug

post file format

{
  "title": "It tied the room together",
  "author": "The Dude",
  "slug": "missing-rug",
  "datetime": "2019-07-08T23:12:30.345164Z"
}
---
Post excerpt goes here. This is a short description of the what the post is about.
---
This is where the body of the post goes.

## Standard markdown and GFM supported.
 See [Earmark Docs](https://hexdocs.pm/earmark/1.3.2/Earmark.html) for details.

Current roster of blog groups

The following groups can be used with the eef.gen.post command:

  • eef
  • building
  • education
  • marketing
  • proposal
  • observability
  • sponsorship
  • security
  • documentation

Development

Getting around in dev mode

  • No extra configuration is needed to getting up and running in dev mode. Simply start up the app after initializing the database and login.
  • You may login in with different personas in dev mode using the Login as dropdown menu.

Contributing to the community section of the site

All resources data for the community page of the site can be found in priv/data/community.

Before proceeding please:

  • Stick to facts about entries you add and avoid asserting comparative or superlative differences of one product, project, company or individual over another.
  • Note than an about value for sections of the page that make use of cards can have no more than 240 characters and optimally have no less than 200 characters.

Adding an entry to an existing section

To add an entry to an existing section simply find the relevant .exs file in priv/data/community and add a new entry. That's it!

Adding a new section or sub-section

  • Create a new .exs file in priv/data/community with a name that reflects the section of the site (e.g, languages, platforms, etc.)

  • A new function should be able after you recompile Erlef.Community.Resources with the base name of the file you added prefixed with all_ (e.g., all_languages). Likewise it will also be available in the main data map returned by the all/0 function.

  • Add the new section or sub-section to lib/erlef_web/templates/page/community.html.eex.

    • Note that both <h1> and <h2> tags within this file will automatically end up within the TOC component on the page. Deeper nesting is not supported. See existing sections for examples.

    • The layout for what you're adding may depend on the type of section and there are are no hard rules around how something should be displayed. If you're unsure or need feedback please reach out to us in an issue or as part of a pull request.

  • Commit your changes and open up a new pull request using the Community Section pull request template 🎉

About

Erlang Ecosystem Foundation Website

License:Apache License 2.0


Languages

Language:Elixir 65.2%Language:HTML 32.3%Language:JavaScript 1.5%Language:SCSS 0.9%