forked from tildeverse/rfcs
Squash zola rewrite
Rewrote as a Zola static site Do not commit session files, dammit! Add anchor links Fix anchor links Reintroduce og: tags and some of ben's style Import fork-awesome locally, make navbar without javascript ben's patch (internal links) Homepage is a dedicated Markdown file, and titles are fixed Code highlighting in markdown is enabledx Clarify submission process for RFCs restore placeholder for RFC drafts more relative urls page.html does not fail when some variables are missing Enable RSS! (only content with a date set appears in RSS feeds) Add RSS link in HTML, fix quotes Add drafts Number of RFC entries can be limited in macro, introduced latest rfcs/drafts on homepage bootstrap grid for latest content on homepage latest entries is only on homepage Drafts are not listed on homepage, empty drafts section is not rendered elsewhere RFCs now have a table of contents (ToC) base_url for personal site
This commit is contained in:
parent
3051d69ab3
commit
0d5b5cd42f
|
@ -1,2 +1,2 @@
|
||||||
/vendor/
|
public/
|
||||||
composer.phar
|
*.sw*
|
||||||
|
|
|
@ -6,6 +6,8 @@ However, unlike that attempt, this system will use YAML front-matter.
|
||||||
|
|
||||||
See [RFC 0](https://rfc.tildeverse.org/rfcs/0) for more info.
|
See [RFC 0](https://rfc.tildeverse.org/rfcs/0) for more info.
|
||||||
|
|
||||||
|
WARNING: On this experimental branch, that's not the case anymore. Frontmatter uses TOML formatting.
|
||||||
|
|
||||||
## nginx configs
|
## nginx configs
|
||||||
```
|
```
|
||||||
location ~* ^/rfcs/(.+)$ {
|
location ~* ^/rfcs/(.+)$ {
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
"require": {
|
|
||||||
"tildeverse/wiki": "dev-master"
|
|
||||||
},
|
|
||||||
"repositories": [
|
|
||||||
{
|
|
||||||
"type": "vcs",
|
|
||||||
"url": "https://tildegit.org/ben/tildewiki"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
|
@ -1,292 +0,0 @@
|
||||||
{
|
|
||||||
"_readme": [
|
|
||||||
"This file locks the dependencies of your project to a known state",
|
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
|
||||||
"This file is @generated automatically"
|
|
||||||
],
|
|
||||||
"content-hash": "3ab3df15c4e40417f427b37691e83088",
|
|
||||||
"packages": [
|
|
||||||
{
|
|
||||||
"name": "erusev/parsedown",
|
|
||||||
"version": "1.7.3",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/erusev/parsedown.git",
|
|
||||||
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/erusev/parsedown/zipball/6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
|
|
||||||
"reference": "6d893938171a817f4e9bc9e86f2da1e370b7bcd7",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-mbstring": "*",
|
|
||||||
"php": ">=5.3.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^4.8.35"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Parsedown": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Emanuil Rusev",
|
|
||||||
"email": "hello@erusev.com",
|
|
||||||
"homepage": "http://erusev.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Parser for Markdown.",
|
|
||||||
"homepage": "http://parsedown.org",
|
|
||||||
"keywords": [
|
|
||||||
"markdown",
|
|
||||||
"parser"
|
|
||||||
],
|
|
||||||
"time": "2019-03-17T18:48:37+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "erusev/parsedown-extra",
|
|
||||||
"version": "0.7.1",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/erusev/parsedown-extra.git",
|
|
||||||
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/erusev/parsedown-extra/zipball/0db5cce7354e4b76f155d092ab5eb3981c21258c",
|
|
||||||
"reference": "0db5cce7354e4b76f155d092ab5eb3981c21258c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"erusev/parsedown": "~1.4"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"ParsedownExtra": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Emanuil Rusev",
|
|
||||||
"email": "hello@erusev.com",
|
|
||||||
"homepage": "http://erusev.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "An extension of Parsedown that adds support for Markdown Extra.",
|
|
||||||
"homepage": "https://github.com/erusev/parsedown-extra",
|
|
||||||
"keywords": [
|
|
||||||
"markdown",
|
|
||||||
"markdown extra",
|
|
||||||
"parsedown",
|
|
||||||
"parser"
|
|
||||||
],
|
|
||||||
"time": "2015-11-01T10:19:22+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mnapoli/front-yaml",
|
|
||||||
"version": "1.6.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/mnapoli/FrontYAML.git",
|
|
||||||
"reference": "24070ace8b741247bb3161cbb38ecc541268b296"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/mnapoli/FrontYAML/zipball/24070ace8b741247bb3161cbb38ecc541268b296",
|
|
||||||
"reference": "24070ace8b741247bb3161cbb38ecc541268b296",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"erusev/parsedown": "~1.0",
|
|
||||||
"php": ">=5.4.0",
|
|
||||||
"symfony/yaml": "~2.1|^3.0|^4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"league/commonmark": "~0.7",
|
|
||||||
"phpunit/phpunit": "~4.5"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Mni\\FrontYAML\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"time": "2017-10-29T19:29:55+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/polyfill-ctype",
|
|
||||||
"version": "v1.11.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
|
||||||
"reference": "82ebae02209c21113908c229e9883c419720738a"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
|
|
||||||
"reference": "82ebae02209c21113908c229e9883c419720738a",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": ">=5.3.3"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"ext-ctype": "For best performance"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.11-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Polyfill\\Ctype\\": ""
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"bootstrap.php"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Gert de Pagter",
|
|
||||||
"email": "BackEndTea@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony polyfill for ctype functions",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"keywords": [
|
|
||||||
"compatibility",
|
|
||||||
"ctype",
|
|
||||||
"polyfill",
|
|
||||||
"portable"
|
|
||||||
],
|
|
||||||
"time": "2019-02-06T07:57:58+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "symfony/yaml",
|
|
||||||
"version": "v4.3.2",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/symfony/yaml.git",
|
|
||||||
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/c60ecf5ba842324433b46f58dc7afc4487dbab99",
|
|
||||||
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"php": "^7.1.3",
|
|
||||||
"symfony/polyfill-ctype": "~1.8"
|
|
||||||
},
|
|
||||||
"conflict": {
|
|
||||||
"symfony/console": "<3.4"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"symfony/console": "~3.4|~4.0"
|
|
||||||
},
|
|
||||||
"suggest": {
|
|
||||||
"symfony/console": "For validating YAML files using the lint command"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "4.3-dev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Symfony\\Component\\Yaml\\": ""
|
|
||||||
},
|
|
||||||
"exclude-from-classmap": [
|
|
||||||
"/Tests/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Fabien Potencier",
|
|
||||||
"email": "fabien@symfony.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Symfony Community",
|
|
||||||
"homepage": "https://symfony.com/contributors"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "Symfony Yaml Component",
|
|
||||||
"homepage": "https://symfony.com",
|
|
||||||
"time": "2019-04-06T14:04:46+00:00"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tildeverse/wiki",
|
|
||||||
"version": "dev-master",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://tildegit.org/ben/tildewiki",
|
|
||||||
"reference": "751eb64c383cb7c6ec643eaf683b88aa1de351ea"
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"erusev/parsedown-extra": "^0.7.1",
|
|
||||||
"mnapoli/front-yaml": "^1.6"
|
|
||||||
},
|
|
||||||
"type": "library",
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": {
|
|
||||||
"Tildeverse\\Wiki\\": "src/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"license": [
|
|
||||||
"GPLv3"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "Ben Harris",
|
|
||||||
"email": "ben@tilde.team"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "parsedown extensions for tilde wikis",
|
|
||||||
"time": "2019-07-03T05:06:34+00:00"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"packages-dev": [],
|
|
||||||
"aliases": [],
|
|
||||||
"minimum-stability": "stable",
|
|
||||||
"stability-flags": {
|
|
||||||
"tildeverse/wiki": 20
|
|
||||||
},
|
|
||||||
"prefer-stable": false,
|
|
||||||
"prefer-lowest": false,
|
|
||||||
"platform": [],
|
|
||||||
"platform-dev": []
|
|
||||||
}
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
# The URL the site will be built for
|
||||||
|
base_url = "https://thunix.net/~southerntofu"
|
||||||
|
|
||||||
|
# Title and description for RSS / Open Graph
|
||||||
|
title = "tildeverse RFCs"
|
||||||
|
description = "This is the homepage of the tildeverse Request For Comments. People come here to propose and debate standards across the tildeverse."
|
||||||
|
generate_rss = true
|
||||||
|
default_language = "en"
|
||||||
|
|
||||||
|
# Whether to automatically compile all Sass files in the sass directory
|
||||||
|
compile_sass = true
|
||||||
|
|
||||||
|
# Whether to do syntax highlighting
|
||||||
|
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
|
||||||
|
highlight_code = true
|
||||||
|
|
||||||
|
# Whether to build a search index to be used later on by a JavaScript library
|
||||||
|
build_search_index = false
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
# Number of RFCS & drafts displayed on homepage
|
||||||
|
home_entries = 5
|
|
@ -0,0 +1,26 @@
|
||||||
|
+++
|
||||||
|
title = "the tildeverse RFC system"
|
||||||
|
draft = false
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Tildeverse RFC system
|
||||||
|
|
||||||
|
> ...The RFC system for tilde boxes will be hosted at https://rfc.tildeverse.org/ and on the tildeverse gitea as <a href="https://tildegit.org/tildeverse/rfcs">tildeverse/rfcs</a>...
|
||||||
|
>
|
||||||
|
> ...RFC documents are simply requests. They are for simple things like defining how something should work or how something should be done.
|
||||||
|
>
|
||||||
|
> Standards documents are like mandates. They require something. For example, this document requires a would-be submitter to follow this format for RFCs. A Standards document can be amended by RFC documents, and any RFC documents in violation of a Standards document, unless otherwise stated within the Standards document, are invalid.
|
||||||
|
>
|
||||||
|
> <footer>
|
||||||
|
> <cite>
|
||||||
|
> <a href="/rfcs/0">RFC 0: Standard 1: RFC Format and Semantics</a> by <a href="https://tilde.team/~khuxkm/">Robert Miles</a> (aka khuxkm)
|
||||||
|
> </cite>
|
||||||
|
> </footer>
|
||||||
|
|
||||||
|
This system aims to help codify some things about Tildeverse tilde servers.
|
||||||
|
|
||||||
|
### Submission guidelines ([from the standard](@/rfcs/0.md))
|
||||||
|
|
||||||
|
An RFC should be submitted as a pull request to the [git repo](https://tildegit.org/tildeverse/rfcs). It should add a single Markdown within the `content/rfcs/` folder, named according to what your RFC is supposed to achieve. For example, a draft name for an RFC to make tilde.chat allow IRC connections without SSL could be `draft-tilde-chat-without-ssl.md`.
|
||||||
|
|
||||||
|
Your RFC stays a draft until it is accepted. If or when an RFC is accepted, it will be assigned a number `n`. The draft is renamed `rfc{{n}}.md`, and in its frontmatter, the status must be changed to `Accepted` and the number tag must contain the assigned number. When you finish doing this, the PR will be merged.
|
|
@ -0,0 +1,5 @@
|
||||||
|
+++
|
||||||
|
title = "Drafts"
|
||||||
|
insert_anchor_links = "left"
|
||||||
|
+++
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
---
|
+++
|
||||||
title: "Standard 1: RFC Format and Semantics"
|
title = "Standard 1: RFC Format and Semantics"
|
||||||
number: 0
|
date = 2018-08-09
|
||||||
author: Robert Miles <khuxkm@tilde.team>
|
[extra]
|
||||||
status: Accepted
|
number = 0
|
||||||
---
|
author = "Robert Miles <khuxkm@tilde.team>"
|
||||||
|
status = "Accepted"
|
||||||
|
+++
|
||||||
|
|
||||||
## Abstract
|
## Abstract
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
---
|
+++
|
||||||
title: Remembering A Dear Friend Forever
|
title = "Remembering A Dear Friend Forever"
|
||||||
number: 1
|
date = 2018-08-28
|
||||||
author: Robert Miles <khuxkm@tilde.team>
|
[extra]
|
||||||
status: Accepted
|
number = 1
|
||||||
---
|
author = "Robert Miles <khuxkm@tilde.team>"
|
||||||
|
status = "Accepted"
|
||||||
|
+++
|
||||||
## Abstract
|
## Abstract
|
||||||
|
|
||||||
tilde.town member [abraxas](https://tilde.town/~abraxas/) passed away in a motorcycle
|
tilde.town member [abraxas](https://tilde.town/~abraxas/) passed away in a motorcycle
|
|
@ -1,9 +1,11 @@
|
||||||
---
|
+++
|
||||||
title: Standardising IRC Bot Behavior
|
title = "Standardising IRC Bot Behavior"
|
||||||
author: Robert Miles <khuxkm@tilde.team>
|
date = 2018-09-26
|
||||||
status: Accepted
|
[extra]
|
||||||
number: 2
|
author = "Robert Miles <khuxkm@tilde.team>"
|
||||||
---
|
status = "Accepted"
|
||||||
|
number = 2
|
||||||
|
+++
|
||||||
## Abstract
|
## Abstract
|
||||||
|
|
||||||
IRC bots are programs that communicate with users through Internet Relay Chat.
|
IRC bots are programs that communicate with users through Internet Relay Chat.
|
|
@ -1,9 +1,11 @@
|
||||||
---
|
+++
|
||||||
title: "Tilde Center Specification"
|
title = "Tilde Center Specification"
|
||||||
number: 3
|
date = 2019-02-18
|
||||||
author: Austin Ewens <aewens@tilde.center>
|
[extra]
|
||||||
status: Accepted
|
number = 3
|
||||||
---
|
author = "Austin Ewens <aewens@tilde.center>"
|
||||||
|
status = "Accepted"
|
||||||
|
+++
|
||||||
## Abstract
|
## Abstract
|
||||||
|
|
||||||
This document outlines the core philosophy and components that the Tilde Center
|
This document outlines the core philosophy and components that the Tilde Center
|
|
@ -0,0 +1,4 @@
|
||||||
|
+++
|
||||||
|
title = "RFC List"
|
||||||
|
insert_anchor_links = "left"
|
||||||
|
+++
|
|
@ -1,6 +0,0 @@
|
||||||
<br><br>
|
|
||||||
</div>
|
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
|
|
||||||
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
21
header.php
21
header.php
|
@ -1,21 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<link rel="stylesheet" href="https://tilde.team/css/hacker.css">
|
|
||||||
<link rel="stylesheet" href="https://tilde.team/css/fork-awesome.css">
|
|
||||||
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
|
|
||||||
<title>tildeverse RFCs | <?=($title ?? 'the tildeverse RFC system')?></title>
|
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
|
||||||
|
|
||||||
<meta property="og:title" content="tildeverse RFCs | <?=($title ?? 'the tildeverse RFC system')?>">
|
|
||||||
<meta property="og:url" content="https://rfc.tildeverse.org<?=$_SERVER['REQUEST_URI']?>">
|
|
||||||
<meta property="og:description" content="<?=($desc ?? ($title ?? 'the home of the tildeverse RFC system'))?>">
|
|
||||||
<meta property="og:image" content="https://rfc.tildeverse.org/apple-icon.png">
|
|
||||||
<meta property="og:site_name" content="tildeverse RFCs">
|
|
||||||
<meta property="og:type" content="website">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body style="padding-top: 70px;">
|
|
||||||
<div class="container">
|
|
||||||
<?php require 'navbar.php'; ?>
|
|
29
index.php
29
index.php
|
@ -1,29 +0,0 @@
|
||||||
<?php include __DIR__.'/header.php'; ?>
|
|
||||||
|
|
||||||
<h2>Tildeverse RFC system</h2>
|
|
||||||
|
|
||||||
<blockquote>
|
|
||||||
<p>...The RFC system for tilde boxes will be hosted at https://rfc.tildeverse.org/ and on the tildeverse gitea as <a href="https://tildegit.org/tildeverse/rfcs">tildeverse/rfcs</a>...</p>
|
|
||||||
<p>...RFC documents are simply requests. They are for simple things like defining how something should work or how something should be done.</p>
|
|
||||||
<p>Standards documents are like mandates. They require something. For example, this document requires a would-be submitter to follow this
|
|
||||||
format for RFCs. A Standards document can be amended by RFC documents, and any RFC documents in violation of a Standards document,
|
|
||||||
unless otherwise stated within the Standards document, are invalid.</p>
|
|
||||||
<footer>
|
|
||||||
<cite>
|
|
||||||
<a href="/rfcs/0">RFC 0: Standard 1: RFC Format and Semantics</a>
|
|
||||||
by <a href="https://tilde.team/~khuxkm/">Robert Miles</a> (aka khuxkm)
|
|
||||||
</cite>
|
|
||||||
</footer>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<p>This system aims to help codify some things about Tildeverse tilde servers.</p>
|
|
||||||
|
|
||||||
<h3>Submission guidelines (<a href="/rfcs/0">from the standard</a>)</h3>
|
|
||||||
|
|
||||||
<p>An RFC should be submitted as a PR to the <a href="https://tildegit.org/tildeverse/rfcs">git repo</a>.</p>
|
|
||||||
|
|
||||||
<p>Until your RFC gets assigned a number, give it a draft name. For example, a draft name for an RFC to make tilde.chat allow IRC connections without SSL could be <code>draft-tilde-chat-without-ssl</code>.</p>
|
|
||||||
|
|
||||||
<p>Your RFC stays a draft until it is accepted. If or when an RFC is accepted, it will be assigned a number. The status must be changed to <code>Accepted</code> and the number tag must contain the assigned number. When you finish doing this, the PR will be merged.</p>
|
|
||||||
|
|
||||||
<?php include __DIR__.'/footer.php'; ?>
|
|
20
navbar.php
20
navbar.php
|
@ -1,20 +0,0 @@
|
||||||
<nav class="navbar navbar-default navbar-fixed-top">
|
|
||||||
<div class="container">
|
|
||||||
<div class="navbar-header">
|
|
||||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
|
||||||
<span class="sr-only">Toggle navigation</span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
<a class="navbar-brand" href="/">tildeverse RFCs</a>
|
|
||||||
</div>
|
|
||||||
<div id="navbar" class="navbar-collapse collapse">
|
|
||||||
<ul class="nav navbar-nav navbar-right">
|
|
||||||
<li><a href="/"><i class="fa fa-home"></i> Home</a></li>
|
|
||||||
<li><a href="/rfcs/"><i class="fa fa-file-text"></i> RFCs</a></li>
|
|
||||||
<li><a href="https://tildegit.org/tildeverse/rfcs"><i class="fa fa-code-fork"></i> Git</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
|
@ -1,99 +0,0 @@
|
||||||
<?php
|
|
||||||
include __DIR__.'/../vendor/autoload.php';
|
|
||||||
|
|
||||||
$parser = Tildeverse\Wiki\Parser::factory();
|
|
||||||
|
|
||||||
if (isset($_GET["number"])) {
|
|
||||||
$num = $_GET["number"];
|
|
||||||
} elseif (count($_GET) == 1) {
|
|
||||||
$num = array_keys($_GET)[0];
|
|
||||||
} else {
|
|
||||||
$num = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
$filename = "rfc{$num}.md";
|
|
||||||
if (file_exists($filename)) {
|
|
||||||
$document = $parser->parse(file_get_contents($filename));
|
|
||||||
$yml = $document->getYAML();
|
|
||||||
$content = $document->getContent();
|
|
||||||
$title = $yml['title'] ?? 'invalid';
|
|
||||||
$author = htmlspecialchars($yml['author']);
|
|
||||||
$description = "RFC {$yml['number']}: {$yml['title']} by {$author}";
|
|
||||||
|
|
||||||
include __DIR__.'/../header.php';
|
|
||||||
|
|
||||||
?>
|
|
||||||
|
|
||||||
<a href=".">< back to list</a>
|
|
||||||
|
|
||||||
<h1>RFC <?=$yml['number']?>: <?=$yml['title']?></h1>
|
|
||||||
|
|
||||||
<p>Author: <?=$author?></p>
|
|
||||||
<p>Status: <?=$yml["status"]?></p>
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<?php if (isset($yml['updates'])) { ?>
|
|
||||||
Updates:
|
|
||||||
<?php
|
|
||||||
$arr = explode(", ", $yml['updates']);
|
|
||||||
foreach ($arr as $num) {
|
|
||||||
echo "<a href='/rfcs/{$num}'>{$num}</a>";
|
|
||||||
if (next($arr)) {
|
|
||||||
echo ", ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<br />
|
|
||||||
<?php };?>
|
|
||||||
|
|
||||||
<?php if (isset($yml['updated-by'])) { ?>
|
|
||||||
Updated by:
|
|
||||||
<?php
|
|
||||||
$arr = explode(", ",$yml['updated-by']);
|
|
||||||
foreach ($arr as $num) {
|
|
||||||
echo "<a href='/rfcs/{$num}'>{$num}</a>";
|
|
||||||
if (next($arr)) {
|
|
||||||
echo ", ";
|
|
||||||
}
|
|
||||||
}?>
|
|
||||||
<br />
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
<?=$content?>
|
|
||||||
|
|
||||||
<?php
|
|
||||||
// we need to list the rfcs
|
|
||||||
} else {
|
|
||||||
$title="RFC List";
|
|
||||||
$description="A list of Tildeverse RFCs.";
|
|
||||||
include __DIR__.'/../header.php';
|
|
||||||
|
|
||||||
foreach (glob("*.md") as $rfc) {
|
|
||||||
$rfcs[] = [
|
|
||||||
"num" => substr(basename($rfc, ".md"), 3),
|
|
||||||
"yml" => $parser->parse(file_get_contents($rfc))->getYAML(),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
<h1>RFC List</h1>
|
|
||||||
<ul>
|
|
||||||
<?php foreach ($rfcs as $rfc) {
|
|
||||||
if ($rfc["yml"]["status"] !== "Accepted") continue;
|
|
||||||
?>
|
|
||||||
<li><a href="/rfcs/<?=$rfc["num"]?>">RFC <?=$rfc["num"]?>: <?=$rfc["yml"]['title']?></a></li>
|
|
||||||
<?php } ?>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h1>Drafts</h1>
|
|
||||||
<ul>
|
|
||||||
<?php foreach ($rfcs as $draft) {
|
|
||||||
if ($draft["yml"]["status"] === "Accepted") continue;
|
|
||||||
?>
|
|
||||||
<li><a href="/rfcs/<?=$draft["num"]?>">Draft <?=$draft["num"]?>: <?=$draft["yml"]["title"]?></a></li>
|
|
||||||
<?php } ?>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<?php } ?>
|
|
||||||
|
|
||||||
<?php include __DIR__.'/../footer.php'; ?>
|
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 453 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
<small><a id="{{ id }}" class="text-muted" href="#{{ id }}"><i class="fa fa-link"></i></a></small>
|
|
@ -0,0 +1,64 @@
|
||||||
|
{%- import "partials/rfclist.html" as rfclist -%}
|
||||||
|
{%- import "partials/rfctoc.html" as rfctoc -%}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="https://tilde.team/css/hacker.css">
|
||||||
|
<link rel="stylesheet" href="{{ get_url(path="css/fork-awesome.css") }}">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="{{ get_url(path="favicon-96x96.png") }}">
|
||||||
|
<title>{% block title %}tildeverse RFCs | {{ title | default(value='the tildeverse RFC system') }}{% endblock %}</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
|
{% block og %}
|
||||||
|
<meta property="og:title" content="tildeverse RFCs | {{ title | default(value=config.title) }}">
|
||||||
|
<meta property="og:url" content="{{ url | default(value=config.base_url) }}">
|
||||||
|
<meta property="og:description" content="{{ description | default(value=config.description) }}">
|
||||||
|
<meta property="og:image" content="{{ get_url(path="apple-icon.png") }}">
|
||||||
|
<meta property="og:site_name" content="tildeverse RFCs">
|
||||||
|
<meta property="og:type" content="website">
|
||||||
|
{% endblock %}
|
||||||
|
{% if config.generate_rss %}
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" href="{{ get_url(path="rss.xml") }}">
|
||||||
|
{% endif %}
|
||||||
|
<style>
|
||||||
|
:target:before {
|
||||||
|
content:\"\";
|
||||||
|
display:block;
|
||||||
|
height:50px; /* fixed header height*/
|
||||||
|
margin:-50px 0 0; /* negative fixed header height */
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-menu {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 2.5rem;
|
||||||
|
padding: 0.5rem;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-menu > a { margin: 0.2rem 1.5rem; text-decoration: none; border-bottom: 1px solid; }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body style="padding-top: 1rem;">
|
||||||
|
<header class="container header" style="text-align: center; font-size: 2rem;">
|
||||||
|
<nav class="nav-menu">
|
||||||
|
<a href="{{ config.base_url }}"><i class="fa fa-home"></i> Home</a>
|
||||||
|
<a href="{{ get_url(path="@/rfcs/_index.md") }}"><i class="fa fa-file-text"></i> RFCs</a>
|
||||||
|
<a href="{{ get_url(path="@/drafts/_index.md") }}"><i class="fa fa-commenting"></i> Drafts</a>
|
||||||
|
<a href="https://tildegit.org/tildeverse/rfcs"><i class="fa fa-code-fork"></i> Git</a>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<div class="container">
|
||||||
|
{% block main %}
|
||||||
|
{{ section.content | safe }}
|
||||||
|
<h1>Latest RFCs</h1>
|
||||||
|
{{ rfclist::from(name="rfcs", max=config.extra.home_entries|default(value=0)) }}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
{% set title = page.title %}
|
||||||
|
{{ super() }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block og %}
|
||||||
|
{% set title = page.title %}
|
||||||
|
{% set url = page.permalink %}
|
||||||
|
{% set description = page.summary %}
|
||||||
|
{{ super() }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block main %}
|
||||||
|
|
||||||
|
<a href="{{ get_url(path="@/rfcs/_index.md") }}">< back to list</a>
|
||||||
|
<h1>{% if page.extra.number %}RFC {{ page.extra.number }}: {% endif %}{{ page.title }}</h1>
|
||||||
|
|
||||||
|
{% if page.extra.author %}<p>Author: {{ page.extra.author }}</p>{% endif %}
|
||||||
|
{% if page.extra.status %}<p>Status: {{ page.extra.status }}</p>{% endif %}
|
||||||
|
|
||||||
|
{% if page.extra.updates %}
|
||||||
|
<br>
|
||||||
|
Updates:
|
||||||
|
{#{{ page.extra.updates | map(u => '<a href="#{u}">#{u}</a>') | join(', ') }} }}#}
|
||||||
|
<br>
|
||||||
|
{% endif %}
|
||||||
|
{% if page.extra.updated-by %}
|
||||||
|
Updated by:
|
||||||
|
{#{{ page.extra.updated-by | map(u => '<a href="#{u}">#{u}</a>') | join(', ') }} }}#}
|
||||||
|
<br>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ rfctoc::new(headings=toc) }}
|
||||||
|
|
||||||
|
{{ page.content | safe }}
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{% macro from(name, max=0) %}
|
||||||
|
{% set s = get_section(path=name ~ "/_index.md") %}
|
||||||
|
{{ self::from_section(s=s, max=max) }}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro from_pages(pages, max=0) %}
|
||||||
|
{% set list = pages|reverse %}
|
||||||
|
{% if max %}{% set list = list|slice(start=0, end=max) %}{% endif %}
|
||||||
|
<ul>
|
||||||
|
{% for rfc in list %}
|
||||||
|
{% set base_path = rfc.components | join(sep="/") %}
|
||||||
|
<li><a href="{{ get_url(path="@/" ~ base_path ~ ".md") }}">{% if rfc.extra.number is defined %}RFC {{ rfc.extra.number }}:{% else %}DRAFT:{% endif %} {{ rfc.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro from_section(s, max=0) %}
|
||||||
|
{% if s and s.pages|length > 0 %}
|
||||||
|
{{ self::from_pages(pages=s.pages, max=max) }}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{% macro new(headings) %}
|
||||||
|
<ol>
|
||||||
|
{%- for h in headings -%}
|
||||||
|
<li><a href="{{ h.permalink }}">{{ h.title }}</a></li>
|
||||||
|
{% if h.children %}{{ rfctoc::new(headings=h.children) }}{% endif %}
|
||||||
|
{%- endfor -%}
|
||||||
|
</ol>
|
||||||
|
{% endmacro %}
|
|
@ -0,0 +1,27 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
{% set title = section.title %}
|
||||||
|
{{ super() }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block og %}
|
||||||
|
{% set title = section.title %}
|
||||||
|
{% set url = section.permalink %}
|
||||||
|
{% endblock og %}
|
||||||
|
|
||||||
|
{% block main %}
|
||||||
|
<h1>{{ section.title }}</h1>
|
||||||
|
{% if section.pages %}
|
||||||
|
{{ rfclist::from_pages(pages=section.pages) }}
|
||||||
|
{% else %}
|
||||||
|
<p>There is no content here at the moment.</p>
|
||||||
|
{% endif %}
|
||||||
|
{% if section.path == "rfcs/" %}
|
||||||
|
{% set drafts = get_section(path="drafts/_index.md") %}
|
||||||
|
{% if draft.pages %}
|
||||||
|
<h1>{{ drafts.title }}</h1>
|
||||||
|
{{ rfclist::from_pages(pages=drafts.pages) }}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
Loading…
Reference in New Issue