From 7a2424a84e13bc105b34a29dbd546db826d242d8 Mon Sep 17 00:00:00 2001 From: plyght Date: Tue, 11 Feb 2025 08:57:50 -0500 Subject: [PATCH 01/10] Update index.smd --- content/index.smd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/index.smd b/content/index.smd index bef6e37..8c6c36a 100644 --- a/content/index.smd +++ b/content/index.smd @@ -30,7 +30,7 @@ This is a programmer's text editor. It is under active development, but usually ## 📦 Installation ### Installer -``` curl -fsSL https://www.flow-control.dev/install | sh ``` +``` curl -fsSL https://flow-control.dev/install | sh ``` ### Prebuilt Binaries - Stable: [Releases](https://github.com/neurocyte/flow/releases) From 1a8f883e21b08faefeda21a8431dec35ea8e4421 Mon Sep 17 00:00:00 2001 From: plyght Date: Tue, 11 Feb 2025 09:31:57 -0500 Subject: [PATCH 02/10] Improve installer --- install | 116 +++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 89 insertions(+), 27 deletions(-) diff --git a/install b/install index 4a8ed5f..aed9b41 100644 --- a/install +++ b/install @@ -1,42 +1,104 @@ #!/bin/sh - set -e -REPO="neurocyte/flow" -INSTALL_DIR="/usr/local/bin" +install_dir="/usr/local/bin" +add_alias=0 +nightly=0 -# detect os and architecture -OS="$(uname -s | tr '[:upper:]' '[:lower:]')" -if [ "$OS" = "darwin" ]; then - OS="macos" +# parse command-line arguments for alias option only +for arg in "$@"; do + case "$arg" in + --alias|-a) + add_alias=1 + ;; + *) + ;; + esac +done + +# prompt for nightly build option if interactive +if [ -t 0 ]; then + printf "do you want to install a Nightly build? [y/N]: " + read answer_nightly + if [ "$answer_nightly" = "y" ] || [ "$answer_nightly" = "Y" ]; then + nightly=1 + fi fi -ARCH="$(uname -m)" -case "$ARCH" in - x86_64) ARCH="x86_64" ;; - arm64) ARCH="aarch64" ;; +if [ "$nightly" -eq 1 ]; then + repo="neurocyte/flow-nightly" +else + repo="neurocyte/flow" +fi + +# detect os and architecture +os="$(uname -s | tr '[:upper:]' '[:lower:]')" +if [ "$os" = "darwin" ]; then + os="macos" +fi + +arch="$(uname -m)" +case "$arch" in + x86_64) arch="x86_64" ;; + arm64) arch="aarch64" ;; + i686) arch="x86" ;; + i386) arch="x86" ;; esac # get latest version tag from github releases api -VERSION=$(curl -s "https://api.github.com/repos/$REPO/releases/latest" | grep '"tag_name":' | cut -d'"' -f4) -[ -z "$VERSION" ] && { echo "failed to fetch latest version"; exit 1; } +version=$(curl -s "https://api.github.com/repos/$repo/releases/latest" | grep '"tag_name":' | cut -d'"' -f4) +[ -z "$version" ] && { echo "failed to fetch latest version"; exit 1; } # construct download url -FILENAME="flow-$VERSION-$OS-$ARCH" -EXT="tar.gz" -[ "$OS" = "windows" ] && EXT="zip" -URL="https://github.com/$REPO/releases/download/$VERSION/$FILENAME.$EXT" +# note: nightly assets are named like "flow---." +filename="flow-$version-$os-$arch" +ext="tar.gz" +if [ "$os" = "windows" ]; then + ext="zip" +fi +url="https://github.com/$repo/releases/download/$version/$filename.$ext" -echo "downloading flow $VERSION..." -curl -L "$URL" -o "/tmp/$FILENAME.$EXT" - -echo "installing flow..." -if [ "$EXT" = "tar.gz" ]; then - tar -xzf "/tmp/$FILENAME.$EXT" -C "$INSTALL_DIR" +if [ "$nightly" -eq 1 ]; then + echo "downloading NIGHTLY build $version..." else - unzip -o "/tmp/$FILENAME.$EXT" -d "$INSTALL_DIR" + echo "downloading flow $version..." fi -chmod +x "$INSTALL_DIR/flow" -rm "/tmp/$FILENAME.$EXT" -echo "flow installed successfully!" \ No newline at end of file +curl -fL "$url" -o "/tmp/$filename.$ext" + +# simple file size check (adjust threshold if needed) +filesize=$(stat -c%s "/tmp/$filename.$ext" 2>/dev/null || stat -f%z "/tmp/$filename.$ext") +if [ "$filesize" -lt 100 ]; then + echo "downloaded file appears to be invalid (size: ${filesize} bytes)" + exit 1 +fi + +echo "installing $( [ "$nightly" -eq 1 ] && echo 'NIGHTLY build' || echo 'flow')..." +if [ "$ext" = "tar.gz" ]; then + tar -xzf "/tmp/$filename.$ext" -C "$install_dir" +else + unzip -o "/tmp/$filename.$ext" -d "$install_dir" +fi + +chmod +x "$install_dir/flow" +rm "/tmp/$filename.$ext" +echo "$( [ "$nightly" -eq 1 ] && echo 'NIGHTLY build' || echo 'flow') installed successfully!" + +create_alias() { + if [ -e "$install_dir/f" ]; then + echo "warning: existing file or alias detected at $install_dir/f, overwriting..." + rm -f "$install_dir/f" + fi + ln -s "$install_dir/flow" "$install_dir/f" + echo "alias 'f' created successfully!" +} + +if [ "$add_alias" -eq 1 ]; then + create_alias +elif [ -t 0 ]; then + printf "do you want to create an alias 'f' for 'flow'? [y/N]: " + read answer_alias + if [ "$answer_alias" = "y" ] || [ "$answer_alias" = "Y" ]; then + create_alias + fi +fi From 059128ead679332f7850e4712515b4a6abc208d7 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 11 Feb 2025 18:52:15 +0100 Subject: [PATCH 03/10] split title into name and subtext and improve first sentence --- content/index.smd | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/index.smd b/content/index.smd index 8c6c36a..991289c 100644 --- a/content/index.smd +++ b/content/index.smd @@ -1,12 +1,14 @@ --- -.title = "Flow Control - a programmer's text editor", +.title = "Flow Control", .date = @date("2020-07-06T00:00:00"), .author = "CJ van den Berg", .layout = "home.shtml", .draft = false, --- -This is a programmer's text editor. It is under active development, but usually stable. +## a programmer's text editor + +Flow Control is under active development, but usually very stable. []($video.siteAsset('video/flow-control.mp4').controls(true)) From 62752b844f3746fe77d634edbd54a1a07b4c20c2 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 11 Feb 2025 19:03:03 +0100 Subject: [PATCH 04/10] add command line option for nightly installs --- install | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/install b/install index aed9b41..13184fa 100644 --- a/install +++ b/install @@ -11,6 +11,9 @@ for arg in "$@"; do --alias|-a) add_alias=1 ;; + --nightly|-n) + nightly=1 + ;; *) ;; esac @@ -19,7 +22,7 @@ done # prompt for nightly build option if interactive if [ -t 0 ]; then printf "do you want to install a Nightly build? [y/N]: " - read answer_nightly + read -r answer_nightly if [ "$answer_nightly" = "y" ] || [ "$answer_nightly" = "Y" ]; then nightly=1 fi @@ -97,7 +100,7 @@ if [ "$add_alias" -eq 1 ]; then create_alias elif [ -t 0 ]; then printf "do you want to create an alias 'f' for 'flow'? [y/N]: " - read answer_alias + read -r answer_alias if [ "$answer_alias" = "y" ] || [ "$answer_alias" = "Y" ]; then create_alias fi From 1a05a9e469f22eedd2643a0fae987f7ac9f465ea Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 11 Feb 2025 19:06:15 +0100 Subject: [PATCH 05/10] add instructions for installing nightly builds with the installer --- content/index.smd | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/content/index.smd b/content/index.smd index 991289c..8ca0499 100644 --- a/content/index.smd +++ b/content/index.smd @@ -32,8 +32,16 @@ Flow Control is under active development, but usually very stable. ## 📦 Installation ### Installer + +Install latest release: + ``` curl -fsSL https://flow-control.dev/install | sh ``` +Install latest nightly build: + +``` curl -fsSL https://flow-control.dev/install | sh -s -- --nightly ``` + + ### Prebuilt Binaries - Stable: [Releases](https://github.com/neurocyte/flow/releases) - Nightly: [Nightly Builds](https://github.com/neurocyte/flow-nightly/releases) From 30d1c9ee11ad5d436711e561d22f53b361052507 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 11 Feb 2025 19:15:48 +0100 Subject: [PATCH 06/10] add --prefix option to installer --- content/index.smd | 7 +++---- install | 23 ++++++++++------------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/content/index.smd b/content/index.smd index 8ca0499..66bfdd0 100644 --- a/content/index.smd +++ b/content/index.smd @@ -33,14 +33,13 @@ Flow Control is under active development, but usually very stable. ### Installer -Install latest release: +Install the latest release to `/usr/local/bin`: ``` curl -fsSL https://flow-control.dev/install | sh ``` -Install latest nightly build: - -``` curl -fsSL https://flow-control.dev/install | sh -s -- --nightly ``` +Install latest nightly build and specify the install prefix: +``` curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --prefix ~/.local/bin ``` ### Prebuilt Binaries - Stable: [Releases](https://github.com/neurocyte/flow/releases) diff --git a/install b/install index 13184fa..ade90d1 100644 --- a/install +++ b/install @@ -5,22 +5,19 @@ install_dir="/usr/local/bin" add_alias=0 nightly=0 -# parse command-line arguments for alias option only -for arg in "$@"; do - case "$arg" in - --alias|-a) - add_alias=1 - ;; - --nightly|-n) - nightly=1 - ;; - *) - ;; - esac +while true +do + case "${1}" in + -a|--alias) add_alias=1; shift 1;; + -n|--nightly) nightly=1; shift 1;; + -p|--prefix) install_dir=/$2; shift 2;; + --) shift 1; break ;; + *) break ;; + esac done # prompt for nightly build option if interactive -if [ -t 0 ]; then +if [ "$nightly" -eq 0 ] && [ -t 0 ]; then printf "do you want to install a Nightly build? [y/N]: " read -r answer_nightly if [ "$answer_nightly" = "y" ] || [ "$answer_nightly" = "Y" ]; then From 2844db19a4c5d91ea6a0086254b19ffd224b9ea6 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 11 Feb 2025 19:25:32 +0100 Subject: [PATCH 07/10] run shfmt on installer --- install | 96 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 41 deletions(-) diff --git a/install b/install index ade90d1..e3803a4 100644 --- a/install +++ b/install @@ -5,63 +5,77 @@ install_dir="/usr/local/bin" add_alias=0 nightly=0 -while true -do +while true; do case "${1}" in - -a|--alias) add_alias=1; shift 1;; - -n|--nightly) nightly=1; shift 1;; - -p|--prefix) install_dir=/$2; shift 2;; - --) shift 1; break ;; - *) break ;; + -a | --alias) + add_alias=1 + shift 1 + ;; + -n | --nightly) + nightly=1 + shift 1 + ;; + -p | --prefix) + install_dir=/$2 + shift 2 + ;; + --) + shift 1 + break + ;; + *) break ;; esac done # prompt for nightly build option if interactive if [ "$nightly" -eq 0 ] && [ -t 0 ]; then - printf "do you want to install a Nightly build? [y/N]: " - read -r answer_nightly - if [ "$answer_nightly" = "y" ] || [ "$answer_nightly" = "Y" ]; then - nightly=1 - fi + printf "do you want to install a Nightly build? [y/N]: " + read -r answer_nightly + if [ "$answer_nightly" = "y" ] || [ "$answer_nightly" = "Y" ]; then + nightly=1 + fi fi if [ "$nightly" -eq 1 ]; then - repo="neurocyte/flow-nightly" + repo="neurocyte/flow-nightly" else - repo="neurocyte/flow" + repo="neurocyte/flow" fi # detect os and architecture os="$(uname -s | tr '[:upper:]' '[:lower:]')" if [ "$os" = "darwin" ]; then - os="macos" + os="macos" fi arch="$(uname -m)" case "$arch" in - x86_64) arch="x86_64" ;; - arm64) arch="aarch64" ;; - i686) arch="x86" ;; - i386) arch="x86" ;; +x86_64) arch="x86_64" ;; +arm64) arch="aarch64" ;; +i686) arch="x86" ;; +i386) arch="x86" ;; esac # get latest version tag from github releases api version=$(curl -s "https://api.github.com/repos/$repo/releases/latest" | grep '"tag_name":' | cut -d'"' -f4) -[ -z "$version" ] && { echo "failed to fetch latest version"; exit 1; } +[ -z "$version" ] && { + echo "failed to fetch latest version" + exit 1 +} # construct download url # note: nightly assets are named like "flow---." filename="flow-$version-$os-$arch" ext="tar.gz" if [ "$os" = "windows" ]; then - ext="zip" + ext="zip" fi url="https://github.com/$repo/releases/download/$version/$filename.$ext" if [ "$nightly" -eq 1 ]; then - echo "downloading NIGHTLY build $version..." + echo "downloading NIGHTLY build $version..." else - echo "downloading flow $version..." + echo "downloading flow $version..." fi curl -fL "$url" -o "/tmp/$filename.$ext" @@ -69,36 +83,36 @@ curl -fL "$url" -o "/tmp/$filename.$ext" # simple file size check (adjust threshold if needed) filesize=$(stat -c%s "/tmp/$filename.$ext" 2>/dev/null || stat -f%z "/tmp/$filename.$ext") if [ "$filesize" -lt 100 ]; then - echo "downloaded file appears to be invalid (size: ${filesize} bytes)" - exit 1 + echo "downloaded file appears to be invalid (size: ${filesize} bytes)" + exit 1 fi -echo "installing $( [ "$nightly" -eq 1 ] && echo 'NIGHTLY build' || echo 'flow')..." +echo "installing $([ "$nightly" -eq 1 ] && echo 'NIGHTLY build' || echo 'flow')..." if [ "$ext" = "tar.gz" ]; then - tar -xzf "/tmp/$filename.$ext" -C "$install_dir" + tar -xzf "/tmp/$filename.$ext" -C "$install_dir" else - unzip -o "/tmp/$filename.$ext" -d "$install_dir" + unzip -o "/tmp/$filename.$ext" -d "$install_dir" fi chmod +x "$install_dir/flow" rm "/tmp/$filename.$ext" -echo "$( [ "$nightly" -eq 1 ] && echo 'NIGHTLY build' || echo 'flow') installed successfully!" +echo "$([ "$nightly" -eq 1 ] && echo 'NIGHTLY build' || echo 'flow') installed successfully!" create_alias() { - if [ -e "$install_dir/f" ]; then - echo "warning: existing file or alias detected at $install_dir/f, overwriting..." - rm -f "$install_dir/f" - fi - ln -s "$install_dir/flow" "$install_dir/f" - echo "alias 'f' created successfully!" + if [ -e "$install_dir/f" ]; then + echo "warning: existing file or alias detected at $install_dir/f, overwriting..." + rm -f "$install_dir/f" + fi + ln -s "$install_dir/flow" "$install_dir/f" + echo "alias 'f' created successfully!" } if [ "$add_alias" -eq 1 ]; then - create_alias -elif [ -t 0 ]; then - printf "do you want to create an alias 'f' for 'flow'? [y/N]: " - read -r answer_alias - if [ "$answer_alias" = "y" ] || [ "$answer_alias" = "Y" ]; then create_alias - fi +elif [ -t 0 ]; then + printf "do you want to create an alias 'f' for 'flow'? [y/N]: " + read -r answer_alias + if [ "$answer_alias" = "y" ] || [ "$answer_alias" = "Y" ]; then + create_alias + fi fi From 7d0f17d60801dc580201ed705a433893e419104f Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 11 Feb 2025 20:18:06 +0100 Subject: [PATCH 08/10] add gpg verification --- content/index.smd | 5 +++++ install | 31 +++++++++++++++++++++++++++++++ public.gpg | Bin 0 -> 1837 bytes 3 files changed, 36 insertions(+) create mode 100644 public.gpg diff --git a/content/index.smd b/content/index.smd index 66bfdd0..5962d74 100644 --- a/content/index.smd +++ b/content/index.smd @@ -41,6 +41,11 @@ Install latest nightly build and specify the install prefix: ``` curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --prefix ~/.local/bin ``` +Install latest nightly build and verify against gpg signature: + +``` curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --verify ``` + + ### Prebuilt Binaries - Stable: [Releases](https://github.com/neurocyte/flow/releases) - Nightly: [Nightly Builds](https://github.com/neurocyte/flow-nightly/releases) diff --git a/install b/install index e3803a4..a680b1b 100644 --- a/install +++ b/install @@ -4,6 +4,8 @@ set -e install_dir="/usr/local/bin" add_alias=0 nightly=0 +verify=0 +local=0 while true; do case "${1}" in @@ -19,6 +21,14 @@ while true; do install_dir=/$2 shift 2 ;; + -V | --verify) + verify=1 + shift 1 + ;; + -l | --local) + local=1 + shift 1 + ;; --) shift 1 break @@ -87,6 +97,27 @@ if [ "$filesize" -lt 100 ]; then exit 1 fi +if [ "$verify" -eq 0 ] && [ -t 0 ]; then + printf "do you want to download and verify the gpg signature? [y/N]: " + read -r answer_verify + if [ "$answer_verify" = "y" ] || [ "$answer_verify" = "Y" ]; then + verify=1 + fi +fi + +if [ "$verify" -eq 1 ]; then + curl -fL "$url.sig" -o "/tmp/$filename.$ext.sig" + curl -fL 'https://flow-control.dev/public.gpg' -o /tmp/flow-control-public.gpg + gpg --no-default-keyring --keyring /tmp/flow-control-public.gpg --verify "/tmp/$filename.$ext.sig" "/tmp/$filename.$ext" + + if [ "$local" -eq 1 ]; then + gpg --verify "/tmp/$filename.$ext.sig" "/tmp/$filename.$ext" + fi + + rm /tmp/flow-control-public.gpg + rm "/tmp/$filename.$ext.sig" +fi + echo "installing $([ "$nightly" -eq 1 ] && echo 'NIGHTLY build' || echo 'flow')..." if [ "$ext" = "tar.gz" ]; then tar -xzf "/tmp/$filename.$ext" -C "$install_dir" diff --git a/public.gpg b/public.gpg new file mode 100644 index 0000000000000000000000000000000000000000..f199e027ab8ad1f6ccb322d6ff40a64eae4ef786 GIT binary patch literal 1837 zcmajecQ_je1IO_sf(UKZ7JJlIqe2^7RP7Pf*k{B_2$c|mqV_qXWYY(k&DJ{OqOrHOcYUAdp7;Il{rC6${`)>33NQog$(=(3asV1Tg!A8GlMWV3ib{R! z1?nN>Ie7{gcJx||7gmDmwO=0gNKb`;+tv_R49TjfqNa2;gt=WeKo_mP;4V3ND1bcJ6uCEYOuE2KFB z+y^2ga-@gJx2M*`xG00ME1VIUQqaA*>?fNz+i&s_kyg;% z1h@(W09z!H=HlU=cyWvmUfjqh)K6T;8*31b@e0NV2H<_Jdj|*Ur2$94+&~E6CZ7b@ zI`CM^=E9oCo|AZ**|gNh4!-eM2&u;L~j0{xgcfs9%b$y){y#QIv{#!O7LPW)wL^ zEgW`l_nDEP!&p=BJIFv*iJ$2(9o4sN_Z?iakU~_Ba>3#&P28nR6Vu{4tEld zdUBBL-M=mb{B}%KCeXUKrpYz}Vc7|!l_;u3v~FKQmZ8o)>A&*pvABaq zl{Zdx@)Hm{h6LdyuNwphF&|1jl~H6OuH~1vNE*zXSL5@24;^Wx9;c=(OeW zwR>5nlId&YVwiZgCwxBlHPRm}ne(tMCe;nhc@+W>`KRa4Llf=C4D@rFds$E+*~#sM z2nqe(Ggs<+w11Zm!GQ817Rf^3ne>ACT^qko%RG%4w@Y#XWq#*IGg7=L=M0)ReQci8 zxX0NV)bU^Az1&lU>8&uhXBh0I#5p6%vStjdPjO0{d1PG74cHlz+!ErvMASo!`7E_WZY&|_ zDnT!+Yvt2RDU8w(A0xrH)F~3d#qH~nWUMmleyi3|8t|4;{p@eR(t3I#Kf`07hxc#uu`au$3 z&;U5A6;!`rbP&)Ox2fBq_j!Dskvb1G@u2ad=V09lZS{l#LJkwG$f;bt3mfa*OjEmYhuZjv+6c8=B zKcKmOcP%MJr(LLYF5Qdl`m*|A;8vPNd@(B46Zg=Qf>>tnhgBd~Iuuwz z3LL>Hr~`+nKPp4Dc@fB^j^)SiQ`M4LwI5MCm%68$YwUyuXZuX~1}I5co{yf*7VSb0 z>1I$txrJS&Yii6K+~*|)CUQez@PK%?HekPLkhwjV5?Trk7~EprYA|TkJF{$C@z~z) z`)mFzwy*rxyq_%Qzana`Ya6@Wo5wp4TiM9Gu9bQ1wf8X?gZqZ-)NabR??R3g6Qi?>)lL3E}o5eRDX>7omHs4p(wRAZ0ewCsChPSO+8xI6t+=X zkZN;D*}$Z`7s@_uzKS2UGxw%}0x7386iQIcgSx-wv-5f1ti-?iw)cLfiA!^Qgs~uP SEQ@xDjI&iPE!5|FD)=|z3rgYu literal 0 HcmV?d00001 From 760061b9c78916f736887acb2dd9c0d8e7676738 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 11 Feb 2025 20:21:28 +0100 Subject: [PATCH 09/10] public public key file --- build.zig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.zig b/build.zig index 80a9ec7..11f6aee 100644 --- a/build.zig +++ b/build.zig @@ -12,4 +12,7 @@ pub fn build(b: *std.Build) !void { const install_step = b.addInstallFile(b.path("install"), "install"); b.getInstallStep().dependOn(&install_step.step); + + const install_key = b.addInstallFile(b.path("public.gpg"), "public.gpg"); + b.getInstallStep().dependOn(&install_key.step); } From 374809b1ab73af204cc6393f88370c72c7536fd8 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Thu, 13 Feb 2025 19:55:42 +0100 Subject: [PATCH 10/10] style tweaks --- assets/css/index.css | 51 +++++++++++++++++++++++++++++++------------- content/index.smd | 14 ++++++++---- 2 files changed, 46 insertions(+), 19 deletions(-) diff --git a/assets/css/index.css b/assets/css/index.css index abddf45..d386af6 100644 --- a/assets/css/index.css +++ b/assets/css/index.css @@ -1,30 +1,42 @@ @import url('https://fonts.cdnfonts.com/css/jetbrains-mono-2'); :root { - --font-family: "JetBrains Mono", monospace; - --line-height: 1.20rem; + // --font-family: "Pixel Code", monospace; + // --font-family: "Maple Mono", monospace; + // --font-family: "JetBrains Mono", monospace; + --font-family: "Iosevka", monospace; + // --font-family-alt: "Pixel Code", monospace; + // --font-family-alt: "AcPlus IBM VGA 9x16", monospace; + --font-family-titles: "AcPlus IBM VGA 9x16", monospace; + // --font-family-titles: "Maple Mono", monospace; + // --font-family-titles: "Pixel Code", monospace; + --line-height: 1.40rem; --border-thickness: 2px; - --text-color: #000; + --text-color: #333; --text-color-alt: #666; + --text-color-accent: #000; --background-color: #fff; --background-color-alt: #eee; + // --transform: uppercase; --font-weight-normal: 500; --font-weight-medium: 600; --font-weight-bold: 800; + --font-weight-titles: 600; font-family: var(--font-family); font-optical-sizing: auto; font-weight: var(--font-weight-normal); font-style: normal; font-variant-numeric: tabular-nums lining-nums; - font-size: 16px; + font-size: 13px; } @media (prefers-color-scheme: dark) { :root { - --text-color: #fff; - --text-color-alt: #aaa; + --text-color: #aaa; + --text-color-alt: #898; + --text-color-accent: #ddd; --background-color: #000; --background-color-alt: #111; } @@ -55,7 +67,7 @@ body { width: 100%; margin: 0; padding: var(--line-height) 2ch; - max-width: calc(min(80ch, round(down, 100%, 1ch))); + max-width: calc(min(100ch, round(down, 100%, 1ch))); line-height: var(--line-height); overflow-x: hidden; } @@ -73,19 +85,25 @@ h1, h2, h3, h4, h5, h6 { font-weight: var(--font-weight-bold); margin: calc(var(--line-height) * 2) 0 var(--line-height); line-height: var(--line-height); + color: var(--text-color-accent); } h1 { - font-size: 2rem; + font-size: 6rem; line-height: calc(2 * var(--line-height)); margin-bottom: calc(var(--line-height) * 2); - text-transform: uppercase; + text-transform: var(--transform); + font-family: var(--font-family-titles); + font-weight: var(--font-weight-titles); } h2 { - font-size: 1rem; - text-transform: uppercase; + font-size: 2rem; + font-family: var(--font-family-titles); + font-weight: var(--font-weight-titles); + text-transform: var(--transform); + // margin-left: calc(var(--line-height) * 1); } - + text-transform: var(--transform) hr { position: relative; display: block; @@ -225,15 +243,18 @@ details :last-child { pre { white-space: pre; overflow-x: auto; - margin: var(--line-height) 0; + margin: 10px; + padding: 10px; + background: var(--background-color-alt); overflow-y: hidden; + color: var(--text-color-alt); } figure pre { margin: 0; } pre, code { - font-family: var(--font-family); + font-family: var(--font-family-alt); } code { @@ -347,7 +368,7 @@ button::-moz-focus-inner { } button { - text-transform: uppercase; + text-transform: var(--transform); font-weight: var(--font-weight-medium); cursor: pointer; } diff --git a/content/index.smd b/content/index.smd index 5962d74..cac4bb3 100644 --- a/content/index.smd +++ b/content/index.smd @@ -35,15 +35,21 @@ Flow Control is under active development, but usually very stable. Install the latest release to `/usr/local/bin`: -``` curl -fsSL https://flow-control.dev/install | sh ``` +``` +curl -fsSL https://flow-control.dev/install | sh +``` Install latest nightly build and specify the install prefix: -``` curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --prefix ~/.local/bin ``` +``` +curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --prefix ~/.local/bin +``` Install latest nightly build and verify against gpg signature: -``` curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --verify ``` +``` +curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --verify +``` ### Prebuilt Binaries @@ -96,7 +102,7 @@ kitty_mod ctrl+alt flow file.zig:42 # Open at line 42 flow --language zig CMakeLists.txt # Force file type flow --list-languages # Show all supported languages -flow --help # Full list of command line options +flow --help # List of command line options ``` ## ⌨️ Key Controls