koffi 2.12.1 → 2.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/LICENSE.txt +2 -2
- package/README.md +8 -8
- package/build/koffi/darwin_arm64/koffi.node +0 -0
- package/build/koffi/darwin_x64/koffi.node +0 -0
- package/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/build/koffi/freebsd_x64/koffi.node +0 -0
- package/build/koffi/linux_arm64/koffi.node +0 -0
- package/build/koffi/linux_armhf/koffi.node +0 -0
- package/build/koffi/linux_ia32/koffi.node +0 -0
- package/build/koffi/linux_loong64/koffi.node +0 -0
- package/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/build/koffi/linux_x64/koffi.node +0 -0
- package/build/koffi/musl_arm64/koffi.node +0 -0
- package/build/koffi/musl_x64/koffi.node +0 -0
- package/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/build/koffi/openbsd_x64/koffi.node +0 -0
- package/build/koffi/win32_arm64/koffi.exp +0 -0
- package/build/koffi/win32_arm64/koffi.node +0 -0
- package/build/koffi/win32_ia32/koffi.exp +0 -0
- package/build/koffi/win32_ia32/koffi.node +0 -0
- package/build/koffi/win32_x64/koffi.exp +0 -0
- package/build/koffi/win32_x64/koffi.node +0 -0
- package/doc/assets.ini +3 -3
- package/doc/develop.sh +4 -3
- package/doc/pages/platforms.md +1 -1
- package/doc/static/highlight.js +1 -1
- package/doc/static/koffi.css +3 -2
- package/doc/static/print.css +1 -1
- package/doc/templates/code.html +5 -5
- package/doc/templates/page.html +4 -4
- package/index.d.ts +228 -145
- package/index.js +25 -25
- package/indirect.js +25 -5
- package/package.json +2 -2
- package/src/cnoke/LICENSE.txt +2 -2
- package/src/cnoke/README.md +2 -0
- package/src/cnoke/assets/FindCNoke.cmake +12 -2
- package/src/cnoke/assets/win_delay_hook.c +4 -4
- package/src/cnoke/cnoke.js +4 -2
- package/src/cnoke/package.json +1 -1
- package/src/cnoke/src/builder.js +11 -14
- package/src/cnoke/src/index.js +2 -2
- package/src/cnoke/src/tools.js +34 -2
- package/src/core/{libcc/libcc.cc → base/base.cc} +3174 -1640
- package/src/core/{libcc/libcc.hh → base/base.hh} +3066 -2427
- package/src/core/{libcc → base}/mimetypes.inc +42 -4
- package/src/core/{libcc → base}/mimetypes_gen.py +3 -3
- package/src/core/base/unicode.inc +426 -0
- package/src/core/base/unicode_gen.py +189 -0
- package/src/koffi/CMakeLists.txt +7 -5
- package/src/koffi/cmake/raylib.cmake +6 -2
- package/src/koffi/cmake/{sqlite.cmake → sqlite3.cmake} +3 -3
- package/src/koffi/examples/electron-forge/forge.config.js +23 -3
- package/src/koffi/examples/electron-forge/package.json +18 -16
- package/src/koffi/src/abi_arm32.cc +7 -7
- package/src/koffi/src/abi_arm32_asm.S +2 -2
- package/src/koffi/src/abi_arm64.cc +45 -45
- package/src/koffi/src/abi_arm64_asm.S +4 -4
- package/src/koffi/src/abi_arm64_asm.asm +2 -2
- package/src/koffi/src/abi_loong64_asm.S +2 -2
- package/src/koffi/src/abi_riscv64.cc +5 -5
- package/src/koffi/src/abi_riscv64_asm.S +2 -2
- package/src/koffi/src/abi_x64_sysv.cc +3 -3
- package/src/koffi/src/abi_x64_sysv_asm.S +5 -5
- package/src/koffi/src/abi_x64_win.cc +3 -3
- package/src/koffi/src/abi_x64_win_asm.asm +2 -2
- package/src/koffi/src/abi_x86.cc +8 -8
- package/src/koffi/src/abi_x86_asm.S +2 -2
- package/src/koffi/src/abi_x86_asm.asm +2 -2
- package/src/koffi/src/call.cc +12 -12
- package/src/koffi/src/call.hh +8 -8
- package/src/koffi/src/errno.inc +152 -152
- package/src/koffi/src/ffi.cc +44 -39
- package/src/koffi/src/ffi.hh +6 -6
- package/src/koffi/src/init.js +1 -1
- package/src/koffi/src/parser.cc +5 -5
- package/src/koffi/src/parser.hh +3 -3
- package/src/koffi/src/trampolines/armasm.inc +2 -2
- package/src/koffi/src/trampolines/gnu.inc +2 -2
- package/src/koffi/src/trampolines/masm32.inc +2 -2
- package/src/koffi/src/trampolines/masm64.inc +2 -2
- package/src/koffi/src/trampolines/prototypes.inc +2 -2
- package/src/koffi/src/util.cc +9 -9
- package/src/koffi/src/util.hh +3 -3
- package/src/koffi/src/win32.cc +5 -5
- package/src/koffi/src/win32.hh +9 -9
- package/vendor/node-addon-api/CHANGELOG.md +97 -2
- package/vendor/node-addon-api/CONTRIBUTING.md +117 -7
- package/vendor/node-addon-api/README.md +25 -249
- package/vendor/node-addon-api/common.gypi +1 -0
- package/vendor/node-addon-api/doc/README.md +145 -0
- package/vendor/node-addon-api/doc/array_buffer.md +15 -15
- package/vendor/node-addon-api/doc/basic_env.md +200 -0
- package/vendor/node-addon-api/doc/buffer.md +24 -26
- package/vendor/node-addon-api/doc/cmake-js.md +19 -0
- package/vendor/node-addon-api/doc/{creating_a_release.md → contributing/creating_a_release.md} +16 -4
- package/vendor/node-addon-api/doc/env.md +11 -131
- package/vendor/node-addon-api/doc/error_handling.md +12 -0
- package/vendor/node-addon-api/doc/external.md +13 -4
- package/vendor/node-addon-api/doc/finalization.md +153 -0
- package/vendor/node-addon-api/doc/memory_management.md +1 -1
- package/vendor/node-addon-api/doc/object_wrap.md +19 -3
- package/vendor/node-addon-api/doc/promises.md +51 -0
- package/vendor/node-addon-api/doc/setup.md +29 -6
- package/vendor/node-addon-api/doc/value.md +13 -0
- package/vendor/node-addon-api/doc/version_management.md +2 -2
- package/vendor/node-addon-api/eslint.config.js +5 -0
- package/vendor/node-addon-api/index.js +2 -0
- package/vendor/node-addon-api/napi-inl.h +592 -166
- package/vendor/node-addon-api/napi.h +167 -59
- package/vendor/node-addon-api/node_addon_api.gyp +10 -0
- package/vendor/node-addon-api/noexcept.gypi +1 -1
- package/vendor/node-addon-api/package.json +10 -13
- package/vendor/node-addon-api/release-please-config.json +15 -0
- package/vendor/node-addon-api/test/addon_build/tpl/binding.gyp +2 -1
- package/vendor/node-addon-api/test/array_buffer.js +1 -1
- package/vendor/node-addon-api/test/async_context.js +2 -2
- package/vendor/node-addon-api/test/async_progress_queue_worker.js +3 -3
- package/vendor/node-addon-api/test/async_progress_worker.js +3 -3
- package/vendor/node-addon-api/test/async_worker.cc +15 -13
- package/vendor/node-addon-api/test/async_worker.js +5 -5
- package/vendor/node-addon-api/test/basic_types/value.cc +6 -0
- package/vendor/node-addon-api/test/basic_types/value.js +17 -0
- package/vendor/node-addon-api/test/binding.cc +8 -0
- package/vendor/node-addon-api/test/binding.gyp +23 -1
- package/vendor/node-addon-api/test/buffer.js +1 -2
- package/vendor/node-addon-api/test/common/index.js +1 -1
- package/vendor/node-addon-api/test/except_all.cc +22 -0
- package/vendor/node-addon-api/test/except_all.js +14 -0
- package/vendor/node-addon-api/test/exports.js +19 -0
- package/vendor/node-addon-api/test/finalizer_order.cc +152 -0
- package/vendor/node-addon-api/test/finalizer_order.js +98 -0
- package/vendor/node-addon-api/test/function.js +2 -2
- package/vendor/node-addon-api/test/function_reference.js +2 -2
- package/vendor/node-addon-api/test/globalObject/global_object_delete_property.cc +4 -4
- package/vendor/node-addon-api/test/globalObject/global_object_get_property.cc +4 -4
- package/vendor/node-addon-api/test/globalObject/global_object_has_own_property.cc +3 -3
- package/vendor/node-addon-api/test/globalObject/global_object_set_property.cc +5 -5
- package/vendor/node-addon-api/test/name.cc +10 -8
- package/vendor/node-addon-api/test/object/delete_property.cc +5 -5
- package/vendor/node-addon-api/test/object/get_property.cc +5 -5
- package/vendor/node-addon-api/test/object/has_own_property.cc +4 -4
- package/vendor/node-addon-api/test/object/has_property.cc +5 -5
- package/vendor/node-addon-api/test/object/object.cc +1 -1
- package/vendor/node-addon-api/test/object/set_property.cc +5 -5
- package/vendor/node-addon-api/test/object/subscript_operator.cc +3 -3
- package/vendor/node-addon-api/test/object_reference.cc +18 -18
- package/vendor/node-addon-api/test/promise.cc +75 -0
- package/vendor/node-addon-api/test/promise.js +23 -0
- package/vendor/node-addon-api/test/require_basic_finalizers/index.js +38 -0
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/addon.cc +12 -0
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/binding.gyp +48 -0
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/index.js +3 -0
- package/vendor/node-addon-api/test/require_basic_finalizers/tpl/package.json +11 -0
- package/vendor/node-addon-api/test/run_script.cc +1 -1
- package/vendor/node-addon-api/test/type_taggable.cc +1 -1
- package/vendor/node-addon-api/test/type_taggable.js +3 -4
- package/vendor/node-addon-api/test/typedarray.cc +28 -24
- package/vendor/node-addon-api/tools/conversion.js +1 -1
- package/vendor/node-api-headers/CHANGELOG.md +29 -0
- package/vendor/node-api-headers/CREATING_A_RELEASE.md +12 -2
- package/vendor/node-api-headers/def/js_native_api.def +6 -1
- package/vendor/node-api-headers/def/node_api.def +7 -1
- package/vendor/node-api-headers/include/js_native_api.h +56 -24
- package/vendor/node-api-headers/include/js_native_api_types.h +27 -0
- package/vendor/node-api-headers/include/node_api.h +38 -29
- package/vendor/node-api-headers/lib/parse-utils.js +92 -0
- package/vendor/node-api-headers/package.json +7 -7
- package/vendor/node-api-headers/release-please-config.json +12 -0
- package/vendor/node-api-headers/scripts/update-headers.js +63 -12
- package/vendor/node-api-headers/scripts/write-symbols.js +1 -1
- package/vendor/node-api-headers/symbols.js +17 -1
- package/vendor/node-api-headers/test/parse-utils.js +21 -0
- package/doc/flat/flat.css +0 -27
- package/doc/flat/normal.css +0 -429
- package/doc/flat/print.css +0 -29
- package/doc/flat/reset.css +0 -41
- package/doc/flat/small.css +0 -104
- package/doc/flat/static.js +0 -161
- package/src/core/libcc/brotli.cc +0 -186
- package/src/core/libcc/lz4.cc +0 -197
- package/src/core/libcc/miniz.cc +0 -353
- package/vendor/node-addon-api/tools/eslint-format.js +0 -79
- /package/vendor/node-api-headers/{scripts → lib}/clang-utils.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,27 @@
|
|
|
7
7
|
|
|
8
8
|
### Koffi 2.12
|
|
9
9
|
|
|
10
|
+
#### Koffi 2.12.3
|
|
11
|
+
|
|
12
|
+
*Released on 2025-07-28*
|
|
13
|
+
|
|
14
|
+
- Add missing TypeScript overloads for struct redefinition
|
|
15
|
+
- Add missing TypeScript member parameter in `koffi.offsetof()`
|
|
16
|
+
- Add missing TypeScript declaration for `koffi.view()`
|
|
17
|
+
- Add primitive type names to TypeScript
|
|
18
|
+
- Simplify TypeScript module declaration
|
|
19
|
+
|
|
20
|
+
#### Koffi 2.12.2
|
|
21
|
+
|
|
22
|
+
*Released on 2025-07-16*
|
|
23
|
+
|
|
24
|
+
- Validate identifiers against Unicode XID table
|
|
25
|
+
- Skip struct and union members with placeholder name '\_'
|
|
26
|
+
- Add Koffi prebuild for Linux (musl) ARM64
|
|
27
|
+
|
|
28
|
+
> [!NOTE]
|
|
29
|
+
> The Koffi 3 codebase has been put aside, and some of it will be progressively integrated into Koffi 2 over the following months.
|
|
30
|
+
|
|
10
31
|
#### Koffi 2.12.1
|
|
11
32
|
|
|
12
33
|
*Released on 2025-07-05*
|
package/LICENSE.txt
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright
|
|
3
|
+
Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
-
this software and associated documentation files (the “Software”), to deal in
|
|
6
|
+
this software and associated documentation files (the “Software”), to deal in
|
|
7
7
|
the Software without restriction, including without limitation the rights to use,
|
|
8
8
|
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
|
|
9
9
|
Software, and to permit persons to whom the Software is furnished to do so,
|
package/README.md
CHANGED
|
@@ -9,14 +9,14 @@ Koffi is a fast and easy-to-use C FFI module for Node.js, featuring:
|
|
|
9
9
|
|
|
10
10
|
The following combinations of OS and architectures __are officially supported and tested__ at the moment:
|
|
11
11
|
|
|
12
|
-
ISA / OS | Windows | Linux
|
|
13
|
-
------------------ | ----------- |
|
|
14
|
-
x86 (IA32) [^1] | ✅ Yes | ✅ Yes
|
|
15
|
-
x86_64 (AMD64) | ✅ Yes | ✅ Yes
|
|
16
|
-
ARM32 LE [^2] | ⬜️ *N/A* | ✅ Yes
|
|
17
|
-
ARM64 (AArch64) LE | ✅ Yes | ✅ Yes
|
|
18
|
-
RISC-V 64 [^3] | ⬜️ *N/A* | ✅ Yes
|
|
19
|
-
LoongArch64 | ⬜️ *N/A* | ✅ Yes
|
|
12
|
+
ISA / OS | Windows | Linux (glibc) | Linux (musl) | macOS | FreeBSD | OpenBSD
|
|
13
|
+
------------------ | ----------- | ------------- | ------------ | ----------- | ----------- | --------
|
|
14
|
+
x86 (IA32) [^1] | ✅ Yes | ✅ Yes | 🟨 Probably | ⬜️ *N/A* | ✅ Yes | ✅ Yes
|
|
15
|
+
x86_64 (AMD64) | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes
|
|
16
|
+
ARM32 LE [^2] | ⬜️ *N/A* | ✅ Yes | 🟨 Probably | ⬜️ *N/A* | 🟨 Probably | 🟨 Probably
|
|
17
|
+
ARM64 (AArch64) LE | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | 🟨 Probably
|
|
18
|
+
RISC-V 64 [^3] | ⬜️ *N/A* | ✅ Yes | 🟨 Probably | ⬜️ *N/A* | 🟨 Probably | 🟨 Probably
|
|
19
|
+
LoongArch64 | ⬜️ *N/A* | ✅ Yes | 🟨 Probably | ⬜️ *N/A* | 🟨 Probably | 🟨 Probably
|
|
20
20
|
|
|
21
21
|
[^1]: The following call conventions are supported: cdecl, stdcall, MS fastcall, thiscall.
|
|
22
22
|
[^2]: The prebuilt binary uses the hard float ABI and expects a VFP coprocessor. Build from source to use Koffi with a different ABI (softfp, soft).
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/doc/assets.ini
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
EsbuildPath = ../../vendor/esbuild/
|
|
1
|
+
EsbuildPath = ../../vendor/esbuild/native/node_modules/@esbuild
|
|
2
2
|
|
|
3
3
|
[favicon.png]
|
|
4
4
|
Type = Copy
|
|
@@ -11,7 +11,7 @@ Ignore = favicon.png *.js *.css
|
|
|
11
11
|
|
|
12
12
|
[static/site.min.js]
|
|
13
13
|
Type = Bundle
|
|
14
|
-
Source = flat/static.js
|
|
14
|
+
Source = ../../src/web/flat/static.js
|
|
15
15
|
|
|
16
16
|
[static/highlight.min.js]
|
|
17
17
|
Type = Bundle
|
|
@@ -20,4 +20,4 @@ Source = static/highlight.js
|
|
|
20
20
|
[static/site.min.css]
|
|
21
21
|
Type = Bundle
|
|
22
22
|
Source = static/koffi.css
|
|
23
|
-
Options = --loader:.
|
|
23
|
+
Options = --loader:.woff2=file --loader:.png=file --loader:.webp=file
|
package/doc/develop.sh
CHANGED
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
cd "$(dirname $0)"
|
|
4
4
|
|
|
5
5
|
../../bootstrap.sh
|
|
6
|
-
../../felix -pFast
|
|
6
|
+
../../felix -pFast nestor hodler
|
|
7
7
|
|
|
8
8
|
trap 'kill $(jobs -p) 2>/dev/null' EXIT
|
|
9
9
|
trap 'kill $(jobs -p) 2>/dev/null' SIGINT
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
../../bin/Fast/
|
|
11
|
+
mkdir -p dist
|
|
12
|
+
../../bin/Fast/nestor dist/ &
|
|
13
|
+
../../bin/Fast/hodler . -O dist --loop --sourcemap &
|
|
13
14
|
|
|
14
15
|
wait $(jobs -p)
|
package/doc/pages/platforms.md
CHANGED
|
@@ -19,7 +19,7 @@ ISA / OS | Windows | Linux (glibc) | Linux (musl)
|
|
|
19
19
|
x86 (IA32) [^1] | ✅ | ✅ | 🟨
|
|
20
20
|
x86_64 (AMD64) | ✅ | ✅ | ✅
|
|
21
21
|
ARM32 LE [^2] | ⬜️ | ✅ | 🟨
|
|
22
|
-
ARM64 (AArch64) LE | ✅ | ✅ |
|
|
22
|
+
ARM64 (AArch64) LE | ✅ | ✅ | ✅
|
|
23
23
|
RISC-V 64 [^3] | ⬜️ | ✅ | 🟨
|
|
24
24
|
LoongArch64 | ⬜️ | ✅ | 🟨
|
|
25
25
|
|
package/doc/static/highlight.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (C)
|
|
1
|
+
// Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
|
|
2
2
|
//
|
|
3
3
|
// This program is free software: you can redistribute it and/or modify
|
|
4
4
|
// it under the terms of the GNU General Public License as published by
|
package/doc/static/koffi.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Copyright (C)
|
|
1
|
+
/* Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
|
|
2
2
|
|
|
3
3
|
This program is free software: you can redistribute it and/or modify
|
|
4
4
|
it under the terms of the GNU General Public License as published by
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
You should have received a copy of the GNU General Public License
|
|
14
14
|
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
|
15
15
|
|
|
16
|
-
@import url('
|
|
16
|
+
@import url('../../../src/web/flat/flat.css');
|
|
17
17
|
@import url('../../../vendor/highlight.js/styles/base16/tomorrow.css');
|
|
18
18
|
|
|
19
19
|
html {
|
|
20
20
|
--top_color: #ec7400;
|
|
21
|
+
--button_color: #ec7400;
|
|
21
22
|
--anchor_color: #ec7400;
|
|
22
23
|
}
|
package/doc/static/print.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Copyright (C)
|
|
1
|
+
/* Copyright (C) 2025 Niels Martignène <niels.martignene@protonmail.com>
|
|
2
2
|
|
|
3
3
|
This program is free software: you can redistribute it and/or modify
|
|
4
4
|
it under the terms of the GNU General Public License as published by
|
package/doc/templates/code.html
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
<meta name="theme-color" content="#6aa051">
|
|
13
13
|
<link rel="stylesheet" href="{{ ASSET static/site.min.css }}">
|
|
14
14
|
|
|
15
|
-
<script type="text/javascript" src="{{ ASSET static/site.min.js }}"
|
|
16
|
-
<script type="text/javascript" src="{{ ASSET static/highlight.min.js }}"
|
|
15
|
+
<script type="text/javascript" src="{{ ASSET static/site.min.js }}"></script>
|
|
16
|
+
<script type="text/javascript" src="{{ ASSET static/highlight.min.js }}"></script>
|
|
17
17
|
</head>
|
|
18
18
|
|
|
19
19
|
<body>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
<nav id="top">
|
|
23
23
|
<menu>
|
|
24
|
-
<a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}"
|
|
24
|
+
<a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
|
|
25
25
|
|
|
26
26
|
{{ LINKS }}
|
|
27
27
|
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
</main>
|
|
40
40
|
|
|
41
41
|
<footer>
|
|
42
|
-
<div>Koffi ©
|
|
42
|
+
<div>Koffi © 2025</div>
|
|
43
43
|
<div style="font-size: 0.8em;">
|
|
44
|
-
Niels Martignène (<a href="https://
|
|
44
|
+
Niels Martignène (<a href="https://koromix.dev/" target="_blank">Koromix</a>)<br>
|
|
45
45
|
<a href="mailto:niels.martignene@protonmail.com" style="font-weight: bold; color: inherit;">niels.martignene@protonmail.com</a>
|
|
46
46
|
</div>
|
|
47
47
|
</footer>
|
package/doc/templates/page.html
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<meta name="theme-color" content="#6aa051">
|
|
13
13
|
<link rel="stylesheet" href="{{ ASSET static/site.min.css }}">
|
|
14
14
|
|
|
15
|
-
<script type="text/javascript" src="{{ ASSET static/site.min.js }}"
|
|
15
|
+
<script type="text/javascript" src="{{ ASSET static/site.min.js }}"></script>
|
|
16
16
|
</head>
|
|
17
17
|
|
|
18
18
|
<body>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
<nav id="top">
|
|
22
22
|
<menu>
|
|
23
|
-
<a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}"
|
|
23
|
+
<a id="logo" href="/"><img src="{{ ASSET static/logo.webp }}" width="370" height="198" alt="" /></a>
|
|
24
24
|
|
|
25
25
|
{{ LINKS }}
|
|
26
26
|
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
</main>
|
|
39
39
|
|
|
40
40
|
<footer>
|
|
41
|
-
<div>Koffi ©
|
|
41
|
+
<div>Koffi © 2025</div>
|
|
42
42
|
<div style="font-size: 0.8em;">
|
|
43
|
-
Niels Martignène (<a href="https://
|
|
43
|
+
Niels Martignène (<a href="https://koromix.dev/" target="_blank">Koromix</a>)<br>
|
|
44
44
|
<a href="mailto:niels.martignene@protonmail.com" style="font-weight: bold; color: inherit;">niels.martignene@protonmail.com</a>
|
|
45
45
|
</div>
|
|
46
46
|
</footer>
|