{"id":13442315,"url":"https://github.com/mogenslund/liquid","last_synced_at":"2025-05-15T14:05:43.946Z","repository":{"id":45596964,"uuid":"72887238","full_name":"mogenslund/liquid","owner":"mogenslund","description":"Clojure Text Editor, for editing clojure code and markdown. Written entirely in Clojure with inspiration from Emacs and Vim.","archived":false,"fork":false,"pushed_at":"2022-03-11T19:04:25.000Z","size":1389,"stargazers_count":966,"open_issues_count":9,"forks_count":42,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-04-07T18:09:39.083Z","etag":null,"topics":["clojure","extensibility","ide","liquid","text-editor"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mogenslund.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":"user?u=21499025","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2016-11-04T21:36:29.000Z","updated_at":"2025-03-24T07:28:48.000Z","dependencies_parsed_at":"2022-08-24T11:10:21.673Z","dependency_job_id":null,"html_url":"https://github.com/mogenslund/liquid","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenslund%2Fliquid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenslund%2Fliquid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenslund%2Fliquid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mogenslund%2Fliquid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mogenslund","download_url":"https://codeload.github.com/mogenslund/liquid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254355334,"owners_count":22057354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojure","extensibility","ide","liquid","text-editor"],"created_at":"2024-07-31T03:01:44.243Z","updated_at":"2025-05-15T14:05:38.936Z","avatar_url":"https://github.com/mogenslund.png","language":"Clojure","funding_links":["https://patreon.com/user?u=21499025"],"categories":["Clojure","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Salza \u0026lambda;iquid text editor\n\n\u003cimg align=\"left\" src=\"logo.png\" width=\"281\" height=\"360\"\u003e\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n* \u003cb\u003eFluidable\u003c/b\u003e  -  Embed your code into \u0026lambda;iquid or \u0026lambda;iquid into your code   \n* \u003cb\u003eDependency free\u003c/b\u003e  -  Everything is pure Clojure\n* \u003cb\u003eTranslatable\u003c/b\u003e  -  Tiny core, simple model, no tricks\n* \u003cb\u003eComfortable keybindings\u003c/b\u003e  -  Most used commands are close at hand\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n## Who is this for\n\u0026lambda;iquid is absolutely not for everyone! It is for you if\n\n * You get a kick out of doing everything in Clojure\n * You love to tinker with your editor\n * Terminals are the best\n * You love distraction-free power\n * You love modal editing, like in vim\n\n## What can you do with it\nThere is no made up language or syntax to extend \u0026lambda;iquid.\n\n * Since \u0026lambda;iquid is pure Clojure it can be used to extend any Clojure or Java program, so the editor lives inside the program.. like magic.\n * Turn it around, you can use any Clojure and any Java library to extend \u0026lambda;iquid.. if the library can do it then \u0026lambda;iquid can do it. Configure keyboard shortcuts and commands to tame the libraries. Use code to integrate.\n\n# Video\n[Authors Liquid Setup](https://www.youtube.com/watch?v=-MC0P4rj3e8)\n\n## Community\nFor discussions, help, tips and support, use\n\n**[#liquid](https://clojurians.slack.com/messages/liquid/)** channel in [Clojure Slack](http://clojurians.net/)\n\n## Installation\n\n### Download and execution\n\n#### Quick start\n\n    clojure -Sdeps '{:deps {mogenslund/liquid {:mvn/version \"2.1.2\"}}}' -m liq.core\n\nOr download jar [liq.jar](https://salza.dk/liq.jar) and execute\n\n    java -jar liq.jar\n\n#### Disappearing cursor\nIf the cursor seems to disappear when moving fast, try executing this code when loading liquid (e.g in the .liq file):\n\n    (swap! liq.tty-output/settings assoc :liq.tty-output/cursor-draw-hack true)\n\n(It is not enabled by default, because it then sometimes cause other display issues.)\n  \n#### Starter kit\nA place to start is [Liquid Starter Kit](https://github.com/mogenslund/liquid-starter-kit)\n\nIt sort of corresponds to a sample `.emacs` file. Some code you can extend to create your own version of the editor.\n\n#### Salza \u0026lambda;iquid text editor is designed with clojure developers in mind\nThe editor is written in pure Clojure. That is, there are no other dependencies, not even curses or lanterna!\n\nI have been using Emacs for many years. I have tweaked it a lot and implemented modes, to simulate the Vim way of switching between insert mode and normal mode for navigation. I like being able to use the whole keyboard for navigation. As you will see in the video below, I am very inspired by Emacs and Vim, but I have chosen not to try to copy or re-implement Emacs or Vim. I have only stolen the features that I need or like. I hope others will just create plugins or extensions to make the editor support other features that they like.\n\n## Use cases\n * \u003cb\u003eTight integration\u003c/b\u003e with Clojure code. It should be easy to have the same code executed from within the editor as well as outside. Using a real language for extensions provides a great advantage compared to a \"home made\" extension language, that only fits the specific editor.  \nExample: As a QA Engineer I do test automation using Selenium WebDriver. I have included the Selenium jar into my local environment, so now I can execute tests, parts of tests or snippets from within \u0026lambda;iquid.  \nAll other tools that I create in Clojure, which are useful as is, are easy to make accessible from within the editor as well.\n\n * \u003cb\u003eEmbedding\u003c/b\u003e the editor into your your application. Include the \u0026lambda;iquid to your project and use it as part of your program or for debugging and patching, just like you already do with the REPL, but with some advantages: It is easier to open a file with code and execute parts of it, or jump between snippets, do modifications, and execute again.  \nExample: I have a file with snippets like: `(patch \"myserver\")`, `(status \"myserver\")` and `(run-test \"name-of-test\")`. I just modify \"myserver\", if needed, and press \"c p p\" to execute the command.\n\n## Dependencies\nRight now the only dependency is Clojure itself. I would like to keep it that way, as for core functionality. When starting \u0026lambda;iquid, any resources can just be added to the classpath, and the code will be available from inside \u0026lambda;iquid. So it is not a limitation to \u0026lambda;iquid, it just means that anything requiring other dependencies should be implemented as plugins and be loaded together with \u0026lambda;iquid. Extensions can be loaded through a .liq file in the home folder.\n\n## Inspiration from Emacs and Vi\nFrom Emacs I have been inspired by extensibility. Clojure is also the language for writing extensions. That was in fact a primary motivation for creating the editor. Actually it is possible to include the editor into a project and make the editor part of the program. This thought is very similar to the REPL (read-eval-print-loop), but more like an edit-eval-render-loop.\n\nS-expressions in clojure can be evaluated with \"c p p\", while the whole file is evaluated with \"c p f\".\n\n## License\nCopyright \u0026copy; 2020 Mogens Br\u0026oslash;dsgaard Lund\n\nDistributed under the Eclipse Public License either version 1.0 or any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogenslund%2Fliquid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmogenslund%2Fliquid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmogenslund%2Fliquid/lists"}