-# 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=main)](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.
You'll need our node.js dependencies:
```console
-$ npm install -g myth svgo
+$ sudo npm install -g postcss-cli@7.1.2 svgo uglifyjs
+$ npm install
```
Then, assuming a Python 3.4 (or later) installation:
- 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.
+ rebase them onto main 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
[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:
`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
- `author`
- `date`
+- `enclosure` sets the podcast URL of an article
### Internal linking
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)
```html+jinja
<a href="{{ url_for('pages/frog') }}">A page about frogs</a>
```
-
-
-## 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