forked from TrueCloudLab/frostfs.info
Compare commits
10 commits
1949e48d45
...
4eb40cbcb5
Author | SHA1 | Date | |
---|---|---|---|
4eb40cbcb5 | |||
21680ed723 | |||
6f46df233a | |||
52453748c5 | |||
d35dd93c22 | |||
0142347054 | |||
57aa0c1084 | |||
c7c7407916 | |||
6a921cec32 | |||
97e0a9bfcf |
13 changed files with 178 additions and 143 deletions
34
.forgejo/workflows/build.yml
Normal file
34
.forgejo/workflows/build.yml
Normal file
|
@ -0,0 +1,34 @@
|
|||
name: build static site
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: |-
|
||||
bin/
|
||||
themes/
|
||||
key: hugo-${{ runner.os }}-${{ hashFiles('Makefile', 'config.toml') }}
|
||||
restore-keys: |
|
||||
hugo-${{ runner.os }}
|
||||
hugo
|
||||
|
||||
- run: make all
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: site
|
||||
path: |
|
||||
public/
|
||||
if-no-files-found: error
|
||||
retention-days: 10
|
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
|
@ -1,3 +0,0 @@
|
|||
/content/proposals/proc/* @TrueCloudLab/community-committee
|
||||
/content/proposals/std/* @TrueCloudLab/architecture-committee
|
||||
/content/proposals/info/* @TrueCloudLab/architecture-committee @TrueCloudLab/community-committee
|
21
.github/workflows/dco.yml
vendored
21
.github/workflows/dco.yml
vendored
|
@ -1,21 +0,0 @@
|
|||
name: DCO check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
commits_check_job:
|
||||
runs-on: ubuntu-latest
|
||||
name: Commits Check
|
||||
steps:
|
||||
- name: Get PR Commits
|
||||
id: 'get-pr-commits'
|
||||
uses: tim-actions/get-pr-commits@master
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: DCO Check
|
||||
uses: tim-actions/dco@master
|
||||
with:
|
||||
commits: ${{ steps.get-pr-commits.outputs.commits }}
|
74
.github/workflows/hugo.yml
vendored
74
.github/workflows/hugo.yml
vendored
|
@ -1,74 +0,0 @@
|
|||
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
||||
name: Deploy Hugo site to Pages
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the default branch
|
||||
push:
|
||||
branches: ["master"]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow one concurrent deployment
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: true
|
||||
|
||||
# Default to bash
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
HUGO_VERSION: 0.108.0
|
||||
steps:
|
||||
- name: Install Hugo CLI
|
||||
run: |
|
||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||
- name: Install Dart Sass Embedded
|
||||
run: sudo snap install dart-sass-embedded
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Setup Pages
|
||||
id: pages
|
||||
uses: actions/configure-pages@v3
|
||||
- name: Install Node.js dependencies
|
||||
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
|
||||
- name: Build with Hugo
|
||||
env:
|
||||
# For maximum backward compatibility with Hugo modules
|
||||
HUGO_ENVIRONMENT: production
|
||||
HUGO_ENV: production
|
||||
run: |
|
||||
hugo \
|
||||
--minify \
|
||||
--baseURL "${{ steps.pages.outputs.base_url }}/"
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
with:
|
||||
path: ./public
|
||||
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v1
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -3,7 +3,7 @@
|
|||
*.log
|
||||
*.lock
|
||||
tmp/
|
||||
bin/hugo
|
||||
bin/hugo*
|
||||
|
||||
public/
|
||||
resources/_gen
|
||||
|
|
11
Makefile
11
Makefile
|
@ -3,24 +3,25 @@ SHELL = bash
|
|||
|
||||
PUBDIR = public
|
||||
HUGO_VERSION = 0.91.0
|
||||
HUGO_BIN ?= bin/hugo
|
||||
HUGO_BIN ?= bin/hugo-$(HUGO_VERSION)
|
||||
|
||||
.PHONY: all clean
|
||||
all: public
|
||||
|
||||
bin/hugo:
|
||||
bin/hugo-$(HUGO_VERSION):
|
||||
@wget -q https://github.com/gohugoio/hugo/releases/download/v$(HUGO_VERSION)/hugo_extended_$(HUGO_VERSION)_Linux-64bit.tar.gz -O - |\
|
||||
tar -xz -C bin/ hugo;
|
||||
@mv bin/hugo $@
|
||||
|
||||
clean:
|
||||
@rm -rf $(PUBDIR)
|
||||
@rm -rf tmp
|
||||
@rm -rf bin/hugo
|
||||
@rm -rf bin/hugo*
|
||||
|
||||
public: submodules bin/hugo
|
||||
public: submodules $(HUGO_BIN)
|
||||
@$(HUGO_BIN)
|
||||
|
||||
server: submodules bin/hugo
|
||||
server: submodules $(HUGO_BIN)
|
||||
@$(HUGO_BIN) server --disableFastRender
|
||||
|
||||
submodules:
|
||||
|
|
11
README.md
11
README.md
|
@ -6,18 +6,17 @@
|
|||
</p>
|
||||
|
||||
---
|
||||
![License](https://img.shields.io/github/license/TrueCloudLab/frostfs.info.svg?style=popout)
|
||||
|
||||
## Overview
|
||||
|
||||
Welcome to the FrostFS Documentation site repository!
|
||||
|
||||
This is a TrueCloudLab maintained and community supported
|
||||
FrostFS documentation project, where everyone can contribute new articles, suggest
|
||||
new topics and enhance existing content.
|
||||
This is a TrueCloudLab maintained and community supported FrostFS documentation
|
||||
project, where everyone can contribute new articles, suggest new topics and
|
||||
enhance existing content.
|
||||
|
||||
All documentation can be edited via GitHub. We use Hugo for static content
|
||||
generation, so most of Hugo guides are applicable for this site.
|
||||
We use Hugo for static content generation, so most of Hugo guides are applicable
|
||||
for this site.
|
||||
|
||||
## How to contribute
|
||||
|
||||
|
|
12
config.toml
12
config.toml
|
@ -12,6 +12,12 @@ enableEmoji = true
|
|||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
|
||||
# table of contents
|
||||
[markup.tableOfContents]
|
||||
endLevel = 4
|
||||
ordered = false
|
||||
startLevel = 2
|
||||
|
||||
############################# Default Parameters ##########################
|
||||
[params]
|
||||
# logo is for all page
|
||||
|
@ -35,15 +41,15 @@ contact_form_action = "#" # contact form works with : https://formspree.io
|
|||
############################## social links ##############################
|
||||
[[params.social]]
|
||||
icon = "ti-github" # themify icon pack : https://themify.me/themify-icons
|
||||
name = "Github"
|
||||
link = "https://github.com/TrueCloudLab"
|
||||
name = "Forgejo instance"
|
||||
link = "https://git.frostfs.info/TrueCloudLab"
|
||||
|
||||
################################ English Language ######################
|
||||
[Languages.en]
|
||||
languageName = "En"
|
||||
languageCode = "en-us"
|
||||
weight = 1
|
||||
copyright = "Copyright © [TrueCloudLab](https://github.com/TrueCloudLab) 2022"
|
||||
copyright = "Copyright © [TrueCloudLab](https://git.frostfs.info/TrueCloudLab) 2022-2023"
|
||||
|
||||
# banner
|
||||
[Languages.en.params.banner]
|
||||
|
|
|
@ -6,4 +6,4 @@ type: "docs"
|
|||
date: "2022-12-22"
|
||||
---
|
||||
|
||||
FrostFS provides has language agnostic [gRPC API](https://github.com/TrueCloudLab/frostfs-api) declarations and few API and SDK implementation for different programming languages.
|
||||
FrostFS provides has language agnostic [gRPC API](https://git.frostfs.info/TrueCloudLab/frostfs-api) declarations and few API and SDK implementation for different programming languages.
|
||||
|
|
|
@ -6,7 +6,7 @@ type: "docs"
|
|||
date: "2022-12-22"
|
||||
---
|
||||
|
||||
### Introduction
|
||||
## Introduction
|
||||
|
||||
|
||||
FrostFS Enhancement Proposals (FEPs) describe standards for the whole FrostFS
|
||||
|
@ -18,7 +18,7 @@ never changed.
|
|||
To learn more about the purpose of FEPs and how to go about writing one, please
|
||||
refer to [FEP-1]({{< ref "/proposals/proc/fep-0001" >}}).
|
||||
|
||||
### FEP Status Key
|
||||
## FEP Status Key
|
||||
|
||||
- **Accepted** — Normative proposal accepted for implementation
|
||||
- **Active** — Currently valid informational guidance, or an in-use process
|
||||
|
|
|
@ -5,12 +5,13 @@ Author: Stanislav Bogatyrev <realloc@realloc.spb.ru>
|
|||
Discussions-To:
|
||||
- https://git.frostfs.info/TrueCloudLab/frostfs.info/pulls/12
|
||||
- https://github.com/TrueCloudLab/frostfs.info/pull/3
|
||||
Status: Draft
|
||||
Status: Active
|
||||
Type: Process
|
||||
Date: 2023-04-17
|
||||
toc: true
|
||||
---
|
||||
|
||||
### What is a FEP?
|
||||
## What is a FEP?
|
||||
|
||||
FEP stands for FrostFS Enhancement Proposal. The idea and most of the process is
|
||||
derived from Python [PEP-1](https://www.python.org/dev/peps/pep-0001/). Almost
|
||||
|
@ -34,7 +35,7 @@ repository](https://git.frostfs.info/TrueCloudLab/frostfs.info/src/branch/master
|
|||
The current rendered version is available on [frostfs.info
|
||||
site](https://frostfs.info/proposals/).
|
||||
|
||||
### FEP Audience
|
||||
## FEP Audience
|
||||
|
||||
The typical primary audience for FEPs are the FrostFS Core and Service
|
||||
developers, Architecture Committee, as well as developers of applications
|
||||
|
@ -45,7 +46,7 @@ However, other parts of the FrostFS community may also choose to use the process
|
|||
to manage complex design coordination problems that require collaboration across
|
||||
multiple projects.
|
||||
|
||||
### FEP Types
|
||||
## FEP Types
|
||||
|
||||
There are three kinds of FEP:
|
||||
|
||||
|
@ -69,9 +70,9 @@ There are three kinds of FEP:
|
|||
procedures, guidelines, changes to the decision-making process, and changes
|
||||
to the tools or environment used in FrostFS development.
|
||||
|
||||
### FEP Workflow
|
||||
## FEP Workflow
|
||||
|
||||
#### Starting with an idea
|
||||
### Starting with an idea
|
||||
|
||||
There are several references in this FEP to the "Architecture Committee",
|
||||
"Community Committee", "Committers" and "Developers". The detailed roles and
|
||||
|
@ -109,7 +110,7 @@ mentioned above. This gives the author a chance to flesh out the draft FEP to
|
|||
make properly formatted, of high quality, and to address initial concerns about
|
||||
the proposal.
|
||||
|
||||
#### Submitting a FEP
|
||||
### Submitting a FEP
|
||||
|
||||
Following the above initial discussion, the workflow varies based on whether any
|
||||
of the FEP's co-authors are Committers. If one or more of the FEP's co-authors
|
||||
|
@ -189,7 +190,7 @@ that at least a prototype implementation be co-developed with the FEP, as ideas
|
|||
that sound good in principle sometimes turn out to be impractical when subjected
|
||||
to the test of implementation.
|
||||
|
||||
#### Discussing a FEP
|
||||
### Discussing a FEP
|
||||
|
||||
As soon as a FEP number has been assigned and the draft FEP is committed to the
|
||||
FEP repository, a discussion thread for the FEP should be created to provide a
|
||||
|
@ -218,7 +219,7 @@ FEP review process. Comments, support, concerns and other feedback on this
|
|||
designated thread are a critical part of what the Architecture Committee or
|
||||
FEP-Delegate will consider when reviewing the FEP.
|
||||
|
||||
#### FEP Review & Resolution
|
||||
### FEP Review & Resolution
|
||||
|
||||
Once the authors have completed a FEP, they may request a review for style and
|
||||
consistency from the FEP editors. However, content review and acceptance of the
|
||||
|
@ -295,7 +296,7 @@ Some Informational and Process FEPs may also have a status of "Active" if they
|
|||
are never meant to be completed. E.g. [FEP-1]({{< ref "/proposals/proc/fep-0001"
|
||||
>}}) (this FEP :smile:).
|
||||
|
||||
#### FEP Maintenance {#fep_maintenance}
|
||||
### FEP Maintenance {#fep_maintenance}
|
||||
|
||||
In general, FEPs are no longer substantially modified after they have reached
|
||||
the Accepted, Final, Rejected or Superseded state. Once resolution is reached, a
|
||||
|
@ -316,7 +317,7 @@ in question.
|
|||
Occasionally, a Deferred or even a Withdrawn FEP may be resurrected
|
||||
with major updates, but it is often better to just propose a new one.
|
||||
|
||||
### What belongs in a successful FEP?
|
||||
## What belongs in a successful FEP?
|
||||
|
||||
Each FEP should have the following parts/sections:
|
||||
|
||||
|
@ -393,7 +394,7 @@ Each FEP should have the following parts/sections:
|
|||
Attribution-NonCommercial-ShareAlike 4.0 International License ([CC BY-NC-SA
|
||||
4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)).
|
||||
|
||||
### FEP Formats and Templates
|
||||
## FEP Formats and Templates
|
||||
|
||||
FEPs are UTF-8 encoded text files using the Markdown format in a dialect used by
|
||||
[Hugo](https://gohugo.io/) static site generator. Markdown allows for rich
|
||||
|
@ -403,7 +404,7 @@ functional HTML.
|
|||
The FEP text files are automatically converted to HTML for easier online reading
|
||||
at [FrostFS site](https://frostfs.info/proposals/)
|
||||
|
||||
### FEP Header Preamble {#fep_header_preamble}
|
||||
## FEP Header Preamble {#fep_header_preamble}
|
||||
|
||||
Each FEP must begin with an RFC-2822 style preamble in [Hugo page level
|
||||
params](https://gohugo.io/variables/page/#page-level-params) format. The
|
||||
|
@ -474,13 +475,13 @@ rendered obsolete by a later document; the value is the number of the FEP that
|
|||
replaces the current document. The newer FEP must have a Replaces header
|
||||
containing the number of the FEP that it rendered obsolete.
|
||||
|
||||
### Auxiliary Files
|
||||
## Auxiliary Files
|
||||
|
||||
FEPs may include auxiliary files such as diagrams. All support files may be
|
||||
placed in a subdirectory called ``fep-XXXX``, where "XXXX" is the FEP number.
|
||||
When using a subdirectory, there are no constraints on the names used in files.
|
||||
|
||||
### Changing Existing FEPs
|
||||
## Changing Existing FEPs
|
||||
|
||||
Draft FEPs are freely open for discussion and proposed modification, at the
|
||||
discretion of the authors, until submitted to the corresponding Committee for
|
||||
|
@ -497,7 +498,7 @@ Guide](https://git.frostfs.info/TrueCloudLab/frostfs.info/blob/master/CONTRIBUTI
|
|||
for additional details, and when in doubt, please check first with the FEP
|
||||
author and/or a FEP editor.
|
||||
|
||||
### Transferring FEP Ownership
|
||||
## Transferring FEP Ownership
|
||||
|
||||
It occasionally becomes necessary to transfer ownership of FEPs to a new
|
||||
champion. In general, it is preferable to retain the original author as a
|
||||
|
@ -519,7 +520,7 @@ use email.) If the original author doesn't respond in a timely manner, the
|
|||
Committee will make a unilateral decision (it's not like such decisions can't be
|
||||
reversed :smile:).
|
||||
|
||||
### Committee Responsibilities & Workflow
|
||||
## Committee Responsibilities & Workflow
|
||||
|
||||
A FEP editor must be added to the `@TrueCloudLab/architecture-committee` or
|
||||
`@TrueCloudLab/community-committee` group, depending on the relevant FEP types,
|
||||
|
@ -575,7 +576,7 @@ Once the FEP is ready for the repository, a FEP editor will:
|
|||
|
||||
Updates to existing FEPs should be submitted as a pull request.
|
||||
|
||||
### Copyright
|
||||
## Copyright
|
||||
|
||||
This work is licensed under a Creative Commons
|
||||
Attribution-NonCommercial-ShareAlike 4.0 International License.
|
||||
|
|
|
@ -12,12 +12,12 @@
|
|||
{{ end }}
|
||||
|
||||
{{ if eq $is_exists 1 }}
|
||||
<table>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Status</th>
|
||||
<th>PEP</th>
|
||||
<th>Authors</th>
|
||||
<th class="table-th">Status</th>
|
||||
<th class="table-th">PEP</th>
|
||||
<th class="table-th">Authors</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -25,12 +25,104 @@
|
|||
{{ 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>
|
||||
<th class="table-th status">{{ substr $page.Params.status 0 1 }}{{ substr $page.Params.type 0 1 }}
|
||||
<span class="tooltiptext">{{ $page.Params.status }}, {{ $page.Params.type }}</span>
|
||||
</th>
|
||||
<th class="table-th">
|
||||
<a href="{{ $page.Permalink }}">{{ $page.Title }}</a>
|
||||
</th>
|
||||
<th>{{ $page.Params.author }}</th>
|
||||
<!-- <th>{{ $page.Lastmod }}</th> -->
|
||||
<th class="table-th">
|
||||
<div class="authors">
|
||||
{{ if (isset $page.Params.author 0) }}
|
||||
{{ range $elem_index, $elem_val := $page.Params.author }}
|
||||
{{ $initialEmail := delimit (findRE `<.*@.*>` $elem_val) "" }}
|
||||
{{ $initialLogin := delimit (findRE `\(@.*\)` $elem_val) "" }}
|
||||
{{ $initialLink := delimit (findRE `\([^@].*\)` $elem_val) "" }}
|
||||
{{ $nameWithoutEmail := trim (substr $elem_val 0 (sub (len $elem_val) (len $initialEmail))) " " }}
|
||||
{{ $nameWithoutLogin := trim (substr $elem_val 0 (sub (len $elem_val) (len $initialLogin))) " " }}
|
||||
{{ $nameWithoutLink := trim (substr $elem_val 0 (sub (len $elem_val) (len $initialLink))) " " }}
|
||||
|
||||
<span class="author-name">
|
||||
{{ if $initialEmail }}
|
||||
{{ $nameWithoutEmail }}
|
||||
<span class="tooltiptext">
|
||||
{{ $email := slicestr $initialEmail 1 (sub (len $initialEmail) 1) }}
|
||||
<div class="author-contact">
|
||||
<i class="ti-email"></i>
|
||||
<a href="mailto:{{ $email }}">{{ $email }}</a>
|
||||
</div>
|
||||
</span>
|
||||
{{ else if ($initialLogin) }}
|
||||
{{ $nameWithoutLogin }}
|
||||
<span class="tooltiptext">
|
||||
{{ $login := slicestr $initialLogin 1 (sub (len $initialLogin) 1) }}
|
||||
{{ $linkLogin := trim $login "@" }}
|
||||
<div class="author-contact">
|
||||
<i class="ti-link"></i>
|
||||
<a href="https://git.frostfs.info/{{ $linkLogin }}" target="_blank">{{ $login }}</a>
|
||||
</div>
|
||||
</span>
|
||||
{{ else if ($initialLink) }}
|
||||
{{ $nameWithoutLink }}
|
||||
<span class="tooltiptext">
|
||||
{{ $link := slicestr $initialLink 1 (sub (len $initialLink) 1) }}
|
||||
<div class="author-contact">
|
||||
<i class="ti-new-window"></i>
|
||||
<a href="https://{{ $link }}" target="_blank">{{ $link }}</a>
|
||||
</div>
|
||||
</span>
|
||||
{{ else }}
|
||||
{{ $elem_val }}
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ if gt (sub (len $page.Params.author) 1) $elem_index }}
|
||||
<span class="author-delimiter">, </span>
|
||||
{{end}}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ $initialEmail := delimit (findRE `<.*@.*>` $page.Params.author) "" }}
|
||||
{{ $initialLogin := delimit (findRE `\(@.*\)` $page.Params.author) "" }}
|
||||
{{ $initialLink := delimit (findRE `\([^@].*\)` $page.Params.author) "" }}
|
||||
{{ $nameWithoutEmail := trim (substr $page.Params.author 0 (sub (len $page.Params.author) (len $initialEmail))) " " }}
|
||||
{{ $nameWithoutLogin := trim (substr $page.Params.author 0 (sub (len $page.Params.author) (len $initialLogin))) " " }}
|
||||
{{ $nameWithoutLink := trim (substr $page.Params.author 0 (sub (len $page.Params.author) (len $initialLink))) " " }}
|
||||
|
||||
<span class="author-name">
|
||||
{{ if $initialEmail }}
|
||||
{{ $nameWithoutEmail }}
|
||||
<span class="tooltiptext">
|
||||
{{ $email := slicestr $initialEmail 1 (sub (len $initialEmail) 1) }}
|
||||
<div class="author-contact">
|
||||
<i class="ti-email"></i>
|
||||
<a href="mailto:{{ $email }}">{{ $email }}</a>
|
||||
</div>
|
||||
</span>
|
||||
{{ else if ($initialLogin) }}
|
||||
{{ $nameWithoutLogin }}
|
||||
<span class="tooltiptext">
|
||||
{{ $login := slicestr $initialLogin 1 (sub (len $initialLogin) 1) }}
|
||||
{{ $linkLogin := trim $login "@" }}
|
||||
<div class="author-contact">
|
||||
<i class="ti-link"></i>
|
||||
<a href="https://git.frostfs.info/{{ $linkLogin }}" target="_blank">{{ $login }}</a>
|
||||
</div>
|
||||
</span>
|
||||
{{ else if ($initialLink) }}
|
||||
{{ $nameWithoutLink }}
|
||||
<span class="tooltiptext">
|
||||
{{ $link := slicestr $initialLink 1 (sub (len $initialLink) 1) }}
|
||||
<div class="author-contact">
|
||||
<i class="ti-new-window"></i>
|
||||
<a href="https://{{ $link }}" target="_blank">{{ $link }}</a>
|
||||
</div>
|
||||
</span>
|
||||
{{ else }}
|
||||
{{ $page.Params.author }}
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 95e99e3d4b3db02fd946e9f51c8a52303c5ea73b
|
||||
Subproject commit 59820ed5c97af782f0688cbbb6d416bb909db39a
|
Loading…
Reference in a new issue