From d81d4e9186fca436a2a55a4ee366b2de7fdd02f1 Mon Sep 17 00:00:00 2001 From: Axel Forsman Date: Tue, 15 Sep 2020 09:55:49 +0200 Subject: Add GitHub Pages frontend --- .github/workflows/build.yml | 12 +++++++- .gitignore | 2 ++ dist/index.html | 68 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 22 +++++++++++++++ src/index.js | 17 ++++++++++++ webpack.config.js | 23 +++++++++++++++ 6 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 dist/index.html create mode 100644 package.json create mode 100644 src/index.js create mode 100644 webpack.config.js diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f8f8fa..01afe77 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: build +name: Build and deploy on: push: @@ -21,3 +21,13 @@ jobs: uses: actions/upload-artifact@v2 with: path: tag-versions + + - name: Build frontend + run: | + npm install + npm run build + - name: Deploy to Github Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./dist diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8225baa --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/node_modules +/dist diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..1d8d93c --- /dev/null +++ b/dist/index.html @@ -0,0 +1,68 @@ + + + + Vim help tag versions + + + +
+ +
+ +
+ + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..dd88d63 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "vim-helptag-versions", + "version": "1.0.0", + "description": "Index of what Vim version introduced what help tag", + "repository": "git@github.com:axelf4/vim-helptag-versions.git", + "author": "Axel Forsman ", + "license": "MIT", + "private": true, + "scripts": { + "start": "webpack-dev-server --open", + "build": "webpack" + }, + "devDependencies": { + "csv-loader": "^3.0.3", + "webpack": "^4.44.1", + "webpack-cli": "^3.3.12", + "webpack-dev-server": "^3.11.0" + }, + "dependencies": { + "fuzzysort": "^1.1.4" + } +} diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..6562fca --- /dev/null +++ b/src/index.js @@ -0,0 +1,17 @@ +import fuzzysort from "fuzzysort"; +import data from "../tag-versions"; + +const tagVersions = data.map(([version, helpTag]) => ({version, helpTag})); +const input = document.getElementById("input"), + results = document.getElementById("results"); + +function render() { + results.innerHTML = fuzzysort.go(input.value, tagVersions, { + key: 'helpTag', + limit: 50, + }) + .map(result => `${fuzzysort.highlight(result)}${result.obj.version}`) + .join(""); +} +render(); +input.addEventListener("input", render); diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..dfb07f4 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,23 @@ +const path = require('path'); + +module.exports = { + entry: './src/index.js', + output: { + filename: 'bundle.js', + path: path.resolve(__dirname, 'dist'), + }, + devServer: { + contentBase: './dist', + }, + module: { + rules: [ + { + test: path.resolve(__dirname, 'tag-versions'), + loader: 'csv-loader', + options: { + delimiter: '\t', newline: '\n', + } + }, + ], + }, +}; -- cgit v1.2.3