|
1 | 1 | # JabMap |
| 2 | + |
2 | 3 | Next-Generation scientific mind mapping. |
3 | 4 |
|
| 5 | + |
4 | 6 | ## 📸 Screenshots |
5 | | - <img width="1548" alt="JabMap mainview example" src="https://github.com/user-attachments/assets/69f5de97-3b2d-4ed7-b8f8-050a1559f93b" /> |
6 | | - <img width="1549" alt="JabMap opening a mindmap example" src="https://github.com/user-attachments/assets/23aa56d0-4432-4e5f-957b-8797d36a22fd" /> |
| 7 | + |
| 8 | +<img width="1429" alt="JabMap-Example" src="https://github.com/user-attachments/assets/4a175c10-a0eb-438f-b5f6-1dcfb4e2520c" /> |
| 9 | + |
| 10 | + |
| 11 | +## ⌨️ Shortcuts |
| 12 | + |
| 13 | +You can find a list of shortcuts at [shortcuts.md](shortcuts.md). |
7 | 14 |
|
8 | 15 | ## 🌟 Try It Out! |
9 | | -The current state of the application is hosted on [github pages](https://jabref.github.io/jabmap/) for you to try out. Note that saving and loading mind maps does not work when running the app like this. This is because both require communication with the [JabRef's HTTP server](#getting-the-server) which will be restricted by your browser for security reasons. |
10 | 16 |
|
11 | | -## 💾 Installation |
12 | | -### Building the app |
13 | | -Currently, there is no production build available for download so you have to build it yourself. |
14 | | -To do this, you need to have `npm` and `node.js` installed. Installing them with [nvm](https://github.com/nvm-sh/nvm) is the recommended way. |
| 17 | +There are a couple of ways to try out JabMap. The fastest way to just get a grasp of it is on [github pages](https://jabref.github.io/jabmap/). Note that this will merely allow you to create some nodes, edit and tag them. Saving, Loading and JabRef-related features like BibTeX-Nodes and importing attached PDF-files as nodes won't work unless you are running our version of JabRef's HTTP-Server (see [below](##-🤖-getting-the-server-running) for setup) since the mentioned features rely on it. |
| 18 | + |
| 19 | +>Note: It's still possible your browser blocks access to the server due to HTTP/HTTPS issues, for the best experience follow the steps below on how to try JabMap running it locally. |
| 20 | +
|
| 21 | +### Running it locally |
| 22 | + |
| 23 | +The following commands get the code in place and start JabRef and JabMap with the help of a handy wrapper tool called [gg.cmd](https://github.com/eirikb/gg). |
| 24 | +A little terminal magic is required, but don't worry, we have the commands all laid out for you! |
| 25 | + |
| 26 | +#### JabRef: |
| 27 | + |
| 28 | +1. Go to your git-repositories folder and start a new terminal session |
| 29 | +2. `git clone --recurse-submodules https://github.com/JabRef/jabref.git` |
| 30 | +3. `cd jabref` |
| 31 | +4. `git checkout jabmap` |
| 32 | +5. Enable nice wrapper: `curl -L ggcmd.io > gg.cmd` |
| 33 | +6. `sh ./gg.cmd just run-pr 13519` |
| 34 | +7. Wait for JabRef to come up |
| 35 | +8. File > Preferences > Check "HTTP Server" |
| 36 | + |
| 37 | +#### JabMap: |
| 38 | + |
| 39 | +1. Go to your git-repositories folder and start a new terminal session |
| 40 | +2. Clone it: `git clone git@github.com:JabRef/jabmap.git` |
| 41 | +3. `cd jabmap` |
| 42 | +4. Fix branch: `git checkout jabmap` |
| 43 | +5. Enable nice wrapper: `curl -L ggcmd.io > gg.cmd` |
| 44 | +6. Install dependencies: `sh gg.cmd npm install` |
| 45 | +7. Build: `sh ./gg.cmd npm run build` |
| 46 | +8. Run: `sh ./gg.cmd npm run preview` |
| 47 | +9. Now one can open http://localhost:4173/ and open a library with the corresponding map. |
| 48 | + |
| 49 | + |
| 50 | +## 🤖 Getting the server running |
| 51 | + |
| 52 | +As mentioned above, several features are handled by JabRef's HTTP server. Currently you have to start it manually. Luckily, there are multiple ways to do that: |
| 53 | + |
| 54 | +### using gg.cmd |
| 55 | + |
| 56 | +If you followed the steps (**running-it-locally**) above, instead of steps 6. - 9. you can simply do the following to start the server without JabRef's GUI: |
| 57 | + |
| 58 | +``` |
| 59 | +sh ./gg.cmd jbang .jbang/JabSrvLauncher.java |
| 60 | +``` |
| 61 | + |
| 62 | +### Starting it from an IDE |
| 63 | + |
| 64 | +1. If you haven't already, clone our [JabRef's fork repository](https://github.com/iloveskittles82/jabref) (_Note: It is recommended to complete this step of_ [_JabRef's setup guide_](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.html)). |
| 65 | +2. Afterwards, open it in editor of your choice (_IDEA works well for this_) and locate the `jabsrv/src/test/rest-api.http` file. |
| 66 | +3. Follow the steps described at the top of the file to start the server. |
| 67 | + |
| 68 | +_Alternatively_ you can do the following: |
| 69 | +1. Open `ServerCLI` file located at `./jabsrv-cli/src/main/java/org.jabref.http.server.cli` |
| 70 | +2. Execute its `main()` method |
| 71 | + |
| 72 | +More about starting the server in [JabRef's server documentation](https://devdocs.jabref.org/code-howtos/http-server.html) |
| 73 | + |
| 74 | + |
| 75 | +## 💾 Install by building the application |
| 76 | + |
| 77 | +Now that you've tried it, here is how to build and install it. We hope to provide a downloadable installer in the future, but for now you have to build the app yourself. |
| 78 | +This section is more targeted towards |
| 79 | +Currently, there is no production build available for download so you have to build it yourself :3 |
| 80 | + |
| 81 | +### Basic Setup |
| 82 | +Firstly ensure you have `nvm` (_Node version manager_) and `Node.js` installed: |
15 | 83 |
|
16 | | -Installation Guide for Windows and Linux / OS X is available [here](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). |
| 84 | +1. Open terminal (_you may have to run it with administrator permissions_) |
| 85 | +2. Install `nvm` or update your version by running one of following install scripts in your terminal (more information about these in [nvm documentation](https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script)): |
| 86 | + - `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash` |
| 87 | + |
| 88 | + or |
17 | 89 |
|
18 | | -Then, clone this repository onto your machine and open a terminal session at the project root. |
| 90 | + - `wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash` |
| 91 | +3. Install `npm` and `node.js` by running `nvm install v24.0.1` (or newer) |
| 92 | +4. At the end, ensure installation was successful by running `npm -v` and `node -v` (_you may need to reboot your system before this step_) |
19 | 93 |
|
20 | | -Then, run the following commands: |
21 | | -1. ```npm install``` - this will install all necessary packages in a `./node_modules` directory. You may run this command to update existing packages. |
22 | | -2. ```npm run build``` - this will bundle the app and dependencies into a `./dist` directory. |
23 | | -3. ```npm run preview``` - this will run the preview of the build-output in your browser (_click on the link in the terminal_). |
| 94 | +After you ensured the basic setup is complete, clone this repository onto your machine and open a terminal session at the project root. |
24 | 95 |
|
25 | | -Alternatively, you can simply open the `index.html` file (_using IDEA_) in the `./dist` directory after building and choose a browser (_in the top right corner_) to run the application. |
| 96 | +### Building |
| 97 | +Now you should be able to run the following commands: |
| 98 | +1. `npm install` - this will install / update all necessary packages in a `./node_modules` directory. |
| 99 | +2. `npm run bundle` - this will bundle the project into the `./electron-dist` directory. |
26 | 100 |
|
27 | | -### Getting the server |
28 | | -As mentioned above, saving and loading of mind maps are handled by JabRef's HTTP server. Currently you have to start it manually: |
| 101 | +If bundling fails with `ERROR: Cannot create symbolic link`, you have to do the following: |
29 | 102 |
|
30 | | -First clone our [JabRef's fork repository](https://github.com/iloveskittles82/jabref) (_Note: It is recommended to complete this step of_ [_JabRef's setup guide_](https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace/intellij-12-build.html)). |
| 103 | +3. Download the `winCodeSign` package using [this link](https://github.com/electron-userland/electron-builder-binaries/releases/download/winCodeSign-2.6.0/winCodeSign-2.6.0.7z). |
| 104 | +4. Extract downloaded archive into `C:\Users\<YourUserName>\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.6.0\` |
| 105 | +5. Retry running the `npm run bundle` command |
31 | 106 |
|
32 | | -After you cloned the repository, open it in editor of your choice (_IDEA works well for this_) and locate the `jabsrv/src/test/rest-api.http` file. |
| 107 | +_More about this workaround in [this issue](https://github.com/electron-userland/electron-builder/issues/8149)_. |
33 | 108 |
|
34 | | -Follow the steps described at the top of the file to start the server. |
| 109 | +On Linux and Mac, there is a bug with npm and optional dependencies (See [this issue](https://github.com/npm/cli/issues/4828). Should you encounter this bug after running `npm install`, remove the `package-lock.json` file and `node-modules` directory and run `npm i`. Then, simply continue with step 2. |
35 | 110 |
|
36 | | -_Alternatively_ you can start it with the `main()` method of `org.jabref.http.server.cli.ServerCli` package located at `./jabsrv-cli.src.main.java`. |
| 111 | +### Starting |
| 112 | +After a successful build you can finally start the app located at `./electron-dist/win-unpacked/JabMap.exe`. |
37 | 113 |
|
38 | | -More about starting the server in [JabRef's server documentation](https://devdocs.jabref.org/code-howtos/http-server.html) |
| 114 | +_Optionally you can install it by opening_ `./electron-dist/JabMap Setup 1.0.0.exe` |
0 commit comments