This is the source code for the Apache Apex Incubator website, hosted at apex.incubator.apache.org. The following tools are used to build the html pages:
The master branch of this repo contains the source files that are used to generate the HTML that ultimately gets pushed to the incubator site. The asf-site
branch is where the actual generated files are stored. Note that this branch must contain exactly one folder called content
, and so has been checked out as an orphan branch with its own commit history apart from the master branch. See the Contributing section below.
Through a gitpubsub mechanism on the apache.org server, files are taken from the asf-branch
and pushed to the live server.
Pages are stored in the src/pages
folder. Each page uses the handlebars templating engine, and should look something like this:
{{> header}} <!-- includes the header.handlebars partial --> <h1>Hello World</h1> <p>I am a page.</p> {{> footer}} <!-- includes the footer.handlebars partial -->
All pages on the site share the same header and footer. These are stored in the src/partials
folder. You can put other partials in here and they will be made available to all templates (the .handlebars
extension is dropped).
If you have a block of content that you would like to render from a markdown file, you can do so by creating a .md
file in the src/md/
folder. These .md
files will be picked up, rendered has html, and exposed to page templates as partials. Assuming you have a file called src/md/example_markdown.md
, you could have this in a page template:
{{> header}} <h1>Page with Injected Markdown</h1> {{> example_markdown}} {{> footer}}
If you would like to make a change to the site:
master
If you are a committer, do the following:
build.sh
from the master branch directory (requires nodejs and npm). This will:asf-site
branch with a new commit of the build from the current branchasf-site
branch. Simply push this branch to the asf remote and the site will automatically be updated within seconds.To set up the proper dev environment for this site, run the following:
npm install ./node_modules/.bin/bower install ./node_modules/.bin/gulp watch
The gulp watch
command will start a process that watches for changes to source files and updates the /content
folder accordingly. Simply open /content/index.html
in your browser and refresh the page when you make changes.