Skip to content

Commit bab3937

Browse files
Merge remote-tracking branch 'origin/dev'
# Conflicts: # .gitignore # README.md # http/HTTPClient.js # index.html # package-lock.json # package.json # src/ActionStack.js # src/ResourceManager.js # src/jsmind/src/jsmind.js # src/jsmind/src/jsmind.view_provider.js # src/main.js
2 parents 48aac69 + 38e8f63 commit bab3937

20 files changed

+6007
-712
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ dist
109109
# Build output
110110
dist/
111111
.vite/
112+
electron-dist/
112113

113114
# vitepress build output
114115
**/.vitepress/dist
@@ -150,3 +151,6 @@ dist/
150151
/.idea/modules.xml
151152
/.idea/vcs.xml
152153
/JabMap/.idea/
154+
155+
# wrapper tool for trying out jabmap
156+
/gg.cmd

README.md

Lines changed: 97 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,114 @@
11
# JabMap
2+
23
Next-Generation scientific mind mapping.
34

5+
46
## 📸 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).
714

815
## 🌟 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.
1016

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:
1583

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
1789

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_)
1993

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.
2495

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.
26100

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:
29102

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
31106

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)_.
33108

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.
35110

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`.
37113

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

Comments
 (0)