[#1] Implement FrostFS Proposals

Signed-off-by: Mikhail Petrov <m.petrov@yadro.com>
This commit is contained in:
Mikhail Petrov 2022-12-29 14:51:38 +03:00 committed by Mike Petrov
parent 5807c420af
commit 7b16d141f7
15 changed files with 101 additions and 335 deletions

View file

@ -1,64 +0,0 @@
// Colors
$gray: #737373;
$light-gray: lighten($gray, 52%);
$medium-gray: lighten($gray, 35%);
$dark-gray: darken($gray, 20%);
// Font sizes
$font-size--primary: 1rem;
$font-size--s: 1.15rem;
$font-size--m: 1.65rem;
$font-size--l: 1.75rem;
$font-size--xl: 2rem;
$font-size--xxl: 2.25rem;
$font-size--xxxl: 3rem;
// Responsive breakpoints, corresponds to the BootStrap V4 ones
$bp-xs: 0;
$bp-xs-max: 575px;
$bp-sm: 576px;
$bp-md: 768px;
$bp-lg: 992px;
$bp-xl: 1200px;
$bp-xxl: 1300px;
// Embellishments
$headerHeight: 6.875rem;
$headerHeightLg: 8.125rem;
$activeHeaderHeight: 5rem;
$footerHeight: 7rem;
// Z-index of different layers
$modal-z: 110;
$header-z: 100;
$overlay-z: 75;
$sidebar-z: 50;
$banner-z: 20;
$floating-button-z: 15;
$glossary-letter-z: 10;
$toolbar-button-z: 1;
$promotion-z: -1;
$footer-z: 0;
// various manifest constants
$border-radius: 4px;
$button-border-radius: 28px;
$header-link-spacing-xl: 1.875rem;
$header-link-spacing-lg: .875rem;
$header-link-spacing-xxl: 1.875rem;
$section-margin: 3.625rem;
$section-margin-md: 7rem;
$panel-margin-top: 2.5rem;
// Container widths
$container-s: 750px;
$container: 1040px;
$container-l: 1440px;
// popover style
$popoverBorderColor: #777777;
$popoverShadowColor: #777777;
$popoverHeaderBackgroundColor: #{$light-gray};
$popoverHeaderTextColor: var(--textColor);
$popoverBackgroundColor: var(--backgroundColor);
$popoverTextColor: var(--textColor);

View file

@ -1,52 +0,0 @@
@import "constants";
.glossary {
.trampolines {
font-size: $font-size--l;
text-align: center;
padding-top: .8rem;
@media print {
display: none;
}
}
.entries {
.letter {
@media screen {
dt:target::before {
height: calc(#{$headerHeight} + 4.2rem);
margin-top: calc(-#{$headerHeight} - 4.2rem);
}
}
}
h4 {
font-size: $font-size--m;
border-bottom: 1px solid;
padding-top: 2.2rem;
padding-bottom: .15rem;
top: calc(#{$headerHeight} - 1rem);
margin-top: 0;
margin-bottom: 0;
z-index: $glossary-letter-z;
}
dl {
margin-left: 0;
dt {
list-style-type: none;
margin-bottom: 0;
margin-top: .9rem;
margin-left: 0;
text-transform: capitalize;
}
dd {
list-style-type: none;
margin-left: 1.5rem;
}
}
}
}

View file

@ -1,101 +0,0 @@
@import "constants";
.popover {
display: none;
z-index: $overlay-z;
color: $popoverTextColor;
background-color: $popoverBackgroundColor;
border-radius: $border-radius;
border: 1px solid $popoverBorderColor;
box-shadow: 3px 3px 8px $popoverShadowColor, -3px -3px 8px $popoverShadowColor;
max-width: 276px;
@media (min-width: $bp-md) {
max-width: 350px;
}
@media (min-width: $bp-xl) {
max-width: 500px;
}
&.show {
display: block;
}
.title {
text-align: center;
color: $popoverHeaderTextColor;
background-color: $popoverHeaderBackgroundColor;
font-size: 140%;
border-radius: $border-radius $border-radius 0 0;
}
.body {
padding-left: 1rem;
padding-right: 1rem;
}
$arrow-width: 5px;
$arrow-height: 5px;
.arrow {
width: 0;
height: 0;
border-style: solid;
position: absolute;
border-color: transparent;
}
&[x-placement^=top] {
margin-bottom: $arrow-height;
.arrow {
border-width: $arrow-height $arrow-width 0 $arrow-height;
border-top-color: $popoverBackgroundColor;
bottom: -$arrow-height;
margin: 0 $arrow-width;
}
}
&[x-placement^=bottom] {
margin-top: $arrow-height;
.arrow {
border-width: 0 $arrow-width $arrow-height;
border-bottom-color: $popoverBackgroundColor;
top: -$arrow-height;
margin: 0 $arrow-width;
}
}
&[x-placement^=right] {
margin-left: $arrow-width;
.arrow {
border-width: $arrow-height $arrow-width $arrow-height 0;
border-right-color: $popoverBackgroundColor;
left: -$arrow-width;
margin: $arrow-height 0;
}
}
&[x-placement^=left] {
margin-right: $arrow-width;
.arrow {
border-width: $arrow-height 0 $arrow-width $arrow-height;
border-left-color: $popoverBackgroundColor;
right: -$arrow-width;
margin: $arrow-height 0;
}
}
}
.term {
@media screen {
border-bottom: dashed 1px;
cursor: help;
position: relative;
display: inline-block;
}
}

View file

@ -3,7 +3,21 @@ title: "FrostFS Proposals"
icon: "ti-blackboard" icon: "ti-blackboard"
description: "Index of FrostFS Enhancement Proposals" description: "Index of FrostFS Enhancement Proposals"
type: "docs" type: "docs"
date: "2021-12-07" date: "2022-12-22"
--- ---
### Introduction
This proposals contains the index of all FrostFS Enhancement Proposals. Proposals numbers are assigned by the proposals editors, and once assigned are never changed. This proposals contains the index of all FrostFS Enhancement Proposals. Proposals numbers are assigned by the proposals editors, and once assigned are never changed.
### PEP Status Key
- **Accepted** — Normative proposal accepted for implementation
- **Active** — Currently valid informational guidance, or an in-use process
- **Deferred** — Inactive draft that may be taken up again at a later time
- **Draft** — Proposal under active discussion and revision
- **Final** — Accepted and implementation complete, or no longer active
- **Provisional** — Provisionally accepted but additional feedback needed
- **Rejected** — Formally declined and will not be accepted
- **Superseded** — Replaced by another succeeding PEP
- **Withdrawn** — Removed from consideration by sponsor or authors

View file

@ -0,0 +1,14 @@
---
title: "Core"
date: "2022-12-22"
---
{{< proposals_table "core" "Accepted" >}}
{{< proposals_table "core" "Active" >}}
{{< proposals_table "core" "Deferred" >}}
{{< proposals_table "core" "Draft" >}}
{{< proposals_table "core" "Final" >}}
{{< proposals_table "core" "Provisional" >}}
{{< proposals_table "core" "Rejected" >}}
{{< proposals_table "core" "Superseded" >}}
{{< proposals_table "core" "Withdrawn" >}}

View file

@ -1,9 +0,0 @@
---
title: Glossary
description: A glossary of common FrostFS terms
date: "2021-12-29"
weight: 100
---
{{<glossary>}}

View file

@ -1,7 +0,0 @@
---
title: "Mainnet"
---
Main Network of Neo Blockchain. See [Neo Documentation](https://docs.neo.org/v3/docs/en-us/network/testnet.html)

View file

@ -1,6 +0,0 @@
---
title: "FrostFS"
---
**F**rostFS **E**xaggerative **O**bject **F**ile **S**torage. Also known as **Neo** **F**ile **S**torage

View file

@ -1,7 +0,0 @@
---
title: "Object"
---
An immutable piece of data with metadata in the form of a set of key-value headers. Object has a globally unique identifier.

View file

@ -1,6 +0,0 @@
---
title: "Validator"
---
In the NEO network, NEO holders can enroll themselves to be validators (consensus node candidates), and then be voted as consensus nodes. The voting status of validators and number of consensus nodes are stored in blockchain.

View file

@ -0,0 +1,14 @@
---
title: "Meta"
date: "2022-12-22"
---
{{< proposals_table "meta" "Accepted" >}}
{{< proposals_table "meta" "Active" >}}
{{< proposals_table "meta" "Deferred" >}}
{{< proposals_table "meta" "Draft" >}}
{{< proposals_table "meta" "Final" >}}
{{< proposals_table "meta" "Provisional" >}}
{{< proposals_table "meta" "Rejected" >}}
{{< proposals_table "meta" "Superseded" >}}
{{< proposals_table "meta" "Withdrawn" >}}

View file

@ -0,0 +1,14 @@
---
title: "Services"
date: "2022-12-22"
---
{{< proposals_table "services" "Accepted" >}}
{{< proposals_table "services" "Active" >}}
{{< proposals_table "services" "Deferred" >}}
{{< proposals_table "services" "Draft" >}}
{{< proposals_table "services" "Final" >}}
{{< proposals_table "services" "Provisional" >}}
{{< proposals_table "services" "Rejected" >}}
{{< proposals_table "services" "Superseded" >}}
{{< proposals_table "services" "Withdrawn" >}}

View file

@ -1,54 +0,0 @@
<style>
.primary .article-container article {
overflow-x: visible;
}
</style>
{{ $styles := resources.Get "sass/glossary.scss" | resources.ToCSS | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $styles.Permalink }}" integrity="{{ $styles.Data.Integrity }}" media="screen">
<div class="glossary">
{{- $glossary := .Site.GetPage "/concepts/glossary" -}}
{{- $words := $glossary.Resources.ByType "page" -}}
<div class="trampolines">
{{- $previous := "-" -}}
{{ range $w := $words }}
{{ $first := upper (slicestr $w.Title 0 1) }}
{{ if ne $first $previous }}
{{ if ne $previous "-" }}
|
{{ end }}
<a href="#{{ $first }}" aria-label="Words starting with the letter {{ $first }}">{{ $first }}</a>
{{ $previous = $first }}
{{ end }}
{{ end }}
</div>
<div class="entries">
{{ $previous = "-" }}
{{ range $w := $words }}
{{ $first := upper (slicestr $w.Title 0 1) }}
{{ if ne $first $previous }}
{{ if ne $previous "-" }}
</dl>
</div>
{{ end }}
<div id="{{ $first }}" class="letter">
<h4>{{ $first }}</h4>
<dl>
{{ $previous = $first }}
{{ end }}
{{ $name := $w.Title | urlize }}
<dt id="{{ $name }}">{{ $w.Title }}</dt>
<dd aria-labelledby="{{ $name }}">{{ $w.Content }}</dd>
{{ end }}
</dl>
</div>
</div>
</div>

View file

@ -0,0 +1,44 @@
<h5 id="index-by-category" style="margin-bottom: 10px;">{{ .Get 1 }}</h5>
{{ $active_category := .Get 0 }}
{{ $active_status := .Get 1 }}
{{ $is_exists := 0 }}
{{ range $page := .Site.RegularPages }}
{{ if gt (len (findRE $active_status $page.Params.status)) 0 }}
{{ if gt (len (findRE (print "/" $active_category "/") $page.File)) 0 }}
{{ $is_exists = 1 }}
{{ end }}
{{ end }}
{{ end }}
{{ if eq $is_exists 1 }}
<table>
<thead>
<tr>
<th>Status</th>
<th>PEP</th>
<th>Authors</th>
</tr>
</thead>
<tbody>
{{ range $page := .Site.RegularPages }}
{{ if gt (len (findRE $active_status $page.Params.status)) 0 }}
{{ if gt (len (findRE (print "/" $active_category "/") $page.File)) 0 }}
<tr>
<th>{{ $page.Params.status }}</th>
<th>
<a href="{{ $page.Permalink }}">{{ $page.Title }}</a>
</th>
<th>{{ $page.Params.author }}</th>
<!-- <th>{{ $page.Lastmod }}</th> -->
</tr>
{{ end }}
{{ end }}
{{ end }}
</tbody>
</table>
{{ else }}
<p>Not found</p>
{{ end }}

View file

@ -1,28 +0,0 @@
{{ .Page.Scratch.Set "needPopper" true }}
{{- $styles := resources.Get "sass/term.scss" | resources.ToCSS | resources.Minify | resources.Fingerprint -}}
<link rel="stylesheet" href="{{ $styles.Permalink }}" integrity="{{ $styles.Data.Integrity }}" media="screen">
{{- $position := .Position }}
{{- $term := .Inner -}}
{{- $gloss_entry := $term -}}
{{- if .Get 0 -}}
{{- $gloss_entry = .Get 0 -}}
{{- end -}}
{{- $glossary := .Site.GetPage "/concepts/glossary" -}}
{{- $words := $glossary.Resources.ByType "page" -}}
{{- $dfn := "" -}}
{{- $title := $term -}}
{{- range $w := $words -}}
{{- if (eq (upper $w.Title) (upper $gloss_entry)) -}}
{{- $dfn = $w.Content -}}
{{- $title = $w.Title -}}
{{- end -}}
{{- end -}}
{{- if (eq $dfn "") -}}
{{- errorf "Could not find glossary entry for '%s' (%s)" $gloss_entry $position -}}
{{- end -}}
<span class="term" data-title="{{- $title }}" data-body="{{- $dfn | string -}}">{{ $term }}</span>