| 93 | 93 | |
| 94 | 94 | dependencies { |
| 95 | def v_junit = '5.13.4' | |
| 95 | def v_junit = '5.14.1' | |
| 96 | 96 | def v_platform = '1.13.4' |
| 97 | 97 | def v_flexmark = '0.64.8' |
| 98 | def v_jackson = '2.19.2' | |
| 99 | def v_echosvg = '2.2.1' | |
| 98 | def v_jackson = '2.19.4' | |
| 99 | def v_echosvg = '2.3' | |
| 100 | 100 | def v_picocli = '4.7.7' |
| 101 | 101 | |
| 102 | 102 | // JavaFX |
| 103 | implementation 'org.controlsfx:controlsfx:11.2.2' | |
| 104 | implementation 'org.fxmisc.richtext:richtextfx:0.11.6' | |
| 103 | implementation 'org.controlsfx:controlsfx:11.2.3' | |
| 104 | implementation 'org.fxmisc.richtext:richtextfx:0.11.7' | |
| 105 | 105 | implementation 'org.fxmisc.flowless:flowless:0.7.4' |
| 106 | 106 | implementation 'org.fxmisc.wellbehaved:wellbehavedfx:0.3.3' |
| 107 | implementation 'org.openjfx:javafx-media:26-ea+13' | |
| 107 | implementation 'org.openjfx:javafx-media:26-ea+21' | |
| 108 | 108 | implementation 'com.dlsc.preferencesfx:preferencesfx-core:11.17.0' |
| 109 | 109 | implementation 'com.panemu:tiwulfx-dock:0.5' |
| ... | ||
| 177 | 177 | // Required to satisfy SpotBugs missing class warnings. |
| 178 | 178 | implementation 'org.jspecify:jspecify:1.0.0' |
| 179 | implementation 'com.google.errorprone:error_prone_annotations:2.41.0' | |
| 179 | implementation 'com.google.errorprone:error_prone_annotations:2.45.0' | |
| 180 | 180 | |
| 181 | 181 | testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${v_junit}" |
| 5 | 5 | # Creates a container image that can run ConTeXt to typeset documents. |
| 6 | 6 | # |
| 7 | # Hereby released into the public domain. | |
| 8 | # | |
| 7 | 9 | # ######################################################################## |
| 8 | 10 | FROM alpine:latest |
| 13 | 13 | The wizard will download and install all necessary components. |
| 14 | 14 | |
| 15 | {{app.title}} binaries are self-installing, except for the Java archive | |
| 15 | {{app.title}} binaries are self-extracting, except for the Java archive | |
| 16 | 16 | (`.jar`) version. Installing the Java archive version is useful for platforms |
| 17 | 17 | that don't have prebult {{app.title}} binaries. The Java archive version is |
| ... | ||
| 45 | 45 | |
| 46 | 46 | [Download](https://keenwrite.com/) the Java archive version of {{app.title}}. |
| 47 | ||
| 48 | On Windows: | |
| 49 | ||
| 50 | 1. Create `C:\Users\%USERNAME%\keenwrite`. | |
| 51 | 1. Save `{{install.java}}` into the new directory. | |
| 52 | 47 | |
| 53 | 48 | ### JRE with JavaFX |
| ... | ||
| 90 | 85 | |
| 91 | 86 | 1. Open a terminal. |
| 92 | 1. Download the launcher script into `{{install.path.unix.bin}}`. | |
| 93 | ||
| 94 | ``` bash | |
| 95 | wget --quiet --content-on-error \ | |
| 96 | "{{install.url.unix.launcher}}" | |
| 97 | ``` | |
| 98 | ||
| 87 | 1. Download the [launcher script](https://repo.autonoma.ca/?action=raw&repo=keenwrite.git&hash=225340adcfad6aad060a7ddc33b8b36f82472379&name=keenwrite.sh) into `{{install.path.unix.bin}}`. | |
| 99 | 88 | 1. Make the script executable. |
| 100 | 89 | |
| ... | ||
| 113 | 102 | On Windows-based systems, install the launch script as follows: |
| 114 | 103 | |
| 115 | 1. Browse to the [launcher script]({{install.url.windows.script}}). | |
| 116 | 1. Right-click anywhere on the page. | |
| 117 | 1. Click **Save Page As** (or similar). | |
| 118 | 1. Browse to `C:\Users\%USERNAME%\keenwrite`. | |
| 119 | 1. Confirm saving the file. | |
| 104 | 1. Create a directory, such as `C:\Program Files\{{app.title}}`. | |
| 105 | 1. Download the [launcher script](https://repo.autonoma.ca/?action=blob&repo=keenwrite.git&hash=aa29c471c2903f047ef9139b9370282528406fae&name=keenwrite.bat&theme=dark). | |
| 120 | 106 | 1. Rename the file from `.bat.txt` to `.bat`, if necessary. |
| 107 | 1. Download or move the `.bat` file into `C:\Program Files\{{app.title}}`. | |
| 108 | 1. Download or move the `.jar` file into `C:\Program Files\{{app.title}}`. | |
| 121 | 109 | |
| 122 | 110 | The Java version of {{app.title}} is installed. |
| 111 | ||
| 112 | Note: {{app.title}} may be installed in any directory, so if you do not have | |
| 113 | permissions to install it under `C:\Program Files\{{app.title}}`, you may opt | |
| 114 | for another directory, such as `C:\Users\%USERNAME%\{{app.title}}`. | |
| 123 | 115 | |
| 124 | 116 | ## ConTeXt LMTX |
| 4 | 4 | readonly SCRIPT_DIR="$(cd "${SCRIPT_SRC}" >/dev/null 2>&1 && pwd)" |
| 5 | 5 | |
| 6 | rm -f ${HOME}/.local/share/keenwrite/logo_svg_*.pdf | |
| 7 | ||
| 6 | 8 | keenwrite.bin \ |
| 7 | 9 | $1 \ |
| ... | ||
| 16 | 18 | --metadata="copyright={{document.copyright}}" \ |
| 17 | 19 | --metadata="version=$(git describe --tags --abbrev=0)" \ |
| 20 | --metadata="logo=${SCRIPT_DIR}/../src/main/resources/com/keenwrite/logo.svg" \ | |
| 21 | --metadata="primary=126D95" \ | |
| 22 | --metadata="accent=E54A59" \ | |
| 18 | 23 | --theme-dir="$HOME/dev/java/keenwrite/themes/texomus" |
| 19 | 24 | |
| 16 | 16 | |
| 17 | 17 | import static com.keenwrite.events.StatusEvent.clue; |
| 18 | import static com.keenwrite.events.StatusEvent.fire; | |
| 19 | 18 | import static com.keenwrite.util.FileWalker.walk; |
| 20 | 19 | import static java.lang.String.format; |
| ... | ||
| 78 | 77 | final var digits = toDigits( filename ); |
| 79 | 78 | |
| 80 | // If first file has digits, only process files with digits | |
| 81 | // If first file has no digits, process all files | |
| 79 | // If first file has digits, only process files with digits. | |
| 80 | // If first file has no digits, process all files. | |
| 82 | 81 | final var process = !useDigits || digits != -1; |
| 83 | 82 | |
| 84 | 83 | if( process ) { |
| 85 | 84 | final var chapterNum = chapter.incrementAndGet(); |
| 85 | final var testValue = useDigits ? digits : chapterNum; | |
| 86 | 86 | |
| 87 | if( validator.test( chapterNum ) ) { | |
| 87 | if( validator.test( testValue ) ) { | |
| 88 | 88 | clue( "Main.status.export.concat", file ); |
| 89 | 89 | |
| 42 | 42 | private static final String PROP_USER_DIR = getProperty( "user.dir" ); |
| 43 | 43 | private static final String PROP_OS_VERSION = getProperty( "os.version" ); |
| 44 | private static final String ENV_LOCALAPPDATA = getenv( "LocalAppData" ); | |
| 44 | 45 | private static final String ENV_APPDATA = getenv( "AppData" ); |
| 45 | 46 | private static final String ENV_XDG_DATA_HOME = getenv( "XDG_DATA_HOME" ); |
| ... | ||
| 82 | 83 | |
| 83 | 84 | private static Path getWinAppPath() { |
| 84 | return isValid( ENV_APPDATA ) | |
| 85 | return isValid( ENV_LOCALAPPDATA ) | |
| 86 | ? Path.of( ENV_LOCALAPPDATA ) | |
| 87 | : isValid( ENV_APPDATA ) | |
| 85 | 88 | ? Path.of( ENV_APPDATA ) |
| 86 | 89 | : home( getWinVerAppPath() ); |