X-Git-Url: https://jfr.im/git/irc/freenode/web-7.0.git/blobdiff_plain/548d610c33034410c5770b2cddac26eebbd0e70b..5e80f834807b6b3e1952cde799b6b195bf5400d4:/README.md diff --git a/README.md b/README.md index 584347157..269fc8a2e 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,62 @@ -# web-7.0 [![Build Status](https://travis-ci.org/freenode/web-7.0.svg?branch=master)](https://travis-ci.org/freenode/web-7.0) +# web-7.0 [![Build Status](https://travis-ci.org/freenode/web-7.0.svg?branch=master)](https://travis-ci.org/freenode/web-7.0) [![irc: #freenode-website](https://img.shields.io/badge/irc-%23freenode--website-brightgreen.svg)](https://webchat.freenode.net/?channels=freenode-website) A shiny replacement for http://freenode.net. +## Building + +You'll need our node.js dependencies: + +```console +$ sudo npm install -g postcss-cli svgo +$ npm install +``` + +Then, assuming a Python 3.4 (or later) installation: + +```console +$ python3 -m venv env +$ . env/bin/activate +$ pip install -r requirements.txt +$ cms7 +``` + +If everything went well, you should see a lot of log output, and `out/` will +have the website in it. + +Because we generate the site statically, you'll need to re-run `cms7` each +time you change something. If your editor likes compile commands that can run +from any directory, you can also use `cms7 -c /path/to/config.yml`. + + +## Contributing + +- Whenever possible, one commit per feature. +- If feature/pull-request branches have only one developer, please regularly + rebase them onto master until they are merged in. +- Don't merge branches with meaningless commit messages; always squash them + instead. +- Wait for discussion of big changes. Your branches will still be here + tomorrow. + +Please comply with the [contribution guidelines](CONTRIBUTING.md) + +Helpful tip for those merging PRs: you can browse the tree a merge would +result in by navigating to +`https://github.com/freenode/web-7.0/tree/pull/XYZ/merge`, where `XYZ` is the +pull request number. + +You can also go to `https://freenode.net/web-7.0/BRANCHNAME/` to see a +build of any particular branch. This also works for *internal* pull requests +(they are named `pull-X`). + ## Architecture / Orientation -The site is statically generated from +The site is generated from [Markdown](https://daringfireball.net/projects/markdown/) sources and [Jinja2](http://jinja.pocoo.org/) templates, found in `content/` and `templates/` respectively. The Travis build deploys to GitHub Pages -automatically on every push to master. +automatically on every push. Various modules convert the sources to a useful output structure. Eventually cms7 will document this process, but for now: @@ -18,12 +65,12 @@ cms7 will document this process, but for now: `page.html`. - `content/news/` contains blog/news posts which are rendered in `out/news/` using `article.html`. -- `content/faq/` contains FAQ categories: each directory `content/faq/X/` - has the entries for category `X`. These are rendered in `out/faq/answers/` - with `faq.html`. +- `content/kb/` contains KB categories: each directory `content/kb/X/` + has the entries for category `X`. These are rendered in `out/kb/answers/` + with `kb.html`. - Indexes of these entries are rendered in `out/faq/` with `faq_index.html`, - according to a list in `config/faq.yml`. + Indexes of these entries are rendered in `out/kb/` with `kb_index.html`, + according to a list in `config/kb.yml`. ### Markdown metadata @@ -39,6 +86,7 @@ Blog-specific: - `author` - `date` +- `enclosure` sets the podcast URL of an article ### Internal linking @@ -53,12 +101,12 @@ generally its name is derived from the name of the *input*. relative to the repository root: `static/img/cat.jpg`. - Templates that are rendered from nothing (e.g. to make the index page) are named whatever the config file says to name them. -- FAQ indexes are named `faq/index/X`, where X is the name of the index in - `config/faq.yml`. +- KB indexes are named `kb/index/X`, where X is the name of the index in + `config/kb.yml`. cms7 can generate a relative URL to anything with a name from any page. This should always be preferred over manually writing links. To generate a relative -link from a Markdown template, just link to a name: +link from a Markdown document, just link to a name: ```markdown [A page about frogs](pages/frog) @@ -69,16 +117,3 @@ To do the same from a template, call `url_for`: ```html+jinja A page about frogs ``` - - -## TODO -- [ ] Get the basic static page up, and how to connect (latest two news about - the reformation + about page, kinda) scheduled release: 2016-02-29 - - [x] Design ready enough - - [x] Preprocessor ready - - [x] Templates ready enough - - [ ] Content ready -- [ ] FAQ pages structure, start adding FAQ's (note: tagging could be a good thing for searching and finding) -- [ ] Add possibility to edit on-site integrated with services (log in with your nickserv acc) -- [ ] Gms integration -- [ ] Further development TODO: TODO