Starting point for a website (#1114)

* Create a simple Zola website on a subdirectory

This uses the [Juice theme](https://www.getzola.org/themes/juice/), with
small customizations. It could be further customized later.

* Automate website content update

RISS and Makefile are used to pull the website content from various
parts of the neovide repository (reusing images and the README.md file
for instance)

* Document how to build and edit the website

It can be counter-intuitive to have to make changes outside of the
`website` directory, adding documentation and scripting clarify it.

* Deploy automatically to GitHub Pages

Uses https://github.com/marketplace/actions/zola-deploy-to-pages to
build and deploy the website on GitHub Pages.

TODO (after merging)
* A `TOKEN` need to be set as explained in https://github.com/marketplace/actions/zola-deploy-to-pages#secrets
* I’ve tested with https://cljoly.github.io/neovide/, but we need to
  change this to at least https://neovide.github.io/neovide/.

* Fix website URL

Co-authored-by: Keith Simmons <keith@the-simmons.net>
macos-click-through
Clément Joly 3 years ago committed by GitHub
parent f7845c7792
commit 4424731ba4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,38 @@
name: Website
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/main'
steps:
- name: 'Checkout'
uses: actions/checkout@master
- name: 'Content update'
run: |
make -C website content_update
- name: 'Build only'
uses: shalzz/zola-deploy-action@master
env:
BUILD_DIR: website
BUILD_ONLY: true
build_and_deploy:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: 'Checkout'
uses: actions/checkout@master
- name: 'Content update'
run: |
make -C website content_update
- name: 'Build and deploy'
uses: shalzz/zola-deploy-action@master
env:
PAGES_BRANCH: gh-pages
BUILD_DIR: website
# See https://github.com/marketplace/actions/zola-deploy-to-pages#secrets for details
TOKEN: ${{ secrets.TOKEN }}

3
.gitmodules vendored

@ -0,0 +1,3 @@
[submodule "website/themes/juice"]
path = website/themes/juice
url = https://github.com/huhu/juice

@ -1,4 +1,13 @@
<!-- insert
---
title: Neovide
date: 2021-12-23T22:13:46
---
end_insert -->
<!-- remove -->
# Neovide [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/SjFpZdQys6) [![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#neovide_community:gitter.im) [![Discussions](https://img.shields.io/badge/GitHub-Discussions-green?logo=github)](https://github.com/Kethku/neovide/discussions) # Neovide [![Discord](https://badgen.net/badge/icon/discord?icon=discord&label)](https://discord.gg/SjFpZdQys6) [![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#neovide_community:gitter.im) [![Discussions](https://img.shields.io/badge/GitHub-Discussions-green?logo=github)](https://github.com/Kethku/neovide/discussions)
<!-- end_remove -->
<!-- Powered by https://cj.rs/riss -->
This is a simple graphical user interface for [Neovim](https://github.com/neovim/neovim) (an aggressively refactored and updated This is a simple graphical user interface for [Neovim](https://github.com/neovim/neovim) (an aggressively refactored and updated
Vim editor). Where possible there are some graphical improvements, but functionally it should act like the terminal UI. Vim editor). Where possible there are some graphical improvements, but functionally it should act like the terminal UI.

@ -0,0 +1,6 @@
# Zola output
public
# Will be copied during the build process
static/assets
# Most md files are created by RISS on the fly, updated during the build process
content/*.md

@ -0,0 +1,16 @@
.PHONY: md_update
md_update:
@awk -f ./riss.awk < ../README.md >content/_index.md
.PHONY: content_update
content_update: md_update
@mkdir -p static/assets
@cp -r ../assets static/
.PHONY: all
all: content_update
@zola build
.PHONY: serve
serve: content_update
@zola serve

@ -0,0 +1,18 @@
## Build
To build neovides website, ensure you have [zola](https://getzola.org/) and `awk` installed.
Then, in this directory, run:
```sh
git submodule update --init
make serve
```
## Edit
To ease maintenance, markdown files in [`content`](./content/) are often sourced from other parts of the repository, thanks to [RISS](https://cj.rs/riss). RISS allows to change the files slightly, see the [transformation reference](https://cj.rs/readme-in-static-site/#transformations-reference) for the syntax.
For instance, `content/_index.md` is sourced from the [`README`](/README.md). Thus to make changes to `content/_index.md`, edit the [`README`](/README.md) and run:
```
make md_update
```

@ -0,0 +1,23 @@
# The URL the site will be built for
base_url = "https://neovide.github.io/neovide"
theme = "juice"
# Whether to automatically compile all Sass files in the sass directory
compile_sass = true
# Whether to build a search index to be used later on by a JavaScript library
build_search_index = false
[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
[extra]
# Put all your custom variables here
juice_logo_name = "Neovide"
juice_logo_path = "assets/neovide.svg"
juice_extra_menu = [
{ title = "Github", link = "https://github.com/neovide/neovide"}
]
repository_url = "https://github.com/neovide/neovide"

@ -0,0 +1,41 @@
#!/usr/bin/awk -f
#
# Copyright 2021 Clément Joly
# https://cj.rs/riss
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Divide the input file into these types of sections:
# * inserting: the current line is copied to the output, verbatim
# * removing: the line is not copied to the output
# To distinguish between these sections, the script interprets special
# comments. These comments are removed from the output.
BEGIN {
# Section identifier
removing = 0
}
/^<!--+ remove -+->$/ {
removing = 1
next
}
/^<!--+ end_remove -+->$|^<!--+ insert$|^end_insert -+->$/ {
removing = 0
next
}
! removing {
print $0
}

@ -0,0 +1,15 @@
<style>
:root {
/* Primary theme color */
--primary-color: #FED43F;
/* Primary theme text color */
--primary-text-color: #543631;
/* Primary theme link color */
--primary-link-color: #F9BB2D;
/* Secondary color: the background body color */
--secondary-color: #fcfaf6;
--secondary-text-color: #303030;
/* Highlight text color of table of content */
--toc-highlight-text-color: #d46e13;
}
</style>

@ -0,0 +1,32 @@
{% extends "juice/templates/index.html" %}
{% block hero %}
<section class="text-center">
<h1 class="heading-text" style="font-size: 50px">
No Nonsense Neovim Client in Rust
</h1>
<div>
<img src="https://badgen.net/badge/icon/discord?icon=discord&amp;label" alt="Discord"></a> <a href="https://matrix.to/#/#neovide_community:gitter.im"><img src="https://matrix.to/img/matrix-badge.svg" alt="Chat on Matrix"></a> <a href="https://github.com/Kethku/neovide/discussions"><img src="https://img.shields.io/badge/GitHub-Discussions-green?logo=github" alt="Discussions"></a>
</div>
</section>
<img class="hero-image" style="width: 50%" src="{{ get_url(path="assets/neovide.svg") }}">
<div class="explore-more text"
onclick="document.getElementById('features').scrollIntoView({behavior: 'smooth'})">
Explore More ⇩
</div>
<style>
.hero section {
padding: 0 5rem;
}
@media screen and (max-width: 768px) {
.hero section {
padding: 0 2rem;
}
.hero-image {
display: none
}
}
</style>
{% endblock hero %}

@ -0,0 +1 @@
Subproject commit a5eb57d2781eed43301215e27679c0bb7b4cbedf
Loading…
Cancel
Save