Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,5 @@
],
"java.project.outputPath": "target/classes",
"java.format.settings.url": ".vscode/java-formatter.xml",
"java.configuration.updateBuildConfiguration": "interactive"
"java.configuration.updateBuildConfiguration": "disabled"
}
57 changes: 55 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,39 @@
</executions>
</plugin>

<!-- ── 3c. Bundle welcome project documentation resources ───────────── -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>copy-welcome-project</id>
<phase>process-resources</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/welcome-project</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/docs</directory>
<includes>
<include>user-guide-en.md</include>
<include>tips-and-tricks-en.md</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}/src/docs/illustrations</directory>
<targetPath>illustrations</targetPath>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

<!-- ── 4. Fat / uber JAR ────────────────────────────────────────────── -->
<!--
Équivalent de :
Expand Down Expand Up @@ -281,6 +314,7 @@
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<mainClass>${app.main.class}</mainClass>
<executable>java</executable>
<arguments>
<argument>${app.jvm.options}</argument>
Expand Down Expand Up @@ -498,7 +532,7 @@
<appVersion>${jpackage.app.version}</appVersion>
<vendor>${jpackage.vendor}</vendor>
<description>${jpackage.description}</description>
<copyright>Copyright 2024 ${jpackage.vendor}</copyright>
<copyright>Copyright 2026 ${jpackage.vendor}</copyright>

<!-- Input: the fat JAR (minus JavaFX) produced by shade -->
<input>${project.build.directory}/build</input>
Expand All @@ -513,7 +547,7 @@

<!-- JVM flags passed to the launched app -->
<javaOptions>
<javaOption>-Djava.net.preferIPv6Addresses=true</javaOption>
<!--javaOption>-Djava.net.preferIPv6Addresses=true</javaOption-->
<javaOption>-Xmx512m</javaOption>
</javaOptions>

Expand All @@ -535,15 +569,34 @@
<linuxMenuGroup>Utility</linuxMenuGroup>
<linuxAppCategory>Utility</linuxAppCategory>
<linuxPackageName>marknote</linuxPackageName>
<!--
Script post-install pour DEB : jpackage cherche dans resourceDir
un fichier nommé "template.postinst" pour remplacer son template
interne. Notre template conserve les placeholders jpackage
(DESKTOP_COMMANDS_INSTALL, etc.) et ajoute la copie des fichiers
de bienvenue.
-->
<resourceDir>${project.basedir}/src/packaging/linux-resources</resourceDir>

<!-- ── macOS-specific ──────────────────────────────── -->
<macPackageIdentifier>${jpackage.bundle.id}</macPackageIdentifier>
<macPackageName>${project.name}</macPackageName>
<!--
NOTE: jpackage ne supporte pas de script post-install pour le
type DMG. Le script post-install-mac.sh doit être distribué
séparément ou le type de package changé en PKG (qui supporte
les scripts via le resource-dir).
-->

<!-- ── Windows-specific ───────────────────────────── -->
<winDirChooser>${jpackage.win.dir.chooser}</winDirChooser>
<winMenu>${jpackage.win.menu}</winMenu>
<winShortcut>${jpackage.win.shortcut}</winShortcut>
<!--
NOTE: jpackage ne supporte pas de script post-install pour le
type EXE. Pour MSI, un script peut être intégré via le
resource-dir avec un fichier WiX customisé.
-->
</configuration>
</execution>
</executions>
Expand Down
2 changes: 2 additions & 0 deletions src/docs/packaging.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ Le script `build` fournit une action `package` qui génère une archive ZIP auto
- Un script de lancement adapté à l'OS (`MarkNote.sh` ou `MarkNote.bat`)
- Les icônes de l'application en plusieurs formats (`icons/`)
- Un **installeur spécifique à l'OS** (`install.sh` ou `install.bat`)
- Les ressources du projet **MarkNote Welcome** (guide + illustrations)

