Compare commits

..

2 Commits

Author SHA1 Message Date
zadam 51939b161c release 0.63.7
Publish Docker image / Push Docker image to multiple registries (push) Failing after 31s
2024-05-30 06:59:06 +02:00
zadam 95d46b7ce7 backported upgrade to excalidraw 0.17.3 from master 2024-05-30 06:58:33 +02:00
829 changed files with 180919 additions and 72610 deletions
-3
View File
@@ -5,6 +5,3 @@
/docs
/npm-debug.log
node_modules
src/**/*.ts
!src/services/asset_path.ts
+7
View File
@@ -0,0 +1,7 @@
node_modules
dist
bin
docs
libraries
coverage
play
+212
View File
@@ -0,0 +1,212 @@
module.exports = {
env: {
browser: true,
commonjs: true,
es2021: true,
node: true,
},
// plugins: ['prettier'], // to be activated
extends: ['eslint:recommended', 'airbnb-base', 'plugin:jsonc/recommended-with-jsonc', 'prettier'],
overrides: [
{
files: ['*.json', '*.json5', '*.jsonc'],
parser: 'jsonc-eslint-parser',
},
{
files: ['package.json'],
parser: 'jsonc-eslint-parser',
rules: {
'jsonc/sort-keys': [
'off',
{
pathPattern: '^$',
order: [
'name',
'version',
'private',
'packageManager',
'description',
'type',
'keywords',
'homepage',
'bugs',
'license',
'author',
'contributors',
'funding',
'files',
'main',
'module',
'exports',
'unpkg',
'jsdelivr',
'browser',
'bin',
'man',
'directories',
'repository',
'publishConfig',
'scripts',
'peerDependencies',
'peerDependenciesMeta',
'optionalDependencies',
'dependencies',
'devDependencies',
'engines',
'config',
'overrides',
'pnpm',
'husky',
'lint-staged',
'eslintConfig',
],
},
{
pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies$',
order: { type: 'asc' },
},
],
},
},
],
globals: {
$: true,
jQuery: true,
glob: true,
log: true,
EditorWatchdog: true,
React: true,
appState: true,
ExcalidrawLib: true,
elements: true,
files: true,
ReactDOM: true,
// src\public\app\widgets\type_widgets\relation_map.js
jsPlumb: true,
panzoom: true,
logError: true,
// src\public\app\widgets\type_widgets\image.js
WZoom: true,
// \src\public\app\widgets\type_widgets\read_only_text.js
renderMathInElement: true,
// \src\public\app\widgets\type_widgets\editable_text.js
BalloonEditor: true,
FancytreeNode: true,
CKEditorInspector: true,
// \src\public\app\widgets\type_widgets\editable_code.js
CodeMirror: true,
// \src\public\app\services\resizer.js
Split: true,
// \src\public\app\services\content_renderer.js
mermaid: true,
// src\public\app\services\frontend_script_api.js
dayjs: true,
// \src\public\app\widgets\note_map.js
ForceGraph: true,
// \src\public\app\setup.js
ko: true,
syncInProgress: true,
// src\public\app\services\utils.js
logInfo: true,
__non_webpack_require__: true,
describe: true,
it: true,
expect: true
},
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
rules: {
// eslint:recommended
'no-unused-vars': 'off',
'linebreak-style': 'off',
'no-useless-escape': 'off',
'no-empty': 'off',
'no-constant-condition': 'off',
'getter-return': 'off',
'no-cond-assign': 'off',
'no-async-promise-executor': 'off',
'no-extra-semi': 'off',
'no-inner-declarations': 'off',
// prettier
'prettier/prettier': ['off', { endOfLine: 'auto' }],
// airbnb-base
'no-console': 'off',
'no-plusplus': 'off',
'no-param-reassign': 'off',
'global-require': 'off',
'no-use-before-define': 'off',
'no-await-in-loop': 'off',
radix: 'off',
'import/order': 'off',
'import/no-extraneous-dependencies': 'off',
'prefer-destructuring': 'off',
'no-shadow': 'off',
'no-new': 'off',
'no-restricted-syntax': 'off',
strict: 'off',
'class-methods-use-this': 'off',
'no-else-return': 'off',
'import/no-dynamic-require': 'off',
'no-underscore-dangle': 'off',
'prefer-template': 'off',
'consistent-return': 'off',
'no-continue': 'off',
'object-shorthand': 'off',
'one-var': 'off',
'prefer-const': 'off',
'spaced-comment': 'off',
'no-loop-func': 'off',
'arrow-body-style': 'off',
'guard-for-in': 'off',
'no-return-assign': 'off',
'dot-notation': 'off',
'func-names': 'off',
'import/no-useless-path-segments': 'off',
'default-param-last': 'off',
'prefer-arrow-callback': 'off',
'no-unneeded-ternary': 'off',
'no-return-await': 'off',
'import/extensions': 'off',
'no-var': 'off',
'import/newline-after-import': 'off',
'no-restricted-globals': 'off',
'operator-assignment': 'off',
'no-eval': 'off',
'max-classes-per-file': 'off',
'vars-on-top': 'off',
'no-bitwise': 'off',
'no-lonely-if': 'off',
'no-multi-assign': 'off',
'no-promise-executor-return': 'off',
'no-empty-function': 'off',
'import/no-unresolved': 'off',
camelcase: 'off',
eqeqeq: 'off',
'lines-between-class-members': 'off',
'import/no-cycle': 'off',
'new-cap': 'off',
'prefer-object-spread': 'off',
'no-new-func': 'off',
'no-unused-expressions': 'off',
'lines-around-directive': 'off',
'prefer-exponentiation-operator': 'off',
'no-restricted-properties': 'off',
'prefer-rest-params': 'off',
'no-unreachable-loop': 'off',
'no-alert': 'off',
'no-useless-return': 'off',
'no-nested-ternary': 'off',
'prefer-regex-literals': 'off',
'import/no-named-as-default-member': 'off',
yoda: 'off',
'no-script-url': 'off',
'no-prototype-builtins':'off'
},
};
+5 -5
View File
@@ -5,9 +5,9 @@ labels: "Type: Bug"
body:
- type: input
attributes:
label: TriliumNext Version
description: What version of TriliumNext are you using?
placeholder: 0.90.0-beta
label: Trilium Version
description: What version of Trilium are you using?
placeholder: 0.57.0-beta
validations:
required: true
- type: dropdown
@@ -24,7 +24,7 @@ body:
- type: dropdown
attributes:
label: What is your setup?
description: https://triliumnext.github.io/Docs/Wiki/quick-start.html
description: https://github.com/zadam/trilium/wiki#choose-the-setup
options:
- Local (no sync)
- Local + server sync
@@ -47,6 +47,6 @@ body:
- type: textarea
attributes:
label: Error logs
description: Please provide error logs, see [wiki page](https://triliumnext.github.io/Docs/Wiki/error-logs.html) for instructions on how to submit them.
description: Please provide error logs, see [wiki page](https://github.com/zadam/trilium/wiki/Error-logs) for instructions on how to submit them.
validations:
required: false
-33
View File
@@ -1,33 +0,0 @@
name: Dev
on:
push:
branches-ignore:
- 'develop'
- 'feature/update**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_docker:
name: Build Docker image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm ci
- name: Run the TypeScript build
run: npx tsc
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
- uses: docker/setup-buildx-action@v3
- uses: docker/build-push-action@v6
with:
context: .
cache-from: type=gha
cache-to: type=gha,mode=max
-249
View File
@@ -1,249 +0,0 @@
on:
push:
branches:
- "develop"
- "feature/update**"
- "feature/server_esm**"
paths-ignore:
- "docs/**"
- "bin/**"
tags:
- "v*"
workflow_dispatch:
env:
GHCR_REGISTRY: ghcr.io
DOCKERHUB_REGISTRY: docker.io
IMAGE_NAME: ${{ github.repository_owner }}/notes
TEST_TAG: ${{ github.repository_owner }}/notes:test
permissions:
contents: read
packages: write
jobs:
test_docker:
name: Check Docker build
runs-on: ubuntu-latest
strategy:
matrix:
include:
- dockerfile: Dockerfile.alpine
- dockerfile: Dockerfile
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Set IMAGE_NAME to lowercase
run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV
- name: Set TEST_TAG to lowercase
run: echo "TEST_TAG=${TEST_TAG,,}" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm ci
- name: Run the TypeScript build
run: npx tsc
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
- name: Build and export to Docker
uses: docker/build-push-action@v6
with:
context: .
file: ${{ matrix.dockerfile }}
load: true
tags: ${{ env.TEST_TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Validate container run output
run: |
CONTAINER_ID=$(docker run -d --log-driver=journald --rm --name trilium_local ${{ env.TEST_TAG }})
echo "Container ID: $CONTAINER_ID"
- name: Wait for the healthchecks to pass
uses: stringbean/docker-healthcheck-action@v1
with:
container: trilium_local
wait-time: 50
require-status: running
require-healthy: true
# Print the entire log of the container thus far, regardless if the healthcheck failed or succeeded
- name: Print entire log
if: always()
run: |
journalctl -u docker CONTAINER_NAME=trilium_local --no-pager
build:
name: Build Docker images
runs-on: ubuntu-latest
needs:
- test_docker
permissions:
contents: read
packages: write
attestations: write
id-token: write
strategy:
fail-fast: false
matrix:
include:
- dockerfile: Dockerfile.alpine
platform: linux/amd64
- dockerfile: Dockerfile
platform: linux/arm64
- dockerfile: Dockerfile
platform: linux/arm/v7
steps:
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Set IMAGE_NAME to lowercase
run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV
- name: Set TEST_TAG to lowercase
run: echo "TEST_TAG=${TEST_TAG,,}" >> $GITHUB_ENV
- name: Checkout repository
uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}
${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=tag
type=sha
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- run: npm ci
- name: Run the TypeScript build
run: npx tsc
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
- name: Login to GHCR
uses: docker/login-action@v2
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
uses: docker/login-action@v2
with:
registry: ${{ env.DOCKERHUB_REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
with:
context: .
file: ${{ matrix.dockerfile }}
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
merge:
name: Merge manifest lists
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true
- name: Set IMAGE_NAME to lowercase
run: echo "IMAGE_NAME=${IMAGE_NAME,,}" >> $GITHUB_ENV
- name: Set TEST_TAG to lowercase
run: echo "TEST_TAG=${TEST_TAG,,}" >> $GITHUB_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}
${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Login to GHCR
uses: docker/login-action@v2
with:
registry: ${{ env.GHCR_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
uses: docker/login-action@v2
with:
registry: ${{ env.DOCKERHUB_REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create manifest list and push
working-directory: /tmp/digests
run: |
# Extract the branch or tag name from the ref
REF_NAME=$(echo "${GITHUB_REF}" | sed 's/refs\/heads\///' | sed 's/refs\/tags\///')
# Create and push the manifest list with both the branch/tag name and the commit SHA
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
-t ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:${REF_NAME} \
$(printf '${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
-t ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${REF_NAME} \
$(printf '${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.GHCR_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
docker buildx imagetools inspect ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
-100
View File
@@ -1,100 +0,0 @@
name: Main
on:
push:
branches:
- "feature/update**"
- "feature/server_esm**"
paths-ignore:
- "docs/**"
- ".github/workflows/main-docker.yml"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
make-electron:
name: Make Electron
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
os:
- name: macos
image: macos-latest
extension: dmg
- name: linux
image: ubuntu-latest
extension: deb
- name: windows
image: windows-latest
extension: exe
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
- name: Set up Python for appdmg to be installed
if: ${{ matrix.os.name == 'macos' }}
run: brew install python-setuptools
- name: Install dependencies
run: npm ci
- name: Update build info
run: npm run update-build-info
- name: Run electron-forge
run: npm run make-electron -- --arch=${{ matrix.arch }}
- name: Prepare artifacts (Unix)
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find out/make -name '*.zip' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.zip"
file=$(find out/make -name '*.${{ matrix.os.extension }}' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.${{ matrix.os.extension }}"
- name: Prepare artifacts (Windows)
if: runner.os == 'windows'
run: |
mkdir upload
$file = Get-ChildItem -Path out/make -Filter '*.zip' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.zip"
$file = Get-ChildItem -Path out/make -Filter '*.${{ matrix.os.extension }}' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-${{ github.ref_name }}.${{ matrix.os.extension }}"
- name: Publish artifacts
uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.zip
path: upload/*.zip
- name: Publish installer artifacts
uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}.${{matrix.os.extension}}
path: upload/*.${{ matrix.os.extension }}
build_linux_server-x64:
name: Build Linux Server x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run Linux server build (x86_64)
run: |
npm run update-build-info
./bin/build-server.sh
- name: Prepare artifacts
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find dist -name '*.tar.xz' -print -quit)
cp "$file" "upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz"
- uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes linux server x64
path: upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz
-122
View File
@@ -1,122 +0,0 @@
name: Nightly Release
on:
# This can be used to automatically publish nightlies at UTC nighttime
schedule:
- cron: '0 2 * * *' # run at 2 AM UTC
# This can be used to allow manually triggering nightlies from the web interface
workflow_dispatch:
jobs:
nightly-electron:
name: Deploy nightly
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
os:
- name: macos
image: macos-latest
extension: dmg
- name: linux
image: ubuntu-latest
extension: deb
- name: windows
image: windows-latest
extension: exe
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
- name: Set up Python for appdmg to be installed
if: ${{ matrix.os.name == 'macos' }}
run: brew install python-setuptools
- name: Install dependencies
run: npm ci
- name: Update build info
run: npm run update-build-info
- name: Run electron-forge
run: npm run make-electron -- --arch=${{ matrix.arch }}
- name: Prepare artifacts (Unix)
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find out/make -name '*.zip' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
file=$(find out/make -name '*.${{ matrix.os.extension }}' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Prepare artifacts (Windows)
if: runner.os == 'windows'
run: |
mkdir upload
$file = Get-ChildItem -Path out/make -Filter '*.zip' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
$file = Get-ChildItem -Path out/make -Filter '*.${{ matrix.os.extension }}' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Publish artifacts
uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}
path: upload/*.zip
overwrite: true
- name: Publish installer artifacts
uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes ${{ matrix.os.name }} ${{ matrix.arch }}
path: upload/*.${{ matrix.os.extension }}
overwrite: true
- name: Deploy release
uses: WebFreak001/deploy-nightly@v3.1.0
with:
# upload_url: # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
# release_id: # same as above (id can just be taken out the upload_url, it's used to find old releases)
asset_path: upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.zip # path to archive to upload
asset_name: TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-nightly.zip # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
asset_content_type: application/zip # required by GitHub API
- name: Deploy installer release
uses: WebFreak001/deploy-nightly@v3.1.0
with:
# upload_url: # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
# release_id: # same as above (id can just be taken out the upload_url, it's used to find old releases)
asset_path: upload/TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }} # path to archive to upload
asset_name: TriliumNextNotes-${{ matrix.os.name }}-${{ matrix.arch }}-nightly.${{ matrix.os.extension }} # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
asset_content_type: application/zip # required by GitHub API
nightly-server:
name: Deploy server nightly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run Linux server build (x86_64)
run: |
npm run update-build-info
./bin/build-server.sh
- name: Prepare artifacts
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find dist -name '*.tar.xz' -print -quit)
cp "$file" "upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz"
- uses: actions/upload-artifact@v4
with:
name: TriliumNextNotes linux server x64
path: upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz
overwrite: true
- name: Deploy release
uses: WebFreak001/deploy-nightly@v3.1.0
with:
# upload_url: # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
# release_id: # same as above (id can just be taken out the upload_url, it's used to find old releases)
asset_path: upload/TriliumNextNotes-linux-x64-${{ github.ref_name }}.tar.xz # path to archive to upload
asset_name: TriliumNextNotes-linux-x64-nightly.zip # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
asset_content_type: application/zip # required by GitHub API
-27
View File
@@ -1,27 +0,0 @@
name: Playwright Tests
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
test:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install dependencies
run: npm ci
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
-95
View File
@@ -1,95 +0,0 @@
name: Release
on:
push:
tags:
- "v*"
workflow_dispatch:
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
make-electron:
name: Make Electron
strategy:
fail-fast: false
matrix:
arch: [x64, arm64]
os:
- name: macos
image: macos-latest
extension: dmg
- name: linux
image: ubuntu-latest
extension: deb
- name: windows
image: windows-latest
extension: exe
runs-on: ${{ matrix.os.image }}
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
- name: Set up Python for appdmg to be installed
if: ${{ matrix.os.name == 'macos' }}
run: brew install python-setuptools
- name: Install dependencies
run: npm ci
- name: Update build info
run: npm run update-build-info
- name: Run electron-forge
run: npm run make-electron -- --arch=${{ matrix.arch }}
- name: Prepare artifacts (Unix)
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find out/make -name '*.zip' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
file=$(find out/make -name '*.${{ matrix.os.extension }}' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Prepare artifacts (Windows)
if: runner.os == 'windows'
run: |
mkdir upload
$file = Get-ChildItem -Path out/make -Filter '*.zip' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.zip"
$file = Get-ChildItem -Path out/make -Filter '*.${{ matrix.os.extension }}' -Recurse | Select-Object -First 1
Copy-Item -Path $file.FullName -Destination "upload/TriliumNextNotes-${{ github.ref_name }}-${{ matrix.os.name }}-${{ matrix.arch }}.${{ matrix.os.extension }}"
- name: Publish release
uses: softprops/action-gh-release@v2
with:
draft: true
fail_on_unmatched_files: true
files: upload/*.*
build_linux_server-x64:
name: Build Linux Server x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up node & dependencies
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run Linux server build (x86_64)
run: |
npm run update-build-info
./bin/build-server.sh
- name: Prepare artifacts
if: runner.os != 'windows'
run: |
mkdir -p upload
file=$(find dist -name '*.tar.xz' -print -quit)
cp "$file" "upload/TriliumNextNotes-${{ github.ref_name }}-server-linux-x64.tar.xz"
- name: Publish release
uses: softprops/action-gh-release@v2
with:
draft: true
fail_on_unmatched_files: true
files: upload/*.*
-18
View File
@@ -1,34 +1,16 @@
.DS_Store
node_modules/
dist/
build/
src/public/app-dist/
npm-debug.log
yarn-error.log
*.db
!integration-tests/db/document.db
integration-tests/db/log
integration-tests/db/sessions
integration-tests/db/backup
integration-tests/db/session_secret.txt
config.ini
cert.key
cert.crt
server-package.json
.idea/httpRequests/
.idea/shelf/
data/
data-test/
tmp/
.eslintcache
out/
images/app-icons/mac/*.png
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
/playwright/.auth/
+1 -1
View File
@@ -2,7 +2,7 @@ image:
file: .gitpod.dockerfile
tasks:
- before: nvm install 20.15.1 && nvm use 20.15.1
- before: nvm install 18.18.2 && nvm use 18.18.2
init: npm install
command: npm run start-server
+1
View File
@@ -0,0 +1 @@
_
+4
View File
@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
#npx lint-staged
+3 -5
View File
@@ -6,10 +6,8 @@
<option name="TAB_SIZE" value="2" />
</value>
</option>
<codeStyleSettings language="JSON">
<indentOptions>
<option name="INDENT_SIZE" value="4" />
</indentOptions>
</codeStyleSettings>
<JSCodeStyleSettings version="0">
<option name="USE_EXPLICIT_JS_EXTENSION" value="TRUE" />
</JSCodeStyleSettings>
</code_scheme>
</component>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EslintConfiguration">
<option name="fix-on-save" value="true" />
</component>
</project>
-1
View File
@@ -1 +0,0 @@
save-prefix = ''
-14
View File
@@ -1,14 +0,0 @@
{
"printWidth": 200,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": true,
"quoteProps": "as-needed",
"trailingComma": "none",
"bracketSpacing": false,
"arrowParens": "always",
"proseWrap": "preserve",
"htmlWhitespaceSensitivity": "css",
"endOfLine": "lf"
}
+13
View File
@@ -0,0 +1,13 @@
//https://prettier.io/docs/en/options.html
module.exports = {
semi: true,
trailingComma: 'none',
singleQuote: true,
printWidth: 100,
tabWidth: 4,
useTabs: false,
quoteProps: "as-needed",
bracketSpacing: true,
arrowParens: "avoid"
// htmlWhitespaceSensitivity: 'ignore',
};
+5 -4
View File
@@ -1,5 +1,6 @@
{
"recommendations": [
"lokalise.i18n-ally"
]
}
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
]
}
-33
View File
@@ -1,33 +0,0 @@
# An array of strings which contain Language Ids defined by VS Code
# You can check available language ids here: https://code.visualstudio.com/docs/languages/identifiers
languageIds:
- javascript
- typescript
- html
# An array of RegExes to find the key usage. **The key should be captured in the first match group**.
# You should unescape RegEx strings in order to fit in the YAML file
# To help with this, you can use https://www.freeformatter.com/json-escape.html
usageMatchRegex:
# The following example shows how to detect `t("your.i18n.keys")`
# the `{key}` will be placed by a proper keypath matching regex,
# you can ignore it and use your own matching rules as well
- "[^\\w\\d]t\\(['\"`]({key})['\"`]"
# A RegEx to set a custom scope range. This scope will be used as a prefix when detecting keys
# and works like how the i18next framework identifies the namespace scope from the
# useTranslation() hook.
# You should unescape RegEx strings in order to fit in the YAML file
# To help with this, you can use https://www.freeformatter.com/json-escape.html
scopeRangeRegex: "useTranslation\\(\\s*\\[?\\s*['\"`](.*?)['\"`]"
# An array of strings containing refactor templates.
# The "$1" will be replaced by the keypath specified.
refactorTemplates:
- t("$1")
- ${t("$1")}
- <%= t("$1") %>
# If set to true, only enables this custom framework (will disable all built-in frameworks)
monopoly: true
-7
View File
@@ -1,7 +0,0 @@
# Review comments generated by i18n-ally. Please commit this file.
reviews:
help.inPageSearch:
description: >-
Describes the shortcut which triggers a search within the current
page/note only
+32 -20
View File
@@ -1,21 +1,33 @@
{
"editor.formatOnSave": false,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.eol": "\n",
"typescript.tsdk": "node_modules/typescript/lib",
"i18n-ally.sourceLanguage": "en",
"i18n-ally.keystyle": "nested",
"i18n-ally.localesPaths": [
"./src/public/translations",
"./translations"
],
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
}
"[javascript]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
"[json]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
"editor.formatOnSave": true,
"eslint.format.enable": true,
"eslint.probe": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"html",
"vue",
"markdown",
"json",
"jsonc"
],
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"html",
"vue",
"markdown",
"json",
"jsonc"
],
"files.eol": "\n",
}
-17
View File
@@ -1,17 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "errors",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"revealProblems": "never"
},
"runOptions": {
"runOn": "folderOpen"
}
}
]
}
+25 -43
View File
@@ -1,60 +1,42 @@
# !!! Don't try to build this Dockerfile directly, run it through bin/build-docker.sh script !!!
FROM node:20.15.1-bullseye-slim
# Configure system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
autoconf \
automake \
g++ \
gcc \
libtool \
make \
nasm \
libpng-dev \
python3 \
gosu \
&& rm -rf /var/lib/apt/lists/*
FROM node:18.18.2-alpine
# Create app directory
WORKDIR /usr/src/app
# Bundle app source
COPY . .
COPY server-package.json package.json
# Copy TypeScript build artifacts into the original directory structure.
# Copy the healthcheck
RUN cp -R build/src/* src/. && \
cp build/docker_healthcheck.js . && \
rm -r build && \
rm docker_healthcheck.ts
# Install app dependencies
RUN apt-get purge -y --auto-remove \
autoconf \
automake \
g++ \
gcc \
libtool \
make \
nasm \
libpng-dev \
python3 \
&& rm -rf /var/lib/apt/lists/*
RUN npm install && \
npm run webpack && \
npm prune --omit=dev
RUN cp src/public/app/share.js src/public/app-dist/. && \
cp -r src/public/app/doc_notes src/public/app-dist/. && \
rm -rf src/public/app && rm src/services/asset_path.ts
RUN set -x \
&& apk add --no-cache --virtual .build-dependencies \
autoconf \
automake \
g++ \
gcc \
libtool \
make \
nasm \
libpng-dev \
python3 \
&& npm install \
&& apk del .build-dependencies \
&& npm run webpack \
&& npm prune --omit=dev \
&& cp src/public/app/share.js src/public/app-dist/. \
&& cp -r src/public/app/doc_notes src/public/app-dist/. \
&& rm -rf src/public/app
# Some setup tools need to be kept
RUN apt-get update && apt-get install -y --no-install-recommends \
gosu \
&& rm -rf /var/lib/apt/lists/*
RUN apk add --no-cache su-exec shadow
# Add application user and setup proper volume permissions
RUN adduser -s /bin/false node; exit 0
# Start the application
EXPOSE 8080
CMD [ "./start-docker.sh" ]
HEALTHCHECK --start-period=10s CMD exec gosu node node docker_healthcheck.js
HEALTHCHECK --start-period=10s CMD exec su-exec node node docker_healthcheck.js
-53
View File
@@ -1,53 +0,0 @@
# !!! Don't try to build this Dockerfile directly, run it through bin/build-docker.sh script !!!
FROM node:20.15.1-alpine
# Configure system dependencies
RUN apk add --no-cache --virtual .build-dependencies \
autoconf \
automake \
g++ \
gcc \
libtool \
make \
nasm \
libpng-dev \
python3
# Create app directory
WORKDIR /usr/src/app
# Bundle app source
COPY . .
COPY server-package.json package.json
# Copy TypeScript build artifacts into the original directory structure.
# Copy the healthcheck
RUN cp -R build/src/* src/. && \
cp build/docker_healthcheck.js . && \
rm -r build && \
rm docker_healthcheck.ts
# Install app dependencies
RUN set -x && \
npm install && \
apk del .build-dependencies && \
npm run webpack && \
npm prune --omit=dev && \
cp src/public/app/share.js src/public/app-dist/. && \
cp -r src/public/app/doc_notes src/public/app-dist/. && \
rm -rf src/public/app && \
rm src/services/asset_path.ts
# Some setup tools need to be kept
RUN apk add --no-cache su-exec shadow
# Add application user and setup proper volume permissions
RUN adduser -s /bin/false node; exit 0
# Start the application
EXPOSE 8080
CMD [ "./start-docker.sh" ]
HEALTHCHECK --start-period=10s CMD exec su-exec node node docker_healthcheck.js
+40 -55
View File
@@ -1,97 +1,82 @@
# TriliumNext Notes
# Trilium Notes
[English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md)
[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
TriliumNext Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://triliumnext.github.io/Docs/Wiki/screenshot-tour)以快速了解:
[![Join the chat at https://gitter.im/trilium-notes/Lobby](https://badges.gitter.im/trilium-notes/Lobby.svg)](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Trilium Notes 是一个层次化的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://github.com/zadam/trilium/wiki/Screenshot-tour)以快速了解:
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="https://github.com/TriliumNext/Docs/blob/main/Wiki/images/screenshot.png?raw=true" alt="Trilium Screenshot" width="1000"></a>
![](https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png)
## ⚠️ 为什么选择TriliumNext
Ukraine is currently suffering from Russian aggression, please consider donating to [one of these charities](https://old.reddit.com/r/ukraine/comments/s6g5un/want_to_support_ukraine_heres_a_list_of_charities/).
[原始的Trilium项目目前处于维护模式](https://github.com/zadam/trilium/issues/4620)
<img src="https://upload.wikimedia.org/wikipedia/commons/4/49/Flag_of_Ukraine.svg" alt="drawing" width="600"/>
<img src="https://signmyrocket.com//uploads/2b2a523cd0c0e76cdbba95a89a9636b2_1676971281.jpg" alt="Trilium Notes supports Ukraine!" width="600"/>
## 🗭 与我们讨论
## 特性
欢迎加入我们的官方讨论和社区。我们专注于Trilium的开发,乐于听取您对功能、建议或问题的意见!
- [Matrix](https://matrix.to/#/#triliumnext:matrix.org)(用于同步讨论)
- [Github Discussions](https://github.com/TriliumNext/Notes/discussions)(用于异步讨论)
- [Wiki](https://triliumnext.github.io/Docs/)(用于常见操作问题和用户指南)
上面链接的两个房间是镜像的,所以您可以在任意平台上使用XMPP或者Matrix来和我们交流。
### 非官方社区
[Trilium Rocks](https://discord.gg/aqdX9mXX4r)
## 🎁 特性
* 笔记可以排列成任意深的树。单个笔记可以放在树中的多个位置(请参阅[克隆](https://triliumnext.github.io/Docs/Wiki/cloning-notes)
* 丰富的所见即所得笔记编辑功能,包括带有 Markdown [自动格式化功能的](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)表格,图像和[数学公式](https://triliumnext.github.io/Docs/Wiki/text-notes#math-support)
* 支持编辑[使用源代码的笔记](https://triliumnext.github.io/Docs/Wiki/code-notes),包括语法高亮显示
* 笔记之间快速[导航](https://triliumnext.github.io/Docs/Wiki/note-navigation),全文搜索和[提升笔记](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
* 无缝[笔记版本控制](https://triliumnext.github.io/Docs/Wiki/note-revisions)
* 笔记[属性](https://triliumnext.github.io/Docs/Wiki/attributes)可用于笔记组织,查询和高级[脚本编写](https://triliumnext.github.io/Docs/Wiki/scripts)
* [同步](https://triliumnext.github.io/Docs/Wiki/synchronization)与自托管同步服务器
* 笔记可以排列成任意深的树。单个笔记可以放在树中的多个位置(请参阅[克隆](https://github.com/zadam/trilium/wiki/Cloning-notes)
* 丰富的所见即所得笔记编辑功能,包括带有 Markdown [自动格式化功能的](https://github.com/zadam/trilium/wiki/Text-notes#autoformat)表格,图像和[数学](https://github.com/zadam/trilium/wiki/Text-notes#math-support)
* 支持编辑[使用源代码的笔记](https://github.com/zadam/trilium/wiki/Code-notes),包括语法高亮显示
* 笔记之间快速[导航](https://github.com/zadam/trilium/wiki/Note-navigation),全文搜索和[笔记聚焦](https://github.com/zadam/trilium/wiki/Note-hoisting)
* 无缝[笔记版本控制](https://github.com/zadam/trilium/wiki/Note-revisions)
* 笔记[属性](https://github.com/zadam/trilium/wiki/Attributes)可用于笔记组织,查询和高级[脚本编写](https://github.com/zadam/trilium/wiki/Scripts)
* [同步](https://github.com/zadam/trilium/wiki/Synchronization)与自托管同步服务器
* 有一个[第三方提供的同步服务器托管服务](https://trilium.cc/paid-hosting)
* 公开地[分享](https://triliumnext.github.io/Docs/Wiki/sharing)(发布)笔记到互联网
* 具有按笔记粒度的强大的[笔记加密](https://triliumnext.github.io/Docs/Wiki/protected-notes)
* 公开地[分享](https://github.com/zadam/trilium/wiki/Sharing)(发布)笔记到互联网
* 具有按笔记粒度的强大的[笔记加密](https://github.com/zadam/trilium/wiki/Protected-notes)
* 使用自带的 Excalidraw 来绘制图表(笔记类型“画布”)
* [关系图](https://triliumnext.github.io/Docs/Wiki/relation-map)和[链接图](https://triliumnext.github.io/Docs/Wiki/link-map),用于可视化笔记及其关系
* [脚本](https://triliumnext.github.io/Docs/Wiki/scripts) - 请参阅[高级功能展示](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
* 可用于自动化的 [REST API](https://triliumnext.github.io/Docs/Wiki/etapi)
* [关系图](https://github.com/zadam/trilium/wiki/Relation-map)和[链接图](https://github.com/zadam/trilium/wiki/Link-map),用于可视化笔记及其关系
* [脚本](https://github.com/zadam/trilium/wiki/Scripts) - 请参阅[高级功能展示](https://github.com/zadam/trilium/wiki/Advanced-showcases)
* 在拥有超过 10 万条笔记时仍能保持良好的可用性和性能
* 针对智能手机和平板电脑进行优化的[用于移动设备的前端](https://triliumnext.github.io/Docs/Wiki/mobile-frontend)
* [夜间主题](https://triliumnext.github.io/Docs/Wiki/themes)
* [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) 和 [Markdown 导入导出](https://triliumnext.github.io/Docs/Wiki/markdown)功能
* 使用[网页剪藏](https://triliumnext.github.io/Docs/Wiki/web-clipper)轻松保存互联网上的内容
* 针对智能手机和平板电脑进行优化的[用于移动设备的前端](https://github.com/zadam/trilium/wiki/Mobile-frontend)
* [夜间主题](https://github.com/zadam/trilium/wiki/Themes)
* [Evernote](https://github.com/zadam/trilium/wiki/Evernote-import) 和 [Markdown 导入导出](https://github.com/zadam/trilium/wiki/Markdown)功能
* 使用[网页剪藏](https://github.com/zadam/trilium/wiki/Web-clipper)轻松保存互联网上的内容
✨ 查看以下第三方资源,获取更多关于TriliumNext的好东西:
## 构建
- [awesome-trilium](https://github.com/Nriver/awesome-trilium):提供第三方主题、脚本、插件等资源的列表
- [TriliumRocks!](https://trilium.rocks/):提供教程、指南等更多内容。
Trilium 可以用作桌面应用程序(Linux 和 Windows)或服务器(Linux)上托管的 Web 应用程序。虽然有 macOS 版本的桌面应用程序,但它[不受支持](https://github.com/zadam/trilium/wiki/FAQ#mac-os-support)
## 🏗 构建
Trilium 可以用作桌面应用程序(Linux 和 Windows)或服务器(Linux)上托管的 Web 应用程序。虽然有 macOS 版本的桌面应用程序,但它[不受支持](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support)。
* 如果要在桌面上使用 Trilium,请从[最新版本](https://github.com/TriliumNext/Notes/releases/latest)下载适用于您平台的二进制版本,解压缩该软件包并运行`trilium`可执行文件。
* 如果要在服务器上安装 Trilium,请参考[此页面](https://triliumnext.github.io/Docs/Wiki/server-installation)。
* 如果要在桌面上使用 Trilium,请从[最新版本](https://github.com/zadam/trilium/releases/latest)下载适用于您平台的二进制版本,解压缩该软件包并运行`trilium`可执行文件。
* 如果要在服务器上安装 Trilium,请参考[此页面](https://github.com/zadam/trilium/wiki/Server-installation)。
* 当前仅支持(测试过)最近发布的 Chrome 和 Firefox 浏览器。
Trilium 也提供 Flatpak
[<img width="240" src="https://flathub.org/assets/badges/flathub-badge-en.png">](https://flathub.org/apps/details/com.github.zadam.trilium)
## 📝 文档
## 文档
[有关文档页面的完整列表,请参见 Wiki。](https://triliumnext.github.io/Docs/)
[有关文档页面的完整列表,请参见 Wiki。](https://github.com/zadam/trilium/wiki/)
* [Wiki 的中文翻译版本](https://github.com/baddate/trilium/wiki/)
您还可以阅读[个人知识库模式](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge),以获取有关如何使用 Trilium 的灵感。
您还可以阅读[个人知识库模式](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base),以获取有关如何使用 Trilium 的灵感。
## 💻 贡献
## 贡献
使用基于浏览器的开发环境
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/zadam/trilium)
或者克隆本仓库到本地,并运行
```shell
```
npm install
npm run start-server
```
## 👏 致谢
## 致谢
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - 市面上最好的所见即所得编辑器,拥有互动性强且聆听能力强的团队
* [FancyTree](https://github.com/mar10/fancytree) - 一个非常丰富的关于树的库,强大到没有对手。没有它,Trilium Notes 将不会如此。
* [CodeMirror](https://github.com/codemirror/CodeMirror) - 支持大量语言的代码编辑器
* [jsPlumb](https://github.com/jsplumb/jsplumb) - 强大的可视化连接库。用于[关系图](https://triliumnext.github.io/Docs/Wiki/relation-map)和[链接图](https://triliumnext.github.io/Docs/Wiki/link-map)
* [jsPlumb](https://github.com/jsplumb/jsplumb) - 强大的可视化连接库。用于[关系图](https://github.com/zadam/trilium/wiki/Relation-map)和[链接图](https://github.com/zadam/trilium/wiki/Link-map)
## 🤝 捐赠
## 捐赠
你可以通过 GitHub Sponsors[PayPal](https://paypal.me/za4am) 或者比特币 (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2) 来捐赠。
## 🔑 许可证
## 许可证
本程序是自由软件:你可以再发布本软件和/或修改本软件,只要你遵循 Free Software Foundation 发布的 GNU Affero General Public License 的第三版或者任何(由你选择)更晚的版本。
-106
View File
@@ -1,106 +0,0 @@
# TriliumNext Notes
[English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md)
TriliumNext Notes es una aplicación de toma de notas jerárquicas multi-plataforma y de código libre con un enfoque en la construcción de grandes bases de conocimiento personal.
Vea estas [capturas de pantalla](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) para un vistazo rápido:
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="https://github.com/TriliumNext/Docs/blob/main/Wiki/images/screenshot.png?raw=true" alt="Trilium Screenshot" width="1000"></a>
## ⚠️ ¿Por qué usar TriliumNext?
[El proyecto Trilium original está en modo de mantenimiento](https://github.com/zadam/trilium/issues/4620)
### ¿Cómo migrar desde Trilium?
No hay pasos de migración especiales para migrar de una instancia de zadam/Trilium a una instancia de TriliumNext/Notes. Simplemente actualice su instancia de Trilium a la última versión e [instale TriliumNext/Notes como de costumbre](#-Instalación)
## 💬 Discuta con nosotros
Siéntase libre de unirse a nuestras conversaciones oficiales. ¡Nos encantaría escuchar de las características, sugerencias o problemas que pueda tener!
- [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (Para discusiones síncronas)
- La sala `General` es replicada a [XMPP](xmpp:discuss@trilium.thisgreat.party?join)
- [Discusiones de GitHub](https://github.com/TriliumNext/Notes/discussions) (Para discusiones asíncronas)
- [Wiki](https://triliumnext.github.io/Docs/) (Para preguntas frecuentes y guías de usuario)
## 🎁 Características
- Las notas pueden ser acomodadas en un árbol de profundidad arbitraria. Una sola nota puede ser colocada en múltiples lugares del árbol (vea [clonar](https://triliumnext.github.io/Docs/Wiki/cloning-notes)
- Edición de notas WYSIWYG enriquecida que incluye, por ejemplo, tablas, imágenes y [matemáticas](https://triliumnext.github.io/Docs/Wiki/text-notes) con [autoformato](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat) markdown
- Soporte para editar [notas con código fuente](https://triliumnext.github.io/Docs/Wiki/code-notes), incluyendo resaltado de sintaxis
- Rápida y sencilla [navegación entre notas](https://triliumnext.github.io/Docs/Wiki/note-navigation), búsqueda de texto completo y [elevación de notas](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
- [Versionado de notas](https://triliumnext.github.io/Docs/Wiki/note-revisions) sutil
- Los [atributos](https://triliumnext.github.io/Docs/Wiki/attributes) de las notas pueden utilizarse para organización, realizar consultas y [scripts](https://triliumnext.github.io/Docs/Wiki/scripts) avanzados
- [Sincronización](https://triliumnext.github.io/Docs/Wiki/synchronization) con servidor de sincronización propio
- existe un [servicio de terceros para alojar el servidor de sincronización](https://trilium.cc/paid-hosting)
- [Compartir](https://triliumnext.github.io/Docs/Wiki/sharing) (publicar) notas al Internet público
- Fuerte [encriptación de notas](https://triliumnext.github.io/Docs/Wiki/protected-notes) con granularidad para cada nota
- Esbozo de diagramas con Excalidraw incorporado (tipo de nota «canvas»)
- [Mapas de relaciones](<https://triliumnext.github.io/Docs/Wiki/relation-map>) y [mapas de enlaces](https://triliumnext.github.io/Docs/Wiki/link-map) para visualizar las notas y sus relaciones
- [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - vea [casos de uso avanzados](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
- [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) para automatización
- Escala bien tanto en uso como en rendimiento a partir de 100,000 notas
- [Interfaz móvil](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) optimizada para teléfonos inteligentes y tabletas
- [Tema nocturno](https://triliumnext.github.io/Docs/Wiki/themes)
- Importación y exportación de [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) y [Markdown](https://triliumnext.github.io/Docs/Wiki/markdown)
- [Web Clipper](https://triliumnext.github.io/Docs/Wiki/web-clipper) para guardar fácilmente contenido web
✨ Consulte los/las siguientes recursos/comunidades de terceros para obtener más información sobre complementos para TriliumNext:
- [awesome-trilium](https://github.com/Nriver/awesome-trilium) para temas, scripts, plugins y más de terceros.
- [TriliumRocks!](https://trilium.rocks/) para tutoriales, guías y mucho más.
## 🏗 Instalación
### Escritorio
Para usar TriliumNext en su máquina de escritorio (Linux, MacOS y Windows) tiene algunas opciones:
- Descargue la versión binaria para su plataforma desde la [página de lanzamientos](https://github.com/TriliumNext/Notes/releases/latest), descomprima el paquete y ejecute el ejecutable `trilium`.
- Acceda a TriliumNext a través de la interfaz web de una instalación de servidor (ver más abajo)
- Actualmente solo las últimas versiones de Chrome y Firefox son compatibles (y están probadas).
- (Próximamente) TriliumNext también se proporcionará como un Flatpak
### Móvil
Para usar TriliumNext en un dispositivo móvil:
- Utilice un navegador web móvil para acceder a la interfaz móvil de una instalación de servidor (ver más abajo)
- El uso de una aplicación móvil aún no está soportado ([vea aquí](https://github.com/TriliumNext/Notes/issues/72)) para seguir las mejoras móviles.
### Servidor
Para instalar TriliumNext en su servidor (incluyendo vía Docker desde [Dockerhub](https://hub.docker.com/r/triliumnext/notes)) siga la [documentación de instalación de servidor](https://triliumnext.github.io/Docs/Wiki/server-installation).
## 📝 Documentación
[Vea la Wiki para la lista completa de páginas de documentación.](https://triliumnext.github.io/Docs)
También puede leer [Patrones para una base de conocimiento personal](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge) para obtener un poco de inspiración de como podría usar TriliumNext.
## 💻 Contribuir
Clone localmente y ejecute
```shell
npm install
npm run start-server
```
## 👏 Reconocimientos
- [CKEditor 5](https://github.com/ckeditor/ckeditor5) - el mejor editor WYSIWYG en el mercado, equipo muy interactivo y atento
- [FancyTree](https://github.com/mar10/fancytree) - biblioteca de árbol muy rica en funciones sin competencia real. TriliumNext Notes no sería lo mismo sin esta.
- [CodeMirror](https://github.com/codemirror/CodeMirror) - editor de código con soporte para una gran cantidad de lenguajes
- [jsPlumb](https://github.com/jsplumb/jsplumb) - biblioteca de conectividad visual sin competencia. Usado en [mapas de relación](https://triliumnext.github.io/Docs/Wiki/Relation-map) y [mapas de enlace](https://triliumnext.github.io/Docs/Wiki/Link-map)
## 🤝 Soporte
Puede apoyar al desarrollador original de Trilium usando GitHub Sponsors, [PayPal](https://paypal.me/za4am) o Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
Apoyo para la organización TriliumNext será posible en un futuro próximo.
## 🔑 Licencia
Este programa es software libre: puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de Affero GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.
-93
View File
@@ -1,93 +0,0 @@
# TriliumNext Notes
[English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md)
TriliumNext Notes è un'applicazione per appunti ad organizzazione gerarchica, studiata per la costruzione di archivi di conoscenza personali di grandi dimensioni.
Vedi [fotografie](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) per una panoramica veloce:
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="https://github.com/TriliumNext/Docs/blob/main/Wiki/images/screenshot.png?raw=true" alt="Trilium Screenshot" width="1000"></a>
## ⚠️ Perchè TriliumNext?
[Il progetto originale Trilium è in modalità di manutenzione](https://github.com/zadam/trilium/issues/4620)
## 🗭 Discuti con noi
Sentiti libero di unirti alle nostre discussioni ufficiali e alla nostra comunità. Siamo concentrati sullo sviluppo di Trilium e ci piacerebbe sapere quali funzioni, suggerimenti o eventuali problemi hai!
- [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (Per discussioni sincrone)
- [Discussioni Github](https://github.com/TriliumNext/Notes/discussions) (Per discussioni asincrone)
- [Wiki](https://triliumnext.github.io/Docs/) (Per le domande più comuni e le guide per l'utente)
Le due stanze linkate sopra sono connesse e contengono gli stessi messaggi, quindi puoi usare XMPP o Matrix da qualsiasi client tu preferisca, praticamente su qualsiasi piattaforma!
### Comunità non ufficiali
[Trilium Rocks](https://discord.gg/aqdX9mXX4r)
## 🎁 Funzionalità
* Gli appunti possono essere organizzati in un albero di profondità arbitraria. Un singolo appunto può essere collocato in più posti nell'albero (vedi [clonazione](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
* Ricco editor visuale (WYSIWYG), con supporto -tra l'altro- per tabelle, immagini ed [espressioni matematiche](https://triliumnext.github.io/Docs/Wiki/text-notes#math-support) e con [formattazione automatica](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat) per markdown
* Supporto per la modifica di [appunti con codice sorgente](https://triliumnext.github.io/Docs/Wiki/code-notes), con evidenziazione della sintassi
* [Navigazione veloce](https://triliumnext.github.io/Docs/Wiki/note-navigation) tra gli appunti, ricerca testuale completa e [fissaggio degli appunti](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
* Supporto integrato ed automatico per le [revisioni degli appunti](https://triliumnext.github.io/Docs/Wiki/note-revisions)
* Gli [attributi](https://triliumnext.github.io/Docs/Wiki/attributes) degli appunti possono essere utilizzati per l'organizzazione, per l'interrogazione e per lo scripting avanzato (prorgrammazione).
* [Sincronizzazione](https://triliumnext.github.io/Docs/Wiki/synchronization) con un server di sincronizzazione auto-ospitato
* c'è un [servizio di terze parti per ospitare server di sincronizzazione](https://trilium.cc/paid-hosting)
* [Condivisione](https://triliumnext.github.io/Docs/Wiki/sharing) (pubblicazione) di appunti sull'internet pubblico
* Robusta [crittografia](https://triliumnext.github.io/Docs/Wiki/protected-notes) configurabile singolarmente per ogni appunto
* Disegno di diagrammi con Excalidraw (tipo di appunto "canvas")
* [Mappe relazionali](https://triliumnext.github.io/Docs/Wiki/relation-map) e [mappe di collegamenti](https://triliumnext.github.io/Docs/Wiki/link-map) per visualizzare gli appunti e le loro relazioni
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - vedi [Esempi avanzati](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
* [API REST](https://triliumnext.github.io/Docs/Wiki/etapi) per l'automazione
* Si adatta bene sia in termini di usabilità che di prestazioni fino ad oltre 100 000 appunti
* Interfaccia utente ottimizzata per il [mobile](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) (smartphone e tablet)
* [Tema Notturno](https://triliumnext.github.io/Docs/Wiki/themes)
* Supporto per importazione ed esportazione da e per [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) e [Markdown import](https://triliumnext.github.io/Docs/Wiki/markdown)
* [Web Clipper](https://triliumnext.github.io/Docs/Wiki/web-clipper) per il salvataggio facile di contenuti web
✨ Dai un'occhiata alle seguenti risorse di terze parti per scoprire altre bellezze legate a TriliumNext:
-[awesome-trilium](https://github.com/Nriver/awesome-trilium) per temi, script, plugin e altro di terze parti.
- [TriliumRocks!](https://trilium.rocks/) per tutorial, guide e molto altro.
## 🏗 Rilasci
Trilium è fornito come applicazione desktop (Linux e Windows) o come applicazione web ospitata sul tuo server (Linux). La versione desktop per Mac OS è disponibile, ma [non è supportata](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support).
* Se vuoi usare Trilium sul tuo desktop, scarica il rilascio binario per la tua piattaforma dall'[ultimo rilascio](https://github.com/TriliumNext/Notes/releases/latest), decomprimi l'archivio e avvia l'eseguibile ```trilium```.
* Se vuoi installare Trilium su un server, segui [questa pagina](https://triliumnext.github.io/Docs/Wiki/server-installation).
* Per ora solo Chrome e Firefox sono i browser supportati (testati).
TriliumNext sarà fornito anche come Flatpak:
<img width="240" src="https://flathub.org/assets/badges/flathub-badge-en.png">
## 📝 Documentazione
[Vedi la wiki per una lista completa delle pagine di documentazione.](https://triliumnext.github.io/Docs/)
Puoi anche leggere ["Patterns of personal knowledge base"](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge) per avere un'ispirazione su come potresti utilizzare Trilium.
## 💻 Contribuire
Clona localmente ed esegui
```shell
npm install
npm run start-server
```
## 👏 Riconoscimenti
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - miglior editor visuale (WYSIWYG) sul mercato, squadra di sviluppo attenta e reattiva
* [FancyTree](https://github.com/mar10/fancytree) - libreria per alberi molto ricca di funzionalità, senza pari. Trilium Notes non sarebbe lo stesso senza di essa.
* [CodeMirror](https://github.com/codemirror/CodeMirror) - editor di codice con supporto per un'enorme quantità di linguaggi.
* [jsPlumb](https://github.com/jsplumb/jsplumb) - libreria per la connettività visuale senza pari. Utilizzata per [mappe relazionali](https://triliumnext.github.io/Docs/Wiki/relation-map) e [mappe di collegamenti](https://triliumnext.github.io/Docs/Wiki/link-map).
## 🤝 Supporto
Puoi sostenere lo sviluppatore originale di Trilium utilizzando gli sponsor di GitHub, [PayPal](https://paypal.me/za4am) o Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
Il supporto all'organizzazione TriliumNext sarà possibile nel prossimo futuro.
## 🔑 Licenza
Questo programma è software libero: è possibile redistribuirlo e/o modificarlo nei termini della GNU Affero General Public License come pubblicata dalla Free Software Foundation, sia la versione 3 della Licenza, o (a propria scelta) qualsiasi versione successiva.
+38 -28
View File
@@ -1,41 +1,48 @@
# TriliumNext Notes
# Trilium Notes
[English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md)
[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
Trilium Notes は、大規模な個人知識ベースの構築に焦点を当てた、階層型ノートアプリケーションです。概要は[スクリーンショット](https://triliumnext.github.io/Docs/Wiki/screenshot-tour)をご覧ください:
Trilium Notes は、大規模な個人知識ベースの構築に焦点を当てた、階層型ノートアプリケーションです。概要は[スクリーンショット](https://github.com/zadam/trilium/wiki/Screenshot-tour)をご覧ください:
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png" alt="Trilium Screenshot" width="1000"></a>
<a href="https://github.com/zadam/trilium/wiki/Screenshot-tour"><img src="https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png" alt="Trilium Screenshot" width="1000"></a>
ウクライナは現在、ロシアの侵略から自国を守っています。[ウクライナ軍や人道的な慈善団体への寄付](https://standforukraine.com/)をご検討ください。
<p float="left">
<img src="https://upload.wikimedia.org/wikipedia/commons/4/49/Flag_of_Ukraine.svg" alt="drawing" width="400"/>
<img src="https://signmyrocket.com//uploads/2b2a523cd0c0e76cdbba95a89a9636b2_1676971281.jpg" alt="Trilium Notes supports Ukraine!" width="570"/>
</p>
## 🎁 特徴
* ノートは、任意の深さのツリーに配置できます。単一のノートをツリー内の複数の場所に配置できます ([cloning](https://triliumnext.github.io/Docs/Wiki/cloning-notes) を参照)
* マークダウン[オートフォーマット](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)による、表、画像、[数学](https://triliumnext.github.io/Docs/Wiki/text-notes#math-support)などの豊富な WYSIWYG ノート編集機能
* シンタックスハイライトを含む[ソースコード付きノート](https://triliumnext.github.io/Docs/Wiki/code-notes)の編集をサポート
* [ノート間のナビゲーション](https://triliumnext.github.io/Docs/Wiki/note-navigation)、全文検索、[ノートホイスト](https://triliumnext.github.io/Docs/Wiki/note-hoisting)が高速かつ簡単に行えます
* シームレスな[ノートのバージョン管理](https://triliumnext.github.io/Docs/Wiki/note-revisions)
* ノート[属性](https://triliumnext.github.io/Docs/Wiki/Attributes)は、ノート整理、クエリ、高度な[スクリプト](https://triliumnext.github.io/Docs/Wiki/scripts)に使用できます
* 自己ホスト型同期サーバーとの[同期](https://triliumnext.github.io/Docs/Wiki/synchronization)
* ノートは、任意の深さのツリーに配置できます。単一のノートをツリー内の複数の場所に配置できます ([cloning](https://github.com/zadam/trilium/wiki/Cloning-notes) を参照)
* マークダウン[オートフォーマット](https://github.com/zadam/trilium/wiki/Text-notes#autoformat)による、表、画像、[数学](https://github.com/zadam/trilium/wiki/Text-notes#math-support)などの豊富な WYSIWYG ノート編集機能
* シンタックスハイライトを含む[ソースコード付きノート](https://github.com/zadam/trilium/wiki/Code-notes)の編集をサポート
* [ノート間のナビゲーション](https://github.com/zadam/trilium/wiki/Note-navigation)、全文検索、[ノートホイスト](https://github.com/zadam/trilium/wiki/Note-hoisting)が高速かつ簡単に行えます
* シームレスな[ノートのバージョン管理](https://github.com/zadam/trilium/wiki/Note-revisions)
* ノート[属性](https://github.com/zadam/trilium/wiki/Attributes)は、ノート整理、クエリ、高度な[スクリプト](https://github.com/zadam/trilium/wiki/Scripts)に使用できます
* 自己ホスト型同期サーバーとの[同期](https://github.com/zadam/trilium/wiki/Synchronization)
* [同期サーバーをホストするサードパーティ・サービス](https://trilium.cc/paid-hosting)があります
* 公開インターネットへのノートの[共有](https://triliumnext.github.io/Docs/Wiki/sharing)(公開)
* ノートごとの粒度を持つ強力な[ノート暗号化](https://triliumnext.github.io/Docs/Wiki/protected-notes)
* 公開インターネットへのノートの[共有](https://github.com/zadam/trilium/wiki/Sharing)(公開)
* ノートごとの粒度を持つ強力な[ノート暗号化](https://github.com/zadam/trilium/wiki/Protected-notes)
* 組み込みの Excalidraw を使用した図のスケッチ (ノート タイプ"キャンバス")
* ノートとその関係を可視化するための[関係図](https://triliumnext.github.io/Docs/Wiki/relation-map)と[リンクマップ](https://triliumnext.github.io/Docs/Wiki/link-map)
* [スクリプティング](https://triliumnext.github.io/Docs/Wiki/scripts) - [高度なショーケース](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)を参照
* 自動化のための [REST API](https://triliumnext.github.io/Docs/Wiki/etapi)
* ノートとその関係を可視化するための[関係図](https://github.com/zadam/trilium/wiki/Relation-map)と[リンクマップ](https://github.com/zadam/trilium/wiki/Link-map)
* [スクリプティング](https://github.com/zadam/trilium/wiki/Scripts) - [高度なショーケース](https://github.com/zadam/trilium/wiki/Advanced-showcases)を参照
* 自動化のための [REST API](https://github.com/zadam/trilium/wiki/ETAPI)
* ユーザビリティとパフォーマンスの両方で 100 000 ノート以上に拡張可能
* スマートフォンとタブレット向けのタッチ最適化[モバイルフロントエンド](https://triliumnext.github.io/Docs/Wiki/mobile-frontend)
* [ナイトテーマ](https://triliumnext.github.io/Docs/Wiki/themes)
* [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) と [Markdown のインポートとエクスポート](https://triliumnext.github.io/Docs/Wiki/Markdown)
* Web コンテンツを簡単に保存するための [Web クリッパー](https://triliumnext.github.io/Docs/Wiki/web-clipper)
* スマートフォンとタブレット向けのタッチ最適化[モバイルフロントエンド](https://github.com/zadam/trilium/wiki/Mobile-frontend)
* [ナイトテーマ](https://github.com/zadam/trilium/wiki/Themes)
* [Evernote](https://github.com/zadam/trilium/wiki/Evernote-import) と [Markdown のインポートとエクスポート](https://github.com/zadam/trilium/wiki/Markdown)
* Web コンテンツを簡単に保存するための [Web クリッパー](https://github.com/zadam/trilium/wiki/Web-clipper)
サードパーティのテーマ、スクリプト、プラグインなどは、 [awesome-trilium](https://github.com/Nriver/awesome-trilium) をチェックしてください。
## 🏗 ビルド
Trilium は、デスクトップアプリケーション(Linux、Windows)またはサーバー上でホストされるウェブアプリケーション(Linux)として提供されます。 Mac OS のデスクトップビルドも利用可能ですが、 [unsupported](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support) となっています。
Trilium は、デスクトップアプリケーション(Linux、Windows)またはサーバー上でホストされるウェブアプリケーション(Linux)として提供されます。 Mac OS のデスクトップビルドも利用可能ですが、 [unsupported](https://github.com/zadam/trilium/wiki/FAQ#mac-os-support) となっています。
* デスクトップで Trilium を使用したい場合は、 [latest release](https://github.com/TriliumNext/Notes/releases/latest) からお使いのプラットフォームのバイナリリリースをダウンロードし、パッケージを解凍して ``trilium`` の実行ファイルを実行してください。
* サーバーに Trilium をインストールする場合は、[このページ](https://triliumnext.github.io/Docs/Wiki/server-installation)に従ってください。
* デスクトップで Trilium を使用したい場合は、 [latest release](https://github.com/zadam/trilium/releases/latest) からお使いのプラットフォームのバイナリリリースをダウンロードし、パッケージを解凍して ``trilium`` の実行ファイルを実行してください。
* サーバーに Trilium をインストールする場合は、[このページ](https://github.com/zadam/trilium/wiki/Server-installation)に従ってください。
* 現在、対応(動作確認)しているブラウザは、最近の Chrome と Firefox のみです。
Trilium は Flatpak としても提供されます:
@@ -44,15 +51,18 @@ Trilium は Flatpak としても提供されます:
## 📝 ドキュメント
[ドキュメントページの全リストはwikiをご覧ください。](https://triliumnext.github.io/Docs/)
[ドキュメントページの全リストはwikiをご覧ください。](https://github.com/zadam/trilium/wiki/)
また、[個人的な知識基盤のパターン](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge)を読むと、 Trilium の使い方のヒントを得ることができます。
また、[個人的な知識基盤のパターン](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base)を読むと、 Trilium の使い方のヒントを得ることができます。
## 💻 コントリビュート
または、ローカルにクローンして実行
ブラウザベースの開発環境を使用
```shell
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/zadam/trilium)
または、ローカルにクローンして実行
```
npm install
npm run start-server
```
@@ -62,7 +72,7 @@ npm run start-server
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - 市場で最高の WYSIWYG エディター、非常にインタラクティブで聞き上手なチーム
* [FancyTree](https://github.com/mar10/fancytree) - 真の競争相手がいない、非常に機能豊富なツリーライブラリです。 Trilium Notes は、これなしでは成り立たないでしょう。
* [CodeMirror](https://github.com/codemirror/CodeMirror) - 膨大な数の言語をサポートするコードエディタ
* [jsPlumb](https://github.com/jsplumb/jsplumb) - 競合のないビジュアルコネクティビティライブラリです。[関係図](https://triliumnext.github.io/Docs/Wiki/relation-map)、[リンク図](https://triliumnext.github.io/Docs/Wiki/link-map)で使用。
* [jsPlumb](https://github.com/jsplumb/jsplumb) - 競合のないビジュアルコネクティビティライブラリです。[関係図](https://github.com/zadam/trilium/wiki/Relation-map)、[リンク図](https://github.com/zadam/trilium/wiki/Link-map)で使用。
## 🤝 サポート
+47 -70
View File
@@ -1,111 +1,88 @@
# TriliumNext Notes
# Trilium Notes
[English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md)
## Trilium is in maintenance mode - see details in https://github.com/zadam/trilium/issues/4620
TriliumNext Notes is an open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases.
Preliminary disccusions on the successor organization are taking place in [Trilium Next discussions](https://github.com/orgs/TriliumNext/discussions).
See [screenshots](https://triliumnext.github.io/Docs/Wiki/screenshot-tour) for quick overview:
[![Join the chat at https://gitter.im/trilium-notes/Lobby](https://badges.gitter.im/trilium-notes/Lobby.svg)](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="https://github.com/TriliumNext/Docs/blob/main/Wiki/images/screenshot.png?raw=true" alt="Trilium Screenshot" width="1000"></a>
Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases.
## ⚠️ Why TriliumNext?
See [screenshots](https://github.com/zadam/trilium/wiki/Screenshot-tour) for quick overview:
[The original Trilium project is in maintenance mode](https://github.com/zadam/trilium/issues/4620)
<a href="https://github.com/zadam/trilium/wiki/Screenshot-tour"><img src="https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png" alt="Trilium Screenshot" width="1000"></a>
### Migrating from Trilium?
Ukraine is currently defending itself from Russian aggression, please consider [donating to Ukrainian Army or humanitarian charities](https://standforukraine.com/).
There are no special migration steps to migrate from a zadam/Trilium instance to a TriliumNext/Notes instance. Just upgrade your Trilium instance to the latest version and [install TriliumNext/Notes as usual](#-installation)
## 💬 Discuss with us
Feel free to join our official conversations. We would love to hear what features, suggestions, or issues you may have!
- [Matrix](https://matrix.to/#/#triliumnext:matrix.org) (For synchronous discussions)
- The `General` Matrix room is also bridged to [XMPP](xmpp:discuss@trilium.thisgreat.party?join)
- [Github Discussions](https://github.com/TriliumNext/Notes/discussions) (For Asynchronous discussions)
- [Wiki](https://triliumnext.github.io/Docs/) (For common how-to questions and user guides)
<p float="left">
<img src="https://upload.wikimedia.org/wikipedia/commons/4/49/Flag_of_Ukraine.svg" alt="drawing" width="400"/>
<img src="https://signmyrocket.com//uploads/2b2a523cd0c0e76cdbba95a89a9636b2_1676971281.jpg" alt="Trilium Notes supports Ukraine!" width="570"/>
</p>
## 🎁 Features
* Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see [cloning](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
* Rich WYSIWYG note editing including e.g. tables, images and [math](https://triliumnext.github.io/Docs/Wiki/text-notes) with markdown [autoformat](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
* Support for editing [notes with source code](https://triliumnext.github.io/Docs/Wiki/code-notes), including syntax highlighting
* Fast and easy [navigation between notes](https://triliumnext.github.io/Docs/Wiki/note-navigation), full text search and [note hoisting](https://triliumnext.github.io/Docs/Wiki/note-hoisting)
* Seamless [note versioning](https://triliumnext.github.io/Docs/Wiki/note-revisions)
* Note [attributes](https://triliumnext.github.io/Docs/Wiki/attributes) can be used for note organization, querying and advanced [scripting](https://triliumnext.github.io/Docs/Wiki/scripts)
* [Synchronization](https://triliumnext.github.io/Docs/Wiki/synchronization) with self-hosted sync server
* Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see [cloning](https://github.com/zadam/trilium/wiki/Cloning-notes))
* Rich WYSIWYG note editing including e.g. tables, images and [math](https://github.com/zadam/trilium/wiki/Text-notes#math-support) with markdown [autoformat](https://github.com/zadam/trilium/wiki/Text-notes#autoformat)
* Support for editing [notes with source code](https://github.com/zadam/trilium/wiki/Code-notes), including syntax highlighting
* Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation), full text search and [note hoisting](https://github.com/zadam/trilium/wiki/Note-hoisting)
* Seamless [note versioning](https://github.com/zadam/trilium/wiki/Note-revisions)
* Note [attributes](https://github.com/zadam/trilium/wiki/Attributes) can be used for note organization, querying and advanced [scripting](https://github.com/zadam/trilium/wiki/Scripts)
* [Synchronization](https://github.com/zadam/trilium/wiki/Synchronization) with self-hosted sync server
* there's a [3rd party service for hosting synchronisation server](https://trilium.cc/paid-hosting)
* [Sharing](https://triliumnext.github.io/Docs/Wiki/sharing) (publishing) notes to public internet
* Strong [note encryption](https://triliumnext.github.io/Docs/Wiki/protected-notes) with per-note granularity
* [Sharing](https://github.com/zadam/trilium/wiki/Sharing) (publishing) notes to public internet
* Strong [note encryption](https://github.com/zadam/trilium/wiki/Protected-notes) with per-note granularity
* Sketching diagrams with built-in Excalidraw (note type "canvas")
* [Relation maps](https://triliumnext.github.io/Docs/Wiki/relation-map) and [link maps](https://triliumnext.github.io/Docs/Wiki/link-map) for visualizing notes and their relations
* [Scripting](https://triliumnext.github.io/Docs/Wiki/scripts) - see [Advanced showcases](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
* [REST API](https://triliumnext.github.io/Docs/Wiki/etapi) for automation
* [Relation maps](https://github.com/zadam/trilium/wiki/Relation-map) and [link maps](https://github.com/zadam/trilium/wiki/Link-map) for visualizing notes and their relations
* [Scripting](https://github.com/zadam/trilium/wiki/Scripts) - see [Advanced showcases](https://github.com/zadam/trilium/wiki/Advanced-showcases)
* [REST API](https://github.com/zadam/trilium/wiki/ETAPI) for automation
* Scales well in both usability and performance upwards of 100 000 notes
* Touch optimized [mobile frontend](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) for smartphones and tablets
* [Night theme](https://triliumnext.github.io/Docs/Wiki/themes)
* [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) and [Markdown import & export](https://triliumnext.github.io/Docs/Wiki/markdown)
* [Web Clipper](https://triliumnext.github.io/Docs/Wiki/web-clipper) for easy saving of web content
* Touch optimized [mobile frontend](https://github.com/zadam/trilium/wiki/Mobile-frontend) for smartphones and tablets
* [Night theme](https://github.com/zadam/trilium/wiki/Themes)
* [Evernote](https://github.com/zadam/trilium/wiki/Evernote-import) and [Markdown import & export](https://github.com/zadam/trilium/wiki/Markdown)
* [Web Clipper](https://github.com/zadam/trilium/wiki/Web-clipper) for easy saving of web content
Check out the following third-party resources/communities for more TriliumNext related goodies:
Check out [awesome-trilium](https://github.com/Nriver/awesome-trilium) for 3rd party themes, scripts, plugins and more.
- [awesome-trilium](https://github.com/Nriver/awesome-trilium) for 3rd party themes, scripts, plugins and more.
- [TriliumRocks!](https://trilium.rocks/) for tutorials, guides, and much more.
## 🏗 Builds
## 🏗 Installation
Trilium is provided as either desktop application (Linux and Windows) or web application hosted on your server (Linux). Mac OS desktop build is available, but it is [unsupported](https://github.com/zadam/trilium/wiki/FAQ#mac-os-support).
### Desktop
* If you want to use Trilium on the desktop, download binary release for your platform from [latest release](https://github.com/zadam/trilium/releases/latest), unzip the package and run ```trilium``` executable.
* If you want to install Trilium on server, follow [this page](https://github.com/zadam/trilium/wiki/Server-installation).
* Currently only recent Chrome and Firefox are supported (tested) browsers.
To use TriliumNext on your desktop machine (Linux, MacOS, and Windows) you have a few options:
Trilium is also provided as a Flatpak:
* Download the binary release for your platform from the [latest release page](https://github.com/TriliumNext/Notes/releases/latest), unzip the package and run the ```trilium``` executable.
* Access TriliumNext via the web interface of a server installation (see below)
* Currently only the latest versions of Chrome & Firefox are supported (and tested).
* (Coming Soon) TriliumNext will also be provided as a Flatpak
### Mobile
To use TriliumNext on a mobile device:
* Use a mobile web browser to access the mobile interface of a server installation (see below)
* Use of a mobile app is not yet supported ([see here](https://github.com/TriliumNext/Notes/issues/72)) to track mobile improvements.
### Server
To install TriliumNext on your own server (including via Docker from [Dockerhub](https://hub.docker.com/r/triliumnext/notes)) follow [the server installation docs](https://triliumnext.github.io/Docs/Wiki/server-installation).
[<img width="240" src="https://flathub.org/assets/badges/flathub-badge-en.png">](https://flathub.org/apps/details/com.github.zadam.trilium)
## 📝 Documentation
[See wiki for complete list of documentation pages.](https://triliumnext.github.io/Docs)
[See wiki for complete list of documentation pages.](https://github.com/zadam/trilium/wiki/)
You can also read [Patterns of personal knowledge base](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge) to get some inspiration on how you might use TriliumNext.
You can also read [Patterns of personal knowledge base](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base) to get some inspiration on how you might use Trilium.
## 💻 Contribute
### Code
Use a browser based dev environment
```shell
git clone https://github.com/TriliumNext/Notes.git
cd Notes
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/zadam/trilium)
Or clone locally and run
```
npm install
npm run start-server
```
### Documentation
Head on over to our [Docs repo](https://github.com/TriliumNext/Docs)
## 👏 Shoutouts
## 📢 Shoutouts
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - best WYSIWYG editor on the market, very interactive and listening team
* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. TriliumNext Notes would not be the same without it.
* [FancyTree](https://github.com/mar10/fancytree) - very feature rich tree library without real competition. Trilium Notes would not be the same without it.
* [CodeMirror](https://github.com/codemirror/CodeMirror) - code editor with support for huge amount of languages
* [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://triliumnext.github.io/Docs/Wiki/Relation-map) and [link maps](https://triliumnext.github.io/Docs/Wiki/Link-map)
* [jsPlumb](https://github.com/jsplumb/jsplumb) - visual connectivity library without competition. Used in [relation maps](https://github.com/zadam/trilium/wiki/Relation-map) and [link maps](https://github.com/zadam/trilium/wiki/Link-map)
## 🤝 Support
You can support the original Trilium developer using GitHub Sponsors, [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
Support for the TriliumNext organization will be possible in the near future.
You can support Trilium using GitHub Sponsors, [PayPal](https://paypal.me/za4am) or Bitcoin (bitcoin:bc1qv3svjn40v89mnkre5vyvs2xw6y8phaltl385d2).
## 🔑 License
+41 -32
View File
@@ -1,59 +1,68 @@
# TriliumNext Notes
# Trilium Notes
[English](./README.md) | [Chinese](./README-ZH_CN.md) | [Russian](./README.ru.md) | [Japanese](./README.ja.md) | [Italian](./README.it.md) | [Spanish](./README.es.md)
[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md) | [Japanese](https://github.com/zadam/trilium/blob/master/README.ja.md)
Trilium Notes – это приложение для заметок с иерархической структурой, ориентированное на создание больших персональных баз знаний. Для быстрого ознакомления посмотрите [скриншот-тур](https://triliumnext.github.io/Docs/Wiki/screenshot-tour):
[![Join the chat at https://gitter.im/trilium-notes/Lobby](https://badges.gitter.im/trilium-notes/Lobby.svg)](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Trilium Notes – это приложение для заметок с иерархической структурой, ориентированное на создание больших персональных баз знаний. Для быстрого ознакомления посмотрите [скриншот-тур](https://github.com/zadam/trilium/wiki/Screenshot-tour):
<a href="https://triliumnext.github.io/Docs/Wiki/screenshot-tour"><img src="https://github.com/TriliumNext/Docs/blob/main/Wiki/images/screenshot.png?raw=true" alt="Trilium Screenshot" width="1000"></a>
![](https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png)
## 🎁 Возможности
Ukraine is currently suffering from Russian aggression, please consider donating to [one of these charities](https://old.reddit.com/r/ukraine/comments/s6g5un/want_to_support_ukraine_heres_a_list_of_charities/).
* Заметки можно расположить в виде дерева произвольной глубины. Отдельную заметку можно разместить в нескольких местах дерева (см. [клонирование](https://triliumnext.github.io/Docs/Wiki/cloning-notes))
* Продвинутый визуальный редактор (WYSIWYG) позволяет работать с таблицами, изображениями, [формулами](https://triliumnext.github.io/Docs/Wiki/text-notes#math-support) и разметкой markdown, имеет [автоформатирование](https://triliumnext.github.io/Docs/Wiki/text-notes#autoformat)
* Редактирование [заметок с исходным кодом](https://triliumnext.github.io/Docs/Wiki/code-notes), включая подсветку синтаксиса
* Быстрая и простая [навигация между заметками](https://triliumnext.github.io/Docs/Wiki/note-navigation), полнотекстовый поиск и [выделение заметок](https://triliumnext.github.io/Docs/Wiki/note-hoisting) в отдельный блок
* Бесшовное [версионирование заметки](https://triliumnext.github.io/Docs/Wiki/note-revisions)
* Специальные [атрибуты](https://triliumnext.github.io/Docs/Wiki/attributes) позволяют гибко организовать структуру, используются для поиска и продвинутого [скриптинга](https://triliumnext.github.io/Docs/Wiki/scripts)
* [Синхронизация](https://triliumnext.github.io/Docs/Wiki/synchronization) заметок со своим сервером
* Надёжное [шифрование](https://triliumnext.github.io/Docs/Wiki/protected-notes) с детализацией по каждой заметке
* [Карты связей](https://triliumnext.github.io/Docs/Wiki/relation-map) и [карты ссылок](https://triliumnext.github.io/Docs/Wiki/link-map) для визуализации их взяимосвязей
* [Скрипты](https://triliumnext.github.io/Docs/Wiki/scripts) - см. [продвинутые примеры](https://triliumnext.github.io/Docs/Wiki/advanced-showcases)
<img src="https://upload.wikimedia.org/wikipedia/commons/4/49/Flag_of_Ukraine.svg" alt="drawing" width="600"/>
<img src="https://signmyrocket.com//uploads/2b2a523cd0c0e76cdbba95a89a9636b2_1676971281.jpg" alt="Trilium Notes supports Ukraine!" width="600"/>
## Возможности
* Заметки можно расположить в виде дерева произвольной глубины. Отдельную заметку можно разместить в нескольких местах дерева (см. [клонирование](https://github.com/zadam/trilium/wiki/Cloning-notes))
* Продвинутый визуальный редактор (WYSIWYG) позволяет работать с таблицами, изображениями, [формулами](https://github.com/zadam/trilium/wiki/Text-notes#math-support) и разметкой markdown, имеет [автоформатирование](https://github.com/zadam/trilium/wiki/Text-notes#autoformat)
* Редактирование [заметок с исходным кодом](https://github.com/zadam/trilium/wiki/Code-notes), включая подсветку синтаксиса
* Быстрая и простая [навигация между заметками](https://github.com/zadam/trilium/wiki/Note-navigation), полнотекстовый поиск и [выделение заметок](https://github.com/zadam/trilium/wiki/Note-hoisting) в отдельный блок
* Бесшовное [версионирование заметки](https://github.com/zadam/trilium/wiki/Note-revisions)
* Специальные [атрибуты](https://github.com/zadam/trilium/wiki/Attributes) позволяют гибко организовать структуру, используются для поиска и продвинутого [скриптинга](https://github.com/zadam/trilium/wiki/Scripts)
* [Синхронизация](https://github.com/zadam/trilium/wiki/Synchronization) заметок со своим сервером
* Надёжное [шифрование](https://github.com/zadam/trilium/wiki/Protected-notes) с детализацией по каждой заметке
* [Карты связей](https://github.com/zadam/trilium/wiki/Relation-map) и [карты ссылок](https://github.com/zadam/trilium/wiki/Link-map) для визуализации их взяимосвязей
* [Скрипты](https://github.com/zadam/trilium/wiki/Scripts) - см. [продвинутые примеры](https://github.com/zadam/trilium/wiki/Advanced-showcases)
* Хорошо масштабируется, как по удобству использования, так и по производительности до 100000 заметок
* Оптимизированный [мобильный фронтенд](https://triliumnext.github.io/Docs/Wiki/mobile-frontend) смартфонов и планшетов
* [Темная тема](https://triliumnext.github.io/Docs/Wiki/themes)
* Импорт и экпорт [Evernote](https://triliumnext.github.io/Docs/Wiki/evernote-import) и данных в [markdown](https://triliumnext.github.io/Docs/Wiki/markdown) формате
* [Web Clipper](https://triliumnext.github.io/Docs/Wiki/web-clipper) для удобного сохранения веб-контента
* Оптимизированный [мобильный фронтенд](https://github.com/zadam/trilium/wiki/Mobile-frontend) смартфонов и планшетов
* [Темная тема](https://github.com/zadam/trilium/wiki/Themes)
* Импорт и экпорт [Evernote](https://github.com/zadam/trilium/wiki/Evernote-import) и данных в [markdown](https://github.com/zadam/trilium/wiki/Markdown) формате
* [Web Clipper](https://github.com/zadam/trilium/wiki/Web-clipper) для удобного сохранения веб-контента
## 🏗 Сборки
## Сборки
Trilium предоставляется в виде десктопного приложения (Linux и Windows) или веб-приложения, размещенного на вашем сервере (Linux). Доступна сборка Mac OS, но она [не поддерживается](https://triliumnext.github.io/Docs/Wiki/faq#mac-os-support).
Trilium предоставляется в виде десктопного приложения (Linux и Windows) или веб-приложения, размещенного на вашем сервере (Linux). Доступна сборка Mac OS, но она [не поддерживается](https://github.com/zadam/trilium/wiki/FAQ#mac-os-support).
* Если вы хотите использовать Trilium на десктопе, скачайте архив для своей платформы со страницы [релизов](https://github.com/TriliumNext/Notes/releases/latest), распакуйте и запустите исполняемый файл ```trilium```.
* Если вы хотите установить Trilium на сервере, следуйте этой [инструкции](https://triliumnext.github.io/Docs/Wiki/server-installation).
* Если вы хотите использовать Trilium на десктопе, скачайте архив для своей платформы со страницы [релизов](https://github.com/zadam/trilium/releases/latest), распакуйте и запустите исполняемый файл ```trilium```.
* Если вы хотите установить Trilium на сервере, следуйте этой [инструкции](https://github.com/zadam/trilium/wiki/Server-installation).
* В данный момент поддерживаются (протестированы) последние версии браузеров Chrome и Firefox.
## 📝 Документация
## Документация
[Полный список страниц документации доступен в Wiki.](https://triliumnext.github.io/Docs/)
[Полный список страниц документации доступен в Wiki.](https://github.com/zadam/trilium/wiki/)
Вы также можете ознакомиться с [шаблонами персональных баз знаний](https://triliumnext.github.io/Docs/Wiki/patterns-of-personal-knowledge), чтобы получить представление о том, как можно использовать Trilium.
Вы также можете ознакомиться с [шаблонами персональных баз знаний](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base), чтобы получить представление о том, как можно использовать Trilium.
## 💻 Участвуйте в разработке
## Участвуйте в разработке
Используйте онлайн среду разработки в браузере
[![Открыть в Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/zadam/trilium)
Или склонируйте на своё устройство и запустите
```shell
```
npm install
npm run start-server
```
## 👏 Благодарности
## Благодарности
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - лучший WYSIWYG редактор, очень активная и внимательная команда.
* [FancyTree](https://github.com/mar10/fancytree) - многофункциональная библиотека для создания древовидных структур. Вне конкуренции. Без него Trilium Notes не были бы таким.
* [CodeMirror](https://github.com/codemirror/CodeMirror) - редактор кода с поддержкой огромного количество языков.
* [jsPlumb](https://github.com/jsplumb/jsplumb) - библиотека для визуализации связей. Вне конкуренции. Используется в [картах связей](https://triliumnext.github.io/Docs/Wiki/relation-map) и [картах ссылок](https://triliumnext.github.io/Docs/Wiki/link-map).
* [jsPlumb](https://github.com/jsplumb/jsplumb) - библиотека для визуализации связей. Вне конкуренции. Используется в [картах связей](https://github.com/zadam/trilium/wiki/Relation-map) и [картах ссылок](https://github.com/zadam/trilium/wiki/Link-map).
## 🔑 Лицензия
## Лицензия
Эта программа является бесплатным программным обеспечением: вы можете распространять и/или изменять ее в соответствии с условиями GNU Affero General Public License, опубликованной Free Software Foundation, либо версии 3 Лицензии, либо (по вашему выбору) любой более поздней версии.
+1 -1
View File
@@ -10,4 +10,4 @@ Description above is a general rule and may be altered on case by case basis.
## Reporting a Vulnerability
You can report low severity vulnerabilities as GitHub issues, more severe vulnerabilities should be reported to the email [contact@eliandoran.me](mailto:contact@eliandoran.me)
You can report low severity vulnerabilities as GitHub issues, more severe vulnerabilities should be reported to the email zadam.apps@gmail.com
-10
View File
@@ -1,10 +0,0 @@
#!/usr/bin/env bash
cloc HEAD \
--git --md \
--include-lang=javascript,typescript \
--found=filelist.txt \
--exclude-dir=public,libraries,views,docs
grep -R \.js$ filelist.txt
rm filelist.txt
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+7
View File
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
echo "Packaging debian x64 distribution..."
VERSION=`jq -r ".version" package.json`
./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64
+2 -7
View File
@@ -1,17 +1,12 @@
#!/usr/bin/env bash
set -e # Fail on any command error
VERSION=`jq -r ".version" package.json`
SERIES=${VERSION:0:4}-latest
cat package.json | grep -v electron > server-package.json
echo "Compiling typescript..."
npx tsc
sudo docker build -t triliumnext/notes:$VERSION --network host -t triliumnext/notes:$SERIES .
sudo docker build -t zadam/trilium:$VERSION --network host -t zadam/trilium:$SERIES .
if [[ $VERSION != *"beta"* ]]; then
sudo docker tag triliumnext/notes:$VERSION triliumnext/notes:latest
sudo docker tag zadam/trilium:$VERSION zadam/trilium:latest
fi
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
SRC_DIR=./dist/trilium-linux-x64-src
[ "$1" != "DONTCOPY" ] && ./bin/copy-trilium.sh "$SRC_DIR"
rm -r "$SRC_DIR"/src/public/app-dist/*.mobile.*
echo "Copying required linux-x64 binaries"
cp -r bin/better-sqlite3/linux-desktop-better_sqlite3.node "$SRC_DIR"/node_modules/better-sqlite3/build/Release/better_sqlite3.node
echo "Packaging linux x64 electron build"
./node_modules/.bin/electron-packager "$SRC_DIR" --asar --out=dist --executable-name=trilium --platform=linux --arch=x64 --overwrite
BUILD_DIR=./dist/trilium-linux-x64
rm -rf "$BUILD_DIR"
mv "./dist/Trilium Notes-linux-x64" "$BUILD_DIR"
cp images/app-icons/png/128x128.png "$BUILD_DIR"/icon.png
cp bin/tpl/anonymize-database.sql "$BUILD_DIR"/
cp -r dump-db "$BUILD_DIR"/
rm -rf "$BUILD_DIR"/dump-db/node_modules
for f in 'trilium-portable' 'trilium-safe-mode' 'trilium-no-cert-check'; do
cp bin/tpl/"$f".sh "$BUILD_DIR"/
chmod 755 "$BUILD_DIR"/"$f".sh
done
echo "Packaging linux x64 electron distribution..."
VERSION=`jq -r ".version" package.json`
pushd dist
tar cJf "trilium-linux-x64-${VERSION}.tar.xz" trilium-linux-x64
popd
bin/build-debian.sh
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
SRC_DIR=./dist/trilium-mac-x64-src
if [ "$1" != "DONTCOPY" ]
then
./bin/copy-trilium.sh $SRC_DIR
fi
echo "Copying required mac binaries"
cp -r bin/better-sqlite3/mac-better_sqlite3.node $SRC_DIR/node_modules/better-sqlite3/build/Release/better_sqlite3.node
rm -r $SRC_DIR/src/public/app-dist/*.mobile.*
echo "Packaging mac x64 electron build"
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=darwin --arch=x64 --overwrite --icon=images/app-icons/mac/icon.icns
BUILD_DIR=./dist/trilium-mac-x64
rm -rf $BUILD_DIR
# Mac build has by default useless directory level
mv "./dist/Trilium Notes-darwin-x64" $BUILD_DIR
cp bin/tpl/anonymize-database.sql $BUILD_DIR/
cp -r dump-db $BUILD_DIR/
rm -rf $BUILD_DIR/dump-db/node_modules
echo "Zipping mac x64 electron distribution..."
VERSION=`jq -r ".version" package.json`
cd dist
rm trilium-mac-x64-${VERSION}.zip
zip -r9 --symlinks trilium-mac-x64-${VERSION}.zip trilium-mac-x64
+5 -4
View File
@@ -1,9 +1,7 @@
#!/usr/bin/env bash
set -e # Fail on any command error
PKG_DIR=dist/trilium-linux-x64-server
NODE_VERSION=20.15.1
NODE_VERSION=18.18.2
if [ "$1" != "DONTCOPY" ]
then
@@ -22,7 +20,10 @@ rm -r $PKG_DIR/node/lib/node_modules/npm
rm -r $PKG_DIR/node/include/node
rm -r $PKG_DIR/node_modules/electron*
rm -r $PKG_DIR/electron*.js
rm -r $PKG_DIR/webpack*
rm -r $PKG_DIR/electron.js
cp -r bin/better-sqlite3/linux-server-better_sqlite3.node $PKG_DIR/node_modules/better-sqlite3/build/Release/better_sqlite3.node
printf "#!/bin/sh\n./node/bin/node src/www" > $PKG_DIR/trilium.sh
chmod 755 $PKG_DIR/trilium.sh
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
SRC_DIR=./dist/trilium-windows-x64-src
if [ "$1" != "DONTCOPY" ]
then
./bin/copy-trilium.sh $SRC_DIR
fi
echo "Copying required windows binaries"
cp -r bin/better-sqlite3/win-better_sqlite3.node $SRC_DIR/node_modules/better-sqlite3/build/Release/better_sqlite3.node
rm -r $SRC_DIR/src/public/app-dist/*.mobile.*
echo "Packaging windows x64 electron build"
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=win32 --arch=x64 --overwrite --icon=images/app-icons/win/icon.ico
BUILD_DIR=./dist/trilium-windows-x64
rm -rf $BUILD_DIR
mv "./dist/Trilium Notes-win32-x64" $BUILD_DIR
cp bin/tpl/anonymize-database.sql $BUILD_DIR/
cp -r dump-db $BUILD_DIR/
rm -rf $BUILD_DIR/dump-db/node_modules
cp bin/tpl/trilium-{portable,no-cert-check,safe-mode}.bat $BUILD_DIR/
echo "Zipping windows x64 electron distribution..."
VERSION=`jq -r ".version" package.json`
cd dist
zip -r9 trilium-windows-x64-${VERSION}.zip trilium-windows-x64
-30
View File
@@ -1,32 +1,5 @@
#!/usr/bin/env bash
set -e # Fail on any command error
if ! command -v jq &> /dev/null; then
echo "Missing command: jq"
exit 1
fi
if ! command -v fakeroot &> /dev/null; then
echo "Missing command: fakeroot"
exit 1
fi
if ! command -v dpkg-deb &> /dev/null; then
echo "Missing command: dpkg-deb"
exit 1
fi
if dpkg-deb 2>&1 | grep BusyBox &> /dev/null; then
echo "The dpkg-deb binary provided by BusyBox is not compatible. The Debian tool needs to be used instead."
exit 1
fi
if ! command -v wine &> /dev/null; then
echo "Missing command: wine"
exit 1
fi
echo "Deleting existing builds"
rm -rf dist/*
@@ -40,14 +13,11 @@ cp -r $SRC_DIR ./dist/trilium-linux-x64-src
cp -r $SRC_DIR ./dist/trilium-linux-x64-server
cp -r $SRC_DIR ./dist/trilium-windows-x64-src
cp -r $SRC_DIR ./dist/trilium-mac-x64-src
cp -r $SRC_DIR ./dist/trilium-mac-arm64-src
bin/build-win-x64.sh DONTCOPY
bin/build-mac-x64.sh DONTCOPY
bin/build-mac-arm64.sh DONTCOPY
bin/build-linux-x64.sh DONTCOPY
bin/build-server.sh DONTCOPY
-102
View File
@@ -1,102 +0,0 @@
import fs from "fs-extra";
import path from "path";
const DEST_DIR = "./dist";
const DEST_DIR_SRC = path.join(DEST_DIR, "src");
const DEST_DIR_NODE_MODULES = path.join(DEST_DIR, "node_modules");
const VERBOSE = process.env.VERBOSE;
function log(...args) {
if (VERBOSE) {
console.log(args);
}
}
async function copyNodeModuleFileOrFolder(source: string) {
const adjustedSource = source.substring(13);
const destination = path.join(DEST_DIR_NODE_MODULES, adjustedSource);
log(`Copying ${source} to ${destination}`);
await fs.ensureDir(path.dirname(destination));
await fs.copy(source, destination);
}
const copy = async () => {
for (const srcFile of fs.readdirSync("build")) {
const destFile = path.join(DEST_DIR, path.basename(srcFile));
log(`Copying source ${srcFile} -> ${destFile}.`);
fs.copySync(path.join("build", srcFile), destFile, { recursive: true });
}
const filesToCopy = ["config-sample.ini"];
for (const file of filesToCopy) {
log(`Copying ${file}`);
await fs.copy(file, path.join(DEST_DIR, file));
}
const dirsToCopy = ["images", "libraries", "db"];
for (const dir of dirsToCopy) {
log(`Copying ${dir}`);
await fs.copy(dir, path.join(DEST_DIR, dir));
}
const srcDirsToCopy = ["./src/public", "./src/views", "./build"];
for (const dir of srcDirsToCopy) {
log(`Copying ${dir}`);
await fs.copy(dir, path.join(DEST_DIR_SRC, path.basename(dir)));
}
const nodeModulesFile = [
"node_modules/react/umd/react.production.min.js",
"node_modules/react/umd/react.development.js",
"node_modules/react-dom/umd/react-dom.production.min.js",
"node_modules/react-dom/umd/react-dom.development.js",
"node_modules/katex/dist/katex.min.js",
"node_modules/katex/dist/contrib/mhchem.min.js",
"node_modules/katex/dist/contrib/auto-render.min.js",
];
for (const file of nodeModulesFile) {
await copyNodeModuleFileOrFolder(file);
}
const nodeModulesFolder = [
"node_modules/@excalidraw/excalidraw/dist/",
"node_modules/katex/dist/",
"node_modules/dayjs/",
"node_modules/force-graph/dist/",
"node_modules/boxicons/css/",
"node_modules/boxicons/fonts/",
"node_modules/mermaid/dist/",
"node_modules/jquery/dist/",
"node_modules/jquery-hotkeys/",
"node_modules/print-this/",
"node_modules/split.js/dist/",
"node_modules/panzoom/dist/",
"node_modules/i18next/",
"node_modules/i18next-http-backend/",
"node_modules/eslint/bin/",
"node_modules/jsplumb/dist/",
"node_modules/vanilla-js-wheel-zoom/dist/",
"node_modules/mark.js/dist/",
"node_modules/knockout/build/output/",
"node_modules/normalize.css/",
"node_modules/jquery.fancytree/dist/",
"node_modules/bootstrap/dist/",
"node_modules/autocomplete.js/dist/",
"node_modules/codemirror/lib/",
"node_modules/codemirror/addon/",
"node_modules/codemirror/mode/",
"node_modules/codemirror/keymap/",
"node_modules/mind-elixir/dist/"
];
for (const folder of nodeModulesFolder) {
await copyNodeModuleFileOrFolder(folder);
}
};
copy()
.then(() => console.log("Copying complete!"))
.catch((err) => console.error("Error during copy:", err));
+11 -34
View File
@@ -1,8 +1,5 @@
#!/usr/bin/env bash
set -e # Fail on any command error
shopt -s globstar
if [[ $# -eq 0 ]] ; then
echo "Missing argument of target directory"
exit 1
@@ -12,59 +9,39 @@ if ! [[ $(which npm) ]]; then
exit 1
fi
# Trigger the TypeScript build
echo TypeScript build start
npx tsc
echo TypeScript build finished
n exec 18.18.2 npm run webpack || npm run webpack
# Copy the TypeScript artifacts
DIR="$1"
rm -rf "$DIR"
mkdir -pv "$DIR"
echo Webpack start
npm run webpack
echo Webpack finish
echo "Copying Trilium to build directory $DIR"
for d in 'images' 'libraries' 'src' 'db'; do
cp -r "$d" "$DIR"/
done
for f in 'package.json' 'package-lock.json' 'README.md' 'LICENSE' 'config-sample.ini'; do
for f in 'package.json' 'package-lock.json' 'README.md' 'LICENSE' 'config-sample.ini' 'electron.js'; do
cp "$f" "$DIR"/
done
# Patch package.json main
sed -i 's/.\/dist\/electron-main.js/electron-main.js/g' "$DIR/package.json"
script_dir=$(realpath $(dirname $0))
cp -R "$script_dir/../build/src" "$DIR"
cp "$script_dir/../build/electron-main.js" "$DIR"
cp webpack-* "$DIR"/ # here warning because there is no 'webpack-*', but webpack.config.js only
# run in subshell (so we return to original dir)
(cd $DIR && npm install --omit=dev)
(cd $DIR && n exec 18.18.2 npm install --only=prod)
if [[ -d "$DIR"/node_modules ]]; then
# cleanup of useless files in dependencies
for d in 'image-q/demo' \
'@excalidraw/excalidraw/dist/excalidraw-assets-dev' '@excalidraw/excalidraw/dist/excalidraw.development.js' '@excalidraw/excalidraw/dist/excalidraw-with-preact.development.js' \
'mermaid/dist/mermaid.js' \
'boxicons/svg' 'boxicons/node_modules/react'/* \
'@jimp/plugin-print/fonts' 'jimp/browser' 'jimp/fonts'; do
[[ -e "$DIR"/node_modules/"$d" ]] && rm -r "$DIR"/node_modules/"$d"
# cleanup of useless files in dependencies
for d in 'image-q/demo' 'better-sqlite3/Release' 'better-sqlite3/deps/sqlite3.tar.gz' '@jimp/plugin-print/fonts' 'jimp/browser' 'jimp/fonts'; do
[[ -e "$DIR"/node_modules/"$d" ]] && rm -rv "$DIR"/node_modules/"$d"
done
# delete all tests (there are often large images as test file for jimp etc.)
for d in 'test' 'docs' 'demo' 'example'; do
find "$DIR"/node_modules -name "$d" -exec rm -rf {} +
# delete all tests (there are often large images as test file for jimp etc.)
for d in 'test' 'docs' 'demo'; do
find "$DIR"/node_modules -name "$d" -exec rm -rf {} \;
done
fi
find $DIR/libraries -name "*.map" -type f -delete
find $DIR/node_modules -name "*.map" -type f -delete
find $DIR -name "*.ts" -type f -delete
d="$DIR"/src/public
[[ -d "$d"/app-dist ]] || mkdir -pv "$d"/app-dist
@@ -1,7 +1,7 @@
#!/usr/bin/env node
import anonymizationService from '../src/services/anonymization.js';
import fs from 'fs';
import path from 'path';
const anonymizationService = require('../src/services/anonymization.js');
const fs = require('fs');
const path = require('path');
fs.writeFileSync(path.resolve(__dirname, 'tpl', 'anonymize-database.sql'), anonymizationService.getFullAnonymizationScript());
-45
View File
@@ -1,45 +0,0 @@
#!/usr/bin/env bash
if ! command -v magick &> /dev/null; then
echo "This tool requires ImageMagick to be installed in order to create the icons."
exit 1
fi
if ! command -v inkscape &> /dev/null; then
echo "This tool requires Inkscape to be render sharper SVGs than ImageMagick."
exit 1
fi
if ! command -v icnsutil &> /dev/null; then
echo "This tool requires icnsutil to be installed in order to generate macOS icons."
exit 1
fi
script_dir=$(realpath $(dirname $0))
cd "${script_dir}/../images/app-icons"
inkscape -w 180 -h 180 "../icon-color.svg" -o "./ios/apple-touch-icon.png"
# Build PNGs
inkscape -w 128 -h 128 "../icon-color.svg" -o "./png/128x128.png"
inkscape -w 256 -h 256 "../icon-color.svg" -o "./png/256x256.png"
inkscape -w 256 -h 256 "../icon-purple.svg" -o "./png/256x256-dev.png"
# Build Mac .icns
declare -a sizes=("16" "32" "512" "1024")
for size in "${sizes[@]}"; do
inkscape -w $size -h $size "../icon-color.svg" -o "./png/${size}x${size}.png"
done
mkdir -p fakeapp.app
npx iconsur set fakeapp.app -l -i "png/1024x1024.png" -o "mac/1024x1024.png" -s 0.8
declare -a sizes=("16x16" "32x32" "128x128" "512x512")
for size in "${sizes[@]}"; do
magick "mac/1024x1024.png" -resize "${size}" "mac/${size}.png"
done
icnsutil compose -f "mac/icon.icns" ./mac/*.png
# Build Windows icon
magick -background none "../icon-color.svg" -define icon:auto-resize=16,32,48,64,128,256 "./icon.ico"
# Build Squirrel splash image
magick "./png/256x256.png" -background "#ffffff" -gravity center -extent 640x480 "./win/setup-banner.gif"
-3
View File
@@ -1,3 +0,0 @@
SHARE_PROTOCOL=http
SHARE_HOST=notes.johnsmith.me
ROOT_NOTE_ID=4yYHqKbLovVX
-2
View File
@@ -1,2 +0,0 @@
output
.env
-23
View File
@@ -1,23 +0,0 @@
/**
* Fetch note with given ID from backend
*
* @param noteId of the given note to be fetched. If false, fetches current note.
*/
async function fetchNote(noteId = null) {
if (!noteId) {
noteId = document.body.getAttribute("data-note-id");
}
const resp = await fetch(`api/notes/${noteId}`);
return await resp.json();
}
document.addEventListener('DOMContentLoaded', () => {
const toggleMenuButton = document.getElementById('toggleMenuButton');
const layout = document.getElementById('layout');
if (toggleMenuButton && layout) {
toggleMenuButton.addEventListener('click', () => layout.classList.toggle('showMenu'));
}
}, false);
@@ -1,551 +0,0 @@
/* !!!!!! TRILIUM CUSTOM CHANGES !!!!!! */
.printed-content .ck-widget__selection-handle, .printed-content .ck-widget__type-around { /* gets rid of triangles: https://github.com/zadam/trilium/issues/1129 */
display: none;
}
/*
* CKEditor 5 (v41.0.0) content styles.
* Generated on Fri, 26 Jan 2024 10:23:49 GMT.
* For more information, check out https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/content-styles.html
*/
:root {
--ck-color-image-caption-background: hsl(0, 0%, 97%);
--ck-color-image-caption-text: hsl(0, 0%, 20%);
--ck-color-mention-background: hsla(341, 100%, 30%, 0.1);
--ck-color-mention-text: hsl(341, 100%, 30%);
--ck-color-selector-caption-background: hsl(0, 0%, 97%);
--ck-color-selector-caption-text: hsl(0, 0%, 20%);
--ck-highlight-marker-blue: hsl(201, 97%, 72%);
--ck-highlight-marker-green: hsl(120, 93%, 68%);
--ck-highlight-marker-pink: hsl(345, 96%, 73%);
--ck-highlight-marker-yellow: hsl(60, 97%, 73%);
--ck-highlight-pen-green: hsl(112, 100%, 27%);
--ck-highlight-pen-red: hsl(0, 85%, 49%);
--ck-image-style-spacing: 1.5em;
--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);
--ck-todo-list-checkmark-size: 16px;
}
/* @ckeditor/ckeditor5-table/theme/tablecolumnresize.css */
.ck-content .table .ck-table-resized {
table-layout: fixed;
}
/* @ckeditor/ckeditor5-table/theme/tablecolumnresize.css */
.ck-content .table table {
overflow: hidden;
}
/* @ckeditor/ckeditor5-table/theme/tablecolumnresize.css */
.ck-content .table td,
.ck-content .table th {
overflow-wrap: break-word;
position: relative;
}
/* @ckeditor/ckeditor5-table/theme/table.css */
.ck-content .table {
margin: 0.9em auto;
display: table;
}
/* @ckeditor/ckeditor5-table/theme/table.css */
.ck-content .table table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
height: 100%;
border: 1px double hsl(0, 0%, 70%);
}
/* @ckeditor/ckeditor5-table/theme/table.css */
.ck-content .table table td,
.ck-content .table table th {
min-width: 2em;
padding: .4em;
border: 1px solid hsl(0, 0%, 75%);
}
/* @ckeditor/ckeditor5-table/theme/table.css */
.ck-content .table table th {
font-weight: bold;
background: hsla(0, 0%, 0%, 5%);
}
/* @ckeditor/ckeditor5-table/theme/table.css */
.ck-content[dir="rtl"] .table th {
text-align: right;
}
/* @ckeditor/ckeditor5-table/theme/table.css */
.ck-content[dir="ltr"] .table th {
text-align: left;
}
/* @ckeditor/ckeditor5-table/theme/tablecaption.css */
.ck-content .table > figcaption {
display: table-caption;
caption-side: top;
word-break: break-word;
text-align: center;
color: var(--ck-color-selector-caption-text);
background-color: var(--ck-color-selector-caption-background);
padding: .6em;
font-size: .75em;
outline-offset: -1px;
}
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
.ck-content .page-break {
position: relative;
clear: both;
padding: 5px 0;
display: flex;
align-items: center;
justify-content: center;
}
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
.ck-content .page-break::after {
content: '';
position: absolute;
border-bottom: 2px dashed hsl(0, 0%, 77%);
width: 100%;
}
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
.ck-content .page-break__label {
position: relative;
z-index: 1;
padding: .3em .6em;
display: block;
text-transform: uppercase;
border: 1px solid hsl(0, 0%, 77%);
border-radius: 2px;
font-family: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;
font-size: 0.75em;
font-weight: bold;
color: hsl(0, 0%, 20%);
background: hsl(0, 0%, 100%);
box-shadow: 2px 2px 1px hsla(0, 0%, 0%, 0.15);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* @ckeditor/ckeditor5-media-embed/theme/mediaembed.css */
.ck-content .media {
clear: both;
margin: 0.9em 0;
display: block;
min-width: 15em;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list {
list-style: none;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list li {
position: relative;
margin-bottom: 5px;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list li .todo-list {
margin-top: 5px;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label > input {
-webkit-appearance: none;
display: inline-block;
position: relative;
width: var(--ck-todo-list-checkmark-size);
height: var(--ck-todo-list-checkmark-size);
vertical-align: middle;
border: 0;
left: -25px;
margin-right: -15px;
right: 0;
margin-left: 0;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content[dir=rtl] .todo-list .todo-list__label > input {
left: 0;
margin-right: 0;
right: -25px;
margin-left: -15px;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label > input::before {
display: block;
position: absolute;
box-sizing: border-box;
content: '';
width: 100%;
height: 100%;
border: 1px solid hsl(0, 0%, 20%);
border-radius: 2px;
transition: 250ms ease-in-out box-shadow;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label > input::after {
display: block;
position: absolute;
box-sizing: content-box;
pointer-events: none;
content: '';
left: calc( var(--ck-todo-list-checkmark-size) / 3 );
top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
border-style: solid;
border-color: transparent;
border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
transform: rotate(45deg);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label > input[checked]::before {
background: hsl(126, 64%, 41%);
border-color: hsl(126, 64%, 41%);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label > input[checked]::after {
border-color: hsl(0, 0%, 100%);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label .todo-list__label__description {
vertical-align: middle;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
position: absolute;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > input,
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
cursor: pointer;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > input:hover::before, .ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input:hover::before {
box-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input {
-webkit-appearance: none;
display: inline-block;
position: relative;
width: var(--ck-todo-list-checkmark-size);
height: var(--ck-todo-list-checkmark-size);
vertical-align: middle;
border: 0;
left: -25px;
margin-right: -15px;
right: 0;
margin-left: 0;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label > span[contenteditable=false] > input {
left: 0;
margin-right: 0;
right: -25px;
margin-left: -15px;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::before {
display: block;
position: absolute;
box-sizing: border-box;
content: '';
width: 100%;
height: 100%;
border: 1px solid hsl(0, 0%, 20%);
border-radius: 2px;
transition: 250ms ease-in-out box-shadow;
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input::after {
display: block;
position: absolute;
box-sizing: content-box;
pointer-events: none;
content: '';
left: calc( var(--ck-todo-list-checkmark-size) / 3 );
top: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
width: calc( var(--ck-todo-list-checkmark-size) / 5.3 );
height: calc( var(--ck-todo-list-checkmark-size) / 2.6 );
border-style: solid;
border-color: transparent;
border-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;
transform: rotate(45deg);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::before {
background: hsl(126, 64%, 41%);
border-color: hsl(126, 64%, 41%);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label > span[contenteditable=false] > input[checked]::after {
border-color: hsl(0, 0%, 100%);
}
/* @ckeditor/ckeditor5-list/theme/todolist.css */
.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox] {
position: absolute;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ol {
list-style-type: decimal;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ol ol {
list-style-type: lower-latin;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ol ol ol {
list-style-type: lower-roman;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ol ol ol ol {
list-style-type: upper-latin;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ol ol ol ol ol {
list-style-type: upper-roman;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ul {
list-style-type: disc;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ul ul {
list-style-type: circle;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ul ul ul {
list-style-type: square;
}
/* @ckeditor/ckeditor5-list/theme/list.css */
.ck-content ul ul ul ul {
list-style-type: square;
}
/* @ckeditor/ckeditor5-image/theme/image.css */
.ck-content .image {
display: table;
clear: both;
text-align: center;
margin: 0.9em auto;
min-width: 50px;
}
/* @ckeditor/ckeditor5-image/theme/image.css */
.ck-content .image img {
display: block;
margin: 0 auto;
max-width: 100%;
min-width: 100%;
height: auto;
}
/* @ckeditor/ckeditor5-image/theme/image.css */
.ck-content .image-inline {
/*
* Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).;
* Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.
* This strange behavior does not happen with inline-flex.
*/
display: inline-flex;
max-width: 100%;
align-items: flex-start;
}
/* @ckeditor/ckeditor5-image/theme/image.css */
.ck-content .image-inline picture {
display: flex;
}
/* @ckeditor/ckeditor5-image/theme/image.css */
.ck-content .image-inline picture,
.ck-content .image-inline img {
flex-grow: 1;
flex-shrink: 1;
max-width: 100%;
}
/* @ckeditor/ckeditor5-image/theme/imageresize.css */
.ck-content img.image_resized {
height: auto;
}
/* @ckeditor/ckeditor5-image/theme/imageresize.css */
.ck-content .image.image_resized {
max-width: 100%;
display: block;
box-sizing: border-box;
}
/* @ckeditor/ckeditor5-image/theme/imageresize.css */
.ck-content .image.image_resized img {
width: 100%;
}
/* @ckeditor/ckeditor5-image/theme/imageresize.css */
.ck-content .image.image_resized > figcaption {
display: block;
}
/* @ckeditor/ckeditor5-image/theme/imagecaption.css */
.ck-content .image > figcaption {
display: table-caption;
caption-side: bottom;
word-break: break-word;
color: var(--ck-color-image-caption-text);
background-color: var(--ck-color-image-caption-background);
padding: .6em;
font-size: .75em;
outline-offset: -1px;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-block-align-left,
.ck-content .image-style-block-align-right {
max-width: calc(100% - var(--ck-image-style-spacing));
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-align-left,
.ck-content .image-style-align-right {
clear: none;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-side {
float: right;
margin-left: var(--ck-image-style-spacing);
max-width: 50%;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-align-left {
float: left;
margin-right: var(--ck-image-style-spacing);
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-align-center {
margin-left: auto;
margin-right: auto;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-align-right {
float: right;
margin-left: var(--ck-image-style-spacing);
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-block-align-right {
margin-right: 0;
margin-left: auto;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-style-block-align-left {
margin-left: 0;
margin-right: auto;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content p + .image-style-align-left,
.ck-content p + .image-style-align-right,
.ck-content p + .image-style-side {
margin-top: 0;
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-inline.image-style-align-left,
.ck-content .image-inline.image-style-align-right {
margin-top: var(--ck-inline-image-style-spacing);
margin-bottom: var(--ck-inline-image-style-spacing);
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-inline.image-style-align-left {
margin-right: var(--ck-inline-image-style-spacing);
}
/* @ckeditor/ckeditor5-image/theme/imagestyle.css */
.ck-content .image-inline.image-style-align-right {
margin-left: var(--ck-inline-image-style-spacing);
}
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
.ck-content .marker-yellow {
background-color: var(--ck-highlight-marker-yellow);
}
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
.ck-content .marker-green {
background-color: var(--ck-highlight-marker-green);
}
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
.ck-content .marker-pink {
background-color: var(--ck-highlight-marker-pink);
}
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
.ck-content .marker-blue {
background-color: var(--ck-highlight-marker-blue);
}
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
.ck-content .pen-red {
color: var(--ck-highlight-pen-red);
background-color: transparent;
}
/* @ckeditor/ckeditor5-highlight/theme/highlight.css */
.ck-content .pen-green {
color: var(--ck-highlight-pen-green);
background-color: transparent;
}
/* @ckeditor/ckeditor5-block-quote/theme/blockquote.css */
.ck-content blockquote {
overflow: hidden;
padding-right: 1.5em;
padding-left: 1.5em;
margin-left: 0;
margin-right: 0;
font-style: italic;
border-left: solid 5px hsl(0, 0%, 80%);
}
/* @ckeditor/ckeditor5-block-quote/theme/blockquote.css */
.ck-content[dir="rtl"] blockquote {
border-left: 0;
border-right: solid 5px hsl(0, 0%, 80%);
}
/* @ckeditor/ckeditor5-basic-styles/theme/code.css */
.ck-content code {
background-color: hsla(0, 0%, 78%, 0.3);
padding: .15em;
border-radius: 2px;
}
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
.ck-content .text-tiny {
font-size: .7em;
}
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
.ck-content .text-small {
font-size: .85em;
}
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
.ck-content .text-big {
font-size: 1.4em;
}
/* @ckeditor/ckeditor5-font/theme/fontsize.css */
.ck-content .text-huge {
font-size: 1.8em;
}
/* @ckeditor/ckeditor5-mention/theme/mention.css */
.ck-content .mention {
background: var(--ck-color-mention-background);
color: var(--ck-color-mention-text);
}
/* @ckeditor/ckeditor5-horizontal-line/theme/horizontalline.css */
.ck-content hr {
margin: 15px 0;
height: 4px;
background: hsl(0, 0%, 87%);
border: 0;
}
/* @ckeditor/ckeditor5-code-block/theme/codeblock.css */
.ck-content pre {
padding: 1em;
color: hsl(0, 0%, 20.8%);
background: hsla(0, 0%, 78%, 0.3);
border: 1px solid hsl(0, 0%, 77%);
border-radius: 2px;
text-align: left;
direction: ltr;
tab-size: 4;
white-space: pre-wrap;
font-style: normal;
min-width: 200px;
}
/* @ckeditor/ckeditor5-code-block/theme/codeblock.css */
.ck-content pre code {
background: unset;
padding: 0;
border-radius: 0;
}
@media print {
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
.ck-content .page-break {
padding: 0;
}
/* @ckeditor/ckeditor5-page-break/theme/pagebreak.css */
.ck-content .page-break::after {
display: none;
}
}
@@ -1,165 +0,0 @@
body {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
line-height: 1.5;
}
#layout {
max-width: 1200px;
margin: 0 auto;
display: flex;
flex-direction: row-reverse;
}
#menu {
padding: 25px;
flex-basis: 0;
flex-grow: 1;
overflow: auto;
}
#menu p {
margin: 0;
}
#menu > p {
font-weight: bold;
font-size: 110%;
}
#menu ul {
padding-left: 20px;
}
#main {
flex-basis: 0;
flex-grow: 3;
overflow: auto;
padding: 10px 20px 20px 20px;
}
#parentLink {
float: right;
margin-top: 20px;
}
#title {
margin: 0;
padding-top: 10px;
}
img {
max-width: 100%;
}
pre {
white-space: pre-wrap;
word-wrap: anywhere;
}
iframe.pdf-view {
width: 100%;
height: 800px;
}
#toggleMenuButton {
display: none;
position: fixed;
top: 8px;
left: 5px;
width: 1.4em;
border-radius: 5px;
border: 1px solid #aaa;
font-size: 2rem;
z-index: 10;
height: auto;
color: black;
cursor: pointer;
}
#childLinks.grid ul {
list-style-type: none;
display: flex;
flex-wrap: wrap;
padding: 0;
}
#childLinks.grid ul li {
width: 180px;
height: 140px;
padding: 10px;
}
#childLinks.grid ul li a {
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
border: 1px solid #ddd;
border-radius: 5px;
justify-content: center;
align-content: center;
text-align: center;
font-size: large;
}
#childLinks.grid ul li a:hover {
background: #eee;
}
#childLinks.list ul {
list-style-type: none;
display: inline-flex;
flex-wrap: wrap;
padding: 0;
margin-top: 5px;
}
#childLinks.list ul li {
margin-right: 20px;
}
#noteClippedFrom {
padding: 10px 0 10px 0;
margin: 20px 0 20px 0;
color: #666;
border: 1px solid #ddd;
border-left: 0;
border-right: 0;
}
#toggleMenuButton::after {
position: relative;
top: -2px;
left: 1px;
}
@media (max-width: 48em) {
#layout.showMenu #menu {
display: block;
margin-top: 40px;
}
#toggleMenuButton {
display: block;
}
#layout.showMenu #main {
display: none;
}
#title {
padding-left: 60px;
}
#layout.showMenu #toggleMenuButton::after {
content: "«";
}
#toggleMenuButton::after {
content: "»";
}
#menu {
display: none;
}
}
-10
View File
@@ -1,10 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=./{{ROOT_NOTE_ID}}.html" />
</head>
<body>
</body>
</html>
-43
View File
@@ -1,43 +0,0 @@
#!/usr/bin/env bash
script_dir=$(realpath $(dirname $0))
cd "$script_dir"
env_file="$script_dir/.env"
if [ ! -f "$env_file" ]; then
echo "Missing .env file, cannot proceed."
exit 1
fi
output_dir="$script_dir/../../docs"
mkdir -p "$output_dir"
rm -f "$output_dir"/*
rm -rf "$output_dir"/{assets,share}
source "$env_file"
# Download everything in output/notes.example.com/share/...
share_url="$SHARE_PROTOCOL://$SHARE_HOST/share/$ROOT_NOTE_ID"
wget -rpEk -e robots=off "$share_url" -P "$output_dir"
if [ $? -ne 0 ]; then
echo -e \\nDownloading failed, make sure you are using the real wget package and not the busybox one.
exit 1
fi
# Get rid of the domain in the output folder
mv "$output_dir/$SHARE_HOST"/* "$output_dir/"
rmdir "$output_dir/$SHARE_HOST"
# Create home page with redirect
index_dest_path="$output_dir/index.html"
cp index.template.html "$index_dest_path"
sed -i "s/{{ROOT_NOTE_ID}}/$ROOT_NOTE_ID/g" "$index_dest_path"
# Rewrite links to get rid of the share folder
sed -i "s/<link href=\"\\.\\./<link href=\"\\./g" "$output_dir/share"/*.html
sed -i "s/<script src=\"\\.\\./<script src=\"\\./g" "$output_dir/share"/*.html
sed -i "s/rel=\"shortcut icon\" href=\"\\.\\./rel=\"shortcut icon\" href=\"\\./g" "$output_dir/share"/*.html
cp -r "$output_dir/share"/* "$output_dir"
rm -r "$output_dir/share"
-8
View File
@@ -1,8 +0,0 @@
#!/usr/bin/env bash
LISTEN_ADDRESS=127.0.0.1:8088
script_dir=$(realpath $(dirname $0))
output_dir="$script_dir/../../docs"
echo "Preview the documentation at http://$LISTEN_ADDRESS"
httpd -fv -p "$LISTEN_ADDRESS" -h "$output_dir"
+31 -9
View File
@@ -7,11 +7,6 @@ if [[ $# -eq 0 ]] ; then
exit 1
fi
if ! command -v jq &> /dev/null; then
echo "Missing command: jq"
exit 1
fi
VERSION=$1
if ! [[ ${VERSION} =~ ^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}(-.+)?$ ]] ;
@@ -27,14 +22,13 @@ fi
echo "Releasing Trilium $VERSION"
jq '.version = "'$VERSION'"' package.json > package.json.tmp
mv package.json.tmp package.json
jq '.version = "'$VERSION'"' package.json|sponge package.json
git add package.json
npm run update-build-info
echo 'module.exports = { buildDate:"'`date --iso-8601=seconds`'", buildRevision: "'`git log -1 --format="%H"`'" };' > src/services/build.js
git add src/services/build.ts
git add src/services/build.js
TAG=v$VERSION
@@ -47,3 +41,31 @@ echo "Tagging commit with $TAG"
git tag $TAG
git push origin $TAG
bin/build.sh
LINUX_X64_BUILD=trilium-linux-x64-$VERSION.tar.xz
DEBIAN_X64_BUILD=trilium_${VERSION}_amd64.deb
WINDOWS_X64_BUILD=trilium-windows-x64-$VERSION.zip
MAC_X64_BUILD=trilium-mac-x64-$VERSION.zip
SERVER_BUILD=trilium-linux-x64-server-$VERSION.tar.xz
echo "Creating release in GitHub"
EXTRA=
if [[ $TAG == *"beta"* ]]; then
EXTRA=--prerelease
fi
echo "$GITHUB_CLI_AUTH_TOKEN" | gh auth login --with-token
gh release create "$TAG" \
--title "$TAG release" \
--notes "" \
$EXTRA \
"dist/$DEBIAN_X64_BUILD" \
"dist/$LINUX_X64_BUILD" \
"dist/$WINDOWS_X64_BUILD" \
"dist/$MAC_X64_BUILD" \
"dist/$SERVER_BUILD"
-25
View File
@@ -1,25 +0,0 @@
import child_process from "child_process";
import fs from "fs";
function getBuildDate() {
const now = new Date();
now.setMilliseconds(0);
return now
.toISOString()
.replace(".000", "");
}
function getGitRevision() {
return child_process.execSync('git log -1 --format="%H"')
.toString("utf-8")
.trimEnd();
}
const output = `\
export default {
buildDate: "${getBuildDate()}",
buildRevision: "${getGitRevision()}"
};
`;
fs.writeFileSync("src/services/build.ts", output);
BIN
View File
Binary file not shown.
@@ -1,6 +1,6 @@
module.exports = () => {
const sql = require('../../src/services/sql');
const utils = require('../../src/services/utils');
const sql = require('../../src/services/sql.js');
const utils = require('../../src/services/utils.js');
const existingBlobIds = new Set();
@@ -1,9 +1,9 @@
module.exports = () => {
const beccaLoader = require('../../src/becca/becca_loader');
const becca = require('../../src/becca/becca');
const cls = require('../../src/services/cls');
const log = require('../../src/services/log');
const sql = require('../../src/services/sql');
const beccaLoader = require('../../src/becca/becca_loader.js');
const becca = require('../../src/becca/becca.js');
const cls = require('../../src/services/cls.js');
const log = require('../../src/services/log.js');
const sql = require('../../src/services/sql.js');
cls.init(() => {
// emergency disabling of image compression since it appears to make problems in migration to 0.61
@@ -13,7 +13,7 @@ module.exports = () => {
for (const note of Object.values(becca.notes)) {
try {
const attachment = note.convertToParentAttachment({ autoConversion: true });
const attachment = note.convertToParentAttachment({autoConversion: true});
if (attachment) {
log.info(`Auto-converted note '${note.noteId}' into attachment '${attachment.attachmentId}'.`);
+7 -12
View File
@@ -1,21 +1,16 @@
# Running `docker-compose up` will create/use the "trilium-data" directory in the user home
# Run `TRILIUM_DATA_DIR=/path/of/your/choice docker-compose up` to set a different directory
# To run in the background, use `docker-compose up -d`
version: '2.1'
services:
trilium:
# Optionally, replace `latest` with a version tag like `v0.90.3`
# Using `latest` may cause unintended updates to the container
image: triliumnext/notes:latest
# Restart the container unless it was stopped by the user
restart: unless-stopped
image: zadam/trilium
restart: always
environment:
- TRILIUM_DATA_DIR=/home/node/trilium-data
ports:
# By default, Trilium will be available at http://localhost:8080
# It will also be accessible at http://<host-ip>:8080
# You might want to limit this with something like Docker Networks, reverse proxies, or firewall rules, such as UFW
- '8080:8080'
- "8080:8080"
volumes:
# Unless TRILIUM_DATA_DIR is set, the data will be stored in the "trilium-data" directory in the home directory.
# This can also be changed with by replacing the line below with `- /path/of/your/choice:/home/node/trilium-data
- ${TRILIUM_DATA_DIR:-~/trilium-data}:/home/node/trilium-data
volumes:
trilium:
@@ -1,7 +1,7 @@
import http from "http";
import ini from "ini";
import fs from "fs";
import dataDir from './src/services/data_dir.js';
const http = require("http");
const ini = require("ini");
const fs = require("fs");
const dataDir = require('./src/services/data_dir.js');
const config = ini.parse(fs.readFileSync(dataDir.CONFIG_INI_PATH, 'utf-8'));
if (config.Network.https) {
@@ -10,12 +10,12 @@ if (config.Network.https) {
process.exit(0);
}
import port from './src/services/port.js';
import host from './src/services/host.js';
const port = require('./src/services/port.js');
const host = require('./src/services/host.js');
const options: http.RequestOptions = { timeout: 2000 };
const options = { timeout: 2000 };
const callback: (res: http.IncomingMessage) => void = res => {
const callback = res => {
console.log(`STATUS: ${res.statusCode}`);
if (res.statusCode === 200) {
process.exit(0);
-831
View File
@@ -1,831 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Branch prefixes</title>
</head>
<body data-note-id="1l1f6WZbaBEZ" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Branch prefixes</h1>
<p>This note has no content.</p>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<strong>Branch prefixes</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-866
View File
@@ -1,866 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Widgets</title>
</head>
<body data-note-id="1pOWnHdGAuWR" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="3eTu21fjtZkj.html"
class="type-text">Scripting</a>
</nav>
<h1 id="title">Widgets</h1>
<div id="content" class="type-text ck-content">
<p>To create a basic widget, simply create a code note with type “JS frontend”. Add the <code>#widget</code> label in order for it to be loaded at startup.</p><pre><code class="language-text-plain">const template = `&lt;div id="my-widget"&gt;&lt;button&gt;Click Me!&lt;/button&gt;&lt;/div&gt;`;
class MyWidget extends api.BasicWidget {
get position() { return 1; }
get parentWidget() { return "left-pane" }
doRender() {
this.$widget = $(template);
return this.$widget;
}
}
module.exports = new MyWidget();</code></pre><p><code>parentWidget()</code> can be given the following values:</p><ul><li><code>left-pane</code> - This renders the widget on the left side of the screen where the note tree lives.</li><li><code>center-pane</code> - This renders the widget in the center of the layout in the same location that notes and splits appear.</li><li><code>note-detail-pane</code> - This renders the widget <i>with</i> the note in the center pane. This means it can appear multiple times with splits.</li><li><code>right-pane</code> - This renders the widget to the right of any opened notes.</li></ul><hr><p>Reference:</p><ul><li><a href="https://trilium.rocks/X7pxYpiu0lgU">https://trilium.rocks/X7pxYpiu0lgU</a>&nbsp;</li><li><a href="https://github.com/zadam/trilium/wiki/Widget-Basics">https://github.com/zadam/trilium/wiki/Widget-Basics</a>&nbsp;</li><li><a href="https://github.com/zadam/trilium/wiki/Frontend-Basics">https://github.com/zadam/trilium/wiki/Frontend-Basics</a>&nbsp;</li></ul>
</div>
<nav id="childLinks" class="list">
<hr>
<span>Child notes: </span>
<ul>
<li>
<a href="8jWguCtuKsAt.html"
class="type-text">Right pane widget</a>
</li>
<li>
<a href="4FXLAtcPhZFo.html"
class="type-text">CSS</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<strong>Widgets</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-842
View File
@@ -1,842 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Scripting</title>
</head>
<body data-note-id="3eTu21fjtZkj" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="4yYHqKbLovVX.html"
class="type-text">Developer&#39;s Guide</a>
</nav>
<h1 id="title">Scripting</h1>
<nav id="childLinks" class="grid">
<ul>
<li>
<a href="1pOWnHdGAuWR.html"
class="type-text">Widgets</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<strong>Scripting</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Themes</title>
</head>
<body data-note-id="3jc1nUXyteo0" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Themes</h1>
<div id="content" class="type-text ck-content">
<h2>Server-side</h2><ul><li>There are two themes embedded in the application:<ul><li><code>light</code>, located in <code>src\public\stylesheets\theme-light.css</code></li><li><code>dark</code>, located in <code>src\public\stylesheets\theme-dark.css</code></li></ul></li><li>The default theme is set only once, when the database is created and is managed by <code>options_init#initNotSyncedOptions</code>.<ul><li>On Electron, the choice between <code>light</code> and <code>dark</code> is done based on the OS preference.</li><li>Otherwise, the theme is always <code>dark</code>.</li></ul></li><li>The theme is served via <code>src\routes\index.ts</code>, in the <code>getThemeCssUrl</code> method.</li></ul><h2>Client-side</h2><ul><li>The two predefined themes are hard-coded in the client in <code>src\public\app\widgets\type_widgets\options\appearance\theme.js</code>.</li><li>The user-defined themes are obtained via a call to the server: <code>options/user-themes</code>.</li><li>The theme retrieval is done via a request</li></ul>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<strong>Themes</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-838
View File
@@ -1,838 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>CSS</title>
</head>
<body data-note-id="4FXLAtcPhZFo" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="1pOWnHdGAuWR.html"
class="type-text">Widgets</a>
</nav>
<h1 id="title">CSS</h1>
<div id="content" class="type-text ck-content">
<p>In <code>doRender()</code>:</p><pre><code class="language-text-plain">this.cssBlock(`#my-widget {
position: absolute;
bottom: 40px;
left: 60px;
z-index: 1;
}`)</code></pre><hr><p>Reference: <a href="https://trilium.rocks/X7pxYpiu0lgU">https://trilium.rocks/X7pxYpiu0lgU</a>&nbsp;</p>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<strong>CSS</strong>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-857
View File
@@ -1,857 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Developer&#39;s Guide</title>
</head>
<body data-note-id="4yYHqKbLovVX" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<h1 id="title">Developer&#39;s Guide</h1>
<nav id="childLinks" class="grid">
<ul>
<li>
<a href="VS22Hq5PBFNf.html"
class="type-text">Dependency Management</a>
</li>
<li>
<a href="ZlxZh8NH5frM.html"
class="type-text">Building and deployment</a>
</li>
<li>
<a href="xtBYDVZPb0gr.html"
class="type-text">Project maintenance</a>
</li>
<li>
<a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</li>
<li>
<a href="3eTu21fjtZkj.html"
class="type-text">Scripting</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<strong>Developer&#39;s Guide</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>blobs</title>
</head>
<body data-note-id="6x42mhlfLo0o" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="zCDxk5VFdsqg.html"
class="type-text">Database</a>
</nav>
<h1 id="title">blobs</h1>
<div id="content" class="type-text ck-content">
<figure class="table"><table><thead><tr><th>Column Name</th><th>Data Type</th><th>Nullity</th><th>Default value</th><th>Description</th></tr></thead><tbody><tr><th><code>blobId</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>The unique ID of the blob (e.g. <code>XXbfAJXqWrYnSXcelLFA</code>).</td></tr><tr><th><code>content</code></th><td>Text</td><td>Nullable</td><td><code>null</code></td><td><p>The content of the blob, can be either:</p><ul><li>text (for plain text notes or HTML notes).</li><li>binary (for images and other types of attachments)</li></ul></td></tr><tr><th><code>dateModified</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>Localized modification date (e.g. <code>2023-11-08 18:43:44.204+0200</code>)</td></tr><tr><th><code>utcDateModified</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>Modification date in UTC format (e.g. <code>2023-11-08 16:43:44.204Z</code>)</td></tr></tbody></table></figure>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<strong>blobs</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-855
View File
@@ -1,855 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Right pane widget</title>
</head>
<body data-note-id="8jWguCtuKsAt" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="1pOWnHdGAuWR.html"
class="type-text">Widgets</a>
</nav>
<h1 id="title">Right pane widget</h1>
<div id="content" class="type-text ck-content">
<ul><li><code>doRender</code> must not be overridden, instead <code>doRenderBody()</code> has to be overridden.</li><li><code>parentWidget()</code> must be set to <code>“rightPane”</code>.</li><li><code>widgetTitle()</code> getter can optionally be overriden, otherwise the widget will be displayed as “Untitled widget”.</li></ul><pre><code class="language-text-plain">const template = `&lt;div&gt;Hi&lt;/div&gt;`;
class ToDoListWidget extends api.RightPanelWidget {
get widgetTitle() {
return "Title goes here";
}
get parentWidget() { return "right-pane" }
doRenderBody() {
this.$body.empty().append($(template));
}
async refreshWithNote(note) {
this.toggleInt(false);
this.triggerCommand("reEvaluateRightPaneVisibility");
this.toggleInt(true);
this.triggerCommand("reEvaluateRightPaneVisibility");
}
}
module.exports = new ToDoListWidget();</code></pre><p>The implementation is in <code>src/public/app/widgets/right_panel_widget.js</code>.</p>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<strong>Right pane widget</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-907
View File
@@ -1,907 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Development and architecture</title>
</head>
<body data-note-id="B8hxg4e66cVL" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="4yYHqKbLovVX.html"
class="type-text">Developer&#39;s Guide</a>
</nav>
<h1 id="title">Development and architecture</h1>
<nav id="childLinks" class="grid">
<ul>
<li>
<a href="hkrBX8KE1HQl.html"
class="type-text">Internationalisation / Translations</a>
</li>
<li>
<a href="XxqZW6JjkW2g.html"
class="type-text">Live reload</a>
</li>
<li>
<a href="3jc1nUXyteo0.html"
class="type-text">Themes</a>
</li>
<li>
<a href="U5RtMeGPeZ29.html"
class="type-text">Synchronisation</a>
</li>
<li>
<a href="mPGbEmYGitWe.html"
class="type-text">Build information</a>
</li>
<li>
<a href="zCDxk5VFdsqg.html"
class="type-text">Database</a>
</li>
<li>
<a href="KbwD5mDpD4CV.html"
class="type-text">Protected entities</a>
</li>
<li>
<a href="IuxV242YGaN5.html"
class="type-text">Deleted notes</a>
</li>
<li>
<a href="FJ4VR6G2M6VD.html"
class="type-text">Special notes</a>
</li>
<li>
<a href="1l1f6WZbaBEZ.html"
class="type-text">Branch prefixes</a>
</li>
<li>
<a href="QSkfVssHIngA.html"
class="type-text">Revisions</a>
</li>
<li>
<a href="cemIoFLfEGPO.html"
class="type-text">Backlinks</a>
</li>
<li>
<a href="VbDoDdiHEemi.html"
class="type-text">Note types</a>
</li>
<li>
<a href="UDBwK5Fhr2CT.html"
class="type-text">Safe mode</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<strong>Development and architecture</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Main</title>
</head>
<body data-note-id="BhE2WFknKKHG" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="rU1hxvgqlA9x.html"
class="type-text">CI</a>
</nav>
<h1 id="title">Main</h1>
<div id="content" class="type-text ck-content">
<p>The main workflow of the CI:</p><ul><li>Builds the Docker image and publishes in the GitHub Docker registry.</li><li>Builds using a portion of the <a href="UTB518X6X9Uh.html" class="type-text">delivery script</a> artifacts for the following platforms:<ul><li>Windows <code>x86_64</code> as .zip file</li><li>Windows <code>x86_64</code> installer (using Squirrel)</li><li>macOS <code>x86_64</code> and <code>aarch64</code>.</li><li>Linux <code>x86_64</code></li><li>Linux server <code>x86_64</code>.</li></ul></li></ul><p>The main workflow of the CI runs on <code>develop</code> branches as well as any branch that starts with <code>feature/update_</code>.</p><h2>Downloading the artifacts from the main branch</h2><p>Simply go to the <a href="https://github.com/TriliumNext/Notes"><code>develop</code> branch on GitHub</a> and look at the commit bar:</p><figure class="image"><img style="aspect-ratio:896/59;" src="api/attachments/XEUUvzBxh89z/image/image.png" width="896" height="59"></figure><p>Press the green checkmark (or red cross if something went bad). Then look at the list of jobs and their status:</p><figure class="image"><img style="aspect-ratio:616/445;" src="api/attachments/27Z989bSFWAc/image/image.png" width="616" height="445"></figure><p>Then look for any of the entires that starts with “Main” and press the “Details” link next to it. It doesn't really matter which platform you'll choose as the artifacts are available on the same page.</p><p>&nbsp;</p>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<strong>Main</strong>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Having a simpler packaging system</title>
</head>
<body data-note-id="C09Dou56ffMe" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="VS22Hq5PBFNf.html"
class="type-text">Dependency Management</a>
</nav>
<h1 id="title">Having a simpler packaging system</h1>
<div id="content" class="type-text ck-content">
<p>The current build scripts are a bit complicated and maintaining them is not easy.</p><p><a href="https://www.electronforge.io/">Electron Forge</a> seems more mature and has a boatload of features, including Flatpak, snaps, Windows installers &amp; more.</p><p>Have a look also at the <a href="https://www.electronforge.io/config/plugins">Plugins</a> section since there are quite a few interesting things there as well.</p><p>Afterwards consider running a new round of&nbsp;<a class="reference-link">Reducing binary size</a>, especially taking into consideration removing of the unnecessary locales.</p>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<strong>Having a simpler packaging system</strong>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-831
View File
@@ -1,831 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Special notes</title>
</head>
<body data-note-id="FJ4VR6G2M6VD" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Special notes</h1>
<p>This note has no content.</p>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<strong>Special notes</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>options</title>
</head>
<body data-note-id="FSZoX3cJlJE7" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="zCDxk5VFdsqg.html"
class="type-text">Database</a>
</nav>
<h1 id="title">options</h1>
<div id="content" class="type-text ck-content">
<figure class="table"><table><thead><tr><th>Column Name</th><th>Data Type</th><th>Nullity</th><th>Default value</th><th>Description</th></tr></thead><tbody><tr><th><code>name</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>The name of option (e.g. <code>maxContentWidth</code>)</td></tr><tr><th><code>value</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>The value of the option.</td></tr><tr><th><code>isSynced</code></th><td>Integer</td><td>Non-null</td><td>0</td><td><code>0</code> if the option is not synchronized and thus can differ between clients, <code>1</code> if the option is synchronized.</td></tr><tr><th><code>utcDateModified</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>Modification date in UTC format (e.g. <code>2023-11-08 16:43:44.204Z</code>)</td></tr></tbody></table></figure>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<strong>options</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Node.js, Electron and `better-sqlite3`</title>
</head>
<body data-note-id="GMta9hBHsXHQ" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="s5gsYTbPQr6c.html"
class="type-text">Updating dependencies</a>
</nav>
<h1 id="title">Node.js, Electron and `better-sqlite3`</h1>
<div id="content" class="type-text ck-content">
<p><code>better-sqlite3</code> requires a native module in order to work. In order to ease the installation process, prebuilt binaries are provided by the library developers.</p><p>Trilium Next started with version <a href="https://github.com/WiseLibs/better-sqlite3/releases/tag/v8.4.0">8.4.0</a> for <code>better-sqlite3</code></p><figure class="table" style="width:100%;"><table class="ck-table-resized"><colgroup><col style="width:30.24%;"><col style="width:18.47%;"><col style="width:26.73%;"><col style="width:24.56%;"></colgroup><tbody><tr><td><code>better-sqlite3</code> version</td><td>SQLite version</td><td>Node.js prebuilds</td><td>Electron.js prebuilds</td></tr><tr><td>8.4.0</td><td rowspan="4">&lt;3.43.0</td><td>v20</td><td>???</td></tr><tr><td>8.5.0</td><td>v20</td><td>v25</td></tr><tr><td>8.5.1</td><td>&nbsp;</td><td rowspan="4">v26</td></tr><tr><td>8.5.2</td><td>v20 (macOS + arm64)</td></tr><tr><td>8.6.0</td><td>3.43.0</td><td>&nbsp;</td></tr><tr><td>8.7.0</td><td>3.43.1</td><td>&nbsp;</td></tr><tr><td>9.0.0</td><td>3.43.2</td><td>&nbsp;</td><td rowspan="4">v27</td></tr><tr><td>9.1.0</td><td rowspan="2">3.44.0</td><td>&nbsp;</td></tr><tr><td>9.1.1</td><td>macOS + Alpine</td></tr><tr><td>9.2.0</td><td rowspan="2">3.44.2</td><td>&nbsp;</td></tr><tr><td>9.2.1 / 9.2.2</td><td>&nbsp;</td><td rowspan="4">v28</td></tr><tr><td>9.3.0</td><td>3.45.0</td><td>&nbsp;</td></tr><tr><td>9.4.0</td><td rowspan="6">3.45.1</td><td>&nbsp;</td></tr><tr><td>9.4.1</td><td>Windows arm, arm64</td></tr><tr><td>9.4.2</td><td>&nbsp;</td><td>&lt;v29</td></tr><tr><td>9.4.3</td><td>&nbsp;</td><td>&lt;v29</td></tr><tr><td>9.4.4</td><td>&nbsp;</td><td rowspan="3">v29</td></tr><tr><td>9.4.5</td><td>Better prebuilds</td></tr><tr><td>9.5.0</td><td>3.45.2</td><td>&nbsp;</td></tr><tr><td>9.6.0</td><td rowspan="2">3.45.3</td><td>&nbsp;</td><td rowspan="4">v30</td></tr><tr><td>10.0.0</td><td>v22</td></tr><tr><td>10.1.0</td><td rowspan="2">3.46.0</td><td>&nbsp;</td></tr><tr><td>11.0.0</td><td>&gt;21</td></tr><tr><td>11.1.0 (prerelease)</td><td>&nbsp;</td><td>&nbsp;</td><td rowspan="3">v31</td></tr><tr><td>11.1.1</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>11.1.2</td><td>&nbsp;</td><td>&nbsp;</td></tr></tbody></table></figure>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<strong>Node.js, Electron and `better-sqlite3`</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-831
View File
@@ -1,831 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Deleted notes</title>
</head>
<body data-note-id="IuxV242YGaN5" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Deleted notes</h1>
<p>This note has no content.</p>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<strong>Deleted notes</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>i18n-ally</title>
</head>
<body data-note-id="KRC2O84LekPz" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="hkrBX8KE1HQl.html"
class="type-text">Internationalisation / Translations</a>
</nav>
<h1 id="title">i18n-ally</h1>
<div id="content" class="type-text ck-content">
<p><a href="https://github.com/lokalise/i18n-ally"><code>i18n-ally</code></a> is a VS Code extension that aids in internationalization.</p><p>It is currently integrated in the project and offers features such as:</p><ul><li>Highlight, autocomplete translations.</li><li>Display translations inline.</li><li>Extract messages into translation.</li></ul><h3>Extracting messages into translation</h3><ol><li>Open any .js file and select an untranslated string inside a template (<code>TPL</code>).</li><li>Press Ctrl+P and look for “i18n Ally: Extract text into i18n messages”</li><li>Select the first template.</li><li>Select the path of translation, taking into consideration the&nbsp;<a class="reference-link type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>&nbsp;(e.g. <code>jump_to_note.search-for-note-by-its-name</code>).</li></ol>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<strong>i18n-ally</strong>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Protected entities</title>
</head>
<body data-note-id="KbwD5mDpD4CV" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Protected entities</h1>
<div id="content" class="type-text ck-content">
<p>The following entities can be made protected, via their <code>isProtected</code> flag:</p><ul><li><a class="reference-link type-text" href="wCxCJB3hhojs.html">attachments</a></li><li><a class="reference-link type-text" href="kAfgZERKtVhU.html">notes</a></li><li><a class="reference-link type-text" href="QYMncZf5Bu3D.html">revisions</a></li></ul>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<strong>Protected entities</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-835
View File
@@ -1,835 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Environment setup</title>
</head>
<body data-note-id="MUGBo4n67kBI" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="WKn3hLGmKmiH.html"
class="type-text">CKEditor</a>
</nav>
<h1 id="title">Environment setup</h1>
<div id="content" class="type-text ck-content">
<p>To set up the repository:</p><pre><code class="language-text-plain">git clone https://github.com/TriliumNext/trilium-ckeditor5.git
cd trilium-ckeditor5.git
yarn install</code></pre><p>To trigger the build run:</p><pre><code class="language-text-plain">yarn build</code></pre>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<strong>Environment setup</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Documentation</title>
</head>
<body data-note-id="PHqgH8FCfcod" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="ZlxZh8NH5frM.html"
class="type-text">Building and deployment</a>
</nav>
<h1 id="title">Documentation</h1>
<div id="content" class="type-text ck-content">
<p>Development notes are published on <a href="https://triliumnext.github.io/Notes">triliumnext.github.io/Notes</a> by the CI using GitHub Pages.</p><p>The GitHub Pages deployment works by taking the files from the Notes repository, in the <code>docs</code> directory.</p><h2>How it works</h2><p>There is a script that uses <code>wget</code> to download all the files from a share, that means:</p><ol><li>You must have a local instance of Trilium Notes server.</li><li>You must have the documentation imported, up to date and shared.</li></ol><p>Note that currently the documentation source file is not distributed (the note export), until a way is found to automate this process. Contact <code>eliandoran</code> should you require to obtain a copy of the documentation.</p><h2>Setting up <code>.env</code> file</h2><p>Go to <code>bin/docs</code> and copy <code>.env.example</code> to <code>.env</code> and edit it:</p><ol><li>Change the <code>SHARE_PROTOCOL</code> to either <code>http</code> or <code>https</code> depending on your setup.</li><li>Change <code>SHARE_HOST</code> to match the domain name or the URL to the host (without the protocol or any slashes).</li></ol><p>Generally <code>ROOT_NOTE_ID</code> should not be changed since the note ID must match if the files were imported correctly.</p><h2>Triggering a build</h2><p>Run:</p><pre><code class="language-text-plain">./bin/docs/prepare.sh</code></pre><p>This will attempt to download all the notes from the share URL and put them in <code>docs</code>, rewritten for GitHub Pages.</p><p>Commit the results and follow the normal development process to push them.</p>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<strong>Documentation</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-831
View File
@@ -1,831 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Revisions</title>
</head>
<body data-note-id="QSkfVssHIngA" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Revisions</h1>
<p>This note has no content.</p>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<strong>Revisions</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-881
View File
@@ -1,881 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Adding a new client library</title>
</head>
<body data-note-id="QXCi6Y1SYulw" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="VS22Hq5PBFNf.html"
class="type-text">Dependency Management</a>
</nav>
<h1 id="title">Adding a new client library</h1>
<div id="content" class="type-text ck-content">
<p>In the past some libraries have been copy-pasted (and adapted if needed) to the repository. However, new libraries must be obtained exclusively through npm.</p><p>The first step is to install the desired library. As an example we are going to install <code>i18next</code>:</p><pre><code class="language-text-plain">npm i i18next</code></pre><h3>Step 1. Understanding the structure of the import</h3><p>After installing the dependency, it's important to know how it's structured. You can do this by looking at the directory structure of the newly imported dependency:</p><pre><code class="language-text-plain">$ tree node_modules/i18next
node_modules/i18next
├── dist
│ ├── cjs
│ │ └── i18next.js
│ ├── esm
│ │ ├── i18next.bundled.js
│ │ ├── i18next.js
│ │ └── package.json
│ └── umd
│ ├── i18next.js
│ └── i18next.min.js
├── i18next.js
├── i18next.min.js
├── index.d.mts
├── index.d.ts
├── index.js
├── index.v4.d.ts
├── LICENSE
├── package.json
├── README.md
└── typescript
├── helpers.d.ts
├── options.d.ts
├── t.d.ts
└── t.v4.d.ts</code></pre><p>Generally you should be looking for a <code>.min.js</code> file. Note that the <code>esm</code> and <code>cjs</code> variants generally don't work, we are looking for the classic, no module dependency.</p><h3>Step 2. Exposing the library from the server</h3><p>The library must be delivered by the server and this is done via <code>src/routes/assets.ts</code>. In the <code>register</code> function, add a new entry near the bottom of the function:</p><pre><code class="language-application-javascript-env-frontend">app.use(`/${assetPath}/node_modules/i18next/`, persistentCacheStatic(path.join(srcRoot, "..", 'node_modules/i18next/')));</code></pre><h3>Step 3. Adding it to the library loader</h3><p>The library loader is a client module which is in charge of downloading the library from the server and importing it. The loader is located in <code>src/public/app/services/library_loader.js</code>.</p><p>To add a new library, start by creating a constant for it, with the value pointing to the minified JS identified at the first step:</p><pre><code class="language-application-javascript-env-frontend">const I18NEXT = {
js: [
"node_modules/i18next/i18next.min.js"
]
};</code></pre><p>Then add it to the <code>export default</code> section:</p><pre><code class="language-text-x-diff"> export default {
requireCss,
requireLibrary,
CKEDITOR,
CODE_MIRROR,
ESLINT,
RELATION_MAP,
PRINT_THIS,
CALENDAR_WIDGET,
KATEX,
WHEEL_ZOOM,
FORCE_GRAPH,
MERMAID,
EXCALIDRAW,
- MARKJS
+ MARKJS,
+ I18NEXT
}</code></pre><h3>Step 4. Using the library</h3><p>To import the library, simply use the following mechanism:</p><pre><code class="language-text-x-diff">import library_loader from "./library_loader.js";
await library_loader.requireLibrary(library_loader.I18NEXT);</code></pre><p>Make sure to replace <code>I18NEXT</code> with the library that was created at the previous steps.</p><p>Note that because we are not using a module management mechanism such as ES Modules or Common.js modules, the <code>requireLibrary</code> method does not actually return anything.&nbsp;</p><p>To benefit from the library, it must export on its own an object in <code>window</code>.</p><p>In the case of <code>i18next</code>, it sets <code>window.i18next</code> and that can be used directly:</p><pre><code class="language-text-x-diff">i18next.init({});</code></pre><h3>Step 5. Adding Electron support</h3><p>For Electron, the <code>node_modules</code> are copied as a separate step by <code>bin/copy-dist.ts</code>.</p><p>Scroll all the way down to the <code>nodeModulesFolder</code> and append an entry for the newly added libraries.</p>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<strong>Adding a new client library</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>revisions</title>
</head>
<body data-note-id="QYMncZf5Bu3D" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="zCDxk5VFdsqg.html"
class="type-text">Database</a>
</nav>
<h1 id="title">revisions</h1>
<div id="content" class="type-text ck-content">
<figure class="table"><table><thead><tr><th>Column Name</th><th>Data Type</th><th>Nullity</th><th>Default value</th><th>Description</th></tr></thead><tbody><tr><th><code>revisionId</code></th><td>TextText</td><td>Non-null</td><td>&nbsp;</td><td>Unique ID of the revision (e.g. <code>0GjgUqnEudI8</code>).</td></tr><tr><th><code>noteId</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>ID of the <a href="kAfgZERKtVhU.html" class="type-text">note</a> this revision belongs to.</td></tr><tr><th><code>type</code></th><td>Text</td><td>Non-null</td><td><code>""</code></td><td>The type of note (i.e. <code>text</code>, <code>file</code>, <code>code</code>, <code>relationMap</code>, <code>mermaid</code>, <code>canvas</code>).</td></tr><tr><th><code>mime</code></th><td>Text</td><td>Non-null</td><td><code>""</code></td><td>The MIME type of the note (e.g. <code>text/html</code>).</td></tr><tr><th><code>title</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>The title of the note, as defined by the user.</td></tr><tr><th><code>isProtected</code></th><td>Integer</td><td>Non-null</td><td>0</td><td><code>1</code> if the entity is <a href="KbwD5mDpD4CV.html" class="type-text">protected</a>, <code>0</code> otherwise.</td></tr><tr><th><code>blobId</code></th><td>Text</td><td>Nullable</td><td><code>null</code></td><td>The corresponding ID from&nbsp;<a class="reference-link type-text" href="6x42mhlfLo0o.html">blobs</a>. Although it can theoretically be <code>NULL</code>, haven't found any such note yet.</td></tr><tr><th><code>utcDateLastEdited</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td><strong>Not sure how it differs from modification date.</strong></td></tr><tr><th><code>utcDateCreated</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>Creation date in UTC format (e.g. <code>2023-11-08 16:43:44.204Z</code>)</td></tr><tr><th><code>utcDateModified</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>Modification date in UTC format (e.g. <code>2023-11-08 16:43:44.204Z</code>)</td></tr><tr><th><code>dateLastEdited</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td><strong>Not sure how it differs from modification date.</strong></td></tr><tr><th><code>dateCreated</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>Localized creatino date (e.g. <code>2023-08-12 15:10:04.045+0300</code>)</td></tr></tbody></table></figure>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<strong>revisions</strong>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-842
View File
@@ -1,842 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Synchronisation</title>
</head>
<body data-note-id="U5RtMeGPeZ29" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Synchronisation</h1>
<nav id="childLinks" class="grid">
<ul>
<li>
<a href="d3dnvVOhur16.html"
class="type-text">Content hashing</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<strong>Synchronisation</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Safe mode</title>
</head>
<body data-note-id="UDBwK5Fhr2CT" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Safe mode</h1>
<div id="content" class="type-text ck-content">
<p>Safe mode is triggered by setting the <code>TRILIUM_SAFE_MODE</code> to a truthy value, usually <code>1</code>.</p><p>In each artifact there is a <code>trilium-safe-mode.sh</code> (or <code>.bat</code>) script to enable it.</p><p>What it does:</p><ul><li>Disables <code>customWidget</code> launcher types in <code>app/widgets/containers/launcher.js</code>.</li><li>Disables the running of <code>mobileStartup</code> or <code>frontendStartup</code> scripts.</li><li>Displays the root note instead of the previously saved session.</li><li>Disables the running of <code>backendStartup</code>, <code>hourly</code>, <code>daily</code> scripts and checks for the hidden subtree.</li></ul>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<strong>Safe mode</strong>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-837
View File
@@ -1,837 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Build deliveries locally</title>
</head>
<body data-note-id="UTB518X6X9Uh" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="ZlxZh8NH5frM.html"
class="type-text">Building and deployment</a>
</nav>
<h1 id="title">Build deliveries locally</h1>
<div id="content" class="type-text ck-content">
<p>In the project root:</p><figure class="table"><table><thead><tr><th>Platform</th><th>Architecture</th><th>Application</th><th>Build command</th></tr></thead><tbody><tr><th rowspan="2">macOS</th><td>x86_64</td><td>Desktop / Electron app</td><td><code>./bin/build-mac-x64.sh</code></td></tr><tr><td>ARM 64</td><td>Desktop / Electron app</td><td><code>./bin/build-mac-arm64.sh</code></td></tr><tr><th rowspan="2">Linux</th><td rowspan="2">x86_64</td><td>Desktop / Electron app</td><td><code>./bin/build-linux-x64.sh</code></td></tr><tr><td>Server</td><td><code>./bin/build-server.sh</code></td></tr><tr><th>Windows</th><td>x86_64</td><td>Desktop / Electron app</td><td><code>./bin/build-win-x64.sh</code></td></tr></tbody></table></figure><p>Under NixOS the following <code>nix-shell</code> is needed:</p><pre><code class="language-text-plain">nix-shell -p jq</code></pre><p>For Linux builds:</p><pre><code class="language-text-plain">nix-shell -p jq fakeroot dpkg</code></pre><p>The resulting build will be in the <code>dist</code> directory under the project root.</p><h3>Testing the Linux builds under NixOS</h3><figure class="table"><table><thead><tr><th>Desktop client</th><th>Server</th></tr></thead><tbody><tr><td><pre><code class="language-text-plain">$ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p steam-run
[nix-shell] cd dist/trilium-linux-x64
[nix-shell] steam-run ./trilium</code></pre></td><td><pre><code class="language-text-plain">$ NIXPKGS_ALLOW_UNFREE=1 nix-shell -p steam-run
[nix-shell] cd dist/trilium-linux-x64-server
[nix-shell] steam-run ./trilium.sh</code></pre></td></tr></tbody></table></figure>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<strong>Build deliveries locally</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-847
View File
@@ -1,847 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Dependency Management</title>
</head>
<body data-note-id="VS22Hq5PBFNf" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="4yYHqKbLovVX.html"
class="type-text">Developer&#39;s Guide</a>
</nav>
<h1 id="title">Dependency Management</h1>
<nav id="childLinks" class="grid">
<ul>
<li>
<a href="QXCi6Y1SYulw.html"
class="type-text">Adding a new client library</a>
</li>
<li>
<a href="C09Dou56ffMe.html"
class="type-text">Having a simpler packaging system</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<strong>Dependency Management</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-857
View File
@@ -1,857 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Note types</title>
</head>
<body data-note-id="VbDoDdiHEemi" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Note types</h1>
<div id="content" class="type-text ck-content">
<p>The note type is defined by the <code>type</code> column in&nbsp;<a class="reference-link type-text" href="kAfgZERKtVhU.html">notes</a>.</p><p>Possible types:</p><figure class="table" style="width:100%;"><table class="ck-table-resized"><colgroup><col style="width:9.01%;"><col style="width:10.33%;"><col style="width:29.72%;"><col style="width:23.85%;"><col style="width:27.09%;"></colgroup><thead><tr><th>Note Type</th><th><code>type</code> value</th><th>Corresponding MIME type</th><th>Content of the note's blob</th><th>Relevant attributes</th></tr></thead><tbody><tr><th>Text</th><td><code>text</code></td><td>&nbsp;</td><td>The HTML of the note.</td><td>&nbsp;</td></tr><tr><th><a href="https://github.com/zadam/trilium/wiki/Relation-map">Relation Map&nbsp;</a></th><td><code>relationMap</code></td><td><code>application/json</code></td><td><p>A JSON describing the note:</p><pre><code class="language-text-plain">{
"notes": [
{
"noteId": "gFQDL11KEm9G",
"x": 142,
"y": 405
},
{
"noteId": "8GcjEKyrrCgl",
"x": 100.10406374385552,
"y": 757.0364424520196
}
],
"transform": {
"scale": 0.3,
"x": 480.29766098682165,
"y": 116.83892021963081
}
}</code></pre></td><td>None</td></tr><tr><th><a href="https://github.com/zadam/trilium/wiki/Scripts">Render Note</a></th><td><code>render</code></td><td><code>text/html</code> or blank.</td><td>An empty blob.</td><td><code>~renderNote</code> pointing to the HTML note to render.</td></tr><tr><th>Canvas</th><td><code>canvas</code></td><td><code>application/json</code></td><td><pre><code class="language-text-plain">{
"appState": {},
"elemenets": {},
"files": {},
"type": "excalidraw",
"version": 2
}</code></pre></td><td>None</td></tr><tr><th>Mermaid Diagram</th><td><code>mermaid</code></td><td><code>text/mermaid</code> or <code>text/plain</code></td><td>The plain text content of the Mermaid diagram.</td><td>None</td></tr><tr><th>Book</th><td><code>book</code></td><td><code>text/html</code> or blank.</td><td>An empty blob.</td><td><ul><li><code>#viewType</code> which can be either <code>grid</code> or <code>list</code>.</li><li><code>#expanded</code></li></ul><p>both options are shown to the user via the “Book Properties” ribbon widget.</p></td></tr><tr><th>Web View</th><td><code>webView</code></td><td>blank</td><td>An empty blob.</td><td><code>#webViewSrc</code> pointing to an URL to render.</td></tr><tr><th>Code</th><td><code>code</code></td><td>Depends on the language (e.g. <code>text/plain</code>, <code>text/x-markdown</code>, <code>text/x-c++src</code>).</td><td>The plain text content.</td><td>&nbsp;</td></tr></tbody></table></figure>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<strong>Note types</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>branches</title>
</head>
<body data-note-id="Vy1PbjSkUast" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="zCDxk5VFdsqg.html"
class="type-text">Database</a>
</nav>
<h1 id="title">branches</h1>
<div id="content" class="type-text ck-content">
<figure class="table"><table><thead><tr><th>Column Name</th><th>Data Type</th><th>Nullity</th><th>Default value</th><th>Description</th></tr></thead><tbody><tr><th><code>branchId</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>The ID of the branch, in the form of <code>a_b</code> where <code>a</code> is the <code>parentNoteId</code> and <code>b</code> is the <code>noteId</code>.</td></tr><tr><th><code>noteId</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>The ID of the <a href="kAfgZERKtVhU.html" class="type-text">note</a>.</td></tr><tr><th><code>parentNoteId</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>The ID of the parent <a href="kAfgZERKtVhU.html" class="type-text">note</a> the note belongs to.</td></tr><tr><th><code>notePosition</code></th><td>Integer</td><td>Non-null</td><td>&nbsp;</td><td>The position of the branch within the same level of hierarchy, the value is usually a multiple of 10.</td></tr><tr><th><code>prefix</code></th><td>Text</td><td>Nullable</td><td>&nbsp;</td><td>The <a href="1l1f6WZbaBEZ.html" class="type-text">branch prefix</a> if any, or <code>NULL</code> otherwise.</td></tr><tr><th><code>isExpanded</code></th><td>Integer</td><td>Non-null</td><td>0</td><td>Whether the branch should appear expanded (its children shown) to the user.</td></tr><tr><th><code>isDeleted</code></th><td>Integer</td><td>Non-null</td><td>0</td><td><code>1</code> if the entity is <a href="IuxV242YGaN5.html" class="type-text">deleted</a>, <code>0</code> otherwise.</td></tr><tr><th><code>deleteId</code></th><td>Text</td><td>Nullable</td><td><code>null</code></td><td>&nbsp;</td></tr><tr><th><code>utcDateModified</code></th><td>Text</td><td>Non-null</td><td>&nbsp;</td><td>Modification date in UTC format (e.g. <code>2023-11-08 16:43:44.204Z</code>)</td></tr></tbody></table></figure>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<strong>branches</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-852
View File
@@ -1,852 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>CKEditor</title>
</head>
<body data-note-id="WKn3hLGmKmiH" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="s5gsYTbPQr6c.html"
class="type-text">Updating dependencies</a>
</nav>
<h1 id="title">CKEditor</h1>
<nav id="childLinks" class="grid">
<ul>
<li>
<a href="MUGBo4n67kBI.html"
class="type-text">Environment setup</a>
</li>
<li>
<a href="icQBu8R1ij57.html"
class="type-text">Building &amp; updating</a>
</li>
<li>
<a href="zpR91YHYs6lL.html"
class="type-text">Differences from upstream</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<strong>CKEditor</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-838
View File
@@ -1,838 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>bettersqlite binaries</title>
</head>
<body data-note-id="X4N03xLYEWnN" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="s5gsYTbPQr6c.html"
class="type-text">Updating dependencies</a>
</nav>
<h1 id="title">bettersqlite binaries</h1>
<div id="content" class="type-text ck-content">
<h3>The native node bindings</h3><p><code>better-sqlite3</code> has native Node bindings. With updates of <code>better-sqlite3</code>, but also of Electron and Node.js versions, these bindings need to be updated.</p><p>Note that Electron and Node.js versions need different versions of these bindings, since Electron usually packs a different version of Node.js.</p><p>During development, <code>npm install</code> tries to build or reuse prebuilt natives for the current Node.js version. This makes <code>npm run start-server</code> work out of the box. Trying to run <code>npm run start-electron</code> with these versions generally causes an error such as this:</p><pre><code class="language-text-plain">Uncaught Exception:
Error: The module '/Users/elian/Projects/Notes/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 108. This version of Node.js requires
NODE_MODULE_VERSION 116. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).</code></pre><h3>How the natives are handled</h3><p>Locally, this can be fixed by rebuilding the binaries, which is what <code>npm run switch-electron</code> does, which uses <code>electron-rebuild</code> under the hood.</p><p>When the deliveries are built (see&nbsp;<a class="reference-link type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>), it is not feasible to rebuild the dependencies since we are building for multiple platforms. Luckily, <code>better-sqlite3</code> provides these prebuilt binaries from us, available as artifacts on <a href="https://github.com/WiseLibs/better-sqlite3/releases/">their GitHub releases page</a>.&nbsp;</p><p>The build script manages the natives for <code>better-sqlite3</code> by keeping a copy of the <code>.node</code> file for every platform in <code>bin/better-sqlite3</code>.</p><p>Whenever the version of <code>better-sqlite3</code> changes, the <code>.node</code> files must also be renewed based on their releases page. To simplify this process, a script was created in <code>bin/better-sqlite3/update.sh</code>.</p><h2>How to update the natives</h2><p>The update script needs to know the version of Electron or Node.js for which to download the prebuilt binaries.</p><p>If you get errors during download, check on the <a href="https://github.com/WiseLibs/better-sqlite3/releases/">releases page</a> to ensure that this particular combination of Electron/Node actually exists for the given release.</p><p>To determine the <code>NODE_MODULE_VERSION</code> that is required, look for <code>This version of Node.js requires</code><br><code>NODE_MODULE_VERSION</code> in the error when starting Trilium via:</p><ul><li><code>npm run start-electron</code> (or run any Electron <a href="UTB518X6X9Uh.html" class="type-text">delivery</a>), case in which the <span style="color:#c0bfbc;"><code>ELECTRON_VERSION</code> variable needs to be changed.</span></li><li><span style="color:#c0bfbc;"><code>npm run start-server</code></span> (or run the Linux server delivery), case in which the <code>NODE_VERSION</code> variable needs to be changed.</li></ul><p>Check which files got changed after running the update script and for each platform that got changed, test it locally via&nbsp;<a class="reference-link type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>&nbsp;or via the CI.</p>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<strong>bettersqlite binaries</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Live reload</title>
</head>
<body data-note-id="XxqZW6JjkW2g" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="B8hxg4e66cVL.html"
class="type-text">Development and architecture</a>
</nav>
<h1 id="title">Live reload</h1>
<div id="content" class="type-text ck-content">
<h2>Server live reload</h2><p>If running the server using <code>npm run start-server</code>, the server will watch for changes in <code>src/public</code> and trigger a frontend reload if that occurs.</p><h2>Electron live reload</h2><p>Similarly, <code>npm run start-electron</code> supports live refresh &nbsp;as well.</p><p>However, a core difference is that Electron watches <code>dist/src/public</code> instead of <code>src/public</code> since Electron runs on its own copy of the files.</p><p>To ameliorate that, a separate watch script has been implemented which automatically copies files from <code>src/public</code> to <code>dist/src/public</code> whenever a change is detected. To run it:</p><pre><code class="language-text-plain">npm run </code></pre><h2>Technical details</h2><ul><li>This mechanism is managed at server level by watching for changes in<code>services/ws.ts</code>.</li></ul>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<strong>Live reload</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-833
View File
@@ -1,833 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Guidelines</title>
</head>
<body data-note-id="Z9N9OKBXXLFW" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="hkrBX8KE1HQl.html"
class="type-text">Internationalisation / Translations</a>
</nav>
<h1 id="title">Guidelines</h1>
<div id="content" class="type-text ck-content">
<ul><li>Use hierarchy whenever appropriate, try to group the messages by:<ul><li>Modals (e.g. <code>about.foo</code>, <code>jump_to_note.foo</code>)</li></ul></li><li>Don't duplicate messages that are very widely used.<ul><li>One such example is <code>aria-label="Close"</code> which should go to a single message such as <code>modal.close</code> instead of being duplicated in every modal.</li></ul></li><li>On the other hand, don't overly generalise messages. A <code>close</code> message that is used whenever the “Close” word is encountered is not a good approach since it can potentially cause issues due to lack of context.</li><li>Use <a href="https://www.i18next.com/translation-function/interpolation">variable interpolation</a> whenever appropriate.<ul><li>If you see multiple messages joined together only to apply add a variable such as a user-inputted value, try to join those messages together into a single message containing a variable.</li><li>So instead of <code>“Number of updates: “ + numUpdates + “.”</code> use <code>$(t("number_updates", { numUpdates }))</code> where the message translation would appear as <code>Number of updates: {{numUpdates}}.</code></li></ul></li></ul>
</div>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="ZlxZh8NH5frM.html">Building and deployment</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<strong>Guidelines</strong>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
-862
View File
@@ -1,862 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="./favicon.ico">
<script src="./assets/v0.63.6/app-dist/share.js"></script>
<link href="./assets/v0.63.6/libraries/normalize.min.css" rel="stylesheet">
<link href="./assets/v0.63.6/stylesheets/share.css" rel="stylesheet">
<link href="./assets/v0.63.6/libraries/ckeditor/ckeditor-content.css" rel="stylesheet">
<title>Building and deployment</title>
</head>
<body data-note-id="ZlxZh8NH5frM" data-ancestor-note-id="4yYHqKbLovVX">
<div id="layout">
<div id="main">
<nav id="parentLink">
parent: <a href="4yYHqKbLovVX.html"
class="type-text">Developer&#39;s Guide</a>
</nav>
<h1 id="title">Building and deployment</h1>
<nav id="childLinks" class="grid">
<ul>
<li>
<a href="PHqgH8FCfcod.html"
class="type-text">Documentation</a>
</li>
<li>
<a href="btM6L9JtG301.html"
class="type-text">Running a development build</a>
</li>
<li>
<a href="UTB518X6X9Uh.html"
class="type-text">Build deliveries locally</a>
</li>
<li>
<a href="biDJ9KgbWLgt.html"
class="type-text">Releasing a version</a>
</li>
<li>
<a href="rU1hxvgqlA9x.html"
class="type-text">CI</a>
</li>
</ul>
</nav>
</div>
<button id="toggleMenuButton"></button>
<nav id="menu">
<p>
<a class="type-text" href="4yYHqKbLovVX.html">Developer&#39;s Guide</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="VS22Hq5PBFNf.html">Dependency Management</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="QXCi6Y1SYulw.html">Adding a new client library</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="C09Dou56ffMe.html">Having a simpler packaging system</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<strong>Building and deployment</strong>
</p>
<ul>
<li>
<p>
<a class="type-text" href="PHqgH8FCfcod.html">Documentation</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="btM6L9JtG301.html">Running a development build</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UTB518X6X9Uh.html">Build deliveries locally</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="biDJ9KgbWLgt.html">Releasing a version</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="rU1hxvgqlA9x.html">CI</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="BhE2WFknKKHG.html">Main</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="xtBYDVZPb0gr.html">Project maintenance</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="s5gsYTbPQr6c.html">Updating dependencies</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="X4N03xLYEWnN.html">bettersqlite binaries</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="GMta9hBHsXHQ.html">Node.js, Electron and `better-sqlite3`</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="jvdjFBOCCrOa.html">Testing compatibility</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="WKn3hLGmKmiH.html">CKEditor</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="MUGBo4n67kBI.html">Environment setup</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="icQBu8R1ij57.html">Building &amp; updating</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zpR91YHYs6lL.html">Differences from upstream</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="B8hxg4e66cVL.html">Development and architecture</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="hkrBX8KE1HQl.html">Internationalisation / Translations</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="Z9N9OKBXXLFW.html">Guidelines</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="KRC2O84LekPz.html">i18n-ally</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="XxqZW6JjkW2g.html">Live reload</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="3jc1nUXyteo0.html">Themes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="U5RtMeGPeZ29.html">Synchronisation</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="d3dnvVOhur16.html">Content hashing</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="mPGbEmYGitWe.html">Build information</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="zCDxk5VFdsqg.html">Database</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="wCxCJB3hhojs.html">attachments</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="wxCwZ1P2SGCx.html">attributes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="6x42mhlfLo0o.html">blobs</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="Vy1PbjSkUast.html">branches</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="inGKXCChkVYX.html">entity_changes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="y2ido6E6tZ0V.html">etapi_tokens</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="kAfgZERKtVhU.html">notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FSZoX3cJlJE7.html">options</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="bzQfhyzDo3Xz.html">recent_notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QYMncZf5Bu3D.html">revisions</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="KbwD5mDpD4CV.html">Protected entities</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="IuxV242YGaN5.html">Deleted notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="FJ4VR6G2M6VD.html">Special notes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="1l1f6WZbaBEZ.html">Branch prefixes</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="QSkfVssHIngA.html">Revisions</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="cemIoFLfEGPO.html">Backlinks</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="VbDoDdiHEemi.html">Note types</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="UDBwK5Fhr2CT.html">Safe mode</a>
</p>
</li>
</ul>
</li>
<li>
<p>
<a class="type-text" href="3eTu21fjtZkj.html">Scripting</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="1pOWnHdGAuWR.html">Widgets</a>
</p>
<ul>
<li>
<p>
<a class="type-text" href="8jWguCtuKsAt.html">Right pane widget</a>
</p>
</li>
<li>
<p>
<a class="type-text" href="4FXLAtcPhZFo.html">CSS</a>
</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
</body>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Some files were not shown because too many files have changed in this diff Show More