mirror of
https://github.com/pbek/QOwnNotes.git
synced 2025-06-28 12:59:52 +00:00
lint: format with treefmt
Signed-off-by: Patrizio Bekerle <patrizio@bekerle.com>
This commit is contained in:
parent
1f43a70622
commit
7aa2fb5297
474 changed files with 13885 additions and 11603 deletions
4
.github/FUNDING.yml
vendored
4
.github/FUNDING.yml
vendored
|
@ -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"]
|
||||
|
|
16
.github/ISSUE_TEMPLATE/bug_report.md
vendored
16
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -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
|
||||
|
|
8
.github/ISSUE_TEMPLATE/editor_schema.md
vendored
8
.github/ISSUE_TEMPLATE/editor_schema.md
vendored
|
@ -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. -->
|
||||
|
|
9
.github/ISSUE_TEMPLATE/feature_request.md
vendored
9
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -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
|
||||
|
|
6
.github/ISSUE_TEMPLATE/support.md
vendored
6
.github/ISSUE_TEMPLATE/support.md
vendored
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
9
.github/workflows/build-deploy-webpage.yml
vendored
9
.github/workflows/build-deploy-webpage.yml
vendored
|
@ -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:
|
||||
|
|
26
.github/workflows/build-nix.yml
vendored
26
.github/workflows/build-nix.yml
vendored
|
@ -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
|
||||
|
|
24
.github/workflows/build-release-next.yml
vendored
24
.github/workflows/build-release-next.yml
vendored
|
@ -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
|
||||
# #
|
||||
|
|
92
.github/workflows/build-release-qt6.yml
vendored
92
.github/workflows/build-release-qt6.yml
vendored
|
@ -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:
|
||||
|
|
104
.github/workflows/build-release.yml
vendored
104
.github/workflows/build-release.yml
vendored
|
@ -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
|
||||
|
|
68
.github/workflows/build-test.yml
vendored
68
.github/workflows/build-test.yml
vendored
|
@ -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
|
||||
|
|
13
.github/workflows/build-webpage.yml
vendored
13
.github/workflows/build-webpage.yml
vendored
|
@ -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
|
||||
|
|
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
|
@ -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 }}
|
||||
|
|
2081
CHANGELOG.md
2081
CHANGELOG.md
File diff suppressed because it is too large
Load diff
|
@ -29,7 +29,6 @@
|
|||
[](https://crowdin.com/project/qownnotes)
|
||||
[](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**.
|
||||
|
|
|
@ -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++
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
version: '3'
|
||||
version: "3"
|
||||
services:
|
||||
releaser:
|
||||
build: .
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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
|
||||
|
|
44
crowdin.yaml
44
crowdin.yaml
|
@ -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%"
|
||||
|
|
57
default.nix
57
default.nix
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
38
flake.nix
38
flake.nix
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
#!/bin/env bash
|
||||
#
|
||||
# A tool to run clang-format on the entire project
|
||||
#
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -20,7 +20,6 @@ fi
|
|||
echo "Previous year: $1"
|
||||
echo "New year: $2"
|
||||
|
||||
|
||||
echo
|
||||
echo Updating QOwnNotes...
|
||||
echo
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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...
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -119,4 +119,3 @@ main() {
|
|||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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: .
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -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 ]; }
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
@ -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;
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module.exports = {
|
||||
extend: '@vuepress/theme-default'
|
||||
}
|
||||
extend: "@vuepress/theme-default",
|
||||
};
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 | العربية |
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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) رمز عناصر القائمة البديل صالح أيضا
|
||||
```
|
||||
|
||||
|
|
|
@ -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 هكذا:
|
||||
|
||||
|
|
|
@ -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 && \
|
|||
|
||||

|
||||
|
||||
قبل أن تستخدم مدير القصاصات عليك تفعيل *خادم 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 -->
|
||||
|
|
|
@ -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/) مع خادمك
|
||||
|
||||
|
||||
## إضافة متصفح 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_ لتحريرها.
|
||||
:::
|
||||
|
||||
### آي أو إس
|
||||
|
|
|
@ -11,7 +11,7 @@ Note
|
|||
|
||||

|
||||
|
||||
٣) انظر حتى ينتهي إنشاء الحاوية وتبدأ في العمل. عندئذ يمكنك النقر على **6080** في الأعلى (انظر النقطة **2** في لقطات الشاشة). إذا واجهك خطأ، برجاء الانتظار قليلا ثم حاول النقر على *6080* من جديد؛ قد تحتاج بيئة سطح المكتب لبعض الوقت حتى تحمّل.
|
||||
٣) انظر حتى ينتهي إنشاء الحاوية وتبدأ في العمل. عندئذ يمكنك النقر على **6080** في الأعلى (انظر النقطة **2** في لقطات الشاشة). إذا واجهك خطأ، برجاء الانتظار قليلا ثم حاول النقر على _6080_ من جديد؛ قد تحتاج بيئة سطح المكتب لبعض الوقت حتى تحمّل.
|
||||
|
||||

|
||||
|
||||
|
@ -19,6 +19,6 @@ Note
|
|||
|
||||

|
||||
|
||||
٥) ستظهر شاشة تثبيت **QOwnNotes**، انقر خلالها واضغط *Finish* حتى ترى شاشة QOwnNotes الرئيسية.
|
||||
٥) ستظهر شاشة تثبيت **QOwnNotes**، انقر خلالها واضغط _Finish_ حتى ترى شاشة QOwnNotes الرئيسية.
|
||||
|
||||

|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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]: # "لن يظهر هذا التعليق في المعاينة"
|
||||
|
||||
<!-- تعليقات هتمل مخفية أيضا -->
|
||||
```
|
||||
|
|
|
@ -154,6 +154,7 @@
|
|||
[نظرة على مفاهيم QOwnNotes](concept.md)
|
||||
|
||||
## الخصائص
|
||||
|
||||
- يمكنك استخدام **ملفاتك الحالية، النصية أو التي بصيغة ماركداون**؛ لا تحتاج إلى استيرادها
|
||||
- QOwnNotes مكتوب بلغة سي++ ومحسَّن **لتقليل استهلاك الموارد** (ليس تطبيق Electron متعطش للذاكرة والمعالج)
|
||||
- **استيراد من Evernote و Joplin**
|
||||
|
@ -176,8 +177,8 @@
|
|||
- **وضع Vim**
|
||||
- **[تطبيق ويب](web-app.md)** ليمكنك **إضافة صور من محمولك** إلى الملاحظة الحالية في QOwnNotes على حاسوبك
|
||||
|
||||
|
||||
## المظهر
|
||||
|
||||
- **تلوين ماركداون** للملاحظات **ووضع معاينة لماركداون**
|
||||
- **دعم سِمة الوضع المظلم**
|
||||
- **دعم السمات** في **تلوين ماركداون**
|
||||
|
@ -188,6 +189,7 @@
|
|||
- **الفروقات** بين الملاحظة الحالية والملاحظة المعدّلة خارج التطبيق **تظهر** في صندوق حوار
|
||||
|
||||
## اللغات
|
||||
|
||||
- **متاح بأكثر من ٦٠ لغة مختلفة** مثل العربية والإنجليزية والفرنسية والألمانية والإسبانية والبولندية والصينية واليابانية والروسية والبرتغالية والمجرية والهولندية
|
||||
- [مساعدتك](../contributing/translation.md) مرحب بها جدا لتحسين هذه الترجمات أو لترجمة QOwnNotes إلى لغات أخرى
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
# QOwnNotesAPI Nextcloud App
|
||||
|
||||
|
||||

