lint: format with treefmt

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

4
.github/FUNDING.yml vendored
View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

View file

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

View file

@ -1,14 +1,14 @@
name: Build and Deploy Webpage
on:
push:
branches: [ main ]
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-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,30 +17,29 @@ defaults:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# copy screenshots and changelog to webpage folder
- run: cp ../screenshots src/.vuepress/public -R; cp ../CHANGELOG.md src/changelog.md
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v6
with:
push: true
#path: ./webpage
context: ./webpage
file: ./webpage/Dockerfile
tags: pbeke/qownnotes-webpage:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
- uses: actions/checkout@v4
# copy screenshots and changelog to webpage folder
- run: cp ../screenshots src/.vuepress/public -R; cp ../CHANGELOG.md src/changelog.md
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v6
with:
push: true
#path: ./webpage
context: ./webpage
file: ./webpage/Dockerfile
tags: pbeke/qownnotes-webpage:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

View file

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

View file

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

View file

@ -3,21 +3,21 @@ name: Build release of QOwnNotes Qt6
on:
push:
branches:
# - release
# - release
# 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,9 +41,9 @@ env:
jobs:
create_release:
name: '🗃️️ Prepare release'
name: "🗃️️ Prepare release"
permissions:
contents: write # for actions/create-release to create a release
contents: write # for actions/create-release to create a release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
@ -68,21 +68,21 @@ jobs:
echo "TAG=${TAG}"
echo "RELEASE_TEXT=${RELEASE_TEXT}"
printenv
# - name: Create release
# id: create_release
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# tag_name: ${{ env.TAG }}
# release_name: Release v${{ env.VERSION }}
# body: ${{ env.RELEASE_TEXT }}
# draft: true
# prerelease: false
# - name: Create release
# id: create_release
# uses: actions/create-release@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# tag_name: ${{ env.TAG }}
# release_name: Release v${{ env.VERSION }}
# body: ${{ env.RELEASE_TEXT }}
# draft: true
# prerelease: false
#--------------------------------------------------------------------------------
# Workflow jobs (GNU/Linux, macOS & Windows)
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
# Workflow jobs (GNU/Linux, macOS & Windows)
#--------------------------------------------------------------------------------
#
# AppImage build
@ -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,34 +147,34 @@ 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
# - name: '📤 Release AppImage for Linux'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ./src/QOwnNotes-x86_64.AppImage
# asset_name: QOwnNotes-x86_64.AppImage
# asset_content_type: application/vnd.appimage
# - name: '📤 Release AppImage sha256sum'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ./src/QOwnNotes-x86_64.AppImage.sha256sum
# asset_name: QOwnNotes-x86_64.AppImage.sha256sum
# asset_content_type: text/plain
# - name: '📤 Release AppImage for Linux'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ./src/QOwnNotes-x86_64.AppImage
# asset_name: QOwnNotes-x86_64.AppImage
# asset_content_type: application/vnd.appimage
# - name: '📤 Release AppImage sha256sum'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ./src/QOwnNotes-x86_64.AppImage.sha256sum
# asset_name: QOwnNotes-x86_64.AppImage.sha256sum
# asset_content_type: text/plain
#
# Snap build
@ -186,66 +185,65 @@ 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
with:
path: build-systems/github/snap.qt6
# - name: Release Snap for Linux
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ./qownnotes_${{ env.VERSION }}_amd64.snap
# asset_name: QOwnNotes-amd64.snap
# asset_content_type: application/octet-stream
# - name: Release Snap for Linux
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: ./qownnotes_${{ env.VERSION }}_amd64.snap
# asset_name: QOwnNotes-amd64.snap
# asset_content_type: application/octet-stream
# - shell: bash
# run: |
# snapcraft --version
# cd .. && pwd
# - name: Deploy Snap
# uses: snapcore/action-publish@v1
# continue-on-error: true
# env:
# # `snapcraft export-login --snaps=qownnotes --acls package_access,package_push,package_update,package_release -`, token valid for one year
# SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_TOKEN_GH }}
# with:
# snap: /home/runner/work/QOwnNotes/QOwnNotes/qownnotes_${{ env.VERSION }}_amd64.snap
# release: stable
# - shell: bash
# run: |
# snapcraft --version
# cd .. && pwd
# - name: Deploy Snap
# uses: snapcore/action-publish@v1
# continue-on-error: true
# env:
# # `snapcraft export-login --snaps=qownnotes --acls package_access,package_push,package_update,package_release -`, token valid for one year
# SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_TOKEN_GH }}
# with:
# 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,56 +287,55 @@ 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
path: QOwnNotes.zip.sha256sum
# - name: '📤 Release ZIP'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: QOwnNotes.zip
# asset_name: QOwnNotes.zip
# asset_content_type: application/zip
# - name: '📤 Release sha256 sum'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: QOwnNotes.zip.sha256
# asset_name: QOwnNotes.zip.sha256
# asset_content_type: text/plain
# - name: '📤 Release ZIP'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: QOwnNotes.zip
# asset_name: QOwnNotes.zip
# asset_content_type: application/zip
# - name: '📤 Release sha256 sum'
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# with:
# upload_url: ${{ needs.create_release.outputs.upload_url }}
# asset_path: QOwnNotes.zip.sha256
# asset_name: QOwnNotes.zip.sha256
# asset_content_type: text/plain
#
# macOS build
#
build-macos:
name: '🍎 macOS Monterey'
name: "🍎 macOS Monterey"
needs: create_release
runs-on: macos-latest
env:
@ -347,34 +343,33 @@ jobs:
QT_VERSION: 6.4.2
continue-on-error: true
steps:
- name: '🧰 Checkout'
- name: "🧰 Checkout"
uses: actions/checkout@v4
with:
submodules: recursive
# https://download.qt.io/online/qtsdkrepository/mac_x64/desktop/
- name: '⚙️ Install Qt'
- name: "⚙️ Install Qt"
uses: jurplel/install-qt-action@v4
with:
version: ${{env.QT_VERSION}}
modules: ${{env.QT_MODULES}}
aqtversion: '==2.0.0'
aqtversion: "==2.0.0"
cache: true
- name: '⚙️ Set Env'
- name: "⚙️ Set Env"
shell: bash
run: |
export VERSION=$(cat version.h | sed 's/[^0-9,.]//g')
echo "VERSION=${VERSION}" >> $GITHUB_ENV
- name: '⚙️ Printenv'
- name: "⚙️ Printenv"
shell: bash
run: |
echo "VERSION=${VERSION}"
printenv
- name: '🚧 Compile application'
- name: "🚧 Compile application"
run: |
echo "#define RELEASE \"GitHub Actions\"" > release.h
lrelease QOwnNotes.pro
@ -383,12 +378,11 @@ jobs:
make -j ${{env.CORES}}
../build-systems/github/macos/create-dmg-qt6.sh
- name: '📤 Upload artifact: macOS'
- name: "📤 Upload artifact: macOS"
uses: actions/upload-artifact@v4
with:
name: QOwnNotes.dmg
path: src/QOwnNotes.dmg
# - name: '📤 Release DMG'
# uses: actions/upload-release-asset@v1
# env:

View file

@ -6,7 +6,7 @@ on:
branches:
- release
tags-ignore:
- '*'
- "*"
defaults:
run:
@ -30,9 +30,9 @@ env:
jobs:
create_release:
name: '🗃️️ Prepare release'
name: "🗃️️ Prepare release"
permissions:
contents: write # for actions/create-release to create a release
contents: write # for actions/create-release to create a release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
@ -70,9 +70,9 @@ jobs:
draft: false
prerelease: false
#--------------------------------------------------------------------------------
# Workflow jobs (GNU/Linux, macOS & Windows)
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
# Workflow jobs (GNU/Linux, macOS & Windows)
#--------------------------------------------------------------------------------
#
# AppImage build
@ -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
@ -136,17 +135,17 @@ jobs:
find -iname "*.AppImage"
pwd
# - name: '📤 Upload artifact: AppImage'
# uses: actions/upload-artifact@v3
# with:
# name: ${{env.EXECUTABLE}}-x86_64.AppImage
# path: src/${{env.EXECUTABLE}}-x86_64.AppImage
# - name: '📤 Upload artifact: AppImage sha256sum'
# uses: actions/upload-artifact@v3
# with:
# name: ${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
# path: src/${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
- name: '📤 Release AppImage for Linux'
# - name: '📤 Upload artifact: AppImage'
# uses: actions/upload-artifact@v3
# with:
# name: ${{env.EXECUTABLE}}-x86_64.AppImage
# path: src/${{env.EXECUTABLE}}-x86_64.AppImage
# - name: '📤 Upload artifact: AppImage sha256sum'
# uses: actions/upload-artifact@v3
# with:
# name: ${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
# path: src/${{env.EXECUTABLE}}-x86_64.AppImage.sha256sum
- 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:
@ -307,17 +304,17 @@ jobs:
snap: /home/runner/work/QOwnNotes/QOwnNotes/qownnotes_${{ env.VERSION }}_amd64.snap
release: stable
# - name: '📤 Upload artifact: Snap'
# uses: actions/upload-artifact@v3
# with:
# name: qownnotes_${{ env.VERSION }}_amd64.snap
# path: /home/runner/work/QOwnNotes/QOwnNotes/qownnotes_${{ env.VERSION }}_amd64.snap
# - name: '📤 Upload artifact: Snap'
# uses: actions/upload-artifact@v3
# with:
# name: qownnotes_${{ env.VERSION }}_amd64.snap
# path: /home/runner/work/QOwnNotes/QOwnNotes/qownnotes_${{ env.VERSION }}_amd64.snap
#
# 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,33 +338,33 @@ 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'
# uses: actions/upload-artifact@v3
# with:
# name: QOwnNotes.zip
# path: QOwnNotes.zip
# - name: '📤 Upload artifact: Windows sha256sum'
# uses: actions/upload-artifact@v3
# with:
# name: QOwnNotes.zip.sha256
# path: QOwnNotes.zip.sha256
# - name: '📤 Upload artifact: Windows'
# uses: actions/upload-artifact@v3
# with:
# name: QOwnNotes.zip
# path: QOwnNotes.zip
# - name: '📤 Upload artifact: Windows sha256sum'
# uses: actions/upload-artifact@v3
# with:
# 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
@ -446,13 +439,13 @@ jobs:
make -j ${{env.CORES}}
../build-systems/github/macos/create-dmg.sh
# - name: '📤 Upload artifact: macOS'
# uses: actions/upload-artifact@v3
# with:
# name: QOwnNotes.dmg
# path: src/QOwnNotes.dmg
# - name: '📤 Upload artifact: macOS'
# uses: actions/upload-artifact@v3
# with:
# name: QOwnNotes.dmg
# path: src/QOwnNotes.dmg
- name: '📤 Release DMG'
- name: "📤 Release DMG"
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@ -461,7 +454,6 @@ jobs:
asset_path: src/QOwnNotes.dmg
asset_name: QOwnNotes.dmg
asset_content_type: application/x-apple-diskimage
# publish_release:
# name: 📣 Publish release
# runs-on: ubuntu-latest

View file

@ -5,20 +5,20 @@ on:
branches-ignore:
- release
tags-ignore:
- '*'
- "*"
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-paths
# if [[ ${changed_file} = src* ]] || [[ ${changed_file} = tests* ]] || [[ ${changed_file} = build-systems/github/* ]] || [[ ${changed_file} = ".github/workflows/build-test.yml" ]] ;
paths:
- 'src/**'
- 'snap/**'
- 'tests/**'
- 'build-systems/github/**'
- '.github/workflows/build-test.yml'
- "src/**"
- "snap/**"
- "tests/**"
- "build-systems/github/**"
- ".github/workflows/build-test.yml"
pull_request:
paths:
- 'src/**'
- 'snap/**'
- 'tests/**'
- "src/**"
- "snap/**"
- "tests/**"
workflow_dispatch:
# schedule:
# - cron: "0 0 */3 * *"
@ -41,235 +41,245 @@ 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'
# experimental: false
# - os: windows-2019
# qt-version: '6.6.3'
# experimental: false
# 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
# qt-version: '5.13.2'
# win64_mingw73 not found
# - os: windows-2019
# qt-version: '5.15.0'
# # qt.conf not found (https://github.com/jurplel/install-qt-action/issues/54)
# - os: windows-2019
# qt-version: '5.15.1'
# botan 32bit error
# - os: windows-2019
# qt-version: '5.13.2'
# win64_mingw73 not found
# - os: windows-2019
# qt-version: '5.15.0'
# # qt.conf not found (https://github.com/jurplel/install-qt-action/issues/54)
# - os: windows-2019
# qt-version: '5.15.1'
# botan 32bit error
include:
# - os: ubuntu-latest
# qt-version: '6.3.0'
# experimental: true
# - os: macos-latest
# qt-version: '6.3.0'
# experimental: true
# - os: ubuntu-latest
# qt-version: '6.3.0'
# experimental: true
# - os: macos-latest
# qt-version: '6.3.0'
# experimental: true
# Other 6.2 releases didn't work
# - os: windows-2019
# qt-version: '6.2.4'
# experimental: true
# - os: windows-2019
# qt-version: '6.4.3'
# experimental: true
# - os: windows-2019
# qt-version: '6.5.3'
# experimental: true
# - os: windows-2019
# qt-version: '6.6.3'
# experimental: true
# - os: windows-2019
# qt-version: '6.2.4'
# experimental: true
# - os: windows-2019
# qt-version: '6.4.3'
# experimental: true
# - os: windows-2019
# qt-version: '6.5.3'
# experimental: true
# - os: windows-2019
# qt-version: '6.6.3'
# experimental: true
# 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
with:
submodules: true
- uses: actions/checkout@v4
with:
submodules: true
#
# Install Qt
#
#
# Install Qt
#
# https://github.com/jurplel/install-qt-action
- if: contains( matrix.os, 'windows') && ( matrix.qt-version == '5.9.9' )
name: Install Qt 5.9 on Windows
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt-version }}
arch: win32_mingw53
cache: true
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
with:
version: ${{ matrix.qt-version }}
arch: win64_mingw73
cache: true
- if: contains( matrix.os, 'windows') && matrix.qt-version == '5.15.2'
name: Install Qt 5.15.2 on Windows
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.0'
version: ${{ matrix.qt-version }}
arch: win64_mingw81
cache: true
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
name: Install Qt 6 on Windows
uses: jurplel/install-qt-action@v4
with:
aqtversion: '==2.0.*'
version: ${{ matrix.qt-version }}
modules: ${{env.QT_MODULES}}
cache: true
- if: false == contains( matrix.os, 'windows') && false == startsWith( matrix.qt-version, '6.' )
name: Install Qt < 6 on Linux/macOS
uses: jurplel/install-qt-action@v4
with:
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'
version: ${{ matrix.qt-version }}
modules: ${{env.QT_MODULES}}
cache: true
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
name: Make sure MSVC is found on Windows for Qt 6
uses: ilammy/msvc-dev-cmd@v1
# https://github.com/jurplel/install-qt-action
- if: contains( matrix.os, 'windows') && ( matrix.qt-version == '5.9.9' )
name: Install Qt 5.9 on Windows
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt-version }}
arch: win32_mingw53
cache: true
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
with:
version: ${{ matrix.qt-version }}
arch: win64_mingw73
cache: true
- if: contains( matrix.os, 'windows') && matrix.qt-version == '5.15.2'
name: Install Qt 5.15.2 on Windows
uses: jurplel/install-qt-action@v4
with:
aqtversion: "==2.0.0"
version: ${{ matrix.qt-version }}
arch: win64_mingw81
cache: true
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
name: Install Qt 6 on Windows
uses: jurplel/install-qt-action@v4
with:
aqtversion: "==2.0.*"
version: ${{ matrix.qt-version }}
modules: ${{env.QT_MODULES}}
cache: true
- if: false == contains( matrix.os, 'windows') && false == startsWith( matrix.qt-version, '6.' )
name: Install Qt < 6 on Linux/macOS
uses: jurplel/install-qt-action@v4
with:
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"
version: ${{ matrix.qt-version }}
modules: ${{env.QT_MODULES}}
cache: true
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
name: Make sure MSVC is found on Windows for Qt 6
uses: ilammy/msvc-dev-cmd@v1
#
# Do tests
#
#
# Do tests
#
- if: contains( matrix.os, 'ubuntu-latest')
name: Do Linux tests
run: |
cd ../tests && qmake CONFIG+=debug CONFIG+=DEV_MODE DEFINES+=INTEGRATION_TESTS && make -s -j 8
../bin/tests/tests -platform minimal -txt
# 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
- if: contains( matrix.os, 'macos')
name: Do macOS tests
run: |
cd ../tests && qmake CONFIG+=debug CONFIG+=DEV_MODE DEFINES+=INTEGRATION_TESTS -early QMAKE_DEFAULT_LIBDIRS=$(xcrun -show-sdk-path)/usr/lib && make -s -j 8
../bin/tests/tests.app/Contents/MacOS/tests -platform minimal -txt
# - if: contains( matrix.os, 'windows') && (startsWith( matrix.qt-version, '5.' ) || matrix.qt-version == '6.2.4')
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '5.' )
name: Do Qt5 / Qt 6.2.4 Windows tests
run: |
cd ..\tests
qmake DEFINES+=INTEGRATION_TESTS
make
copy ..\build-systems\github\windows\libcrypto-1_1-x64.dll .
copy ..\build-systems\github\windows\libssl-1_1-x64.dll .
Get-ChildItem -Recurse -Force ..
copy ..\bin\tests\tests.exe .
# echo set
# gci env:* | sort-object name
# echo path
# echo echo $env:PATH
# cd ..\bin\tests
# echo test1
# .\tests.exe -txt
# echo windeployqt
windeployqt --debug tests.exe
# echo test2
.\tests.exe -txt
# - if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
# name: Do Qt 6.3+ Windows tests
# run: |
# cd ..\tests
# qmake6 DEFINES+=INTEGRATION_TESTS
# nmake
# copy ..\build-systems\github\windows\libcrypto-1_1-x64.dll .
# copy ..\build-systems\github\windows\libssl-1_1-x64.dll .
# copy ..\bin\tests\tests.exe .
# windeployqt --debug tests.exe
# .\tests.exe -txt
- if: contains( matrix.os, 'ubuntu-latest')
name: Do Linux tests
run: |
cd ../tests && qmake CONFIG+=debug CONFIG+=DEV_MODE DEFINES+=INTEGRATION_TESTS && make -s -j 8
../bin/tests/tests -platform minimal -txt
# 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
- if: contains( matrix.os, 'macos')
name: Do macOS tests
run: |
cd ../tests && qmake CONFIG+=debug CONFIG+=DEV_MODE DEFINES+=INTEGRATION_TESTS -early QMAKE_DEFAULT_LIBDIRS=$(xcrun -show-sdk-path)/usr/lib && make -s -j 8
../bin/tests/tests.app/Contents/MacOS/tests -platform minimal -txt
# - if: contains( matrix.os, 'windows') && (startsWith( matrix.qt-version, '5.' ) || matrix.qt-version == '6.2.4')
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '5.' )
name: Do Qt5 / Qt 6.2.4 Windows tests
run: |
cd ..\tests
qmake DEFINES+=INTEGRATION_TESTS
make
copy ..\build-systems\github\windows\libcrypto-1_1-x64.dll .
copy ..\build-systems\github\windows\libssl-1_1-x64.dll .
Get-ChildItem -Recurse -Force ..
copy ..\bin\tests\tests.exe .
# echo set
# gci env:* | sort-object name
# echo path
# echo echo $env:PATH
# cd ..\bin\tests
# echo test1
# .\tests.exe -txt
# echo windeployqt
windeployqt --debug tests.exe
# echo test2
.\tests.exe -txt
# - if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
# name: Do Qt 6.3+ Windows tests
# run: |
# cd ..\tests
# qmake6 DEFINES+=INTEGRATION_TESTS
# nmake
# copy ..\build-systems\github\windows\libcrypto-1_1-x64.dll .
# copy ..\build-systems\github\windows\libssl-1_1-x64.dll .
# copy ..\bin\tests\tests.exe .
# windeployqt --debug tests.exe
# .\tests.exe -txt
#
# Build QOwnNotes
#
- if: true && !(contains( matrix.os, 'windows') && (matrix.qt-version == '5.15.2' || startsWith( matrix.qt-version, '6.' ))) && !contains( matrix.os, 'ubuntu-22') && !contains( matrix.os, 'macos')
name: Build QOwnNotes
run: |
lrelease QOwnNotes.pro && qmake CONFIG+=debug CONFIG+=DEV_MODE && make -j 8
# 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
- if: contains( matrix.os, 'macos')
name: Build QOwnNotes for macOS with qmake fix
run: |
lrelease QOwnNotes.pro && qmake CONFIG+=debug CONFIG+=DEV_MODE -early QMAKE_DEFAULT_LIBDIRS=$(xcrun -show-sdk-path)/usr/lib && make -j 8
../build-systems/github/macos/create-dmg.sh
- if: contains( matrix.os, 'ubuntu-22') && ( matrix.qt-version == '5.15.2' )
name: Build for Snapcraft
uses: snapcore/action-build@v1
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
name: Build QOwnNotes for Windows with Qt 6
run: |
qmake6 CONFIG+=debug QOwnNotes.pro CONFIG+=DEV_MODE
nmake
- if: true && !(contains( matrix.os, 'windows') && (matrix.qt-version == '5.15.2' || startsWith( matrix.qt-version, '6.' ))) && !contains( matrix.os, 'ubuntu-22') && !contains( matrix.os, 'macos')
name: Build QOwnNotes
run: |
lrelease QOwnNotes.pro && qmake CONFIG+=debug CONFIG+=DEV_MODE && make -j 8
# 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
- if: contains( matrix.os, 'macos')
name: Build QOwnNotes for macOS with qmake fix
run: |
lrelease QOwnNotes.pro && qmake CONFIG+=debug CONFIG+=DEV_MODE -early QMAKE_DEFAULT_LIBDIRS=$(xcrun -show-sdk-path)/usr/lib && make -j 8
../build-systems/github/macos/create-dmg.sh
- if: contains( matrix.os, 'ubuntu-22') && ( matrix.qt-version == '5.15.2' )
name: Build for Snapcraft
uses: snapcore/action-build@v1
- if: contains( matrix.os, 'windows') && startsWith( matrix.qt-version, '6.' )
name: Build QOwnNotes for Windows with Qt 6
run: |
qmake6 CONFIG+=debug QOwnNotes.pro CONFIG+=DEV_MODE
nmake
#
# Build QOwnNotes Windows Release and store it as artifact
#
#
# Build QOwnNotes Windows Release and store it as artifact
#
- if: contains( matrix.os, 'windows') && ( matrix.qt-version == '5.15.2' )
name: Build QOwnNotes Windows Release
run: '& ..\build-systems\github\windows\build-zip.ps1'
- if: contains( matrix.os, 'windows') && ( matrix.qt-version == '5.15.2' )
uses: actions/upload-artifact@v4
with:
name: QOwnNotes-Windows
path: QOwnNotes.zip
- if: contains( matrix.os, 'windows') && ( matrix.qt-version == '5.15.2' )
name: Build QOwnNotes Windows Release
run: '& ..\build-systems\github\windows\build-zip.ps1'
- if: contains( matrix.os, 'windows') && ( matrix.qt-version == '5.15.2' )
uses: actions/upload-artifact@v4
with:
name: QOwnNotes-Windows
path: QOwnNotes.zip

View file

@ -1,19 +1,19 @@
name: Build Webpage
on:
push:
branches: [ main ]
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:
- '.github/workflows/build-webpage.yml'
- ".github/workflows/build-webpage.yml"
pull_request:
branches: [ main ]
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,18 +21,17 @@ defaults:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- id: files
uses: masesgroup/retrieve-changed-files@v3
with:
format: 'csv'
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npm run build
- uses: actions/checkout@v4
- id: files
uses: masesgroup/retrieve-changed-files@v3
with:
format: "csv"
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm install
- run: npm run build

View file

@ -10,8 +10,8 @@ permissions:
jobs:
close-issues:
permissions:
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
runs-on: ubuntu-latest
steps:
# https://github.com/marketplace/actions/close-stale-issues
@ -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 }}

View file

@ -11,14 +11,14 @@
#
before_script:
- PATH="/Applications/Qt/5.4/clang_64/bin:$PATH"
- QTDIR="/Applications/Qt/5.4/clang_64"
- cd src
# http://doc.gitlab.com/ci/variables/README.html
- echo "#define BUILD ""$CI_BUILD_ID" > build_number.h
- qmake -project
- qmake QOwnNotes.pro -r -spec macx-clang CONFIG+=x86_64
- make
- PATH="/Applications/Qt/5.4/clang_64/bin:$PATH"
- QTDIR="/Applications/Qt/5.4/clang_64"
- cd src
# http://doc.gitlab.com/ci/variables/README.html
- echo "#define BUILD ""$CI_BUILD_ID" > build_number.h
- qmake -project
- qmake QOwnNotes.pro -r -spec macx-clang CONFIG+=x86_64
- make
build_job:
type: build

View file

@ -9,4 +9,4 @@ formats: all
python:
version: 3.7
install:
- requirements: docs/requirements.txt
- requirements: docs/requirements.txt

View file

@ -76,15 +76,15 @@ script:
- cd ./tests
- qmake DEFINES+=INTEGRATION_TESTS CONFIG+=ccache && make -s -j 2
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
if [ "${TRAVIS_BRANCH}" != "release" ]; then
./../bin/tests/tests -platform minimal -txt
&& ../travis/linux/coveralls.sh
;
fi
;
if [ "${TRAVIS_BRANCH}" != "release" ]; then
./../bin/tests/tests -platform minimal -txt
&& ../travis/linux/coveralls.sh
;
fi
;
else
./../bin/tests/tests.app/Contents/MacOS/tests -platform minimal -txt
;
./../bin/tests/tests.app/Contents/MacOS/tests -platform minimal -txt
;
fi
- cd ./../src
- echo "#define BUILD ""$TRAVIS_BUILD_NUMBER" > build_number.h
@ -123,50 +123,50 @@ before_deploy:
- git config --global user.email "builds@travis-ci.com"
- git config --global user.name "Travis CI"
- if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
if [ "${TRAVIS_BRANCH}" == "release" ]; then
export GIT_TAG=linux-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
else
export GIT_TAG=dev-linux-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
fi
;
if [ "${TRAVIS_BRANCH}" == "release" ]; then
export GIT_TAG=linux-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
else
if [ "${TRAVIS_BRANCH}" == "release" ]; then
export GIT_TAG=macosx-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
else
export GIT_TAG=dev-macosx-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
fi
;
export GIT_TAG=dev-linux-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
fi
;
else
if [ "${TRAVIS_BRANCH}" == "release" ]; then
export GIT_TAG=macosx-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
else
export GIT_TAG=dev-macosx-b$TRAVIS_BUILD_NUMBER-$TIME_STRING
;
fi
;
fi
- git tag $GIT_TAG -a -m "Generated tag from TravisCI for build $TRAVIS_BUILD_NUMBER"
- git push -q https://$TAGPERM@github.com/pbek/QOwnNotes --tags >/dev/null 2>&1
deploy:
# Linux release release
# Linux release release
- provider: releases
api_key:
secure: DaUepv9X3aPy91r8FBCyA0yUEQ0CNYQyA5EzlXsvLWsTi7XjscWZXCkv2BoFxk+MXvsCweaS6/qRbIn8/cW1TFLo6ZAbHjucnmjtSZn9wr9j3SEV7fM6jpAc6XBMMHtgjCaKZMpvH1R2Ed6O3DNr7L0//zB/PDhQx+rDeDre1kA=
secure: DaUepv9X3aPy91r8FBCyA0yUEQ0CNYQyA5EzlXsvLWsTi7XjscWZXCkv2BoFxk+MXvsCweaS6/qRbIn8/cW1TFLo6ZAbHjucnmjtSZn9wr9j3SEV7fM6jpAc6XBMMHtgjCaKZMpvH1R2Ed6O3DNr7L0//zB/PDhQx+rDeDre1kA=
file: QOwnNotes-$VERSION_NUMBER.deb
skip_cleanup: true
on:
repo: pbek/QOwnNotes
branch: release
tags: false
condition: $CONFIG = release && ${TRAVIS_OS_NAME} = linux
repo: pbek/QOwnNotes
branch: release
tags: false
condition: $CONFIG = release && ${TRAVIS_OS_NAME} = linux
# macOS release release
- provider: releases
api_key:
secure: DaUepv9X3aPy91r8FBCyA0yUEQ0CNYQyA5EzlXsvLWsTi7XjscWZXCkv2BoFxk+MXvsCweaS6/qRbIn8/cW1TFLo6ZAbHjucnmjtSZn9wr9j3SEV7fM6jpAc6XBMMHtgjCaKZMpvH1R2Ed6O3DNr7L0//zB/PDhQx+rDeDre1kA=
secure: DaUepv9X3aPy91r8FBCyA0yUEQ0CNYQyA5EzlXsvLWsTi7XjscWZXCkv2BoFxk+MXvsCweaS6/qRbIn8/cW1TFLo6ZAbHjucnmjtSZn9wr9j3SEV7fM6jpAc6XBMMHtgjCaKZMpvH1R2Ed6O3DNr7L0//zB/PDhQx+rDeDre1kA=
file: QOwnNotes-$VERSION_NUMBER.dmg
skip_cleanup: true
on:
repo: pbek/QOwnNotes
branch: release
tags: false
condition: $CONFIG = release && ${TRAVIS_OS_NAME} = osx
repo: pbek/QOwnNotes
branch: release
tags: false
condition: $CONFIG = release && ${TRAVIS_OS_NAME} = osx
# Linux development release
# - provider: releases
# api_key:
@ -178,7 +178,7 @@ deploy:
# branch: main
# tags: false
# condition: ${TRAVIS_OS_NAME} = linux
# macOS development release
# macOS development release
# - provider: releases
# prerelease: true
# api_key:
@ -197,21 +197,21 @@ notifications:
- developer@bekerle.com
on_success: change
on_failure: change
# irc:
# # https://docs.travis-ci.com/user/notifications/#IRC-notification
# channels:
# - "chat.freenode.net#qownnotes"
# template:
# - "[%{commit}] %{repository} (%{branch}): %{message} | Commit message: %{commit_message} | Changes: %{compare_url} | Build details: %{build_url}"
# on_success: never
# on_failure: change
# use_notice: true
# skip_join: true
# irc:
# # https://docs.travis-ci.com/user/notifications/#IRC-notification
# channels:
# - "chat.freenode.net#qownnotes"
# template:
# - "[%{commit}] %{repository} (%{branch}): %{message} | Commit message: %{commit_message} | Changes: %{compare_url} | Build details: %{build_url}"
# on_success: never
# on_failure: change
# use_notice: true
# skip_join: true
webhooks:
urls:
- https://webhooks.gitter.im/e/7c80d5baa6681f02dca5
#- https://fathomless-fjord-24024.herokuapp.com/notify
#- "https://scalar.vector.im/api/neb/services/hooks/dHJhdmlzLWNpLyU0MHBiZWslM0FtYXRyaXgub3JnLyUyMXJVenJSdnJuck9zTGFzRGRicCUzQW1hdHJpeC5vcmc"
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always

File diff suppressed because it is too large Load diff

View file

@ -29,7 +29,6 @@
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/qownnotes/localized.svg)](https://crowdin.com/project/qownnotes)
[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/qownnotes/qownnotes)
[QOwnNotes](https://www.qownnotes.org) is the **open source notepad** with
[**Markdown support**](https://github.com/pbek/QOwnNotes/blob/main/src/demonotes/Markdown%20Cheatsheet.md)
and **todo list manager** for **GNU/Linux**, **macOS** and **Windows**,
@ -66,8 +65,8 @@ To access your ownCloud notes from your **mobile device** you may want to get on
- For Android and Nextcloud: [Notes](https://f-droid.org/packages/it.niedermann.owncloud.notes)
- For iOS: [CloudNotes](https://itunes.apple.com/app/cloudnotes-owncloud-notes/id813973264)
On Android you could also use any sync-tool like *Synchronize Ultimate* or *FolderSync*
to sync your note files and use software like *neutriNotes* or
On Android you could also use any sync-tool like _Synchronize Ultimate_ or _FolderSync_
to sync your note files and use software like _neutriNotes_ or
[**Markor**](https://f-droid.org/packages/net.gsantner.markor/) to edit your notes.
On iOS [Notebooks](https://itunes.apple.com/us/app/notebooks-write-and-organize/id780438662)
@ -88,7 +87,7 @@ You can visit the [QOwnNotes project page](https://www.qownnotes.org) for more *
(install [QOwnNotesAPI](https://github.com/pbek/qownnotesapi) on your server)
- **trashed notes** can be restored from your Nextcloud / ownCloud server
(install [QOwnNotesAPI](https://github.com/pbek/qownnotesapi) on your server)
- there also is a local trash
- there also is a local trash
- sub-string searching of notes is possible and search results are highlighted in the notes
- application can be operated with **customizable keyboard shortcuts**
- external changes of note files are watched (notes or note list are reloaded)
@ -101,14 +100,14 @@ You can visit the [QOwnNotes project page](https://www.qownnotes.org) for more *
- implementation of the **[OpenAI completion API](https://www.qownnotes.org/blog/2024-05-17-AI-support-was-added-to-QOwnNotes.html)** to be used in scripts
- [QOwnNotes Web Companion browser extension](https://github.com/qownnotes/web-companion)
to a add notes from the selected text and other features
- visit the [Chrome Web Store](https://chrome.google.com/webstore/detail/qownnotes-web-companion/pkgkfnampapjbopomdpnkckbjdnpkbkp)
page to install the app on Google Chrome
- visit the [Firefox Add-ons](https://addons.mozilla.org/firefox/addon/qownnotes-web-companion)
page to install the app on Mozilla Firefox
- visit the [Chrome Web Store](https://chrome.google.com/webstore/detail/qownnotes-web-companion/pkgkfnampapjbopomdpnkckbjdnpkbkp)
page to install the app on Google Chrome
- visit the [Firefox Add-ons](https://addons.mozilla.org/firefox/addon/qownnotes-web-companion)
page to install the app on Mozilla Firefox
- notes are getting their name from the first line of the note text (just like
in the Nextcloud / ownCloud notes web-application) and the note text files are
automatically renamed, if the first line changes
- this feature can also be turned off, and you can use any filename you like
- this feature can also be turned off, and you can use any filename you like
- manage your Nextcloud / ownCloud todo lists (ownCloud tasks or Tasks Plus / Calendar Plus)
- create [Nextcloud Deck](https://apps.nextcloud.com/apps/deck) cards and link to them in your notes
- **encryption of notes** (AES-256 is built in, or you can use custom encryption methods like
@ -128,11 +127,11 @@ You can visit the [QOwnNotes project page](https://www.qownnotes.org) for more *
- Evernote (now with large files) and Joplin import
- QOwnNotes is **available in over 60 different languages** like English, German,
French, Polish, Chinese, Japanese, Russian, Portuguese, Hungarian, Dutch and Spanish
- [Your help](https://www.qownnotes.org/contributing/translation.html) is
very much appreciated to improve these translations or to translate
QOwnNotes in more languages
- Join the fun at **[Crowdin](https://crowdin.com/project/qownnotes)**
to **help** with the **translations**
- [Your help](https://www.qownnotes.org/contributing/translation.html) is
very much appreciated to improve these translations or to translate
QOwnNotes in more languages
- Join the fun at **[Crowdin](https://crowdin.com/project/qownnotes)**
to **help** with the **translations**
## Installation
@ -157,7 +156,7 @@ git submodule update --init
Then download [Qt Creator](https://www.qt.io/download-open-source), you will also
need the packages `qtwebsockets` to build QOwnNotes with Qt6
(only `qtwebsockets` for Qt5). If you build under Windows, you want to stick to
*MinGw 64-bit*.
_MinGw 64-bit_.
Afterward open the project file `src/QOwnNotes.pro` and click on
**Build** / **Build Project QOwnNotes**.

View file

@ -18,13 +18,13 @@ environment:
matrix:
# latest Qt 32 bit
# - QTDIR: C:\Qt\5.13\mingw73_32
# TOOLCHAIN_VERSION: 730_32
# gpp: win32-g++
# - QTDIR: C:\Qt\5.13\mingw73_32
# TOOLCHAIN_VERSION: 730_32
# gpp: win32-g++
# latest Qt 64 bit (broken)
# - QTDIR: C:\Qt\latest\mingw73_64
# TOOLCHAIN_VERSION: 730_64
# gpp: g++
# - QTDIR: C:\Qt\latest\mingw73_64
# TOOLCHAIN_VERSION: 730_64
# gpp: g++
# Qt 5.7 (for Windows XP)
- QTDIR: C:\Qt\5.7\mingw53_32
TOOLCHAIN_VERSION: 530_32
@ -41,8 +41,8 @@ cache:
install:
# Qt-versions: https://www.appveyor.com/docs/build-environment/#qt
# - set QTDIR=C:\Qt\5.7\mingw53_32
# - set QTDIR=C:\Qt\5.10.1\mingw53_32
# - set QTDIR=C:\Qt\5.7\mingw53_32
# - set QTDIR=C:\Qt\5.10.1\mingw53_32
- set PATH=%PATH%;%QTDIR%\bin;C:\Qt\Tools\QtCreator\bin;C:\Qt\Tools\mingw%TOOLCHAIN_VERSION%\bin
- echo PATH=%PATH%
- set RELEASE_PATH=appveyor\release
@ -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,13 +98,13 @@ 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++
# - qmake QOwnNotes.pro -r -spec %gpp% CONFIG+=ccache QMAKE_CXX="ccache $$QMAKE_CXX"
# - qmake QOwnNotes.pro -r -spec win32-g++
# - qmake QOwnNotes.pro -r -spec %gpp% CONFIG+=ccache QMAKE_CXX="ccache $$QMAKE_CXX"
- qmake QOwnNotes.pro -r -spec %gpp% CONFIG+=ccache
# - qmake QOwnNotes.pro -r -spec win32-g++ "CONFIG+=debug"
# - qmake QOwnNotes.pro -r -spec win32-g++ "CONFIG+=debug"
- lrelease QOwnNotes.pro
- mingw32-make
# creating the release path

View file

@ -27,22 +27,22 @@ CUR_DIR=$(pwd)
_QQwnNotesCheckSumVarFile="/tmp/QOwnNotes.checksum.vars"
if [[ ! -f ${_QQwnNotesCheckSumVarFile} ]]; then
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
fi
source ${_QQwnNotesCheckSumVarFile}
# check checksum variable from build-systems/github/build-github-src.sh
if [ -z ${QOWNNOTES_ARCHIVE_SHA256} ]; then
echo "QOWNNOTES_ARCHIVE_SHA256 was not set!"
exit 1
echo "QOWNNOTES_ARCHIVE_SHA256 was not set!"
exit 1
fi
echo "Started the AUR packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -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"`
# get version from version.h
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
cd ../aur || exit 1
@ -82,12 +82,11 @@ 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
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -4,16 +4,15 @@
#
# 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
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "Upload source archive to GitHub release..."
@ -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"
@ -69,14 +63,14 @@ COMMANDS=("$DIR/../ubuntu-launchpad/build-for-launchpad.sh" "$DIR/../obs/build-f
# KDS=$KONSOLE_DBUS_SERVICE # This is the ref of the current konsole and only works in a konsole
# KDS=$(org.kde.konsole) # This is found in some examples but is incomplete
qdbus >/tmp/q0 # Get the current list of konsoles
/usr/bin/konsole & # Launch a new konsole
qdbus >/tmp/q0 # Get the current list of konsoles
/usr/bin/konsole & # Launch a new konsole
# PID=$! # And get its PID - But for some reason this is off by a few
sleep 1
qdbus >/tmp/q1 # Get the new list of konsoles
# KDS=org.kde.konsole-$PID
qdbus >/tmp/q1 # Get the new list of konsoles
# KDS=org.kde.konsole-$PID
# KDS=org.kde.konsole # Sometimes
KDS=$(diff /tmp/q{0,1} | grep konsole) # Let's hope there's only one
KDS=$(diff /tmp/q{0,1} | grep konsole) # Let's hope there's only one
#echo $KDS
KDS=${KDS:3}
echo "$KDS"
@ -93,31 +87,29 @@ echo >>/tmp/KDS
FirstTime=1
for i in "${COMMANDS[@]}"
do
echo "Starting: $i"
echo >>/tmp/KDS
if [ $FirstTime -eq 1 ]
then
session=$(qdbus $KDS /Windows/1 currentSession)
FirstTime=0
else
session=$(qdbus $KDS /Windows/1 newSession)
fi
echo $session >>/tmp/KDS
for i in "${COMMANDS[@]}"; do
echo "Starting: $i"
echo >>/tmp/KDS
if [ $FirstTime -eq 1 ]; then
session=$(qdbus $KDS /Windows/1 currentSession)
FirstTime=0
else
session=$(qdbus $KDS /Windows/1 newSession)
fi
echo $session >>/tmp/KDS
# Test: Display possible actions
qdbus $KDS /Sessions/${session} >>/tmp/KDS
# Test: Display possible actions
qdbus $KDS /Sessions/${session} >>/tmp/KDS
# Doesn't work well, maybe use setTabTitleFormat 0/1 instead
# Title "0" appears to be the initial title, title "1" is the title used after commands are executed.
#qdbus $KDS /Sessions/${session} setTitle 0 $i
#qdbus $KDS /Sessions/${session} setTitle 1 $i
# Doesn't work well, maybe use setTabTitleFormat 0/1 instead
# Title "0" appears to be the initial title, title "1" is the title used after commands are executed.
#qdbus $KDS /Sessions/${session} setTitle 0 $i
#qdbus $KDS /Sessions/${session} setTitle 1 $i
# The line break is necessary to commit the command. \n doesn't work
qdbus $KDS /Sessions/${session} sendText "${i}
# The line break is necessary to commit the command. \n doesn't work
qdbus $KDS /Sessions/${session} sendText "${i}
"
# Optional: will ping when there's no more output in the window
qdbus $KDS /Sessions/${session} setMonitorSilence true
# Optional: will ping when there's no more output in the window
qdbus $KDS /Sessions/${session} setMonitorSilence true
done

View file

@ -1,19 +1,18 @@
#!/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
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DIR" || exit 1

View file

@ -1,4 +1,4 @@
version: '3'
version: "3"
services:
releaser:
build: .
@ -17,8 +17,8 @@ services:
- ../secrets/private.pgp:/home/ubuntu/private.pgp
- ../secrets/gh/hosts.yml:/home/ubuntu/.config/gh/hosts.yml
- ../secrets/gh/config.yml:/home/ubuntu/.config/gh/config.yml
# - ../secrets/id_rsa:/home/ubuntu/.ssh/id_rsa:ro
# - ../secrets/id_rsa.pub:/home/ubuntu/.ssh/id_rsa.pub:ro
# - ../secrets/id_rsa:/home/ubuntu/.ssh/id_rsa:ro
# - ../secrets/id_rsa.pub:/home/ubuntu/.ssh/id_rsa.pub:ro
# fakeroot became terribly slow
# this helped: https://github.com/moby/moby/issues/45436#issuecomment-1528445371
ulimits:

View file

@ -7,7 +7,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=1.1.0.4
@ -20,27 +19,27 @@ PROJECT_PATH="/tmp/QOwnNotes-gentoo-$$"
_QQwnNotesCheckSumVarFile="/tmp/QOwnNotes.checksum.vars"
if [[ ! -f ${_QQwnNotesCheckSumVarFile} ]]; then
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
fi
source ${_QQwnNotesCheckSumVarFile}
# check checksum variable from build-systems/github/build-github-src.sh
if [ -z ${QOWNNOTES_ARCHIVE_SHA512} ]; then
echo "QOWNNOTES_ARCHIVE_SHA512 was not set!"
exit 1
echo "QOWNNOTES_ARCHIVE_SHA512 was not set!"
exit 1
fi
if [ -z ${QOWNNOTES_ARCHIVE_SIZE} ]; then
echo "QOWNNOTES_ARCHIVE_SIZE was not set!"
exit 1
echo "QOWNNOTES_ARCHIVE_SIZE was not set!"
exit 1
fi
echo "Started the ebuild packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -56,8 +55,8 @@ git clone --depth=1 git@github.com:pbek/QOwnNotes.git QOwnNotes -b $BRANCH
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"`
# get version from version.h
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
ARCHIVE_FILE=qownnotes-${QOWNNOTES_VERSION}.tar.xz
@ -69,7 +68,7 @@ cp ../../../QOwnNotes/build-systems/gentoo/qownnotes.ebuild .
sed -i "s/VERSION-STRING/$QOWNNOTES_VERSION/g" qownnotes.ebuild
# update the Manifest file
echo "DIST ${ARCHIVE_FILE} ${QOWNNOTES_ARCHIVE_SIZE} SHA512 ${QOWNNOTES_ARCHIVE_SHA512}" >> Manifest
echo "DIST ${ARCHIVE_FILE} ${QOWNNOTES_ARCHIVE_SIZE} SHA512 ${QOWNNOTES_ARCHIVE_SHA512}" >>Manifest
eBuildFile="qownnotes-$QOWNNOTES_VERSION.ebuild"
mv qownnotes.ebuild ${eBuildFile}
@ -81,5 +80,5 @@ git push
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -27,7 +27,7 @@ gh auth status || gh auth login --insecure-storage
echo "Started the GitHub packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -43,15 +43,15 @@ cd QOwnNotes || exit 1
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"`
# get version from version.h
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
# 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,14 +72,14 @@ 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
sha512sum ${archiveFile} > ${archiveFile}.sha512sum
sha256sum ${archiveFile} >${archiveFile}.sha256sum
sha512sum ${archiveFile} >${archiveFile}.sha512sum
echo ""
echo "Sums:"
@ -92,10 +92,10 @@ echo $QOWNNOTES_ARCHIVE_SIZE
# write temporary checksum variable file for the deployment scripts
_QQwnNotesCheckSumVarFile="/tmp/QOwnNotes.checksum.vars"
echo "QOWNNOTES_ARCHIVE_MD5=$QOWNNOTES_ARCHIVE_MD5" > ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA256=$QOWNNOTES_ARCHIVE_SHA256" >> ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA512=$QOWNNOTES_ARCHIVE_SHA512" >> ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SIZE=$QOWNNOTES_ARCHIVE_SIZE" >> ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_MD5=$QOWNNOTES_ARCHIVE_MD5" >${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA256=$QOWNNOTES_ARCHIVE_SHA256" >>${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA512=$QOWNNOTES_ARCHIVE_SHA512" >>${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SIZE=$QOWNNOTES_ARCHIVE_SIZE" >>${_QQwnNotesCheckSumVarFile}
echo "Uploading files to GitHub..."
@ -104,17 +104,16 @@ gh release upload --clobber v$QOWNNOTES_VERSION ${archiveFile}*
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
url="https://github.com/pbek/QOwnNotes/releases/download/v$QOWNNOTES_VERSION/${archiveFile}"
echo "Checking if $url exists..."
# try to download file from github
until curl --output /dev/null --silent --head --fail "$url"
do
echo "URL does not exist: $url..."
sleep 2
until curl --output /dev/null --silent --head --fail "$url"; do
echo "URL does not exist: $url..."
sleep 2
done
echo "URL exists: $url"

View file

@ -8,12 +8,12 @@ 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
echo "This is not a Mac"
exit 1
echo "This is not a Mac"
exit 1
fi
#env
@ -50,8 +50,8 @@ ${QT_ROOT_DIR}/bin/macdeployqt ./$APP.app
#macdeployqt ./$APP.app
if [ "$?" -ne "0" ]; then
echo "Failed to run macdeployqt"
exit 1
echo "Failed to run macdeployqt"
exit 1
fi
##
@ -70,32 +70,32 @@ echo "Create $TEMPDIR"
#Create a temporary directory if one doesn't exist
mkdir -p $TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to create temporary folder"
exit 1
echo "Failed to create temporary folder"
exit 1
fi
echo "Clean $TEMPDIR"
#Delete the contents of any previous builds
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
echo "Move application bundle"
#Move the application to the temporary directory
mv ./$APP.app ./$TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to move application bundle"
exit 1
echo "Failed to move application bundle"
exit 1
fi
echo "Create symbolic link"
#Create a symbolic link to the applications folder
ln -s /Applications ./$TEMPDIR/Applications
if [ "$?" -ne "0" ]; then
echo "Failed to create link to /Applications"
exit 1
echo "Failed to create link to /Applications"
exit 1
fi
echo "Create new disk image"
@ -103,15 +103,15 @@ echo "Create new disk image"
rm -f ./$APP.dmg
hdiutil create -srcfolder ./$TEMPDIR -ov -format UDBZ -fs HFS+ ./$APP.dmg
if [ "$?" -ne "0" ]; then
echo "Failed to create disk image"
exit 1
echo "Failed to create disk image"
exit 1
fi
# delete the temporary directory
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
exit 0

View file

@ -7,12 +7,12 @@ 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
echo "This is not a Mac"
exit 1
echo "This is not a Mac"
exit 1
fi
echo "Changing bundle identifier"
@ -42,8 +42,8 @@ cp ${QT_ROOT_DIR}/translations/qtbase_*.qm $APP.app/Contents/Resources
echo "Calling macdeployqt"
${QT_ROOT_DIR}/bin/macdeployqt ./$APP.app
if [ "$?" -ne "0" ]; then
echo "Failed to run macdeployqt"
exit 1
echo "Failed to run macdeployqt"
exit 1
fi
##
@ -62,32 +62,32 @@ echo "Create $TEMPDIR"
#Create a temporary directory if one doesn't exist
mkdir -p $TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to create temporary folder"
exit 1
echo "Failed to create temporary folder"
exit 1
fi
echo "Clean $TEMPDIR"
#Delete the contents of any previous builds
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
echo "Move application bundle"
#Move the application to the temporary directory
mv ./$APP.app ./$TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to move application bundle"
exit 1
echo "Failed to move application bundle"
exit 1
fi
echo "Create symbolic link"
#Create a symbolic link to the applications folder
ln -s /Applications ./$TEMPDIR/Applications
if [ "$?" -ne "0" ]; then
echo "Failed to create link to /Applications"
exit 1
echo "Failed to create link to /Applications"
exit 1
fi
echo "Create new disk image"
@ -95,15 +95,15 @@ echo "Create new disk image"
rm -f ./$APP.dmg
hdiutil create -srcfolder ./$TEMPDIR -ov -format UDBZ -fs HFS+ ./$APP.dmg
if [ "$?" -ne "0" ]; then
echo "Failed to create disk image"
exit 1
echo "Failed to create disk image"
exit 1
fi
# delete the temporary directory
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
exit 0

View file

@ -19,8 +19,8 @@ apps:
qownnotes:
command: desktop-launch $SNAP/usr/bin/QOwnNotes -style=Breeze --snap
environment:
DISABLE_WAYLAND: 1
QT_QPA_PLATFORMTHEME: gtk3
DISABLE_WAYLAND: 1
QT_QPA_PLATFORMTHEME: gtk3
# see https://docs.snapcraft.io/reference/interfaces
plugs:
- x11
@ -28,7 +28,7 @@ apps:
- network
- network-bind
- home
# - kde-frameworks-5-plug
# - kde-frameworks-5-plug
- desktop
- desktop-legacy
- removable-media
@ -103,38 +103,38 @@ parts:
after: [desktop-qt6]
desktop-qt6:
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: qt
plugin: make
make-parameters: ["FLAVOR=qt6"]
build-packages:
- build-essential
- qt6-base-dev
- dpkg-dev
stage-packages:
- libxkbcommon0
- fonts-ubuntu
- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libqt6gui6
- libgdk-pixbuf2.0-0
- libqt6svg6 # for loading icon themes which are svg
- locales-all
- xdg-user-dirs
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: qt
plugin: make
make-parameters: ["FLAVOR=qt6"]
build-packages:
- build-essential
- qt6-base-dev
- dpkg-dev
stage-packages:
- libxkbcommon0
- fonts-ubuntu
- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libqt6gui6
- libgdk-pixbuf2.0-0
- libqt6svg6 # for loading icon themes which are svg
- locales-all
- xdg-user-dirs
plasma-integration:
plugin: nil
stage-packages:
# - plasma-integration # causes the KDE file selector to be used that didn't work
- kde-style-breeze
- breeze-icon-theme
# - kio # runtime slaves for kio, but does not seem to work
# - plasma-integration # causes the KDE file selector to be used that didn't work
- kde-style-breeze
- breeze-icon-theme
# - kio # runtime slaves for kio, but does not seem to work
prime:
- "-usr/share/wallpapers/*"
- "-usr/share/fonts/*"
- "-usr/share/wallpapers/*"
- "-usr/share/fonts/*"
qt6-gtk-platform:
plugin: nil

View file

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

View file

@ -1,29 +1,13 @@
{
lib,
stdenv,
fetchurl,
qmake,
qttools,
qtbase,
qtdeclarative,
qtsvg,
qtwayland,
qtwebsockets,
makeWrapper,
wrapQtAppsHook,
botan2,
pkg-config,
xvfb-run,
installShellFiles,
}:
{ lib, stdenv, fetchurl, qmake, qttools, qtbase, qtdeclarative, qtsvg, qtwayland
, qtwebsockets, makeWrapper, wrapQtAppsHook, botan2, pkg-config, xvfb-run
, installShellFiles, }:
let
pname = "qownnotes";
appname = "QOwnNotes";
# version = builtins.head (builtins.match "#define VERSION \"([0-9.]+)\"" (builtins.readFile ./src/version.h));
version = "local-build";
in
stdenv.mkDerivation {
in stdenv.mkDerivation {
inherit pname appname version;
src = builtins.path {
@ -32,38 +16,24 @@ 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 ''
installShellCompletion --cmd ${appname} \
--bash <(xvfb-run $out/bin/${appname} --completion bash) \
--fish <(xvfb-run $out/bin/${appname} --completion fish)
installShellCompletion --cmd ${pname} \
--bash <(xvfb-run $out/bin/${appname} --completion bash) \
--fish <(xvfb-run $out/bin/${appname} --completion fish)
''
postInstall = lib.optionalString stdenv.isLinux ''
installShellCompletion --cmd ${appname} \
--bash <(xvfb-run $out/bin/${appname} --completion bash) \
--fish <(xvfb-run $out/bin/${appname} --completion fish)
installShellCompletion --cmd ${pname} \
--bash <(xvfb-run $out/bin/${appname} --completion bash) \
--fish <(xvfb-run $out/bin/${appname} --completion fish)
''
# Create a lowercase symlink for Linux
+ lib.optionalString stdenv.isLinux ''
ln -s $out/bin/${appname} $out/bin/${pname}
@ -77,15 +47,13 @@ stdenv.mkDerivation {
'';
meta = with lib; {
description = "Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
description =
"Plain-text file notepad and todo-list manager with Markdown support and Nextcloud/ownCloud integration";
homepage = "https://www.qownnotes.org/";
changelog = "https://www.qownnotes.org/changelog.html";
downloadPage = "https://github.com/pbek/QOwnNotes/releases/tag/v${version}";
license = licenses.gpl2Only;
maintainers = with maintainers; [
pbek
totoroot
];
maintainers = with maintainers; [ pbek totoroot ];
platforms = platforms.unix;
};
}

View file

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

View file

@ -8,7 +8,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=16.06.12
@ -21,22 +20,22 @@ PROJECT_PATH="/tmp/QOwnNotes-slackware-$$"
_QQwnNotesCheckSumVarFile="/tmp/QOwnNotes.checksum.vars"
if [[ ! -f ${_QQwnNotesCheckSumVarFile} ]]; then
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
fi
source ${_QQwnNotesCheckSumVarFile}
# check checksum variable from build-systems/github/build-github-src.sh
if [ -z ${QOWNNOTES_ARCHIVE_MD5} ]; then
echo "QOWNNOTES_ARCHIVE_MD5 was not set!"
exit 1
echo "QOWNNOTES_ARCHIVE_MD5 was not set!"
exit 1
fi
echo "Started the slackware packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -52,8 +51,8 @@ git clone --depth=1 git@github.com:pbek/QOwnNotes.git QOwnNotes -b $BRANCH
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"`
# get version from version.h
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
buildSystemPath="../../../QOwnNotes/build-systems/slackware"
@ -82,5 +81,5 @@ git push
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -10,7 +10,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=16.07.6
@ -23,22 +22,22 @@ PROJECT_PATH="/tmp/QOwnNotes-launchpad-snap-$$"
_QQwnNotesCheckSumVarFile="/tmp/QOwnNotes.checksum.vars"
if [[ ! -f ${_QQwnNotesCheckSumVarFile} ]]; then
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
echo "${_QQwnNotesCheckSumVarFile} doesn't exist. build-github-src.sh must be run ahead of build script!"
exit 1
fi
source ${_QQwnNotesCheckSumVarFile}
# check checksum variable from build-systems/github/build-github-src.sh
if [ -z ${QOWNNOTES_ARCHIVE_SHA256} ]; then
echo "QOWNNOTES_ARCHIVE_SHA256 was not set!"
exit 1
echo "QOWNNOTES_ARCHIVE_SHA256 was not set!"
exit 1
fi
echo "Started the Launchpad Snap packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -54,8 +53,8 @@ git clone --depth=1 git@github.com:pbek/QOwnNotes.git QOwnNotes -b $BRANCH
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"`
# get version from version.h
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
@ -75,5 +73,5 @@ git push
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -11,7 +11,6 @@
# https://github.com/pbek/QOwnNotes/releases
#
# uncomment this if you want to force a version
#QOWNNOTES_VERSION=16.07.3
@ -21,11 +20,10 @@ 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
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -38,8 +36,8 @@ git clone --depth=1 https://github.com/pbek/QOwnNotes.git QOwnNotes -b $BRANCH
cd QOwnNotes
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
# get version from version.h
QOWNNOTES_VERSION=$(cat src/version.h | sed "s/[^0-9,.]//g")
fi
cd build-systems/snap/snapcraft
@ -64,5 +62,5 @@ snapcraft push qownnotes_${QOWNNOTES_VERSION}_amd64.snap --release stable
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

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

View file

@ -16,15 +16,15 @@ apps:
# "=" is not allowed in the command anymore in core20
command: "./wrapper.sh"
environment:
DISABLE_WAYLAND: 1
QT_QPA_PLATFORMTHEME: gtk3
GIT_EXEC_PATH: $SNAP/usr/lib/git-core
GIT_TEMPLATE_DIR: $SNAP/usr/share/git-core/templates
GIT_AUTHOR_NAME: "QOwnNotes"
GIT_AUTHOR_EMAIL: "snap@qownnotes.git"
GIT_COMMITTER_NAME: "QOwnNotes"
GIT_COMMITTER_EMAIL: "snap@qownnotes.git"
EMAIL: "snap@qownnotes.git"
DISABLE_WAYLAND: 1
QT_QPA_PLATFORMTHEME: gtk3
GIT_EXEC_PATH: $SNAP/usr/lib/git-core
GIT_TEMPLATE_DIR: $SNAP/usr/share/git-core/templates
GIT_AUTHOR_NAME: "QOwnNotes"
GIT_AUTHOR_EMAIL: "snap@qownnotes.git"
GIT_COMMITTER_NAME: "QOwnNotes"
GIT_COMMITTER_EMAIL: "snap@qownnotes.git"
EMAIL: "snap@qownnotes.git"
# see https://docs.snapcraft.io/reference/interfaces
plugs:
- x11
@ -32,7 +32,7 @@ apps:
- network
- network-bind
- home
# - kde-frameworks-5-plug
# - kde-frameworks-5-plug
- desktop
- desktop-legacy
- removable-media
@ -65,12 +65,12 @@ parts:
source: https://github.com/pbek/QOwnNotes/releases/download/vVERSION-STRING/qownnotes-VERSION-STRING.tar.xz
source-checksum: sha256/ARCHIVE-SHA256
# see https://snapcraft.io/docs/qmake-plugin
# plugin: qmake
# plugin: qmake
plugin: make
# qmake-parameters:
# - CONFIG+=release
# - CONFIG+=snapcraft
# qmake-project-file: ./src/QOwnNotes.pro
# qmake-parameters:
# - CONFIG+=release
# - CONFIG+=snapcraft
# qmake-project-file: ./src/QOwnNotes.pro
override-build: |
export QT_SELECT=qt5
# remove the default desktop file
@ -108,39 +108,39 @@ parts:
after: [desktop-qt5]
desktop-qt5:
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: qt
plugin: make
make-parameters: ["FLAVOR=qt5"]
build-packages:
- build-essential
- qtbase5-dev
- dpkg-dev
stage-packages:
- libxkbcommon0
# - ttf-ubuntu-font-family
- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libqt5gui5
- libgdk-pixbuf2.0-0
# - libgtk2.0-0 # snapcraft was complaining about missing libgtk-x11-2.0.so.0
- libqt5svg5 # for loading icon themes which are svg
# - appmenu-qt5
- locales-all
- xdg-user-dirs
- fcitx-frontend-qt5
- libglib2.0-0
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: qt
plugin: make
make-parameters: ["FLAVOR=qt5"]
build-packages:
- build-essential
- qtbase5-dev
- dpkg-dev
stage-packages:
- libxkbcommon0
# - ttf-ubuntu-font-family
- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libqt5gui5
- libgdk-pixbuf2.0-0
# - libgtk2.0-0 # snapcraft was complaining about missing libgtk-x11-2.0.so.0
- libqt5svg5 # for loading icon themes which are svg
# - appmenu-qt5
- locales-all
- xdg-user-dirs
- fcitx-frontend-qt5
- libglib2.0-0
plasma-integration:
plugin: nil
stage-packages:
# - plasma-integration # causes the KDE file selector to be used that didn't work
# - plasma-integration # causes the KDE file selector to be used that didn't work
- kde-style-breeze
- breeze-icon-theme
# - kio # runtime slaves for kio, but does not seem to work
# - kio # runtime slaves for kio, but does not seem to work
prime:
- "-usr/share/wallpapers/*"
- "-usr/share/fonts/*"

View file

@ -20,11 +20,10 @@ BRANCH=main
PROJECT_PATH="/tmp/QOwnNotes-sourceforge-$$"
echo "Started the SourceForge packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -46,15 +45,15 @@ lrelease src/QOwnNotes.pro
rm -Rf .git
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
# get version from version.h
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
# 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..."
@ -75,18 +74,18 @@ archiveFile="$qownnotesSrcDir.tar.xz"
echo "Creating archive $archiveFile..."
tar -cJf $archiveFile $qownnotesSrcDir
md5sum $archiveFile > $archiveFile.md5
sha256sum $archiveFile | awk '{ print $1 }' > $archiveFile.sha256
sha512sum $archiveFile | awk '{ print $1 }' > $archiveFile.sha512
md5sum $archiveFile >$archiveFile.md5
sha256sum $archiveFile | awk '{ print $1 }' >$archiveFile.sha256
sha512sum $archiveFile | awk '{ print $1 }' >$archiveFile.sha512
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}
echo >> ${sourceForgeReadme}
echo >> ${sourceForgeReadme}
cat CHANGELOG.md >> ${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}
echo "Uploading files to SourceForge..."
@ -102,5 +101,5 @@ rsync -ahv --progress ${archiveFile}* ${remotePath}
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -25,11 +25,10 @@ BRANCH=release
PROJECT_PATH="/tmp/QOwnNotes-tuxfamily-$$"
echo "Started the TuxFamily packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -48,15 +47,15 @@ lrelease src/QOwnNotes.pro
rm -Rf .git
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
# get version from version.h
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
# 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:"
@ -93,19 +92,19 @@ echo $QOWNNOTES_ARCHIVE_SIZE
# write temporary checksum variable file for the deployment scripts
_QQwnNotesCheckSumVarFile="/tmp/QOwnNotes.checksum.vars"
echo "QOWNNOTES_ARCHIVE_MD5=$QOWNNOTES_ARCHIVE_MD5" > ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA256=$QOWNNOTES_ARCHIVE_SHA256" >> ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA512=$QOWNNOTES_ARCHIVE_SHA512" >> ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SIZE=$QOWNNOTES_ARCHIVE_SIZE" >> ${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_MD5=$QOWNNOTES_ARCHIVE_MD5" >${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA256=$QOWNNOTES_ARCHIVE_SHA256" >>${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SHA512=$QOWNNOTES_ARCHIVE_SHA512" >>${_QQwnNotesCheckSumVarFile}
echo "QOWNNOTES_ARCHIVE_SIZE=$QOWNNOTES_ARCHIVE_SIZE" >>${_QQwnNotesCheckSumVarFile}
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}
echo >> ${tuxFamilyReadme}
echo >> ${tuxFamilyReadme}
cat CHANGELOG.md >> ${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}
echo "Uploading files to TuxFamily..."
@ -121,17 +120,16 @@ rsync -ahv --progress ${archiveFile}* ${remotePath}
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
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
echo "URL does not exist: $url..."
sleep 2
until curl --output /dev/null --silent --head --fail "$url"; do
echo "URL does not exist: $url..."
sleep 2
done
echo "URL exists: $url"

View file

@ -16,38 +16,30 @@ 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" : {
#"two_letters_code" : {
#"pt" : "pt_PT",
#"pt-BR" : "pt_BR"
#}
#"two_letters_code" : {
#"pt" : "pt_PT",
#"pt-BR" : "pt_BR"
#}
dest: '/QOwnNotes_en.ts'
-
source: '/webpage/src/index.md'
translation: '/webpage/src/%two_letters_code%/%original_file_name%'
-
source: '/webpage/src/contributing/*.md'
translation: '/webpage/src/%two_letters_code%/contributing/%original_file_name%'
-
source: '/webpage/src/editor/*.md'
translation: '/webpage/src/%two_letters_code%/editor/%original_file_name%'
-
source: '/webpage/src/faq/*.md'
translation: '/webpage/src/%two_letters_code%/faq/%original_file_name%'
-
source: '/webpage/src/getting-started/*.md'
translation: '/webpage/src/%two_letters_code%/getting-started/%original_file_name%'
-
source: '/webpage/src/installation/*.md'
translation: '/webpage/src/%two_letters_code%/installation/%original_file_name%'
-
source: '/webpage/src/scripting/*.md'
translation: '/webpage/src/%two_letters_code%/scripting/%original_file_name%'
#}
dest: "/QOwnNotes_en.ts"
- source: "/webpage/src/index.md"
translation: "/webpage/src/%two_letters_code%/%original_file_name%"
- source: "/webpage/src/contributing/*.md"
translation: "/webpage/src/%two_letters_code%/contributing/%original_file_name%"
- source: "/webpage/src/editor/*.md"
translation: "/webpage/src/%two_letters_code%/editor/%original_file_name%"
- source: "/webpage/src/faq/*.md"
translation: "/webpage/src/%two_letters_code%/faq/%original_file_name%"
- source: "/webpage/src/getting-started/*.md"
translation: "/webpage/src/%two_letters_code%/getting-started/%original_file_name%"
- source: "/webpage/src/installation/*.md"
translation: "/webpage/src/%two_letters_code%/installation/%original_file_name%"
- source: "/webpage/src/scripting/*.md"
translation: "/webpage/src/%two_letters_code%/scripting/%original_file_name%"

View file

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

View file

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

View file

@ -8,42 +8,42 @@ 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"
exit 1
echo "This is not a Mac"
exit 1
fi
# use macdeployqt to deploy the application
$QTDIR/bin/macdeployqt ./$APP.app
if [ "$?" -ne "0" ]; then
echo "Failed to run macdeployqt"
exit 1
echo "Failed to run macdeployqt"
exit 1
fi
echo "Create $TEMPDIR"
#Create a temporary directory if one doesn't exist
mkdir -p $TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to create temporary folder"
exit 1
echo "Failed to create temporary folder"
exit 1
fi
echo "Clean $TEMPDIR"
#Delete the contents of any previous builds
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
echo "Move application bundle"
#Move the application to the temporary directory
mv ./$APP.app ./$TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to move application bundle"
exit 1
echo "Failed to move application bundle"
exit 1
fi
#echo "Sign the code"
@ -59,8 +59,8 @@ echo "Create symbolic link"
#Create a symbolic link to the applications folder
ln -s /Applications ./$TEMPDIR/Applications
if [ "$?" -ne "0" ]; then
echo "Failed to create link to /Applications"
exit 1
echo "Failed to create link to /Applications"
exit 1
fi
echo "Create new disk image"
@ -68,15 +68,15 @@ echo "Create new disk image"
rm -f ./$APP.dmg
hdiutil create -srcfolder ./$TEMPDIR -ov -format UDBZ -fs HFS+ ./$APP.dmg
if [ "$?" -ne "0" ]; then
echo "Failed to create disk image"
exit 1
echo "Failed to create disk image"
exit 1
fi
# delete the temporary directory
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
exit 0

View file

@ -16,4 +16,4 @@ icons in the `icons` folder, for `src/images` and the snaps.
## Dark
![Dark icon](icon-dark.svg)
![Dark icon](icon-dark.svg)

View file

@ -13,63 +13,63 @@ APP_NAME="QOwnNotes"
# Check if input file exists
if [ ! -f "$INPUT_SVG" ]; then
echo "Error: Input file '$INPUT_SVG' not found!"
exit 1
echo "Error: Input file '$INPUT_SVG' not found!"
exit 1
fi
#Check if dark input file exists
if [ ! -f "$INPUT_DARK_SVG" ]; then
echo "Error: Input file '$INPUT_DARK_SVG' not found!"
exit 1
echo "Error: Input file '$INPUT_DARK_SVG' not found!"
exit 1
fi
# Function to convert images
convert_icon_png() {
local size=$1
local output_file=$2
local input_file=$3
local size=$1
local output_file=$2
local input_file=$3
# Use fallback to $INPUT_SVG if no local input file is provided
if [ -z "$input_file" ]; then
input_file=$INPUT_SVG
fi
# Use fallback to $INPUT_SVG if no local input file is provided
if [ -z "$input_file" ]; then
input_file=$INPUT_SVG
fi
echo "PNG converting to ${size}x${size} -> ${output_file}"
# magick "$input_file" -resize "${size}x${size}" "$output_file"
rsvg-convert -w "$size" -h "$size" "$input_file" -o "$output_file"
echo "PNG converting to ${size}x${size} -> ${output_file}"
# magick "$input_file" -resize "${size}x${size}" "$output_file"
rsvg-convert -w "$size" -h "$size" "$input_file" -o "$output_file"
}
convert_icon_ico() {
local output_file=$1
local input_file=$2
local output_file=$1
local input_file=$2
# Use fallback to $INPUT_SVG if no local input file is provided
if [ -z "$input_file" ]; then
input_file=$INPUT_SVG
fi
# Use fallback to $INPUT_SVG if no local input file is provided
if [ -z "$input_file" ]; then
input_file=$INPUT_SVG
fi
echo "ICO converting to -> ${output_file}"
magick -density 300 -define icon:auto-resize=256,128,96,64,48,32,16 -background none "$input_file" "$output_file"
echo "ICO converting to -> ${output_file}"
magick -density 300 -define icon:auto-resize=256,128,96,64,48,32,16 -background none "$input_file" "$output_file"
}
convert_icon_icns() {
local output_file=$1
local input_file=$2
local output_file=$1
local input_file=$2
# Use fallback to $INPUT_SVG if no local input file is provided
if [ -z "$input_file" ]; then
input_file=$INPUT_SVG
fi
# Use fallback to $INPUT_SVG if no local input file is provided
if [ -z "$input_file" ]; then
input_file=$INPUT_SVG
fi
echo "ICNS converting to -> ${output_file}"
echo "ICNS converting to -> ${output_file}"
mkdir iconset
for size in 16 32 64 128 256 512 1024; do
rsvg-convert -w $size -h $size $INPUT_SVG -o iconset/icon_${size}x${size}.png
done
mkdir iconset
for size in 16 32 64 128 256 512 1024; do
rsvg-convert -w $size -h $size $INPUT_SVG -o iconset/icon_${size}x${size}.png
done
png2icns "$output_file" iconset/*.png
rm -rf iconset
png2icns "$output_file" iconset/*.png
rm -rf iconset
}
# Generate all sizes
@ -85,7 +85,7 @@ convert_icon_ico "../src/QOwnNotes.ico"
# Generate app icons
for size in "${SIZES_APP[@]}"; do
convert_icon_png ${size} "${SRC_IMAGES_DIR}/icons/${size}x${size}/apps/${APP_NAME}.png"
convert_icon_png ${size} "${SRC_IMAGES_DIR}/icons/${size}x${size}/apps/${APP_NAME}.png"
done
# Copy to src/images

View file

@ -21,11 +21,10 @@ 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
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
mkdir $PROJECT_PATH
@ -47,15 +46,15 @@ lrelease src/QOwnNotes.pro
rm -Rf .git
if [ -z $QOWNNOTES_VERSION ]; then
# get version from version.h
QOWNNOTES_VERSION=`cat src/version.h | sed "s/[^0-9,.]//g"`
# get version from version.h
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
# 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
@ -84,21 +83,21 @@ mv src $qownnotesSrcDir
changelogPath=obs/qownnotes.bin
# create the changelog file
echo "-------------------------------------------------------------------" > $changelogPath
echo "$DATE - patrizio@bekerle.com" >> $changelogPath
echo "" >> $changelogPath
echo "- $changelogText" >> $changelogPath
echo "-------------------------------------------------------------------" >$changelogPath
echo "$DATE - patrizio@bekerle.com" >>$changelogPath
echo "" >>$changelogPath
echo "- $changelogText" >>$changelogPath
cat $changelogPath
# create the Debian changelog file
debChangelogPath=obs/debian.changelog
versionPart="$QOWNNOTES_VERSION-1debian"
echo "qownnotes ($versionPart) debian; urgency=low" > $debChangelogPath
echo "" >> $debChangelogPath
echo " * $changelogText" >> $debChangelogPath
echo "" >> $debChangelogPath
echo " -- Patrizio Bekerle <patrizio@bekerle.com> $DATE" >> $debChangelogPath
echo "qownnotes ($versionPart) debian; urgency=low" >$debChangelogPath
echo "" >>$debChangelogPath
echo " * $changelogText" >>$debChangelogPath
echo "" >>$debChangelogPath
echo " -- Patrizio Bekerle <patrizio@bekerle.com> $DATE" >>$debChangelogPath
cat $debChangelogPath
@ -162,5 +161,5 @@ osc commit -m "$changelogText"
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/env bash
#
# A tool to run clang-format on the entire project
#
@ -12,32 +12,32 @@ FMT=""
# that's present, otherwise we work backwards from highest version to lowest
# version.
for clangfmt in clang-format{,-{4,3}.{9,8,7,6,5,4,3,2,1,0}}; do
if which "$clangfmt" &>/dev/null; then
FMT="$clangfmt"
break
fi
if which "$clangfmt" &>/dev/null; then
FMT="$clangfmt"
break
fi
done
# Check if we found a working clang-format
if [ -z "$FMT" ]; then
echo "failed to find clang-format"
exit 1
echo "failed to find clang-format"
exit 1
fi
# Function to run clang-format on all *.cpp and *.h files in a directory (optionally recursively)
format_directory() {
directory="$1"
recursive="$2"
directory="$1"
recursive="$2"
if [ "$recursive" = "true" ]; then
files=$(find "$directory" -type f \( -name '*.cpp' -or -name '*.h' \))
else
files=$(ls "$directory"/*.cpp "$directory"/*.h 2>/dev/null)
fi
for file in $files; do
echo "Formatting $file"
$FMT -i "$file"
done
if [ "$recursive" = "true" ]; then
files=$(find "$directory" -type f \( -name '*.cpp' -or -name '*.h' \))
else
files=$(ls "$directory"/*.cpp "$directory"/*.h 2>/dev/null)
fi
for file in $files; do
echo "Formatting $file"
$FMT -i "$file"
done
}
# Use format_directory on the src and tests directories

View file

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

View file

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

View file

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

View file

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

View file

@ -17,15 +17,15 @@ apps:
# "=" is not allowed in the command anymore in core20
command: "./wrapper.sh"
environment:
DISABLE_WAYLAND: 1
QT_QPA_PLATFORMTHEME: gtk3
GIT_EXEC_PATH: $SNAP/usr/lib/git-core
GIT_TEMPLATE_DIR: $SNAP/usr/share/git-core/templates
GIT_AUTHOR_NAME: "QOwnNotes"
GIT_AUTHOR_EMAIL: "snap@qownnotes.git"
GIT_COMMITTER_NAME: "QOwnNotes"
GIT_COMMITTER_EMAIL: "snap@qownnotes.git"
EMAIL: "snap@qownnotes.git"
DISABLE_WAYLAND: 1
QT_QPA_PLATFORMTHEME: gtk3
GIT_EXEC_PATH: $SNAP/usr/lib/git-core
GIT_TEMPLATE_DIR: $SNAP/usr/share/git-core/templates
GIT_AUTHOR_NAME: "QOwnNotes"
GIT_AUTHOR_EMAIL: "snap@qownnotes.git"
GIT_COMMITTER_NAME: "QOwnNotes"
GIT_COMMITTER_EMAIL: "snap@qownnotes.git"
EMAIL: "snap@qownnotes.git"
# see https://docs.snapcraft.io/reference/interfaces
plugs:
- x11
@ -33,7 +33,7 @@ apps:
- network
- network-bind
- home
# - kde-frameworks-5-plug
# - kde-frameworks-5-plug
- desktop
- desktop-legacy
- removable-media
@ -64,14 +64,14 @@ plugs: # plugs for theming, font settings, cursor and to use gtk3 file chooser
parts:
qownnotes:
source: src
# source: https://github.com/pbek/qownnotes.git
# source: https://github.com/pbek/qownnotes.git
# see https://snapcraft.io/docs/qmake-plugin
# plugin: qmake
# plugin: qmake
plugin: make
# qmake-parameters:
# - CONFIG+=release
# - CONFIG+=snapcraft
# qmake-project-file: ./src/QOwnNotes.pro
# qmake-parameters:
# - CONFIG+=release
# - CONFIG+=snapcraft
# qmake-project-file: ./src/QOwnNotes.pro
override-build: |
#cd /build/qownnotes/parts/qownnotes/src
export QT_SELECT=qt5
@ -117,42 +117,42 @@ parts:
after: [desktop-qt5]
desktop-qt5:
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: qt
plugin: make
make-parameters: ["FLAVOR=qt5"]
build-packages:
- build-essential
- qtbase5-dev
- dpkg-dev
stage-packages:
- libxkbcommon0
# - ttf-ubuntu-font-family
- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libqt5gui5
- libgdk-pixbuf2.0-0
# - libgtk2.0-0 # snapcraft was complaining about missing libgtk-x11-2.0.so.0
- libqt5svg5 # for loading icon themes which are svg
# - appmenu-qt5
- locales-all
- xdg-user-dirs
- fcitx-frontend-qt5
- libglib2.0-0 # we need this or under Gnome the file chooser will crash the app!
source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
source-subdir: qt
plugin: make
make-parameters: ["FLAVOR=qt5"]
build-packages:
- build-essential
- qtbase5-dev
- dpkg-dev
stage-packages:
- libxkbcommon0
# - ttf-ubuntu-font-family
- dmz-cursor-theme
- light-themes
- adwaita-icon-theme
- gnome-themes-standard
- shared-mime-info
- libqt5gui5
- libgdk-pixbuf2.0-0
# - libgtk2.0-0 # snapcraft was complaining about missing libgtk-x11-2.0.so.0
- libqt5svg5 # for loading icon themes which are svg
# - appmenu-qt5
- locales-all
- xdg-user-dirs
- fcitx-frontend-qt5
- libglib2.0-0 # we need this or under Gnome the file chooser will crash the app!
plasma-integration:
plugin: nil
stage-packages:
# - plasma-integration # causes the KDE file selector to be used that didn't work
- kde-style-breeze
- breeze-icon-theme
# - kio # runtime slaves for kio, but does not seem to work
# - plasma-integration # causes the KDE file selector to be used that didn't work
- kde-style-breeze
- breeze-icon-theme
# - kio # runtime slaves for kio, but does not seem to work
prime:
- "-usr/share/wallpapers/*"
- "-usr/share/fonts/*"
- "-usr/share/wallpapers/*"
- "-usr/share/fonts/*"
qt5-gtk-platform:
plugin: nil

View file

@ -1,5 +1,4 @@
Markdown Cheatsheet
===================
# Markdown Cheatsheet
This cheatsheet is intended as a quick reference and showcase of the markdown syntax in [QOwnNotes](https://www.qownnotes.org).
@ -7,50 +6,54 @@ This cheatsheet is intended as a quick reference and showcase of the markdown sy
```markdown
# H1
## H2
### H3
#### H4
##### H5
###### H6
Alternatively, for H1 and H2, an underline-ish style:
Alt-H1
======
# Alt-H1
Alt-H2
------
## Alt-H2
```
# H1
## H2
### H3
#### H4
##### H5
###### H6
Alternatively, for H1 and H2, an underline-ish style:
Alt-H1
======
Alt-H2
------
# Alt-H1
## Alt-H2
## Emphasis
```markdown
Emphasis, aka italics, with *asterisks*.
Emphasis, aka italics, with _asterisks_.
Strong emphasis, aka bold, with **asterisks**.
```
Emphasis, aka italics, with *asterisks*.
Emphasis, aka italics, with _asterisks_.
Strong emphasis, aka bold, with **asterisks**.
## Lists
(In this example, leading and trailing spaces are shown with with dots: ⋅)
@ -58,9 +61,9 @@ 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
⋅⋅1. Ordered sub-list
⋅⋅\* Unordered sub-list.
3. Actual numbers don't matter, just that it's a number
⋅⋅1. Ordered sub-list
4. 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).
@ -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. Ordered sub-list
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.
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
@ -101,7 +109,7 @@ There are two ways to create links.
[You can use numbers for reference-style link definitions][1]
URLs and URLs in angle brackets will automatically get turned into links in the preview.
URLs and URLs in angle brackets will automatically get turned into links in the preview.
http://www.example.com or <http://www.example.com>
[1]: https://www.qownnotes.org
@ -113,12 +121,11 @@ http://www.example.com or <http://www.example.com>
[You can use numbers for reference-style link definitions][1]
URLs and URLs in angle brackets will automatically get turned into links in the preview.
URLs and URLs in angle brackets will automatically get turned into links in the preview.
http://www.example.com or <http://www.example.com>
[1]: https://www.qownnotes.org
## Inline code and code blocks
```markdown
@ -132,12 +139,12 @@ Blocks of code are either fenced by lines with three backticks, or are indented
### 4-Spaces fence
```markdown
s = "Code with space indent"
print s
s = "Code with space indent"
print s
```
s = "Code with space indent"
print s
s = "Code with space indent"
print s
### Backtick fence
@ -160,42 +167,41 @@ cd Notes
## Tables
Tables aren't part of the core Markdown spec, but the QOwnNotes preview supports them.
Tables aren't part of the core Markdown spec, but the QOwnNotes preview supports them.
```markdown
Colons can be used to align columns.
| Tables | Are | Cool |
| ------------- |:-------------:| -----:|
| Tables | Are | Cool |
| ------------- | :-----------: | ----: |
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
| 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
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 |
| ------------- |:-------------:| -----:|
| Tables | Are | Cool |
| ------------- | :-----------: | ----: |
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
There must be at least 3 dashes separating each header cell. The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown.
Markdown | Less | Pretty
--- | --- | ---
*Still* | `renders` | **nicely**
1 | 2 | 3
| Markdown | Less | Pretty |
| -------- | --------- | ---------- |
| _Still_ | `renders` | **nicely** |
| 1 | 2 | 3 |
## Blockquotes
@ -205,7 +211,7 @@ Markdown | Less | Pretty
Quote break.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can _put_ **Markdown** into a blockquote.
```
> Blockquotes are very handy in email to emulate reply text.
@ -213,8 +219,7 @@ Quote break.
Quote break.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can _put_ **Markdown** into a blockquote.
## Horizontal Rule
@ -225,11 +230,11 @@ Three or more...
Hyphens
***
---
Asterisks
___
---
Underscores
```
@ -240,11 +245,11 @@ Three or more...
Hyphens
***
---
Asterisks
___
---
Underscores
@ -253,23 +258,23 @@ Underscores
```markdown
Here's a line for us to start with.
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
This line is separated from the one above by two newlines, so it will be a _separate paragraph_.
This line is also begins a separate paragraph, but...
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the *same paragraph*.
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the _same paragraph_.
```
Here's a line for us to start with.
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
This line is separated from the one above by two newlines, so it will be a _separate paragraph_.
This line is also begins a separate paragraph, but...
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the *same paragraph*.
This line is only separated by two trailing spaces and a single newline, so it's a separate line in the _same paragraph_.
## Comments
```markdown
[comment]: # (This comment will not appear in the preview)
[comment]: # "This comment will not appear in the preview"
```
## Checkbox lists

View file

@ -1,82 +1,75 @@
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
And `maybe this` should <i>Hello</i> not be
> ### Header
>
> Header
> --------
>
>
> ## Header
- - -
---
* List 0
* List
* Hello!
- List 0
- List
- Hello!
Hello
Hello
Item 2
Hello
Item 2
Hibuli habuli!*Code here*
Hello
* Item 3
Hibuli habuli!*Code here*
* Hello again
- Item 3
Hassd *code*
- Hello again
Code here
Hassd *code*
1. Stuff
Code here
1. Stuff
Hello
Markdown FTW!
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
Yeah.
[name]: http://google.com
[foo1]: http://example.com/ "Optional Title Here"
[foo3]: http://example.com/
"'Optional Title Here"
[foo1]: http://example.com/ "Optional Title Here"
[foo3]: http://example.com/ "'Optional Title Here"
Some code
## Third headline
Third headline
-------------------
Some stuff here...

View file

@ -1,21 +1,20 @@
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
- [ ] Check out the [Important-Shortcuts](https://www.qownnotes.org/getting-started/shortcuts.html) for more productivity.
- You can click on links with `Ctrl + Click` (or `Cmd + Click` on macOS) in the editor to open them.
- You can click on links with `Ctrl + Click` (or `Cmd + Click` on macOS) in the editor to open them.
- [ ] Visit <https://www.qownnotes.org> for more information about **QOwnNotes**.
- [ ] Use the <Markdown Cheatsheet.md> to explore the **Markdown syntax**.
- [ ] Open the [Script repository](https://github.com/qownnotes/scripts) with `Alt + Shift + I` to add some additional functionality to QOwnNotes
- [ ] Add the [QOwnNotes Web Companion browser extension](https://github.com/qownnotes/web-companion) to a add notes from the selected text, bookmark management and other features
- Visit the [Chrome Web Store](https://chrome.google.com/webstore/detail/qownnotes-web-companion/pkgkfnampapjbopomdpnkckbjdnpkbkp) or [Firefox Add-ons page](https://addons.mozilla.org/firefox/addon/qownnotes-web-companion) to install the extension.
- Visit the [Chrome Web Store](https://chrome.google.com/webstore/detail/qownnotes-web-companion/pkgkfnampapjbopomdpnkckbjdnpkbkp) or [Firefox Add-ons page](https://addons.mozilla.org/firefox/addon/qownnotes-web-companion) to install the extension.
- [ ] Check [Spellchecking](https://www.qownnotes.org/editor/spellchecking.html) to setup spellchecking

View file

@ -13,30 +13,30 @@ iconThemeUrl="https://download.kde.org/stable/frameworks/${kdeFrameworkVersion}/
# Download icon from the first parameter from GitHub
downloadIcon() {
iconName=$1
# curl -L "${iconUrlPrefix}${iconName}.svg" -o "breeze-qownnotes/16x16/${iconName}.svg"
# curl -L "${darkIconUrlPrefix}${iconName}.svg" -o "breeze-dark-qownnotes/16x16/${iconName}.svg"
iconName=$1
# curl -L "${iconUrlPrefix}${iconName}.svg" -o "breeze-qownnotes/16x16/${iconName}.svg"
# curl -L "${darkIconUrlPrefix}${iconName}.svg" -o "breeze-dark-qownnotes/16x16/${iconName}.svg"
# Download iconThemeUrl to a temporary folder (because dark icons aren't hosted on GitHub any more, they are generated)
tmpDir=$(mktemp -d)
echo "Downloading breeze-icons to ${tmpDir}..."
curl -L "${iconThemeUrl}" -o "${tmpDir}/breeze-icons.tar.xz"
# Download iconThemeUrl to a temporary folder (because dark icons aren't hosted on GitHub any more, they are generated)
tmpDir=$(mktemp -d)
echo "Downloading breeze-icons to ${tmpDir}..."
curl -L "${iconThemeUrl}" -o "${tmpDir}/breeze-icons.tar.xz"
# Extract icon files
echo "Extracting breeze-icons to breeze-qownnotes/16x16 and breeze-dark-qownnotes/16x16..."
tar -xf "${tmpDir}/breeze-icons.tar.xz" -C "breeze-qownnotes/16x16" --strip-components=4 "breeze-icons-${kdeFrameworkVersion}.0/icons/actions/22/${iconName}.svg"
tar -xf "${tmpDir}/breeze-icons.tar.xz" -C "breeze-dark-qownnotes/16x16" --strip-components=4 "breeze-icons-${kdeFrameworkVersion}.0/icons-dark/actions/22/${iconName}.svg"
# Extract icon files
echo "Extracting breeze-icons to breeze-qownnotes/16x16 and breeze-dark-qownnotes/16x16..."
tar -xf "${tmpDir}/breeze-icons.tar.xz" -C "breeze-qownnotes/16x16" --strip-components=4 "breeze-icons-${kdeFrameworkVersion}.0/icons/actions/22/${iconName}.svg"
tar -xf "${tmpDir}/breeze-icons.tar.xz" -C "breeze-dark-qownnotes/16x16" --strip-components=4 "breeze-icons-${kdeFrameworkVersion}.0/icons-dark/actions/22/${iconName}.svg"
# Remove the temporary folder
echo "Removing ${tmpDir}..."
rm -rf "${tmpDir}"
# Remove the temporary folder
echo "Removing ${tmpDir}..."
rm -rf "${tmpDir}"
}
# Check if the first parameter is empty
if [ -z "$1" ]; then
echo "Please specify the icon name as the first parameter!"
echo "Example: $0 edit-delete"
exit 1
echo "Please specify the icon name as the first parameter!"
echo "Example: $0 edit-delete"
exit 1
fi
# Change to the current directory

View file

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

View file

@ -7,116 +7,115 @@ INDENT=${INDENT:-' '}
options="set smartindent|set autoindent|set nocindent"
print_help() {
echo "USAGE: $0 FILE CMD..."
echo " Run input in both Vim and FakeVim and compare result."
echo " Results are stored in FILE.vim and FILE.fakevim."
echo " Tests for FakeVim in Qt Creator are stored in \"$cmdfile\" file."
echo "USAGE: $0 FILE CMD..."
echo " Run input in both Vim and FakeVim and compare result."
echo " Results are stored in FILE.vim and FILE.fakevim."
echo " Tests for FakeVim in Qt Creator are stored in \"$cmdfile\" file."
}
print() {
for arg in "$@"; do
if [ "$arg" == "N" ]; then
printf '\n'
else
printf "%s" "$arg"
fi
done >> "$cmdfile"
for arg in "$@"; do
if [ "$arg" == "N" ]; then
printf '\n'
else
printf "%s" "$arg"
fi
done >>"$cmdfile"
}
print_content() {
local file=$1
sed \
-e 's/"/\\"/g' \
-e 's/^/'"$INDENT"'"/' \
-e 's/$/" N/' "$file" \
>> "$cmdfile"
local file=$1
sed \
-e 's/"/\\"/g' \
-e 's/^/'"$INDENT"'"/' \
-e 's/$/" N/' "$file" \
>>"$cmdfile"
}
vim_exec() {
for cmd in "$@"; do
printf "%s" "|map \\X $cmd|normal \\X"
done
for cmd in "$@"; do
printf "%s" "|map \\X $cmd|normal \\X"
done
}
run_vim() {
local file=$1
shift
"$VIM" \
-c "$options" \
-c "$(vim_exec "$@")" \
-c "normal i|" \
-c "wq" "$file"
local file=$1
shift
"$VIM" \
-c "$options" \
-c "$(vim_exec "$@")" \
-c "normal i|" \
-c "wq" "$file"
}
run_fakevim() {
local file=$1
shift
find_fakevim
"$FAKEVIM" "$file" \
":$options|set nopasskeys|set nopasscontrolkey<CR>" \
"$@" "<ESC><ESC>i|<ESC>" \
":wq<CR>"
local file=$1
shift
find_fakevim
"$FAKEVIM" "$file" \
":$options|set nopasskeys|set nopasscontrolkey<CR>" \
"$@" "<ESC><ESC>i|<ESC>" \
":wq<CR>"
}
find_fakevim() {
if [ ! -x "$FAKEVIM" ]; then
dir=$(dirname "$(readlink -f "$0")")
FAKEVIM=$(find "$dir" -type f -executable -name test | head -1)
fi
if [ ! -x "$FAKEVIM" ]; then
dir=$(dirname "$(readlink -f "$0")")
FAKEVIM=$(find "$dir" -type f -executable -name test | head -1)
fi
}
print_test() {
local header=$1
local file=$2
local footer=$3
local header=$1
local file=$2
local footer=$3
print "$header" N
print_content "$file"
print "$footer" N
print "$header" N
print_content "$file"
print "$footer" N
}
same() {
cmp "$@" >/dev/null 2>&1
cmp "$@" >/dev/null 2>&1
}
main() {
set -e
set -e
if [ "$#" -lt 2 ]; then
print_help
exit 1
fi
if [ "$#" -lt 2 ]; then
print_help
exit 1
fi
local file=$1
shift # rest are commands
local file=$1
shift # rest are commands
rm -f "$cmdfile"
#cp ~/.vimrc fakevimrc
rm -f "$cmdfile"
#cp ~/.vimrc fakevimrc
print_test 'data.setText(' "$file" ');'
print_test 'data.setText(' "$file" ');'
# run command through Vim
local vimoutfile=${file}.vim
cp "$file" "$vimoutfile"
run_vim "$vimoutfile" "$@"
# run command through Vim
local vimoutfile=${file}.vim
cp "$file" "$vimoutfile"
run_vim "$vimoutfile" "$@"
print_test "KEYS(\"$*\"," "$vimoutfile" ');'
print_test "KEYS(\"$*\"," "$vimoutfile" ');'
local fakevimoutfile=${file}.fakevim
cp "$file" "$fakevimoutfile"
run_fakevim "$fakevimoutfile" "$@"
local fakevimoutfile=${file}.fakevim
cp "$file" "$fakevimoutfile"
run_fakevim "$fakevimoutfile" "$@"
if same "$fakevimoutfile" "$vimoutfile"; then
echo OK, same result from Vim and FakeVim.
else
echo FAILED, different result from Vim and FakeVim.
$diff "$fakevimoutfile" "$vimoutfile"
fi
if same "$fakevimoutfile" "$vimoutfile"; then
echo OK, same result from Vim and FakeVim.
else
echo FAILED, different result from Vim and FakeVim.
$diff "$fakevimoutfile" "$vimoutfile"
fi
reset
cat "$cmdfile"
sed 's/^/ /' "$cmdfile" | xclip -i
reset
cat "$cmdfile"
sed 's/^/ /' "$cmdfile" | xclip -i
}
main "$@"

View file

@ -1,18 +1,18 @@
#!/bin/bash
files_to_update=(
fakevimactions.cpp
fakevimactions.h
fakevimhandler.cpp
fakevimhandler.h
fakevimtr.h
fakevimactions.cpp
fakevimactions.h
fakevimhandler.cpp
fakevimhandler.h
fakevimtr.h
utils/hostosinfo.h
utils/optional.h
utils/qtcassert.cpp
utils/qtcassert.h
utils/utils_global.h
utils/hostosinfo.h
utils/optional.h
utils/qtcassert.cpp
utils/qtcassert.h
utils/utils_global.h
3rdparty/optional/optional.hpp
3rdparty/optional/optional.hpp
)
qtc_home=$1
@ -21,14 +21,14 @@ script_dir=$(dirname "$(readlink -f "$0")")
base_dir=$script_dir/..
die() {
echo "$1" 1>&2
exit 1
echo "$1" 1>&2
exit 1
}
set -e
[ -n "$qtc_home" ] ||
die "Usage: $0 PATH_TO_QT_CREATOR"
die "Usage: $0 PATH_TO_QT_CREATOR"
echo "--- Fetching latest development code for Qt Creator"
cd "$qtc_home"
@ -39,14 +39,14 @@ commit=$(git rev-parse --short HEAD)
echo "--- Updating source files"
cd "$base_dir/fakevim"
for file in "${files_to_update[@]}"; do
echo "-- $file"
if [[ "$file" == fakevim* ]]; then
dir=plugins/fakevim
else
dir=libs
fi
rsync --mkpath -- "$qtc_home/src/$dir/$file" "$file"
git add -- "$file"
echo "-- $file"
if [[ $file == fakevim* ]]; then
dir=plugins/fakevim
else
dir=libs
fi
rsync --mkpath -- "$qtc_home/src/$dir/$file" "$file"
git add -- "$file"
done
echo "--- Patching source files and creating commit"

View file

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

View file

@ -2,9 +2,9 @@ name: CMake
on:
push:
branches: [ master ]
branches: [master]
pull_request:
branches: [ master ]
branches: [master]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
@ -19,20 +19,19 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
# 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
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: ctest -C ${{env.BUILD_TYPE}} --rerun-failed --output-on-failure

View file

@ -18,16 +18,17 @@
## Support for HTML and CSS standards
Unfortunately **litehtml** is not fully compatible with HTML/CSS standards. There is lots of work to do to make **litehtml** work as well as modern browsers. But **litehtml** supports most HTML tags and CSS properties. You can find the list of supported CSS properties in [this table](https://docs.google.com/spreadsheet/ccc?key=0AvHXl5n24PuhdHdELUdhaUl4OGlncXhDcDJuM1JpMnc&usp=sharing). For most simple usecases the HTML/CSS features supported by **litehtml** are enough. Right now **litehtml** supports even some pages with very complex HTML/CSS designs. As an example the pages created with [bootstrap framework](http://getbootstrap.com/) are usually well formatted by **litehtml**.
Unfortunately **litehtml** is not fully compatible with HTML/CSS standards. There is lots of work to do to make **litehtml** work as well as modern browsers. But **litehtml** supports most HTML tags and CSS properties. You can find the list of supported CSS properties in [this table](https://docs.google.com/spreadsheet/ccc?key=0AvHXl5n24PuhdHdELUdhaUl4OGlncXhDcDJuM1JpMnc&usp=sharing). For most simple usecases the HTML/CSS features supported by **litehtml** are enough. Right now **litehtml** supports even some pages with very complex HTML/CSS designs. As an example the pages created with [bootstrap framework](http://getbootstrap.com/) are usually well formatted by **litehtml**.
## Testing litehtml
You can [download the simple browser](http://www.litehtml.com/download.html) (**litebrowser**) to test the **litehtml** rendering engine.
The litebrowser source codes are available on GitHub:
* [For Windows](https://github.com/litehtml/litebrowser)
* [For Linux](https://github.com/litehtml/litebrowser-linux)
* [For Haiku](https://github.com/adamfowleruk/litebrowser-haiku)
- [For Windows](https://github.com/litehtml/litebrowser)
- [For Linux](https://github.com/litehtml/litebrowser-linux)
- [For Haiku](https://github.com/adamfowleruk/litebrowser-haiku)
## License

View file

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

View file

@ -1,188 +1,168 @@
Changelog
=========
# Changelog
__3.0.13a__
----------
## **3.0.13a**
* Process socket events asynchronously
* Fix undefined variable error on Windows
- Process socket events asynchronously
- Fix undefined variable error on Windows
_Francis Giraldeau_
_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_
_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_
_Jedidiah Buck McCready_
__3.0.9__
---------
## **3.0.9**
* Added SingleApplicationPrivate::primaryPid() as a solution to allow
bringing the primary window of an application to the foreground on
Windows.
- 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_
_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_
_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
QCoreApplication::instance() to get an instance to SingleApplication for
memory deallocation.
- 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
on Windows.
- 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.
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_
_Sergei Moiseev_
__3.0.4a__
----------
## **3.0.4a**
* Fixed shadow and uninitialised variable warnings.
- Fixed shadow and uninitialised variable warnings.
_Paul Walmsley_
_Paul Walmsley_
__3.0.3a__
----------
## **3.0.3a**
* 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).
- 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
a relative path (`~`) may be returned.
- 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
library to crash.
- Fixed bug on Windows when username containing wide characters causes the
library to crash.
_Le Liu_
_Le Liu_
__3.0.1a__
----------
## **3.0.1a**
* 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
elevated process run by the same user on Windows
* Fixes a problem with upper case letters in paths on Windows
- 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
elevated process run by the same user on Windows
- Fixes a problem with upper case letters in paths on Windows
_Le Liu_
_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
secondary instance.
* 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 block should be User-wide or System-wide.
* 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
been started by default. A `Mode` flag for this feature exists.
* Added `instanceNumber()` which represents a unique identifier for each
secondary instance started. When called from the primary instance will
return `0`.
- 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
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 block should be User-wide or System-wide.
- 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
been started by default. A `Mode` flag for this feature exists.
- 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
and the shared memory had not been deleted.
- 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_
_Vladislav Pyatnichenko_
__v2.2__
--------
## **v2.2**
* 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.
- 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
simultaneously.
- A race condition can no longer occur when starting two processes nearly
simultaneously.
Fix issue [#3](https://github.com/itay-grudev/SingleApplication/issues/3)
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
copy.
- SingleApplication is now being passed a reference to `argc` instead of a
copy.
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
Fix issue [#1](https://github.com/itay-grudev/SingleApplication/issues/1)
* Improved documentation.
- Improved documentation.

View file

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

View file

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

View file

@ -10,12 +10,12 @@ 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
echo "This is not a Mac"
exit 1
echo "This is not a Mac"
exit 1
fi
echo "Changing bundle identifier"
@ -53,10 +53,10 @@ security unlock-keychain -p travis osx-build.keychain
echo "Calling macdeployqt"
$QTDIR/bin/macdeployqt ./$APP.app
if [ "$?" -ne "0" ]; then
echo "Failed to run macdeployqt"
# remove keys
security delete-keychain osx-build.keychain
exit 1
echo "Failed to run macdeployqt"
# remove keys
security delete-keychain osx-build.keychain
exit 1
fi
# trying to fix the macdeployqt problem with making the binary use the Qt
@ -76,24 +76,24 @@ echo "Create $TEMPDIR"
#Create a temporary directory if one doesn't exist
mkdir -p $TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to create temporary folder"
exit 1
echo "Failed to create temporary folder"
exit 1
fi
echo "Clean $TEMPDIR"
#Delete the contents of any previous builds
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
echo "Move application bundle"
#Move the application to the temporary directory
mv ./$APP.app ./$TEMPDIR
if [ "$?" -ne "0" ]; then
echo "Failed to move application bundle"
exit 1
echo "Failed to move application bundle"
exit 1
fi
#echo "Sign the code"
@ -109,8 +109,8 @@ echo "Create symbolic link"
#Create a symbolic link to the applications folder
ln -s /Applications ./$TEMPDIR/Applications
if [ "$?" -ne "0" ]; then
echo "Failed to create link to /Applications"
exit 1
echo "Failed to create link to /Applications"
exit 1
fi
echo "Create new disk image"
@ -118,8 +118,8 @@ echo "Create new disk image"
rm -f ./$APP.dmg
hdiutil create -srcfolder ./$TEMPDIR -ov -format UDBZ -fs HFS+ ./$APP.dmg
if [ "$?" -ne "0" ]; then
echo "Failed to create disk image"
exit 1
echo "Failed to create disk image"
exit 1
fi
#echo "Code signing disk image"
@ -134,13 +134,13 @@ mv $APP.dmg $APP-$VERSION_NUMBER.dmg
echo "Removing keys"
# remove keys
security delete-keychain osx-build.keychain
security delete-keychain osx-build.keychain
# delete the temporary directory
rm -Rf ./$TEMPDIR/*
if [ "$?" -ne "0" ]; then
echo "Failed to clean temporary folder"
exit 1
echo "Failed to clean temporary folder"
exit 1
fi
exit 0

View file

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

View file

@ -16,8 +16,7 @@ BRANCH=main
#BRANCH=release
# https://wiki.ubuntu.com/Releases
UBUNTU_RELEASES=( "jammy" "noble" "oracular" )
UBUNTU_RELEASES=("jammy" "noble" "oracular")
DATE=$(LC_ALL=C date +'%a, %d %b %Y %T %z')
PROJECT_PATH="/tmp/QOwnNotes-$$"
@ -30,21 +29,22 @@ 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
case "$1" in
--no-upload) UPLOAD="false"
;;
--no-orig-tar-upload) DEBUILD_ARGS="-sd"
;;
esac
shift
while test $# -gt 0; do
case "$1" in
--no-upload)
UPLOAD="false"
;;
--no-orig-tar-upload)
DEBUILD_ARGS="-sd"
;;
esac
shift
done
echo "Started the debian source packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
# checkout the source code
@ -58,15 +58,15 @@ git submodule update --init
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"`
# get version from version.h
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
# 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,41 +89,39 @@ changelogPath=debian/changelog
gpg --list-secret-keys
# build for every Ubuntu release
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"
do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir || exit 1
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"; do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir || exit 1
# get the modified qt6 files in place
# cp ../ubuntu-launchpad/qt6/* debian
cp /QOwnNotes/ubuntu-launchpad/qt6/* debian
# get the modified qt6 files in place
# cp ../ubuntu-launchpad/qt6/* debian
cp /QOwnNotes/ubuntu-launchpad/qt6/* debian
versionPart="$QOWNNOTES_VERSION-1ubuntu3ppa1~${ubuntuRelease}1"
versionPart="$QOWNNOTES_VERSION-1ubuntu3ppa1~${ubuntuRelease}1"
# update the changelog file
#dch -v $versionPart $changelogText
#dch -r $changelogText
# create the changelog file
echo "qownnotes-qt6 ($versionPart) $ubuntuRelease; urgency=low" > $changelogPath
echo "" >> $changelogPath
echo " * $changelogText" >> $changelogPath
echo "" >> $changelogPath
echo " -- $DEBFULLNAME <$DEBEMAIL> $DATE" >> $changelogPath
# update the changelog file
#dch -v $versionPart $changelogText
#dch -r $changelogText
# launch debuild
debuild -S -sa -k$SIGNING_EMAIL $DEBUILD_ARGS
cd ..
# create the changelog file
echo "qownnotes-qt6 ($versionPart) $ubuntuRelease; urgency=low" >$changelogPath
echo "" >>$changelogPath
echo " * $changelogText" >>$changelogPath
echo "" >>$changelogPath
echo " -- $DEBFULLNAME <$DEBEMAIL> $DATE" >>$changelogPath
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes-qt6 qownnotes-qt6_${versionPart}_source.changes
fi;
# launch debuild
debuild -S -sa -k$SIGNING_EMAIL $DEBUILD_ARGS
cd ..
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes-qt6 qownnotes-qt6_${versionPart}_source.changes
fi
done
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -21,8 +21,7 @@
BRANCH=main
#BRANCH=master
UBUNTU_RELEASES=( "trusty" )
UBUNTU_RELEASES=("trusty")
DATE=$(LC_ALL=C date +'%a, %d %b %Y %T %z')
PROJECT_PATH="/tmp/QOwnNotes-$$"
@ -33,22 +32,22 @@ GPG_PUBLIC_KEY=F5161BD3
export DEBFULLNAME="Patrizio Bekerle"
export DEBEMAIL="patrizio@bekerle.com"
while test $# -gt 0
do
case "$1" in
--no-upload) UPLOAD="false"
;;
--no-orig-tar-upload) DEBUILD_ARGS="-sd"
;;
esac
shift
while test $# -gt 0; do
case "$1" in
--no-upload)
UPLOAD="false"
;;
--no-orig-tar-upload)
DEBUILD_ARGS="-sd"
;;
esac
shift
done
echo "Started the debian source packaging process for trusty, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
# checkout the source code
@ -59,15 +58,15 @@ cd $PROJECT_PATH
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"`
# get version from version.h
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
# 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,41 +83,39 @@ tar -czf $qownnotesSrcDir.orig.tar.gz $qownnotesSrcDir
changelogPath=debian/changelog
# build for every Ubuntu release
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"
do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"; do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir
# get the modified trusty files in place
cp ../ubuntu-launchpad/trusty/* debian
# cp ../ubuntu-launchpad/trusty/rules debian
# get the modified trusty files in place
cp ../ubuntu-launchpad/trusty/* debian
# cp ../ubuntu-launchpad/trusty/rules debian
versionPart="$QOWNNOTES_VERSION-1ubuntu3ppa1~${ubuntuRelease}1"
versionPart="$QOWNNOTES_VERSION-1ubuntu3ppa1~${ubuntuRelease}1"
# update the changelog file
#dch -v $versionPart $changelogText
#dch -r $changelogText
# create the changelog file
echo "qownnotes ($versionPart) $ubuntuRelease; urgency=low" > $changelogPath
echo "" >> $changelogPath
echo " * $changelogText" >> $changelogPath
echo "" >> $changelogPath
echo " -- $DEBFULLNAME <$DEBEMAIL> $DATE" >> $changelogPath
# update the changelog file
#dch -v $versionPart $changelogText
#dch -r $changelogText
# launch debuild
debuild -S -sa -k$GPG_PUBLIC_KEY $DEBUILD_ARGS
cd ..
# create the changelog file
echo "qownnotes ($versionPart) $ubuntuRelease; urgency=low" >$changelogPath
echo "" >>$changelogPath
echo " * $changelogText" >>$changelogPath
echo "" >>$changelogPath
echo " -- $DEBFULLNAME <$DEBEMAIL> $DATE" >>$changelogPath
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes-trusty qownnotes_${versionPart}_source.changes
fi
# launch debuild
debuild -S -sa -k$GPG_PUBLIC_KEY $DEBUILD_ARGS
cd ..
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes-trusty qownnotes_${versionPart}_source.changes
fi
done
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

@ -16,8 +16,7 @@ BRANCH=main
#BRANCH=release
# https://wiki.ubuntu.com/Releases
UBUNTU_RELEASES=( "bionic" "focal" "jammy" "noble" "oracular" )
UBUNTU_RELEASES=("bionic" "focal" "jammy" "noble" "oracular")
DATE=$(LC_ALL=C date +'%a, %d %b %Y %T %z')
PROJECT_PATH="/tmp/QOwnNotes-$$"
@ -27,22 +26,22 @@ SIGNING_EMAIL=patrizio@bekerle.com
export DEBFULLNAME="Patrizio Bekerle"
export DEBEMAIL="patrizio@bekerle.com"
while test $# -gt 0
do
case "$1" in
--no-upload) UPLOAD="false"
;;
--no-orig-tar-upload) DEBUILD_ARGS="-sd"
;;
esac
shift
while test $# -gt 0; do
case "$1" in
--no-upload)
UPLOAD="false"
;;
--no-orig-tar-upload)
DEBUILD_ARGS="-sd"
;;
esac
shift
done
echo "Started the debian source packaging process, using latest '$BRANCH' git tree"
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi
# checkout the source code
@ -56,15 +55,15 @@ git submodule update --init
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"`
# get version from version.h
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
# 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,37 +83,35 @@ changelogPath=debian/changelog
gpg --list-secret-keys
# build for every Ubuntu release
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"
do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir || exit 1
for ubuntuRelease in "${UBUNTU_RELEASES[@]}"; do
:
echo "Building for $ubuntuRelease..."
cd $qownnotesSrcDir || exit 1
versionPart="$QOWNNOTES_VERSION-1ubuntu3ppa1~${ubuntuRelease}1"
versionPart="$QOWNNOTES_VERSION-1ubuntu3ppa1~${ubuntuRelease}1"
# update the changelog file
#dch -v $versionPart $changelogText
#dch -r $changelogText
# create the changelog file
echo "qownnotes ($versionPart) $ubuntuRelease; urgency=low" > $changelogPath
echo "" >> $changelogPath
echo " * $changelogText" >> $changelogPath
echo "" >> $changelogPath
echo " -- $DEBFULLNAME <$DEBEMAIL> $DATE" >> $changelogPath
# update the changelog file
#dch -v $versionPart $changelogText
#dch -r $changelogText
# launch debuild
debuild -S -sa -k$SIGNING_EMAIL $DEBUILD_ARGS
cd ..
# create the changelog file
echo "qownnotes ($versionPart) $ubuntuRelease; urgency=low" >$changelogPath
echo "" >>$changelogPath
echo " * $changelogText" >>$changelogPath
echo "" >>$changelogPath
echo " -- $DEBFULLNAME <$DEBEMAIL> $DATE" >>$changelogPath
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes qownnotes_${versionPart}_source.changes
fi;
# launch debuild
debuild -S -sa -k$SIGNING_EMAIL $DEBUILD_ARGS
cd ..
# send to launchpad
if [ "$UPLOAD" = "true" ]; then
dput ppa:pbek/qownnotes qownnotes_${versionPart}_source.changes
fi
done
# remove everything after we are done
if [ -d $PROJECT_PATH ]; then
rm -rf $PROJECT_PATH
rm -rf $PROJECT_PATH
fi

View file

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

View file

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

View file

@ -4,7 +4,7 @@
# Deprecated: Is now done with Crowdin directly!
#
compileContent(){
compileContent() {
echo -e "[START $1]\n\n"
cat "$1"
echo -e "\n\n[END $1]\n"
@ -13,4 +13,4 @@ compileContent(){
# shellcheck disable=SC2164
cd src
export -f compileContent
find -type f \( -iname "*.md" ! -iname "changelog.md" \) ! -path "./de/*" ! -path "./blog/*" ! -path "changelog.md" ! -path "./.vuepress/*" -exec bash -c 'compileContent "$0"' {} \; > english.txt
find -type f \( -iname "*.md" ! -iname "changelog.md" \) ! -path "./de/*" ! -path "./blog/*" ! -path "changelog.md" ! -path "./.vuepress/*" -exec bash -c 'compileContent "$0"' {} \; >english.txt

View file

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

View file

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

View file

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

View file

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

View file

@ -1,44 +1,34 @@
<template>
<div>
<v-snackbar
id="poll"
v-model="snackbar"
fixed
bottom
right
color="#389d70"
:timeout="-1"
id="poll"
v-model="snackbar"
fixed
bottom
right
color="#389d70"
:timeout="-1"
>
<v-text-field
v-model="answer"
:counter="200"
label="How did you find out about QOwnNotes?"
required
@keydown.enter="submit"
v-model="answer"
:counter="200"
label="How did you find out about QOwnNotes?"
required
@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>
<v-snackbar
v-model="success"
fixed
bottom
right
color="#389d70"
:timeout="1500"
v-model="success"
fixed
bottom
right
color="#389d70"
:timeout="1500"
>
Thank you for letting us know!
</v-snackbar>
@ -46,57 +36,59 @@
</template>
<script>
export default {
props: ['action', 'name'],
data() {
return {
snackbar: false,
success: false,
answer: "",
pollId: 1,
sentPolls: []
export default {
props: ["action", "name"],
data() {
return {
snackbar: false,
success: false,
answer: "",
pollId: 1,
sentPolls: [],
};
},
mounted() {
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)) {
this.snackbar = true;
}
},
methods: {
submit() {
if (this.answer === "") {
return;
}
},
mounted() {
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)) {
this.snackbar = true;
// store that poll was sent, so it will not be asked for next time
// (local storage will be synced across devices by the browser)
this.sentPolls.push(this.pollId);
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]);
}
this.snackbar = false;
this.success = true;
},
methods: {
submit () {
if (this.answer === "") {
return;
}
// store that poll was sent, so it will not be asked for next time
// (local storage will be synced across devices by the browser)
this.sentPolls.push(this.pollId);
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]);
}
this.snackbar = false;
this.success = true;
},
},
}
},
};
</script>
<style>
#poll .v-snack__wrapper {
width: 352px;
min-width: 100px;
}
#poll .v-snack__wrapper {
width: 352px;
min-width: 100px;
}
#poll .v-input {
padding-top: 5px;
/* Force LTR so the first part of the question is readable */
direction: ltr;
}
#poll .v-input {
padding-top: 5px;
/* Force LTR so the first part of the question is readable */
direction: ltr;
}
</style>

View file

@ -1,53 +1,63 @@
<template>
<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-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-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>
</v-list-item-content>
</v-list-item>
</v-col>
</v-row>
<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-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-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
>
</v-list-item-content>
</v-list-item>
</v-col>
</v-row>
</v-card>
</template>
<script>
export default {
props: ['backgroundImg', 'img', 'name', 'functions', 'github', 'keybase', 'crowdin'],
}
export default {
props: [
"backgroundImg",
"img",
"name",
"functions",
"github",
"keybase",
"crowdin",
],
};
</script>
<style scoped>
.v-card {
margin-bottom: 20px;
}
.v-card {
margin-bottom: 20px;
}
.v-avatar {
margin-left: 10px;
}
</style>
.v-avatar {
margin-left: 10px;
}
</style>

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

@ -3,11 +3,17 @@
<template #page-bottom>
<div class="page-nav">
<div>
Crafted by <a href="https://bekerle.com" target="_blank">Patrizio Bekerle</a> with
Crafted by
<a href="https://bekerle.com" target="_blank">Patrizio Bekerle</a>
with
</div>
<div class="social">
<a href="https://github.com/pbek/QOwnNotes" target="_blank"><v-icon>mdi-github</v-icon></a>
<a href="https://social.qownnotes.org/@qownnotes" target="_blank"><v-icon>mdi-mastodon</v-icon></a>
<a href="https://github.com/pbek/QOwnNotes" target="_blank"
><v-icon>mdi-github</v-icon></a
>
<a href="https://social.qownnotes.org/@qownnotes" target="_blank"
><v-icon>mdi-mastodon</v-icon></a
>
</div>
</div>
@ -17,30 +23,30 @@
</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>
.page-nav {
display: grid;
grid-template-columns: 50% auto;
}
.page-nav {
display: grid;
grid-template-columns: 50% auto;
}
.social {
text-align: right;
}
.social {
text-align: right;
}
</style>
<style>
.theme-default-content:not(.custom) {
max-width: 900px;
}
.theme-default-content:not(.custom) {
max-width: 900px;
}
</style>

View file

@ -1,61 +1,61 @@
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 => {
// Instantiate MarkdownIt
md = new markdownIt();
// Add markdown-it-meta
md.use(meta);
// Get the order value
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')) {
path = path.slice(0, -6);
}
files = glob
.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");
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")) {
path = path.slice(0, -6);
}
return {
path,
order
};
});
return {
path,
order,
};
});
// Return the ordered list of files, sort by 'order' then 'path'
let result = _.sortBy(files, ['order', 'path']);
// Return the ordered list of files, sort by 'order' then 'path'
let result = _.sortBy(files, ["order", "path"]);
if (reverseOrder) {
result = result.reverse();
}
if (reverseOrder) {
result = result.reverse();
}
return result.map(file => file.path);
return result.map((file) => file.path);
};
const getNavItemsForLanguage = (navItems, language) => {
let resultNavItems = [];
let resultNavItems = [];
navItems.forEach((navItem) => {
resultNavItems.push(language + '/' + navItem);
});
navItems.forEach((navItem) => {
resultNavItems.push(language + "/" + navItem);
});
return resultNavItems;
}
return resultNavItems;
};
const getNavItemForLanguage = (navItem, language) => {
return '/' + language + navItem;
}
return "/" + language + navItem;
};
module.exports = {
getChildren,
getNavItemsForLanguage,
getNavItemForLanguage,
getChildren,
getNavItemsForLanguage,
getNavItemForLanguage,
};

View file

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

View file

@ -3,16 +3,17 @@
أصلح أخطاءك الإملائية!
::: 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>
- إذا احتجتَ إلى إضافة ملفات لغات إضافية، يمكنك فعل ذلك في <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>
- في **ويندوز** عليك نسخ قواميس Hunspell للغتك إلى مجلد `dicts` في مجلد تطبيق QOwnNotes أو في `C:\Users\[username]\dicts`
- يمكنك تنزيل القواميس من [قواميس ليبر أوفيس](https://github.com/LibreOffice/dictionaries)
- في **ماك أو إس** عليك نسخ قواميس Hunspell للغتك إلى <code dir="ltr">/Library/Spelling</code> أو <code dir="ltr">~/Library/Spelling</code>. إذا لم يكن هذا المجلد موجودا، عليك إنشاؤه.
- يمكنك تنزيل القواميس من [قواميس ليبر أوفيس](https://github.com/LibreOffice/dictionaries)
- في **ماك أو إس** عليك نسخ قواميس Hunspell للغتك إلى <code dir="ltr">/Library/Spelling</code> أو <code dir="ltr">~/Library/Spelling</code>. إذا لم يكن هذا المجلد موجودا، عليك إنشاؤه.
يمكن تنزيل القواميس من [قواميس QOwnNotes](https://github.com/qownnotes/dictionaries). استخدم الجدول الذي في نهاية هذا المستند لتجد لغتك والرمز المناظر لها.
@ -22,60 +23,60 @@
معلومة إذا لم تستطع العثور على لغتك في هذا الجدول، فللأسف ليس لها قاموس في ملفات ليبر أوفيس — إذا أردت إنشاء قاموس، اذهب إلى صفحة [تطوير القواميس على موقع منظمة المستند (بالإنجليزية)](https://wiki.documentfoundation.org/Development/Dictionaries)
:::
| م | رمز اللغة | اللغة |
| -- | --------- | --------------------------------- |
| 1 | af_ZA | الأفريكانية (جنوب أفريقيا) |
| 2 | an_ES | الأراغونية (إسبانيا) |
| 3 | ar | العربية |
| 4 | be_BY | البيلاروسية |
| 5 | bg_BG | البلغارية |
| 6 | bn_BD | البنغالية |
| 7 | bo | التبتية |
| 8 | br_FR | البريتانية (فرنسا) |
| 9 | bs_BA | البوسنية |
| 10 | ca | الكاتالونية |
| 11 | cs_CZ | التشيكية |
| 12 | da_DK | الدانماركية |
| 13 | de | الألمانية |
| 14 | el_GR | اليونانية |
| 15 | en | الإنجليزية |
| 16 | es | الإسبانية |
| 17 | et_EE | الإستونية |
| 18 | gd_GB | الغيلية |
| 19 | gl | الغاليسية |
| 20 | gu_IN | الكجراتية |
| 21 | gug | الغوارانية |
| 22 | he_IL | العبرية |
| 23 | hi_IN | الهندية |
| 24 | hr_HR | الكرواتية |
| 25 | id | الإندونيسية |
| 26 | it_IT | الإيطالية |
| 27 | kmr_Latn | الكردية (تركيا) |
| 28 | lo_LA | اللاوية |
| 29 | lt_LT | الليتوانية |
| 30 | lv_LV | اللاتفية |
| 31 | ne_NP | النيبالية |
| 32 | nl_NL | الهولندية |
| 33 | no | النرويجية |
| 34 | oc_FR | الأكستانية |
| 35 | pl_PL | البولندية |
| 36 | pt_BR | البرتغالية البرازيلية |
| 37 | pt_PT | البرتغالية |
| 38 | ro | الرومانية |
| 39 | ru_RU | الروسية |
| 40 | si_LK | السنهالية |
| 41 | sk_SK | السلوفاكية |
| 42 | sl_Sl | السلوفينية |
| 43 | sq_AL | الألبانية |
| 44 | sr | الصربية |
| 45 | sv_SE | السويدية |
| 46 | sw_TZ | السواحلية |
| 47 | te_IN | التيلوغوية |
| 48 | th_TH | التايلاندية |
| 49 | tr_TR | التركية |
| 51 | uk_UA | الأوكرانية |
| 52 | vi | الفيتنامية |
| 53 | zu_ZA | الزولوية (قاموس الإملاء غير متاح) |
| م | رمز اللغة | اللغة |
| --- | --------- | --------------------------------- |
| 1 | af_ZA | الأفريكانية (جنوب أفريقيا) |
| 2 | an_ES | الأراغونية (إسبانيا) |
| 3 | ar | العربية |
| 4 | be_BY | البيلاروسية |
| 5 | bg_BG | البلغارية |
| 6 | bn_BD | البنغالية |
| 7 | bo | التبتية |
| 8 | br_FR | البريتانية (فرنسا) |
| 9 | bs_BA | البوسنية |
| 10 | ca | الكاتالونية |
| 11 | cs_CZ | التشيكية |
| 12 | da_DK | الدانماركية |
| 13 | de | الألمانية |
| 14 | el_GR | اليونانية |
| 15 | en | الإنجليزية |
| 16 | es | الإسبانية |
| 17 | et_EE | الإستونية |
| 18 | gd_GB | الغيلية |
| 19 | gl | الغاليسية |
| 20 | gu_IN | الكجراتية |
| 21 | gug | الغوارانية |
| 22 | he_IL | العبرية |
| 23 | hi_IN | الهندية |
| 24 | hr_HR | الكرواتية |
| 25 | id | الإندونيسية |
| 26 | it_IT | الإيطالية |
| 27 | kmr_Latn | الكردية (تركيا) |
| 28 | lo_LA | اللاوية |
| 29 | lt_LT | الليتوانية |
| 30 | lv_LV | اللاتفية |
| 31 | ne_NP | النيبالية |
| 32 | nl_NL | الهولندية |
| 33 | no | النرويجية |
| 34 | oc_FR | الأكستانية |
| 35 | pl_PL | البولندية |
| 36 | pt_BR | البرتغالية البرازيلية |
| 37 | pt_PT | البرتغالية |
| 38 | ro | الرومانية |
| 39 | ru_RU | الروسية |
| 40 | si_LK | السنهالية |
| 41 | sk_SK | السلوفاكية |
| 42 | sl_Sl | السلوفينية |
| 43 | sq_AL | الألبانية |
| 44 | sr | الصربية |
| 45 | sv_SE | السويدية |
| 46 | sw_TZ | السواحلية |
| 47 | te_IN | التيلوغوية |
| 48 | th_TH | التايلاندية |
| 49 | tr_TR | التركية |
| 51 | uk_UA | الأوكرانية |
| 52 | vi | الفيتنامية |
| 53 | zu_ZA | الزولوية (قاموس الإملاء غير متاح) |
::: tip
شكر نستخدم [Sonnet](https://github.com/KDE/sonnet) مع [Hunspell](https://hunspell.github.io/) للتدقيق الإملائي

View file

@ -7,11 +7,11 @@
- [Pro-Linux: Informationen zu QOwnNotes](http://www.pro-linux.de/cgi-bin/DBApp/check.cgi?ShowApp..20415.100)
- [Educators for free and open source resources: Note taking software](http://freeandopensourcesineducation.blogspot.co.at/2016/01/note-taking-software.html)
- **Linux Voice 25**
- <http://shop.linuxvoice.com/products/single-issues?src=menu>
- [QOwnNotes ظهر كمميز في منصة Linux Voice 25](https://www.qownnotes.org/blog/2016-03-25-QOwnNotes-got-featured-in-Linux-Voice-25.html)
- <http://shop.linuxvoice.com/products/single-issues?src=menu>
- [QOwnNotes ظهر كمميز في منصة Linux Voice 25](https://www.qownnotes.org/blog/2016-03-25-QOwnNotes-got-featured-in-Linux-Voice-25.html)
- **Linux Action Show 410 / Desktop App Pick**
- <http://www.jupiterbroadcasting.com/98121/floating-on-owncloud-9-las-410/>
- <http://jupiterbroadcasting.com/laspicks/desktop-apps.php>
- <http://www.jupiterbroadcasting.com/98121/floating-on-owncloud-9-las-410/>
- <http://jupiterbroadcasting.com/laspicks/desktop-apps.php>
- [Softwarová sklizeň (6. 4. 2016) - Root.cz](http://www.root.cz/clanky/softwarova-sklizen-6-4-2016/)
- [Note Taking Apps Collection For Your Ubuntu/Linux Mint - NoobsLab | Ubuntu/Linux News, Reviews, Tutorials, Apps](http://www.noobslab.com/2016/04/note-taking-apps-collection-for-your.html)
- <http://www.linuxlinks.com/article/20160417070643251/QOwnNotes.html>
@ -39,7 +39,7 @@
- [QOwnNotes على Softpedia](http://mac.softpedia.com/get/Utilities/QOwnNotes.shtml)
- [QOwnNotes على Neowin](https://www.neowin.net/news/qownnotes-16118-build-2489)
- [QOwnNotes في Solus OS](https://dev.solus-project.com/T1687)
- <https://git.solus-project.com/packages/qownnotes>
- <https://git.solus-project.com/packages/qownnotes>
- [QOwnNotes على beOpen](http://beopen.bplaced.net/2016/11/qownnotes-16-11-14/)
- [QOwnNotes على Yazı Kovanı](http://www.yazikovani.com/2016/11/06/gnulinux-icin-not-tutma-programlari)
- [QOwnNotes على sDown](https://www.sdown.eu/windows/qownnotes.html)
@ -56,11 +56,11 @@
- [QOwnNotes على Chocolatey](https://chocolatey.org/packages/qownnotes)
- [What comes after Evernote? A QOwnNotes review. | JawFodder](http://www.jawfodder.com/what-comes-after-evernote-a-qownnotes-review/)
- [Taking Notes with Nextcloud, QOwnNotes, and Notebooks](https://lifemeetscode.com/blog/2017/05/03/taking-notes-nextcloud-qownnotes-notebooks/)
- using [Notebooks](http://www.notebooksapp.com/) to sync Notes via WebDAV on iOS
- using [Notebooks](http://www.notebooksapp.com/) to sync Notes via WebDAV on iOS
- [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/)
@ -70,23 +70,23 @@
- [QOwnNotes - A To-Do List Manager with Markdown and OwnCloud Support](https://www.fossmint.com/qownnotes-a-to-do-list-with-markdown-owncloud-support/)
- [Joplin A note-taking and to-do app with builds for desktop, mobile, terminal | Hacker News](https://news.ycombinator.com/item?id=15815040)
- <http://www.thumbapps.org/2017/07/QOwnNotes-portable-text-markdown-editor-and-todo-list-manager.html>
- They also have created their own `QOwnNotesPortable_17.06.6_Build_3071.paf` [HOW TO INSTALL QOWNNOTES IN UBUNTU 16.04 - A NOTE TAKING SOFTWARE FOR LINUX](http://www.elinuxbook.com/install-qownnotes-in-ubuntu-16-04-a-note-taking-software-for-linux/)
- They also have created their own `QOwnNotesPortable_17.06.6_Build_3071.paf` [HOW TO INSTALL QOWNNOTES IN UBUNTU 16.04 - A NOTE TAKING SOFTWARE FOR LINUX](http://www.elinuxbook.com/install-qownnotes-in-ubuntu-16-04-a-note-taking-software-for-linux/)
- [QOwnNotes A Great Note Taking App For Linux - LinuxAndUbuntu - Linux News | Apps Reviews | Linux Tutorials HowTo](http://www.linuxandubuntu.com/home/qownnotes-a-great-note-taking-app-for-linux)
- [Solus Users Receive Linux Kernel 4.8.10 and Vivaldi 1.5, QOwnNotes Lands as Well](http://news.softpedia.com/news/solus-users-receive-linux-kernel-4-8-10-and-vivaldi-1-5-qownnotes-lands-as-well-510481.shtml)
- **[Notizverwaltung : QOwnNotes 17.09.6 | c't Magazin](https://www.heise.de/ct/ausgabe/2017-21-Notizverwaltung-QOwnNotes-17-09-6-3840130.html)**
- [Software: QOwnNotes, VirtualBox, Green Recorder, Notes | Tux Machines](http://www.tuxmachines.org/node/103720)
- [Software and howtos: QOwnNotes, MPV Player 0.27, Qt 5.10 Alpha and More | Tux Machines](http://www.tuxmachines.org/node/104778)
- [Software and howtos: QOwnNotes, MPV Player 0.27, Qt 5.10 Alpha and More | Tux Machines](http://www.tuxmachines.org/node/104778)
- [QOwnNotes - Cross Platform Open Source Note-Taking App for Ubuntu](https://www.ubuntupit.com/qownnotes-cross-platform-open-source-note-taking-app-ubuntu/)
- [QOwnNotes Review - Slant](https://www.slant.co/improve/options/22491/~qownnotes-review)
- [QOwnNotes - libellules.ch](http://www.libellules.ch/dotclear/index.php?post/2017/11/08/QOwnNotes)
- [7 Free Evernote Alternatives - Best Note Taking App With Simple Interface](https://www.geckoandfly.com/24387/note-taking-app/)
- [Scout Archives - QOwnNotes](https://scout.wisc.edu/archives/r49075)
- [The Scout Report -- Volume 23, Number 49 | Internet Scout](https://scout.wisc.edu/report/2017/1208)
- [The Scout Report -- Volume 23, Number 49 | Internet Scout](https://scout.wisc.edu/report/2017/1208)
- [QOwnNotes App of the Week - ownCloud](https://owncloud.org/news/qownnotes-app-week)
- [Snapcraft on Twitter: "Get your notes on order! 📝 @QOwnNotes is a fast and beautiful text editor which supports local saving and storage in your own cloud. Install… https://t.co/2yGYmPb7g2"](https://twitter.com/snapcraftio/status/951109910410027010)
- [Ubuntu on Twitter: "Get your notes on order! 📝 @QOwnNotes is a fast and beautiful text editor which supports local saving and storage in your own cloud. Instal… https://t.co/4W4o9OfdFo"](https://twitter.com/ubuntu/status/951472292495876096)
- [QOwnNotes - Notizverwaltung auf Nextcloud - Die Welt und ich](https://www.kussaw.de/2017/02/qownnotes-notizen-auf-nextcloud/)
- <https://www.kussaw.de/2017/04/qownnotes-und-android/>
- <https://www.kussaw.de/2017/04/qownnotes-und-android/>
- [QOwnNotes / Приложение для ведения заметок, блокнот с поддержкой менеджера списка задач](http://zenway.ru/page/qownnotes)
- [Windows софт - 6 лучших альтернатив «блокнот windows» | 5FPS.ru - Community](http://5fps.ru/threads/6-luchshix-alternativ-bloknot-windows.34126/)
- [Como instalar o gerenciador de lista de tarefas QOwnNotes no Ubuntu](http://www.edivaldobrito.com.br/qownnotes-no-ubuntu/)
@ -97,7 +97,7 @@
- <https://appimage.github.io/QOwnNotes/>
- [Como instalar o gerenciador de lista de tarefas QOwnNotes no Ubuntu](https://www.edivaldobrito.com.br/qownnotes-no-ubuntu/)
- [Download QOwnNotes - MajorGeeks](https://www.majorgeeks.com/files/details/qownnotes.html)
- [Text Editors - MajorGeeks](https://www.majorgeeks.com/files/categories/text_editors.html)
- [Text Editors - MajorGeeks](https://www.majorgeeks.com/files/categories/text_editors.html)
- [QOwnNotes: editor de texto con soporte para sincronización con servicios en la nube](https://blog.desdelinux.net/qownnotes-editor-de-texto-con-soporte-para-sincronizacion-con-servicios-en-la-nube/)
- [Programtips: Qownnotes 18.06.1 - Datormagazin](https://www.datormagazin.se/2018/programtips-qownnotes-18-06-1/)
- [Programtips: Qownnotes 18.08.1 - Datormagazin](https://www.datormagazin.se/2018/programtips-qownnotes-18-06-1/)
@ -105,7 +105,7 @@
- [QOwnNotes - Make Tech Easier Software](https://www.maketecheasier.com/software/qownnotes/)
- [QOwnNotes 18.11.3 ~ Software182 | Free Download Software Updates !](https://www.software182.com/2018/11/qownnotes.html)
- [第530回 QOwnNotesでメモを取るUbuntu Weekly Recipegihyo.jp … 技術評論社](https://gihyo.jp/admin/serial/01/ubuntu-recipe/0530)
- لقطات شاشة باليابانية
- لقطات شاشة باليابانية
- مقال [العدد ٢٦٠ من مجلة PC Press PC](http://pc.pcpress.rs/broj.php?broj=260)
- [Er zijn veel open source Linux apps om notities te nemen en taken bij te houden. QOwnNotes doet beiden. QOwnNotes slaat notities op in tekstbestanden en ondersteunt de opmaakstandaard Markdown. : PindaNet](https://www.reddit.com/r/PindaNet/comments/acw0sr/er_zijn_veel_open_source_linux_apps_om_notities/)
- [QownNotes 19.2.5 скачать менеджер заметок с функцией синхронизацией.](https://zoomexe.net/ofis/organizers/3649-qownnotes.html)
@ -117,9 +117,9 @@
- [Search for the near-perfect note taking software - DEV Community 👩‍💻👨‍💻](https://dev.to/animesh/search-for-the-near-perfect-note-taking-software-2phi)
- [笔记记事工具 QOwnNotes v19.8.6 绿色版-NoCmd](https://www.nocmd.com/8275.html)
- [Brutal Alternativa a Bloc de Notas - Descargar QOwnNotes Gratis Ultima Versión - YouTube](https://www.youtube.com/watch?v=U52AQ8I3HHk)
- [Brutal Alternativa a Bloc de Notas - Descargar QOwnNotes Gratis Ultima Versión](https://www.yoututosjeff.es/2018/11/descargar-QOwnNotes-gratis-ultima-version.html)
- [Brutal Alternativa a Bloc de Notas - Descargar QOwnNotes Gratis Ultima Versión](https://www.yoututosjeff.es/2018/11/descargar-QOwnNotes-gratis-ultima-version.html)
- [QOwnNotes](https://www.slant.co/topics/1852/viewpoints/17/~best-markdown-editors-for-windows~qownnotes)
- <https://www.slant.co/topics/1852/~best-markdown-editors-for-windows>
- <https://www.slant.co/topics/1852/~best-markdown-editors-for-windows>
- [NValt on Windows · Voxcaster](https://www.vox.me.uk/post/2018/12/nvalt-on-windows/)
- [QOwnNotes - QOwnNotes is a plain-text file notepad and todo-list manager with markdown support and ownCloud Nextcloud integration](https://www.findbestopensource.com/product/pbek-qownnotes)
- [QOwnNotes一款记录笔记和待办事项的应用集成 ownCloud 云服务](https://www.toutiao.com/a6330193218257666305/)
@ -135,25 +135,25 @@
- [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)
- [Органайзеры и заметки. Программы для Linux](https://pingvinus.ru/programs/office/personal-information-managers)
- [QOwnNotes is an open source note taking tool for Windows, Linux and macOS that supports Markdown - Pin System](https://pinsystem.co.uk/2019/11/22/qownnotes-is-an-open-source-note-taking-tool-for-windows-linux-and-macos-that-supports-markdown/)
- [QOwnNotes - Notepad mit Nextcloud Anbindung | ITrig](http://www.itrig.de/index.php?/archives/2341-QOwnNotes-Notepad-mit-Nextcloud-Anbindung.html)
- Chip Magazin (3.2.2020 im Handel)
- [QOwnNotes for Debian There and back again](https://www.preining.info/blog/2020/02/qownnotes-for-debian/)
- هذا كان على <https://planet.debian.org/>
- هذا كان على <https://planet.debian.org/>
- [Search for the near-perfect note taking software | Animesh Bulusu](https://animesh.blog/near-perfect-note-taking-software/)
- [qownnotes (Wiki ubuntu-fr)](http://doc.ubuntu-fr.org/qownnotes)
- [Taking Notes with Nextcloud, QOwnNotes, and Notebooks | Life Meets Code](https://lifemeetscode.com/blog/taking-notes-with-nextcloud-qownnotes-and-notebooks)
- full install tutorial with Nextcloud Notes and Android Client
- full install tutorial with Nextcloud Notes and Android Client
- [Get Organized with the Simple, Yet Powerful QOwnNotes - Make Tech Easier](https://www.maketecheasier.com/get-organized-with-qownnotes/)
- معلومات كثيرة وطويلة!
- معلومات كثيرة وطويلة!
- [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)
- [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)
@ -166,7 +166,7 @@
- [Малоизвестные Windows-программы для ведения заметок!](https://sovetybloga.ru/maloizvestnye-windows-programmy-dlya-vedeniya-zametok/)
- [QOwnNotes Portable 20.8.10 (markdown note taker) Released | PortableApps.com](https://portableapps.com/news/2020-08-27--qownnotes-portable-20.8.10-released)
- [QOwnNotes](https://www.slant.co/topics/6303/viewpoints/21/~note-taking-apps-for-linux~qownnotes)
- <https://www.slant.co/topics/6303/~note-taking-apps-for-linux#21>
- <https://www.slant.co/topics/6303/~note-taking-apps-for-linux#21>
- [QOwnNotes - Notepad and todo-list manager with Markdown support and Nextcloud integration : coolgithubprojects](https://www.reddit.com/r/coolgithubprojects/comments/izg63b/qownnotes_notepad_and_todolist_manager_with/)
- [QQwnNotes - Работа с заметками](https://континентсвободы.рф/%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B/qqwnnotes-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%B7%D0%B0%D0%BC%D0%B5%D1%82%D0%BA%D0%B0%D0%BC%D0%B8.html)
- [QOwnNotes 21.1.2 download free | macOS | AppKed](https://www.macbed.com/qownnotes/)
@ -196,7 +196,7 @@
## إشارات
- [Does Slack MatterMost? | LUP 117 | Jupiter Broadcasting](http://www.jupiterbroadcasting.com/90016/does-slack-mattermost-lup-117/)
- [QOwnNotes على Linux Unplugged](https://www.qownnotes.org/blog/2015-11-04-QOwnNotes-on-Linux-Unplugged.html)
- [QOwnNotes على Linux Unplugged](https://www.qownnotes.org/blog/2015-11-04-QOwnNotes-on-Linux-Unplugged.html)
- [ownCloud development in March | ownCloud.org](https://owncloud.org/blog/owncloud-development-in-march/)
- <http://tuxdiary.com/2015/03/18/papyrus/>
- [Programmliste](http://pat-schmitz.de/mytr/frontend/all.php)
@ -205,13 +205,13 @@
- [Floating on ownCloud 9 | LAS 410 : LinuxActionShow](https://www.reddit.com/r/LinuxActionShow/comments/4c8cng/floating_on_owncloud_9_las_410/)
- <http://kmeleonbrowser.org/forum/read.php?12,119575,138590,page=54>
- [Some new Breeze app icons in Frameworks 5.22 - Alex L.](http://www.alexl.netsons.org/blogposts/some-new-breeze-app-icons-in-frameworks-5-22/)
- [Planet KDE](https://planetkde.org/) في 16.05.16 19:46
- [Planet KDE](https://planetkde.org/) في 16.05.16 19:46
- <http://portallinux.es/una-notas-turtl-springseed-laverna/>
- تعليق
- تعليق
- <http://zettelkasten.de/posts/zettelkasten-antifragile/>
- تعليق
- تعليق
- [(2016-06) Recap of Markdown editors for Linux and/or browser : LinuxActionShow](https://www.reddit.com/r/LinuxActionShow/comments/4ow8yv/201606_recap_of_markdown_editors_for_linux_andor/)
- تعليق
- تعليق
- [QOwnNotes featured on the Linux Voice Podcast](https://www.qownnotes.org/blog/2016-07-12-QOwnNotes-featured-on-the-Linux-Voice-Podcast.html)
- <http://www.heise.de/ct/ausgabe/2016-16-Briefe-E-Mail-Hotline-3271356.html>
- [https://www.reddit.com/r/linux/comments/4xto4y/4_open_source_alternatives_to_evernote/](https://www.reddit.com/r/linux/comments/4xto4y/4_open_source_alternatives_to_evernote/)
@ -222,7 +222,7 @@
- [Tools to support your markdown authoring · karthik/markdown_science Wiki · GitHub](https://github.com/karthik/markdown_science/wiki/Tools-to-support-your-markdown-authoring)
- [List of Qt Applications - Manjaro Linux](https://wiki.manjaro.org/index.php?title=List_of_Qt_Applications)
- [Plain Text and Google keep Is a Killer Combo for Notes and Organization — Nick Janetakis](https://nickjanetakis.com/blog/plain-text-and-google-keep-is-a-killer-combo-for-notes-and-organization)
- تعليق
- تعليق
- <https://www.linux.org.ru/search.jsp?q=qownnotes&range=ALL&interval=ALL&user=&_usertopic=on>
- [Recommended Zettelkasten Method programs for Windows? - Zettelkasten Forum](https://forum.zettelkasten.de/discussion/39/recommended-zettelkasten-method-prog)
- <http://www.thumbapps.org/2016/07/Evernote-portable-32-64-bit.html>
@ -240,37 +240,37 @@
- [Zettlr markdown editor - Solus Forum](https://discuss.getsol.us/d/2120-zettlr-markdown-editor/2)
- [Alternatives to Google Products (Complete List) | Restore Privacy](https://restoreprivacy.com/google-alternatives/)
- [أفضل برامج المفكرة NOTEPAD لأجهزة الحاسوب | التقنية](https://www.th3tec.com/الأفضلtop/أفضل-برامج-المفكرة-notepad-لأجهزة-الحاسوب.html) [LINUX Unplugged 307: What's your NextCloud?](https://linuxunplugged.com/307)
- 0:55:09
- 0:55:09
- [Outliner Software: Search](https://www.outlinersoftware.com/search/index/qownnotes)
- [Write Markdown with 8 Exceptional Open Source Editors - OSS Blog](https://www.ossblog.org/markdown-editors/)
- [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/) #تعليق
- [GitHub - tycrek/degoogle: A huge list of alternatives to Google products. Privacy tips, tricks, and links.](https://github.com/tycrek/degoogle)
- [Cutting Google out of your life (2019) (Updated: Jan 2020) | degoogle](https://degoogle.jmoore.dev/)
- [Cutting Google out of your life (2019) (Updated: Jan 2020) | degoogle](https://degoogle.jmoore.dev/)
- [Request to add QOwnnotes to Manjaro SW Repo - Package request - Manjaro Linux Forum](https://forum.manjaro.org/t/request-to-add-qownnotes-to-manjaro-sw-repo/97630)
- [Notas en Nextcloud y Markdown. uGeek Podcast](https://ugeek.github.io//post/2017-02-15-notas-en-nextcloud-y-markdown.html) #نشرة_صوتية #أسباني
- [Note Taking Programs](https://atarnotes.com/forum/index.php?topic=190238.0)
- [Adding new apps at ecloud.global? - Features & Applications - /e/ community](https://community.e.foundation/t/adding-new-apps-at-ecloud-global/12404/9)
- [KDE Neon - PCGuia](https://www.pcguia.pt/2019/07/kde-neon/)
- [note taking - Linux text editor with support of illustrations, folding, and different fonts? - Software Recommendations Stack Exchange](https://softwarerecs.stackexchange.com/questions/72663/linux-text-editor-with-su)
- تعليق
- تعليق
- [My Server - AlternativeTo.net](https://alternativeto.net/list/8220/my-server)
- [The Top 50 Note Taking Open Source Projects](https://awesomeopensource.com/projects/note-taking)
- [QOwnNotes mac-QOwnNotes for mac(专业私有云笔记) V20.4.2免费版 - 未来Mac下载](https://mac.orsoon.com/Mac/164313.html)
- they have their own macOS installer for QOwnNotes!
- they have their own macOS installer for QOwnNotes!
- [Get productive on the Linux desktop with 7 essential apps | Snapcraft](https://snapcraft.io/blog/get-productive-on-the-linux-desktop-with-7-essential-apps)
- Martin Wimpress
- Martin Wimpress
- [Offline Computing 10 Apps for the Digital Nomad | Snapcraft](https://snapcraft.io/blog/offline-computing-10-apps-for-the-digital-nomad)
- Alan Pope
- 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)***
- <https://selfhosted.show/18?t=1088> Several minutes about QON
- **[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)
- [Pervane Plain text file based note taking and knowledge base building tool](https://hakanu.github.io/pervane/)
@ -283,7 +283,7 @@
- [Way to quick add notes? - Resolved help - Obsidian Forum](https://forum.obsidian.md/t/way-to-quick-add-notes/5301/6)
- [Nextcloud Files and Notes for secure and easy file and note sharing and collaboration Nextcloud](https://nextcloud.com/blog/nextcloud-files-and-notes-for-secure-and-easy-file-and-note-sharing-and-collaboration/)
- [How do you keep notes? - DEV](https://dev.to/madza/how-do-you-keep-notes-2p48)
- <https://dev.to/ecognito/comment/12ikk>
- <https://dev.to/ecognito/comment/12ikk>
- [The Top 10 Productivity Apps on Desktop - Asian Efficiency](https://www.asianefficiency.com/technology/the-top-10-productivity-apps-on-desktop/)
- [Tired of note-taking apps | Hacker News](https://news.ycombinator.com/item?id=23888799&p=2)
- [Mark Text : un éditeur de texte encore jeune, mais très prometteur](https://www.nextinpact.com/article/44807/mark-text-editeur-texte-encore-jeune-mais-tres-prometteur)
@ -311,5 +311,4 @@
- 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>
- <https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/office/qownnotes/default.nix>

View file

@ -7,20 +7,21 @@ image: /img/bookmarks.png
تتيح لك قص المحتوى من صفحات المتصفح وكذلك إدارة إشارات المتصفح المرجعية عبر المتصفحات وأنظمة التشغيل المختلفة.
::: tip
- يجب أن يكون QOwnNotes مفتوحا حتى تعمل إضافة المتصفح رفيقة الويب.
- لا حاجة للاتصال بالإنترنت. إضافة المتصفح تعمل **بدون اتصال**.
:::
:::
## التثبيت
1. الحصول على الإضافة
- [‏سوق Chrome الإلكتروني](https://chrome.google.com/webstore/detail/qownnotes-web-companion/pkgkfnampapjbopomdpnkckbjdnpkbkp)
- [صفحة إضافات فيرفكس](https://addons.mozilla.org/firefox/addon/qownnotes-web-companion)
- يمكنك أيضا أن تجد الإضافة على [GitHub](https://github.com/qownnotes/web-companion/).
- [‏سوق Chrome الإلكتروني](https://chrome.google.com/webstore/detail/qownnotes-web-companion/pkgkfnampapjbopomdpnkckbjdnpkbkp)
- [صفحة إضافات فيرفكس](https://addons.mozilla.org/firefox/addon/qownnotes-web-companion)
- يمكنك أيضا أن تجد الإضافة على [GitHub](https://github.com/qownnotes/web-companion/).
2. إضافة رمز الأمان لإعداد الإضافة.
- المرة الأولى التي ستنقر فيها على أيقونة إضافة المتصفح QOwnNotes، سيظهر لك صندوق حواري فيه رمز أمان. انسخ الرمز.
- اذهب إلى مكان إدارة الإضافات في متصفحك. انقر على تفاصيل إضافة QOwnNotes.
- ألصق الرمز إلى خانة رمز الأمان.
- المرة الأولى التي ستنقر فيها على أيقونة إضافة المتصفح QOwnNotes، سيظهر لك صندوق حواري فيه رمز أمان. انسخ الرمز.
- اذهب إلى مكان إدارة الإضافات في متصفحك. انقر على تفاصيل إضافة QOwnNotes.
- ألصق الرمز إلى خانة رمز الأمان.
3. لاستعمال الوضع الخصوصي، عليك السماح للإضافة بالعمل في النوافذ الخصوصية، في إعدادات الإضافة.
## مقص الويب
@ -34,7 +35,7 @@ Info إن لم يعمل مقص الويب، فتأكد أن تطبيق QOwnNotes
وتأكد كذلك أنك قبلت تجميع بيانات المستخدم عندما ضغطت على أيقونة الإضافة أول مرة في شريط المتصفح.
وإذا كنت تستخدم فيرفكس، فتحتاج كذلك أن تتأكد أنك فعّلت الصلاحية الاختيارية `الوصول إلى بياناتك لكل المواقع` في إعدادات *صلاحيات* الإضافة، وإلا فقد تقابل الخطأ: `TypeError: chrome.tabs.captureVisibleTab is not a function`.
وإذا كنت تستخدم فيرفكس، فتحتاج كذلك أن تتأكد أنك فعّلت الصلاحية الاختيارية `الوصول إلى بياناتك لكل المواقع` في إعدادات _صلاحيات_ الإضافة، وإلا فقد تقابل الخطأ: `TypeError: chrome.tabs.captureVisibleTab is not a function`.
:::
::: tip
@ -64,6 +65,7 @@ Info إن لم يعمل مقص الويب، فتأكد أن تطبيق QOwnNotes
- [اسم صفحة الوب](https://www.example.com) #وسم١ #وسم٢
- [اسم صفحة الوب](https://www.example.com) شيء من الوصف فقط
- [اسم صفحة الوب](https://www.example.com) #وسم١ #وسم٢ شيء من الوصف والوسوم
* [اسم صفحة الوب](https://www.example.com) رمز عناصر القائمة البديل صالح أيضا
```

View file

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

View file

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

View file

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

View file

@ -7,11 +7,11 @@ Note
يمكنك تجربة **QOwnNotes** في متصفحك بغير تثبيته، باتباع هذه التعليمات:
١) انقر على هذا الرابط: [Play with Docker](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/qownnotes/docker-desktop/main/examples/docker-compose.play-with-docker.yml&stack_name=desktop). ٢) انقر على زر **Login / Start** (انظر النقطة **1** في لقطات الشاشة) وسجّل دخولك باستخدام حسابك على Docker (تحتاج إلى إنشاء حساب إذا لم يكن لديك واحدا بالفعل).
١) انقر على هذا الرابط: [Play with Docker](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/qownnotes/docker-desktop/main/examples/docker-compose.play-with-docker.yml&stack_name=desktop). ٢) انقر على زر **Login / Start** (انظر النقطة **1** في لقطات الشاشة) وسجّل دخولك باستخدام حسابك على Docker (تحتاج إلى إنشاء حساب إذا لم يكن لديك واحدا بالفعل).
![screenshot01](/img/demo/playwithdocker01.png)
٣) انظر حتى ينتهي إنشاء الحاوية وتبدأ في العمل. عندئذ يمكنك النقر على **6080** في الأعلى (انظر النقطة **2** في لقطات الشاشة). إذا واجهك خطأ، برجاء الانتظار قليلا ثم حاول النقر على *6080* من جديد؛ قد تحتاج بيئة سطح المكتب لبعض الوقت حتى تحمّل.
٣) انظر حتى ينتهي إنشاء الحاوية وتبدأ في العمل. عندئذ يمكنك النقر على **6080** في الأعلى (انظر النقطة **2** في لقطات الشاشة). إذا واجهك خطأ، برجاء الانتظار قليلا ثم حاول النقر على _6080_ من جديد؛ قد تحتاج بيئة سطح المكتب لبعض الوقت حتى تحمّل.
![screenshot02](/img/demo/playwithdocker02.png)
@ -19,6 +19,6 @@ Note
![screenshot03](/img/demo/playwithdocker03.png)
٥) ستظهر شاشة تثبيت **QOwnNotes**، انقر خلالها واضغط *Finish* حتى ترى شاشة QOwnNotes الرئيسية.
٥) ستظهر شاشة تثبيت **QOwnNotes**، انقر خلالها واضغط _Finish_ حتى ترى شاشة QOwnNotes الرئيسية.
![screenshot04](/img/demo/playwithdocker04.png)

View file

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

View file

@ -8,10 +8,15 @@
```markdown
# عنوان مستوى أول
## عنوان مستوى ثان
### عنوان مستوى ثالث
#### عنوان مستوى رابع
##### عنوان مستوى خامس
###### عنوان مستوى سادس
```
@ -22,11 +27,9 @@
كبديل، للعناوين من المستويين الأول والثاني، يمكن تسطيرهم هكذا:
```markdown
شكل بديل لعناوين المستوى الأول
==================================
# شكل بديل لعناوين المستوى الأول
شكل بديل لعناوين المستوى الثاني
------------------------------------
## شكل بديل لعناوين المستوى الثاني
```
::: tip
@ -36,7 +39,7 @@
## التوكيد
```markdown
التوكيد البسيط، أو الخط المائل، يكون *بنجمة واحدة على كل جانب*.
التوكيد البسيط، أو الخط المائل، يكون _بنجمة واحدة على كل جانب_.
التوكيد القوي، أو الخط العريض، يكون **بنجمتين اثنتين على كل جانب**.
```
@ -47,7 +50,7 @@
## التسطير
يوجد كذلك إعداد اختياري لتفعيل عرض التسطير في *إعدادات المعاينة*.
يوجد كذلك إعداد اختياري لتفعيل عرض التسطير في _إعدادات المعاينة_.
```markdown
_مسطر_
@ -74,14 +77,18 @@ _مسطر_
```markdown
1. العنصر الأول في قائمة مرقمة
2. عنصر آخر
* قائمة منقوطة فرعية.
1. الرقم الفعلي غير مهم؛ المهم أنه رقم
1. قائمة مرقمة فرعية (تعمل فقط في المحرر، ولا تعمل في المعاينة)
4. وعنصر آخر.
* القوائم المنقوطة قد تستخدم النجوم
- أو الشرطات
+ أو علامات الجمع
- قائمة منقوطة فرعية.
1. الرقم الفعلي غير مهم؛ المهم أنه رقم
1. قائمة مرقمة فرعية (تعمل فقط في المحرر، ولا تعمل في المعاينة)
1. وعنصر آخر.
- القوائم المنقوطة قد تستخدم النجوم
* أو الشرطات
- أو علامات الجمع
```
::: tip
@ -101,7 +108,7 @@ _مسطر_
[يمكنك استخدام الأرقام لتعريف الروابط بأسلوب المراجع][1]
الروابط المجردة والروابط المحاطة بأقواس زاويّة ستُحوّل آليًا إلى روابط في المعاينة.
الروابط المجردة والروابط المحاطة بأقواس زاويّة ستُحوّل آليًا إلى روابط في المعاينة.
http://www.example.com أو <http://www.example.com>
[1]: https://www.qownnotes.org
@ -145,7 +152,6 @@ http://www.example.com أو <http://www.example.com>
يمكنك أيضا لصق الصورة من الحافظة مباشرةً في الملاحظة بالاختصار <kbd>Ctrl + Shift + V</kbd>.
:::
## الأكواد المضمّنة وكتل الأكواد
```markdown
@ -170,16 +176,17 @@ http://www.example.com أو <http://www.example.com>
### سور الفاصلات العليا المائلة
يمكنك أيضا استخدام ثلاث فاصلات عليا مائلة لإنشاء كتلة كود.
~~~markdown
````markdown
```
الكود يأتي هنا
الكود يأتي هنا
```
~~~
````
::: tip
يمكنك استخدام [الاختصار](./shortcuts.md) <kbd>Ctrl + Shift + C</kbd> على
عدد من السطور المحددة أو في سطر فارغ لإنشاء كتلة كود.
عدد من السطور المحددة أو في سطر فارغ لإنشاء كتلة كود.
:::
### سور الفاصلات مع تلوين الأكواد
@ -197,60 +204,61 @@ 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 تدعمها.
الجداول ليست جزءًا من جوهر مواصفات ماركداون، لكن معاينة QOwnNotes تدعمها.
```markdown
````markdown
يمكن استخدام النقطتين الرأسيتين لمحاذاة الأعمدة.
| الجداول | رائعة | حقا |
| ------------- |:-------------:| -----:|
| الجداول | رائعة | حقا |
| ------------------ | :----------: | ----: |
| العمود الثالث | محاذى لليمين | $1600 |
| العمود الثاني | ممركز | $12 |
| خطوط الحمار الوحشي | جميلة وأنيقة | $1 |
| العمود الثاني | ممركز | $12 |
| خطوط الحمار الوحشي | جميلة وأنيقة | $1 |
يجب فصل كل خلية ترويسة بثلاث شرطات على الأقل.
يمكنك أيضا استخدام ماركداون داخل خلايا الجداول.
| ماركداون | أقل | جمالا |
| --- | --- | --- |
| *ما زال* | `يُعرض` | **بإتقان** |
| 1 | 2 | 3 |
~~~
| ماركداون | أقل | جمالا |
| -------- | ------- | ---------- |
| ا زال_ | `يُعرض` | **بإتقان** |
| 1 | 2 | 3 |
````
::: tip
اضغط <kbd>Alt + Shift + T</kbd> لإظهار حوار يساعدك في إنشاء الجداول. يمكنك حتى استيراد ملفات CSV في ذلك الحوار.
@ -266,11 +274,12 @@ cd Notes
كسر الاقتباس.
> هذا سطر طويل جدا ولكنه سيُنسّق بشكل سليم كاقتباس عندما يلف إلى السطر التالي. ياه يا فتى، لنستمر في الكتابة حتى نضمن أن هذا بالطول الكافي لكي يلف فعلا عند الجميع. آه، يمكنك *وضع* **ماركداون** داخل كتلة اقتباس.
```
> هذا سطر طويل جدا ولكنه سيُنسّق بشكل سليم كاقتباس عندما يلف إلى السطر التالي. ياه يا فتى، لنستمر في الكتابة حتى نضمن أن هذا بالطول الكافي لكي يلف فعلا عند الجميع. آه، يمكنك *وضع* **ماركداون** داخل كتلة اقتباس.
````
````
::: tip
يمكنك إخبار QOwnNotes أن يظلّل كتل الاقتباس بكاملها أو أن يظلّل حرف الاقتباس فقط، في *إعدادات المحرر*
يمكنك إخبار QOwnNotes أن يظلّل كتل الاقتباس بكاملها أو أن يظلّل حرف الاقتباس فقط، في _إعدادات المحرر_
يمكنك استخدام [الاختصار](./shortcuts.md) <kbd>Ctrl + Shift + B</kbd> لجعل النص المحدد كتلة اقتباس.
:::
@ -288,11 +297,11 @@ cd Notes
شرطات سفلية
___
---
نجوم
***
---
```
## فصل السطور
@ -308,10 +317,10 @@ ___
```markdown
إليك سطر لنبدأ به.
هذا السطر مفصول عن سابقه بسطرين جديدين، لذا فإنه يكون *فقرة منفصلة*.
هذا السطر مفصول عن سابقه بسطرين جديدين، لذا فإنه يكون _فقرة منفصلة_.
وأيضا هذا السطر يبدأ فقرة منفصلة، لكن...
هذا السطر مفصول فقط بمسافتين وسطر جديد واحد، لذا فإنه سطر منفصل في *نفس الفقرة*.
هذا السطر مفصول فقط بمسافتين وسطر جديد واحد، لذا فإنه سطر منفصل في _نفس الفقرة_.
```
::: tip
@ -323,7 +332,7 @@ ___
لا تظهر التعليقات في المعاينة.
```markdown
[comment]: # (لن يظهر هذا التعليق في المعاينة)
[comment]: # "لن يظهر هذا التعليق في المعاينة"
<!-- تعليقات هتمل مخفية أيضا -->
```

View file

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

View file

@ -1,6 +1,5 @@
# QOwnNotesAPI Nextcloud App
![qownnotesapi](/img/qownnotesapi.png)
يتيح [**QOwnNotesAPI**](https://github.com/pbek/qownnotesapi) لك **الوصول** إلى **الملاحظات المهملة** و**نسخ الملاحظات**.
@ -10,7 +9,7 @@
- [صفحة تطبيقات Nextcloud](https://apps.nextcloud.com/apps/qownnotesapi)
- [صفحة تطبيقات ownCloud](https://marketplace.owncloud.com/apps/qownnotesapi)
:::
:::
تتم مشاركة الملاحظات عبر API الذي يوفره Nextcloud / ownCloud. يتم الوصول إلى المهام مباشرةً عبر CalDAV.

View file

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

View file

@ -23,7 +23,7 @@
- <kbd>Alt</kbd> + <kbd>PageDown</kbd> ينتقل إلى علامة تبويب الملاحظة التالية
- <kbd>Ctrl</kbd> + <kbd>W</kbd> يُغلق علامة التبويب الحالية
- <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>D</kbd> يُبدّل الوضع الخالي من المشوشات
- يمكنك أيضا مغادرته بزر <kbd>Esc</kbd>
- يمكنك أيضا مغادرته بزر <kbd>Esc</kbd>
- <kbd>Ctrl</kbd> + <kbd>P</kbd> يطبع نص الملاحظة الحالية
- <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>P</kbd> يطبع معاينة الملاحظة الحالية
- <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>V</kbd> يلصق ملاحظات أو صور أو HTML من الحافظة
@ -60,11 +60,11 @@
- <kbd>Ctrl</kbd> + <kbd>النقر</kbd> على رابط لفتحه
- <kbd>Ctrl</kbd> + <kbd>F</kbd> يتيح لك البحث في الملاحظة الحالية
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>⇧ Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>⇧ Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
- <kbd>Ctrl</kbd> + <kbd>R</kbd> يتيح لك البحث والاستبدال في الملاحظة الحالية
- <kbd>Ctrl</kbd> + <kbd>D</kbd> يكرر السطر الحالي أو النص المحدد
- <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>الأسفل</kbd> يفعل نفس الشيء
- <kbd>Ctrl</kbd> + <kbd>Alt</kbd> + <kbd>الأسفل</kbd> يفعل نفس الشيء
- <kbd>Alt</kbd> + <kbd>Backspace</kbd> يمسح السطر الحالي
- <kbd>Ctrl</kbd> + <kbd>Backspace</kbd> يمسح الكلمة الحالية
- <kbd>Ctrl</kbd> + <kbd>L</kbd> يفتح حوارًا لإضافة رابط نصي (يعمل أيضا على النص المحدد)
@ -81,18 +81,18 @@
- <kbd>Alt</kbd> + <kbd>⇧ Shift</kbd> + <kbd>S</kbd> يشطب النص المحدد
- <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>U</kbd> تبديل حالة حروف النص المحدد
- <kbd>Tab</kbd> يزيد المسافة البادئة للنص المحدد (يعمل أيضا على سطور متعددة)
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> يقلل المسافة البادئة للنص المحدد
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> يقلل المسافة البادئة للنص المحدد
- <kbd>Tab</kbd> بعد محرف قائمة منقوطة يُزيد المسافة البادئة للعنصر
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> بعد محرف قائمة منقوطة يُنقص المسافة البادئة للعنصر
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> بعد محرف قائمة منقوطة يُنقص المسافة البادئة للعنصر
- <kbd>Enter</kbd> في القوائم ينشئ عنصر قائمة جديد
- <kbd>Alt</kbd> + <kbd>Left</kbd> للرجوع في تاريخ الملاحظة
- <kbd>Alt</kbd> + <kbd>Right</kbd> للتقدم في تاريخ الملاحظة
- <kbd>Alt</kbd> + <kbd>Right</kbd> للتقدم في تاريخ الملاحظة
- <kbd>Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>1..9</kbd> يضيف إشارة مرجعية إلى موقع الملاحظة في الفتحة رقم ١..٩ (نفس رقم الزر)
- <kbd>Ctrl</kbd> + <kbd>1..9</kbd> ينتقل إلى موضع الإشارة المرجعية في الفتحة رقم ١..٩ (نفس رقم الزر)
- <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> يبحث في الويب عن النص المحدد
@ -105,8 +105,8 @@
### في لوحة معاينة الملاحظة
- <kbd>Ctrl</kbd> + <kbd>F</kbd> يتيح لك البحث في الملاحظة الحالية
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>⇧ Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>⇧ Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
### في قائمة المهام
@ -114,7 +114,6 @@
- <kbd>Ctrl</kbd> + <kbd>I</kbd> يحفظ عنصر قائمة المهام الحالي ويضيفه إلى الملاحظة الحالية
- <kbd>Ctrl</kbd> + <kbd>R</kbd> يزيل عنصر قائمة المهام الحالي
## ماك أو إس
### في النافذة الرئيسية
@ -138,7 +137,7 @@
- <kbd>⌥ Alt</kbd> + <kbd>Page Down</kbd> ينتقل إلى علامة تبويب الملاحظة التالية
- <kbd>⌘ Cmd</kbd> + <kbd>W</kbd> يُغلق علامة التبويب الحالية
- <kbd>⌘ Cmd</kbd> + <kbd>⇧ Shift</kbd> + <kbd>D</kbd> يُبدّل الوضع الخالي من المشوشات
- يمكنك أيضا مغادرته بزر <kbd>Esc</kbd>
- يمكنك أيضا مغادرته بزر <kbd>Esc</kbd>
- <kbd>⌘ Cmd</kbd> + <kbd>P</kbd> يطبع نص الملاحظة الحالية
- <kbd>⌘ Cmd</kbd> + <kbd>⇧ Shift</kbd> + <kbd>P</kbd> يطبع معاينة الملاحظة الحالية
- <kbd>⌘ Cmd</kbd> + <kbd>⌃ Ctrl</kbd> + <kbd>V</kbd> يلصق ملاحظات أو صور أو HTML من الحافظة
@ -175,11 +174,11 @@
- <kbd>⌘ Cmd</kbd> + <kbd>النقر</kbd> على رابط لفتحه
- <kbd>⌘ Cmd</kbd> + <kbd>F</kbd> يتيح لك البحث في الملاحظة الحالية
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
- <kbd>⌘ Cmd</kbd> + <kbd>R</kbd> يتيح لك البحث والاستبدال في الملاحظة الحالية
- <kbd>⌘ Cmd</kbd> + <kbd>D</kbd> يكرر السطر الحالي أو النص المحدد
- <kbd>⌘ Cmd</kbd> + <kbd>⌃ Ctrl</kbd> + <kbd>الأسفل</kbd> يفعل نفس الشيء
- <kbd>⌘ Cmd</kbd> + <kbd>⌃ Ctrl</kbd> + <kbd>الأسفل</kbd> يفعل نفس الشيء
- <kbd>⌘ Cmd</kbd> + <kbd>Backspace</kbd> يمسح السطر الحالي
- <kbd>⌃ Ctrl</kbd> + <kbd>Backspace</kbd> يمسح الكلمة الحالية
- <kbd>⌘ Cmd</kbd> + <kbd>L</kbd> يفتح حوارًا لإضافة رابط نصي (يعمل أيضا على النص المحدد)
@ -196,18 +195,18 @@
- <kbd>⌃ Ctrl</kbd> + <kbd>⇧ Shift</kbd> + <kbd>S</kbd> يشطب النص المحدد
- <kbd>⌘ Cmd</kbd> + <kbd>⇧ Shift</kbd> + <kbd>U</kbd> تبديل حالة حروف النص المحدد
- <kbd>Tab</kbd> يزيد المسافة البادئة للنص المحدد (يعمل أيضا على سطور متعددة)
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> يقلل المسافة البادئة للنص المحدد
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> يقلل المسافة البادئة للنص المحدد
- <kbd>Tab</kbd> بعد محرف قائمة منقوطة يُزيد المسافة البادئة للعنصر
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> بعد محرف قائمة منقوطة يُنقص المسافة البادئة للعنصر
- <kbd>⇧ Shift</kbd> + <kbd>Tab</kbd> بعد محرف قائمة منقوطة يُنقص المسافة البادئة للعنصر
- <kbd>Enter</kbd> في القوائم ينشئ عنصر قائمة جديد
- <kbd>⌘ Cmd</kbd> + <kbd>⌃ Ctrl</kbd> + <kbd>Left</kbd> للرجوع في تاريخ الملاحظة
- <kbd>⌘ Cmd</kbd> + <kbd>⌃ Ctrl</kbd> + <kbd>Right</kbd> للتقدم في تاريخ الملاحظة
- <kbd>⌘ Cmd</kbd> + <kbd>⌃ Ctrl</kbd> + <kbd>Right</kbd> للتقدم في تاريخ الملاحظة
- <kbd>⌘ Cmd</kbd> + <kbd>⇧ Shift</kbd> + <kbd>1..9</kbd> يضيف إشارة مرجعية إلى موقع الملاحظة في الفتحة رقم ١..٩ (نفس رقم الزر)
- <kbd>⌘ Cmd</kbd> + <kbd>1..9</kbd> ينتقل إلى موضع الإشارة المرجعية في الفتحة رقم ١..٩ (نفس رقم الزر)
- <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> يبحث في الويب عن النص المحدد
@ -220,8 +219,8 @@
### في لوحة معاينة الملاحظة
- <kbd>⌘ Cmd</kbd> + <kbd>F</kbd> يتيح لك البحث في الملاحظة الحالية
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>⇧ Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
- استخدم زرّي الأسهم <kbd>الأعلى</kbd> و<kbd>الأسفل</kbd> أو الأزرار <kbd>F3</kbd> و&nbsp; <kbd>⇧ Shift</kbd> + <kbd>F3</kbd> للانتقال إلى المطابقات السابقة والتالية
- <kbd>Esc</kbd> يُغلق شريط البحث
### في قائمة المهام

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