L'archive est nommée selon le pattern : `MarkNote-<version>-<os>.zip` (ex : `MarkNote-0.0.6-linux.zip`).

Expand Down Expand Up @@ -91,6 +92,7 @@ Après décompression du ZIP, le répertoire contient :
| `MarkNote.sh` ou `.bat` | Script de lancement |
| `icons/` | Icônes de l'application (SVG + PNG multi-tailles) |
| `install.sh` ou `install.bat`| Installeur spécifique à l'OS |
| `welcome-project/` | Ressources intégrées pour que l'installeur provisionne `~/Documents/MarkNote Welcome` |

---

Expand Down
31 changes: 31 additions & 0 deletions src/docs/tips-and-tricks-en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# MarkNote — Tips & Tricks

## Productivity

- Use `Ctrl+N` to create a new document quickly.
- Use `Ctrl+S` and `Ctrl+Shift+S` to save without leaving the keyboard.
- Use `Ctrl+F` (or the search box) to find notes and tags across your project.

## Project navigation

- Keep the **Project Explorer** open to create, rename, move, and organize notes.
- Click tags in the **Tag Cloud** to launch instant filtered searches.
- Use the **Visual Link Panel** to discover related notes through backlinks.

## Writing

- Use front matter (`title`, `tags`, `summary`, `author`, `date`) to structure your notes.
- Drag and drop files from the explorer into the editor to create links quickly.
- Keep an eye on the **Preview Panel** to validate formatting while writing.

## Panels and layout

- Detach any panel from the menu to focus on your editor workspace.
- Reattach panels when you need the full workspace again.
- Customize the theme from **Options** to improve readability in your environment.

## Git and AI

- Enable Git support to see file status indicators directly in the explorer.
- Open the LLM panel to summarize, compare, or explain notes from your project context.
- Tune LLM endpoint/model/timeout in **Options** before starting a long session.
58 changes: 58 additions & 0 deletions src/packaging/linux-resources/template.postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/bin/sh
# postinst script for APPLICATION_PACKAGE
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package

package_type=deb
LAUNCHER_AS_SERVICE_SCRIPTS

case "$1" in
configure)
DESKTOP_COMMANDS_INSTALL
LAUNCHER_AS_SERVICE_COMMANDS_INSTALL

# ── Copier les fichiers de bienvenue ──────────────────────────
INSTALL_DIR=/opt/marknote
JAR_FILE="$INSTALL_DIR/lib/MarkNote.jar"
# Copie dans le dossier Documents de tous les utilisateurs existants
for USER_HOME in /home/*/; do
TARGET_DIR="$USER_HOME/Documents/MarkNote Welcome"
if [ -f "$JAR_FILE" ]; then
mkdir -p "$TARGET_DIR"
unzip -q -o "$JAR_FILE" "welcome-project/*" -d /tmp/marknote-welcome-extract 2>/dev/null || true
if [ -d /tmp/marknote-welcome-extract/welcome-project ]; then
cp -r /tmp/marknote-welcome-extract/welcome-project/. "$TARGET_DIR/"
rm -rf /tmp/marknote-welcome-extract
fi
# Donner les droits au propriétaire du dossier home
USER_NAME=$(basename "$USER_HOME")
chown -R "$USER_NAME:$USER_NAME" "$TARGET_DIR" 2>/dev/null || true
fi
done
# ─────────────────────────────────────────────────────────────
;;

abort-upgrade|abort-remove|abort-deconfigure)
;;

*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac

exit 0
35 changes: 35 additions & 0 deletions src/packaging/post-install-mac.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

# Script post-installation pour macOS
# Copie les fichiers de bienvenue dans le dossier Documents de l'utilisateur

set -e

# Chemin vers le JAR installé (à ajuster selon l'emplacement d'installation)
INSTALL_DIR="/Applications/MarkNote.app/Contents/Java"
JAR_FILE="$INSTALL_DIR/MarkNote.jar"

# Dossier de destination pour les fichiers de bienvenue
TARGET_DIR="$HOME/Documents/MarkNote Welcome"

# Créer le dossier de destination s'il n'existe pas
mkdir -p "$TARGET_DIR"

# Extraire les fichiers de bienvenue du JAR
if [ -f "$JAR_FILE" ]; then
echo "Extraction des fichiers de bienvenue..."
unzip -q -o "$JAR_FILE" "welcome-project/*" -d "$TARGET_DIR"

# Supprimer le dossier welcome-project temporaire
if [ -d "$TARGET_DIR/welcome-project" ]; then
mv "$TARGET_DIR/welcome-project"/* "$TARGET_DIR/"
rmdir "$TARGET_DIR/welcome-project"
fi

echo "Fichiers de bienvenue installés dans $TARGET_DIR"
else
echo "Erreur: JAR non trouvé à $JAR_FILE" >&2
exit 1
fi

exit 0
40 changes: 40 additions & 0 deletions src/packaging/post-install.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
@echo off

:: Script post-installation pour Windows
:: Copie les fichiers de bienvenue dans le dossier Documents de l'utilisateur

setlocal enabledelayedexpansion

:: Chemin vers le JAR installé (à ajuster selon l'emplacement d'installation)
set "INSTALL_DIR=C:\Program Files\MarkNote"
set "JAR_FILE=%INSTALL_DIR%\lib\MarkNote.jar"

:: Dossier de destination pour les fichiers de bienvenue
set "TARGET_DIR=%USERPROFILE%\Documents\MarkNote Welcome"

:: Créer le dossier de destination s'il n'existe pas
if not exist "!TARGET_DIR!" (
mkdir "!TARGET_DIR!"
)

:: Vérifier si le JAR existe
if exist "!JAR_FILE!" (
echo Extraction des fichiers de bienvenue...

:: Extraire les fichiers de bienvenue du JAR
jar -xf "!JAR_FILE!" "welcome-project/" -C "!TARGET_DIR!"

:: Déplacer les fichiers du sous-dossier welcome-project
if exist "!TARGET_DIR!\welcome-project" (
move /Y "!TARGET_DIR!\welcome-project\*" "!TARGET_DIR!\" >nul
rmdir "!TARGET_DIR!\welcome-project"
)

echo Fichiers de bienvenue installés dans !TARGET_DIR!
) else (
echo Erreur: JAR non trouvé à !JAR_FILE!
exit /b 1
)

endlocal
exit /b 0
35 changes: 35 additions & 0 deletions src/packaging/post-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

# Script post-installation pour copier les fichiers de bienvenue
# Ce script est exécuté après l'installation du package Debian

set -e

# Chemin vers le JAR installé (à ajuster selon l'emplacement d'installation)
INSTALL_DIR=/opt/MarkNote
JAR_FILE=$INSTALL_DIR/lib/MarkNote.jar

# Dossier de destination pour les fichiers de bienvenue
TARGET_DIR=$HOME/Documents/MarkNote Welcome

# Créer le dossier de destination s'il n'existe pas
mkdir -p "$TARGET_DIR"

# Extraire les fichiers de bienvenue du JAR
if [ -f "$JAR_FILE" ]; then
echo "Extraction des fichiers de bienvenue..."
unzip -q -o "$JAR_FILE" "welcome-project/*" -d "$TARGET_DIR"

# Supprimer le dossier welcome-project temporaire
if [ -d "$TARGET_DIR/welcome-project" ]; then
mv "$TARGET_DIR/welcome-project"/* "$TARGET_DIR/"
rmdir "$TARGET_DIR/welcome-project"
fi

echo "Fichiers de bienvenue installés dans $TARGET_DIR"
else
echo "Erreur: JAR non trouvé à $JAR_FILE" >&2
exit 1
fi

exit 0
Loading