|
||||
|
||||
يتيح [**QOwnNotesAPI**](https://github.com/pbek/qownnotesapi) لك **الوصول** إلى **الملاحظات المهملة** و**نسخ الملاحظات**.
|
||||
|
|
|
@ -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> على أنظمة ماك) للانتقال إلى _لوحة البحث عن الملاحظات_.
|
||||
|
||||
توجد عدة طرق مختلفة للبحث عن الملاحظات:
|
||||
|
||||
|
|
|
@ -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> يبحث في الويب عن النص المحدد
|
||||
|
|
|
@ -7,14 +7,11 @@ tagline: تطبيق حر ومفتوح المصدر لتدوين الملاحظا
|
|||
actionText: بداية سريعة ←
|
||||
actionLink: getting-started/overview
|
||||
features:
|
||||
-
|
||||
title: امتلك ملاحظاتك
|
||||
- title: امتلك ملاحظاتك
|
||||
details: يتم تخزين جميع الملاحظات كملفات نصية مجردة بصيغة ماركداون على حاسوبك؛ لا يوجد «تقيد ببائع». استخدم خدمات المزامنة مثل Nextcloud لمزامنة ملاحظاتك عبر الأجهزة.
|
||||
-
|
||||
title: خفيف الأثر
|
||||
- title: خفيف الأثر
|
||||
details: تطبيق أصيل، مُحسَّن لتحقيق أفضل سرعة تشغيل وأقل استهلاك للمعالج والذاكرة.
|
||||
-
|
||||
title: تخصيص
|
||||
- title: تخصيص
|
||||
details: قابل للتخصيص والبرمجة لدرجة كبيرة؛ يمكنك ضبط كيف تحب العمل مع ملاحظاتك.
|
||||
footer: صنعه Patrizio Bekerle بكل حب ❤️
|
||||
---
|
||||
|
|
|
@ -10,4 +10,3 @@
|
|||
معلومة
|
||||
ألقِ نظرة على القائمة لمعرفة جميع الطرق المختلفة لتثبيت QOwnNotes
|
||||
:::
|
||||
|
||||
|
|
|
@ -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
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
عندئذٍ يمكنك جعل الملف قابلا للتنفيذ:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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**.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# التثبيت على CentOS Linux
|
||||
|
||||
يتعهد المجتمع حزمة لـ **CentOS السابعة والثامنة و AlmaLinux الثامنة و RockyLinux الثامنة** من *Jörg Woll* على [حزم QOwnNotes لـ x86_64 لـ el7](http://wilhelm949.spdns.org:10443/w3bservice/7/x86_64/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ ARM لـ el7](http://wilhelm949.spdns.org:10443/w3bservice/7/armhfp/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ x86_64 لـ el8](http://wilhelm949.spdns.org:10443/w3bservice/8/x86_64/w3bservice/Packages/repoview/qownnotes.html).
|
||||
يتعهد المجتمع حزمة لـ **CentOS السابعة والثامنة و AlmaLinux الثامنة و RockyLinux الثامنة** من _Jörg Woll_ على [حزم QOwnNotes لـ x86_64 لـ el7](http://wilhelm949.spdns.org:10443/w3bservice/7/x86_64/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ ARM لـ el7](http://wilhelm949.spdns.org:10443/w3bservice/7/armhfp/w3bservice/Packages/repoview/qownnotes.html)، و[حزم QOwnNotes لـ x86_64 لـ el8](http://wilhelm949.spdns.org:10443/w3bservice/8/x86_64/w3bservice/Packages/repoview/qownnotes.html).
|
||||
|
||||
شكرا جزيلا لـ Jörg!
|
||||
|
|
|
@ -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) بخصوص هذه العلة نفسها.
|
||||
|
||||
ما إن تحذف المفتاح المنتهي، عليك أن *تستورد* يدويًّا المفتاح **الحالي** من جديد بالطريقة الموصوفة في أول هذا الشرح.
|
||||
ما إن تحذف المفتاح المنتهي، عليك أن _تستورد_ يدويًّا المفتاح **الحالي** من جديد بالطريقة الموصوفة في أول هذا الشرح.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# التثبيت على FreeBSD
|
||||
|
||||
يتعهد المجتمع حزمة (أثرية ومتروكة) لـ **FreeBSD** من *Matthew Stobbs* على [QOwnNotes FreeBSD port](https://svnweb.freebsd.org/ports/head/deskutils/qownnotes).
|
||||
يتعهد المجتمع حزمة (أثرية ومتروكة) لـ **FreeBSD** من _Matthew Stobbs_ على [QOwnNotes FreeBSD port](https://svnweb.freebsd.org/ports/head/deskutils/qownnotes).
|
||||
|
||||
شكرا جزيلا لـ Matthew!
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
<!-- <Content :page-key="getPageKey($site.pages, '/installation/ubuntu.md')" /> -->
|
||||
|
||||
|
||||
## جميع نسخ أوبن سوزي
|
||||
|
||||
يمكنك تثبيت QOwnNotes باستخدام أداة [مثبت حزم OBS](https://github.com/openSUSE/opi).
|
||||
|
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue