lint: format with treefmt

Signed-off-by: Patrizio Bekerle <patrizio@bekerle.com>
This commit is contained in:
Patrizio Bekerle 2025-03-19 22:26:12 +01:00
parent 1f43a70622
commit 7aa2fb5297
No known key found for this signature in database
GPG key ID: 75960E6926556207
474 changed files with 13885 additions and 11603 deletions

4
.github/FUNDING.yml vendored
View file

@ -1,6 +1,6 @@
# These are supported funding model platforms
github: ['pbek']
github: ["pbek"]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl
liberapay: pbek
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ['https://paypal.me/pbek']
custom: ["https://paypal.me/pbek"]

View file

@ -2,9 +2,8 @@
name: Bug report
about: Create a report to help us improve.
title: "[BUG] "
labels: 'Type: Support'
assignees: ''
labels: "Type: Support"
assignees: ""
---
<!--
@ -19,26 +18,25 @@ https://github.com/qownnotes/scripts/issues and mention the authors of the scrip
You will find the authors in the *Script repository*.
-->
#### Expected behaviour
A clear and concise description of what you expected to happen
and why you think it should be that way.
#### Actual behaviour
A clear and concise description of what the bug is.
#### Steps to reproduce
Steps to reproduce the behavior:
1. ...
2. ...
3. ...
#### Screenshots
If applicable, add screenshots to help explain your problem.
#### Output from the debug section in the settings dialog

View file

@ -2,18 +2,20 @@
name: Editor schema
about: Share your editor schema exported from "Editor fonts & colors" settings.
title: "[EDITOR SCHEMA] "
labels: 'Type: Feature'
assignees: 'pbek'
labels: "Type: Feature"
assignees: "pbek"
---
#### Schema name
<!-- Please provide the name of the schema you want to add. -->
#### Screenshot
<!-- Please provide a screenshot of the schema in action. -->
#### Schema file
<!-- Please provide the schema file. -->
<!-- You will need to compress the schema xml as zip or gz before GitHub lets you upload it. -->
<!-- If you don't know how to do that you can also upload it to a file sharing service and post the link here or just post the content of the file in a code block. -->

View file

@ -2,9 +2,8 @@
name: Feature request
about: Suggest an idea for this project.
title: "[FEATURE] "
labels: 'Type: Support'
assignees: ''
labels: "Type: Support"
assignees: ""
---
<!--
@ -20,15 +19,19 @@ You will find the authors in the *Script repository*.
-->
#### Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
#### Describe the solution you'd like
A clear and concise description of what you want to happen.
#### Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
#### Additional context
Add any other context or screenshots about the feature request here.
#### Output from the debug section in the settings dialog

View file

@ -2,9 +2,8 @@
name: Question / Support
about: What do you want to ask?
title: "[SUPPORT] "
labels: 'Type: Support'
assignees: ''
labels: "Type: Support"
assignees: ""
---
<!--
@ -19,7 +18,6 @@ https://github.com/qownnotes/scripts/issues and mention the authors of the scrip
You will find the authors in the *Script repository*.
-->
#### Question
#### Output from the debug section in the settings dialog

View file

@ -11,11 +11,11 @@ on:
branches:
- main
tags-ignore:
- '*'
- "*"
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths
paths:
- '.github/workflows/build-deploy-release-image.yml'
- 'build-systems/github/ubuntu22-dev/Dockerfile'
- ".github/workflows/build-deploy-release-image.yml"
- "build-systems/github/ubuntu22-dev/Dockerfile"
env:
REGISTRY: ghcr.io

View file

@ -5,10 +5,10 @@ on:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths
# if [[ ${changed_file} == "CHANGELOG.md" ]] || [[ ${changed_file} = screenshots* ]] || [[ ${changed_file} = webpage* ]] || [[ ${changed_file} = ".github/workflows/build-deploy-webpage.yml" ]] ;
paths:
- 'CHANGELOG.md'
- 'screenshots/**'
- 'webpage/**'
- '.github/workflows/build-deploy-webpage.yml'
- "CHANGELOG.md"
- "screenshots/**"
- "webpage/**"
- ".github/workflows/build-deploy-webpage.yml"
workflow_dispatch:
defaults:
@ -17,7 +17,6 @@ defaults:
jobs:
build:
runs-on: ubuntu-latest
steps:

View file

@ -5,20 +5,20 @@ on:
branches-ignore:
- release
tags-ignore:
- '*'
- "*"
paths:
- 'src/**'
- 'shell.nix'
- 'default.nix'
- 'build-systems/nix/**'
- '.github/workflows/build-nix.yml'
- "src/**"
- "shell.nix"
- "default.nix"
- "build-systems/nix/**"
- ".github/workflows/build-nix.yml"
pull_request:
paths:
- 'src/**'
- 'shell.nix'
- 'default.nix'
- 'build-systems/nix/**'
- '.github/workflows/build-nix.yml'
- "src/**"
- "shell.nix"
- "default.nix"
- "build-systems/nix/**"
- ".github/workflows/build-nix.yml"
workflow_dispatch:
jobs:
@ -28,8 +28,8 @@ jobs:
strategy:
fail-fast: false
matrix:
just-recipe: ['nix-build', 'nix-build-cmake-qt5']
os: ['ubuntu-latest', 'macos-latest', 'macos-14']
just-recipe: ["nix-build", "nix-build-cmake-qt5"]
os: ["ubuntu-latest", "macos-latest", "macos-14"]
steps:
- name: ⚙️ Install Nix
uses: cachix/install-nix-action@v31

View file

