All Projects → freenode → web-7.0

freenode / web-7.0

Licence: other
The freenode website, home to our blog, knowledge base and policies

Programming Languages

CSS
56736 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
Vim Script
2826 projects

Projects that are alternatives of or similar to web-7.0

flask-tweeeter
A full-stack Twitter clone made using the Flask framework for Python 🐦
Stars: ✭ 28 (-75%)
Mutual labels:  jinja2
gen-cisco
🧨 Generates Cisco scripts based on YAML files
Stars: ✭ 29 (-74.11%)
Mutual labels:  jinja2
pyramid-cookiecutter-alchemy
[DEPRECATED - Please use https://github.com/pylons/pyramid-cookiecutter-starter instead] A Cookiecutter (project template) for creating a Pyramid project using SQLite for persistent storage, SQLAlchemy for an ORM, Alembic for database migrations, URL dispatch for routing, and Jinja2 for templating.
Stars: ✭ 39 (-65.18%)
Mutual labels:  jinja2
junos-automation-with-ansible
How to automate Junos with Ansible. This project has many ready-to-use Ansible playbooks to interact with Junos devices.
Stars: ✭ 69 (-38.39%)
Mutual labels:  jinja2
apprise-ga
GitHub Action to send a dynamic push notification to every single platform thanks to the Apprise library
Stars: ✭ 18 (-83.93%)
Mutual labels:  jinja2
django-tex
A simple Django app to render LaTeX templates and compile them into PDF files.
Stars: ✭ 68 (-39.29%)
Mutual labels:  jinja2
nunjucks-template
This is a vscode extension for nunjucks template language which is also available to all Jinja style templates
Stars: ✭ 36 (-67.86%)
Mutual labels:  jinja2
pipen
pipen - A pipeline framework for python
Stars: ✭ 82 (-26.79%)
Mutual labels:  jinja2
nene
Nēnē: A no-frills static site generator
Stars: ✭ 22 (-80.36%)
Mutual labels:  jinja2
smacha
SMACHA is a meta-scripting, templating, and code generation engine for rapid prototyping of ROS SMACH state machines.
Stars: ✭ 15 (-86.61%)
Mutual labels:  jinja2
xltpl
A python module to generate xls/x files from a xls/x template.
Stars: ✭ 46 (-58.93%)
Mutual labels:  jinja2
gpp
General PreProcessor
Stars: ✭ 25 (-77.68%)
Mutual labels:  jinja2
learn-ansible-and-jenkins-in-30-days
Ansible + Jenkins in 30 days tutorial.
Stars: ✭ 35 (-68.75%)
Mutual labels:  jinja2
pyLODE
An OWL ontology documentation tool using Python and templating, based on LODE
Stars: ✭ 116 (+3.57%)
Mutual labels:  jinja2
roundup
un-official mirror of http://hg.code.sf.net/p/roundup/code -- used for CI. Please visit https://issues.roundup-tracker.org for finding starter issues or log new issues.
Stars: ✭ 20 (-82.14%)
Mutual labels:  jinja2
cmdb
Jerikan: a configuration management system for network teams
Stars: ✭ 141 (+25.89%)
Mutual labels:  jinja2
Prinder
Free Pull Request reminder for Github. Has configurations to post reminders to Slack and email along with jinja templating
Stars: ✭ 21 (-81.25%)
Mutual labels:  jinja2
Flask-QRcode
A concise Flask extension to easily render QR codes on Jinja2 templates using python-qrcode.
Stars: ✭ 89 (-20.54%)
Mutual labels:  jinja2
datasets
The primary repository for all of the CORGIS Datasets
Stars: ✭ 19 (-83.04%)
Mutual labels:  jinja2
templatel
Jinja inspired template language for Emacs Lisp
Stars: ✭ 46 (-58.93%)
Mutual labels:  jinja2

web-7.0 Build Status irc: #freenode-website

A shiny replacement for http://freenode.net.

Building

You'll need our node.js dependencies:

$ sudo npm install -g [email protected] svgo uglify-js
$ npm install

Then, assuming a Python 3.4 (or later) installation:

$ 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 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

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 generated from Markdown sources and Jinja2 templates, found in content/ and templates/ respectively. The Travis build deploys to GitHub Pages automatically on every push.

Various modules convert the sources to a useful output structure. Eventually cms7 will document this process, but for now:

  • content/pages/ contains plain pages which are rendered in out/ using page.html.

  • content/news/ contains blog/news posts which are rendered in out/news/ using article.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/kb/ with kb_index.html, according to a list in config/kb.yml.

Markdown metadata

cms7 uses the markdown metadata extension, and recognises some special keys:

  • title sets the page title
  • slug overrides the target URL: pages/hello with slug: banana would become out/banana.html
  • template overrides the template with which to render this Markdown file

Blog-specific:

  • author
  • date
  • enclosure sets the podcast URL of an article

Internal linking

Everything that ends up in the final output has a name that identifies it to the rest of the website. If a file is derived directly from an input file, generally its name is derived from the name of the input.

  • Markdown files like content/pages/hello.md are named their own name relative to the content directory, minus their extension: pages/hello.
  • static resources like static/img/cat.jpg are named their own name 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.
  • 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 document, just link to a name:

[A page about frogs](pages/frog)

To do the same from a template, call url_for:

<a href="{{ url_for('pages/frog') }}">A page about frogs</a>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].