Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
b26a4b4
Add gh-publish workflow
koppor May 13, 2025
627d6df
Make files available
koppor May 13, 2025
c13d940
Fix path
koppor May 13, 2025
9aae2b3
getting dev up-to-date
iloveskittles82 May 13, 2025
2fee310
# Added Bootstrap Navbar with Mock-Buttons
iloveskittles82 May 13, 2025
43c6122
Code cleanup and comments.
iloveskittles82 May 13, 2025
5937f6e
added tooltips for the buttons
iloveskittles82 May 20, 2025
945fc3d
added save and open buttons to the right of "JabMap" (on the left han…
iloveskittles82 May 20, 2025
709a57f
added save and open buttons to the right of "JabMap" (on the left han…
iloveskittles82 May 20, 2025
bde9067
removed fixed size of the midnmap container
iloveskittles82 May 20, 2025
dbe71cb
Local installation of dependencies/packages (#3)
iloveskittles82 May 27, 2025
c1bcf6c
tidy work
iloveskittles82 May 27, 2025
b03a1d5
Merge remote-tracking branch 'origin/dev' into Navbar
iloveskittles82 May 27, 2025
b57f53a
fixed navbar alignment
iloveskittles82 May 27, 2025
2850e25
Merge pull request #2 from JabRef/Navbar
iloveskittles82 May 27, 2025
a39546c
Refine check.yml (#4)
koppor May 27, 2025
029e2d2
Update NodeJS from 20 to 22
koppor May 27, 2025
79fce85
Create vite.config.js (#5)
koppor May 27, 2025
04c78a4
moved "save" and "load" buttons out of dropdown and next to "Jabmap",…
iloveskittles82 May 27, 2025
d71dde2
Merge remote-tracking branch 'origin/dev' into dev
iloveskittles82 May 27, 2025
7e830bc
Merge remote-tracking branch 'origin/main' into dev
iloveskittles82 May 28, 2025
05b7f7a
added html ids to buttons, added clickhandlers for sibling and child-…
iloveskittles82 May 30, 2025
adf4b6f
added empty click handlers for all the buttons
iloveskittles82 May 30, 2025
364b046
Merge pull request #9 from JabRef/gui-integration to add button handlers
iloveskittles82 May 30, 2025
9128a65
Created an ActionStack class to handle the undo/redo functionality an…
Robert35-dll May 31, 2025
8071952
Saving and loading maps (#7)
Robert35-dll May 31, 2025
0cd98e1
Update README.md
iloveskittles82 Jun 1, 2025
c8885d4
Comments and README polishing
Robert35-dll Jun 1, 2025
7f60f63
change POST to PUT
iloveskittles82 Jun 1, 2025
3eb67ba
Merge remote-tracking branch 'origin/dev' into dev
iloveskittles82 Jun 3, 2025
2bac855
Icons for nodes (#14)
iloveskittles82 Jun 17, 2025
82b316d
closed #10 by always selecting the first option
iloveskittles82 Jun 17, 2025
82c8eba
Get bibEntry data (#17)
iloveskittles82 Jun 21, 2025
ef0807a
BibEntry nodes (#16)
iloveskittles82 Jun 22, 2025
34b8486
PDF Nodes (#19)
iloveskittles82 Jul 8, 2025
f37d2b6
Electron integration (#20)
Robert35-dll Jul 8, 2025
38e8f63
Finishing sprint 3 (#34) with cleanup
iloveskittles82 Jul 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm ci
- run: npm run build
- name: Deploy to GH pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: .
publish_dir: dist/
force_orphan: true
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
src/jsmind/src/package-lock.json

# Logs
logs
*.log
Expand Down Expand Up @@ -104,6 +106,11 @@ dist
.temp
.cache

# Build output
dist/
.vite/
electron-dist/

# vitepress build output
**/.vitepress/dist

Expand Down Expand Up @@ -144,3 +151,6 @@ dist
/.idea/modules.xml
/.idea/vcs.xml
/JabMap/.idea/

# wrapper tool for trying out jabmap
/gg.cmd
116 changes: 111 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,114 @@
# JabMap
next-generation scientific mind mapping.

## 📸 screenshots
<img width="842" alt="image" src="https://github.com/user-attachments/assets/43673f8e-3421-4a79-b539-e3b2c5114983" />
Next-Generation scientific mind mapping.

## 💾 installation
...

## 📸 Screenshots

<img width="1429" alt="JabMap-Example" src="https://github.com/user-attachments/assets/4a175c10-a0eb-438f-b5f6-1dcfb4e2520c" />


## ⌨️ Shortcuts

You can find a list of shortcuts at [shortcuts.md](shortcuts.md).

## 🌟 Try It Out!

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.

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

### Running it locally

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).
A little terminal magic is required, but don't worry, we have the commands all laid out for you!

#### JabRef:

1. Go to your git-repositories folder and start a new terminal session
2. `git clone --recurse-submodules https://github.com/JabRef/jabref.git`
3. `cd jabref`
4. `git checkout jabmap`
5. Enable nice wrapper: `curl -L ggcmd.io > gg.cmd`
6. `sh ./gg.cmd just run-pr 13519`
7. Wait for JabRef to come up
8. File > Preferences > Check "HTTP Server"

#### JabMap:

1. Go to your git-repositories folder and start a new terminal session
2. Clone it: `git clone git@github.com:JabRef/jabmap.git`
3. `cd jabmap`
4. Fix branch: `git checkout jabmap`
5. Enable nice wrapper: `curl -L ggcmd.io > gg.cmd`
6. Install dependencies: `sh gg.cmd npm install`
7. Build: `sh ./gg.cmd npm run build`
8. Run: `sh ./gg.cmd npm run preview`
9. Now one can open http://localhost:4173/ and open a library with the corresponding map.


## 🤖 Getting the server running

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:

### using gg.cmd

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:

```
sh ./gg.cmd jbang .jbang/JabSrvLauncher.java
```

### Starting it from an IDE

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)).
2. Afterwards, open it in editor of your choice (_IDEA works well for this_) and locate the `jabsrv/src/test/rest-api.http` file.
3. Follow the steps described at the top of the file to start the server.

_Alternatively_ you can do the following:
1. Open `ServerCLI` file located at `./jabsrv-cli/src/main/java/org.jabref.http.server.cli`
2. Execute its `main()` method

More about starting the server in [JabRef's server documentation](https://devdocs.jabref.org/code-howtos/http-server.html)


## 💾 Install by building the application

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.
This section is more targeted towards
Currently, there is no production build available for download so you have to build it yourself :3

### Basic Setup
Firstly ensure you have `nvm` (_Node version manager_) and `Node.js` installed:

1. Open terminal (_you may have to run it with administrator permissions_)
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)):
- `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash`

or

- `wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash`
3. Install `npm` and `node.js` by running `nvm install v24.0.1` (or newer)
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_)

After you ensured the basic setup is complete, clone this repository onto your machine and open a terminal session at the project root.

### Building
Now you should be able to run the following commands:
1. `npm install` - this will install / update all necessary packages in a `./node_modules` directory.
2. `npm run bundle` - this will bundle the project into the `./electron-dist` directory.

If bundling fails with `ERROR: Cannot create symbolic link`, you have to do the following:

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).
4. Extract downloaded archive into `C:\Users\<YourUserName>\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.6.0\`
5. Retry running the `npm run bundle` command

_More about this workaround in [this issue](https://github.com/electron-userland/electron-builder/issues/8149)_.

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.

### Starting
After a successful build you can finally start the app located at `./electron-dist/win-unpacked/JabMap.exe`.

_Optionally you can install it by opening_ `./electron-dist/JabMap Setup 1.0.0.exe`
Loading