@ -38,7 +38,7 @@ env:
jobs:
create_release:
name: '🗃️️ Prepare release'
name: "🗃️️ Prepare release"
permissions:
contents: write # for actions/create-release to create a release
runs-on: ubuntu-latest
@ -90,40 +90,39 @@ jobs:
env:
QT_VERSION: 5.15.2
BUILD_DIR: build
name: '🐧 AppImage Qt 5.15.2'
name: "🐧 AppImage Qt 5.15.2"
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
setup-python: false
cache: true
- name: '⚙️ Install dependencies'
- name: "⚙️ Install dependencies"
run: |
sudo apt-get update
sudo apt install desktop-file-utils libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-dpms0 libxcb-dri2-0 libxcb-dri3-0 libxcb-ewmh2 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-record0 libxcb-render0 libxcb-res0 libxcb-screensaver0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxkbcommon-x11-0
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: |
echo "#define RELEASE \"AppImage\"" > release.h
${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr
lrelease QOwnNotes.pro
make -j${{env.CORES}}
- name: '⚙️ Install linuxdeploy'
- name: "⚙️ Install linuxdeploy"
run: |
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20240109-1/linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/1-alpha-20240109-1/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
- name: '📦 Create AppImage'
- name: "📦 Create AppImage"
run: |
export QMAKE=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/bin/${{env.QMAKE}}
export PATH=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/libexec:$PATH
@ -143,17 +142,16 @@ jobs:
find -iname "*.AppImage"
pwd
- name: '📤 Upload artifact: AppImage'
- name: "📤 Upload artifact: AppImage"
uses: actions/upload-artifact@v4
with:
name: ${{env.EXECUTABLE}}-x86_64.AppImage
path: src/${{env.EXECUTABLE}}-x86_64.AppImage
- name: '📤 Upload artifact: AppImage sha256sum'
- name: "📤 Upload artifact: AppImage sha256sum"
uses: actions/upload-artifact@v4
with:
name: ${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
path: src/${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
# #
# # Snap build
# #

View file

@ -7,17 +7,17 @@ on:
# For testing also on main branch
- main
tags-ignore:
- '*'
- "*"
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths
paths:
- 'src/**'
- 'tests/**'
- '.github/workflows/build-release-qt6.yml'
- 'build-systems/github/snap.qt6/**'
- "src/**"
- "tests/**"
- ".github/workflows/build-release-qt6.yml"
- "build-systems/github/snap.qt6/**"
# For testing also on pull requests
pull_request:
paths:
- 'src/**'
- "src/**"
workflow_dispatch:
defaults:
@ -41,7 +41,7 @@ env:
jobs:
create_release:
name: '🗃️️ Prepare release'
name: "🗃️️ Prepare release"
permissions:
contents: write # for actions/create-release to create a release
runs-on: ubuntu-latest
@ -93,40 +93,39 @@ jobs:
env:
QT_VERSION: 6.5.0
BUILD_DIR: build
name: '🐧 AppImage Ubuntu 20.04'
name: "🐧 AppImage Ubuntu 20.04"
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
cache: true
- name: '⚙️ Install dependencies'
- name: "⚙️ Install dependencies"
run: |
sudo apt-get update
# sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libzstd-dev
sudo apt install desktop-file-utils libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-dpms0 libxcb-dri2-0 libxcb-dri3-0 libxcb-ewmh2 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-record0 libxcb-render0 libxcb-res0 libxcb-screensaver0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxkbcommon-x11-0
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: |
echo "#define RELEASE \"AppImage\"" > release.h
${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr
lrelease QOwnNotes.pro
make -j${{env.CORES}}
- name: '⚙️ Install linuxdeploy'
- name: "⚙️ Install linuxdeploy"
run: |
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
- name: '📦 Create AppImage'
- name: "📦 Create AppImage"
run: |
export QMAKE=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/bin/${{env.QMAKE}}
export PATH=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/libexec:$PATH
@ -148,12 +147,12 @@ jobs:
find -iname "*.AppImage"
pwd
- name: '📤 Upload artifact: AppImage'
- name: "📤 Upload artifact: AppImage"
uses: actions/upload-artifact@v4
with:
name: ${{env.EXECUTABLE}}-x86_64.AppImage
path: src/${{env.EXECUTABLE}}-x86_64.AppImage
- name: '📤 Upload artifact: AppImage sha256sum'
- name: "📤 Upload artifact: AppImage sha256sum"
uses: actions/upload-artifact@v4
with:
name: ${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
@ -186,35 +185,34 @@ jobs:
env:
QT_VERSION: 6.5.0
continue-on-error: true
name: '🐧 Snap Ubuntu 18.04'
name: "🐧 Snap Ubuntu 18.04"
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Set Env'
- name: "⚙️ Set Env"
shell: bash
run: |
export VERSION=$(cat version.h | sed 's/[^0-9,.]//g')
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
cache: true
- name: '⚙️ Printenv'
- name: "⚙️ Printenv"
shell: bash
run: |
echo "VERSION=${VERSION}"
printenv
- name: '🚧 Compile application'
- name: "🚧 Compile application"
# https://github.com/snapcore/action-build
uses: snapcore/action-build@v1
id: snapcraft
@ -245,7 +243,7 @@ jobs:
# snap: /home/runner/work/QOwnNotes/QOwnNotes/qownnotes_${{ env.VERSION }}_amd64.snap
# release: stable
- name: '📤 Upload artifact: Snap'
- name: "📤 Upload artifact: Snap"
uses: actions/upload-artifact@v4
with:
name: qownnotes_${{ env.VERSION }}_amd64.snap
@ -255,7 +253,7 @@ jobs:
# Windows build
#
build-windows:
name: '🧊 Windows Server 2019'
name: "🧊 Windows Server 2019"
needs: create_release
# https://github.com/pbek/QOwnNotes/issues/2558 error on windows-2022!
runs-on: windows-2019
@ -264,16 +262,15 @@ jobs:
QT_VERSION: 6.6.1
continue-on-error: true
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
version: ${{env.QT_VERSION}}
# https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_650/qt.qt6.650.win64_mingw/
# https://aqtinstall.readthedocs.io/en/latest/getting_started.html
@ -281,7 +278,7 @@ jobs:
modules: ${{env.QT_MODULES}}
cache: true
- name: '⚙️ Set Env'
- name: "⚙️ Set Env"
shell: bash
run: |
export VERSION=$(cat version.h | sed 's/[^0-9,.]//g')
@ -290,26 +287,26 @@ jobs:
- name: Make sure MSVC is found
uses: ilammy/msvc-dev-cmd@v1
- name: '⚙️ Printenv'
- name: "⚙️ Printenv"
shell: bash
run: |
echo "VERSION=${VERSION}"
printenv
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: '& ..\build-systems\github\windows\build-zip-qt6.ps1'
- name: '📤 Upload artifact: Windows'
- name: "📤 Upload artifact: Windows"
uses: actions/upload-artifact@v4
with:
name: QOwnNotes.zip
path: QOwnNotes.zip
- name: '📤 Upload artifact: Windows sha256sum'
- name: "📤 Upload artifact: Windows sha256sum"
uses: actions/upload-artifact@v4
with:
name: QOwnNotes.zip.sha256
path: QOwnNotes.zip.sha256
- name: '📤 Upload artifact: Windows clickable sha256sum'
- name: "📤 Upload artifact: Windows clickable sha256sum"
uses: actions/upload-artifact@v4
with:
name: QOwnNotes.zip.sha256sum
@ -334,12 +331,11 @@ jobs:
# asset_name: QOwnNotes.zip.sha256
# asset_content_type: text/plain
#
# macOS build
#
build-macos:
name: '🍎 macOS Monterey'
name: "🍎 macOS Monterey"
needs: create_release
runs-on: macos-latest
env:
@ -347,34 +343,33 @@ jobs:
QT_VERSION: 6.4.2
continue-on-error: true
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
# https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
cache: true
- name: '⚙️ Set Env'
- name: "⚙️ Set Env"
shell: bash
run: |
export VERSION=$(cat version.h | sed 's/[^0-9,.]//g')
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: '⚙️ Printenv'
- name: "⚙️ Printenv"
shell: bash
run: |
echo "VERSION=${VERSION}"
printenv
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: |
echo "#define RELEASE \"GitHub Actions\"" > release.h
lrelease QOwnNotes.pro
@ -383,12 +378,11 @@ jobs:
make -j ${{env.CORES}}
../build-systems/github/macos/create-dmg-qt6.sh
- name: '📤 Upload artifact: macOS'
- name: "📤 Upload artifact: macOS"
uses: actions/upload-artifact@v4
with:
name: QOwnNotes.dmg
path: src/QOwnNotes.dmg
# - name: '📤 Release DMG'
# uses: actions/upload-release-asset@v1
# env:

View file

@ -6,7 +6,7 @@ on:
branches:
- release
tags-ignore:
- '*'
- "*"
defaults:
run:
@ -30,7 +30,7 @@ env:
jobs:
create_release:
name: '🗃️️ Prepare release'
name: "🗃️️ Prepare release"
permissions:
contents: write # for actions/create-release to create a release
runs-on: ubuntu-latest
@ -83,40 +83,39 @@ jobs:
env:
QT_VERSION: 5.15.2
BUILD_DIR: build
name: '🐧 AppImage Qt 5.15.2'
name: "🐧 AppImage Qt 5.15.2"
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
setup-python: false
cache: true
- name: '⚙️ Install dependencies'
- name: "⚙️ Install dependencies"
run: |
sudo apt-get update
sudo apt install desktop-file-utils libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-dpms0 libxcb-dri2-0 libxcb-dri3-0 libxcb-ewmh2 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-record0 libxcb-render0 libxcb-res0 libxcb-screensaver0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxkbcommon-x11-0
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: |
echo "#define RELEASE \"AppImage\"" > release.h
${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr
lrelease QOwnNotes.pro
make -j${{env.CORES}}
- name: '⚙️ Install linuxdeploy'
- name: "⚙️ Install linuxdeploy"
run: |
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
- name: '📦 Create AppImage'
- name: "📦 Create AppImage"
run: |
export QMAKE=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/bin/${{env.QMAKE}}
export PATH=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/libexec:$PATH
@ -146,7 +145,7 @@ jobs:
# with:
# name: ${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
# path: src/${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
- name: '📤 Release AppImage for Linux'
- name: "📤 Release AppImage for Linux"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -155,7 +154,7 @@ jobs:
asset_path: ./src/QOwnNotes-x86_64.AppImage
asset_name: QOwnNotes-x86_64.AppImage
asset_content_type: application/vnd.appimage
- name: '📤 Release AppImage sha256sum'
- name: "📤 Release AppImage sha256sum"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -174,40 +173,39 @@ jobs:
env:
QT_VERSION: 6.5.3
BUILD_DIR: build
name: '🐧 AppImage Qt 6.5.3'
name: "🐧 AppImage Qt 6.5.3"
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT6_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
cache: true
- name: '⚙️ Install dependencies'
- name: "⚙️ Install dependencies"
run: |
sudo apt-get update
# sudo apt-get install libgl1-mesa-dev libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libzstd-dev
sudo apt install desktop-file-utils libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-dpms0 libxcb-dri2-0 libxcb-dri3-0 libxcb-ewmh2 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-record0 libxcb-render0 libxcb-res0 libxcb-screensaver0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxkbcommon-x11-0
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: |
echo "#define RELEASE \"AppImage\"" > release.h
${{env.QMAKE}} ${{env.QMAKE_PROJECT}} CONFIG+=release PREFIX=/usr
lrelease QOwnNotes.pro
make -j${{env.CORES}}
- name: '⚙️ Install linuxdeploy'
- name: "⚙️ Install linuxdeploy"
run: |
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20240109-1/linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/1-alpha-20240109-1/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
- name: '📦 Create AppImage'
- name: "📦 Create AppImage"
run: |
export QMAKE=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/bin/${{env.QMAKE}}
export PATH=${{env.REPO_DIR}}/Qt/${{env.QT_VERSION}}/gcc_64/libexec:$PATH
@ -229,7 +227,7 @@ jobs:
find -iname "*.AppImage"
pwd
- name: '📤 Release AppImage Qt6 for Linux'
- name: "📤 Release AppImage Qt6 for Linux"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -238,7 +236,7 @@ jobs:
asset_path: ./src/QOwnNotes-x86_64.AppImage
asset_name: QOwnNotes-x86_64-Qt6.AppImage
asset_content_type: application/vnd.appimage
- name: '📤 Release AppImage Qt6 sha256sum'
- name: "📤 Release AppImage Qt6 sha256sum"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -256,38 +254,37 @@ jobs:
runs-on: ubuntu-latest
env:
QT_VERSION: 5.15.2
name: '🐧 Snap Qt 5.15.2'
name: "🐧 Snap Qt 5.15.2"
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Set Env'
- name: "⚙️ Set Env"
shell: bash
run: |
export VERSION=$(cat version.h | sed 's/[^0-9,.]//g')
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
cache: true
- name: '⚙️ Printenv'
- name: "⚙️ Printenv"
shell: bash
run: |
echo "VERSION=${VERSION}"
printenv
- name: '🚧 Compile application'
- name: "🚧 Compile application"
uses: snapcore/action-build@v1
id: snapcraft
- name: '📤 Release Snap for Linux'
- name: "📤 Release Snap for Linux"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -297,7 +294,7 @@ jobs:
asset_name: QOwnNotes-amd64.snap
asset_content_type: application/octet-stream
- name: '📤 Deploy Snap'
- name: "📤 Deploy Snap"
uses: snapcore/action-publish@v1
continue-on-error: true
env:
@ -317,7 +314,7 @@ jobs:
# Windows build
#
build-windows:
name: '🧊 Windows Qt 5.15.2'
name: "🧊 Windows Qt 5.15.2"
needs: create_release
# https://github.com/pbek/QOwnNotes/issues/2558 error on windows-2022!
runs-on: windows-2019
@ -325,16 +322,15 @@ jobs:
QT_VERSION: 5.15.2
continue-on-error: true
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
version: ${{env.QT_VERSION}}
# https://aqtinstall.readthedocs.io/en/latest/getting_started.html
# https://ddalcino.github.io/aqt-list-server/
@ -342,19 +338,19 @@ jobs:
modules: ${{env.QT_MODULES}}
cache: true
- name: '⚙️ Set Env'
- name: "⚙️ Set Env"
shell: bash
run: |
export VERSION=$(cat version.h | sed 's/[^0-9,.]//g')
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: '⚙️ Printenv'
- name: "⚙️ Printenv"
shell: bash
run: |
echo "VERSION=${VERSION}"
printenv
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: '& ..\build-systems\github\windows\build-zip.ps1'
# - name: '📤 Upload artifact: Windows'
@ -368,7 +364,7 @@ jobs:
# name: QOwnNotes.zip.sha256
# path: QOwnNotes.zip.sha256
- name: '📤 Release ZIP'
- name: "📤 Release ZIP"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -377,7 +373,7 @@ jobs:
asset_path: QOwnNotes.zip
asset_name: QOwnNotes.zip
asset_content_type: application/zip
- name: '📤 Release sha256 sum'
- name: "📤 Release sha256 sum"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -386,7 +382,7 @@ jobs:
asset_path: QOwnNotes.zip.sha256
asset_name: QOwnNotes.zip.sha256
asset_content_type: text/plain
- name: '📤 Release clickable sha256 sum'
- name: "📤 Release clickable sha256 sum"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -396,40 +392,37 @@ jobs:
asset_name: QOwnNotes.zip.sha256sum
asset_content_type: text/plain
#
# macOS build
#
build-macos:
name: '🍎 macOS Qt 5.15.2'
name: "🍎 macOS Qt 5.15.2"
needs: create_release
runs-on: macos-latest
env:
QT_VERSION: 5.15.2
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
# https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
cache: true
- name: '⚙️ Set Env'
- name: "⚙️ Set Env"
shell: bash
run: |
export VERSION=$(cat version.h | sed 's/[^0-9,.]//g')
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: '⚙️ Printenv'
- name: "⚙️ Printenv"
shell: bash
run: |
echo "VERSION=${VERSION}"
@ -437,7 +430,7 @@ jobs:
# qmake workaround: https://bugreports.qt.io/browse/QTBUG-117225?focusedId=754625&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-754625
# See https://github.com/pbek/QOwnNotes/issues/3018
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: |
echo "#define RELEASE \"GitHub Actions\"" > release.h
lrelease QOwnNotes.pro
@ -452,7 +445,7 @@ jobs:
# name: QOwnNotes.dmg
# path: src/QOwnNotes.dmg
- name: '📤 Release DMG'
- name: "📤 Release DMG"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -461,7 +454,6 @@ jobs:
asset_path: src/QOwnNotes.dmg
asset_name: QOwnNotes.dmg
asset_content_type: application/x-apple-diskimage
# publish_release:
# name: 📣 Publish release
# runs-on: ubuntu-latest

View file

@ -5,20 +5,20 @@ on:
branches-ignore:
- release
tags-ignore:
- '*'
- "*"
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths
# if [[ ${changed_file} = src* ]] || [[ ${changed_file} = tests* ]] || [[ ${changed_file} = build-systems/github/* ]] || [[ ${changed_file} = ".github/workflows/build-test.yml" ]] ;
paths:
- 'src/**'
- 'snap/**'
- 'tests/**'
- 'build-systems/github/**'
- '.github/workflows/build-test.yml'
- "src/**"
- "snap/**"
- "tests/**"
- "build-systems/github/**"
- ".github/workflows/build-test.yml"
pull_request:
paths:
- 'src/**'
- 'snap/**'
- 'tests/**'
- "src/**"
- "snap/**"
- "tests/**"
workflow_dispatch:
# schedule:
# - cron: "0 0 */3 * *"
@ -41,26 +41,36 @@ jobs:
# Linux: https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/
# macOS: https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/
# Windows: https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/
qt-version: ['5.9.9', '5.13.2', '5.14.2', '5.15.2', '6.2.4', '6.4.3', '6.5.3', '6.6.3']
qt-version:
[
"5.9.9",
"5.13.2",
"5.14.2",
"5.15.2",
"6.2.4",
"6.4.3",
"6.5.3",
"6.6.3",
]
experimental: [false]
exclude:
# Failing SSL Tests
- os: ubuntu-latest
qt-version: '5.9.9'
qt-version: "5.9.9"
# tests.exe not found
- os: windows-2019
qt-version: '5.9.9'
qt-version: "5.9.9"
# we want to do it Qt 6.2.0
- os: windows-2019
qt-version: '6.2.4'
qt-version: "6.2.4"
experimental: false
# we want to do it with "experimental: true"
- os: windows-2019
qt-version: '6.4.3'
qt-version: "6.4.3"
experimental: false
# we want to do it with "experimental: true"
- os: windows-2019
qt-version: '6.5.3'
qt-version: "6.5.3"
experimental: false
# - os: windows-2019
# qt-version: '6.6.3'
@ -68,16 +78,16 @@ jobs:
# Qt6 builds of macOS are currently breaking because of the workaround for https://bugreports.qt.io/browse/QTBUG-117225
# See https://github.com/pbek/QOwnNotes/issues/3018
- os: macos-latest
qt-version: '6.2.4'
qt-version: "6.2.4"
experimental: false
- os: macos-latest
qt-version: '6.4.3'
qt-version: "6.4.3"
experimental: false
- os: macos-latest
qt-version: '6.5.3'
qt-version: "6.5.3"
experimental: false
- os: macos-latest
qt-version: '6.6.3'
qt-version: "6.6.3"
experimental: false
# Qt installation times out too often
# - os: windows-2019
@ -112,20 +122,20 @@ jobs:
# Qt6 builds of macOS are currently breaking because of the workaround for https://bugreports.qt.io/browse/QTBUG-117225
# See https://github.com/pbek/QOwnNotes/issues/3018
- os: macos-latest
qt-version: '6.2.4'
qt-version: "6.2.4"
experimental: true
- os: macos-latest
qt-version: '6.4.3'
qt-version: "6.4.3"
experimental: true
- os: macos-latest
qt-version: '6.5.3'
qt-version: "6.5.3"
experimental: true
- os: macos-latest
qt-version: '6.6.3'
qt-version: "6.6.3"
experimental: true
# Snapcraft
- os: ubuntu-22.04
qt-version: '5.15.2'
qt-version: "5.15.2"
experimental: false
steps:
- uses: actions/checkout@v4
@ -144,7 +154,7 @@ jobs:
version: ${{ matrix.qt-version }}
arch: win32_mingw53
cache: true
aqtversion: '==0.9.4'
aqtversion: "==0.9.4"
- if: contains( matrix.os, 'windows') && ( ( matrix.qt-version == '5.13.2' ) || ( matrix.qt-version == '5.14.2' ) )
name: Install Qt on Windows
uses: jurplel/install-qt-action@v4
@ -156,7 +166,7 @@ jobs:
name: Install Qt 5.15.2 on Windows
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
version: ${{ matrix.qt-version }}
arch: win64_mingw81
cache: true
@ -164,7 +174,7 @@ jobs:
name: Install Qt 6 on Windows
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.*'
aqtversion: "==2.0.*"
version: ${{ matrix.qt-version }}
modules: ${{env.QT_MODULES}}
cache: true
@ -172,14 +182,14 @@ jobs:
name: Install Qt < 6 on Linux/macOS
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
version: ${{ matrix.qt-version }}
cache: true
- if: false == contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
name: Install Qt 6 on Linux/macOS
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
version: ${{ matrix.qt-version }}
modules: ${{env.QT_MODULES}}
cache: true

View file

@ -5,15 +5,15 @@ on:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths
# if [[ ${changed_file} == "CHANGELOG.md" ]] || [[ ${changed_file} = screenshots* ]] || [[ ${changed_file} = webpage* ]] || [[ ${changed_file} = ".github/workflows/build-webpage.yml" ]] ;
paths:
- '.github/workflows/build-webpage.yml'
- ".github/workflows/build-webpage.yml"
pull_request:
branches: [main]
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths
# if [[ ${changed_file} == "CHANGELOG.md" ]] || [[ ${changed_file} = screenshots* ]] || [[ ${changed_file} = webpage* ]] || [[ ${changed_file} = ".github/workflows/build-webpage.yml" ]] ;
paths:
- 'CHANGELOG.md'
- 'screenshots/**'
- 'webpage/**'
- "CHANGELOG.md"
- "screenshots/**"
- "webpage/**"
defaults:
run:
@ -21,7 +21,6 @@ defaults:
jobs:
build:
runs-on: ubuntu-latest
steps:
@ -29,10 +28,10 @@ jobs:
- id: files
uses: masesgroup/retrieve-changed-files@v3
with:
format: 'csv'
format: "csv"
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: "20"
- run: npm install
- run: npm run build

View file

@ -22,7 +22,7 @@ jobs:
stale-issue-label: "Stale"
stale-issue-message: "This issue is stale because it has been open for 30 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
any-of-labels: 'Type: Support,Webpage: Support'
any-of-labels: "Type: Support,Webpage: Support"
days-before-pr-stale: -1
days-before-pr-close: -1
repo-token: ${{ secrets.GITHUB_TOKEN }}

File diff suppressed because it is too large Load diff

View file

@ -29,7 +29,6 @@
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/qownnotes/localized.svg)](https://crowdin.com/project/qownnotes)
[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/qownnotes/qownnotes)
[QOwnNotes](https://www.qownnotes.org) is the **open source notepad** with
[**Markdown support**](https://github.com/pbek/QOwnNotes/blob/main/src/demonotes/Markdown%20Cheatsheet.md)
and **todo list manager** for **GNU/Linux**, **macOS** and **Windows**,
@ -66,8 +65,8 @@ To access your ownCloud notes from your **mobile device** you may want to get on
- For Android and Nextcloud: [Notes](https://f-droid.org/packages/it.niedermann.owncloud.notes)
- For iOS: [CloudNotes](https://itunes.apple.com/app/cloudnotes-owncloud-notes/id813973264)
On Android you could also use any sync-tool like *Synchronize Ultimate* or *FolderSync*
to sync your note files and use software like *neutriNotes* or
On Android you could also use any sync-tool like _Synchronize Ultimate_ or _FolderSync_
to sync your note files and use software like _neutriNotes_ or
[**Markor**](https://f-droid.org/packages/net.gsantner.markor/) to edit your notes.
On iOS [Notebooks](https://itunes.apple.com/us/app/notebooks-write-and-organize/id780438662)
@ -157,7 +156,7 @@ git submodule update --init
Then download [Qt Creator](https://www.qt.io/download-open-source), you will also
need the packages `qtwebsockets` to build QOwnNotes with Qt6
(only `qtwebsockets` for Qt5). If you build under Windows, you want to stick to
*MinGw 64-bit*.
_MinGw 64-bit_.
Afterward open the project file `src/QOwnNotes.pro` and click on
**Build** / **Build Project QOwnNotes**.

View file

@ -64,7 +64,7 @@ before_build:
# we need to modify that to make it running on AppVeyor
#- sed -i "s/CONFIG += c++11/QMAKE_CXXFLAGS += -std=gnu++0x\nQMAKE_CXX=ccache %gpp%/g" QOwnNotesTests.pro
- sed -i "s/CONFIG += c++11/QMAKE_CXXFLAGS += -std=gnu++0x/g" QOwnNotesTests.pro
- "echo #define RELEASE \"AppVeyor\" > release.h"
- 'echo #define RELEASE "AppVeyor" > release.h'
- qmake QOwnNotesTests.pro DEFINES+=INTEGRATION_TESTS CONFIG+=ccache
- mingw32-make
# creating the test path
@ -98,7 +98,7 @@ build_script:
# we need to modify that to make it running on AppVeyor
#- sed -i "s/CONFIG += c++11/QMAKE_CXXFLAGS += -std=gnu++0x\nQMAKE_CXX=ccache %gpp%/g" QOwnNotes.pro
- sed -i "s/CONFIG += c++11/QMAKE_CXXFLAGS += -std=gnu++0x/g" QOwnNotes.pro
- "echo #define RELEASE \"AppVeyor\" > release.h"
- 'echo #define RELEASE "AppVeyor" > release.h'
# setting the build number in the header file
- "echo #define BUILD %APPVEYOR_BUILD_NUMBER% > build_number.h"
# - qmake QOwnNotes.pro -r -spec win32-g++

View file

@ -57,12 +57,12 @@ git clone --depth=1 ssh://aur@aur.archlinux.org/qownnotes.git aur -b master
git clone --depth=1 git@github.com:pbek/QOwnNotes.git QOwnNotes -b $BRANCH
cd QOwnNotes || exit 1
gitCommitHash=`git rev-parse HEAD`
gitCommitHash=$(git rev-parse HEAD)
echo "Current commit: $gitCommitHash"
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
cd ../aur || exit 1
@ -82,7 +82,6 @@ echo "Archive sha256: ${QOWNNOTES_ARCHIVE_SHA256}"
# replace the version in the .SRCINFO file
sed -i "s/VERSION-STRING/$QOWNNOTES_VERSION/g" .SRCINFO
echo "Committing changes..."
git commit -m "releasing version $QOWNNOTES_VERSION" PKGBUILD .SRCINFO
git push

View file

@ -4,12 +4,11 @@
#
# This is used inside the release docker container
if [ "$1" = "--docker" ]
then
if [ "$1" = "--docker" ]; then
echo "Importing PGP key..."
gpg --import ~/private.pgp
echo "Adding AUR ssh key..."
eval `ssh-agent -s`
eval $(ssh-agent -s)
ssh-add ~/.ssh/aur_rsa
fi
@ -21,7 +20,8 @@ echo "Upload source archive to GitHub release..."
"$DIR/github/build-github-src.sh"
# check if exit code was 0
rc=$?; if [[ $rc != 0 ]]; then exit $rc; fi
rc=$?
if [[ $rc != 0 ]]; then exit $rc; fi
# Upload source archive to SourceForge
#$DIR/sourceforge/build-sourceforge-src.sh
@ -52,16 +52,10 @@ snap/build-for-launchpad-snap.sh
exit
#
# this was the previous konsole tabs implementation
#
# List of commands to run, with parameters, in quotes, space-separated; do not use quotes inside (see bash arrays)
COMMANDS=("$DIR/../ubuntu-launchpad/build-for-launchpad.sh" "$DIR/../obs/build-for-obs.sh" "$DIR/aur/build-for-aur.sh" "$DIR/gentoo/build-for-gentoo.sh" "$DIR/slackware/build-for-slackware.sh" "$DIR/snap/build-for-launchpad-snap.sh")
# "$DIR/snap/build-for-local-snap.sh"
@ -93,12 +87,10 @@ echo >>/tmp/KDS
FirstTime=1
for i in "${COMMANDS[@]}"
do
for i in "${COMMANDS[@]}"; do
echo "Starting: $i"
echo >>/tmp/KDS
if [ $FirstTime -eq 1 ]
then
if [ $FirstTime -eq 1 ]; then
session=$(qdbus $KDS /Windows/1 currentSession)
FirstTime=0
else

View file

@ -1,15 +1,14 @@
#!/bin/sh
#!/bin/env bash
#
# Runs qt6 build script
#
# This is used inside the release docker container
if [ "$1" = "--docker" ]
then
if [ "$1" = "--docker" ]; then
echo "Importing PGP key..."
gpg --import ~/private.pgp
echo "Adding AUR ssh key..."
eval `ssh-agent -s`
eval $(ssh-agent -s)
ssh-add ~/.ssh/aur_rsa
fi

View file

@ -1,4 +1,4 @@
version: '3'
version: "3"
services:
releaser:
build: .

View file

@ -7,7 +7,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=1.1.0.4
@ -57,7 +56,7 @@ cd QOwnNotes || exit 1
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
ARCHIVE_FILE=qownnotes-${QOWNNOTES_VERSION}.tar.xz

View file

@ -44,14 +44,14 @@ lrelease src/QOwnNotes.pro
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set the release string
echo "#define RELEASE \"GitHub\"" > src/release.h
echo '#define RELEASE "GitHub"' >src/release.h
echo "Using version $QOWNNOTES_VERSION..."
@ -72,10 +72,10 @@ archiveFile="$qownnotesSrcDir.tar.xz"
echo "Creating archive $archiveFile..."
tar -cJf $archiveFile $qownnotesSrcDir
QOWNNOTES_ARCHIVE_MD5=`md5sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.md5`
QOWNNOTES_ARCHIVE_SHA256=`sha256sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha256`
QOWNNOTES_ARCHIVE_SHA512=`sha512sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha512`
QOWNNOTES_ARCHIVE_SIZE=`stat -c "%s" ${archiveFile}`
QOWNNOTES_ARCHIVE_MD5=$(md5sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.md5)
QOWNNOTES_ARCHIVE_SHA256=$(sha256sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha256)
QOWNNOTES_ARCHIVE_SHA512=$(sha512sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha512)
QOWNNOTES_ARCHIVE_SIZE=$(stat -c "%s" ${archiveFile})
# also create checksum files that are compatible with sha256sum and sha512sum
sha256sum ${archiveFile} >${archiveFile}.sha256sum
@ -111,8 +111,7 @@ url="https://github.com/pbek/QOwnNotes/releases/download/v$QOWNNOTES_VERSION/${a
echo "Checking if $url exists..."
# try to download file from github
until curl --output /dev/null --silent --head --fail "$url"
do
until curl --output /dev/null --silent --head --fail "$url"; do
echo "URL does not exist: $url..."
sleep 2
done

View file

@ -8,7 +8,7 @@ APP=QOwnNotes
# this directory name will also be shown in the title when the DMG is mounted
TEMPDIR=$APP
SIGNATURE="Patrizio Bekerle"
NAME=`uname`
NAME=$(uname)
PLIST=$APP.app/Contents/Info.plist
if [ "$NAME" != "Darwin" ]; then

View file

@ -7,7 +7,7 @@ APP=QOwnNotes
# this directory name will also be shown in the title when the DMG is mounted
TEMPDIR=$APP
SIGNATURE="Patrizio Bekerle"
NAME=`uname`
NAME=$(uname)
PLIST=$APP.app/Contents/Info.plist
if [ "$NAME" != "Darwin" ]; then

View file

@ -1,30 +1,13 @@
{
lib,
stdenv,
fetchurl,
cmake,
qttools,
qtbase,
qtdeclarative,
qtsvg,
qtwayland,
qtwebsockets,
qtx11extras,
makeWrapper,
wrapQtAppsHook,
botan2,
pkg-config,
xvfb-run,
installShellFiles,
}:
{ lib, stdenv, fetchurl, cmake, qttools, qtbase, qtdeclarative, qtsvg, qtwayland
, qtwebsockets, qtx11extras, makeWrapper, wrapQtAppsHook, botan2, pkg-config
, xvfb-run, installShellFiles, }:
let
pname = "qownnotes";
appname = "QOwnNotes";
# version = builtins.head (builtins.match "#define VERSION \"([0-9.]+)\"" (builtins.readFile ./src/version.h));
version = "local-build";
in
stdenv.mkDerivation {
in stdenv.mkDerivation {
inherit pname appname version;
src = builtins.path {
@ -33,32 +16,19 @@ stdenv.mkDerivation {
};
nativeBuildInputs =
[
cmake
qttools
wrapQtAppsHook
pkg-config
installShellFiles
]
[ cmake qttools wrapQtAppsHook pkg-config installShellFiles ]
++ lib.optionals stdenv.isLinux [ xvfb-run ]
++ lib.optionals stdenv.isDarwin [ makeWrapper ];
buildInputs = [
qtbase
qtdeclarative
qtsvg
qtwebsockets
qtx11extras
botan2
] ++ lib.optionals stdenv.isLinux [ qtwayland ];
buildInputs = [ qtbase qtdeclarative qtsvg qtwebsockets qtx11extras botan2 ]
++ lib.optionals stdenv.isLinux [ qtwayland ];
cmakeFlags = [
# "-DQON_QT6_BUILD=ON"
"-DBUILD_WITH_SYSTEM_BOTAN=ON"
];
postInstall =
''
postInstall = ''
# installShellCompletion --cmd ${appname} \
# --bash <(xvfb-run $out/bin/${appname} --completion bash) \
# --fish <(xvfb-run $out/bin/${appname} --completion fish)
@ -79,15 +49,13 @@ stdenv.mkDerivation {
'';
meta = with lib; {
description = "Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
description =
"Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
homepage = "https://www.qownnotes.org/";
changelog = "https://www.qownnotes.org/changelog.html";
downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
license = licenses.gpl2Only;
maintainers = with maintainers; [
pbek
totoroot
];
maintainers = with maintainers; [ pbek totoroot ];
platforms = platforms.unix;
};
}

View file

@ -1,29 +1,13 @@
{
lib,
stdenv,
fetchurl,
qmake,
qttools,
qtbase,
qtdeclarative,
qtsvg,
qtwayland,
qtwebsockets,
makeWrapper,
wrapQtAppsHook,
botan2,
pkg-config,
xvfb-run,
installShellFiles,
}:
{ lib, stdenv, fetchurl, qmake, qttools, qtbase, qtdeclarative, qtsvg, qtwayland
, qtwebsockets, makeWrapper, wrapQtAppsHook, botan2, pkg-config, xvfb-run
, installShellFiles, }:
let
pname = "qownnotes";
appname = "QOwnNotes";
# version = builtins.head (builtins.match "#define VERSION \"([0-9.]+)\"" (builtins.readFile ./src/version.h));
version = "local-build";
in
stdenv.mkDerivation {
in stdenv.mkDerivation {
inherit pname appname version;
src = builtins.path {
@ -32,31 +16,17 @@ stdenv.mkDerivation {
};
nativeBuildInputs =
[
qmake
qttools
wrapQtAppsHook
pkg-config
installShellFiles
]
[ qmake qttools wrapQtAppsHook pkg-config installShellFiles ]
++ lib.optionals stdenv.isLinux [ xvfb-run ]
++ lib.optionals stdenv.isDarwin [ makeWrapper ];
buildInputs = [
qtbase
qtdeclarative
qtsvg
qtwebsockets
botan2
] ++ lib.optionals stdenv.isLinux [ qtwayland ];
buildInputs = [ qtbase qtdeclarative qtsvg qtwebsockets botan2 ]
++ lib.optionals stdenv.isLinux [ qtwayland ];
qmakeFlags = [
"USE_SYSTEM_BOTAN=1"
];
qmakeFlags = [ "USE_SYSTEM_BOTAN=1" ];
# Install shell completion on Linux (there is no xvfb-run on macOS)
postInstall =
lib.optionalString stdenv.isLinux ''
postInstall = lib.optionalString stdenv.isLinux ''
installShellCompletion --cmd ${appname} \
--bash <(xvfb-run $out/bin/${appname} --completion bash) \
--fish <(xvfb-run $out/bin/${appname} --completion fish)
@ -77,15 +47,13 @@ stdenv.mkDerivation {
'';
meta = with lib; {
description = "Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
description =
"Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
homepage = "https://www.qownnotes.org/";
changelog = "https://www.qownnotes.org/changelog.html";
downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
license = licenses.gpl2Only;
maintainers = with maintainers; [
pbek
totoroot
];
maintainers = with maintainers; [ pbek totoroot ];
platforms = platforms.unix;
};
}

View file

@ -1,30 +1,13 @@
{
lib,
stdenv,
fetchurl,
qmake,
qttools,
qtbase,
qtdeclarative,
qtsvg,
qtwayland,
qtwebsockets,
qtx11extras,
makeWrapper,
wrapQtAppsHook,
botan2,
pkg-config,
xvfb-run,
installShellFiles,
}:
{ lib, stdenv, fetchurl, qmake, qttools, qtbase, qtdeclarative, qtsvg, qtwayland
, qtwebsockets, qtx11extras, makeWrapper, wrapQtAppsHook, botan2, pkg-config
, xvfb-run, installShellFiles, }:
let
pname = "qownnotes";
appname = "QOwnNotes";
# version = builtins.head (builtins.match "#define VERSION \"([0-9.]+)\"" (builtins.readFile ./src/version.h));
version = "local-build";
in
stdenv.mkDerivation {
in stdenv.mkDerivation {
inherit pname appname version;
src = builtins.path {
@ -33,32 +16,16 @@ stdenv.mkDerivation {
};
nativeBuildInputs =
[
qmake
qttools
wrapQtAppsHook
pkg-config
installShellFiles
xvfb-run
]
[ qmake qttools wrapQtAppsHook pkg-config installShellFiles xvfb-run ]
++ lib.optionals stdenv.isLinux [ xvfb-run ]
++ lib.optionals stdenv.isDarwin [ makeWrapper ];
buildInputs = [
qtbase
qtdeclarative
qtsvg
qtwebsockets
qtx11extras
botan2
] ++ lib.optionals stdenv.isLinux [ qtwayland ];
buildInputs = [ qtbase qtdeclarative qtsvg qtwebsockets qtx11extras botan2 ]
++ lib.optionals stdenv.isLinux [ qtwayland ];
qmakeFlags = [
"USE_SYSTEM_BOTAN=1"
];
qmakeFlags = [ "USE_SYSTEM_BOTAN=1" ];
postInstall =
''
postInstall = ''
# installShellCompletion --cmd ${appname} \
# --bash <(xvfb-run $out/bin/${appname} --completion bash) \
# --fish <(xvfb-run $out/bin/${appname} --completion fish)
@ -79,15 +46,13 @@ stdenv.mkDerivation {
'';
meta = with lib; {
description = "Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
description =
"Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
homepage = "https://www.qownnotes.org/";
changelog = "https://www.qownnotes.org/changelog.html";
downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
license = licenses.gpl2Only;
maintainers = with maintainers; [
pbek
totoroot
];
maintainers = with maintainers; [ pbek totoroot ];
platforms = platforms.unix;
};
}

View file

@ -8,7 +8,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=16.06.12
@ -53,7 +52,7 @@ cd QOwnNotes || exit 1
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
buildSystemPath="../../../QOwnNotes/build-systems/slackware"

View file

@ -10,7 +10,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=16.07.6
@ -55,7 +54,7 @@ cd QOwnNotes || exit 1
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
cd ../snap || exit 1
@ -67,7 +66,6 @@ sed -i "s/VERSION-STRING/$QOWNNOTES_VERSION/g" snapcraft.yaml
# replace the archive sha256 hash in the snapcraft.yaml file
sed -i "s/ARCHIVE-SHA256/$QOWNNOTES_ARCHIVE_SHA256/g" snapcraft.yaml
echo "Committing changes..."
git add -A
git commit -m "releasing version $QOWNNOTES_VERSION" -a

View file

@ -11,7 +11,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=16.07.3
@ -21,7 +20,6 @@ BRANCH=main
PROJECT_PATH="/tmp/QOwnNotes-local-snap-$$"
CUR_DIR=$(pwd)
echo "Started the Snap building process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
@ -39,7 +37,7 @@ cd QOwnNotes
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
cd build-systems/snap/snapcraft

View file

@ -8,12 +8,10 @@
[Screenshots](https://www.qownnotes.org/getting-started/overview.html) |
[ownCloud Apps page](https://apps.owncloud.com/content/show.php?content=168497)
[QOwnNotes](https://www.qownnotes.org) is the **open source notepad** with **markdown support** and **todo list manager** for **GNU/Linux**, **macOS** and **Windows**, that works together with the default [**notes application**](https://github.com/owncloud/notes) of [**ownCloud**](http://owncloud.org/).
## Building the qownnotes snap
Just run `snapcraft` to build the snap. It uses C++ and Qt5 with qmake.
You can also visit [QOwnNotes on GitHub](https://github.com/pbek/QOwnNotes).

View file

@ -20,7 +20,6 @@ BRANCH=main
PROJECT_PATH="/tmp/QOwnNotes-sourceforge-$$"
echo "Started the SourceForge packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
@ -47,14 +46,14 @@ rm -Rf .git
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set the release string
echo "#define RELEASE \"SourceForge\"" > src/release.h
echo '#define RELEASE "SourceForge"' >src/release.h
echo "Using version $QOWNNOTES_VERSION..."
@ -83,7 +82,7 @@ remotePath="patbek@frs.sourceforge.net:/home/frs/project/qownnotes/src"
sourceForgeReadme="sourceforge-readme.md"
# generate the readme for sourceforge with a screenshot from GitHub
cat README.md | sed "s/screenshots\\/screenshot.png/https:\\/\\/raw.githubusercontent.com\\/pbek\\/QOwnNotes\\/main\\/screenshots\\/screenshot.png/g" >> ${sourceForgeReadme}
cat README.md | sed 's/screenshots\/screenshot.png/https:\/\/raw.githubusercontent.com\/pbek\/QOwnNotes\/main\/screenshots\/screenshot.png/g' >>${sourceForgeReadme}
echo >>${sourceForgeReadme}
echo >>${sourceForgeReadme}
cat CHANGELOG.md >>${sourceForgeReadme}

View file

@ -25,7 +25,6 @@ BRANCH=release
PROJECT_PATH="/tmp/QOwnNotes-tuxfamily-$$"
echo "Started the TuxFamily packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
@ -49,14 +48,14 @@ rm -Rf .git
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set the release string
echo "#define RELEASE \"TuxFamily\"" > src/release.h
echo '#define RELEASE "TuxFamily"' >src/release.h
echo "Using version $QOWNNOTES_VERSION..."
@ -77,10 +76,10 @@ archiveFile="$qownnotesSrcDir.tar.xz"
echo "Creating archive $archiveFile..."
tar -cJf $archiveFile $qownnotesSrcDir
QOWNNOTES_ARCHIVE_MD5=`md5sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.md5`
QOWNNOTES_ARCHIVE_SHA256=`sha256sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha256`
QOWNNOTES_ARCHIVE_SHA512=`sha512sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha512`
QOWNNOTES_ARCHIVE_SIZE=`stat -c "%s" ${archiveFile}`
QOWNNOTES_ARCHIVE_MD5=$(md5sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.md5)
QOWNNOTES_ARCHIVE_SHA256=$(sha256sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha256)
QOWNNOTES_ARCHIVE_SHA512=$(sha512sum ${archiveFile} | awk '{ print $1 }' | tee ${archiveFile}.sha512)
QOWNNOTES_ARCHIVE_SIZE=$(stat -c "%s" ${archiveFile})
echo ""
echo "Sums:"
@ -102,7 +101,7 @@ remotePath="pbek@ssh.tuxfamily.org:/home/qownnotes/qownnotes-repository/src"
tuxFamilyReadme="tuxfamily-readme.md"
# generate the readme for tuxfamily with a screenshot from GitHub
cat README.md | sed "s/screenshots\\/screenshot.png/https:\\/\\/raw.githubusercontent.com\\/pbek\\/QOwnNotes\\/main\\/screenshots\\/screenshot.png/g" >> ${tuxFamilyReadme}
cat README.md | sed 's/screenshots\/screenshot.png/https:\/\/raw.githubusercontent.com\/pbek\/QOwnNotes\/main\/screenshots\/screenshot.png/g' >>${tuxFamilyReadme}
echo >>${tuxFamilyReadme}
echo >>${tuxFamilyReadme}
cat CHANGELOG.md >>${tuxFamilyReadme}
@ -128,8 +127,7 @@ url="https://download.tuxfamily.org/qownnotes/src/${archiveFile}"
echo "Checking if $url exists..."
# try to download file from tuxfamily
until curl --output /dev/null --silent --head --fail "$url"
do
until curl --output /dev/null --silent --head --fail "$url"; do
echo "URL does not exist: $url..."
sleep 2
done

View file

@ -16,11 +16,10 @@ project_id: 158883
preserve_hierarchy: true
files:
-
# source files filter
source: '/src/languages/QOwnNotes_en.ts'
- # source files filter
source: "/src/languages/QOwnNotes_en.ts"
# where translations live
translation: '/src/languages/QOwnNotes_%locale_with_underscore%.ts'
translation: "/src/languages/QOwnNotes_%locale_with_underscore%.ts"
#translation: '/src/languages/QOwnNotes_%locale%.ts'
#translation: 'src/languages/QOwnNotes_%two_letters_code%.ts'
#"languages_mapping" : {
@ -29,25 +28,18 @@ files:
#"pt-BR" : "pt_BR"
#}
#}
dest: '/QOwnNotes_en.ts'
-
source: '/webpage/src/index.md'
translation: '/webpage/src/%two_letters_code%/%original_file_name%'
-
source: '/webpage/src/contributing/*.md'
translation: '/webpage/src/%two_letters_code%/contributing/%original_file_name%'
-
source: '/webpage/src/editor/*.md'
translation: '/webpage/src/%two_letters_code%/editor/%original_file_name%'
-
source: '/webpage/src/faq/*.md'
translation: '/webpage/src/%two_letters_code%/faq/%original_file_name%'
-
source: '/webpage/src/getting-started/*.md'
translation: '/webpage/src/%two_letters_code%/getting-started/%original_file_name%'
-
source: '/webpage/src/installation/*.md'
translation: '/webpage/src/%two_letters_code%/installation/%original_file_name%'
-
source: '/webpage/src/scripting/*.md'
translation: '/webpage/src/%two_letters_code%/scripting/%original_file_name%'
dest: "/QOwnNotes_en.ts"
- source: "/webpage/src/index.md"
translation: "/webpage/src/%two_letters_code%/%original_file_name%"
- source: "/webpage/src/contributing/*.md"
translation: "/webpage/src/%two_letters_code%/contributing/%original_file_name%"
- source: "/webpage/src/editor/*.md"
translation: "/webpage/src/%two_letters_code%/editor/%original_file_name%"
- source: "/webpage/src/faq/*.md"
translation: "/webpage/src/%two_letters_code%/faq/%original_file_name%"
- source: "/webpage/src/getting-started/*.md"
translation: "/webpage/src/%two_letters_code%/getting-started/%original_file_name%"
- source: "/webpage/src/installation/*.md"
translation: "/webpage/src/%two_letters_code%/installation/%original_file_name%"
- source: "/webpage/src/scripting/*.md"
translation: "/webpage/src/%two_letters_code%/scripting/%original_file_name%"

View file

@ -1,29 +1,13 @@
{
lib,
stdenv,
fetchurl,
cmake,
qttools,
qtbase,
qtdeclarative,
qtsvg,
qtwayland,
qtwebsockets,
makeWrapper,
wrapQtAppsHook,
botan2,
pkg-config,
xvfb-run,
installShellFiles,
}:
{ lib, stdenv, fetchurl, cmake, qttools, qtbase, qtdeclarative, qtsvg, qtwayland
, qtwebsockets, makeWrapper, wrapQtAppsHook, botan2, pkg-config, xvfb-run
, installShellFiles, }:
let
pname = "qownnotes";
appname = "QOwnNotes";
# version = builtins.head (builtins.match "#define VERSION \"([0-9.]+)\"" (builtins.readFile ./src/version.h));
version = "local-build";
in
stdenv.mkDerivation {
in stdenv.mkDerivation {
inherit pname appname version;
src = builtins.path {
@ -32,32 +16,17 @@ stdenv.mkDerivation {
};
nativeBuildInputs =
[
cmake
qttools
wrapQtAppsHook
pkg-config
installShellFiles
]
[ cmake qttools wrapQtAppsHook pkg-config installShellFiles ]
++ lib.optionals stdenv.hostPlatform.isLinux [ xvfb-run ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ makeWrapper ];
buildInputs = [
qtbase
qtdeclarative
qtsvg
qtwebsockets
botan2
] ++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
buildInputs = [ qtbase qtdeclarative qtsvg qtwebsockets botan2 ]
++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
cmakeFlags = [
"-DQON_QT6_BUILD=ON"
"-DBUILD_WITH_SYSTEM_BOTAN=ON"
];
cmakeFlags = [ "-DQON_QT6_BUILD=ON" "-DBUILD_WITH_SYSTEM_BOTAN=ON" ];
# Install shell completion on Linux (with xvfb-run)
postInstall =
lib.optionalString stdenv.hostPlatform.isLinux ''
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
installShellCompletion --cmd ${appname} \
--bash <(xvfb-run $out/bin/${appname} --completion bash) \
--fish <(xvfb-run $out/bin/${appname} --completion fish)
@ -83,15 +52,13 @@ stdenv.mkDerivation {
'';
meta = with lib; {
description = "Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
description =
"Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
homepage = "https://www.qownnotes.org/";
changelog = "https://www.qownnotes.org/changelog.html";
downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
license = licenses.gpl2Only;
maintainers = with maintainers; [
pbek
totoroot
];
maintainers = with maintainers; [ pbek totoroot ];
platforms = platforms.unix;
};
}

View file

@ -3,40 +3,30 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-qt5153.url = "github:nixos/nixpkgs/72bbea9db7d727ed044e60b5f5febc60a3c5c955";
nixpkgs-qt5153.url =
"github:nixos/nixpkgs/72bbea9db7d727ed044e60b5f5febc60a3c5c955";
# systems.url = "github:nix-systems/default";
};
outputs =
{
self,
nixpkgs,
nixpkgs-qt5153,
}:
outputs = { self, nixpkgs, nixpkgs-qt5153, }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
pkgs-qt5153 = nixpkgs-qt5153.legacyPackages.${system};
in
{
in {
packages.${system} = {
qownnotes-qt6 = pkgs.qt6Packages.callPackage (import ./default.nix) { };
qownnotes-qt5 = pkgs.libsForQt5.callPackage (import ./build-systems/nix/default-qt5.nix) { };
qownnotes-qt5153 =
pkgs-qt5153.libsForQt5.callPackage (import ./build-systems/nix/default-qt5.nix)
{ };
qownnotes-qt5 = pkgs.libsForQt5.callPackage
(import ./build-systems/nix/default-qt5.nix) { };
qownnotes-qt5153 = pkgs-qt5153.libsForQt5.callPackage
(import ./build-systems/nix/default-qt5.nix) { };
default = pkgs.qt6Packages.callPackage (import ./default.nix) { };
};
devShell.x86_64-linux =
with import nixpkgs {
system = "x86_64-linux";
};
devShell.x86_64-linux = with import nixpkgs { system = "x86_64-linux"; };
mkShell {
nativeBuildInputs =
with nixpkgs;
with qt6;
[
nativeBuildInputs = with nixpkgs;
with qt6; [
gnumake
crowdin-cli
cmakeWithGui
@ -50,10 +40,8 @@
gh
];
buildInputs =
with nixpkgs;
with qt6;
[
buildInputs = with nixpkgs;
with qt6; [
qtbase
qtwebsockets
qtdeclarative

View file

@ -8,7 +8,7 @@ QTDIR="/Applications/Qt/5.4/clang_64"
APP=QOwnNotes
TEMPDIR=$APP-tmp
SIGNATURE="Patrizio Bekerle"
NAME=`uname`
NAME=$(uname)
if [ "$NAME" != "Darwin" ]; then
echo "This is not a Mac"

View file

@ -21,7 +21,6 @@ BRANCH=main
DATE=$(LC_ALL=C date +'%a, %d %b %Y %T %z')
PROJECT_PATH="/tmp/QOwnNotes-$$"
echo "Started the OBS source packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
@ -48,14 +47,14 @@ rm -Rf .git
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set the release string
echo "#define RELEASE \"OBS\"" > src/release.h
echo '#define RELEASE "OBS"' >src/release.h
# replace the version in the spec file
sed -i "s/VERSION-STRING/$QOWNNOTES_VERSION/g" obs/qownnotes.spec

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/env bash
#
# A tool to run clang-format on the entire project
#

View file

@ -101,7 +101,6 @@ echo "Remove all translated webpage folders, but German, Hungarian, Persian and
# Remove all active languages here!
find webpage/src -type d -regextype posix-egrep -regex ".+src\/(am|be|bg|bn|bs|ca|ceb|cs|da|el|et|eu|fi|fil|ga|gl|ha|he|hi|hil|hr|id|is|ja|km|ku|lt|lv|mi|mk|ms|no|pa|pcm|pt|ro|ru|si|sk|sl|sn|sq|sr|sv|ta|th|tl|tlh|tr|uk|ur|uz|vi|xh|yi|zh|zu)$" -exec rm -Rf "{}" \;
#
# Fix Crowdin translation bugs
#

View file

@ -1,5 +1,5 @@
#!/bin/sh
number=`cat build_number`
number=$(cat build_number)
let number++
echo "$number" | tee build_number #<-- output and save the number back to file
echo "#define BUILD ""$number" | tee build_number.h

View file

@ -11,4 +11,4 @@ BIN_DIR="$(pwd)/bin"
mkdir -p "${BIN_DIR}"
ln -sf "$(which qmake)" "${BIN_DIR}/qmake6" && "${BIN_DIR}/qmake6" --version
# Run a pure shell so the shell.nix will not be loaded again by direnv
nix-shell --pure -p which libsForQt5.qt5.qtbase --run "ln -sf \$(which qmake | tail -n1) \$PWD/bin/qmake5" && "${BIN_DIR}/qmake5" --version
nix-shell --pure -p which libsForQt5.qt5.qtbase --run 'ln -sf $(which qmake | tail -n1) $PWD/bin/qmake5' && "${BIN_DIR}/qmake5" --version

View file

@ -20,7 +20,6 @@ fi
echo "Previous year: $1"
echo "New year: $2"
echo
echo Updating QOwnNotes...
echo

View file

@ -1,5 +1,4 @@
Markdown Cheatsheet
===================
# Markdown Cheatsheet
This cheatsheet is intended as a quick reference and showcase of the markdown syntax in [QOwnNotes](https://www.qownnotes.org).
@ -7,50 +6,54 @@ This cheatsheet is intended as a quick reference and showcase of the markdown sy
```markdown
# H1
## H2
### H3
#### H4
##### H5
###### H6
Alternatively, for H1 and H2, an underline-ish style:
Alt-H1
======
# Alt-H1
Alt-H2
------
## Alt-H2
```
# H1
## H2
### H3
#### H4
##### H5
###### H6
Alternatively, for H1 and H2, an underline-ish style:
Alt-H1
======
Alt-H2
------
# Alt-H1
## Alt-H2
## Emphasis
```markdown
Emphasis, aka italics, with *asterisks*.
Emphasis, aka italics, with _asterisks_.
Strong emphasis, aka bold, with **asterisks**.
```
Emphasis, aka italics, with *asterisks*.
Emphasis, aka italics, with _asterisks_.
Strong emphasis, aka bold, with **asterisks**.
## Lists
(In this example, leading and trailing spaces are shown with with dots: ⋅)
@ -58,8 +61,8 @@ Strong emphasis, aka bold, with **asterisks**.
```markdown
1. First ordered list item
2. Another item
⋅⋅* Unordered sub-list.
1. Actual numbers don't matter, just that it's a number
⋅⋅\* Unordered sub-list.
3. Actual numbers don't matter, just that it's a number
⋅⋅1. Ordered sub-list
4. And another item.
@ -68,27 +71,32 @@ Strong emphasis, aka bold, with **asterisks**.
⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅
⋅⋅⋅Note that this line is separate, but within the same paragraph.⋅⋅
* Unordered list can use asterisks
- Or minuses
+ Or pluses
- Unordered list can use asterisks
* Or minuses
- Or pluses
```
1. First ordered list item
2. Another item
* Unordered sub-list.
- Unordered sub-list.
1. Actual numbers don't matter, just that it's a number
1. Ordered sub-list
4. And another item.
1. And another item.
You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).
To have a line break without a paragraph, you will need to use two trailing spaces.
Note that this line is separate, but within the same paragraph.
* Unordered list can use asterisks
- Or minuses
+ Or pluses
- Unordered list can use asterisks
* Or minuses
- Or pluses
## Links
@ -118,7 +126,6 @@ http://www.example.com or <http://www.example.com>
[1]: https://www.qownnotes.org
## Inline code and code blocks
```markdown
@ -166,7 +173,7 @@ Tables aren't part of the core Markdown spec, but the QOwnNotes preview supports
Colons can be used to align columns.
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| ------------- | :-----------: | ----: |
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
@ -175,27 +182,26 @@ There must be at least 3 dashes separating each header cell.
The outer pipes (|) are optional, and you don't need to make the
raw Markdown line up prettily. You can also use inline Markdown.
Markdown | Less | Pretty
--- | --- | ---
*Still* | `renders` | **nicely**
1 | 2 | 3
| Markdown | Less | Pretty |
| -------- | --------- | ---------- |
| _Still_ | `renders` | **nicely** |
| 1 | 2 | 3 |
```
Colons can be used to align columns.
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| ------------- | :-----------: | ----: |
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
There must be at least 3 dashes separating each header cell. The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown.
Markdown | Less | Pretty
--- | --- | ---
*Still* | `renders` | **nicely**
1 | 2 | 3
| Markdown | Less | Pretty |
| -------- | --------- | ---------- |
| _Still_ | `renders` | **nicely** |
| 1 | 2 | 3 |
## Blockquotes
@ -205,7 +211,7 @@ Markdown | Less | Pretty
Quote break.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can _put_ **Markdown** into a blockquote.
```
> Blockquotes are very handy in email to emulate reply text.
@ -213,8 +219,7 @@ Quote break.
Quote break.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can _put_ **Markdown** into a blockquote.
## Horizontal Rule
@ -225,11 +230,11 @@ Three or more...
Hyphens
***
---
Asterisks
___
---
Underscores
```
@ -240,11 +245,11 @@ Three or more...
Hyphens
***
---
Asterisks
___
---
Underscores
@ -253,23 +258,23 @@ Underscores
```markdown
Here's a line for us to start with.
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
This line is separated from the one above by two newlines, so it will be a _separate paragraph_.
This line is also begins a separate paragraph, but...
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the *same paragraph*.
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the _same paragraph_.
```
Here's a line for us to start with.
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
This line is separated from the one above by two newlines, so it will be a _separate paragraph_.
This line is also begins a separate paragraph, but...
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the *same paragraph*.
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the _same paragraph_.
## Comments
```markdown
[comment]: # (This comment will not appear in the preview)
[comment]: # "This comment will not appear in the preview"
```
## Checkbox lists

View file

@ -1,37 +1,34 @@
Markdown Showcase
=================
# Markdown Showcase
Another header
-------------
## Another header
Let's see _if the emphasis
Let's see \_if the emphasis
carries over_ to __another__ paragraph.
carries over\_ to **another** paragraph.
And `maybe this` should <i>Hello</i> not be
> ### Header
>
> Header
> --------
>
> ## Header
---
* List 0
* List
* Hello!
- List 0
- List
- Hello!
Hello
Item 2
Hello
Hibuli habuli!*Code here*
* Item 3
- Item 3
* Hello again
- Hello again
Hassd *code*
@ -43,26 +40,25 @@ Hello
Markdown FTW!
1986\. What a great season. A link here: <http://www.example.com/> that should be automatically detected.
Stuff *here!*. This is pretty cool.
Stuff _here!_. This is pretty cool.
* Hello
* Booboo
- Hello
- Booboo
What [up to the ][name] cats n dogs :) He*ll*o!! *Some emphasized* stuff here. A * star * has [born]. This * i dont know what*will happen.
What [up to the ][name] cats n dogs :) He*ll*o!! _Some emphasized_ stuff here. A _ star _ has [born]. This * i dont know what*will happen.
1. Stuff
1. Hello
9. Again
3211233. Stuff
1. Again
1. Stuff
This is [an example](http://example.com/ "Title") inline link.
``Hello **`strong text** here``
> These * should * not \*be\* selected. This* neither! *should be. This *neither should\* be*
> These _ should _ not \*be\* selected. This* neither! *should be. This _neither should\* be_
# 2nd Headline
@ -70,13 +66,10 @@ Yeah.
[name]: http://google.com
[foo1]: http://example.com/ "Optional Title Here"
[foo3]: http://example.com/
"'Optional Title Here"
[foo3]: http://example.com/ "'Optional Title Here"
Some code
## Third headline
Third headline
-------------------
Some stuff here...

View file

@ -1,12 +1,11 @@
Welcome to QOwnNotes
====================
# Welcome to QOwnNotes
Welcome to your installation of **QOwnNotes**!
## TODO
- [ ] Be sure to setup your *Nextcloud/ownCloud server* in the **settings dialog**.
- Keep in mind that you still need to install the *Nextcloud/ownCloud* sync client to synchronize your notes!
- [ ] Be sure to setup your _Nextcloud/ownCloud server_ in the **settings dialog**.
- Keep in mind that you still need to install the _Nextcloud/ownCloud_ sync client to synchronize your notes!
- [ ] Install [QOwnNotesAPI](https://apps.nextcloud.com/apps/qownnotesapi) to access **note versions** and **trashed notes**.
## Later

View file

@ -1,10 +1,8 @@
FakeVim
=======
# FakeVim
FakeVim is library to emulate Vim in QTextEdit, QPlainTextEdit and possibly other Qt widgets.
Build
-----
## Build
To build the library and simple example editor (in `example` directory), run
following commands:
@ -12,7 +10,7 @@ following commands:
cmake .
make
Build and run **example with **CMake**:
Build and run **example with **CMake\*\*:
cmake -DBUILD_EXAMPLE=1 .
make
@ -24,85 +22,88 @@ Build and run **tests with CMake**:
make
ctest
Supported Features
------------------
## Supported Features
Most of supported commands can be followed by motion command or executed in visual mode, work with registers or can be prefixed with number of repetitions.
Here is list of emulated commands with description where it can diverge from Vim in functionality.
### Modes
* normal
* insert and replace
* visual
* command line (`:`)
- normal
- insert and replace
- visual
- command line (`:`)
### Normal and Visual Modes
* basic movement -- `h`/`j`/`k`/`l`, `<C-U>`, `<C-D>`, `<C-F>`, `<C-B>`, `gg`, `G`, `0`, `^`, `$` etc.
* word movement -- `w`, `e`, `b` etc.
* "inner/a" movement -- `ciw`, `3daw`, `ya{` etc.
* `f`, `t` movement
* `[`, `]` movement
* `{`, `}` -- paragraph movement
* delete/change/yank/paste with register
* undo/redo
* `<C-A>`, `<C-X>` -- increase or decrease number in decimal/octal/hexadecimal format (e.g. `128<C-A>` on or before "0x0ff" changes it to "0x17f")
* `.` -- repeat last change
* `/search`, `?search`, `*`, `#`, `n`, `N` -- most of regular expression syntax used in Vim except `\<` and `\>` just is the same as `\b` in QRegExp
* `@`, `q` (macro recording, execution) -- special keys are saved as `<S-Left>`
* marks
* `gv` -- last visual selection; can differ if text is edited around it
* indentation -- `=`, `<<`, `>>` etc. with movement, count and in visual mode
* "to upper/lower" -- `~`, `gU`, `gu` etc.
* `i`, `a`, `o`, `I`, `A`, `O` -- enter insert mode
* scroll window -- `zt`, `zb`, `zz` etc.
* wrap line movement -- `gj`, `gk`, `g0`, `g^`, `g$`
- basic movement -- `h`/`j`/`k`/`l`, `<C-U>`, `<C-D>`, `<C-F>`, `<C-B>`, `gg`, `G`, `0`, `^`, `$` etc.
- word movement -- `w`, `e`, `b` etc.
- "inner/a" movement -- `ciw`, `3daw`, `ya{` etc.
- `f`, `t` movement
- `[`, `]` movement
- `{`, `}` -- paragraph movement
- delete/change/yank/paste with register
- undo/redo
- `<C-A>`, `<C-X>` -- increase or decrease number in decimal/octal/hexadecimal format (e.g. `128<C-A>` on or before "0x0ff" changes it to "0x17f")
- `.` -- repeat last change
- `/search`, `?search`, `*`, `#`, `n`, `N` -- most of regular expression syntax used in Vim except `\<` and `\>` just is the same as `\b` in QRegExp
- `@`, `q` (macro recording, execution) -- special keys are saved as `<S-Left>`
- marks
- `gv` -- last visual selection; can differ if text is edited around it
- indentation -- `=`, `<<`, `>>` etc. with movement, count and in visual mode
- "to upper/lower" -- `~`, `gU`, `gu` etc.
- `i`, `a`, `o`, `I`, `A`, `O` -- enter insert mode
- scroll window -- `zt`, `zb`, `zz` etc.
- wrap line movement -- `gj`, `gk`, `g0`, `g^`, `g$`
### Command Line Mode
* `:map`, `:unmap`, `:inoremap` etc.
* `:source` -- very basic line-by-line sourcing of vimrc files
* `:substitute` -- substitute expression in range
* `:'<,'>!cmd` -- filter through an external command (e.g. sort lines in file with `:%!sort`)
* `:.!cmd` -- insert standard output of an external command
* `:read`
* `:yank`, `:delete`, `:change`
* `:move`, `:join`
* `:20` -- go to address
* `:history`
* `:registers`, `:display`
* `:nohlsearch`
* `:undo`, `:redo`
* `:normal`
* `:<`, `:>`
- `:map`, `:unmap`, `:inoremap` etc.
- `:source` -- very basic line-by-line sourcing of vimrc files
- `:substitute` -- substitute expression in range
- `:'<,'>!cmd` -- filter through an external command (e.g. sort lines in file with `:%!sort`)
- `:.!cmd` -- insert standard output of an external command
- `:read`
- `:yank`, `:delete`, `:change`
- `:move`, `:join`
- `:20` -- go to address
- `:history`
- `:registers`, `:display`
- `:nohlsearch`
- `:undo`, `:redo`
- `:normal`
- `:<`, `:>`
### Insert Mode
* `<C-O>` -- execute single command and return to insert mode
* `<C-V>` -- insert raw character
* `<insert>` -- toggle replace mode
- `<C-O>` -- execute single command and return to insert mode
- `<C-V>` -- insert raw character
- `<insert>` -- toggle replace mode
### Options (:set ...)
* `autoindent`
* `clipboard`
* `backspace`
* `expandtab`
* `hlsearch`
* `ignorecase`
* `incsearch`
* `indent`
* `iskeyword`
* `scrolloff`
* `shiftwidth`
* `showcmd`
* `smartcase`
* `smartindent`
* `smarttab`
* `startofline`
* `tabstop`
* `tildeop`
* `wrapscan`
Example Vimrc
-------------
- `autoindent`
- `clipboard`
- `backspace`
- `expandtab`
- `hlsearch`
- `ignorecase`
- `incsearch`
- `indent`
- `iskeyword`
- `scrolloff`
- `shiftwidth`
- `showcmd`
- `smartcase`
- `smartindent`
- `smarttab`
- `startofline`
- `tabstop`
- `tildeop`
- `wrapscan`
## Example Vimrc
" highlight matched
set hlsearch
@ -145,19 +146,16 @@ Example Vimrc
vnoremap <C-S-J> :m'>+<CR>gv=gv
vnoremap <C-S-K> :m-2<CR>gv=gv
Implementation
--------------
## Implementation
There are appropriate signals emitted for command which has to be processed by the underlying editor widget (folds, windows, tabs, command line, messages etc.).
See example in `example/` directory or implementation of FakeVim plugin in Qt Creator IDE.
Python Bindings
---------------
## Python Bindings
To install Python bindings for FakeVim see "python/README.md" file.
Update from Upstream
--------------------
## Update from Upstream
The source code should be regularly updated from the Qt Creator.

View file

@ -119,4 +119,3 @@ main() {
}
main "$@"

View file

@ -40,7 +40,7 @@ echo "--- Updating source files"
cd "$base_dir/fakevim"
for file in "${files_to_update[@]}"; do
echo "-- $file"
if [[ "$file" == fakevim* ]]; then
if [[ $file == fakevim* ]]; then
dir=plugins/fakevim
else
dir=libs

View file

@ -1,13 +1,12 @@
qlitehtml
=========
# qlitehtml
A lightweight HTML viewer for Qt.
This project provides
* A QPainter based rendering backend for the lightweight HTML/CSS rendering
- A QPainter based rendering backend for the lightweight HTML/CSS rendering
engine [litehtml].
* A QWidget that uses the QPainter based backend and provides API for simply
- A QWidget that uses the QPainter based backend and provides API for simply
setting the HTML text and a base URL plus hook that are used for requesting
referenced resources.

View file

@ -35,4 +35,3 @@ jobs:
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}} --rerun-failed --output-on-failure

View file

@ -25,9 +25,10 @@ Unfortunately **litehtml** is not fully compatible with HTML/CSS standards. Ther
You can [download the simple browser](http://www.litehtml.com/download.html) (**litebrowser**) to test the **litehtml** rendering engine.
The litebrowser source codes are available on GitHub:
* [For Windows](https://github.com/litehtml/litebrowser)
* [For Linux](https://github.com/litehtml/litebrowser-linux)
* [For Haiku](https://github.com/adamfowleruk/litebrowser-haiku)
- [For Windows](https://github.com/litehtml/litebrowser)
- [For Linux](https://github.com/litehtml/litebrowser-linux)
- [For Haiku](https://github.com/adamfowleruk/litebrowser-haiku)
## License

View file

@ -1,5 +1,4 @@
QtWaitingSpinner
================
# QtWaitingSpinner
QtWaitingSpinner is a highly configurable, custom Qt widget for showing "waiting" or "loading" spinner icons in Qt applications, e.g. the spinners below are all QtWaitingSpinner widgets differing only in their configuration:
@ -9,15 +8,15 @@ QtWaitingSpinner is a highly configurable, custom Qt widget for showing "waiting
The following properties can all be controlled directly through their corresponding setters:
* Colour of the widget
* "Roundness" of the lines
* Speed (rotations per second)
* Number of lines to be drawn
* Line length
* Line width
* Radius of the spinner's "dead space" or inner circle
* The percentage fade of the "trail"
* The minimum opacity of the "trail"
- Colour of the widget
- "Roundness" of the lines
- Speed (rotations per second)
- Number of lines to be drawn
- Line length
- Line width
- Radius of the spinner's "dead space" or inner circle
- The percentage fade of the "trail"
- The minimum opacity of the "trail"
### Usage
@ -64,6 +63,6 @@ https://github.com/cybercatalyst/qt-pods
QtWaitingSpinner was inspired by the [spin.js](http://fgnass.github.io/spin.js/) project.
### Forks
There is also [QtWaitingSpinner for Python!](https://github.com/z3ntu/QtWaitingSpinner) Thanks to [z3ntu](https://github.com/z3ntu) for porting it.

View file

@ -1,188 +1,168 @@
Changelog
=========
# Changelog
__3.0.13a__
----------
## **3.0.13a**
* Process socket events asynchronously
* Fix undefined variable error on Windows
- Process socket events asynchronously
- Fix undefined variable error on Windows
_Francis Giraldeau_
__3.0.12a__
----------
## **3.0.12a**
* Removed signal handling.
- Removed signal handling.
__3.0.11a__
----------
## **3.0.11a**
* Fixed bug where the message sent by the second process was not received
- Fixed bug where the message sent by the second process was not received
correctly when the message is sent immediately following a connection.
_Francis Giraldeau_
* Refactored code and implemented shared memory block consistency checks
- Refactored code and implemented shared memory block consistency checks
via `qChecksum()` (CRC-16).
* Explicit `qWarning` and `qCritical` when the library is unable to initialise
- Explicit `qWarning` and `qCritical` when the library is unable to initialise
correctly.
__3.0.10__
----------
## **3.0.10**
* Removed C style casts and eliminated all clang warnings. Fixed `instanceId`
- Removed C style casts and eliminated all clang warnings. Fixed `instanceId`
reading from only one byte in the message deserialization. Cleaned up
serialization code using `QDataStream`. Changed connection type to use
`quint8 enum` rather than `char`.
* Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization
- Renamed `SingleAppConnectionType` to `ConnectionType`. Added initialization
values to all `ConnectionType` enum cases.
_Jedidiah Buck McCready_
__3.0.9__
---------
## **3.0.9**
* Added SingleApplicationPrivate::primaryPid() as a solution to allow
- Added SingleApplicationPrivate::primaryPid() as a solution to allow
bringing the primary window of an application to the foreground on
Windows.
_Eelco van Dam from Peacs BV_
__3.0.8__
---------
## **3.0.8**
* Bug fix - changed QApplication::instance() to QCoreApplication::instance()
- Bug fix - changed QApplication::instance() to QCoreApplication::instance()
_Evgeniy Bazhenov_
__3.0.7a__
----------
## **3.0.7a**
* Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev.
* Removed QMutex used for thread safe behaviour. The implementation now uses
- Fixed compilation error with Mingw32 in MXE thanks to Vitaly Tonkacheyev.
- Removed QMutex used for thread safe behaviour. The implementation now uses
QCoreApplication::instance() to get an instance to SingleApplication for
memory deallocation.
__3.0.6a__
----------
## **3.0.6a**
* Reverted GetUserName API usage on Windows. Fixed bug with missing library.
* Fixed bug in the Calculator example, preventing it's window to be raised
- Reverted GetUserName API usage on Windows. Fixed bug with missing library.
- Fixed bug in the Calculator example, preventing it's window to be raised
on Windows.
Special thanks to Charles Gunawan.
__3.0.5a__
----------
## **3.0.5a**
* Fixed a memory leak in the SingleApplicationPrivate destructor.
- Fixed a memory leak in the SingleApplicationPrivate destructor.
_Sergei Moiseev_
__3.0.4a__
----------
## **3.0.4a**
* Fixed shadow and uninitialised variable warnings.
- Fixed shadow and uninitialised variable warnings.
_Paul Walmsley_
__3.0.3a__
----------
## **3.0.3a**
* Removed Microsoft Windows specific code for getting username due to
- Removed Microsoft Windows specific code for getting username due to
multiple problems and compiler differences on Windows platforms. On
Windows the shared memory block in User mode now includes the user's
home path (which contains the user's username).
* Explicitly getting absolute path of the user's home directory as on Unix
- Explicitly getting absolute path of the user's home directory as on Unix
a relative path (`~`) may be returned.
__3.0.2a__
----------
## **3.0.2a**
* Fixed bug on Windows when username containing wide characters causes the
- Fixed bug on Windows when username containing wide characters causes the
library to crash.
_Le Liu_
__3.0.1a__
----------
## **3.0.1a**
* Allows the application path and version to be excluded from the server name
- Allows the application path and version to be excluded from the server name
hash. The following flags were added for this purpose:
* `SingleApplication::Mode::ExcludeAppVersion`
* `SingleApplication::Mode::ExcludeAppPath`
* Allow a non elevated process to connect to a local server created by an
- `SingleApplication::Mode::ExcludeAppVersion`
- `SingleApplication::Mode::ExcludeAppPath`
- Allow a non elevated process to connect to a local server created by an
elevated process run by the same user on Windows
* Fixes a problem with upper case letters in paths on Windows
- Fixes a problem with upper case letters in paths on Windows
_Le Liu_
__v3.0a__
---------
## **v3.0a**
* Depricated secondary instances count.
* Added a sendMessage() method to send a message to the primary instance.
* Added a receivedMessage() signal, emitted when a message is received from a
- Depricated secondary instances count.
- Added a sendMessage() method to send a message to the primary instance.
- Added a receivedMessage() signal, emitted when a message is received from a
secondary instance.
* The SingleApplication constructor's third parameter is now a bool
- The SingleApplication constructor's third parameter is now a bool
specifying if the current instance should be allowed to run as a secondary
instance if there is already a primary instance.
* The SingleApplication constructor accept a fourth parameter specifying if
- The SingleApplication constructor accept a fourth parameter specifying if
the SingleApplication block should be User-wide or System-wide.
* SingleApplication no longer relies on `applicationName` and
- SingleApplication no longer relies on `applicationName` and
`organizationName` to be set. It instead concatenates all of the following
data and computes a `SHA256` hash which is used as the key of the
`QSharedMemory` block and the `QLocalServer`. Since at least
`applicationFilePath` is always present there is no need to explicitly set
any of the following prior to initialising `SingleApplication`.
* `QCoreApplication::applicationName`
* `QCoreApplication::applicationVersion`
* `QCoreApplication::applicationFilePath`
* `QCoreApplication::organizationName`
* `QCoreApplication::organizationDomain`
* User name or home directory path if in User mode
* The primary instance is no longer notified when a secondary instance had
- `QCoreApplication::applicationName`
- `QCoreApplication::applicationVersion`
- `QCoreApplication::applicationFilePath`
- `QCoreApplication::organizationName`
- `QCoreApplication::organizationDomain`
- User name or home directory path if in User mode
- The primary instance is no longer notified when a secondary instance had
been started by default. A `Mode` flag for this feature exists.
* Added `instanceNumber()` which represents a unique identifier for each
- Added `instanceNumber()` which represents a unique identifier for each
secondary instance started. When called from the primary instance will
return `0`.
__v2.4__
--------
## **v2.4**
* Stability improvements
* Support for secondary instances.
* The library now recovers safely after the primary process has crashed
- Stability improvements
- Support for secondary instances.
- The library now recovers safely after the primary process has crashed
and the shared memory had not been deleted.
__v2.3__
--------
## **v2.3**
* Improved pimpl design and inheritance safety.
- Improved pimpl design and inheritance safety.
_Vladislav Pyatnichenko_
__v2.2__
--------
## **v2.2**
* The `QAPPLICATION_CLASS` macro can now be defined in the file including the
- The `QAPPLICATION_CLASS` macro can now be defined in the file including the
Single Application header or with a `DEFINES+=` statement in the project file.
__v2.1__
--------
## **v2.1**
* A race condition can no longer occur when starting two processes nearly
- A race condition can no longer occur when starting two processes nearly
simultaneously.
Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3)
__v2.0__
--------
## **v2.0**
* SingleApplication is now being passed a reference to `argc` instead of a
- SingleApplication is now being passed a reference to `argc` instead of a
copy.
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
* Improved documentation.
- Improved documentation.

View file

@ -1,5 +1,4 @@
SingleApplication
=================
# SingleApplication
This is a replacement of the QtSingleApplication for `Qt5`.
@ -7,8 +6,7 @@ Keeps the Primary Instance of your Application and kills each subsequent
instances. It can (if enabled) spawn secondary (non-related to the primary)
instances and can send data to the primary instance from secondary instances.
Usage
-----
## Usage
The `SingleApplication` class inherits from whatever `Q[Core|Gui]Application`
class you specify via the `QAPPLICATION_CLASS` macro (`QCoreApplication` is the
@ -59,8 +57,7 @@ include(singleapplication/singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QApplication
```
The `Instance Started` signal
------------------------
## The `Instance Started` signal
The SingleApplication class implements a `instanceStarted()` signal. You can
bind to that signal to raise your application's window when a new instance had
@ -80,13 +77,11 @@ Using `SingleApplication::instance()` is a neat way to get the
`SingleApplication` instance for binding to it's signals anywhere in your
program.
__Note:__ On Windows the ability to bring the application windows to the
**Note:** On Windows the ability to bring the application windows to the
foreground is restricted. See [Windows specific implementations](Windows.md)
for a workaround and an example implementation.
Secondary Instances
-------------------
## Secondary Instances
If you want to be able to launch additional Secondary Instances (not related to
your Primary Instance) you have to enable that with the third parameter of the
@ -109,9 +104,9 @@ int main(int argc, char *argv[])
}
```
*__Note:__ A secondary instance won't cause the emission of the
_**Note:** A secondary instance won't cause the emission of the
`instanceStarted()` signal by default. See `SingleApplication::Mode` for more
details.*
details._
You can check whether your instance is a primary or secondary with the following
methods:
@ -122,11 +117,10 @@ app.isPrimary();
app.isSecondary();
```
*__Note:__ If your Primary Instance is terminated a newly launched instance
will replace the Primary one even if the Secondary flag has been set.*
_**Note:** If your Primary Instance is terminated a newly launched instance
will replace the Primary one even if the Secondary flag has been set._
API
---
## API
### Members
@ -142,15 +136,15 @@ used to notify the primary instance whenever a secondary instance had been
started (disabled by default). `timeout` specifies the maximum time in
milliseconds to wait for blocking operations.
*__Note:__ `argc` and `argv` may be changed as Qt removes arguments that it
recognizes.*
_**Note:** `argc` and `argv` may be changed as Qt removes arguments that it
recognizes._
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
and the secondary instance.*
_**Note:** `Mode::SecondaryNotification` only works if set on both the primary
and the secondary instance._
*__Note:__ Operating system can restrict the shared memory blocks to the same
_**Note:** Operating system can restrict the shared memory blocks to the same
user, in which case the User/System modes will have no effect and the block will
be user wide.*
be user wide._
---
@ -174,6 +168,7 @@ Returns if the instance is the primary instance.
```cpp
bool SingleApplication::isSecondary()
```
Returns if the instance is a secondary instance.
---
@ -217,28 +212,27 @@ Triggered whenever there is a message received from a secondary instance.
enum SingleApplication::Mode
```
* `Mode::User` - The SingleApplication block should apply user wide. This adds
- `Mode::User` - The SingleApplication block should apply user wide. This adds
user specific data to the key used for the shared memory and server name.
This is the default functionality.
* `Mode::System` The SingleApplication block applies system-wide.
* `Mode::SecondaryNotification` Whether to trigger `instanceStarted()` even
- `Mode::System` The SingleApplication block applies system-wide.
- `Mode::SecondaryNotification` Whether to trigger `instanceStarted()` even
whenever secondary instances are started.
* `Mode::ExcludeAppPath` Excludes the application path from the server name
- `Mode::ExcludeAppPath` Excludes the application path from the server name
(and memory block) hash.
* `Mode::ExcludeAppVersion` Excludes the application version from the server
- `Mode::ExcludeAppVersion` Excludes the application version from the server
name (and memory block) hash.
*__Note:__ `Mode::SecondaryNotification` only works if set on both the primary
and the secondary instance.*
_**Note:** `Mode::SecondaryNotification` only works if set on both the primary
and the secondary instance._
*__Note:__ Operating system can restrict the shared memory blocks to the same
_**Note:** Operating system can restrict the shared memory blocks to the same
user, in which case the User/System modes will have no effect and the block will
be user wide.*
be user wide._
---
Versioning
----------
## Versioning
Each major version introduces either very significant changes or is not
backwards compatible with the previous version. Minor versions only add
@ -246,20 +240,19 @@ additional features, bug fixes or performance improvements and are backwards
compatible with the previous release. See [`CHANGELOG.md`](CHANGELOG.md) for
more details.
Implementation
--------------
## Implementation
The library is implemented with a QSharedMemory block which is thread safe and
guarantees a race condition will not occur. It also uses a QLocalSocket to
notify the main process that a new instance had been spawned and thus invoke the
`instanceStarted()` signal and for messaging the primary instance.
Additionally the library can recover from being forcefully killed on *nix
Additionally the library can recover from being forcefully killed on \*nix
systems and will reset the memory block given that there are no other
instances running.
License
-------
## License
This library and it's supporting documentation are released under
`The MIT License (MIT)` with the exception of the Qt calculator examples which
is distributed under the BSD license.

View file

@ -1,8 +1,6 @@
Windows Specific Implementations
================================
# Windows Specific Implementations
Setting the foreground window
-----------------------------
## Setting the foreground window
In the `instanceStarted()` example in the `README` we demonstrated how an
application can bring it's primary instance window whenever a second copy

View file

@ -10,7 +10,7 @@ APP=QOwnNotes
# this directory name will also be shown in the title when the DMG is mounted
TEMPDIR=$APP
SIGNATURE="Patrizio Bekerle"
NAME=`uname`
NAME=$(uname)
PLIST=$APP.app/Contents/Info.plist
if [ "$NAME" != "Darwin" ]; then

View file

@ -5,5 +5,5 @@
#
sudo pip install cpp-coveralls
coveralls -b `pwd`/unit_tests/ -r `readlink -m ./../` -e tests/ -E .+/moc_.* -E .+/qrc_.* -E .+/qxt.* -E .+/ui_.* > coveralls.log
coveralls -b $(pwd)/unit_tests/ -r $(readlink -m ./../) -e tests/ -E .+/moc_.* -E .+/qrc_.* -E .+/qxt.* -E .+/ui_.* >coveralls.log
exit 0

View file

@ -18,7 +18,6 @@ BRANCH=main
# https://wiki.ubuntu.com/Releases
UBUNTU_RELEASES=("jammy" "noble" "oracular")
DATE=$(LC_ALL=C date +'%a, %d %b %Y %T %z')
PROJECT_PATH="/tmp/QOwnNotes-$$"
UPLOAD="true"
@ -30,12 +29,13 @@ export DEBEMAIL="patrizio@bekerle.com"
#echo "/usr/share/cdbs/1/class/qmake.mk"
#cat /usr/share/cdbs/1/class/qmake.mk
while test $# -gt 0
do
while test $# -gt 0; do
case "$1" in
--no-upload) UPLOAD="false"
--no-upload)
UPLOAD="false"
;;
--no-orig-tar-upload) DEBUILD_ARGS="-sd"
--no-orig-tar-upload)
DEBUILD_ARGS="-sd"
;;
esac
shift
@ -59,14 +59,14 @@ lrelease src/QOwnNotes.pro
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set release string to disable the update check
echo "#define RELEASE \"Launchpad PPA Qt6\"" > src/release.h
echo '#define RELEASE "Launchpad PPA Qt6"' >src/release.h
changelogText="Released version $QOWNNOTES_VERSION"
@ -89,8 +89,7 @@ changelogPath=debian/changelog
gpg --list-secret-keys
# build for every Ubuntu release
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"
do
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"; do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir || exit 1
@ -119,10 +118,9 @@ do
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes-qt6 qownnotes-qt6_${versionPart}_source.changes
fi;
fi
done
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH

View file

@ -23,7 +23,6 @@ BRANCH=main
#BRANCH=master
UBUNTU_RELEASES=("trusty")
DATE=$(LC_ALL=C date +'%a, %d %b %Y %T %z')
PROJECT_PATH="/tmp/QOwnNotes-$$"
CUR_DIR=$(pwd)
@ -33,13 +32,13 @@ GPG_PUBLIC_KEY=F5161BD3
export DEBFULLNAME="Patrizio Bekerle"
export DEBEMAIL="patrizio@bekerle.com"
while test $# -gt 0
do
while test $# -gt 0; do
case "$1" in
--no-upload) UPLOAD="false"
--no-upload)
UPLOAD="false"
;;
--no-orig-tar-upload) DEBUILD_ARGS="-sd"
--no-orig-tar-upload)
DEBUILD_ARGS="-sd"
;;
esac
shift
@ -60,14 +59,14 @@ git submodule update --init
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set release string to disable the update check
echo "#define RELEASE \"Launchpad PPA\"" > src/release.h
echo '#define RELEASE "Launchpad PPA"' >src/release.h
changelogText="Released version $QOWNNOTES_VERSION"
@ -84,8 +83,7 @@ tar -czf $qownnotesSrcDir.orig.tar.gz $qownnotesSrcDir
changelogPath=debian/changelog
# build for every Ubuntu release
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"
do
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"; do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir
@ -117,7 +115,6 @@ do
fi
done
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH

View file

@ -18,7 +18,6 @@ BRANCH=main
# https://wiki.ubuntu.com/Releases
UBUNTU_RELEASES=("bionic" "focal" "jammy" "noble" "oracular")
DATE=$(LC_ALL=C date +'%a, %d %b %Y %T %z')
PROJECT_PATH="/tmp/QOwnNotes-$$"
UPLOAD="true"
@ -27,13 +26,13 @@ SIGNING_EMAIL=patrizio@bekerle.com
export DEBFULLNAME="Patrizio Bekerle"
export DEBEMAIL="patrizio@bekerle.com"
while test $# -gt 0
do
while test $# -gt 0; do
case "$1" in
--no-upload) UPLOAD="false"
--no-upload)
UPLOAD="false"
;;
--no-orig-tar-upload) DEBUILD_ARGS="-sd"
--no-orig-tar-upload)
DEBUILD_ARGS="-sd"
;;
esac
shift
@ -57,14 +56,14 @@ lrelease src/QOwnNotes.pro
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
else
# set new version if we want to override it
echo "#define VERSION \"$QOWNNOTES_VERSION\"" >src/version.h
fi
# set release string to disable the update check
echo "#define RELEASE \"Launchpad PPA\"" > src/release.h
echo '#define RELEASE "Launchpad PPA"' >src/release.h
changelogText="Released version $QOWNNOTES_VERSION"
@ -84,8 +83,7 @@ changelogPath=debian/changelog
gpg --list-secret-keys
# build for every Ubuntu release
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"
do
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"; do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir || exit 1
@ -110,10 +108,9 @@ do
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes qownnotes_${versionPart}_source.changes
fi;
fi
done
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH

View file

@ -1,4 +1,4 @@
version: '3'
version: "3"
services:
dev:
image: node:20
@ -7,8 +7,7 @@ services:
user: 1000:1000
ports:
- "8080:8080"
command: ['/bin/bash', '-c', 'cd /app && npm install && npm run dev']
command: ["/bin/bash", "-c", "cd /app && npm install && npm run dev"]
# web:
# image: img-qownnotes-webpage
# build: .

View file

@ -1,6 +1,4 @@
{
pkgs ? import <nixpkgs> { },
}:
{ pkgs ? import <nixpkgs> { }, }:
let
nodejs = pkgs.nodejs;
@ -11,7 +9,8 @@ let
version = "1.0.0";
src = ./.;
npmDepsHash = "sha256-2dE7SCHZ3VOYV8jW19hukYMqU0dQQ1Rxcv75T4TVacc="; # You'll need to replace this
npmDepsHash =
"sha256-2dE7SCHZ3VOYV8jW19hukYMqU0dQQ1Rxcv75T4TVacc="; # You'll need to replace this
buildInputs = [ pkgs.bash ];
@ -36,15 +35,11 @@ let
'';
};
in
pkgs.dockerTools.buildLayeredImage {
in pkgs.dockerTools.buildLayeredImage {
name = "qowonnotes-webpage";
tag = "latest";
contents = [
nginx
npmPackage
];
contents = [ nginx npmPackage ];
config = {
Cmd = [
@ -54,9 +49,7 @@ pkgs.dockerTools.buildLayeredImage {
"-g"
"daemon off;"
];
ExposedPorts = {
"80/tcp" = { };
};
ExposedPorts = { "80/tcp" = { }; };
};
# extraCommands = ''

View file

@ -6,9 +6,9 @@
#
# Define the original and replacement lines
original_line1="(new Date(\$page.frontmatter.date)).toISOString()"
original_line1='(new Date($page.frontmatter.date)).toISOString()'
replacement_line1="(Number.isNaN(new Date(\$page.frontmatter.date).getTime()) ? '' : new Date(\$page.frontmatter.date).toISOString())"
original_line2="(new Date(\$page.lastUpdated)).toISOString()"
original_line2='(new Date($page.lastUpdated)).toISOString()'
replacement_line2="(Number.isNaN(new Date(\$page.lastUpdated).getTime()) ? '' : new Date(\$page.lastUpdated).toISOString())"
# Specify the file in which you want to make the replacement
@ -18,8 +18,6 @@ file_to_edit="node_modules/vuepress-plugin-seo/index.js"
sed -i "s/$original_line1/$replacement_line1/g" "$file_to_edit"
sed -i "s/$original_line2/$replacement_line2/g" "$file_to_edit"
#
# Fix Date RangeError in node_modules/vuepress-plugin-sitemap/index.js
#

View file

@ -1,9 +1,2 @@
{
pkgs ? import <nixpkgs> { },
}:
pkgs.mkShell {
nativeBuildInputs = with pkgs; [
nodejs_20
zellij
];
}
{ pkgs ? import <nixpkgs> { }, }:
pkgs.mkShell { nativeBuildInputs = with pkgs; [ nodejs_20 zellij ]; }

View file

@ -1,9 +1,14 @@
<template>
<v-subheader class="blog">Date: {{fm.date | dateParse('YYYY-MM-DDTHH') | dateFormat('YYYY-MM-DD')}}</v-subheader>
<v-subheader class="blog"
>Date:
{{
fm.date | dateParse("YYYY-MM-DDTHH") | dateFormat("YYYY-MM-DD")
}}</v-subheader
>
</template>
<script>
export default {
props: ['fm'],
}
props: ["fm"],
};
</script>

View file

@ -1,19 +1,21 @@
<template>
<div>
<v-card
v-for="page in files"
class="mx-auto"
outlined
>
<v-card v-for="page in files" class="mx-auto" outlined>
<v-list-item three-line>
<v-list-item-content>
<div class="overline mb-4">
{{page.frontmatter.date | dateParse('YYYY-MM-DDTHH') | dateFormat('YYYY-MM-DD')}}
{{
page.frontmatter.date
| dateParse("YYYY-MM-DDTHH")
| dateFormat("YYYY-MM-DD")
}}
</div>
<v-list-item-title class="headline mb-1">
<a v-bind:href="page.path">{{ page.title }}</a>
</v-list-item-title>
<v-list-item-subtitle>{{page.frontmatter.description}}</v-list-item-subtitle>
<v-list-item-subtitle>{{
page.frontmatter.description
}}</v-list-item-subtitle>
</v-list-item-content>
</v-list-item>
</v-card>
@ -25,13 +27,12 @@ export default {
computed: {
files() {
// console.log("this.$site.pages.reverse()", this.$site.pages.reverse());
return this.$site.pages.reverse()
.filter(p => {
return p.path.indexOf('/blog/') >= 0 && p.title !== 'Overview';
return this.$site.pages.reverse().filter((p) => {
return p.path.indexOf("/blog/") >= 0 && p.title !== "Overview";
});
}
}
}
},
},
};
</script>
<style scoped>
.v-card {

View file

@ -17,18 +17,8 @@
@keydown.enter="submit"
></v-text-field>
<v-btn
light
@click="submit"
title="Submit your answer"
>
Submit
</v-btn>
<v-btn
text
title="Close poll"
@click="snackbar = false"
>
<v-btn light @click="submit" title="Submit your answer"> Submit </v-btn>
<v-btn text title="Close poll" @click="snackbar = false">
<v-icon>mdi-close</v-icon>
</v-btn>
</v-snackbar>
@ -47,18 +37,20 @@
<script>
export default {
props: ['action', 'name'],
props: ["action", "name"],
data() {
return {
snackbar: false,
success: false,
answer: "",
pollId: 1,
sentPolls: []
}
sentPolls: [],
};
},
mounted() {
this.sentPolls = JSON.parse(window.localStorage.getItem("qon-polls") || "[]");
this.sentPolls = JSON.parse(
window.localStorage.getItem("qon-polls") || "[]",
);
// turn on poll snackbar if poll wasn't sent already
if (!this.sentPolls.includes(this.pollId)) {
@ -77,15 +69,15 @@
window.localStorage.setItem("qon-polls", JSON.stringify(this.sentPolls));
// check if the Matomo library is available
if (typeof _paq !== 'undefined') {
_paq.push(['trackEvent', 'Poll', 'Found out about QON', this.answer]);
if (typeof _paq !== "undefined") {
_paq.push(["trackEvent", "Poll", "Found out about QON", this.answer]);
}
this.snackbar = false;
this.success = true;
},
},
}
};
</script>
<style>

View file

@ -1,34 +1,36 @@
<template>
<v-card
class="mx-auto"
tile
>
<v-card class="mx-auto" tile>
<v-row>
<v-col
align-self="start"
cols="12" md="3" lg="2"
>
<v-avatar
class="profile"
color="grey"
rounded=""
size="100"
tile
>
<v-col align-self="start" cols="12" md="3" lg="2">
<v-avatar class="profile" color="grey" rounded="" size="100" tile>
<v-img v-bind:src="img"></v-img>
</v-avatar>
</v-col>
<v-col cols="12" md="9" lg="10">
<v-list-item
>
<v-list-item>
<v-list-item-content>
<v-list-item-title class="title">
{{ name }}
</v-list-item-title>
<v-list-item-subtitle>{{ functions }}</v-list-item-subtitle>
<a v-if="github" v-bind:href="'https://github.com/' + github" target="_blank">GitHub</a>
<a v-if="keybase" v-bind:href="'https://keybase.io/' + keybase" target="_blank">Keybase</a>
<a v-if="crowdin" v-bind:href="'https://crowdin.com/profile/' + crowdin" target="_blank">Crowdin</a>
<a
v-if="github"
v-bind:href="'https://github.com/' + github"
target="_blank"
>GitHub</a
>
<a
v-if="keybase"
v-bind:href="'https://keybase.io/' + keybase"
target="_blank"
>Keybase</a
>
<a
v-if="crowdin"
v-bind:href="'https://crowdin.com/profile/' + crowdin"
target="_blank"
>Crowdin</a
>
</v-list-item-content>
</v-list-item>
</v-col>
@ -38,8 +40,16 @@
<script>
export default {
props: ['backgroundImg', 'img', 'name', 'functions', 'github', 'keybase', 'crowdin'],
}
props: [
"backgroundImg",
"img",
"name",
"functions",
"github",
"keybase",
"crowdin",
],
};
</script>
<style scoped>

File diff suppressed because it is too large Load diff

View file

@ -4,17 +4,17 @@
* https://v1.vuepress.vuejs.org/guide/basic-config.html#app-level-enhancements
*/
import Vuetify from 'vuetify'
import Vuetify from "vuetify";
import "vuetify/dist/vuetify.min.css";
import { findPageForPath } from '@app/util'
import VueFilterDateFormat from '@vuejs-community/vue-filter-date-format';
import VueFilterDateParse from '@vuejs-community/vue-filter-date-parse';
import { findPageForPath } from "@app/util";
import VueFilterDateFormat from "@vuejs-community/vue-filter-date-format";
import VueFilterDateParse from "@vuejs-community/vue-filter-date-parse";
export default ({
Vue, // the version of Vue being used in the VuePress app
options, // the options for the root Vue instance
router, // the router instance for the app
siteData // site metadata
siteData, // site metadata
}) => {
// ...apply enhancements for the site.
Vue.use(Vuetify);
@ -25,9 +25,9 @@ export default ({
Vue.mixin({
methods: {
getPageKey(pages, path) {
const result = findPageForPath(pages, path)
return result.key
}
}
const result = findPageForPath(pages, path);
return result.key;
},
},
});
}
};

View file

@ -1,3 +1,3 @@
module.exports = {
extend: '@vuepress/theme-default'
}
extend: "@vuepress/theme-default",
};

View file

@ -3,11 +3,17 @@
<template #page-bottom>
<div class="page-nav">
<div>
Crafted by <a href="https://bekerle.com" target="_blank">Patrizio Bekerle</a> with
Crafted by
<a href="https://bekerle.com" target="_blank">Patrizio Bekerle</a>
with
</div>
<div class="social">
<a href="https://github.com/pbek/QOwnNotes" target="_blank"><v-icon>mdi-github</v-icon></a>
<a href="https://social.qownnotes.org/@qownnotes" target="_blank"><v-icon>mdi-mastodon</v-icon></a>
<a href="https://github.com/pbek/QOwnNotes" target="_blank"
><v-icon>mdi-github</v-icon></a
>
<a href="https://social.qownnotes.org/@qownnotes" target="_blank"
><v-icon>mdi-mastodon</v-icon></a
>
</div>
</div>
@ -17,15 +23,15 @@
</template>
<script>
import ParentLayout from '@parent-theme/layouts/Layout.vue'
import ParentLayout from "@parent-theme/layouts/Layout.vue";
export default {
name: 'Layout',
name: "Layout",
components: {
ParentLayout
}
}
ParentLayout,
},
};
</script>
<style scoped>

View file

@ -1,58 +1,58 @@
const _ = require('lodash');
const fs = require('fs');
const glob = require('glob');
const markdownIt = require('markdown-it');
const meta = require('markdown-it-meta');
const _ = require("lodash");
const fs = require("fs");
const glob = require("glob");
const markdownIt = require("markdown-it");
const meta = require("markdown-it-meta");
// Load all MD files in a specified directory and order by metadata 'order' value
const getChildren = (parent_path, dir, reverseOrder = false) => {
files = glob
.sync(parent_path + (dir ? `/${dir}` : '') + '/**/*.md')
.map(path => {
.sync(parent_path + (dir ? `/${dir}` : "") + "/**/*.md")
.map((path) => {
// Instantiate MarkdownIt
md = new markdownIt();
// Add markdown-it-meta
md.use(meta);
// Get the order value
file = fs.readFileSync(path, 'utf8');
file = fs.readFileSync(path, "utf8");
md.render(file);
order = md.meta.order;
// Remove "parent_path" and ".md"
path = path.slice(parent_path.length + 1, -3);
// Remove "README", making it the de facto index page
if (path.endsWith('README')) {
if (path.endsWith("README")) {
path = path.slice(0, -6);
}
return {
path,
order
order,
};
});
// Return the ordered list of files, sort by 'order' then 'path'
let result = _.sortBy(files, ['order', 'path']);
let result = _.sortBy(files, ["order", "path"]);
if (reverseOrder) {
result = result.reverse();
}
return result.map(file => file.path);
return result.map((file) => file.path);
};
const getNavItemsForLanguage = (navItems, language) => {
let resultNavItems = [];
navItems.forEach((navItem) => {
resultNavItems.push(language + '/' + navItem);
resultNavItems.push(language + "/" + navItem);
});
return resultNavItems;
}
};
const getNavItemForLanguage = (navItem, language) => {
return '/' + language + navItem;
}
return "/" + language + navItem;
};
module.exports = {
getChildren,

View file

@ -10,19 +10,19 @@
من أمثلة السلوك الذي يساهم في جعل بيئة مجتمعنا إيجابية:
* التعاطف مع الآخرين والإحسان إليهم
* احترام آراء الآخرين ووجهات نظرهم وتجاربهم
* إعطاء النقد البنّاء، وقبوله بصدر رحب
* قَبول المسؤولية والاعتذار للذين تأثروا بأخطائنا، والتعلم من التجرِبة
* التركيز على ما هو أفضل، ليس فحسب لنا كأفراد، ولكن للمجتمع جميعه
- التعاطف مع الآخرين والإحسان إليهم
- احترام آراء الآخرين ووجهات نظرهم وتجاربهم
- إعطاء النقد البنّاء، وقبوله بصدر رحب
- قَبول المسؤولية والاعتذار للذين تأثروا بأخطائنا، والتعلم من التجرِبة
- التركيز على ما هو أفضل، ليس فحسب لنا كأفراد، ولكن للمجتمع جميعه
من أمثلة السلوك المرفوض:
* استخدام لغة أو صور ذات معنى جنسي، أو تحرش أو مضايقة جنسية من أي نوع
* التصيد (المشاغبة)، والتعليقات المهينة أو الازدرائية، والهجوم الشخصي أو السياسي
* المضايقة أو التحرش، سواءً عبر وسيلة تواصل عامة أو خاصة
* نشر معلومات الآخرين الخاصة بغير إذنهم الصريح، مثل عنوان المسكن أو عنوان البريد الإلكتروني
* أي سلوك آخر يُعدّ غير لائق في السياق المهني
- استخدام لغة أو صور ذات معنى جنسي، أو تحرش أو مضايقة جنسية من أي نوع
- التصيد (المشاغبة)، والتعليقات المهينة أو الازدرائية، والهجوم الشخصي أو السياسي
- المضايقة أو التحرش، سواءً عبر وسيلة تواصل عامة أو خاصة
- نشر معلومات الآخرين الخاصة بغير إذنهم الصريح، مثل عنوان المسكن أو عنوان البريد الإلكتروني
- أي سلوك آخر يُعدّ غير لائق في السياق المهني
## مسؤوليات الإنفاذ
@ -36,7 +36,7 @@
## الإنفاذ
يمكن إبلاغ قادة المجتمع المسؤولين عن إنفاذ ميثاق السلوك، عن حالات التطاول أو المضايقات أو أي سلوك مرفوض (انظر قائمة *تواصل* على [www.qownnotes.org/ar](https://www.qownnotes.org/ar/)). سنراجع جميع الشكاوى ونحقق فيها فورا وبإنصاف.
يمكن إبلاغ قادة المجتمع المسؤولين عن إنفاذ ميثاق السلوك، عن حالات التطاول أو المضايقات أو أي سلوك مرفوض (انظر قائمة _تواصل_ على [www.qownnotes.org/ar](https://www.qownnotes.org/ar/)). سنراجع جميع الشكاوى ونحقق فيها فورا وبإنصاف.
يلتزم جميع قادة المجتمع باحترام خصوصية وتأمين مَن يبلغ عن أي حادث.
@ -81,4 +81,3 @@
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

View file

@ -3,10 +3,11 @@
أصلح أخطاءك الإملائية!
::: tip
معلومة لدى QOwnNotes **مدير قواميس** مدمج (في قائمة *تحرير*) والذي يمكنك استخدامه لتنزيل قواميس أو حذفها (إذا كنت تفتقد لغتك، انظر بالأسفل لمعرفة كيف تطلب إضافة قاموس). إذا أردت تنزيل القواميس يدويًا، يمكنك اتباع الخطوات التالية.
معلومة لدى QOwnNotes **مدير قواميس** مدمج (في قائمة _تحرير_) والذي يمكنك استخدامه لتنزيل قواميس أو حذفها (إذا كنت تفتقد لغتك، انظر بالأسفل لمعرفة كيف تطلب إضافة قاموس). إذا أردت تنزيل القواميس يدويًا، يمكنك اتباع الخطوات التالية.
:::
- في **لينكس** يمكنك تثبيت قواميس Hunspell للغتك باستخدام مدير الحزم الخاص بتوزيعتك
- إذا احتجتَ إلى إضافة ملفات لغات إضافية، يمكنك فعل ذلك في <code dir="ltr">~/.local/share/hunspell</code> أو <code dir="ltr">/usr/share/hunspell</code>.
- إذا كنت تستخدم حزمة Snap من QOwnNotes، يمكنك أيضا استخدام <code dir="ltr">~/hunspell</code> لملفات اللغات، لإن Snap لا يستطيع الوصول إلى <code dir="ltr">~/.local</code>
@ -23,7 +24,7 @@
:::
| م | رمز اللغة | اللغة |
| -- | --------- | --------------------------------- |
| --- | --------- | --------------------------------- |
| 1 | af_ZA | الأفريكانية (جنوب أفريقيا) |
| 2 | an_ES | الأراغونية (إسبانيا) |
| 3 | ar | العربية |

View file

@ -60,7 +60,7 @@
- [hierarchical note taking applications : linux](https://www.reddit.com/r/linux/comments/5me4wv/hierarchical_note_taking_applications/)
- [QownNotes - De la prise de notes chiffrées sur votre cloud personnel - Korben](https://korben.info/qownnotes.html)
- [The 6 Best Windows Notepad Alternatives](http://www.makeuseof.com/tag/best-windows-notepad-alternatives/)
- [Synchronisation des notes (QOwnNotes) — Wiki de la mère Zaclys](https://wiki.zaclys.com/index.php/Synchronisation_des_notes_(QOwnNotes))
- [Synchronisation des notes (QOwnNotes) — Wiki de la mère Zaclys](<https://wiki.zaclys.com/index.php/Synchronisation_des_notes_(QOwnNotes)>)
- [QOwnNotes 17.06.06 z notatkami w chmurach | przystajnik](https://404.g-net.pl/2017/06/qownnotes-17-06-06-notatkami-chmurach/)
- [How to Install QOwnNotes Note-taking & Todo List Manager in Ubuntu | UbuntuHandbook](http://ubuntuhandbook.org/index.php/2017/06/install-qownnotes-ubuntu/)
- [How to install QOwnNotes on Ubuntu | CONNECTwww.com](https://connectwww.com/how-to-install-qownnotes-on-ubuntu/5518/)
@ -135,7 +135,7 @@
- [Download QOwnNotes® 2019 latest free version | Download82.com](http://www.download82.com/download/windows/qownnotes/)
- [Download QOwnNotes 20.1.12 build 5295 - Tạo và quản lý, in ấn các ghi](https://taimienphi.vn/download-qownnotes-38957)
- [QOwnNotes 5092](https://www.warp2search.net/story/qownnotes-5092/)
- [QOwnNotes | Clear Linux* Project](https://clearlinux.org/software/flathub/qownnotes)
- [QOwnNotes | Clear Linux\* Project](https://clearlinux.org/software/flathub/qownnotes)
- <https://freewarebuzz.com/utilities-records.html#qownnotes>
- [QOwnNotes, скачать бесплатно. Программы для Linux](https://pingvinus.ru/program/qownnotes)
- [Органайзеры и заметки. Программы для Linux](https://pingvinus.ru/programs/office/personal-information-managers)
@ -153,7 +153,7 @@
- [QOwnNotes 20.2.7 - dobreprogramy](https://www.dobreprogramy.pl/QOwnNotes,Program,Windows,91842.html)
- [QOwnNotes 18.10.6 (Mac) - dobreprogramy](https://www.dobreprogramy.pl/QOwnNotes,Program,Mac,91843.html)
- [Best text editor for Windows - Notepad Alternative. - BounceGeek](https://www.bouncegeek.com/best-text-editor-windows/)
- [QOwnNotes Web Companion Chrome插件,QOwnNotes Web Companion 谷歌浏览器插件下载_安装_教程-扩展迷](https://www.extfans.com/productivity/pkgkfnampapjbopomdpnkckbjdnpkbkp/)
- [QOwnNotes Web Companion Chrome插件,QOwnNotes Web Companion 谷歌浏览器插件下载*安装*教程-扩展迷](https://www.extfans.com/productivity/pkgkfnampapjbopomdpnkckbjdnpkbkp/)
- [QOwnNotes على أجهزة Mac](https://dl.pconline.com.cn/download/1011329.html)
- [Gratilog.net - Forum - Propositions de logiciels - QOwnNotes #](http://www.gratilog.net/xoops/modules/newbb/viewtopic.php?post_id=194644#forumpo)
- [MacUpdate](https://www.macupdate.com/app/mac/61493/qownnotes)
@ -246,7 +246,7 @@
- [Note Taking Application / Applications & Desktop Environments / Arch Linux Forums](https://bbs.archlinux.org/viewtopic.php?id=228115)
- [Search results for query: qownnotes | MalwareTips Community](https://malwaretips.com/search/137933/?q=qownnotes&o=relevance)
- [Favorite Lesser-Known Apps? - General Discussion - Manjaro Linux Forum](https://forum.manjaro.org/t/favorite-lesser-known-apps/57320/400)
- [De-Google my life - Part 5 of ¯\_(ツ)_/¯: Backups](https://blog.rogs.me/2019/11/27/de-google-my-life-part-5-of-_-tu-_-backups/)
- [De-Google my life - Part 5 of ¯\_(ツ)\_/¯: Backups](https://blog.rogs.me/2019/11/27/de-google-my-life-part-5-of-_-tu-_-backups/)
- [Taking notes : selfhosted](https://www.reddit.com/r/selfhosted/comments/erb7kj/taking_notes/)
- [Поиск по сайту - qownnotes](https://www.linux.org.ru/search.jsp?q=qownnotes&range=ALL&interval=ALL&user=&_usertopic=on)
- [El cliente oficial de Evernote para Linux llegará este año](https://www.muylinux.com/2020/01/20/cliente-oficial-evernote-para-linux/) #تعليق
@ -269,7 +269,7 @@
- Alan Pope
- [LXDE vs LXQT, which is better? - General Discussion - Manjaro Linux Forum](https://forum.manjaro.org/t/lxde-vs-lxqt-which-is-better/76943/8)
- [QOwnNotes and Markor | Brent Huisman](https://brent.huisman.pl/qownnotes-and-markor/)
- **[Self-Hosted 18: Ring Doorbell Alternative](https://selfhosted.show/18)***
- **[Self-Hosted 18: Ring Doorbell Alternative](https://selfhosted.show/18)\***
- <https://selfhosted.show/18?t=1088> Several minutes about QON
- [/s/ - Best Open Source Software for Windows](https://2ch.hk/s/res/2764147.html)
- [/s/ - Ищу программу...](https://2ch.hk/s/res/2127464.html#2766133)
@ -312,4 +312,3 @@
- Alpine Linux: <https://pkgs.alpinelinux.org/packages?name=qownnotes&branch=edge>
- nixos: <https://search.nixos.org/packages?query=qownnotes>
- <https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/office/qownnotes/default.nix>

View file

@ -7,6 +7,7 @@ image: /img/bookmarks.png
تتيح لك قص المحتوى من صفحات المتصفح وكذلك إدارة إشارات المتصفح المرجعية عبر المتصفحات وأنظمة التشغيل المختلفة.
::: tip
- يجب أن يكون QOwnNotes مفتوحا حتى تعمل إضافة المتصفح رفيقة الويب.
- لا حاجة للاتصال بالإنترنت. إضافة المتصفح تعمل **بدون اتصال**.
:::
@ -34,7 +35,7 @@ Info إن لم يعمل مقص الويب، فتأكد أن تطبيق QOwnNotes
وتأكد كذلك أنك قبلت تجميع بيانات المستخدم عندما ضغطت على أيقونة الإضافة أول مرة في شريط المتصفح.
وإذا كنت تستخدم فيرفكس، فتحتاج كذلك أن تتأكد أنك فعّلت الصلاحية الاختيارية `الوصول إلى بياناتك لكل المواقع` في إعدادات *صلاحيات* الإضافة، وإلا فقد تقابل الخطأ: `TypeError: chrome.tabs.captureVisibleTab is not a function`.
وإذا كنت تستخدم فيرفكس، فتحتاج كذلك أن تتأكد أنك فعّلت الصلاحية الاختيارية `الوصول إلى بياناتك لكل المواقع` في إعدادات _صلاحيات_ الإضافة، وإلا فقد تقابل الخطأ: `TypeError: chrome.tabs.captureVisibleTab is not a function`.
:::
::: tip
@ -64,6 +65,7 @@ Info إن لم يعمل مقص الويب، فتأكد أن تطبيق QOwnNotes
- [اسم صفحة الوب](https://www.example.com) #وسم١ #وسم٢
- [اسم صفحة الوب](https://www.example.com) شيء من الوصف فقط
- [اسم صفحة الوب](https://www.example.com) #وسم١ #وسم٢ شيء من الوصف والوسوم
* [اسم صفحة الوب](https://www.example.com) رمز عناصر القائمة البديل صالح أيضا
```

View file

@ -3,7 +3,7 @@
يمكنك استخدام هذه المعاملات في واجهة سطر الأوامر (CLI) للتحكم في سلوك التطبيق:
| المُعامِل | الوصف |
| ------------------------------ | --------------------------------------------------------------------------------------------- |
| ----------------------------- | --------------------------------------------------------------------------------------------- |
| `--help` | يُظهر شاشة المساعدة |
| `--version` | يعرض رقم نسخة التطبيق |
| `--portable` | يشغل التطبيق في الوضع المحمول |
@ -20,12 +20,13 @@
```bash
QOwnNotes --session test
```
:::
قد تحتاج إلى تشغيل التطبيق من واجهة سطر الأوامر بطرق مختلفة على أنظمة التشغيل المختلفة:
| نظام التشغيل | الأمر |
| ------------ | ----------------------------------------------------------------------------------- |
| ------------ | ----------------------------------------------------------------------------- |
| لينكس | `QOwnNotes` (أو `qownnotes` لو كان مثبتًا عبر snap) |
| ماك أو إس | `<span dir="ltr">/Applications/QOwnNotes.app/Contents/MacOS/QOwnNotes</span>` |
| ويندوز | `QOwnNotes.exe` |
@ -46,6 +47,7 @@ QOwnNotes --dump-settings | pbcopy
# انسخ تفريغ الإعدادات إلى الحافظة على ويندوز باستخدام clip
QOwnNotes --dump-settings | clip
```
:::
## تنفيذ إجراءات قائمة بعد التشغيل
@ -62,7 +64,7 @@ QOwnNotes --action actionShow_Todo_List
يمكنك الحصول على أسماء كائنات إجراءات القائمة من [mainwindow.ui](https://github.com/pbek/QOwnNotes/blob/main/src/mainwindow.ui). فقط ابحث بالعنوان الإنجليزي للقائمة. لاحظ أن هذه النصوص قد تتغير بمرور الوقت.
:::
لتنفيذ [إجراء برمجي](../scripting/methods-and-objects.md#registering-a-custom-action)، استخدم <code dir="ltr">customAction_</code> متبوعًا باسم الإجراء المخصص. اسم الإجراء المخصص هو المُعامل الأول في نداء `script.registerCustomAction` في البُريمج.
لتنفيذ [إجراء برمجي](../scripting/methods-and-objects.md#registering-a-custom-action)، استخدم <code dir="ltr">customAction\_</code> متبوعًا باسم الإجراء المخصص. اسم الإجراء المخصص هو المُعامل الأول في نداء `script.registerCustomAction` في البُريمج.
مثلا لتنفيذ الإجراء المخصص `myAction`، شغّل QOwnNotes هكذا:

View file

@ -24,6 +24,7 @@ rm /tmp/qc.tar.gz && \
sudo mv /tmp/qc /usr/local/bin/qc && \
/usr/local/bin/qc --version
```
:::
## الاعتماديات
@ -38,7 +39,7 @@ sudo mv /tmp/qc /usr/local/bin/qc && \
![socket-server-token](/img/socket-server-token.png)
قبل أن تستخدم مدير القصاصات عليك تفعيل *خادم Web socket* (2) في شاشة إعدادات *إضافة المتصفح وقصاصات الأوامر* (1) في QOwnNotes.
قبل أن تستخدم مدير القصاصات عليك تفعيل ادم Web socket_ (2) في شاشة إعدادات _إضافة المتصفح وقصاصات الأوامر_ (1) في QOwnNotes.
ثم يجب عليك إظهار رمز الأمان (3) ونسخه (4).
@ -67,7 +68,9 @@ token = "رمز الأمان الخاص بك هنا"
```markdown
- `echo I am a command` I am a description #tag1 #tag2 #tag3
* `echo I am also a command` I am a description #tag3 #tag4 #tag5
- cmd: `echo I will be found in the current note` This command will be found in the current note regardless of note tags
<!-- Example for asking for user input -->

View file

@ -56,7 +56,6 @@ graph TB
- **QOwnNotes لا يزامن ملاحظاتك** ولا ملفات الوسائط أو المرفقات!
- مزامنة الملفات هي مَسعًى معقد، ويوجد بالفعل حلول مزامنة ملفات عظيمة (انظر [عميل مزامنة Nextcloud الحاسوبي](#nextcloud-desktop-sync-client))
## ملفات ملاحظات ماركداون
- أنت **تملك** جميع ملاحظاتك وملفات وسائطك ومرفقاتك!
@ -64,7 +63,6 @@ graph TB
- تستطيع استخدام أي محرر نصوص تريده بجانب QOwnNotes لعرض أو تعديل ملفات ملاحظاتك
- **زامن ملاحظاتك** مع الأجهزة الأخرى (الحاسوب والمحمول) باستخدام عميل مزامنة [Nextcloud](https://nextcloud.com/) أو [ownCloud](https://owncloud.org/) مع&nbsp;خادمك
## إضافة متصفح QOwnNotes
يمكنك استخدام QOwnNotes لإدارة **إشارات المتصفح المرجعية** أو كـ**مقص ويب**.
@ -134,7 +132,7 @@ graph TB
- [Nextcloud Notes لأندرويد](https://play.google.com/store/apps/details?id=it.niedermann.owncloud.notes) (من طرف ثالث)
::: tip
يمكنك أيضا استخدام أي أداة مزامنة مثل *Synchronize Ultimate* أو *FolderSync* لمزامنة ملفات ملاحظاتك، وتطبيق مثل *neutriNotes* لتحريرها.
يمكنك أيضا استخدام أي أداة مزامنة مثل _Synchronize Ultimate_ أو _FolderSync_ لمزامنة ملفات ملاحظاتك، وتطبيق مثل _neutriNotes_ لتحريرها.
:::
### آي أو إس

View file

@ -11,7 +11,7 @@ Note
![screenshot01](/img/demo/playwithdocker01.png)
٣) انظر حتى ينتهي إنشاء الحاوية وتبدأ في العمل. عندئذ يمكنك النقر على **6080** في الأعلى (انظر النقطة **2** في لقطات الشاشة). إذا واجهك خطأ، برجاء الانتظار قليلا ثم حاول النقر على *6080* من جديد؛ قد تحتاج بيئة سطح المكتب لبعض الوقت حتى تحمّل.
٣) انظر حتى ينتهي إنشاء الحاوية وتبدأ في العمل. عندئذ يمكنك النقر على **6080** في الأعلى (انظر النقطة **2** في لقطات الشاشة). إذا واجهك خطأ، برجاء الانتظار قليلا ثم حاول النقر على _6080_ من جديد؛ قد تحتاج بيئة سطح المكتب لبعض الوقت حتى تحمّل.
![screenshot02](/img/demo/playwithdocker02.png)
@ -19,6 +19,6 @@ Note
![screenshot03](/img/demo/playwithdocker03.png)
٥) ستظهر شاشة تثبيت **QOwnNotes**، انقر خلالها واضغط *Finish* حتى ترى شاشة QOwnNotes الرئيسية.
٥) ستظهر شاشة تثبيت **QOwnNotes**، انقر خلالها واضغط _Finish_ حتى ترى شاشة QOwnNotes الرئيسية.
![screenshot04](/img/demo/playwithdocker04.png)

View file

@ -2,7 +2,7 @@
## Evernote
يمكنك الوصول إلى صندوق حوار استيراد Evernote من قائمة `ملاحظة > استيراد` لاستيراد ملفات *Enex*.
يمكنك الوصول إلى صندوق حوار استيراد Evernote من قائمة `ملاحظة > استيراد` لاستيراد ملفات _Enex_.
سيستورد أيضا الصور والملحقات والوسوم والبيانات الوصفية والتنسيق الأساسي للنصوص.
@ -26,7 +26,6 @@
>
> python keep_to_markdown.py Keep out/
>
>
> أبدل الاسم Keep في الأمر باسم المجلد الذي فيه الملاحظات بصيغة JSON. ومجلد out سيُنشأ إذا لم يكن موجودا.
من <https://gitlab.com/-/snippets/2002921>

View file

@ -8,10 +8,15 @@
```markdown
# عنوان مستوى أول
## عنوان مستوى ثان
### عنوان مستوى ثالث
#### عنوان مستوى رابع
##### عنوان مستوى خامس
###### عنوان مستوى سادس
```
@ -22,11 +27,9 @@
كبديل، للعناوين من المستويين الأول والثاني، يمكن تسطيرهم هكذا:
```markdown
شكل بديل لعناوين المستوى الأول
==================================
# شكل بديل لعناوين المستوى الأول
شكل بديل لعناوين المستوى الثاني
------------------------------------
## شكل بديل لعناوين المستوى الثاني
```
::: tip
@ -36,7 +39,7 @@
## التوكيد
```markdown
التوكيد البسيط، أو الخط المائل، يكون *بنجمة واحدة على كل جانب*.
التوكيد البسيط، أو الخط المائل، يكون _بنجمة واحدة على كل جانب_.
التوكيد القوي، أو الخط العريض، يكون **بنجمتين اثنتين على كل جانب**.
```
@ -47,7 +50,7 @@
## التسطير
يوجد كذلك إعداد اختياري لتفعيل عرض التسطير في *إعدادات المعاينة*.
يوجد كذلك إعداد اختياري لتفعيل عرض التسطير في _إعدادات المعاينة_.
```markdown
_مسطر_
@ -74,14 +77,18 @@ _مسطر_
```markdown
1. العنصر الأول في قائمة مرقمة
2. عنصر آخر
* قائمة منقوطة فرعية.
- قائمة منقوطة فرعية.
1. الرقم الفعلي غير مهم؛ المهم أنه رقم
1. قائمة مرقمة فرعية (تعمل فقط في المحرر، ولا تعمل في المعاينة)
4. وعنصر آخر.
1. وعنصر آخر.
* القوائم المنقوطة قد تستخدم النجوم
- أو الشرطات
+ أو علامات الجمع
- القوائم المنقوطة قد تستخدم النجوم
* أو الشرطات
- أو علامات الجمع
```
::: tip
@ -145,7 +152,6 @@ http://www.example.com أو <http://www.example.com>
يمكنك أيضا لصق الصورة من الحافظة مباشرةً في الملاحظة بالاختصار <kbd>Ctrl + Shift + V</kbd>.
:::
## الأكواد المضمّنة وكتل الأكواد
```markdown
@ -170,12 +176,13 @@ http://www.example.com أو <http://www.example.com>
### سور الفاصلات العليا المائلة
يمكنك أيضا استخدام ثلاث فاصلات عليا مائلة لإنشاء كتلة كود.
~~~markdown
````markdown
```
الكود يأتي هنا
الكود يأتي هنا
```
~~~
````
::: tip
يمكنك استخدام [الاختصار](./shortcuts.md) <kbd>Ctrl + Shift + C</kbd> على
@ -197,47 +204,47 @@ cd Notes
اللغات المدعومة حاليا (ومعرِّفات كتل الأكواد) هي:
* BASh scripting, `bash`
* C, `c`
* C++, `cpp`
* C++, `cxx`
* C++, `c++`
* C#, `c#`
* CMake, `cmake`
* C#, `csharp`
* CSS, `css`
* Go, `go`
* HTML, `html`
* INI, `ini`
* Java, `java`
* JavaScript, `javascript`
* JavaScript, `js`
* JSON, `json`
* Makefile, `make`
* PHP, `php`
* Python, `py`
* Python, `python`
* QML, `qml`
* Rust, `rust`
* Shell scripting, `sh`
* SQL, `sql`
* TypeScript, `ts`
* TypeScript, `typescript`
* V, `v`
* Vex, `vex`
* XML, `xml`
* YAML, `yml`
* YAML, `yaml`
- BASh scripting, `bash`
- C, `c`
- C++, `cpp`
- C++, `cxx`
- C++, `c++`
- C#, `c#`
- CMake, `cmake`
- C#, `csharp`
- CSS, `css`
- Go, `go`
- HTML, `html`
- INI, `ini`
- Java, `java`
- JavaScript, `javascript`
- JavaScript, `js`
- JSON, `json`
- Makefile, `make`
- PHP, `php`
- Python, `py`
- Python, `python`
- QML, `qml`
- Rust, `rust`
- Shell scripting, `sh`
- SQL, `sql`
- TypeScript, `ts`
- TypeScript, `typescript`
- V, `v`
- Vex, `vex`
- XML, `xml`
- YAML, `yml`
- YAML, `yaml`
## الجداول
الجداول ليست جزءًا من جوهر مواصفات ماركداون، لكن معاينة QOwnNotes تدعمها.
```markdown
````markdown
يمكن استخدام النقطتين الرأسيتين لمحاذاة الأعمدة.
| الجداول | رائعة | حقا |
| ------------- |:-------------:| -----:|
| ------------------ | :----------: | ----: |
| العمود الثالث | محاذى لليمين | $1600 |
| العمود الثاني | ممركز | $12 |
| خطوط الحمار الوحشي | جميلة وأنيقة | $1 |
@ -247,10 +254,11 @@ cd Notes
يمكنك أيضا استخدام ماركداون داخل خلايا الجداول.
| ماركداون | أقل | جمالا |
| --- | --- | --- |
| *ما زال* | `يُعرض` | **بإتقان** |
| -------- | ------- | ---------- |
| ا زال_ | `يُعرض` | **بإتقان** |
| 1 | 2 | 3 |
~~~
````
::: tip
اضغط <kbd>Alt + Shift + T</kbd> لإظهار حوار يساعدك في إنشاء الجداول. يمكنك حتى استيراد ملفات CSV في ذلك الحوار.
@ -267,10 +275,11 @@ cd Notes
كسر الاقتباس.
> هذا سطر طويل جدا ولكنه سيُنسّق بشكل سليم كاقتباس عندما يلف إلى السطر التالي. ياه يا فتى، لنستمر في الكتابة حتى نضمن أن هذا بالطول الكافي لكي يلف فعلا عند الجميع. آه، يمكنك *وضع* **ماركداون** داخل كتلة اقتباس.
```
````
````
::: tip
يمكنك إخبار QOwnNotes أن يظلّل كتل الاقتباس بكاملها أو أن يظلّل حرف الاقتباس فقط، في *إعدادات المحرر*
يمكنك إخبار QOwnNotes أن يظلّل كتل الاقتباس بكاملها أو أن يظلّل حرف الاقتباس فقط، في _إعدادات المحرر_
يمكنك استخدام [الاختصار](./shortcuts.md) <kbd>Ctrl + Shift + B</kbd> لجعل النص المحدد كتلة اقتباس.
:::
@ -288,11 +297,11 @@ cd Notes
شرطات سفلية
___
---
نجوم
***
---
```
## فصل السطور
@ -308,10 +317,10 @@ ___
```markdown
إليك سطر لنبدأ به.
هذا السطر مفصول عن سابقه بسطرين جديدين، لذا فإنه يكون *فقرة منفصلة*.
هذا السطر مفصول عن سابقه بسطرين جديدين، لذا فإنه يكون _فقرة منفصلة_.
وأيضا هذا السطر يبدأ فقرة منفصلة، لكن...
هذا السطر مفصول فقط بمسافتين وسطر جديد واحد، لذا فإنه سطر منفصل في *نفس الفقرة*.
هذا السطر مفصول فقط بمسافتين وسطر جديد واحد، لذا فإنه سطر منفصل في _نفس الفقرة_.
```
::: tip
@ -323,7 +332,7 @@ ___
لا تظهر التعليقات في المعاينة.
```markdown
[comment]: # (لن يظهر هذا التعليق في المعاينة)
[comment]: # "لن يظهر هذا التعليق في المعاينة"
<!-- تعليقات هتمل مخفية أيضا -->
```

View file

@ -154,6 +154,7 @@
[نظرة على مفاهيم QOwnNotes](concept.md)
## الخصائص
- يمكنك استخدام **ملفاتك الحالية، النصية أو التي بصيغة ماركداون**؛ لا تحتاج إلى استيرادها
- QOwnNotes مكتوب بلغة سي++ ومحسَّن **لتقليل استهلاك الموارد** (ليس تطبيق Electron متعطش للذاكرة والمعالج)
- **استيراد من Evernote و&nbsp;Joplin**
@ -176,8 +177,8 @@
- **وضع Vim**
- **[تطبيق ويب](web-app.md)** ليمكنك **إضافة صور من محمولك** إلى الملاحظة الحالية في QOwnNotes على حاسوبك
## المظهر
- **تلوين ماركداون** للملاحظات **ووضع معاينة لماركداون**
- **دعم سِمة الوضع المظلم**
- **دعم السمات** في **تلوين ماركداون**
@ -188,6 +189,7 @@
- **الفروقات** بين الملاحظة الحالية والملاحظة المعدّلة خارج التطبيق **تظهر** في صندوق حوار
## اللغات
- **متاح بأكثر من ٦٠ لغة مختلفة** مثل العربية والإنجليزية والفرنسية والألمانية والإسبانية والبولندية والصينية واليابانية والروسية والبرتغالية والمجرية والهولندية
- [مساعدتك](../contributing/translation.md) مرحب بها جدا لتحسين هذه الترجمات أو لترجمة QOwnNotes إلى لغات أخرى

View file

@ -1,6 +1,5 @@
# QOwnNotesAPI Nextcloud App
![qownnotesapi](/img/qownnotesapi.png)
يتيح [**QOwnNotesAPI**](https://github.com/pbek/qownnotesapi) لك **الوصول** إلى **الملاحظات المهملة** و**نسخ الملاحظات**.

View file

@ -1,6 +1,6 @@
# البحث عن الملاحظات
للبحث عن ملاحظات أو عن نص داخل الملاحظات، يمكنك استخدام الاختصار <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>F</kbd> (أو <kbd>⌘ Cmd</kbd> + <kbd>⇧ Shift</kbd> + <kbd>F</kbd> على أنظمة ماك) للانتقال إلى *لوحة البحث عن الملاحظات*.
للبحث عن ملاحظات أو عن نص داخل الملاحظات، يمكنك استخدام الاختصار <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>F</kbd> (أو <kbd>⌘ Cmd</kbd> + <kbd>⇧ Shift</kbd> + <kbd>F</kbd> على أنظمة ماك) للانتقال إلى _لوحة البحث عن الملاحظات_.
توجد عدة طرق مختلفة للبحث عن الملاحظات:

View file

@ -92,7 +92,7 @@
- <kbd>Ctrl</kbd> + <kbd>+</kbd> يُزيد حجم خط نص الملاحظة بنقطة واحدة
- <kbd>Ctrl</kbd> + <kbd>-</kbd> يُنقص حجم خط نص الملاحظة بنقطة واحدة
- <kbd>Ctrl</kbd> + <kbd>0</kbd> يعيد تعيين حجم خط نص الملاحظة
- <kbd>Ctrl</kbd> + <kbd>Space</kbd> يحاول حل معادلات بسيطة مثل <code dir="ltr">(4+5)*3=</code> أمام المؤشر، أو يكمل النص تلقائيا، أو يفتح الرابط
- <kbd>Ctrl</kbd> + <kbd>Space</kbd> يحاول حل معادلات بسيطة مثل <code dir="ltr">(4+5)\*3=</code> أمام المؤشر، أو يكمل النص تلقائيا، أو يفتح الرابط
- <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>H</kbd> يصنع عنوانًا رئيسيًّا من اسم ملف الملاحظة ويضيفه في بدايتها
- <kbd>Alt</kbd> + <kbd>⇧ Shift</kbd> + <kbd>X</kbd> يقسم الملاحظة الحالية إلى ملاحظتين عند موضع المؤشر
- <kbd>Alt</kbd> + <kbd>⇧ Shift</kbd> + <kbd>W</kbd> يبحث في الويب عن النص المحدد
@ -114,7 +114,6 @@
- <kbd>Ctrl</kbd> + <kbd>I</kbd> يحفظ عنصر قائمة المهام الحالي ويضيفه إلى الملاحظة الحالية
- <kbd>Ctrl</kbd> + <kbd>R</kbd> يزيل عنصر قائمة المهام الحالي
## ماك أو إس
### في النافذة الرئيسية
@ -207,7 +206,7 @@
- <kbd>⌘ Cmd</kbd> + <kbd>+</kbd> يُزيد حجم خط نص الملاحظة بنقطة واحدة
- <kbd>⌘ Cmd</kbd> + <kbd>-</kbd> يُنقص حجم خط نص الملاحظة بنقطة واحدة
- <kbd>⌘ Cmd</kbd> + <kbd>0</kbd> يعيد تعيين حجم خط نص الملاحظة
- <kbd>⌘ Cmd</kbd> + <kbd>Space</kbd> يحاول حل معادلات بسيطة مثل <code dir="ltr">(4+5)*3=</code> أمام المؤشر، أو يكمل النص تلقائيا، أو يفتح الرابط
- <kbd>⌘ Cmd</kbd> + <kbd>Space</kbd> يحاول حل معادلات بسيطة مثل <code dir="ltr">(4+5)\*3=</code> أمام المؤشر، أو يكمل النص تلقائيا، أو يفتح الرابط
- <kbd>⌘ Cmd</kbd> + <kbd>⇧ Shift</kbd> + <kbd>H</kbd> يصنع عنوانًا رئيسيًّا من اسم ملف الملاحظة ويضيفه في بدايتها
- <kbd>⌃ Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>X</kbd> يقسم الملاحظة الحالية إلى ملاحظتين عند موضع المؤشر
- <kbd>⌃ Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>W</kbd> يبحث في الويب عن النص المحدد

View file

@ -7,14 +7,11 @@ tagline: تطبيق حر ومفتوح المصدر لتدوين الملاحظا
actionText: بداية سريعة ←
actionLink: getting-started/overview
features:
-
title: امتلك ملاحظاتك
- title: امتلك ملاحظاتك
details: يتم تخزين جميع الملاحظات كملفات نصية مجردة بصيغة ماركداون على حاسوبك؛ لا يوجد «تقيد ببائع». استخدم خدمات المزامنة مثل Nextcloud لمزامنة ملاحظاتك عبر الأجهزة.
-
title: خفيف الأثر
- title: خفيف الأثر
details: تطبيق أصيل، مُحسَّن لتحقيق أفضل سرعة تشغيل وأقل استهلاك للمعالج والذاكرة.
-
title: تخصيص
- title: تخصيص
details: قابل للتخصيص والبرمجة لدرجة كبيرة؛ يمكنك ضبط كيف تحب العمل مع ملاحظاتك.
footer: صنعه Patrizio Bekerle بكل حب ❤️
---

View file

@ -10,4 +10,3 @@
معلومة
ألقِ نظرة على القائمة لمعرفة جميع الطرق المختلفة لتثبيت QOwnNotes
:::

View file

@ -9,6 +9,7 @@
<span dir="rtl"># استعلم عن إصدارة لينكس الأخيرة عبر QOwnNotes API، وحلل JSON الناتج للحصول على الرابط، ونزّلها</span>
curl -L https://api.qownnotes.org/latest_releases/linux | jq .url | xargs curl -Lo QOwnNotes-x86_64.AppImage
```
:::
عندئذٍ يمكنك جعل الملف قابلا للتنفيذ:

View file

@ -33,7 +33,7 @@ wget http://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/
sudo pacman-key --lsign-key F2205FB121DF142B31450865A3BA514562A835DB
```
إذا فشل الأمر <code dir="ltr">sudo pacman-key --lsign-key F2205FB121DF142B31450865A3BA514562A835DB</code> برسالة تشبه:<br><code dir="ltr">ERROR: FFC43FC94539B8B0 could not be locally signed.</code><br> فحاول أن تجد أولا المُعرِّف *keyid* الفعلي الخاص بالمفتاح الذي تم تنزيله؛ أي بالأمر (والناتج):
إذا فشل الأمر <code dir="ltr">sudo pacman-key --lsign-key F2205FB121DF142B31450865A3BA514562A835DB</code> برسالة تشبه:<br><code dir="ltr">ERROR: FFC43FC94539B8B0 could not be locally signed.</code><br> فحاول أن تجد أولا المُعرِّف _keyid_ الفعلي الخاص بالمفتاح الذي تم تنزيله؛ أي بالأمر (والناتج):
```bash
gpg /path/to/downloaded/home_pbek_QOwnNotes_Arch_Extra.key

View file

@ -12,7 +12,7 @@ cd QOwnNotes
git submodule update --init
```
للتنقيح، من الأسهل استعمال QtCreator. عند تنزيل [Qt Creator](https://www.qt.io/download-qt-installer-oss)، ستحتاج كذلك إلى حزمة `qtwebsockets` لبناء QOwnNotes على Qt6. وإذا كنت تبني على ويندوز، ربما تفضل البقاء مع *MinGw 64-bit*. على لينكس، غالبا ستجد QtCreator في مستودعات توزيعتك.
للتنقيح، من الأسهل استعمال QtCreator. عند تنزيل [Qt Creator](https://www.qt.io/download-qt-installer-oss)، ستحتاج كذلك إلى حزمة `qtwebsockets` لبناء QOwnNotes على Qt6. وإذا كنت تبني على ويندوز، ربما تفضل البقاء مع _MinGw 64-bit_. على لينكس، غالبا ستجد QtCreator في مستودعات توزيعتك.
بعدئذٍ، افتح ملف المشروع `src/QOwnNotes.pro` وانقر على **Build** ثم **Build Project QOwnNotes**.

View file

@ -1,5 +1,5 @@
# التثبيت على CentOS Linux
يتعهد المجتمع حزمة لـ&nbsp;**CentOS السابعة والثامنة و&nbsp;AlmaLinux الثامنة و&nbsp;RockyLinux الثامنة** من *Jörg Woll* على [حزم QOwnNotes لـ&nbsp;x86_64 لـ&nbsp;el7](http://wilhelm949.spdns.org:10443/w3bservice/7/x86_64/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ&nbsp;ARM لـ&nbsp;el7](http://wilhelm949.spdns.org:10443/w3bservice/7/armhfp/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ&nbsp;x86_64 لـ&nbsp;el8](http://wilhelm949.spdns.org:10443/w3bservice/8/x86_64/w3bservice/Packages/repoview/qownnotes.html).
يتعهد المجتمع حزمة لـ&nbsp;**CentOS السابعة والثامنة و&nbsp;AlmaLinux الثامنة و&nbsp;RockyLinux الثامنة** من _Jörg Woll_ على [حزم QOwnNotes لـ&nbsp;x86_64 لـ&nbsp;el7](http://wilhelm949.spdns.org:10443/w3bservice/7/x86_64/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ&nbsp;ARM لـ&nbsp;el7](http://wilhelm949.spdns.org:10443/w3bservice/7/armhfp/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ&nbsp;x86_64 لـ&nbsp;el8](http://wilhelm949.spdns.org:10443/w3bservice/8/x86_64/w3bservice/Packages/repoview/qownnotes.html).
شكرا جزيلا لـ&nbsp;Jörg!

View file

@ -27,6 +27,7 @@ dnf install qownnotes
```bash
rpm --import http://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Fedora_40/repodata/repomd.xml.key
```
لاحظ أن "Fedora_40" في الأمر السابق يجب أن تغيّرها إلى ما يناسب نسخة توزيعتك (أي "Fedora_39" أو "Fedora_38" إلخ).
:::
@ -39,6 +40,7 @@ rpm --import http://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Fed
```bash
rpm --import http://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Fedora_40/repodata/repomd.xml.key
```
مجددا، لاحظ أن "Fedora_40" في الأمر السابق يجب أن تغيّرها إلى ما يناسب نسخة توزيعتك (أي "Fedora_39" أو "Fedora_38" إلخ).
ثم نفّذ الأوامر التالية في الطرفية بصلاحيات الجذر لإضافة المستودع وتثبيت QOwnNotes منه.
@ -64,7 +66,7 @@ dnf install qownnotes
### مشاكل مع مفاتيح GPG؟
التغيير في سياسات فيدورا الأمنية قد يعني أن مفاتيح المستودع «القديمة» (أي المنتهية) لا تُمدّ *آليًّا*. هذا قد يعرقل *ترقية* QOwnNotes.
التغيير في سياسات فيدورا الأمنية قد يعني أن مفاتيح المستودع «القديمة» (أي المنتهية) لا تُمدّ _آليًّا_. هذا قد يعرقل _ترقية_ QOwnNotes.
**التفصيل:** إذا واجهت مشكلة مع المفاتيح التالفة (أيْ أخطاء GPG) بسبب انتهاء المفتاح، مثل `certificate is not alive` أو `key is not alive` أو كليهما، فإن تنفيذ هذا الأمر في الطرفية سيحذف المفتاح المنتهي:
@ -74,4 +76,4 @@ sudo rpm -e $(rpm -q --qf "%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n" gpg-pubk
ستجد شرحًا مفصلًا لهذا الأمر في [نقاش على GitHub](https://github.com/pbek/QOwnNotes/issues/3008#issuecomment-2197827084) بخصوص هذه العلة نفسها.
ما إن تحذف المفتاح المنتهي، عليك أن *تستورد* يدويًّا المفتاح **الحالي** من جديد بالطريقة الموصوفة في أول هذا الشرح.
ما إن تحذف المفتاح المنتهي، عليك أن _تستورد_ يدويًّا المفتاح **الحالي** من جديد بالطريقة الموصوفة في أول هذا الشرح.

View file

@ -1,5 +1,5 @@
# التثبيت على FreeBSD
يتعهد المجتمع حزمة (أثرية ومتروكة) لـ&nbsp;**FreeBSD** من *Matthew Stobbs* على [QOwnNotes FreeBSD port](https://svnweb.freebsd.org/ports/head/deskutils/qownnotes).
يتعهد المجتمع حزمة (أثرية ومتروكة) لـ&nbsp;**FreeBSD** من _Matthew Stobbs_ على [QOwnNotes FreeBSD port](https://svnweb.freebsd.org/ports/head/deskutils/qownnotes).
شكرا جزيلا لـ&nbsp;Matthew!

View file

@ -14,6 +14,7 @@ To take the application out of the quarantine you can also run the following com
```bash
xattr -r -d com.apple.quarantine /Applications/QOwnNotes.app
```
:::
::: tip

View file

@ -4,7 +4,6 @@
<!-- <Content :page-key="getPageKey($site.pages, '/installation/ubuntu.md')" /> -->
## جميع نسخ أوبن سوزي
يمكنك تثبيت QOwnNotes باستخدام أداة [مثبت حزم OBS](https://github.com/openSUSE/opi).

View file

@ -33,5 +33,5 @@ Script {
إذا كنت بحاجة إلى الوصول إلى وظيفة معينة في QOwnNotes أو لديك أسئلة أو أفكار، فيرجى فتح مسألة على [صفحة مسائل QOwnNotes](https://github.com/pbek/QOwnNotes/issues).
::: tip
For logging, you can use the `script.log()` command to log to the *Log panel*, which you can turn on in the *Window / Panels* menu.
For logging, you can use the `script.log()` command to log to the _Log panel_, which you can turn on in the _Window / Panels_ menu.
:::

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