From 8dd3ac66a308a5d4979f5ab6461b90dd9374ce15 Mon Sep 17 00:00:00 2001 From: Michael Kohl Date: Tue, 16 Mar 2021 21:18:29 +0700 Subject: [PATCH] Update README --- README.md | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/README.md b/README.md index 1947a80..dac2da1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,83 @@ # gemini.nvim +This started out with a simple question: can one take the [Gemini demo client written in Lua](https://tildegit.org/solderpunk/gemini-demo-2) and wrap it up as a Neovim plugin? A quick afternoon hacking session suggests that the answer is yes. I'll see how far I can take this. + +Note: this is the result of an afternoon of experimenting, borrowing code from the demo client and [sloum/gemini-vim-syntax](https://tildegit.org/sloum/gemini-vim-syntax) and throwing in some Vimscript. + +## Dependencies + +This plugin requires the [LuaSocket](http://w3.impa.br/~diego/software/luasocket/), [LuaSec](https://github.com/brunoos/luasec/) and [Penlight](https://github.com/lunarmodules/Penlight) libraries. So far I used the following [packer.nvim](https://github.com/wbthomason/packer.nvim) config for development: + +```lua +use { '~/Developer/gemini.nvim' } +use_rocks {'luasocket'} +use_rocks {'luasec', env = {OPENSSL_DIR = "/usr/local/opt/openssl"}} +use_rocks {'penlight'} +``` + +These should probably use the proper dependency syntax, but I just wanted to get this to work. + +## Contributing + +Bug reports, issues, and pull requests are welcome at https://tildegit.org/citizen428/gemini.nvim. + +### Todo + +* [X] Add ability to open Gemini page in Neovim +* [X] Add gemtext highlighting to the Gemini buffer +* [ ] Structure code more properly +* [ ] Implement handling of other status codes than 20 +* [ ] Implement navigation features (follow link, back, forward) +* [ ] Implement bookmarks +* [ ] Replace demo Lua client code with own code +* [ ] Optionally integrate with [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim), e.g. bookmark and history pickers. + +## License + +* Original code: + + MIT License Copyright (c) 2021 Michael Kohl + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is furnished + to do so, subject to the following conditions: + + The above copyright notice and this permission notice (including the next + paragraph) shall be included in all copies or substantial portions of the + Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS + OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +* Gemini Lua client code: + + Copyright (c) 2019 . All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +