(Grav GitSync) Automatic Commit from rodolphe

This commit is contained in:
rodolphe 2023-03-10 03:06:14 +01:00 committed by GitSync
commit 3987540774
397 changed files with 27903 additions and 0 deletions

34
pages/01.home/default.md Normal file
View file

@ -0,0 +1,34 @@
---
title: 'Les services Linux07'
body_classes: 'title-center title-h1h2'
published: true
---
### Qu'est-ce que c'est ?
Un ensemble d'Alternatives aux services propriétaires dit [GAFAM](https://fr.wikipedia.org/wiki/GAFAM) mis en place par une l'association [Linux07](https://blog.linux07.fr).
Des services Libres sans aucune exploitation commerciale ou autres de vos données accessibles à cette adresse: [Services numériques Linux07](https://services.linux07.fr)
### Pourquoi ?
Notre souhait est de pouvoir continuer à **partager**, **échanger** et à **faire la promotion du Libre** autours de nous.
Proposer ces services ont pour but de vous montrer comment des outils numériques éthiques, libres et respectueux de vos données pour collaborer sont des alternatives à privilégier.
## Documentation services numériques Linux07
Cette documentation est à votre disposition pour au fur et à mesure qu'elle sera complétée:
* Découvrir les bases d'utilisation des services Linux07 pour ses heureux utilisateurs.
* Connaître l'infrastructure des services numériques Linux07
* Documenter les étapes techniques.
Cette documentation est librement inspirée de doucumentaions existantes, pour aider les utilisateurs des [services numériques Linux07](https://services.linux07.fr), utilisant des logiciels libres comme:
* Nextcloud (Cloud Linux07)
* Rouncube (Mails Linux07)
* Mattermost (Linux07 Teams)
* Mobilizon (Mobilizon Linux07)
* Cryptpad (Cryptpad Linux07)
* Opensondage (Linux07date)
* Mypads (Mypads Linux07)
* Libreto (Libreto Linux07)

View file

@ -0,0 +1,85 @@
---
title: 'Déploiement du serveur'
child_type: docs
taxonomy:
category:
- docs
---
Le système est déployé avec [Yunohost](https://yunohost.org).
Le service d'annuaire [LDAP](https://fr.wikipedia.org/wiki/LDAP_Data_Interchange_Format) pour le serveur Yunohost n'est pas compatibles avec toutes les applications hébergées. L'identification LDAP ne fonctionne que pour les mails (Roundcube), pour le Cloud Linux07 (Nextcloud) et pour Mypads Linux07 (Etherpad_Mypads).
> ! Certains utilisateurs du Cloud Linux07 (Nextcloud) **ne sont pas connectés à l'annuaire LDAP**, ils ont un compte gratuit de 400 Mo et se sont inscrits par eux-même, leur compte à été validé ensuite.
Le serveur a été partitionner en LVM pour pouvoir alloué des volumes partitionnés à certains dossiers ou certaines applications, déplacés avec des `mount --bind`, sauf pour la partition `\var\mail` qui elle montée dans le fichier `/etc/fstab`.
**lsblk**
```
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 68.4G 0 part
│ └─md1 9:1 0 68.3G 0 raid1 /
├─sda2 8:2 0 2G 0 part [SWAP]
├─sda3 8:3 0 1.8T 0 part
│ └─md3 9:3 0 1.8T 0 raid1
│ ├─vg-mail 253:0 0 195.3G 0 lvm /var/mail
│ ├─vg-data 253:1 0 293G 0 lvm /mnt/media
│ ├─vg-CRYPTPAD 253:2 0 97.7G 0 lvm /mnt/pad
│ ├─vg-APPS 253:3 0 293G 0 lvm /mnt/apps
│ └─vg-backups 253:4 0 913.7G 0 lvm /mnt/backups
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 1.9M 0 part
sdb 8:16 0 1.8T 0 disk
├─sdb1 8:17 0 68.4G 0 part
│ └─md1 9:1 0 68.3G 0 raid1 /
├─sdb2 8:18 0 2G 0 part [SWAP]
└─sdb3 8:19 0 1.8T 0 part
└─md3 9:3 0 1.8T 0 raid1
├─vg-mail 253:0 0 195.3G 0 lvm /var/mail
├─vg-data 253:1 0 293G 0 lvm /mnt/media
├─vg-CRYPTPAD 253:2 0 97.7G 0 lvm /mnt/pad
├─vg-APPS 253:3 0 293G 0 lvm /mnt/apps
└─vg-backups 253:4 0 913.7G 0 lvm /mnt/backups
sdc 8:32 1 1.8T 0 disk
├─sdc1 8:33 1 68.4G 0 part
│ └─md1 9:1 0 68.3G 0 raid1 /
├─sdc2 8:34 1 2G 0 part [SWAP]
└─sdc3 8:35 1 1.8T 0 part
└─md3 9:3 0 1.8T 0 raid1
├─vg-mail 253:0 0 195.3G 0 lvm /var/mail
├─vg-data 253:1 0 293G 0 lvm /mnt/media
├─vg-CRYPTPAD 253:2 0 97.7G 0 lvm /mnt/pad
├─vg-APPS 253:3 0 293G 0 lvm /mnt/apps
└─vg-backups 253:4 0 913.7G 0 lvm /mnt/backups
zram0 252:0 0 256M 0 disk [SWAP]
```
**/etc/fstab**
```
UUID=84123fb9-bde8-41dd-a9fc-afd4fe57b0e6 / ext4 defaults 01
# partition apps mattermost mobilizon
UUID=cc55dbd0-1abc-411a-a7aa-8a4f6d5eaf50 /mnt/apps ext4 defaults,nofail 0 0
/mnt/apps/mobilizon /home/yunohost.app/mobilizon none defaults,bind 0 0
/mnt/apps/mattermost /home/yunohost.app/mattermost none defaults,bind 0 0
# partition backups borg__2
UUID=86131a6e-ed0d-4071-aa81-41b50e8d3a50 /mnt/backups ext4 defaults,nofail 0 0
# partition avec data nextcloud
UUID=4a5b5a94-88ea-4328-a05b-4a3fae339ed2 /mnt/media ext4 defaults,nofail 0 0
/mnt/media/nextcloud /home/yunohost.app/nextcloud none defaults,bind 0 0
# partition mails
UUID=d0294479-075c-480b-972e-0131fef47a5d /var/mail ext4 defaults0 1
# partition apps cryptpad et etherpad_mypads
UUID=983ea66d-4732-431a-9d31-86eb85bb9431 /mnt/pad ext4 defaults,nofail 0 0
/mnt/pad/cryptpad /var/www/cryptpad none defaults,bind 0 0
/mnt/pad/etherpad_mypads /var/www/etherpad_mypads none defaults,bind 0 0
/mnt/pad/libreto /var/www/libreto none defaults,bind 0 0
# partition swap
UUID=7ed24519-ae94-459b-acff-af6b12a72c2a swap swap defaults 00
UUID=37dc28a5-c4ab-4260-bd4f-d9006f40cfaa swap swap defaults 00
UUID=f0ccd1dd-4592-43ac-85de-ee1c149dd688 swap swap defaults 00
```

View file

@ -0,0 +1,222 @@
---
title: Sauvegardes
taxonomy:
category:
- docs
---
Pour la sécurité en cas de besoins de restauration des données:
Nous avons des sauvegardes locales journalières des données et du système sur le volume `/mnt/backups/borgarchives` de 1 To avec avec [Borg App](https://github.com/YunoHost-Apps/borg_ynh), plus une sauvegarde journalière (aussi avec Borg App), chiffrée sur un serveur Yunohost auto-hébergé où est installé [Borg Server](https://github.com/YunoHost-Apps/borgserver_ynh) sur un disque dur de 2 To.
> ! Il est tout de même conseillé malgré toutes ces précautions aux utilisateurs qui ont des données sur Nextcloud (Cloud Linux07) de bien faire des sauvegardes de temps à autres. Nous ne pouvons pas garantir à 100% de ne jamais rien perdre, mais nous faisons tout notre possible pour éviter de risquer de perdre vos données.
Fichier de configuration des sauvegardes distantes vers BorgServer (machine auto-hébergé à l'adresse de l'association Linux07)
**/etc/yunohost/hooks.d/backup_method/05-borg_app**
```
#!/bin/bash
set -eo pipefail
app="${0#"./05-"}"
app="${app%"_app"}"
BORG_PASSPHRASE="$(yunohost app setting $app passphrase)"
repo="$(yunohost app setting $app repository)" #$4
if ssh-keygen -F "[domain.tld]:6060" >/dev/null ; then
BORG_RSH="ssh -i /root/.ssh/id_${app}_ed25519 -oStrictHostKeyChecking=yes "
else
BORG_RSH="ssh -i /root/.ssh/id_${app}_ed25519 -oStrictHostKeyChecking=no "
fi
do_need_mount() {
true
}
LOGFILE=/var/log/backup_borg.err
log_with_timestamp() {
sed -e "s/^/[$(date +"%Y-%m-%d_%H:%M:%S")] /" | tee -a $LOGFILE
}
do_backup() {
export BORG_PASSPHRASE
export BORG_RSH
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
work_dir="$1"
name="$2"
repo="$3"
size="$4"
description="$5"
current_date=$(date +"%Y-%m-%d_%H:%M")
pushd "$work_dir"
set +e
if borg init -e repokey "$repo" ; then
#human_size=`echo $size | awk '{ suffix=" KMGT"; for(i=1; $1>1024 && i < length(suffix); i++) $1/=1024; print int($1) substr(suffix, i, 1), $3; }'`
# Speed in Kbps
#speed=1000
#evaluated_time=$(($size / ($speed * 1000 / 8) / 3600))
echo "Hello,
Your first backup on $repo is starting.
This is an automated message from your beloved YunoHost server." | /usr/bin/mail.mailutils -a "Content-Type: text/plain; charset=UTF-8" -s "[YNH] First backup is starting" "root"
fi
set -e
borg create "$repo::_${name}-${current_date}" ./ 2>&1 >/dev/null | log_with_timestamp
popd
# About thi _20 it's a crazy fix to avoid pruning wordpress__2
# if you prune wordpress
borg prune "$repo" -P "_${name}-" --keep-hourly 2 --keep-daily=7 --keep-weekly=8 --keep-monthly=12 2>&1 >/dev/null | log_with_timestamp
# Prune legacy archive name without error on wordpress/wordpress__2
borg prune "$repo" -P "${name}_" --keep-within 2m --keep-monthly=12 2>&1 >/dev/null | log_with_timestamp
# We prune potential manual backup older than 1 year
borg prune "$repo" --keep-within 1y 2>&1 >/dev/null | log_with_timestamp
}
do_mount() {
export BORG_PASSPHRASE
export BORG_RSH
work_dir="$1"
name="$2"
repo="$3"
size="$4"
description="$5"
borg mount "$repo::$name" "$work_dir" 2>&1 >/dev/null | log_with_timestamp
}
work_dir="$2"
name="$3"
size="$5"
description="$6"
case "$1" in
need_mount)
do_need_mount "$work_dir" "$name" "$repo" "$size" "$description"
;;
backup)
do_backup "$work_dir" "$name" "$repo" "$size" "$description"
;;
mount)
do_mount
;;
*)
echo "hook called with unknown argument \`$1'" >&2
exit 1
;;
esac
exit 0
```
Fichier de configuration des sauvegardes locales
**/etc/yunohost/hooks.d/backup_method/05-borg__2_app**
```
#!/bin/bash
set -eo pipefail
app="${0#"./05-"}"
app="${app%"_app"}"
BORG_PASSPHRASE="$(yunohost app setting $app passphrase)"
repo="$(yunohost app setting $app repository)" #$4
if ssh-keygen -F "" >/dev/null ; then
BORG_RSH="ssh -i /root/.ssh/id_${app}_ed25519 -oStrictHostKeyChecking=yes "
else
BORG_RSH="ssh -i /root/.ssh/id_${app}_ed25519 -oStrictHostKeyChecking=no "
fi
do_need_mount() {
true
}
LOGFILE=/var/log/backup_borg.err
log_with_timestamp() {
sed -e "s/^/[$(date +"%Y-%m-%d_%H:%M:%S")] /" | tee -a $LOGFILE
}
do_backup() {
export BORG_PASSPHRASE
export BORG_RSH
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
work_dir="$1"
name="$2"
repo="$3"
size="$4"
description="$5"
current_date=$(date +"%Y-%m-%d_%H:%M")
pushd "$work_dir"
set +e
if borg init -e repokey "$repo" ; then
#human_size=`echo $size | awk '{ suffix=" KMGT"; for(i=1; $1>1024 && i < length(suffix); i++) $1/=1024; print int($1) substr(suffix, i, 1), $3; }'`
# Speed in Kbps
#speed=1000
#evaluated_time=$(($size / ($speed * 1000 / 8) / 3600))
echo "Hello,
Your first backup on $repo is starting.
This is an automated message from your beloved YunoHost server." | /usr/bin/mail.mailutils -a "Content-Type: text/plain; charset=UTF-8" -s "[YNH] First backup is starting" "root"
fi
set -e
borg create "$repo::_${name}-${current_date}" ./ 2>&1 >/dev/null | log_with_timestamp
popd
# About thi _20 it's a crazy fix to avoid pruning wordpress__2
# if you prune wordpress
borg prune "$repo" -P "_${name}-" --keep-hourly 2 --keep-daily=7 --keep-weekly=8 --keep-monthly=12 2>&1 >/dev/null | log_with_timestamp
# Prune legacy archive name without error on wordpress/wordpress__2
borg prune "$repo" -P "${name}_" --keep-within 2m --keep-monthly=12 2>&1 >/dev/null | log_with_timestamp
# We prune potential manual backup older than 1 year
borg prune "$repo" --keep-within 1y 2>&1 >/dev/null | log_with_timestamp
}
do_mount() {
export BORG_PASSPHRASE
export BORG_RSH
work_dir="$1"
name="$2"
repo="$3"
size="$4"
description="$5"
borg mount "$repo::$name" "$work_dir" 2>&1 >/dev/null | log_with_timestamp
}
work_dir="$2"
name="$3"
size="$5"
description="$6"
case "$1" in
need_mount)
do_need_mount "$work_dir" "$name" "$repo" "$size" "$description"
;;
backup)
do_backup "$work_dir" "$name" "$repo" "$size" "$description"
;;
mount)
do_mount
;;
*)
echo "hook called with unknown argument \`$1'" >&2
exit 1
;;
esac
exit 0
```

View file

@ -0,0 +1,81 @@
---
title: 'L'' infrastructure'
child_type: docs
taxonomy:
category:
- docs
---
Nous hébergeons ces services sur un serveur dédié Kimsufi avec 3 disques de 2 To montés en SoftRaid 1 (c'est à dire que le premier disque est dupliqué en miroir et synchronisé sur les 2 autres. Si le disque lâche où s'abîme, les données répliquées sur les autres disques peuvent prendre le relais) avec 32 Go de ram et 8 CPUs.
Informations détaillées sur le serveur:
```
System:
Host: linux07.fr Kernel: 5.10.0-18-amd64 x86_64 bits: 64 Console: tty 0
Distro: Debian GNU/Linux 11 (bullseye)
Machine:
Type: Desktop Mobo: Intel model: DH67BL v: AAG10189-213
serial: <superuser required> BIOS: Intel
v: BLH6710H.86A.0163.2018.1023.1559 date: 10/23/2018
CPU:
Info: Quad Core model: Intel Xeon E3-1245 V2 bits: 64 type: MT MCP
L2 cache: 8 MiB
Speed: 1634 MHz min/max: 1600/3800 MHz Core speeds (MHz): 1: 1634 2: 1751
3: 1616 4: 1623 5: 1705 6: 2418 7: 1676 8: 1755
Memory:
RAM: total: 31.26 GiB used: 4.56 GiB (14.6%)
Array-1: capacity: 32 GiB slots: 4 EC: None
Device-1: CHANNEL A DIMM0 size: 8 GiB speed: 1600 MT/s
Device-2: CHANNEL A DIMM1 size: 8 GiB speed: 1600 MT/s
Device-3: CHANNEL B DIMM0 size: 8 GiB speed: 1600 MT/s
Device-4: CHANNEL B DIMM1 size: 8 GiB speed: 1600 MT/s
Network:
Device-1: Intel 82579V Gigabit Network driver: e1000e
IF: eno1 state: up speed: 1000 Mbps duplex: full mac: 4c:72:b9:d1:e3:fb
RAID:
Device-1: md1 type: mdraid level: mirror status: active size: 68.3 GiB
report: 3/3 UUU
Components: Online: 0: sda1 1: sdb1 2: sdc1
Device-2: md3 type: mdraid level: mirror status: active size: 1.75 TiB
report: 3/3 UUU
Components: Online: 0: sda3 1: sdb3 2: sdc3
Drives:
Local Storage: total: raw: 5.46 TiB usable: 1.82 TiB
used: 51.67 GiB (2.8%)
ID-1: /dev/sda vendor: HGST (Hitachi) model: HUS724020ALA640
size: 1.82 TiB
ID-2: /dev/sdb vendor: HGST (Hitachi) model: HUS724020ALA640
size: 1.82 TiB
ID-3: /dev/sdc vendor: HGST (Hitachi) model: HUS724020ALA640
size: 1.82 TiB
Partition:
ID-1: / size: 67.05 GiB used: 16.3 GiB (24.3%) fs: ext4 dev: /dev/md1
ID-2: /mnt/apps size: 288.19 GiB used: 391.2 MiB (0.1%) fs: ext4
dev: /dev/dm-3
ID-3: /mnt/backups size: 899.14 GiB used: 29.35 GiB (3.3%) fs: ext4
dev: /dev/dm-4
ID-4: /mnt/media size: 288.19 GiB used: 4.15 GiB (1.4%) fs: ext4
dev: /dev/dm-1
ID-5: /mnt/pad size: 95.94 GiB used: 1.35 GiB (1.4%) fs: ext4
dev: /dev/dm-2
ID-6: /var/mail size: 192.06 GiB used: 146.5 MiB (0.1%) fs: ext4
dev: /dev/dm-0
Swap:
ID-1: swap-1 type: partition size: 1.95 GiB used: 0 KiB (0.0%)
dev: /dev/sdc2
ID-2: swap-2 type: partition size: 1.95 GiB used: 0 KiB (0.0%)
dev: /dev/sdb2
ID-3: swap-3 type: partition size: 1.95 GiB used: 0 KiB (0.0%)
dev: /dev/sda2
ID-4: swap-4 type: zram size: 256 MiB used: 0 KiB (0.0%) dev: /dev/zram0
```

View file

@ -0,0 +1,27 @@
---
title: '1.1 - La page d''accueil'
taxonomy:
category:
- docs
---
# Découvrir la page d'accueil
Lorsque vous vous connectez pour la première fois, vous êtes accueilli par une bannière de présentation de Nextcloud. Vous pouvez cliquer sur la flèche pour visionner les 3 diapositives ou cliquer sur la croix pour la fermer.
<img src="https://ahp.li/1ec0b7dfa7d1ff5ea506.png" width="640" height=360 />
La page d'accueil est celle de vos dossiers et contenus.
<img src="https://ahp.li/2ddd9be5bd25911f309b.png" width="640" height=360 />
La vue principale montre les dossiers et fichiers disponibles sur l'espace. À gauche, un menu de navigation. En haut, une barre d'accès aux différent modules, à gauche, et à la recherche et au profil, à droite.
Repérez les icônes des modules disponibles. Passez la souris sur la barre d'icônes pour voir leur nom apparaître.
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=c7a2ff424b5baed4ab654cdd516b73afd7ed8244"></iframe>
! Depuis la version 22 de Nextcloud, en vous connectant vous arriverez sur votre **Tableau de Bord** et non plus sur la page des contenus **Fichiers**.

View file

@ -0,0 +1,15 @@
---
title: '1.2 - Personaliser le Tableau de Bord'
taxonomy:
category:
- docs
---
En vous connectant vous arrivez sur le **Tableau de Bord**, en scrollant en bas, vous pouvez le personnaliser.
![Peronnaliser tableau de bord](https://ahp.li/1d2cd2e50901890f3007.png "tableau-de-bord-personnaliser")
Choisir d'activer ou non des **Widgets**, blocs avec des informations, choisir votre ville pour la météo si vous gardez son Widget, changer l'image de fond...
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=bf59cc6ab840eb4741608392733f4b60df13bc28"></iframe>

View file

@ -0,0 +1,53 @@
---
title: '1.3 - Personnaliser ses paramètres'
taxonomy:
category:
- docs
---
Cliquez sur l'icône ronde colorée portant vos initiales dans le coin supérieur droit.
![Choisir paramètres](chttps://ahp.li/a25fc43ce1ecb915a152.png)
Choisissez "Paramètres".
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=113096eb8f8b8050063dfa962bf4932a9c6aac60"></iframe>
Vérifiez vos informations personnelles.
<img src="https://ahp.li/ecfc0caceccfe6ecf747.png" width="640" height=480 />
1. Une adresse email est nécessaire pour réinitialiser votre mot de passe et éventuellement recevoir des notifications. Les autres informations sont facultatives.
2. Vous pouvez déposer une photo qui sera affichée sous forme de pastille dans certains modules, comme les discussions (*chat*) ou les partages de documents. Vous pouvez également utiliser une image déjà présente dans votre espace.
3. Assurez-vous que la langue et les paramètres régionaux (heure locale, début de semaine) sont bons.
4. Vous pouvez ajoutez des informations qui apparaîtront sur votre profil.
![Paramètres profil](https://ahp.li/45b5d201f11466505154.png)
Depuis les versions plus récents de Nextcloud, vous pouvez paramétrer finement qui peut voir ou pas les différents champs de votre profil. Cliquez sur **Visibilté profil** (_PS depuis ces versions récentes, le thème sombre de votre système est pris en compte, ici c'est mon cas dans les captures d'écran suivantes_)
![Visibilité Profil](https://ahp.li/8d6c11d23ce03e8268e5.png)
Vous pourrez ici pour choisir pour les différents champ remplis les permissions qui permettent de choisir qui peut voir ces données.
![Champs profil visibilité et permissions](https://ahp.li/39ce9356c9433a8ac0d5.png)
En cliquant sur un champ, vous verrez une fenêtre se dérouler avec ces choix: Montrer à tout le monde, Montrer seulement aux utilisateurs enregistrés, Cacher
![Choix visibilité champ profil](https://ahp.li/e64d8103f0111d1ef9ff.png)
!!!! Si vous vous êtes inscrit par vous même avec un compte sans adhésions, vous voudrez sûrement que votre adresse mail soit cachée pour les autres utilisateurs qui comme vous se sont enregistrés par eux-même !
En-dessous se trouve aussi la possibilité de demander aux administrateurs du Cloud Linux07 un export de vos données (nous pourrons vous accompagner pour que vous récupériez vos données dans la mesure du possible) et la demande de suppression de votre compte...
![Compte suppression et export données](https://ahp.li/6b4a05cb52ab2d61a270.png)
L'enregistrement des paramètres est automatique, vous pouvez reprendre vos activités.
! **Attention à votre bloqueur de publicités** Si vous utilisez un bloqueur de publicité, il peut bloquer certaines fonctionnalités de Nextcloud selon les filtres que vous avez choisis. Si c'est le cas, vous pouvez désactiver votre bloqueur de publicités pour l'adresse de votre espace Nextcloud (et seulement pour cette adresse).

View file

@ -0,0 +1,19 @@
---
title: '1 - Premiers Pas'
taxonomy:
category:
- docs
child_type: docs
---
Pour utiliser Cloud Linux07 sur un navigateur web, entrez directement lurl de l'espace que vous souhaitez rejoindre dans la barre d'adresse de votre navigateur. En général, elle se présente sous la forme <https://nc.linux07.fr>.
!!! Pour les adhérents à Linux07, vous pouvez vous connecter directement au [portail Linux07](https://linux07.fr/yunohost/sso/) pour accéder à tous vos services, vous pourrez ensuite entrer dans le Cloud Linux07 sans avoir besoin de vous identifier de nouveau.
Sur cet espace que vous rejoignez:
* soit vous devez créer un compte vous-même : suivez les étapes indiquées en cliquant sur **S'inscrire**, vous pouvez aussi nous en faire la demande en nous contactant. Le compte sera automatiquement créé si nous avons assez d'espace pour un compte gratuit (sans les discussions Talk et sans éditeur collaboratif OnlyOffice).
* soit un identifiant et un mot de passe ont été déjà enregistrés et votre compte est validé (suite à une adhésion ou demande).
! Si vous êtes sur un ordinateur public ou qui nest pas le vôtre, assurez-vous de ne pas sauvegarder vos mots de passe dans le navigateur web. Si vous êtes sur votre ordinateur habituel, vous pouvez demander à votre navigateur ou à votre gestionnaire de mots de passe de s'en souvenir.

View file

@ -0,0 +1,34 @@
---
title: '2.1 - Créer un nouveau dossier'
taxonomy:
category:
- docs
---
## D'un coup dœil
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=db3aa878c9c91445e6078b7ea2c4f078d0eab126"></iframe>
## Étape par étape
1. Cliquez sur le bouton **+** en haut de la vue principale pour ouvrir le menu.
![Nouveau dossier](https://ahp.li/7e5823e54fcef5936bee.png)
2. Choisissez "Nouveau dossier" dans le menu déroulant.
- Définissez un nom.
- Validez en cliquant sur la flèche ou avec la touche "Entrée" du
clavier.
![Définir nom](https://ahp.li/7c0ef4ece8ca28cd8a79.png)
3. Le dossier apparaît dans la liste ainsi que sa fenêtre de détails à droite.
![Panneau information](https://ahp.li/030a17de3e7778910979.png)
4. Cliquez sur le nom du nouveau dossier dans la liste pour l'ouvrir.

View file

@ -0,0 +1,26 @@
---
title: '2.2 - Déposer un document'
taxonomy:
category:
- docs
---
- Cliquez sur le bouton **+** en haut de la vue principale pour ouvrir le menu.
- Choisissez "Envoyer un fichier" dans le menu déroulant.
![Envoyer fichier](https://ahp.li/fece1d6c6eee181c8dec.png)
- La fenêtre "Ouvrir un fichier" de votre navigateur apparaît et vous
pouvez ainsi parcourir vos données locales (sur votre ordinateur).
Sélectionnez le ou les fichiers (Maintenez la touche Ctrl enfoncée
pour sélectionner plusieurs fichiers) puis validez.
- Patientez pendant l'envoi.
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=07266f77f9a2ebe11bf9d21354c08976f1420d6d"></iframe>
Déposer par cliquer-glisser
---------------------------
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=dd313f7099816d3206595e10b0a5c118f4996715"></iframe>

View file

@ -0,0 +1,42 @@
---
title: '2.3 - Déplacer des documents'
taxonomy:
category:
- docs
---
### D'un coup d'œil
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=d016cb4fa3ef540e24b105ca0cd3131a504508f7"></iframe>
### Étape par étape
1. Cochez les fichiers à copier ou déplacer dans la liste des dossiers.
2. Ouvrez le menu "Actions" dont le bouton apparaît en haut de la liste dès qu'un fichier
ou dossier est sélectionné.
3. Choisissez "Déplacer ou copier" dans le menu déroulant.
![Déplacer plusieurs fichiers menu](https://ahp.li/9c2c8bf70e0ccc12837e.png)
- Vous pouvez ensuite parcourir l'arborescence de votre espace
Nextcloud (l'icône « maison » représente la racine de votre
dossier personnel).
4. Choisissez le dossier de destination.
5. Choisissez de copier (le document reste présent dans le dossier
d'origine) ou de déplacer (le document est supprimé du dossier
d'origine).
6. Patientez quelques secondes.
Déplacer par cliquer-glisser
----------------------------
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=e293658f192f9c114a289b28be57f840bde9e08b"></iframe>
1. Cochez les fichiers à copier ou déplacer dans la liste des dossiers.
2. Cliquez sur l'un des fichiers puis déplacez la souris sans lâcher le
bouton gauche. Déposez les fichiers sur le dossier de votre choix.

View file

@ -0,0 +1,32 @@
---
title: '2.4 - Supprimer et restaurer des fichiers'
taxonomy:
category:
- docs
---
## Supprimer des fichiers
1. Cochez les fichiers à supprimer dans la liste des dossiers.
2. Ouvrez le menu "Actions" dont le bouton apparaît en haut de la liste dès qu'un fichier
ou dossier est sélectionné.
3. Choisissez "Supprimer" dans le menu déroulant.
![Supprimer fichiers](https://ahp.li/785432fc159cf8b69f17.png)
Restaurer des fichiers supprimés
--------------------------------
1. Cliquez sur "Fichiers supprimés" en bas à gauche de l'interface.
2. Cochez les fichiers à restaurer dans la liste.
3. Ouvrez le menu "Actions" dont le bouton apparaît en haut de la litste dès qu'un fichier
ou dossier est sélectionné.
4. Choisissez "Restaurer" dans le menu déroulant.
![Restaurer fichiers](https://ahp.li/70599c94c7d3cdd68e8c.png)

View file

@ -0,0 +1,22 @@
---
title: '2.5 - Restaurer une ancienne version d''un document'
taxonomy:
category:
- docs
---
Nextcloud **sauvegarde des versions successives d'un même document**. Cette fonction est utile par exemple pour retrouver une copie d'un document en cas d'erreur d'édition.
Pour **restaurer une ancienne version** d'un document :
1. Cliquer sur le choix des actions du document sur la ligne (trois petits points).
2. Choisissez **i Détails** pour voir s'ouvrir la colonne des détails du fichier.
![Choix fichier](https://ahp.li/31f4f3110d543318ff4f.png)
3. Cliquez sur l'onglet "Versions".
4. Cliquez sur la flèche circulaire en bout de ligne de la version que vous
souhaitez restaurer.
![Détail fichier versions](https://ahp.li/9a119e0e9ea50ad0eb9d.png)

View file

@ -0,0 +1,33 @@
---
title: '2 - Gérer se documents en ligne'
child_type: docs
taxonomy:
category:
- docs
---
# Gérer ses documents en ligne
Le module **Fichiers** permet d'organiser ses documents et de les partager avec d'autres personnes en interne ou à l'extérieur.
Tour d'horizon de l'interface :
![Fichiers](https://ahp.li/7e0fddff9d3debb3d302.png)
1. Le menu de gauche permet de **filtrer l'affichage**. "Tous les fichiers" permet de parcourir l'arborescence générale.
2. Le contenu du dossier courant est affiché par défaut sous forme de liste dans la vue principale.
- La case à cocher en tête de ligne permet de sélectionner un (ou
plusieurs) document ou dossier.
- Cliquez sur le nom d'un dossier ou d'un document pour l'ouvrir.
- En fin de ligne se trouvent deux boutons. Le premier pour
**partager le document**, le second (trois points) pour ouvrir un
menu d'actions.
- La taille (poids) et la date de dernière modification du fichier
sont affichés ensuite.
3. Le bouton **+** en haut de la vue principale permet de **déposer des documents**, de **créer un nouveau
dossier** ou un **nouveau fichier** (document en docx, feuille de calcul, présentation, nouveau lien, modèle de formulaire).
4. En bas à gauche de la page se trouvent :
- l'accès à la **corbeille** ;
- l'état d'occupation de votre espace en fonction de votre quota ;
- un menu de paramètres (spécifique à chaque module).

View file

@ -0,0 +1,63 @@
---
title: '3.1 - Partager en interne'
taxonomy:
category:
- docs
---
# Partager en interne
Pour **partager un contenu avec une autre personne inscrite sur votre instance Nextcloud** :
1. Dans la liste des fichiers, cliquez sur l'icône de partage du fichier que vous souhaitez partager.
* La fenêtre "Détails" s'ouvre sur la partie droite de l'écran.
![Menu partage](https://ahp.li/6fdfa0571cc77ae7a55e.png)
2. Dans le champ de saisie commencez à écrire le nom de la personne ou du cercle à qui vous voulez partager votre fichier.
![Selectionner groupe partage](https://ahp.li/103b458b80f8fa817951.png)
3. Cliquez sur le nom qui apparaît.
* Les destinataires apparaissent dans une liste sous le champ de saisie.
![Listes Partages](https://ahp.li/e09630378b6ac5426fb6.png)
Une fois le partage effectué, les destinataires retrouvent le document ou le dossier dans leur espace personnel. Il est aussi possible de leur **communiquer un lien interne**, permettant l'accès direct. Pour générer ce lien :
1. Cliquez sur l'icône de presse-papier au bout de la ligne "lien interne" dans la fenêtre de détails.
- le lien est automatiquement copié dans votre presse-papier.
![Lien interne](https://ahp.li/0f29b473e1ef26fd2faf.png)
2. Transmettez le liens aux destinataires de la manière de votre choix.
Les destinataires peuvent **renommer** et **déplacer** le dossier ou le document dans leur espace sans que la modification affecte votre copie.
**Dans le cas d'un dossier, les destinataires ont accès à tout son contenu**, y compris les sous-dossiers.
Par défaut, les destinataires d'un partage interne ont la possibilité de **modifier et repartager le contenu** du document ou du dossier partagé. Il est possible de modifier ces autorisations.
## Autorisations pour un document
1. Cliquez sur le menu d'action sur la ligne du ou de la destinataire du document.
![Accès document](https://ahp.li/a2df1adce7feab1d97af.png)
2. Cochez ou décochez les différents paramètres selon votre souhait.
* *Autoriser la modification* : les destinataires peuvent modifier le contenu du fichier (mais pas le supprimer).
* *Autoriser le repartage* : les destinataires peuvent partager le fichier en interne ou à l'extérieur.
* *Définir une date dexpiration* : le partage sera automatiquement révoqué à la date de votre choix.
* *Note au destinataire* : précisez une courte information.
* *Ne plus partager* : révoquez le partage de ce fichier.
## Autorisations pour un dossier
1. Cliquez sur le menu d'action sur la ligne du ou de la destinataire du document.
![Accès dossier](https://ahp.li/87b13bc3c8b2301b5389.png)
2. Cochez ou décochez les différents paramètres selon votre souhait.
* *Autoriser la modification* : les destinataires peuvent modifier le contenu du dossier (mais pas le supprimer).
* *Autoriser la création* : les destinataires peuvent créer de nouveaux documents ou dossiers dans le dossier partagé.
* *Autoriser la suppression* : les destinataires peuvent supprimer des éléments contenus dans le dossier partagé (non recommandé).
* *Autoriser le repartage* : les destinataires peuvent partager le fichier en interne ou à l'extérieur.
* *Définir une date dexpiration* : le partage sera automatiquement révoqué à la date de votre choix.
* *Note au destinataire* : précisez une courte information.
* *Ne plus partager* : révoquez le partage de ce fichier.

View file

@ -0,0 +1,60 @@
---
title: '3.2 - Publier à l''extérieur'
taxonomy:
category:
- docs
---
Pour **rendre un contenu public** (accessible sans compte sur votre instance Nextcloud)** :
1. Dans la liste des fichiers, cliquez sur l'icône de partage du fichier que vous souhaitez publier.
* La fenêtre "Détails" s'ouvre sur la partie droite de l'écran.
![Menu partage](https://ahp.li/6fdfa0571cc77ae7a55e.png)
2. Cliquez sur le bouton **+** de la ligne "Lien de partage".
![Line partage](https://ahp.li/6950931949931a473694.png)
3. Transmettez le liens aux destinataires de la manière de votre choix.
**Dans le cas d'un dossier, les destinataires ont accès à tout son contenu**, y compris les sous-dossiers.
Par défaut, les destinataires d'un partage extérieur ne peuvent que **lire et télécharger** le document ou le dossier partagé. Il est possible de modifier ces autorisations.
> [!Warning]
> Ce lien est **public** et peut circuler partout, à moins que vous ne révoquiez son partage (voir "Autorisations").
## Autorisations pour un document
1. Cliquez sur le menu d'action sur la ligne "Lien de partage" (et scroller vers le bas pour voir toutes les autorisations).
![Accès extérieur](https://ahp.li/0810c60370ea90a4b9d6.png)
2. Cochez ou décochez les différents paramètres selon votre souhait.
* *Autoriser la modification* : les destinataires peuvent modifier le contenu du fichier (mais pas le supprimer).
* *Masquer le téléchargement* : empêche les destinataires de télécharger le document.
* *Protéger par un mot de passe* : ajoutez un mot de passe à votre lien.
* *Définir une date dexpiration* : le partage sera automatiquement révoqué à la date de votre choix.
* *Note au destinataire* : précisez une courte information.
* *Ne plus partager* : révoquez le partage de ce fichier.
* *Ajouter un autre lien* : créer un deuxième lien de partage (utile pour avoir des liens avec des autorisations différentes).
## Autorisations pour un dossier
1. Cliquez sur le menu d'action sur la ligne du ou de la destinataire du document.
![Accès dossier extérieur](https://ahp.li/87b13bc3c8b2301b5389.png)
2. Cochez ou décochez les différents paramètres selon votre souhait.
* *Lecture seule* : les destinataires ne peuvent que lire le contenu du dossier.
* *Autoriser l'ajout et la modification* : les destinataires peuvent modifier le contenu du dossier et y ajouter des documents ou sous-dossier (mais pas le supprimer).
* *Dépôt de fichier* : les destinataires peuvent déposer des documents ou dossiers, mais ne voient pas le contenu du dossier.
![Dépôt fichier](https://ahp.li/de1d8aec9b3272a1e178.png)
* *Masquer le téléchargement* : empêche les destinataires de télécharger le dossier et son contenu.
* *Protéger par un mot de passe* : ajoutez un mot de passe à votre lien.
* *Définir une date dexpiration* : le partage sera automatiquement révoqué à la date de votre choix.
* *Note au destinataire* : précisez une courte information.
* *Ne plus partager* : révoquez le partage de ce fichier.
* *Ajouter un autre lien* : créer un deuxième lien de partage (utile pour avoir des liens avec des autorisations différentes).

View file

@ -0,0 +1,16 @@
---
title: '3 - Partager un fichier'
taxonomy:
category:
- docs
child_type: docs
---
# Partager un fichier
Nextcloud permet de partager un document ou un dossier avec d'autres personnes, au sein de votre collectif ou à l'extérieur. Les membres de votre instance auront accès à ce fichier avec un **lien interne.** Pour une personne extérieure, l'accès se fait avec un **lien de partage**.
Si un fichier est partagé avec autorisation de modification, alors les destinataires pourront modifier le fichier ou le contenu du dossier. Il est possible de partager un fichier ou un dossier sans possibilité de modification (lecture seule).
**Lorsquun dossier est partagé, tout son contenu lest également.**

View file

@ -0,0 +1,57 @@
---
title: '4.1 - Créer une discussion'
taxonomy:
category:
- docs
---
## Créer une **discussion privée**
1. Cherchez le nom de la personne à qui vous voulez parler dans le champ de recherche à gauche de la page et cliquez
dessus.
![](chttps://ahp.li/0ffe6d1bff9b4fbca4ef.png)
2. La discussion est immédiatement créée et apparaît dans la vue principale.
## Créer une **discussion de groupe**
1. Cliquez sur le bouton **+** à côté du champ de recherche à gauche de la page.
![](https://ahp.li/44433449a11ea222ac78.png)
2. Donnez un nom à la discussion dans la boîte de dialogue qui apparaît.
3. Sélectionnez les paramètres souhaités
* Autoriser les invités à rejoindre la conversation avec le lien -> pour inviter des personnes non inscrites sur l'instance.
* Ajoutez éventuellement un mot de passe.
* Ouvrir la conversations aux utilisateurs enregistrés -> pour rendre la discussion publique et permettre aux membres de l'instance de s'y joindre spontanément.
![](https://ahp.li/e6befffc3fc8541f56ab.png)
4. Cliquez sur Ajouter des participants.
5. Une nouvelle vue apparaît. Recherchez les membres, groupes ou cercles que vous souhaitez ajouter.
* Utilisez la barre de défilement pour accéder aux groupes existants
![](https://ahp.li/6cfceb5bebc2f443255c.png)
6. Cliquez sur Créer une conversation.
> [!NOTE]
> Pour annuler la création d'une conversation, cliquez en dehors de la boîte de dialogue.
## Gérer les rôles
Quand vous créez une discussion de groupe, vous en êtes automatiquement **modérateur⋅ice**.
Pour accorder ce droit aux autres membres de la discussion :
1. Ouvrez l'onglet d'informations de la discussion avec l'icône sandwich en haut à droite
![](https://ahp.li/b5df5255ed71ef570a57.png)
2. Cliquez sur le menu d'actions à droite de leur nom
3. Choisissez "Promouvoir en modérateur" dans le menu déroulant.
![](https://ahp.li/2a26370e2ec62ed886c5.png)
Vous pouvez aussi retirer des membres de la discussion.
Les modérateur⋅ices peuvent **modifier les paramètres** de la discussion (nom, accès, description, mais aussi suppression).

View file

@ -0,0 +1,44 @@
---
title: '4.2 - Commencer les échanges'
taxonomy:
category:
- docs
---
## Discuter
Pour commencer à discuter :
- Écrivez votre message dans le champ en bas de la vue principale et appuyez sur
la touche entrée du clavier.
* Vous pouvez ajouter des émojis en cliquant à gauche du champ d'écriture.
![](https://ahp.li/23490ffbee894212b72e.png)
* Vous pouvez **répondre à un message** en particulier en cliquant sur la flèche qui apparaît à droite au survol de ce message.
<iframe width="660" height="452" frameborder="0" allowfullscreen src="https://www.archive-host.com/media/videos/jwplayer/index.php?id=a8881081a1a06313ae34a8ada7d2cb660a083d31"></iframe>
* Dans le menu d'action du message, vous pouvez choisir de **répondre en privé** à l'expéditeur⋅ice. Cette action démarre une discussion privée.
![](https://ahp.li/32503bdabfda4c30ffda.png)
## Lancer un appel vidéo
> ! Cette option fonctionne bien en discussion privée (deux personnes). Si vous êtes un groupe et que vous rencontrez des difficultés, nous vous recommandons plutôt d'utiliser un outil dédié à la visioconférence comme [Big Blue Button](https://bigbluebutton.org/) ou [Jitsi](https://meet.jit.si/).
Quand vous êtes dans une discussion, vous pouvez débuter un **appel vidéo** en cliquant sur "Commencer l'appel". Une notification est envoyée à votre interlocuteur⋅ice. Si c'est vous qui rejoignez un appel déjà commencé, le bouton apparaît en vert et affiche "Rejoindre l'appel".
![](https://ahp.li/ee0d7c49010f92c78170.png)
Pendant un appel, vous pouvez :
1. Couper votre micro
2. Couper votre caméra
3. Partager votre écran
4. Cacher votre vidéo (pour vous)
<figure>
<img src="https://ahp.li/c373d7f6434f62f100c0.png" alt="Interface d'un appel vidéo" />
<figcaption><i>La vue principale affiche la vidéo de votre correspondant⋅e. Un aperçu de votre vidéo est en bas à droite. Vous pouvez le cacher en cliquant sur la flèche descendante au-dessus de cet aperçu. Les icônes du micro, de la caméra et du partage d'écran sont en bas de l'aperçu. </i></figcaption>
</figure>

View file

@ -0,0 +1,68 @@
---
title: '4.3 - Discuter autour d''un document'
taxonomy:
category:
- docs
---
## Partager un document
Il y a deux façons de partager un document dans une conversation.
* Cliquez-glissez le document directement dans la conversation.
* Cliquez sur le trombone à gauche de la zone d'écriture.
![](https://ahp.li/6b7c44b7bec71e707b03.png)
Le menu déroulant propose :
* Envoyer de nouveaux fichiers -> depuis votre ordinateur.
* Partager vos fichiers déjà stockés -> depuis votre espace personnel sur Nextcloud.
Vous pouvez ajouter plusieurs fichiers en une seule fois.
Tou⋅tes les membres de la discussion pourront **voir, éditer ou télécharger** le document, qu'ils ou elles soient inscrit⋅es sur l'instance ou venant de l'extérieur.
## Lier une discussion à un document
Dans le module **Fichiers**, vous pouvez démarrer une discussion écrite ou vidéo **depuis la barre latérale** de chaque document pendant que vous l'éditez.
1. Ouvrez un document.
2. Cliquer sur le menu d'actions en haut à droite de la page pour ouvrir la barre latérale.
![](https://ahp.li/2af92a1f532f916af935.png)
3. Cliquez sur l'onglet "Tchat".
4. Cliquez sur le bouton "Partager ce fichier".
![](https://ahp.li/9992917254bcc2a886a0.png)
5. Dans le champ de recherche en tapant les premiers mots du nom de la conversation, elle apparaît, vous pouvez cliquez sur la conversation que vous voulez rejoindre.
![](https://ahp.li/04af007450a057cdcc17.png)
6. Tapez votre message dans la zone d'écriture ou cliquez sur "Commencer l'appel".
Vous pouvez aussi rejoindre la discussion **depuis la liste des documents** :
1. Cliquez sur le menu de partage pour ouvrir la barre latérale ou actions (trois points de suspension) et infos.
![](https://ahp.li/770c0df87dff133dbab3.png)
2. Cliquez sur l'onglet "Tchat"
3. Cliquez sur le bouton "Partager ce fichier"
![](https://ahp.li/ea90b0cd0f6400c036b4.png)
5. Dans le champ de recherche en tapant les premiers mots du nom de la conversation, elle apparaît, vous pouvez cliquez sur la conversation que vous voulez rejoindre.
![](https://ahp.li/be93f79dc33adac7c4e8.png)
4. Tapez votre message dans la zone d'écriture ou cliquez sur "Commencer l'appel".
La conversation ainsi créée apparaît dans la **liste du module Discussion**. Vous pouvez y ajuster les paramètres en cliquant sur le menu d'action correspondant.
![](https://ahp.li/63305057549f893d1350.png)
============================================================================

View file

@ -0,0 +1,19 @@
---
title: '4 - Discuter'
taxonomy:
category:
- docs
child_type: docs
---
# Discuter
Le module **Discussion** permet de discuter par écrit (conversation) ou en vidéo (appel) sans quitter Nextcloud.
![Icône Discussion](https://ahp.li/ee31aed4bad134dad3a9.png)
Il existe deux types de discussion :
1. **les discussion privées,** avec une seule autre personne. Ce type de discussion ne peut pas être partagé à d'autres personnes. Il n'est pas possible de discuter avec quelqu'un n'ayant pas un compte sur votre instance.
2. **les discussions de groupe,** avec autant de personnes que nécessaire. Ce type de discussion peut être partagé à des personnes n'ayant pas de compte sur votre instance. Il est aussi possible de les rendre publiques, pour que d'autres personnes inscrites sur l'instance puissent s'y joindre spontanément.

View file

@ -0,0 +1,77 @@
---
title: '5.1 - Créer un Contact'
taxonomy:
category:
- docs
---
## Importer un fichier de contacts
-------------------------------
Plutôt que de recréer des contacts uns à uns, vous pouvez importer vos
répertoires issus d'autres logiciels et applications.
!!! L'import n'est possible qu'avec des fichiers Virtual Contact File (**VCF/Vcard**) en **version 3.0 ou 4.0**.
1. Cliquez sur Paramètres en bas à gauche de l'interface.
![](https://ahp.li/88a8d89985b2e9896cd3.png)
2. (Optionnel) Si vous ne souhaitez pas mélanger plusieurs listes de contacts, créez un nouveau carnet d'adresse.
![](https://ahp.li/2e09434f4d0f40dd27e5.png)
- Entrez le nom de votre choix dans le champ de saisie et cliquez sur la flèche à droite pour valider.
3. Cliquez sur "Importer les contacts".
![](https://ahp.li/526d832e7122a1d6335b.png)
4. Une boîte de dialogue apparaît. Cliquez sur "Importer dans le carnet d'adresses Contacts" pour ouvrir la liste des différents carnets d'adresses (menu déroulant).
![](https://ahp.li/f0c4cc4a659109a290ae.png)
5. Sélectionnez le carnet d'adresse dans lequel importer les nouveaux contacts.
![](https://ahp.li/528354ae0f54e596aa59.png)
6. Cliquez sur "Sélectionnez un fichier local" pour importer un fichier(format .vcf) depuis votre ordinateur, ou sur "Importer depuis Fichiers" pour choisir un fichier (format .vcf) présent dans votre espace Nextcloud.
7. Patientez pendant l'import de vos contacts. Ceux-ci apparaissent dans la section "Non groupé" de la liste des contacts, à gauche de l'interface.
8. Vous pouvez choisir de désactiver l'affichage d'un carnet d'adresse dans les paramètres.
- Cliquez sur le menu d'action correspondant.
- Décochez la case "Activé" dans le menu déroulant.
![](https://ahp.li/085131bdf75106c356b5.png)
- Rechargez la page pour afficher les changements.
## Créer une entrée à la main
--------------------------
Si vous n'avez pas de fichier de contacts existant, il vous faudra créer
une fiche par contact à la main.
1. Cliquez sur "Nouveau contact" en haut de la liste des contacts.
![](https://ahp.li/10131741e803ce980856.png)
2. La fiche du contact apparaît dans la vue principale.
![](https://ahp.li/372ac557237b5974a77b.png)
1. Cliquez sur "Nouveau contact" dans la fiche pour indiquer le nom de votre contact. Vous pouvez aussi indiquer la société à laquelle il appartient, son titre au sein de la société et modifier son avatar.
- L'enregistrement est automatique.
2. Renseignez un numéro de téléphone, un email et/ou une adresse.
3. Cliquez dans le champ "Carnet d'adresses" pour faire apparaître la liste des carnets d'adresses et
indiquer où ranger ce contact.
- Un contact ne peut être que dans un carnet à la fois. Cette limite se contourne en créant deux contacts identiques.
4. Cliquez dans le champ "Groupes" pour faire apparaître la liste des groupes déjà créés ou
tapez directement un nouveau nom de groupe pour le créer (*amis, famille, clients, fournisseurs*...)
- Un contact peut être dans plusieurs groupes à la fois.
- Les groupes aparaissent en tant que section dans la liste des contacts.
5. Cliquez sur "Ajouter une nouvelle propriété" pour ajouter de nouveaux champs à la fiche (adresse
supplémentaire, prononciation du nom, langues parlées, notes, fuseau horaire...)
- Une corbeille apparaît au survol de chaque propriété, permettant de la supprimer au besoin.

View file

@ -0,0 +1,77 @@
---
title: '5.2 - Créer un Cercle'
taxonomy:
category:
- docs
---
Un cercle sert à **grouper des utilisateur⋅ices** de votre instance Nextcloud, dans l'idée de **partager** un agenda, des contacts, une
discussion, des notes (grâce au module Collectif), une liste de tâches
(grâce au module Deck) et des fichiers. Autrement dit, à **organiser du
travail collectif**.
1. Cliquez sur le bouton **+** de la section Cercles dans la liste des contacts.
![](https://ahp.li/99b2fafd13da3cfd50fe.png)
2. Une boîte de dialogue apparaît. Donnez un nom au cercle et cliquez sur "Créer un cercle".
![](https://ahp.li/3788071ecc5105881f95.png)
3. Cliquez sur "Ajouter des membres" en haut du menu, à gauche de la vue principale.
![](https://ahp.li/e891157b3371438111aa.png)
4. Une boîte de dialogue apparaît. Commencez à taper le nom de membres à ajouter dans le champ de saisie et cliquez dessus pour
les sélectionner.
![](https://ahp.li/e78990600b4b07066066.png)
## Gérer les rôles
---------------
Quand vous créez un Cercle, vous en êtes automatiquement **propriétaire (*Owner*)**.
Vous pouvez accorder différents droits aux autres membres de la
discussion en cliquant sur le menu d'actions à droite de leur nom, dans la liste des membres.
![](https://ahp.li/7f44cd1bddf02322f27b.png)
- Modérateur⋅ice (*Moderator)* : donne l'autorisation d'ajouter et de supprimer des **membres** du cercle.
- Administrateur⋅ice (*Admin*) : donne l'autorisation de **modifier les paramètres** et d'ajouter et supprimer des **membres** et des **modérateu⋅ices** du cercle.
- *Promouvoir en tant que seul propriétaire* : **remplace** **le⋅a propriétaire actuel⋅le**, donne l'autorisation de **supprimer le cercle**, de **modifier les paramètres** et d'ajouter et supprimer des **membres**, des **modérateur⋅ices** et des **administrateur⋅ices** du cercle.
> [!NOTE]
> Dans le cas où le compte propriétaire est supprimé de
> Nextcloud, l'administrateur⋅ice le⋅a plus ancien⋅ne du cercle
> devient propriétaire.
## Définir les paramètres
----------------------
Un Cercle peut être public ou privé selon le degré de visibilité que vous lui accordez. Les réglages se font dans la vue principale.
![](https://ahp.li/daa3636f3f1d2f1f6132.png)
- *Tout le monde peut demander l'adhésion* : le cercle est **ouvert** à tous⋅tes les utilisateur⋅ices.
- *Les membres doivent accepter les invitations* : ajouter un⋅e membre déclenche l'envoi d'une **invitation qui doit être acceptée** par le⋅a destinataire.
- *Les adhésions doivent être confirmées/acceptées par un modérateur (nécessite Open)* : les utilisateur⋅ices doivent **faire une demande** pour devenir membre.
Bouton "Demander à rejoindre" dans la vue principale d'un cercle public
![Bouton "Demander à rejoindre" dans la vue principale d'un cercle public](https://ahp.li/f1c530035d3a138963a3.png)**
Le bouton notification est le deuxième dans le groupe à droite de la barre d'accès
![Le bouton notification est le deuxième dans le groupe à droite de la barre d'accès](https://ahp.li/347fa155996dced1e6e6.png)
! Cette condition nécessite d'avoir aussi coché "Tout le monde peut demander l'adhésion".
- *Les membres peuvent aussi inviter* : **les membres ont la
possibilité d'inviter** d'autres utilisateur⋅ices dans le Cercle (sans passer par un⋅e modérateur⋅ice).
- *Visible à tous* : le cercle **apparaît dans la liste de contacts** de tous⋅tes les utilisateur⋅ices, ainsi que dans la **fonction recherche**. Si la case est décochée, seul⋅es les membres du cercle le verront apparaître dans leur liste.
![la fonction recherche est le premier bouton dans le groupe à droite de la barre d'accès](https://ahp.li/9a84403835ad8a27019f.png)

View file

@ -0,0 +1,30 @@
---
title: '5.3 - Partager un carnet d''adresses'
taxonomy:
category:
- docs
---
Vous pouvez **partager** un carnet d'adresses à **d'autres
utilisateur⋅ices** (inscrit⋅es sur votre instance Nextcloud).
1. Cliquez sur Paramètres en bas à gauche de l'interface.
![](https://ahp.li/88a8d89985b2e9896cd3.png)
2. Cliquez sur le bouton de partage correspondant au carnet d'adresses que vous voulez partager.
![](https://ahp.li/71aba9891770ee6e0478.png)
3. Entrez le nom des destinataires dans le champ de saisie qui apparaît et sélectionnez-les dans la liste déroulante.
4. Accordez ou non l'autorisation de modifier le carnet d'adresses, ou révoquez le partage.
Case "peut modifier" à cocher et icône corbeille à côté de chaque nom
![](https://ahp.li/907a3085002905020006.png)
!!! Il n'est pas possible de partager directement un carnet d'adresses avec l'extérieur, mais vous pouvez le télécharger (format .vcf) et ensuite le transmettre par le moyen de votre choix.
!!! 1. Cliquez sur le menu d'action correspondant au carnet d'adresses.
!!! 2. Choisissez "Télécharger" dans le menu déroulant.
!!!
!!! ![](https://ahp.li/9069519672511ca1d310.png)

View file

@ -0,0 +1,21 @@
---
title: '5 - Contacts'
taxonomy:
category:
- docs
child_type: docs
---
Le module **Contacts** permet d'organiser ses contacts et de partager
des carnets d'adresse avec d'autres personnes inscrites sur votre instance Nextcloud. Il permet aussi de créer des **Cercles**, utiles pour
organiser du travail collectif dans les autres modules de Nextcloud
(Collectifs, Fichiers, Agenda...).
!!! Le vocabulaire employé par le module peut prêter à confusion. Voici quelques définitions :
!!! - **Contact** = une entrée dans votre répertoire personnel, à renseigner à la main ou à importer depuis un autre logiciel.
!!! - **Groupe** = Un mode d'organisation de ses contacts personnels. Les groupes ne sont pas publics.
!!! - **Carnet d'adresse** = Un autre mode d'organisation de ses contacts, qui permet le partage de contacts avec des utilisateur⋅ices.
!!! - **Utilisateur⋅ice** = Un ⋅e membres de Cloud Linux07 inscrit⋅e sur votre instance Nextcloud. Vous pouvez les retrouver dans l'annuaire en haut à droite de l'interface générale, si ceux-ci ont été rendus publics.
!!! ![l'annuaire est le troisième bouton dans le groupe à droite de la barre d'accès](https://ahp.li/082ba1e13ccefc202d7c.png)
!!! - **Cercle** = Un outil pour créer des groupes d'utilisateur⋅ices. Ils peuvent être privés ou publics. Les membres savent qu'ils sont dans un cercle, et le cercle apparaît dans leur propre liste des contacts.

View file

@ -0,0 +1,74 @@
---
title: '6.1 - Gérer ses Agendas'
taxonomy:
category:
- docs
---
## Créer un nouvel agenda
Le module comporte par défaut un agenda intitulé "Personnel". Si vous avez besoin d'en créer un nouveau :
1. Cliquez sur "Nouvel agenda" dans la liste des agendas. Dans le menu déroulant, cliquez sur l'option qui vous convient :
![Nouvel Agenda](https://ahp.li/0e07a741ef970fdf1787.png)
- *Nouvel agenda* : pour ajouter un agenda
- *Nouvel agenda avec liste de tâches* : pour créer un deck associé au nouvel agenda
- *Nouvel abonnement par lien* : pour intégrer un [agenda public](../6-3-partager-un-agenda) dans la liste des agendas
2. Entrez un nom pour votre agenda et cliquez sur la flèche à droite pour valider.
![Nom Agenda](https://ahp.li/12cfa0ca910bd66762b6.png)
3. Le nouvel agenda apparaît dans la liste.
## Éditer, Télécharger ou Supprimer un Agenda
Les agendas apparaissent tous dans la même vue, chacun avec leur **couleur associée**. Vous pouvez désactiver l'affichage de chaque
agenda individuellement en cliquant sur sa pastille de couleur, à gauche du nom, dans la liste.
Le menu d'actions à droite de chaque agenda, permet de :
![Action Agenda](https://ahp.li/b3643c7a94bdb44744e4.png)
- *Modifier le nom* : renommer l'agenda
- *Modifier la couleur* : changer la couleur d'affichage de l'agenda
- *Copier le lien privé* : copier le lien de l'agenda pour les
personnes y ayant accès
- *Télécharger* : télécharger l'agenda au format .ics
- *Supprimer* : supprimer l'agenda
!!! Vous pouvez retrouver vos agendas supprimés dans la corbeille en bas à gauche de la vue générale et les restaurer pendant 30 jours.
## Importer un agenda
Vous pouvez **importer un agenda** et ses évènements depuis un autre
logiciel :
1. Cliquez sur "Paramètres & Importation" en bas à gauche de l'écran.
![Paramètes Importation](https://ahp.li/27869ba81aa9da68559b.png)
2. Cliquez sur "Importer un agenda".
![Importer un agenda](https://ahp.li/3890ef1901eaf45f8191.png)
3. Sélectionnez un ou plusieurs fichiers de calendrier sur votre
ordinateur (fichiers avec l'**extension .ics**) et cliquez sur
"Ouvrir".
4. Dans la boîte de dialogue qui s'ouvre, cliquez sur "Select option" pour définir dans quel agenda effectuer l'import :
![Select Option](https://ahp.li/48464a6a18024010c088.png)
- Vous pouvez ajouter l'agenda à un agenda déjà existant.
- Ou le conserver à part en cliquant sur "Nouvel agenda".
5. Cliquez sur "Importer un agenda".
![Valid Import](https://ahp.li/d5435474d4fa21158a34.png)
! Cette action permet de **créer une copie**, mais pas de synchroniser des agendas. Toute nouvelle action sur l'agenda d'origine ne sera donc pas reportée sur l'agenda importé et inversement.
! Pour synchroniser des agendas, voir la fiche [Synchroniser ses contacts et son agenda](https://documentations.linux07.fr/cloud-linux07-nextcloud/7-nextcloud-sur-mobile/7-3-synchroniser-ses-contacts-et-agendas).

View file

@ -0,0 +1,84 @@
---
title: '6.2 - Organiser ses événements'
taxonomy:
category:
- docs
---
## Créer un nouvel évènement
Pour créer un événement, cliquez sur le bouton "Nouvel événement" ou, selon la vue choisie (jour, semaine, mois), cliquez sur le jour ou le créneau horaire souhaité dans la vue principale.
Une boîte de dialogue apparaît, vous pouvez y indiquer :
![Fenêtre nouvel événement](https://ahp.li/5738132457be63fcb23f.png)
1. Le nom de l'événement
2. L'agenda auquel l'associer
3. Les heures de début et de fin et le fuseau horaire. Par défaut, la
durée de l'événement est de :
- 30 minutes pour les vues "jour" et "semaine".
- Toute la journée pour la vue "mois". Dans ce cas, décocher
"Toute la journée" pour pouvoir modifier les heures de début et
de fin.
4. Le lieu
5. La description
Si ces options suffisent, cliquez sur "Enregistrer".
### Options avancées
Pour des **options avancées**, cliquez sur "Plus". La barre latérale s'ouvre sur la droite de l'écran. En plus des options précédentes, vous pouvez :
**Dans l'onglet "Détails"**
![Onglet détails](https://ahp.li/63737c842534bd64c67d.png)
![Onglet Détails](https://ahp.li/d5cb173e9dca554ff23c.png)
1. Indiquer le statut de l'événement : "*confirmé*", "*provisoire*" ou "*annulé*".
2. Indiquer la visibilité de cet événement précis en cas d'agenda
partagé : "*afficher l'événement entier*", "*afficher seulement
comme occupé*", "*masquer l'événement*".
3. Ajouter une Catégories (Anniversaire, Voyage, Réunion, ce que vous voulez)
4. Prévoir un rappel
5. Configurer une récurrence : "*jamais*", "*tous les jours*", "*toutes les semaines*", "*tous les mois*" ou "*tous les ans*", avec ou sans date de fin.
**Dans l'onglet "Participants"**
![Onglet participants](https://ahp.li/7b5c578a9297c1a19c10.png)
1. Utilisez le champ de saisie pour rechercher dans l'annuaire ou dans vos contacts privés le nom des participant⋅es à ajouter. Un email d'invitation est automatiquement envoyé. Par la suite, en cliquant sur le menu d'action associé à chaque nom, vous pouvez :
![Ajout participants événement](https://ahp.li/8b55fe14e1e104e350a1.png)
- Envoyer une nouvelle invitation par email à chaque modification de l'événement en cochant la case "Envoyer par courriel".
- Modifier le statut de chaque participant⋅e ("*président*", "*obligatoire*", "*facultatif*", "*ne participe pas*") voire le⋅a supprimer de la liste.
2. Le bouton "Créer une salle de discussion pour cet événement" ajoute un lien vers le module Discussion dans la description de l'événement.
!!! **L'onglet ressource** est utile en cas de gestion de réservation de salles avec Nextcloud et n'est pas encore documenté.
Cliquez sur "Enregistrer" ou "Mettre à jour" pour valider vos choix.
## Supprimer un événement
----------------------
Pour supprimer un évènement, cliquez dessus. Une boîte de dialogue apparaît.
Cliquez sur le menu d'actions en haut à droite de cette fenêtre.
Sélectionnez "Supprimer" dans le menu déroulant.
![Supprimer événement](https://ahp.li/f564c4d7bb3eee812ed3.png)
Pour retrouver un événement supprimé, cliquez sur la corbeille en bas à gauche de la vue générale.
![Corbeille](https://ahp.li/1a4e9b664c6cf77d0aa9.png)
Vous pouvez dans les actions (trois petits points) :
- Restaurer l'événement
- Supprimer définitivement l'événement.
- Vider la corbeille
! Les événements mis dans la corbeille sont automatiquement supprimés **définitivement** 30 jours après.

View file

@ -0,0 +1,66 @@
---
title: '6.3 - Partager un Agenda'
taxonomy:
category:
- docs
---
## Partage interne
---------------
Vous pouvez **partager votre agenda** avec d'autres **utilisateur⋅ices ou cercles** (l'interface utilise le terme "groupes") de votre instance Nextcloud.
Cliquez sur l'icône de partage au bout de la ligne de l'agenda que vous souhaitez partager.
![Partage agenda](https://ahp.li/743787f58288ef88e2e5.png)
Vous pouvez autoriser la modification de l'agenda (création, modification, suppression d'événements) en cochant la case "peut modifier" associée à chaque destinataire du partage. Si la case n'est pas cochée, seule la consultation de l'agenda est possible.
![Autorisation modification agenda](https://ahp.li/61ab6077713a7b0715a7.png)
Vous pouvez arrêter de partager l'agenda en cliquant sur la corbeille en bout de ligne de chaque destinataire.
!!! Les agendas partagés avec vous apparaissent dans la liste au même niveau que les vôtres.
!!! Ils se distinguent par la présence de l'avatar de leur propriétaire à la place du bouton de partage.
Pour supprimer un agenda qui vous a été partagé, cliquez sur le menu d'action puis sur "Cesser le partage de ma part". Vous avez quelques secondes pour changer d'avis en cliquant sur la flèche circulaire qui apparaît.
! Cette action n'est pas possible si le partage est fait pour un groupe dont vous faites partie.
![Cesser partage](https://ahp.li/63ea3235ed9a2f0997f3.png)
## Publier à l'extérieur
---------------------
Les agendas peuvent être **publiés** via un lien de partage pour les rendre accessibles (en lecture seule) à des **personnes externes** (non inscrites sur votre instance Nextcloud).
1. Cliquez sur l'icône de partage de l'agenda à publier.
![Partage agenda](https://ahp.li/743787f58288ef88e2e5.png)
2. Cliquez sur le bouton "**+**" au bout de la ligne "Lien de partage".
![Lien publication](https://ahp.li/07a9629a8f89887c5c9e.png)
3. Cliquez sur l'icône de copie du lien public. Le lien est copié
automatiquement dans votre presse-papier.
![Copier lien](https://ahp.li/0701be3101741949ce5f.png)
4. Transmettez le liens aux destinataires de la manière de votre choix.
Les personnes ayant accès à ce lien ont la possibilité d'**ajouter l'agenda** à leur logiciel de calendrier personnel et de **télécharger** la totalité de l'agenda au format .ics
<figure>
<img src="acces-agenda.png" alt="Vue de l'agenda partagé côté destinataire" />
<figcaption><i>Côté destinataire, l'interface de l'agenda partagé est semblable à la vôtre, sans le bouton "Nouvel événement". Le menu d'action correspondant à l'agenda ne propose que les options "Copier le lien d'inscription" et "Télécharger".</i></figcaption>
</figure>
! Ce lien est **public** et peut circuler partout, à moins que vous ne révoquiez son partage.
!
! ![Option "supprimer le lien de partage" dans le menu d'actions du lien de partage.](https://ahp.li/7759eae4a294515883d2.png)
=================================================================
!!!! Si vous êtes dans le besoin avec votre association d'avoir un calendrier partagé et éditable, il est possible sur notre instance Cloud Linux07 d'ajouter des utilisateurs avec très peu de quota dans un groupe isolé qui sera partagé avec votre groupe, cela leur permettra d'éditer un calendrier partagé.

View file

@ -0,0 +1,21 @@
---
title: '6 - Agenda'
taxonomy:
category:
- docs
child_type: docs
---
Le module **Agenda** permet d'organiser ses rendez-vous et événements et de les partager avec d'autres personnes en interne ou à l'extérieur.
Tour d'horizon de l'interface :
![Interface Agenda](https://ahp.li/11516df84c586a48fcb2.png)
1. Les événements sont affichés dans la **vue principale**.
2. **Indicateur** de la vue affichée se trouve en haut du menu à gauche. Il permet de **naviguer** vers une autre journée, semaine ou mois.
3. Sous l'indicateur, un bouton permet de créer un **nouvel événement**.
4. À côté, le bouton "Auj" permet de **recentrer la vue** sur la journée, la semaine ou le mois en cours.
5. En bout de ligne, une icône permet de choisir le **type de vue** : journée, semaine, mois (comme ici) ou liste des événements.
6. Le reste du menu contient la **liste des agendas** auxquels vous avez accès (les vôtres et ceux qui vous sont partagés).
7. Tout en bas, vous avez accès à la **corbeille** et aux **paramètres** pour ce module.

View file

@ -0,0 +1,129 @@
---
title: '7.1 - Gérer ser fichiers sur mobile'
taxonomy:
category:
- docs
---
## Installer l'application Nextcloud
L'installation de l'application Nextcloud se fait de la même manière sur
**iPhone** et sur **Android**.
1. Recherchez l'application "Nextcloud" dans votre magasin habituel
d'applications.
![](https://ahp.li/bc0ff08e85cf00bcb6aa.png)
2. Installez l'application puis ouvrez-la.
3. Appuyez sur "Se connecter"
<p><img src="https://ahp.li/d78093d9b979c2c431ad.png" alt="" width="300"/></p>
4. **Ajouter un mot de passe d'application**
En cas de perte ou de vol de votre mobile, il peut être utile de
**révoquer à distance l'accès à votre espace**. Pour cela, il faut
avoir créé un mot de passe d'application au moment de
l'installation.
1. Posez votre téléphone et connectez vous à Nextcloud **depuis
votre ordinateur.**
2. Ouvrez les paramètres.
- Voir : [1.2. Personnaliser les paramètres](<https://documentations.linux07.fr/cloud-linux07-nextcloud/premier-pas/1-3-personnaliser-ses-parametres).
3. Cliquez sur "Sécurité" dans le menu à gauche.
4. Cliquez sur "Créer un nouveau mot de passe d'application" dans la section "Appareils et sessions".
![](https://ahp.li/2ea43305b68b8624a493.png)
5. Cliquez sur "Afficher le QR code pour les applications mobiles", sous les identifiants qui viennent d'être générés.
![](https://ahp.li/2ec4be473bcd4be70db4.png)
6. Retournez sur votre mobile et appuyez sur l'icône représentant
un QR code, en bas de l'écran.
<p><img src="https://ahp.li/8de8c929a8e297a89791.png" alt="" width="300" /></p>
7. Scannez le QR code de votre ordinateur avec votre mobile.
5. Appuyez sur "Se connecter" sur la page de votre collectif qui vient de charger (les captures d'écran sont avec une autre instance Nextcloud, mais le principe est le même).
<p><img src="https://ahp.li/572764cbbb9453635bda.png" alt="" width="300"/></p>
6. Entrez l'adresse mail et le mot de passe utilisés pour cet espace et cliquez sur "Se connecter".
<p><img src="https://ahp.li/99121fb87c55e9ab58b1.png" alt="" width="300"/></p>
7. Appuyez sur "Autoriser l'accès".
<p><img src="https://ahp.li/c9e9de4468c3e9fc43db.png" alt="" width="300"/></p>
8. Appuyez sur "Autoriser" dans la boîte de dialogue qui aparaît, pour que l'application puisse bien accéder à
vos fichiers sur votre mobile.
<p><img src="https://ahp.li/6f629d96cef7cae1540e.png" alt="" width="300"/></p>
Vous avez désormais accès à votre espace Nextcloud depuis votre mobile.
Vous pouvez y réaliser les mêmes actions que sur l'interface Web.
## Envoyer et télécharger des fichiers
### Sur Android
#### Envoyer un fichier depuis votre téléphone vers Nextcloud
##### À partir de la liste de vos fichiers
1. Faites un appui long sur le nom du fichier.
2. Appuyez sur l'icône de partage de ce fichier.
<p><img src="https://ahp.li/46c2c9dd445590d2c64a.png" alt="" width="300"/></p>
3. Sélectionnez "Nextcloud"
4. Choisissez le dossier de destination.
5. Appuyez sur "Envoyer".
<p><img src="https://ahp.li/f9034bf3d7de96d4fc38.png" alt="" width="300"/></p>
##### À partir de l'application Nextcloud
1. Placez-vous dans le dossier de destination.
2. Appuyez sur le bouton **+** en bas à droite de l'écran.
<p><img src="https://ahp.li/b7cac301ca49f53dbae5.png" alt="" width="300"/></p>
3. Appuyez sur "Téléverser des fichiers" dans la boîte de dialogue.
<p><img src="https://ahp.li/6433b1c331c60613663b.png" alt="" width="300"/></p>
4. Sélectionnez le fichier à envoyer.
5. Appuyez sur "Envoyer".
<p><img src="https://ahp.li/f9034bf3d7de96d4fc38.png" alt="" width="300"/></p>
#### Télécharger un fichier depuis Nextcloud vers votre téléphone
1. Appuyez sur le menu d'actions du fichier concerné
2. Appuyez sur "Télécharger" dans le menu déroulant.
<p><img src="https://ahp.li/6ae5f6eeed8da05f2a8a.png" alt="" width="300"/></p>
### Sur iPhone
🚧 Documentation à venir 🚧
## Révoquer l'accès d'un appareil
Si vous changez de téléphone, ou que vous le perdez ou qu'on vous le vole, vous pouvez révoquer l'accès à votre espace depuis l'interface web.
1. Ouvrez les paramètres
- Voir : [1.2. Personnaliser les paramètres](https://documentations.linux07.fr/cloud-linux07-nextcloud/premier-pas/1-3-personnaliser-ses-parametres).
2. Cliquez sur "Sécurité" dans le menu de gauche
3. Cliquez sur le menu d'action correspondant à l'appareil dont vous souhaitez révoquer l'accès, dans la section "Appareils et sessions".
![revoquer-acces-appareil.png](https://ahp.li/a44a5186df0aa4db5024.png)
4. Cliquez sur "Révoquer" dans le menu déroulant.

View file

@ -0,0 +1,38 @@
---
title: '7.2 - Synchroniser ses discussions'
taxonomy:
category:
- docs
---
L'installation de l'application Nextcloud Talk se fait de la même
manière sur **iPhone** et sur **Android**.
1. Recherchez l'application "Nextcloud Talk" dans votre magasin
habituel d'applications.
<p><img src="https://ahp.li/bc0ff08e85cf00bcb6aa.png" alt="" width="400"/>
2. Installez l'application puis ouvrez-la.
3. Entrez l'adresse de votre instance Nextcloud dans le champ de saisie.
<p><img src="https://ahp.li/01a8015aabd8d0e1ba41.png" alt="" width="300"/></p>
4. Appuyez sur "Se connecter" sur la page de votre collectif (les captures sont avec une autre instance, mais les principes sont les mêmes).
<p><img src="https://ahp.li/572764cbbb9453635bda.png" alt="" width="300"/></p>
5. Entrez le nom d'utilisateur et le mot de passe utilisés pour cet espace et cliquez sur "Se connecter".
<p><img src="https://ahp.li/99121fb87c55e9ab58b1.png" alt="" width="300"/></p>
6. Appuyez sur "Autoriser l'accès".
<p><img src="https://ahp.li/c9e9de4468c3e9fc43db.png" alt="cautoriser nextcloud" width="300"/></p>
Vous avez désormais accès à vos discussions Nextcloud depuis votre
mobile. Vous pouvez y réaliser les mêmes actions que sur l'interface
Web.
<p><img src="https://ahp.li/ccccc025a2ad5522c720.png" alt="" width="300"/></p>

View file

@ -0,0 +1,86 @@
---
title: '7.3 - Synchroniser ses contacts et agendas'
taxonomy:
category:
- docs
---
Synchroniser ses contacts et agendas sur Android
------------------------------------------------
Nextcloud ne propose pas spécifiquement d'application mobile pour les
contacts et les agendas. Il est cependant possible de les synchroniser
avec vos propres applications **sur Android**, en utilisant
<a href="https://www.davx5.com/" title="site en anglais" hreflang="en">Davx5</a>.
1. Recherchez l'application "DAVx5" dans votre magasin habituel
d'applications.
![](https://ahp.li/64a51abeacb9164afc49.png)
- DAVx5 est gratuit quand il est installé depuis le magasin
d'applications [F-droid](https://f-droid.org/fr/) et payant depuis les autres magasins
d'applications, afin de soutenir ce projet open source.
2. Installez l'application puis ouvrez-la.
3. Passez l'écran d'accueil et l'écran de gestion des tâches en appuyant sur la flèche en bas à droite.
<p><img src="https://ahp.li/b44bc6a49acde63b71b4.png" alt="" width="300"/></p>
4. Autorisez la synchronisation des contacts et/ou des calendriers
selon vos besoins.
<p><img src="https://ahp.li/39181d6d467074b1589a.png" alt="trois actions possibles à cocher : tout autoriser, autorisation d'accès aux contacts, autorisations du calandrier." width="300"/></p>
5. Pour chaque, autorisez l'accès à votre mobile dans la boîte de dialogue qui apparaît.
![](https://ahp.li/66dc6aa11632f2bf2bc7.png)
6. Passez l'écran d'autorisations puis l'écran d'information sur
l'application en cliquant sur a flèche en bas à droite.
7. Cliquez sur le bouton **+** en bas à droite pour créer un nouveau
compte.
<p><img src="https://ahp.li/a4de542ef725da4050f2.png" alt="" width="300"/></p>
8. Choisissez "Connexion avec une URL et un nom d'utilisateur", entrez vos informations de connexion au Nextcloud de CLoud Linux07 et cliquez sur "Se connecter" en bas à droite.
<p><img src="https://ahp.li/28824824151489559b18.png" alt="" width="300"/></p>
9. Cliquez sur "Créer un compte" en bas à droite de la nouvelle page.
<p><img src="https://ahp.li/785869bee3299a5b176b.png" alt="" width="300"/></p>
10. Dans les onglets correspondants, cochez les carnets d'adresse et les agendas Nextcloud que vous souhaitez
ajouter à vos applications mobile de contacts et de calendrier.
![](https://ahp.li/2416981f030a3b9898f2.png)
!!! Pour que les contacts et les événements sur votre mobile apparaissent dans votre espace Nextcloud, créez ou copiez-les sur le compte Davx désormais proposé dans votre application de contact ou de calendrier.
===================================================================
!!! La synchronisation prend du temps, parfois plusieurs minutes. Si des contacts ou des événements n'apparaissent pas sur votre espace Nextcloud ou sur votre mobile, patientez une dizaine de minutes et rafraîchissez les pages.
Synchroniser ses contacts et agendas sur iOS
--------------------------------------------
! Cette partie de la documentation est théorique, il faut encore la tester.
### Synchroniser ses contacts
1. Ouvrir *Réglages -\> Contacts -\> Comptes -\> Ajouter un compte -\>
Autre -\> Ajouter un compte CardDAV*
2. Entrez l'adresse nc.linux07.fr et vos informations de
connexion au Nextcloud de Cloud Linux07
### Synchroniser ses agendas
Ouvrir *Réglages -\> Contacts -\> Comptes -\> Ajouter un compte -\>
Autre -\> Ajouter un compte CalDAV*
1. Entrez l'adresse nc.linux07.fr et vos informations de
connexion au Nextcloud de Cloud Linux07
2. Validez.

View file

@ -0,0 +1,37 @@
---
title: '7.4 - Synchroniser ses Notes'
taxonomy:
category:
- docs
---
L'installation de l'application Nextcloud Notes se fait de la même
manière sur **iPhone** et sur **Android**.
Elle necessite que soit déjà installé l'application Nextcloud
1. Recherchez l'application "Nextcloud Notes" dans votre magasin
habituel d'applications (se trouve aussi sur le dépôt F-Droid).
![Application Nextcloud Notes](https://ahp.li/b7ac202eafeda57dbba3.png)
2. Installez l'application puis ouvrez-la.
3. Choisissez l'adresse de connexion au serveur Nextcloud voulu.
4. Appuyez sur "Se connecter" sur la page de votre collectif (les captures sont avec une autre instance, mais les principes sont les mêmes).
<p><img src="https://ahp.li/572764cbbb9453635bda.png" alt="" width="300"/></p>
5. Entrez le nom d'utilisateur et le mot de passe utilisés pour cet espace et cliquez sur "Se connecter".
<p><img src="https://ahp.li/99121fb87c55e9ab58b1.png" alt="" width="300"/></p>
6. Appuyez sur "Autoriser l'accès".
<p><img src="https://ahp.li/c9e9de4468c3e9fc43db.png" alt="cautoriser nextcloud" width="300"/></p>
Vous avez désormais accès à vos notes Nextcloud depuis votre
mobile. Vous pouvez y réaliser les mêmes actions que sur l'interface
Web.

View file

@ -0,0 +1,26 @@
---
title: '7 - Nextcloud sur mobile'
taxonomy:
category:
- docs
child_type: docs
---
Nextcloud permet la synchronisation de plusieurs de ses modules sur mobile (Android et iOS) :
* Fichiers
* Discussion
* Contacts et Agenda
* Notes
* Tâches
Pour chaque module, une application différente est nécessaire.
!!!! Sur un Android, vous pouvez utiliser un autre dépôt que le PlayStore de Google.
!!!! Je recommande le dépôt **F-Droid**. Plusieurs applications libres sont dans ce dépôt et parfois certaines applications payantes sur le PlayStore seront gratuites sur ce dépôt.
!!!! F-Droid, en dehors d'être un dépôt dapplications Android, propose également un client Android permettant d'installer facilement ces applications et de les mettre à jour.
!!! [Téléchargement F-Droid](https://f-droid.org/fr/)
!!! Pour installer lapplication F-Droid, l'utilisateur doit cocher l'option permettant linstallation d'applications depuis des sources inconnues dans ces paramètres, et avoir au préalable téléchargé l'apk depuis le site officiel avec un navigateur internet classique.
! Sauf pour l'application Fichiers (Files) qui elle doit d'abord être téléchargée sur le PlayStore ( ou bien sur [AuroraStore](https://aurora-store.fr.uptodown.com/android), autre dépôt qui permet d'accéder au PlayStore sans avoir besoin d'un compte Google) pour que fonctionne les autres applications que vous pouvez ensuite télécharger sur F-Droid.

View file

@ -0,0 +1,145 @@
---
title: '8.1 - Synchroniser ses contacts avec Thunderbird'
taxonomy:
category:
- docs
---
! Depuis peu Thunderbird a eu une mise à jour importante vers une nouvelle version numérotée 102, celle-ci vient améliorer bien des éléments de l'application open source. Si votre version est antérieure, je vous conseille vivement dans un premier temps de mettre à jour Thunderbird avant de continuer.
===
!!! Avant cette nouvelle version, pour bien synchroniser les Contacts et Agendas de Nextcloud, étaient nécessaires 3 modules complémentaires (extensions) de Thunderbird, Cardav&Caldav Provider, TBSync et Category Manager. Ce n'est plus nécessaire. Il ne reste plus qu'une extension que je conseille encore de rajouter, Cardbook.
La nouvelle interface de Thunderbird ajoute une barre à gauche de sa fenêtre où se trouve les icônes pour les Courriers, les Contacts, les Agendas, les Tâches, les Discussions et autre modules si ajoutés.
## 1. Ouvrez l'onglet **Contacts** en cliquant sur son icône
![Onglet Contacts](https://ahp.li/a4ff47aae0aea527a07a.png)
L'onglet des Carnets d'adresses s'ouvre
![Interface du Carnet d'adresses](https://ahp.li/cf107fcb65bb2fe1ff67.png)
## 2. Ajouter un carnet d'adresse
Cliquez sur Nouveau carnet d'adresses, puis sur Ajouter un carnet d'adresses CardDAV
![Nouveau carnet adresses Cardav](https://ahp.li/99d46a9f60f7df607725.png)
Une fenêtre popup s'affiche où vous devez entrer votre nom d'utilisateur Nextcloud et l'adresse web de votre serveur Nextcloud.
![Identifiant et adresse serveur](https://ahp.li/f5982bbbed02db2ef3f1.png)
Cliquez ensuite sur Continuer. Une nouvelle fenêtre popup s'ouvre pour vous authentifier auprès du serveur Nextcloud. Entrez votre nom d'utilisateur et votre mot de passe Nextcloud.
![Authentification Nextcloud](https://ahp.li/d90bf11d77df5c33c82d.png)
Vérifiez aussi que la case _Utilisez le gestionnaire de mot de passe pour se souvenir de ce mot de passe_ en bien cochée, puis cliquez sur OK
Il faut patienter un peu pour qu'il trouve le carnet ou les carnets d'adresses, puis la liste va apparaître.
![Liste carnets d'adresses](https://ahp.li/9a89495b8429e9a96c55.png)
On peut choisir le carnet ou les carnets d'adresses que l'on veut synchroniser.
![Choix des carnets d'adresses à synchroniser](https://ahp.li/64e6764a6a08820b3549.png)
Puis on clique sur Continuer, on attends que la synchronisation soit finie. Les carnets se retrouvent dans l'onglet de gauche avec la liste des utilisateurs et de leur adresses courriel.
![Carnets adresses synchronisés](https://ahp.li/72b071b72ac71640f764.png)
## 3. Utiliser les Groupes comme des listes de courriels
Une fonction très utile, les Groupes dans les Contacts de Nextcloud peuvent servir à créer des listes de mails, un utilisateur peut appartenir à plusieurs Groupes. Pour cela, nous avons besoin du module CardBook de Thunderbird.
Sur la page Courrier (l'onglet Courrier entrant), en haut à droite se trouve une icône sandwich (trois petite ligne), en cliquant dessus on déplie le **menu** et on va descendre sur **Module complémentaires et thème**
![menu module complémentaires et thèmes](https://ahp.li/3e49b49b5b5bbbb8d586.png)
Ensuite on va cliquer sur **Extensions** dans la colonne de gauche et dans le champ de recherche on tape _cardbook_ et on clique sur la loupe.
![Recherche Cardbook](https://ahp.li/2103236a573689772819.png)
Une page des modules de Thunderbird va s'ouvrir et vous pourrez cliquer sur Installer Cardbook
![Installation Cardbook](https://ahp.li/147481faef4e88802808.png)
Après l'installation, il a une petite configuration post-installation, cliquez sur _Suivant_
![Configuration Cardbook](https://ahp.li/14b7d547b1061d02ff46.png)
Il va vous proposez les carnets d'adresses qu'il a trouver.
![Choix carnets cardbook](https://ahp.li/64e6764a6a08820b3549.png)
Vous pouvez changer des couleurs, les noms des carnets, je vous conseille de garder par défaut _Travailler hors connexion_ coché et _vCard 3.0_.
![Choix carnets Cardbook](https://ahp.li/de55c499cab07d95e89c.png)
La dernière fenêtre devrait afficher un message: _Vos carnets d'adresses ont été configurés avec succès_
Cliquer sur Suivant.
Vous avez maintenant une nouvelle icône pour ouvrir CradBook dans la colonne de droite tout en bas.
Au-dessus des carnets d'adresses un bouton pour synchroniser les Carnets d'adresses liés avec le serveur Nextcloud.
Si vous dépliez un carnet d'adresse, vous verrez les fameux Groupes dans Nextcloud, CardBook appelle ces Groupes des Catégories.
![Vue Cardbook](https://ahp.li/42ab305481b39d13affc.png)
Par exemple, si je vais sur une categorie, je vois la liste des contacts qui sont dans cette categorie.
![Vue courriels categorie](https://ahp.li/09f4e7a20addf450cb9a.png)
Cette categorie peut me servir de liste de courriels. Si je me lance dans _Écrire un nouveau message_, s'ouvre la fenêtre de rédaction. Pour afficher la _Barre de contacts_, soit je clique sur la touche F9, soit dans l'onglet _Affichage_ je clique sur _Barre de contacts_
![Affichage barre de contacts](https://ahp.li/18a96b555907a797b9f6.png)
Dans la barre de Contacts, on peux choisir:
* le Carnet d'Adresses (ou Tous les carnets d'adresses),
* Filtrer sur les Catégories,
* chercher un contact.
Vous aurez tous les contacts d'un Carnet et d'une Catégorie si elle est choisie, avec une icône d'une personne et les Categories (liste courriels) avec une icône de groupe (deux personnes).
Si vous choisissez une Catégorie ou un contact, vous pouvez en-dessous choisir:
* si le message lui est adressé,
* en Copie (CC),
* Copie cachée (CCi)
* ou Répondre à.
![Barre de Contacts choix](https://ahp.li/b2e836bdf4263bbb932d.png)
!!!! Si vous avez beaucoup d'adresses dans une Catégorie, préférez Ajout Copie cachée. Les longues listes de courriel ne sont pas très sûres en matière de sécurité.
## Éditer un contact
Privilégiez CardBook pour gérer vos contacts. Voyons comment éditer un contact
Cliquer sur le contact. vous pouvez utiliser le bouton _Modifier_ dans la barre en haut à droite, ou juste double-cliquer sur le contact pour l'éditer.
![Cardbook choix utilisateur](https://ahp.li/960b07742700f63470ff.png)
Vous pouvez choisir de le mettre dans un autre carnet d'adresses en dépliant les carnets d'adresses.
![modifier carnets d'adresses](https://ahp.li/81c364ef4a28adfc42fd.png)
Vous pouvez choisir dans quelles categories ajouter le contact (comme expliqué au-dessus, très pratique pour avoir des listes mails)
![modifier catégories](https://ahp.li/3967d9cd679db5a8a377.png)
En descendant vous avez aussi plusieurs informations à ajouter ou modifier. avec le **+** devant l'adresse courriel, vous pouvez attribuer plusieurs adresses courriels, ajouter un ou des numéros de téléphones, ajouter une ou des adresses, des comptes de communication VOIP sur internet (Google Talk, Skpe, Jammi, Jabber), des URLS de site, et évenements ??
![modifier options](https://ahp.li/e38a2993f683b3e9eb28.png)
! N'oubliez pas de cliquer sur _Sauver_ en bas de la fenêtre pour sauvegarder vos modifications.
!!! Si vous créez un nouveau contact, vous aurez les mêmes options qu'ici.
!!!! Pensez aussi après avoir effectué des changements à synchroniser vos contacts dans votre interface des carnets d'adresses Cardbook

View file

@ -0,0 +1,99 @@
---
title: '8.2 - Synchroniser ses Agendas sur Thunderbird'
---
! Depuis peu Thunderbird a eu une mise à jour importante vers une nouvelle version numérotée 102, celle-ci vient améliorer bien des éléments de l'application open source. Si votre version est antérieure, je vous conseille vivement dans un premier temps de mettre à jour Thunderbird avant de continuer.
===
!!! Avant cette nouvelle version, pour bien synchroniser les Contacts et Agendas de Nextcloud, étaient nécessaires 3 modules complémentaires (extensions) de Thunderbird, Cardav&Caldav Provider, TBSync et Category Manager. Ce n'est plus necessaire. Il ne reste qu'une extension que je conseille encore de rajouter, Cardbook.
La nouvelle interface de Thunderbird ajoute une barre à gauche de sa fenêtre où se trouve les icônes pour les Courriers, les Contacts, les Agendas, les Tâches, les Discussions et autre modules si ajoutés.
## 1. Ouvrez l'onglet **Agendas** en cliquant sur son icône
![Onglet Agendas](https://ahp.li/33cee7d4eee444e0eb1e.png)
L'onglet des Agendas s'ouvre
## 2. Cliquez sur créer un nouvel Agenda
En cliquant sur le **+** devant Agendas
![créer un nouvel agenda](https://ahp.li/0c4efdc235ff2ff48d94.png)
une fenêtre popup va s'ouvrir, choisissez Sur le réseau
![créer un nouvel agenda sur le réseau](https://ahp.li/4cac5454c4ea293a4442.png)
Puis _Suivant_, Une nouvelle fenêtre s'ouvre, vous devez mettre votre nom d'utilisateur et l'adresse internet de votre instance Nextcloud (ici celle du Cloud Linux07)
![nouvel agenda identifiant et url](https://ahp.li/2019971b484b1b0010f1.png)
Puis cliquez sur _Chercher de Agendas_, une fenêtre popup va vous demander de vous authentifier avec votre mot de passe de l'instance Nextcloud
![nouvel agenda authentifiaction nextcloud](https://ahp.li/206c4b9611bd91e9512f.png)
Mettez votre mot de passe et pensez à cocher _Utiliser le gestionnaire de mot de passe pour se souvenir de ce mot de passe_
Attendre un peu qu'il recherche les agendas, vous allez voir la liste des Agendas et ceux partagés avec vous que vous avez sur votre instance Nextcloud.
![Séléctions Agendas](https://ahp.li/58b6daaabc0a403d0e53.png)
Vous avez le choix de cocher ceux que vous voulez synchroniser avec Thunderbird en les gardant cochés. Il y aussi un onglet Propriétés, qui est aussi accessible plus tard.
Cliquez ensuite sur _S'abonner_.
Les Agendas sélectionner vont apparaître. Voilà c'est fait !
## L'interface et les options
Une fois les agendas importés.
![agendas thunderbird](https://ahp.li/a40d5c190322293d1c02.png)
1. Dans la barre de navigation en haut on a _synchroniser_ (synchroniser les agendas entre Thunderbird et l'instance Nextcloud),_Évenements_ (créer un nouvel événement), _Tâche_ (ajouter une tâche, si l'agenda est un agenda avec des tâches), _Modifier_ (modifier un événement sur le calendrier, cliquer dessus auparavant), _Supprimer_ (supprimer un événement, cliquer dessus auparavant).
2. Un espace ou sont listés les évenements.
3. Un outil de navigation pour avancer ou reculer dans le temps.
![choix liste événement et options](https://ahp.li/d939ed5298d38e157058.png)
1. En haut à droite, vous avez un bouton pour les synchroniser,après un changement effectué.
2. Un choix pour la liste des événements à voir au-dessus du calendrier (tous, du jour, semaine, mois, futurs, etc...)
3. devant une barre de recherche par mot clé (avec une loupe).
4. au-dessus de l'agenda, des onglets pour une vue par journée, semaine, multisemaine ou mois
En se positionnant sur un agenda et avec clic droit on a des options qui apparraîssent
![agenda choix clic droit propriétés](https://ahp.li/5cacdcdb77f607adf0af.png)
Choix d'affichages (vous pouvez aussi simplement cliquer sur l'icône avec un oeil devant un agenda pour le masquer ou le voir), nouvel Agenda (créer un nouvel Agenda), se désabonner de l'agenda, exporter l'agenda, publier l'agenda, puis synchroniser les agendas et Propriétés.
Cliquez sur Propriétés de l'agenda, une fenêtre s'ouvre pour modifier un agenda
![modifier agenda](https://ahp.li/8be28aa21148a581a03e.png)
Vous pouvez changer le nom de l'agenda, changer sa couleur, choisir le temps imparti avant l'actualisation de l'agenda (sa synchronisation), vous pouvez le lier à une autre adresse mail si vous en avez plusieurs configurées, puis des réglages pour les notifications.
Cliquer sur OK, une fois fini.
Pour créer un événement, vous pouvez aussi simplement faire un double clic dans une date choisie du calendrier, une fenêtre va s'ouvrir pour sa création.
![créer événement](https://ahp.li/afc3cb0443768ca689ab.png)
Vous pouvez choisir
* à quel Agenda attribuer cet événement,
* le Titre,
* le Lieu,
* la Catégorie (vous pouvez créer aussi de catégories d'événements),
* si c'est sur la journée entière cochez Évenement sur la journée, sinon date et heure du début et date et heure de la fin,
* Répétition (permet de répéter un événement sur un choix de laps de temps)
* Description de l'événement
! Quand vous êtes satisfait, n'oubliez pas de cliquer sur _Enregistrer et fermer_ dans la barre du haut, sinon vous aurez perdu votre édition...
Il reste les fonctions comme inviter des participants, confidentialité ou joindre, qui peuvent avoir un intérêt, mais pas documenter ici pour l'instant.

View file

@ -0,0 +1,11 @@
---
title: '8 - Nextcloud et client mail Thundebird'
taxonomy:
category:
- docs
---
Nextcloud permet la synchronisation des modules **Contacts** et **Agendas** avec une boîte mail Thunbderbird.
!!! Avec autre client mail aussi ce doit être possible, je me contenterai ici de documenter comment utiliser Thunderbird qui est un logiciel libre performant qui mérite d'être utilisé.

View file

@ -0,0 +1,32 @@
---
title: 'Cloud Linux07 (Nextcloud)'
taxonomy:
category:
- docs
child_type: chapter
---
# Cloud Linux07
Le **Cloud Linux07** est un service pour **Stocker**,**organiser**, **partager** et **sécuriser** toutes sortes de documents est désormais indispensable pour de nombreux utilisateurs. Le Cloud fournit une solution flexible grâce à laquelle il est possible davoir accès à ces fichiers depuis nimporte quel appareil connecté. Si le stockage sur le Cloud apporte une réponse concrète à un besoin bien réel, les services proposant diverses versions et interfaces pour ce type de stockage sont légion.
Ce service utilise le logiciel libre [Nextcloud](https://fr.wikipedia.org/wiki/Nextcloud/). Le logiciel **Nextcloud** comporte ainsi ses propres spécificités.
Sur celui-ci nous avons ajouter ces extensions
* [Contacts](https://apps.nextcloud.com/apps/contacts) pour gérer ses contacts,
* [Agenda](https://apps.nextcloud.com/apps/calendar) pour créer des Agendas,
* [Talk](https://apps.nextcloud.com/apps/spreed) pour créer des discussions (réservé aux adhérents),
* [Notes](https://apps.nextcloud.com/apps/notes) pour créer des notes,
* [Formulaires](https://apps.nextcloud.com/apps/forms) pour créer des formulaires,
* [Tâches](https://apps.nextcloud.com/apps/tasks) pour créer des tâches,
* [Deck](https://apps.nextcloud.com/apps/deck) sorte de kaban, outil de planification pour s'organiser des tâches intégré à Nextcloud,
* [Passwords](https://apps.nextcloud.com/apps/passwords) gestionnaire de mots de passe sécurisé, permettant aussi de les partager,
* [OnlyOffice](https://apps.nextcloud.com/apps/onlyoffice) suite bureautique pour l'édition collaborative (réservé aux adhérents),
* [Ownpad](https://apps.nextcloud.com/apps/ownpad) permet de créer et d'ouvrir des documents collaboratifs Etherpad et Ethercalc,
* [Mind Map](https://apps.nextcloud.com/apps/files_mindmap) une méthode pratique et rapide de rassembler vos idées au fur et à mesure, qu'elles vous viennent à l'esprit, sans vous soucier de leur ordre initial, puis de les structurer visuellement pour faciliter leur analyse et leur mémorisation,
* [Excalidraw Integration](https://apps.nextcloud.com/apps/integration_excalidraw) integration de diagrammes avec Excalidraw.
OnlyOffice est maintenant connecté sur le serveur installé sur le même serveur que les services Linux07. Les textes collaboratifs Etherpad aussi sont sur le serveur.
Toutes ces applications et les données peuvent être partagées et/ou synchronisées avec des applications clientes sur un ordinateur de bureau et/ou un mobile.
! Les modules Talk et OnlyOffice sont réservées aux utilisateurs avec une adhésion à l'association...

View file

@ -0,0 +1,42 @@
---
title: '1.1 - Connexion à l''espace Mypads'
---
! L'espace Mypads est réservé aux utilisateurs Yunohost, donc aux adhérent·e·s à l'association Linux07
Dans un premier temps, il faut se connecter au [portail linux07](https://linux07.fr).
![Connexion portail Yunohost](https://ahp.li/ef8617e1cf3198a5ad20.png)
Une fois connecté vous aurez dans cet espace plusieurs tuiles avec les services disponibles de Yunohost.
Les tuiles ont été renommée avec un nom court correspondant à leur fonction pour plus de lisibilité. Pour Etherpad_Mypads, il s'agit de la tuile **Textes Collaboratifs**
![Portail Linux07 Tuiles](https://ahp.li/6d1d69f027d8d9889828.png)
!!! Le portail dans cet environnement Yunohost permet d'être connecté au **SSO**, vous êtes ainsi automatiquement authentifié pour les services **Cloud Linux07**(Nextcloud) et à votre boîte **Mails**(Roundcube). Pour l'espace **Mypads** vous devez néanmoins vous authentifier de nouveau avec le même nom d"utilisateur et même mot de passe.
En cliquant sur la tuile, vous arrivez sur une page avec ces possibilités
![Choix pad ou Mypads](https://ahp.li/8b089751145dc871a7db.png)
1. **Créer ou ouvrir un bloc-notes intitulé** permet de créer un texte collaboratif (public) avec le nom que vous choisirez ou d'en ouvrir un déjà créer avec le même nom.
2. **MyPads** permet quand à lui de vous connecter dans votre espace personnel de textes collaboratifs Mypads.
En cliquant sur MyPads vous devrez vous authentifié avec votre nom d'utilisateur Yunohost et votre mot de passe
![Connexion MyPads](https://ahp.li/0283c2d2590b22c00c92.png)
Une fois connecter vous arrivez sur l'onglet **Mes Dossiers**
![Mypads Mes Dossiers](https://ahp.li/73b7fdf2a15271be2bea.png)
1. Onglets Mes Dossiers & Pads, Mes Favoris, Mes listes Utilisateurs, Mon Profil, Déconnexion
2. Créer un nouveau dossier
3. Un champ de recherche par nom pour les Dossiers
4. Une colonne avec les Dossiers créés avec devant une icône en forme de clé pour modifier les paramètres du Dossier et une autre icône pour supprimer le dossier
5. Une colonne des Pads(textes) dans le dossier avec leur nombre une icône **+** pour en ajouter les permissions des pads (par défaut celles du dossier), le Nombre d'administrateurs du dossier, un **+** pour en ajouter, le nombre d'utilisateurs et un **+** pour en ajouter.
6. Une colonne Labels, des étiquettes que l'on peut ajouter au dossier
7. Cette icône avec le logo de Linux07 sert à revenir au portail utilisateur Yunohost. Elle est présente aussi dans d'autres applications comme le Cloud ou les Mails, vous pouvez la déplacer avec un clic droit dessus et en laissant appuyer en déplaçant la souris ou le pad.
Vous avez toujours une Aide qui s'affichera pour vous guider à droite (que l'on peut désactiver dans son profil).

View file

@ -0,0 +1,26 @@
---
title: '1.2 - Les Dossiers dans Mypads'
taxonomy:
category:
- docs
---
En cliquant sur un dossier, on va voir la liste des textes(pads) en-dessous.
![Dossier Mypads](https://ahp.li/c5386ee82968e8553586.png)
Les détails dun dossier vous montrent :
* les options définies lorsque le dossier a été créé ou mis à jour ;
* la liste des pads créés pour ce dossier ;
* et la liste des administrateurs et utilisateurs de ce dossier.
À partir de là, vous pouvez :
* créer de nouveaux pads, les modifier, les supprimer ou les mettre en favoris ;
* partager ladministration de votre dossier avec dautres utilisateurs ;
* inviter dautres utilisateurs à voir et participer aux pads de ce dossier.
En dessous en descendant, vous avez la liste des Administrateurs et Utilisateurs et la possibilité d'en ajouter ou d'en supprimer
![Administrateurs & Utilisateurs](https://ahp.li/e5a35af69fbffadc3ff5.png)

View file

@ -0,0 +1,45 @@
---
title: '1.3 - Les Onglets dans Mypads'
taxonomy:
category:
- docs
---
## Favoris
La page de favoris vous permet de voir lensemble des éléments de MyPads que vous avez mis en favoris et éventuellement de les en supprimer.
## Mes listes utilisateurs
Vous trouverez ici toutes vos listes dutilisateurs, rangées par date de création. Des informations résumées sont disponibles avec le nom de chaque liste et le nombre dutilisateurs liés.
Avec les icônes dactions, situées en haut à droite de chaque liste, vous pouvez modifier ou supprimer les listes. Davantage de détails sont disponibles sur le formulaire dédition.
! Les utilisateurs doivent avoir des comptes adhérents, on ne peut pas ajouter de personnes extérieures aux listes.
![Liste Utilisateurs](https://ahp.li/bed2b2e6d07a4fba2044.png)
On peut modifier une liste ou en créer une nouvelle en ajoutant des noms d'utilisateurs ou mail.
! Ce doit être des nom d'utilisateurs Yunohost ou des mails liés à l'instance Yunohost ([at] linux07.fr pour les adhérents Linux07) qui ce sont déjà connectés à leur espace MyPads au moins une fois.
![Modifier liste utilisateurs](https://ahp.li/04c2d22e822c8dbc44cc.png)
!!!! Les listes utilisateurs permettent ensuite d'être ajoutées à un dossier restreint ou un pad restreint avec les permissions choisies.
## Mon profil
Tout changement dans votre profil nécessite votre mot de passe actuel. Merci de noter que :
* vous pouvez modifier toute information en utilisant le champ correspondant ;
* laisser les champs de mot de passe et de confirmation vides naura pas deffet sur votre mot de passe actuel ;
Ici vous pourrez ajouter une Organisation, choisir votre couleur par défaut pour le surlignage des textes collaboratifs, cacher les blocs d'aide si vous cochez la case correspondante.
![Profil](https://ahp.li/18acbb1af083e66dfdd3.png)
## Déconnexion
Le bouton de déconnexion ne fonctionne pas toujours. Sinon, vous pouvez revenir au portail adhérent avec l'icône du logo Linux07 et vous déconnecter de l'instance Yunohost. En fermant le navigateur vous serez déconnectés.

View file

@ -0,0 +1,75 @@
---
title: '1.4 - Édition texte collaboratif Mypads'
taxonomy:
category:
- docs
---
## Pad
En cliquant sur un pad vous arriverez vers un éditeur collaboratif de texte
En haut se trouve une barre d'édition avec:
* caractère Gras,
* Italique,
* Surligné,
* Barré,
* Liste ordonnée,
* Liste désordonnée,
* Indenter
* Désindenter
* Annuler la dernière édition
* Rétablir l'anulation
* Effacer le surlignage (attention cela ne peut être rétabli par la suite, le surlignage permet de voir qui a éditer des changements, à faire que quand la collaboration est finalisé),
* Ajouter un tableau,
* Superscript pour faire de racine carré,
* Subscript, valeur en dessous,
* Le Style de la ligne éditée,
* Annoté la sélection (en sélectionnant une phrase ou un paragraphe on peut ajouter une note)
Devant se trouve un **+** pour voir plus de possibilités:
* Taille de la police
* Couleur des caractères
* Aligner à gauche
* Centrer
* Aligner à droite
* Justifier
==============================================================
![Édition pad](https://ahp.li/c443272fd2a75c9df35b.png)
1. Les icônes en haut à droite permettent de passer en plein écran ou d'ouvrir dans un nouvel onglet en plein écran aussi.
![Édition Plein écran](https://ahp.li/0687248772c0202d6155.png)
2. Le Style est ce qui permet d'avoir un menu comme ici à droite avec les Titres et sous-titres, on peut ensuite naviguer plus aisèment vers les paragraphes avec ce moyen.
3. En bas à droite des icônes qui permettent:
* Afficher le nombre de mots
* Importer/Exporter des formats différents
![Importer ou Exporter](https://ahp.li/14c3437a919e440d336e.png)
* Historique Dynamique montre un historique des versions enregistrées auparavant et la possibilté de revenir en arrière
![Révision pad](https://ahp.li/9a033e6d9d0aa07220d2.png)
* Enregistrer la révision
* Paramètres du bloc-notes
![Paramètres du bloc-notes](https://ahp.li/bd9fcddabdcbbdfa17a2.png)
* Partager ce bloc-notes qui donne 2 liens, un lien vers le pad (si le pad est restreint, seul les utilisateurs autorisés pourront y accéder en se connectant) et un lien iframe pour ajouter le pad dans un site sur une page web.
![lien pad](https://ahp.li/377323934e3c72187d3e.png)
4. Icône des utilisateurs pour ce pad, en cliquant dessus on peut aussi éditer son pseudo et changer sa couleur de surlignage
![utilisateurs pad](https://ahp.li/1fc8ec8dbc8cfffe3dea.png)
5. Clavardage, permet de discuter avec les utilisateurs connectés pendant un travail collaboratif, en cliquant dessus une fenêtre de discussion s'ouvre
![Clavardage](https://ahp.li/79738322c26c4963b79a.png)

View file

@ -0,0 +1,60 @@
---
title: '1.5 - Avancées et Permissions Mypads'
taxonomy:
category:
- docs
---
## Modifier un Dossier
![Modifier un Dossier](https://ahp.li/abaea5fed9144a8ed65e.png)
### Accès
Vous avez le choix entre trois niveaux de visibilité. Cela impactera tous les pads liés :
* restreint, le choix par défaut : laccès aux pads sera limité à une liste dutilisateurs invités que vous aurez choisis ;
* privé : dans ce mode vous aurez à saisir un mot de passe qui sera vérifié pour autoriser laccès ;
* public : dans ce mode, tous les pads sont publics, les utilisateurs nont alors besoin que de ladresse URL pour y accéder.
### Lecture seule
Si vous activez la lecture seule, tous les pads attachés conserveront leur dernier état connu et ne pourront être édités. Notez que la visibilité fonctionnera toujours.
### Labels
Vous pouvez associer des labels à cet élément en cliquant sur le champ correspondant et en les sélectionnant un par un.
Pour créer un nouveau label, saisissez-le et appuyez sur la touche ENTRÉE ou cliquez sur le bouton « Ok ». Une fois le label ajouté, il sera automatiquement sélectionné sur ce formulaire.
Vous pouvez supprimer un label en cliquant sur la croix située à sa droite.
## Modifier un Pad
![Modifier un pad](https://ahp.li/63076c662e920198972c.png)
Par défaut les pads créés ont les mêmes paramètres que le dossier, pour les changer on peut déchocher **Paramètres du Dossier**
![Modifier paramètres pad par défaut](https://ahp.li/a16b06f5925a6e512a11.png)
Dans ce cas comme pour un dossier:
### Accès
Vous avez le choix entre trois niveaux de visibilité. Cela impactera tous les pads liés :
* restreint, le choix par défaut : laccès aux pads sera limité à une liste dutilisateurs invités que vous aurez choisis ;
* privé : dans ce mode vous aurez à saisir un mot de passe qui sera vérifié pour autoriser laccès ;
* public : dans ce mode, tous les pads sont publics, les utilisateurs nont alors besoin que de ladresse URL pour y accéder.
### Lecture seule
Si vous activez la lecture seule, tous les pads attachés conserveront leur dernier état connu et ne pourront être édités. Notez que la visibilité fonctionnera toujours.
### Labels
Vous pouvez associer des labels à cet élément en cliquant sur le champ correspondant et en les sélectionnant un par un.
Pour créer un nouveau label, saisissez-le et appuyez sur la touche ENTRÉE ou cliquez sur le bouton « Ok ». Une fois le label ajouté, il sera automatiquement sélectionné sur ce formulaire.
Vous pouvez supprimer un label en cliquant sur la croix située à sa droite.

View file

@ -0,0 +1,12 @@
---
title: '1 - Mypads'
taxonomy:
category:
- docs
---
MyPads est une extension qui permet de gérer un espace avec des dossiers et des Textes collaboratifs et de créer des groupes privés ou public de collaboration.
!!! Avec Yunohost, seuls les utilisateurs Yunohost ont accès à leur espace dédié de collaboration.
!!!! Cela ne les empêchent pas de créer dans leur espace un texte Public ouvert à la collaboration avec des personnes non-inscrites.

View file

@ -0,0 +1,30 @@
---
title: 'Textes Colloratifs Linux07 (Etherpad_Mypads)'
taxonomy:
category:
- docs
child_type: docs
---
## Etherpad
Etherpad est un éditeur de texte libre en ligne fonctionnant en mode collaboratif et en temps réel. Il permet à plusieurs personnes de partager l'élaboration simultanée d'un texte, et d'en discuter en parallèle, via une messagerie instantanée. Il peut avoir des usages pédagogiques, notamment pour l'apprentissage collaboratif.
Le système ne requiert ni installation ni inscription, il suffit d'avoir une connexion Internet et un navigateur web, puisque c'est une application en ligne. Etherpad (la partie reçue par l'ordinateur client) est écrit en JavaScript.
N'importe quel utilisateur peut modifier un document, nommé pad. Chaque pad a sa propre URL, et chaque personne qui connaît ce lien peut modifier le contenu du pad et participer à la messagerie instantanée associée. Chaque participant est identifié par une couleur et un nom ou pseudo.
Le logiciel enregistre automatiquement le document, à très courts intervalles, ce qui permet à tous les participants d'avoir l'impression d'éditer instantanément entre eux. Ils peuvent aussi enregistrer des versions spécifiquement, des « images » (enregistrement à un moment donné de l'état actuel du document). Il est possible d'importer et de télécharger le document aux formats HTML, Open Document (OpenOffice ou LibreOffice), Microsoft Word, ou PDF.
Ainsi, les contributions de chacun apparaissent immédiatement sur l'écran de tous les participants, et chaque ajout qu'il fait est signalé par cette couleur.
Une fenêtre de messagerie instantanée est également disponible, elle aussi utilisant le système de couleur dans le nom des expéditeurs. Il est possible de la laisser sur le côté droit de l'écran, mais elle peut être cachée et invisible pour l'utilisateur sil le souhaite.
_source: Wikipédia_
## MyPads
MyPads est une extension qui permet de créer des groupes privés de collaboration avec Etherpad.
!!! Avec Yunohost, seuls les utilisateurs Yunohost ont accès à leur espace dédié de collaboration.
!!! Cela ne les empêchent pas de créer dans leur espace Mypads un texte Public ouvert à la collaboration avec des personnes non-inscrites.

156
pages/typography/default.md Normal file
View file

@ -0,0 +1,156 @@
---
title: Typography
published: false
---
! Details on the full capabilities of Spectre.css can be found in the [Official Spectre Documentation](https://picturepan2.github.io/spectre/elements.html)
The [Quark theme](https://github.com/getgrav/grav-theme-quark) is the new default theme for Grav built with [Spectre.css](https://picturepan2.github.io/spectre/) the lightweight, responsive and modern CSS framework. Spectre provides basic styles for typography, elements, and a responsive layout system that utilizes best practices and consistent language design.
### Headings
# H1 Heading `40px`
## H2 Heading `32px`
### H3 Heading `28px`
#### H4 Heading `24px`
##### H5 Heading `20px`
###### H6 Heading `16px`
```html
# H1 Heading
# H1 Heading `40px`</small>`
<span class="h1">H1 Heading</span>
```
### Paragraphs
Lorem ipsum dolor sit amet, consectetur [adipiscing elit. Praesent risus leo, dictum in vehicula sit amet](#), feugiat tempus tellus. Duis quis sodales risus. Etiam euismod ornare consequat.
Climb leg rub face on everything give attitude nap all day for under the bed. Chase mice attack feet but rub face on everything hopped up on goofballs.
### Markdown Semantic Text Elements
**Bold** `**Bold**`
_Italic_ `_Italic_`
~~Deleted~~ `~~Deleted~~`
`Inline Code` `` `Inline Code` ``
### HTML Semantic Text Elements
<abbr>I18N</abbr> `<abbr>`
<cite>Citation</cite> `<cite>`
<kbd>Ctrl + S</kbd> `<kbd>`
Text<sup>Superscripted</sup> `<sup>`
Text<sub>Subscripted</sub> `<sub>`
<u>Underlined</u> `<u>`
<mark>Highlighted</mark> `<mark>`
<time>20:14</time> `<time>`
<var>x = y + 2</var> `<var>`
### Blockquote
> The advance of technology is based on making it fit in so that you don't really even notice it,
> so it's part of everyday life.
>
> <cite>- Bill Gates</cite>
```markdown
> The advance of technology is based on making it fit in so that you don't really even notice it,
> so it's part of everyday life.
>
> <cite>- Bill Gates</cite>
```
### Unordered List
* list item 1
* list item 2
* list item 2.1
* list item 2.2
* list item 2.3
* list item 3
```markdown
* list item 1
* list item 2
* list item 2.1
* list item 2.2
* list item 2.3
* list item 3
```
### Ordered List
1. list item 1
1. list item 2
1. list item 2.1
1. list item 2.2
1. list item 2.3
1. list item 3
```markdown
1. list item 1
1. list item 2
1. list item 2.1
1. list item 2.2
1. list item 2.3
1. list item 3
```
### Table
| Name | Genre | Release date |
| :-------------------------- | :---------------------------: | -------------------: |
| The Shawshank Redemption | Crime, Drama | 14 October 1994 |
| The Godfather | Crime, Drama | 24 March 1972 |
| Schindler's List | Biography, Drama, History | 4 February 1994 |
| Se7en | Crime, Drama, Mystery | 22 September 1995 |
```markdown
| Name | Genre | Release date |
| :-------------------------- | :---------------------------: | -------------------: |
| The Shawshank Redemption | Crime, Drama | 14 October 1994 |
| The Godfather | Crime, Drama | 24 March 1972 |
| Schindler's List | Biography, Drama, History | 4 February 1994 |
| Se7en | Crime, Drama, Mystery | 22 September 1995 |
```
### Notices
The notices styles are actually provided by the `markdown-notices` plugin but are useful enough to include here:
! This is a warning notification
!! This is a error notification
!!! This is a default notification
!!!! This is a success notification
```markdown
! This is a warning notification
!! This is a error notification
!!! This is a default notification
!!!! This is a success notification
```

1
themes/.gitkeep Normal file
View file

@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved. */

View file

@ -0,0 +1,5 @@
# v0.1.0
## 03/10/2023
1. [](#new)
* ChangeLog started...

View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2023 Rodolphe Robles
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -0,0 +1,7 @@
# Documentations Linux07 Theme
The **Documentations Linux07** Theme is for [Grav CMS](http://github.com/getgrav/grav). This README.md file should be modified to describe the features, installation, configuration, and general usage of this theme.
## Description
Thème documentations pour les services numériques Linux07

View file

@ -0,0 +1,66 @@
name: Documentations Linux07
slug: documentations-linux07
type: theme
version: 0.1.0
description: Thème documentations pour les services numériques Linux07
icon: rebel
author:
name: Rodolphe Robles
email: rodolphe@linux07.fr
homepage: https://gitea.linux07.fr/Linux07/Documentations-Linux07
demo: http://demo.yoursite.com
keywords: grav, theme, etc
bugs: https://gitea.linux07.fr/Linux07/Documentations-Linux07/issues
readme: https://gitea.linux07.fr/Linux07/Documentations-Linux07/src/branch/main/README.md
license: MIT
dependencies:
- { name: grav, version: '>=1.6.0' }
form:
validation: loose
fields:
top_level_version:
type: toggle
label: Top Level Version
highlight: 1
default: 0
options:
1: Enabled
0: Disabled
validate:
type: bool
home_url:
type: text
label: Home URL
placeholder: http://getgrav.org
validate:
type: text
google_analytics_code:
type: text
label: Google Analytics Code
placeholder: UA-XXXXXXXX-X
validate:
type: text
github.position:
type: select
size: medium
classes: fancy
label: GitHub Position
options:
top: Top
bottom: Bottom
off: Off
github.tree:
type: text
label: GitHub Tree
default: https://gitea.linux07.fr/Linux07/Documentations-Linux07/src/branch/main/
github.commits:
type: text
label: GitHub Commits
default: https://gitea.linux07.fr/Linux07/Documentations-Linux07/commits/branch/main/

View file

@ -0,0 +1,4 @@
title: Chapter
'@extends':
type: default
context: blueprints://pages

View file

@ -0,0 +1,4 @@
title: Docs
'@extends':
type: default
context: blueprints://pages

View file

@ -0,0 +1,9 @@
<?php
namespace Grav\Theme;
use Grav\Common\Theme;
class DocumentationsLinux07 extends Learn2
{
// Access plugin events in this class
}

View file

@ -0,0 +1,19 @@
streams:
schemes:
theme:
type: ReadOnlyStream
prefixes:
'':
- 'user://themes/documentations-linux07'
- 'user://themes/learn2'
enabled: true
root_page: # optional: set root page of documentation
top_level_version: false # Use versions for top level navigation
show_all_pages: false # Show all pages without having to &#039;open&#039; them
google_analytics_code: # Enter your `UA-XXXXXXXX-X` code here
home_url: # http://getgrav.org
github:
position: top # top | bottom | off
tree: https://gitea.linux07.fr/Linux07/Documentations-Linux07/src/branch/main/
commits: https://gitea.linux07.fr/Linux07/Documentations-Linux07/commits/branch/main/

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -0,0 +1,13 @@
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4

2
themes/learn2/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.sass-cache
.DS_Store

121
themes/learn2/CHANGELOG.md Normal file
View file

@ -0,0 +1,121 @@
# v1.8.2
## 02/25/2021
1. [](#bugfix)
* Fixed bad tab causing invalid blueprint [#91](https://github.com/getgrav/grav-theme-learn2/pull/91)
# v1.8.1
## 01/15/2021
1. [](#improved)
* Fixed autoescaping in preparation for Grav 1.7
# v1.8.0
## 03/21/2019
1. [](#new)
* Set Dependency of Grav 1.5.10+ which has support for new **Deferred Block** Twig extension
* Implement assets rendering using **Deferred Block** Twig extension
# v1.7.0
## 08/23/2017
1. [](#improved)
* Added default page template.
* Added blueprints for docs and chapter pages
# v1.6.3
## 01/31/2017
1. [](#bugfix)
* Fixed changelog date
# v1.6.2
## 01/31/2017
1. [](#bugfix)
* Fixed a PHP 7.1 issue
# v1.6.1
## 01/24/2017
1. [](#new)
* Updated to FontAwesome 4.7.0 with [Grav icon](http://fontawesome.io/icon/grav/)
# v1.6.0
## 07/14/2016
1. [](#new)
* Added the spanish language
1. [](#improved)
* Remove unneeded streams from Theme YAML
* Set the page language from Grav's Language configuration. Default to english.
1. [](#bugfix)
* Fix an issue on iOS 9+ Safari scaling
# v1.5.0
## 01/06/2016
1. [](#new)
* Added keyboard prev/next navigation
1. [](#improved)
* Various language updates
1. [](#bugfix)
* Fixed a typo in CSS
# v1.4.2
## 12/18/2015
1. [](#bugfix)
* Fixed clipboard for Safari
# v1.4.1
## 12/11/2015
1. [](#new)
* Support new sidebar scrollbar
* New subtle `subtitle` styling
# v1.4.0
## 10/07/2015
1. [](#new)
* Added 1-click copy-to-clipboard feature for `code` and `pre` tags
* Added German translations
* Configurable root page
1. [](#improved)
* Wrapped topbar to remove it from error pages
1. [](#bugfix)
* Fix for bad YAML
* Fix for bad HTML in github note
# v1.3.0
## 09/11/2015
1. [](#new)
* Added configurable Google analytics code
# v1.2.0
## 08/25/2015
1. [](#improved)
* Added blueprints for Grav Admin plugin
# v1.1.0
## 07/19/2015
1. [](#new)
* Added search highlight support
* Added a footer
# v1.0.1
## 06/2/2015
1. [](#new)
* Added support for 2+ page levels
# v1.0.0
## 06/17/2015
1. [](#new)
* ChangeLog started...

21
themes/learn2/LICENSE Normal file
View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Grav
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

79
themes/learn2/README.md Normal file
View file

@ -0,0 +1,79 @@
# Learn2
![Learn2](screenshot.jpg)
Learn2 is the default [Grav Learn](http://learn.getgrav.org) theme. Simple, fast and modern.
# Installation
Installing the Learn2 theme can be done in one of two ways. Our GPM (Grav Package Manager) installation method enables you to quickly and easily install the theme with a simple terminal command, while the manual method enables you to do so via a zip file.
The theme is designed to be used to provide a documentation site. You can see this in action at [](http://learn.getgrav.org)
## GPM Installation (Preferred)
The simplest way to install this theme is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm) through your system's Terminal (also called the command line). From the root of your Grav install type:
bin/gpm install learn2
This will install the Learn2 theme into your `/user/themes` directory within Grav. Its files can be found under `/your/site/grav/user/themes/learn2`.
## Manual Installation
To install this theme, just download the zip version of this repository and unzip it under `/your/site/grav/user/themes`. Then, rename the folder to `learn2`. You can find these files either on [GitHub](https://github.com/getgrav/grav-theme-learn2) or via [GetGrav.org](http://getgrav.org/downloads/themes).
You should now have all the theme files under
/your/site/grav/user/themes/learn2
>> NOTE: This theme is a modular component for Grav which requires the [Grav](http://github.com/getgrav/grav), [Error](https://github.com/getgrav/grav-theme-error) and [Problems](https://github.com/getgrav/grav-plugin-problems) plugins.
# Updating
As development for the Learn2 theme continues, new versions may become available that add additional features and functionality, improve compatibility with newer Grav releases, and generally provide a better user experience. Updating Learn2 is easy, and can be done through Grav's GPM system, as well as manually.
## GPM Update (Preferred)
The simplest way to update this theme is via the [Grav Package Manager (GPM)](http://learn.getgrav.org/advanced/grav-gpm). You can do this with this by navigating to the root directory of your Grav install using your system's Terminal (also called command line) and typing the following:
bin/gpm update learn2
This command will check your Grav install to see if your Learn2 theme is due for an update. If a newer release is found, you will be asked whether or not you wish to update. To continue, type `y` and hit enter. The theme will automatically update and clear Grav's cache.
## Manual Update
Manually updating Learn2 is pretty simple. Here is what you will need to do to get this done:
* Delete the `your/site/user/themes/learn2` directory.
* Download the new version of the Learn2 theme from either [GitHub](https://github.com/getgrav/grav-theme-learn2) or [GetGrav.org](http://getgrav.org/downloads/themes#extras).
* Unzip the zip file in `your/site/user/themes` and rename the resulting folder to `learn2`.
* Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in terminal and typing `bin/grav clear-cache`.
> Note: Any changes you have made to any of the files listed under this directory will also be removed and replaced by the new set. Any files located elsewhere (for example a YAML settings file placed in `user/config/themes`) will remain intact.
## Features
* Lightweight and minimal for optimal performance
* Fully responsive with off-page mobile navigation
* SCSS based CSS source files for easy customization
* Built specifically for providing easy to read documentation
* Fontawesome icon support
### Supported Page Templates
* "Docs" template
* "Chapter" template
* Error view template
## Setup
If you want to set Learn2 as the default theme, you can do so by following these steps:
* Navigate to `/your/site/grav/user/config`.
* Open the **system.yaml** file.
* Change the `theme:` setting to `theme: learn2`.
* Save your changes.
* Clear the Grav cache. The simplest way to do this is by going to the root Grav directory in Terminal and typing `bin/grav clear-cache`.
Once this is done, you should be able to see the new theme on the frontend. Keep in mind any customizations made to the previous theme will not be reflected as all of the theme and templating information is now being pulled from the **learn2** folder.

View file

@ -0,0 +1,66 @@
name: Learn2
slug: learn2
type: theme
version: 1.8.2
description: "Learn2 is a new modern documentation theme for Grav"
icon: book
author:
name: Team Grav
email: devs@getgrav.org
url: http://getgrav.org
homepage: https://github.com/getgrav/grav-theme-learn2
demo: http://learn.getgrav.org
keywords: heme, docs, modern, fast, responsive, html5, css3
bugs: https://github.com/getgrav/grav-theme-learn2/issues
license: MIT
dependencies:
- { name: grav, version: '>=1.5.10' }
form:
validation: loose
fields:
top_level_version:
type: toggle
label: Top Level Version
highlight: 1
default: 0
options:
1: Enabled
0: Disabled
validate:
type: bool
home_url:
type: text
label: Home URL
placeholder: http://getgrav.org
validate:
type: text
google_analytics_code:
type: text
label: Google Analytics Code
placeholder: UA-XXXXXXXX-X
validate:
type: text
github.position:
type: select
size: medium
classes: fancy
label: GitHub Position
options:
top: Top
bottom: Bottom
off: Off
github.tree:
type: text
label: GitHub Tree
default: https://github.com/getgrav/grav-skeleton-rtfm-site/blob/develop/
github.commits:
type: text
label: GitHub Commits
default: https://github.com/getgrav/grav-skeleton-rtfm-site/commits/develop/

View file

@ -0,0 +1,4 @@
title: Chapter
'@extends':
type: default
context: blueprints://pages

View file

@ -0,0 +1,4 @@
title: Docs
'@extends':
type: default
context: blueprints://pages

View file

@ -0,0 +1,617 @@
*, *::before, *::after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box; }
@-webkit-viewport {
width: device-width; }
@-moz-viewport {
width: device-width; }
@-ms-viewport {
width: device-width; }
@-o-viewport {
width: device-width; }
@viewport {
width: device-width; }
html {
font-size: 100%;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%; }
body {
margin: 0; }
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block; }
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline; }
audio:not([controls]) {
display: none;
height: 0; }
[hidden],
template {
display: none; }
a {
background: transparent;
text-decoration: none; }
a:active,
a:hover {
outline: 0; }
abbr[title] {
border-bottom: 1px dotted; }
b,
strong {
font-weight: bold; }
dfn {
font-style: italic; }
mark {
background: #FFFF27;
color: #333; }
sub,
sup {
font-size: 0.8rem;
line-height: 0;
position: relative;
vertical-align: baseline; }
sup {
top: -0.5em; }
sub {
bottom: -0.25em; }
img {
border: 0;
max-width: 100%; }
svg:not(:root) {
overflow: hidden; }
figure {
margin: 1em 40px; }
hr {
height: 0; }
pre {
overflow: auto; }
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0; }
button {
overflow: visible; }
button,
select {
text-transform: none; }
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer; }
button[disabled],
html input[disabled] {
cursor: default; }
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0; }
input {
line-height: normal; }
input[type="checkbox"],
input[type="radio"] {
padding: 0; }
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto; }
input[type="search"] {
-webkit-appearance: textfield; }
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none; }
legend {
border: 0;
padding: 0; }
textarea {
overflow: auto; }
optgroup {
font-weight: bold; }
table {
border-collapse: collapse;
border-spacing: 0;
table-layout: fixed;
width: 100%; }
tr, td, th {
vertical-align: middle; }
th, td {
padding: 0.425rem 0; }
th {
text-align: left; }
.container {
width: 75em;
margin: 0 auto;
padding: 0; }
@media only all and (min-width: 60em) and (max-width: 74.938em) {
.container {
width: 60em; } }
@media only all and (min-width: 48em) and (max-width: 59.938em) {
.container {
width: 48em; } }
@media only all and (min-width: 30.063em) and (max-width: 47.938em) {
.container {
width: 30em; } }
@media only all and (max-width: 30em) {
.container {
width: 100%; } }
.grid {
display: -webkit-box;
display: -moz-box;
display: box;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flexbox;
display: flex;
-webkit-flex-flow: row;
-moz-flex-flow: row;
flex-flow: row;
list-style: none;
margin: 0;
padding: 0; }
@media only all and (max-width: 47.938em) {
.grid {
-webkit-flex-flow: row wrap;
-moz-flex-flow: row wrap;
flex-flow: row wrap; } }
.block {
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
-webkit-flex: 1;
-moz-flex: 1;
-ms-flex: 1;
flex: 1;
min-width: 0;
min-height: 0; }
@media only all and (max-width: 47.938em) {
.block {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 100%;
-moz-flex: 0 100%;
-ms-flex: 0 100%;
flex: 0 100%; } }
.content {
margin: 0.625rem;
padding: 0.938rem; }
@media only all and (max-width: 47.938em) {
body [class*="size-"] {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 100%;
-moz-flex: 0 100%;
-ms-flex: 0 100%;
flex: 0 100%; } }
.size-1-2 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 50%;
-moz-flex: 0 50%;
-ms-flex: 0 50%;
flex: 0 50%; }
.size-1-3 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 33.33333%;
-moz-flex: 0 33.33333%;
-ms-flex: 0 33.33333%;
flex: 0 33.33333%; }
.size-1-4 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 25%;
-moz-flex: 0 25%;
-ms-flex: 0 25%;
flex: 0 25%; }
.size-1-5 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 20%;
-moz-flex: 0 20%;
-ms-flex: 0 20%;
flex: 0 20%; }
.size-1-6 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 16.66667%;
-moz-flex: 0 16.66667%;
-ms-flex: 0 16.66667%;
flex: 0 16.66667%; }
.size-1-7 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 14.28571%;
-moz-flex: 0 14.28571%;
-ms-flex: 0 14.28571%;
flex: 0 14.28571%; }
.size-1-8 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 12.5%;
-moz-flex: 0 12.5%;
-ms-flex: 0 12.5%;
flex: 0 12.5%; }
.size-1-9 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 11.11111%;
-moz-flex: 0 11.11111%;
-ms-flex: 0 11.11111%;
flex: 0 11.11111%; }
.size-1-10 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 10%;
-moz-flex: 0 10%;
-ms-flex: 0 10%;
flex: 0 10%; }
.size-1-11 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 9.09091%;
-moz-flex: 0 9.09091%;
-ms-flex: 0 9.09091%;
flex: 0 9.09091%; }
.size-1-12 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 8.33333%;
-moz-flex: 0 8.33333%;
-ms-flex: 0 8.33333%;
flex: 0 8.33333%; }
@media only all and (min-width: 48em) and (max-width: 59.938em) {
.size-tablet-1-2 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 50%;
-moz-flex: 0 50%;
-ms-flex: 0 50%;
flex: 0 50%; }
.size-tablet-1-3 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 33.33333%;
-moz-flex: 0 33.33333%;
-ms-flex: 0 33.33333%;
flex: 0 33.33333%; }
.size-tablet-1-4 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 25%;
-moz-flex: 0 25%;
-ms-flex: 0 25%;
flex: 0 25%; }
.size-tablet-1-5 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 20%;
-moz-flex: 0 20%;
-ms-flex: 0 20%;
flex: 0 20%; }
.size-tablet-1-6 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 16.66667%;
-moz-flex: 0 16.66667%;
-ms-flex: 0 16.66667%;
flex: 0 16.66667%; }
.size-tablet-1-7 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 14.28571%;
-moz-flex: 0 14.28571%;
-ms-flex: 0 14.28571%;
flex: 0 14.28571%; }
.size-tablet-1-8 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 12.5%;
-moz-flex: 0 12.5%;
-ms-flex: 0 12.5%;
flex: 0 12.5%; }
.size-tablet-1-9 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 11.11111%;
-moz-flex: 0 11.11111%;
-ms-flex: 0 11.11111%;
flex: 0 11.11111%; }
.size-tablet-1-10 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 10%;
-moz-flex: 0 10%;
-ms-flex: 0 10%;
flex: 0 10%; }
.size-tablet-1-11 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 9.09091%;
-moz-flex: 0 9.09091%;
-ms-flex: 0 9.09091%;
flex: 0 9.09091%; }
.size-tablet-1-12 {
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
-webkit-flex: 0 8.33333%;
-moz-flex: 0 8.33333%;
-ms-flex: 0 8.33333%;
flex: 0 8.33333%; } }
@media only all and (max-width: 47.938em) {
@supports not (flex-wrap: wrap) {
.grid {
display: block;
-webkit-box-lines: inherit;
-moz-box-lines: inherit;
box-lines: inherit;
-webkit-flex-wrap: inherit;
-moz-flex-wrap: inherit;
-ms-flex-wrap: inherit;
flex-wrap: inherit; }
.block {
display: block;
-webkit-box-flex: inherit;
-moz-box-flex: inherit;
box-flex: inherit;
-webkit-flex: inherit;
-moz-flex: inherit;
-ms-flex: inherit;
flex: inherit; } } }
.first-block {
-webkit-box-ordinal-group: 0;
-webkit-order: -1;
-ms-flex-order: -1;
order: -1; }
.last-block {
-webkit-box-ordinal-group: 2;
-webkit-order: 1;
-ms-flex-order: 1;
order: 1; }
.fixed-blocks {
-webkit-flex-flow: row wrap;
-moz-flex-flow: row wrap;
flex-flow: row wrap; }
.fixed-blocks .block {
-webkit-box-flex: inherit;
-moz-box-flex: inherit;
box-flex: inherit;
-webkit-flex: inherit;
-moz-flex: inherit;
-ms-flex: inherit;
flex: inherit;
width: 25%; }
@media only all and (min-width: 60em) and (max-width: 74.938em) {
.fixed-blocks .block {
width: 33.33333%; } }
@media only all and (min-width: 48em) and (max-width: 59.938em) {
.fixed-blocks .block {
width: 50%; } }
@media only all and (max-width: 47.938em) {
.fixed-blocks .block {
width: 100%; } }
body {
font-size: 1.05rem;
line-height: 1.7; }
h1, h2, h3, h4, h5, h6 {
margin: 0.85rem 0 1.7rem 0;
text-rendering: optimizeLegibility; }
h1 {
font-size: 3.25rem; }
h2 {
font-size: 2.55rem; }
h3 {
font-size: 2.15rem; }
h4 {
font-size: 1.8rem; }
h5 {
font-size: 1.4rem; }
h6 {
font-size: 0.9rem; }
p {
margin: 1.7rem 0; }
ul, ol {
margin-top: 1.7rem;
margin-bottom: 1.7rem; }
ul ul, ul ol, ol ul, ol ol {
margin-top: 0;
margin-bottom: 0; }
blockquote {
margin: 1.7rem 0;
padding-left: 0.85rem; }
cite {
display: block;
font-size: 0.925rem; }
cite:before {
content: "\2014 \0020"; }
pre {
margin: 1.7rem 0;
padding: 0.938rem; }
code {
vertical-align: bottom; }
small {
font-size: 0.925rem; }
hr {
border-left: none;
border-right: none;
border-top: none;
margin: 1.7rem 0; }
fieldset {
border: 0;
padding: 0.938rem;
margin: 0 0 1.7rem 0; }
input,
label,
select {
display: block; }
label {
margin-bottom: 0.425rem; }
label.required:after {
content: "*"; }
label abbr {
display: none; }
textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] {
-webkit-transition: border-color;
-moz-transition: border-color;
transition: border-color;
border-radius: 0.1875rem;
margin-bottom: 0.85rem;
padding: 0.425rem 0.425rem;
width: 100%; }
textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus {
outline: none; }
textarea {
resize: vertical; }
input[type="checkbox"], input[type="radio"] {
display: inline;
margin-right: 0.425rem; }
input[type="file"] {
width: 100%; }
select {
width: auto;
max-width: 100%;
margin-bottom: 1.7rem; }
button,
input[type="submit"] {
cursor: pointer;
user-select: none;
vertical-align: middle;
white-space: nowrap;
border: inherit; }
/*# sourceMappingURL=nucleus.css.map */

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,940 @@
@charset "UTF-8";
@import url(//fonts.googleapis.com/css?family=Montserrat:400|Muli:300,400|Inconsolata);
#top-github-link, #body #breadcrumbs {
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-o-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%); }
.button, .button-secondary {
display: inline-block;
padding: 7px 12px; }
.button:active, .button-secondary:active {
margin: 2px 0 -2px 0; }
body {
background: #fff;
color: #555;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; }
a {
color: #1694CA; }
a:hover {
color: #0e6185; }
pre {
position: relative; }
.bg {
background: #fff;
border: 1px solid #eaeaea; }
b, strong, label, th {
font-weight: 600; }
.default-animation, #header #logo-svg, #header #logo-svg path, #sidebar, #sidebar ul, #body, #body .padding, #body .nav {
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
transition: all 0.5s ease; }
fieldset {
border: 1px solid #ddd; }
textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="time"], input[type="week"], select[multiple=multiple] {
background-color: white;
border: 1px solid #ddd;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06); }
textarea:hover, input[type="email"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="url"]:hover, input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="month"]:hover, input[type="time"]:hover, input[type="week"]:hover, select[multiple=multiple]:hover {
border-color: #c4c4c4; }
textarea:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="url"]:focus, input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="week"]:focus, select[multiple=multiple]:focus {
border-color: #1694CA;
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(19, 131, 179, 0.7); }
#header {
background: #1694CA;
color: #fff;
text-align: center;
padding: 1rem; }
#header a {
display: inline-block; }
#header #logo-svg {
width: 8rem;
height: 2rem; }
#header #logo-svg path {
fill: #fff; }
.searchbox {
margin-top: 0.5rem;
position: relative;
border: 1px solid #19a5e1;
background: #1383b3;
border-radius: 4px; }
.searchbox label {
color: rgba(255, 255, 255, 0.8);
position: absolute;
left: 10px;
top: 3px; }
.searchbox span {
color: rgba(255, 255, 255, 0.6);
position: absolute;
right: 10px;
top: 3px;
cursor: pointer; }
.searchbox span:hover {
color: rgba(255, 255, 255, 0.9); }
.searchbox input {
display: inline-block;
color: #fff;
width: 100%;
height: 30px;
background: transparent;
border: 0;
padding: 0 25px 0 30px;
margin: 0;
font-weight: 400; }
.searchbox input::-webkit-input-placeholder {
color: rgba(255, 255, 255, 0.6); }
.searchbox input::-moz-placeholder {
color: rgba(255, 255, 255, 0.6); }
.searchbox input:-moz-placeholder {
color: rgba(255, 255, 255, 0.6); }
.searchbox input:-ms-input-placeholder {
color: rgba(255, 255, 255, 0.6); }
#sidebar-toggle {
display: none; }
@media only all and (max-width: 47.938em) {
#sidebar-toggle {
display: inline-block; } }
#sidebar {
background-color: #38424D;
position: fixed;
top: 0;
width: 300px;
bottom: 0;
left: 0;
font-weight: 500;
font-size: 15px; }
#sidebar a {
color: #bbbbbb; }
#sidebar a:hover {
color: #d5d5d5; }
#sidebar a.subtitle {
color: rgba(187, 187, 187, 0.6); }
#sidebar hr {
border-bottom: 1px solid #323a44; }
#sidebar a.padding {
padding: 0 1rem; }
#sidebar h5 {
margin: 2rem 0 0;
position: relative;
line-height: 2; }
#sidebar h5 a {
display: block;
margin-left: 0;
margin-right: 0;
padding-left: 1rem;
padding-right: 1rem; }
#sidebar h5 i {
color: rgba(187, 187, 187, 0.6);
position: absolute;
right: 0.6rem;
top: 0.7rem;
font-size: 80%; }
#sidebar h5.parent a {
background: #293038;
color: #c8c8c8 !important; }
#sidebar h5.active a {
background: #fff;
color: #555 !important; }
#sidebar h5.active i {
color: #555 !important; }
#sidebar h5 + ul.topics {
display: none;
margin-top: 0; }
#sidebar h5.parent + ul.topics, #sidebar h5.active + ul.topics {
display: block; }
#sidebar ul {
list-style: none;
padding: 0;
margin: 0; }
#sidebar ul.searched a {
color: #888888; }
#sidebar ul.searched .search-match a {
color: #d5d5d5; }
#sidebar ul.searched .search-match a:hover {
color: #eeeeee; }
#sidebar ul.topics {
margin: 0 1rem; }
#sidebar ul.topics.searched ul {
display: block; }
#sidebar ul.topics ul {
display: none;
padding-bottom: 1rem; }
#sidebar ul.topics ul ul {
padding-bottom: 0; }
#sidebar ul.topics li.parent ul, #sidebar ul.topics > li.active ul {
display: block; }
#sidebar ul.topics > li > a {
line-height: 2rem;
font-size: 1.1rem; }
#sidebar ul.topics > li > a b {
opacity: 0.5;
font-weight: normal; }
#sidebar ul.topics > li > a .fa {
margin-top: 9px; }
#sidebar ul.topics > li.parent, #sidebar ul.topics > li.active {
background: #2d353e;
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem; }
#sidebar ul li.active > a {
background: #fff;
color: #555 !important;
margin-left: -1rem;
margin-right: -1rem;
padding-left: 1rem;
padding-right: 1rem; }
#sidebar ul li {
padding: 0; }
#sidebar ul li.visited + span {
margin-right: 16px; }
#sidebar ul li a {
display: block;
padding: 2px 0; }
#sidebar ul li a span {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
display: block; }
#sidebar ul li > a {
padding: 4px 0; }
#sidebar ul li .fa {
display: none;
float: right;
font-size: 13px;
min-width: 16px;
margin: 4px 0 0 0;
text-align: right; }
#sidebar ul li.visited > a .read-icon {
color: #1694CA;
display: inline; }
#sidebar ul li li {
padding-left: 1rem;
text-indent: 0.2rem; }
#main {
background: #f7f7f7;
margin: 0 0 1.563rem 0; }
#body {
position: relative;
margin-left: 300px;
min-height: 100%; }
#body img, #body .video-container {
margin: 3rem auto;
display: block;
text-align: center; }
#body img.border, #body .video-container.border {
border: 2px solid #e6e6e6 !important;
padding: 2px; }
#body img.shadow, #body .video-container.shadow {
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); }
#body .bordered {
border: 1px solid #ccc; }
#body .padding {
padding: 3rem 6rem; }
@media only all and (max-width: 59.938em) {
#body .padding {
position: static;
padding: 15px 3rem; } }
@media only all and (max-width: 47.938em) {
#body .padding {
padding: 5px 1rem; } }
#body h1 + hr {
margin-top: -1.7rem;
margin-bottom: 3rem; }
@media only all and (max-width: 59.938em) {
#body #navigation {
position: static;
margin-right: 0 !important;
width: 100%;
display: table; } }
#body .nav {
position: fixed;
top: 0;
bottom: 0;
width: 4rem;
font-size: 50px;
height: 100%;
cursor: pointer;
display: table;
text-align: center; }
#body .nav > i {
display: table-cell;
vertical-align: middle;
text-align: center; }
@media only all and (max-width: 59.938em) {
#body .nav {
display: table-cell;
position: static;
top: auto;
width: 50%;
text-align: center;
height: 100px;
line-height: 100px;
padding-top: 0; }
#body .nav > i {
display: inline-block; } }
#body .nav:hover {
background: #F6F6F6; }
#body .nav.nav-pref {
left: 0; }
#body .nav.nav-next {
right: 0; }
#body-inner {
margin-bottom: 5rem; }
#chapter {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
padding: 2rem 0; }
#chapter #body-inner {
padding-bottom: 3rem;
max-width: 80%; }
#chapter h3 {
font-family: "Muli", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
font-weight: 400;
text-align: center; }
#chapter h1 {
font-size: 5rem;
border-bottom: 4px solid #F0F2F4; }
#chapter p {
text-align: center;
font-size: 1.2rem; }
#footer {
padding: 3rem 1rem;
color: #a2a2a2;
font-size: 13px; }
#footer p {
margin: 0; }
body {
font-family: "Muli", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
letter-spacing: -0.03rem;
font-weight: 400; }
h1, h2, h3, h4, h5, h6 {
font-family: "Montserrat", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
font-weight: 400;
text-rendering: optimizeLegibility;
line-height: 150%;
letter-spacing: -0px; }
h1 {
text-align: center;
letter-spacing: -3px; }
h2 {
letter-spacing: -2px; }
h3 {
letter-spacing: -1px; }
blockquote {
border-left: 10px solid #F0F2F4; }
blockquote p {
font-size: 1.1rem;
color: #999; }
blockquote cite {
display: block;
text-align: right;
color: #666;
font-size: 1.2rem; }
blockquote {
position: relative; }
blockquote blockquote {
position: static; }
blockquote > blockquote > blockquote {
margin: 0; }
blockquote > blockquote > blockquote p {
padding: 15px;
display: block;
font-size: 1rem;
margin-top: 0rem;
margin-bottom: 0rem;
color: #666; }
blockquote > blockquote > blockquote p:first-child:before {
position: absolute;
top: 2px;
color: #fff;
font-family: FontAwesome;
content: '';
left: 10px; }
blockquote > blockquote > blockquote p:first-child:after {
position: absolute;
top: 2px;
color: #fff;
left: 2rem;
font-weight: bold;
content: 'Info'; }
blockquote > blockquote > blockquote > p {
margin-left: -71px;
border-top: 30px solid #F0B37E;
background: #FFF2DB; }
blockquote > blockquote > blockquote > blockquote > p {
margin-left: -94px;
border-top: 30px solid rgba(217, 83, 79, 0.8);
background: #FAE2E2; }
blockquote > blockquote > blockquote > blockquote > p:first-child:after {
content: 'Warning'; }
blockquote > blockquote > blockquote > blockquote > blockquote > p {
margin-left: -118px;
border-top: 30px solid #6AB0DE;
background: #E7F2FA; }
blockquote > blockquote > blockquote > blockquote > blockquote > p:first-child:after {
content: 'Note'; }
blockquote > blockquote > blockquote > blockquote > blockquote > blockquote > p {
margin-left: -142px;
border-top: 30px solid rgba(92, 184, 92, 0.8);
background: #E6F9E6; }
blockquote > blockquote > blockquote > blockquote > blockquote > blockquote > p:first-child:after {
content: 'Tip'; }
code,
kbd,
pre,
samp {
font-family: "Inconsolata", monospace; }
code {
background: #f9f2f4;
color: #9c1d3d;
padding: .2rem .4rem;
border-radius: 3px; }
pre {
padding: 1rem;
margin: 2rem 0;
background: #f6f6f6;
border: 1px solid #ddd;
border-radius: 2px;
line-height: 1.15;
font-size: 1rem; }
pre code {
color: #237794;
background: inherit;
font-size: 1rem; }
hr {
border-bottom: 4px solid #F0F2F4; }
.page-title {
margin-top: -25px;
padding: 25px;
float: left;
clear: both;
background: #1694CA;
color: #fff; }
#body a.anchor-link {
color: #ccc; }
#body a.anchor-link:hover {
color: #1694CA; }
.scrollbar-inner > .scroll-element .scroll-element_track {
background-color: rgba(255, 255, 255, 0.3); }
.scrollbar-inner > .scroll-element .scroll-bar {
background-color: #b5d1eb; }
.scrollbar-inner > .scroll-element:hover .scroll-bar {
background-color: #ccc; }
.scrollbar-inner > .scroll-element.scroll-draggable .scroll-bar {
background-color: #ccc; }
table {
border: 1px solid #eaeaea;
table-layout: auto; }
th {
background: #f7f7f7;
padding: 0.5rem; }
td {
padding: 0.5rem;
border: 1px solid #eaeaea; }
.button {
background: #1694CA;
color: #fff;
box-shadow: 0 3px 0 #1380ae; }
.button:hover {
background: #1380ae;
box-shadow: 0 3px 0 #106c93;
color: #fff; }
.button:active {
box-shadow: 0 1px 0 #106c93; }
.button-secondary {
background: #F8B450;
color: #fff;
box-shadow: 0 3px 0 #f7a733; }
.button-secondary:hover {
background: #f7a733;
box-shadow: 0 3px 0 #f69b15;
color: #fff; }
.button-secondary:active {
box-shadow: 0 1px 0 #f69b15; }
.bullets {
margin: 1.7rem 0;
margin-left: -0.85rem;
margin-right: -0.85rem;
overflow: auto; }
.bullet {
float: left;
padding: 0 0.85rem; }
.two-column-bullet {
width: 50%; }
@media only all and (max-width: 47.938em) {
.two-column-bullet {
width: 100%; } }
.three-column-bullet {
width: 33.33333%; }
@media only all and (max-width: 47.938em) {
.three-column-bullet {
width: 100%; } }
.four-column-bullet {
width: 25%; }
@media only all and (max-width: 47.938em) {
.four-column-bullet {
width: 100%; } }
.bullet-icon {
float: left;
background: #1694CA;
padding: 0.875rem;
width: 3.5rem;
height: 3.5rem;
border-radius: 50%;
color: #fff;
font-size: 1.75rem;
text-align: center; }
.bullet-icon-1 {
background: #1694CA; }
.bullet-icon-2 {
background: #16cac4; }
.bullet-icon-3 {
background: #b2ca16; }
.bullet-content {
margin-left: 4.55rem; }
.tooltipped {
position: relative; }
.tooltipped:after {
position: absolute;
z-index: 1000000;
display: none;
padding: 5px 8px;
font: normal normal 11px/1.5 "Muli", "Helvetica", "Tahoma", "Geneva", "Arial", sans-serif;
color: #fff;
text-align: center;
text-decoration: none;
text-shadow: none;
text-transform: none;
letter-spacing: normal;
word-wrap: break-word;
white-space: pre;
pointer-events: none;
content: attr(aria-label);
background: rgba(0, 0, 0, 0.8);
border-radius: 3px;
-webkit-font-smoothing: subpixel-antialiased; }
.tooltipped:before {
position: absolute;
z-index: 1000001;
display: none;
width: 0;
height: 0;
color: rgba(0, 0, 0, 0.8);
pointer-events: none;
content: "";
border: 5px solid transparent; }
.tooltipped:hover:before, .tooltipped:hover:after,
.tooltipped:active:before,
.tooltipped:active:after,
.tooltipped:focus:before,
.tooltipped:focus:after {
display: inline-block;
text-decoration: none; }
.tooltipped-s:after,
.tooltipped-se:after,
.tooltipped-sw:after {
top: 100%;
right: 50%;
margin-top: 5px; }
.tooltipped-s:before,
.tooltipped-se:before,
.tooltipped-sw:before {
top: auto;
right: 50%;
bottom: -5px;
margin-right: -5px;
border-bottom-color: rgba(0, 0, 0, 0.8); }
.tooltipped-se:after {
right: auto;
left: 50%;
margin-left: -15px; }
.tooltipped-sw:after {
margin-right: -15px; }
.tooltipped-n:after,
.tooltipped-ne:after,
.tooltipped-nw:after {
right: 50%;
bottom: 100%;
margin-bottom: 5px; }
.tooltipped-n:before,
.tooltipped-ne:before,
.tooltipped-nw:before {
top: -5px;
right: 50%;
bottom: auto;
margin-right: -5px;
border-top-color: rgba(0, 0, 0, 0.8); }
.tooltipped-ne:after {
right: auto;
left: 50%;
margin-left: -15px; }
.tooltipped-nw:after {
margin-right: -15px; }
.tooltipped-s:after,
.tooltipped-n:after {
transform: translateX(50%); }
.tooltipped-w:after {
right: 100%;
bottom: 50%;
margin-right: 5px;
transform: translateY(50%); }
.tooltipped-w:before {
top: 50%;
bottom: 50%;
left: -5px;
margin-top: -5px;
border-left-color: rgba(0, 0, 0, 0.8); }
.tooltipped-e:after {
bottom: 50%;
left: 100%;
margin-left: 5px;
transform: translateY(50%); }
.tooltipped-e:before {
top: 50%;
right: -5px;
bottom: 50%;
margin-top: -5px;
border-right-color: rgba(0, 0, 0, 0.8); }
/*************** SCROLLBAR BASE CSS ***************/
.highlightable {
padding: 25px 0 15px; }
.scroll-wrapper {
overflow: hidden !important;
padding: 0 !important;
position: relative; }
.scroll-wrapper > .scroll-content {
border: none !important;
box-sizing: content-box !important;
height: auto;
left: 0;
margin: 0;
max-height: none;
max-width: none !important;
overflow: scroll !important;
padding: 0;
position: relative !important;
top: 0;
width: auto !important; }
.scroll-wrapper > .scroll-content::-webkit-scrollbar {
height: 0;
width: 0; }
.scroll-element {
display: none; }
.scroll-element, .scroll-element div {
box-sizing: content-box; }
.scroll-element.scroll-x.scroll-scrollx_visible,
.scroll-element.scroll-y.scroll-scrolly_visible {
display: block; }
.scroll-element .scroll-bar,
.scroll-element .scroll-arrow {
cursor: default; }
.scroll-textarea > .scroll-content {
overflow: hidden !important; }
.scroll-textarea > .scroll-content > textarea {
border: none !important;
box-sizing: border-box;
height: 100% !important;
margin: 0;
max-height: none !important;
max-width: none !important;
overflow: scroll !important;
outline: none;
padding: 2px;
position: relative !important;
top: 0;
width: 100% !important; }
.scroll-textarea > .scroll-content > textarea::-webkit-scrollbar {
height: 0;
width: 0; }
/*************** SIMPLE INNER SCROLLBAR ***************/
.scrollbar-inner > .scroll-element,
.scrollbar-inner > .scroll-element div {
border: none;
margin: 0;
padding: 0;
position: absolute;
z-index: 10; }
.scrollbar-inner > .scroll-element div {
display: block;
height: 100%;
left: 0;
top: 0;
width: 100%; }
.scrollbar-inner > .scroll-element.scroll-x {
bottom: 2px;
height: 8px;
left: 0;
width: 100%; }
.scrollbar-inner > .scroll-element.scroll-y {
height: 100%;
right: 2px;
top: 0;
width: 8px; }
.scrollbar-inner > .scroll-element .scroll-element_outer {
overflow: hidden; }
.scrollbar-inner > .scroll-element .scroll-element_outer,
.scrollbar-inner > .scroll-element .scroll-element_track,
.scrollbar-inner > .scroll-element .scroll-bar {
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px; }
.scrollbar-inner > .scroll-element .scroll-element_track,
.scrollbar-inner > .scroll-element .scroll-bar {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
opacity: 0.3; }
/* update scrollbar offset if both scrolls are visible */
.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_track {
left: -12px; }
.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_track {
top: -12px; }
.scrollbar-inner > .scroll-element.scroll-x.scroll-scrolly_visible .scroll-element_size {
left: -12px; }
.scrollbar-inner > .scroll-element.scroll-y.scroll-scrollx_visible .scroll-element_size {
top: -12px; }
.lightbox-active #body {
overflow: visible; }
.lightbox-active #body .padding {
overflow: visible; }
#github-contrib i {
vertical-align: middle; }
.featherlight img {
margin: 0 !important; }
.lifecycle #body-inner ul {
list-style: none;
margin: 0;
padding: 2rem 0 0;
position: relative; }
.lifecycle #body-inner ol {
margin: 1rem 0 1rem 0;
padding: 2rem;
position: relative; }
.lifecycle #body-inner ol li {
margin-left: 1rem; }
.lifecycle #body-inner ol strong, .lifecycle #body-inner ol label, .lifecycle #body-inner ol th {
text-decoration: underline; }
.lifecycle #body-inner ol ol {
margin-left: -1rem; }
.lifecycle #body-inner h3[class*='level'] {
font-size: 20px;
position: absolute;
margin: 0;
padding: 4px 10px;
right: 0;
z-index: 1000;
color: #fff;
background: #1ABC9C; }
.lifecycle #body-inner ol h3 {
margin-top: 1rem !important;
right: 2rem !important; }
.lifecycle #body-inner .level-1 + ol {
background: #f6fefc;
border: 4px solid #1ABC9C;
color: #16A085; }
.lifecycle #body-inner .level-1 + ol h3 {
background: #2ECC71; }
.lifecycle #body-inner .level-2 + ol {
background: #f7fdf9;
border: 4px solid #2ECC71;
color: #27AE60; }
.lifecycle #body-inner .level-2 + ol h3 {
background: #3498DB; }
.lifecycle #body-inner .level-3 + ol {
background: #f3f9fd;
border: 4px solid #3498DB;
color: #2980B9; }
.lifecycle #body-inner .level-3 + ol h3 {
background: #34495E; }
.lifecycle #body-inner .level-4 + ol {
background: #e4eaf0;
border: 4px solid #34495E;
color: #2C3E50; }
.lifecycle #body-inner .level-4 + ol h3 {
background: #34495E; }
#top-bar {
background: #F6F6F6;
border-radius: 2px;
margin: 0rem -1rem 2rem;
padding: 0 1rem;
height: 0;
min-height: 3rem; }
#top-github-link {
position: relative;
z-index: 1;
float: right;
display: block; }
#body #breadcrumbs {
height: auto;
display: block;
margin-bottom: 0;
padding-left: 0;
line-height: 1.4; }
#body #breadcrumbs span {
padding: 0 0.1rem; }
@media only all and (max-width: 59.938em) {
#sidebar {
width: 230px; }
#body {
margin-left: 230px; } }
@media only all and (max-width: 47.938em) {
#sidebar {
width: 230px;
left: -230px; }
#body {
margin-left: 0;
width: 100%; }
.sidebar-hidden {
overflow: hidden; }
.sidebar-hidden #sidebar {
left: 0; }
.sidebar-hidden #body {
margin-left: 230px;
overflow: hidden; }
.sidebar-hidden #overlay {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 10;
background: rgba(255, 255, 255, 0.5);
cursor: pointer; } }
.copy-to-clipboard {
background-image: url(../images/clippy.svg);
background-position: 50% 50%;
background-size: 16px 16px;
background-repeat: no-repeat;
width: 27px;
height: 1.45rem;
top: -1px;
display: inline-block;
vertical-align: middle;
position: relative;
color: #3c3c3c;
background-color: #f9f2f4;
margin-left: -.2rem;
cursor: pointer;
border-radius: 0 2px 2px 0; }
.copy-to-clipboard:hover {
background-color: #f1e1e5; }
pre .copy-to-clipboard {
position: absolute;
right: 4px;
top: 4px;
background-color: #eee;
border-color: #ddd;
border-radius: 2px; }
pre .copy-to-clipboard:hover {
background-color: #d9d9d9; }
.parent-element {
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d; }
/*# sourceMappingURL=theme.css.map */

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,8 @@
/**
* Featherlight - ultra slim jQuery lightbox
* Version 1.2.3 - http://noelboss.github.io/featherlight/
*
* Copyright 2015, Noël Raoul Bossart (http://www.noelboss.com)
* MIT Licensed.
**/
@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333;background:rgba(0,0,0,0)}.featherlight:last-of-type{background:rgba(0,0,0,.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;padding:25px 25px 0;border-bottom:25px solid transparent;min-width:30%;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;line-height:25px;width:25px;cursor:pointer;text-align:center;font:Arial,sans-serif;background:#fff;background:rgba(255,255,255,.3);color:#000}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:0}}@media only screen and (max-width:1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%;padding:10px 10px 0;border-bottom:10px solid transparent}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,9 @@
button {
overflow: visible;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}

View file

@ -0,0 +1,62 @@
/* IE9 Resets and Normalization */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
}
[hidden],
template {
display: none;
}
abbr[title] {
border-bottom: 1px dotted;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
button {
overflow: visible;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}
legend {
border: 0;
padding: 0;
}
textarea {
overflow: auto;
}

View file

@ -0,0 +1,15 @@
/*!
Pure v0.5.0-rc-1
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
https://github.com/yui/pure/blob/master/LICENSE.md
*/
.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-1-12,.pure-u-2-24{width:8.3333%;*width:8.3023%}.pure-u-1-8,.pure-u-3-24{width:12.5%;*width:12.469%}.pure-u-1-6,.pure-u-4-24{width:16.6667%;*width:16.6357%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-1-4,.pure-u-6-24{width:25%;*width:24.969%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-1-3,.pure-u-8-24{width:33.3333%;*width:33.3023%}.pure-u-3-8,.pure-u-9-24{width:37.5%;*width:37.469%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-5-12,.pure-u-10-24{width:41.6667%;*width:41.6357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-1-2,.pure-u-12-24{width:50%;*width:49.969%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-7-12,.pure-u-14-24{width:58.3333%;*width:58.3023%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-5-8,.pure-u-15-24{width:62.5%;*width:62.469%}.pure-u-2-3,.pure-u-16-24{width:66.6667%;*width:66.6357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-3-4,.pure-u-18-24{width:75%;*width:74.969%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-5-6,.pure-u-20-24{width:83.3333%;*width:83.3023%}.pure-u-7-8,.pure-u-21-24{width:87.5%;*width:87.469%}.pure-u-11-12,.pure-u-22-24{width:91.6667%;*width:91.6357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{width:100%}
/* Custom */
[class *="pure-u"] {display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto;}
.pure-u-1-7 {width: 14.285%;}.pure-u-2-7 {width: 28.571%;}.pure-u-3-7 {width: 42.857%;}.pure-u-4-7 {width: 57.142%;}.pure-u-5-7 {width: 71.428%;}.pure-u-6-7 {width: 85.714%;}
.pure-u-1-9 {width: 11.111%;}.pure-u-2-9 {width: 22.222%;}.pure-u-3-9 {width: 33.333%;}.pure-u-4-9 {width: 44.444%;}.pure-u-5-9 {width: 55.555%;}.pure-u-6-9 {width: 66.666%;}.pure-u-7-9 {width: 77.777%;}.pure-u-8-9 {width: 88.888%;}
.pure-u-1-10 {width: 10%;}.pure-u-2-10 {width: 20%;}.pure-u-3-10 {width: 30%;}.pure-u-4-10 {width: 40%;}.pure-u-5-10 {width: 50%;}.pure-u-6-10 {width: 60%;}.pure-u-7-10 {width: 70%;}.pure-u-8-10 {width: 80%;}.pure-u-9-10 {width: 90%;}
.pure-u-1-11 {width: 9.090%;}.pure-u-2-11 {width: 18.181%;}.pure-u-3-11 {width: 27.272%;}.pure-u-4-11 {width: 36.363%;}.pure-u-5-11 {width: 45.454%;}.pure-u-6-11 {width: 54.545%;}.pure-u-7-11 {width: 63.636%;}.pure-u-8-11 {width: 72.727%;}.pure-u-9-11 {width: 81.818%;}.pure-u-10-11 {width: 90.909%;}

Binary file not shown.

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,3 @@
<svg height="1024" width="896" xmlns="http://www.w3.org/2000/svg">
<path d="M128 768h256v64H128v-64z m320-384H128v64h320v-64z m128 192V448L384 640l192 192V704h320V576H576z m-288-64H128v64h160v-64zM128 704h160v-64H128v64z m576 64h64v128c-1 18-7 33-19 45s-27 18-45 19H64c-35 0-64-29-64-64V192c0-35 29-64 64-64h192C256 57 313 0 384 0s128 57 128 128h192c35 0 64 29 64 64v320h-64V320H64v576h640V768zM128 256h512c0-35-29-64-64-64h-64c-35 0-64-29-64-64s-29-64-64-64-64 29-64 64-29 64-64 64h-64c-35 0-64 29-64 64z" />
</svg>

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

7
themes/learn2/js/clipboard.min.js vendored Normal file

File diff suppressed because one or more lines are too long

8
themes/learn2/js/featherlight.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=x.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=w[a[u]];return b||(b={},v++,a[u]=v,w[v]=b),b}function f(a,c,d){if(c||(c=b),p)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():t.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||s.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),p)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return x.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(x,b.frag)}function i(a){a||(a=b);var d=e(a);return!x.shivCSS||o||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),p||h(a,d),a}function j(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(k(b)));return g}function k(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(z+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function l(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+z+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function m(a){for(var b=a.length;b--;)a[b].removeNode()}function n(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,f,g=e(a),h=a.namespaces,i=a.parentWindow;return!A||a.printShived?a:("undefined"==typeof h[z]&&h.add(z),i.attachEvent("onbeforeprint",function(){b();for(var e,g,h,i=a.styleSheets,k=[],m=i.length,n=Array(m);m--;)n[m]=i[m];for(;h=n.pop();)if(!h.disabled&&y.test(h.media)){try{e=h.imports,g=e.length}catch(o){g=0}for(m=0;g>m;m++)n.push(e[m]);try{k.push(h.cssText)}catch(o){}}k=l(k.reverse().join("")),f=j(a),d=c(a,k)}),i.attachEvent("onafterprint",function(){m(f),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var o,p,q="3.7.0",r=a.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,t=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,u="_html5shiv",v=0,w={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",o="hidden"in a,p=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){o=!0,p=!0}}();var x={elements:r.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:q,shivCSS:r.shivCSS!==!1,supportsUnknownElements:p,shivMethods:r.shivMethods!==!1,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=x,i(b);var y=/^$|\b(?:all|print)\b/,z="html5shiv",A=!p&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();x.type+=" print",x.shivPrint=n,n(b)}(this,document);

File diff suppressed because one or more lines are too long

342
themes/learn2/js/learn.js Normal file
View file

@ -0,0 +1,342 @@
// Scrollbar Width function
function getScrollBarWidth() {
var inner = document.createElement('p');
inner.style.width = "100%";
inner.style.height = "200px";
var outer = document.createElement('div');
outer.style.position = "absolute";
outer.style.top = "0px";
outer.style.left = "0px";
outer.style.visibility = "hidden";
outer.style.width = "200px";
outer.style.height = "150px";
outer.style.overflow = "hidden";
outer.appendChild(inner);
document.body.appendChild(outer);
var w1 = inner.offsetWidth;
outer.style.overflow = 'scroll';
var w2 = inner.offsetWidth;
if (w1 == w2) w2 = outer.clientWidth;
document.body.removeChild(outer);
return (w1 - w2);
};
function setMenuHeight() {
$('#sidebar .highlightable').height($('#sidebar').innerHeight() - $('#header-wrapper').height() - 40);
}
function fallbackMessage(action) {
var actionMsg = '';
var actionKey = (action === 'cut' ? 'X' : 'C');
if (/iPhone|iPad/i.test(navigator.userAgent)) {
actionMsg = 'No support :(';
}
else if (/Mac/i.test(navigator.userAgent)) {
actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;
}
else {
actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;
}
return actionMsg;
}
// for the window resize
$(window).resize(function() {
setMenuHeight();
});
// debouncing function from John Hann
// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
(function($, sr) {
var debounce = function(func, threshold, execAsap) {
var timeout;
return function debounced() {
var obj = this, args = arguments;
function delayed() {
if (!execAsap)
func.apply(obj, args);
timeout = null;
};
if (timeout)
clearTimeout(timeout);
else if (execAsap)
func.apply(obj, args);
timeout = setTimeout(delayed, threshold || 100);
};
}
// smartresize
jQuery.fn[sr] = function(fn) { return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
})(jQuery, 'smartresize');
jQuery(document).ready(function() {
var sidebarStatus = searchStatus = 'open';
// set the menu height
setMenuHeight();
jQuery('#overlay').on('click', function() {
jQuery(document.body).toggleClass('sidebar-hidden');
sidebarStatus = (jQuery(document.body).hasClass('sidebar-hidden') ? 'closed' : 'open');
return false;
});
jQuery('.scrollbar-inner').scrollbar();
jQuery('[data-sidebar-toggle]').on('click', function() {
jQuery(document.body).toggleClass('sidebar-hidden');
sidebarStatus = (jQuery(document.body).hasClass('sidebar-hidden') ? 'closed' : 'open');
return false;
});
jQuery('[data-clear-history-toggle]').on('click', function() {
sessionStorage.clear();
location.reload();
return false;
});
jQuery('[data-search-toggle]').on('click', function() {
if (sidebarStatus == 'closed') {
jQuery('[data-sidebar-toggle]').trigger('click');
jQuery(document.body).removeClass('searchbox-hidden');
searchStatus = 'open';
return false;
}
jQuery(document.body).toggleClass('searchbox-hidden');
searchStatus = (jQuery(document.body).hasClass('searchbox-hidden') ? 'closed' : 'open');
return false;
});
var ajax;
jQuery('[data-search-input]').on('input', function() {
var input = jQuery(this),
value = input.val(),
items = jQuery('[data-nav-id]');
items.removeClass('search-match');
if (!value.length) {
$('ul.topics').removeClass('searched');
items.css('display', 'block');
sessionStorage.removeItem('search-value');
$(".highlightable").unhighlight({ element: 'mark' })
return;
}
sessionStorage.setItem('search-value', value);
$(".highlightable").unhighlight({ element: 'mark' }).highlight(value, { element: 'mark' });
if (ajax && ajax.abort) ajax.abort();
ajax = jQuery.ajax({
url: input.data('search-input') + ':' + value
}).done(function(data) {
if (data && data.results && data.results.length) {
items.css('display', 'none');
$('ul.topics').addClass('searched');
data.results.forEach(function(navitem) {
jQuery('[data-nav-id="' + navitem + '"]').css('display', 'block').addClass('search-match');
jQuery('[data-nav-id="' + navitem + '"]').parents('li').css('display', 'block');
});
}
;
});
jQuery('[data-search-clear]').on('click', function() {
jQuery('[data-search-input]').val('').trigger('input');
sessionStorage.removeItem('search-input');
$(".highlightable").unhighlight({ element: 'mark' })
});
});
if (sessionStorage.getItem('search-value')) {
jQuery(document.body).removeClass('searchbox-hidden');
jQuery('[data-search-input]').val(sessionStorage.getItem('search-value'));
jQuery('[data-search-input]').trigger('input');
}
// clipboard
var clipInit = false;
$('code').each(function() {
var code = $(this),
text = code.text();
if (text.length > 5) {
if (!clipInit) {
var text, clip = new Clipboard('.copy-to-clipboard', {
text: function(trigger) {
text = $(trigger).prev('code').text();
return text.replace(/^\$\s/gm, '');
}
});
var inPre;
clip.on('success', function(e) {
e.clearSelection();
inPre = $(e.trigger).parent().prop('tagName') == 'PRE';
$(e.trigger).attr('aria-label', 'Copied to clipboard!').addClass('tooltipped tooltipped-' + (inPre ? 'w' : 's'));
});
clip.on('error', function(e) {
inPre = $(e.trigger).parent().prop('tagName') == 'PRE';
$(e.trigger).attr('aria-label', fallbackMessage(e.action)).addClass('tooltipped tooltipped-' + (inPre ? 'w' : 's'));
$(document).one('copy', function(){
$(e.trigger).attr('aria-label', 'Copied to clipboard!').addClass('tooltipped tooltipped-' + (inPre ? 'w' : 's'));
});
});
clipInit = true;
}
code.after('<span class="copy-to-clipboard" title="Copy to clipboard" />');
code.next('.copy-to-clipboard').on('mouseleave', function() {
$(this).attr('aria-label', null).removeClass('tooltipped tooltipped-s tooltipped-w');
});
}
});
// allow keyboard control for prev/next links
jQuery(function() {
jQuery('.nav-prev').click(function(){
location.href = jQuery(this).attr('href');
});
jQuery('.nav-next').click(function() {
location.href = jQuery(this).attr('href');
});
});
jQuery(document).keydown(function(e) {
// prev links - left arrow key
if(e.which == '37') {
jQuery('.nav.nav-prev').click();
}
// next links - right arrow key
if(e.which == '39') {
jQuery('.nav.nav-next').click();
}
});
});
jQuery(window).on('load', function() {
function adjustForScrollbar() {
if ((parseInt(jQuery('#body-inner').height()) + 83) >= jQuery('#body').height()) {
jQuery('.nav.nav-next').css({ 'margin-right': getScrollBarWidth() });
} else {
jQuery('.nav.nav-next').css({ 'margin-right': 0 });
}
}
// adjust sidebar for scrollbar
adjustForScrollbar();
jQuery(window).smartresize(function() {
adjustForScrollbar();
});
// store this page in session
sessionStorage.setItem(jQuery('body').data('url'), 1);
// loop through the sessionStorage and see if something should be marked as visited
for (var url in sessionStorage) {
if (sessionStorage.getItem(url) == 1) jQuery('[data-nav-id="' + url + '"]').addClass('visited');
}
$(".highlightable").highlight(sessionStorage.getItem('search-value'), { element: 'mark' });
});
$(function() {
$('a[rel="lightbox"]').featherlight({
root: 'section#body'
});
});
jQuery.extend({
highlight: function(node, re, nodeName, className) {
if (node.nodeType === 3) {
var match = node.data.match(re);
if (match) {
var highlight = document.createElement(nodeName || 'span');
highlight.className = className || 'highlight';
var wordNode = node.splitText(match.index);
wordNode.splitText(match[0].length);
var wordClone = wordNode.cloneNode(true);
highlight.appendChild(wordClone);
wordNode.parentNode.replaceChild(highlight, wordNode);
return 1; //skip added node in parent
}
} else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children
!/(script|style)/i.test(node.tagName) && // ignore script and style nodes
!(node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted
for (var i = 0; i < node.childNodes.length; i++) {
i += jQuery.highlight(node.childNodes[i], re, nodeName, className);
}
}
return 0;
}
});
jQuery.fn.unhighlight = function(options) {
var settings = {
className: 'highlight',
element: 'span'
};
jQuery.extend(settings, options);
return this.find(settings.element + "." + settings.className).each(function() {
var parent = this.parentNode;
parent.replaceChild(this.firstChild, this);
parent.normalize();
}).end();
};
jQuery.fn.highlight = function(words, options) {
var settings = {
className: 'highlight',
element: 'span',
caseSensitive: false,
wordsOnly: false
};
jQuery.extend(settings, options);
if (!words) { return; }
if (words.constructor === String) {
words = [words];
}
words = jQuery.grep(words, function(word, i) {
return word != '';
});
words = jQuery.map(words, function(word, i) {
return word.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
});
if (words.length == 0) { return this; }
;
var flag = settings.caseSensitive ? "" : "i";
var pattern = "(" + words.join("|") + ")";
if (settings.wordsOnly) {
pattern = "\\b" + pattern + "\\b";
}
var re = new RegExp(pattern, flag);
return this.each(function() {
jQuery.highlight(this, re, settings.element, settings.className);
});
};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,48 @@
en:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: edit this page
THEME_LEARN2_GITHUB_NOTE: Found errors? Think you can improve this documentation?
THEME_LEARN2_CLEAR_HISTORY: Clear History
THEME_LEARN2_BUILT_WITH_GRAV: Built with <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Search Documentation
cn:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: 编辑此页
THEME_LEARN2_GITHUB_NOTE: 发现错误?请帮忙改进,谢谢!
THEME_LEARN2_CLEAR_HISTORY: 清除历史
THEME_LEARN2_BUILT_WITH_GRAV: Built with <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: 搜索文档
cs:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: Upravte tuto stránku
THEME_LEARN2_GITHUB_NOTE: Našli jste chybu? Myslíte, že můžete vylepšit tuto dokumentaci?
THEME_LEARN2_CLEAR_HISTORY: Smazat historii
THEME_LEARN2_BUILT_WITH_GRAV: Postaveno na <a href="http://getgrav.org">Grav</a> - Moderní správce obsahu pomocí souborů prostých textů
THEME_LEARN2_SEARCH_DOCUMENTATION: Vyhledat v dokumentaci
de:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: diese Seite bearbeiten
THEME_LEARN2_GITHUB_NOTE: Fehler gefunden? Möchten Sie diese Seite verbessern?
THEME_LEARN2_CLEAR_HISTORY: Verlauf löschen
THEME_LEARN2_BUILT_WITH_GRAV: Seite erstellt mit <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Dokumentation durchsuchen
es:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: editar esta página
THEME_LEARN2_GITHUB_NOTE: ¿Encontraste errores? ¿Crees que puedes mejorar esta documentación?
THEME_LEARN2_CLEAR_HISTORY: Limpiar historial
THEME_LEARN2_BUILT_WITH_GRAV: Hecho con <a href="http://getgrav.org">Grav</a> - El CMS moderno de archivos planos
THEME_LEARN2_SEARCH_DOCUMENTATION: Buscar en la documentación
fr:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: modifier cette page
THEME_LEARN2_GITHUB_NOTE: Vous avez découvert des erreurs ? Vous pensez pouvoir améliorer cette documentation ?
THEME_LEARN2_CLEAR_HISTORY: Effacer l'historique
THEME_LEARN2_BUILT_WITH_GRAV: Créé avec <a href="http://getgrav.org">Grav</a> - Le CMS moderne sans base de données
THEME_LEARN2_SEARCH_DOCUMENTATION: Rechercher dans la documentation
it:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: modifica pagina
THEME_LEARN2_GITHUB_NOTE: Hai trovato degli errori? Pensi di poter migliorare questa documentazione?
THEME_LEARN2_CLEAR_HISTORY: Cancella Cronologia
THEME_LEARN2_BUILT_WITH_GRAV: Built with <a href="http://getgrav.org">Grav</a> - The Modern Flat File CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Cerca nella Documentatione
ru:
THEME_LEARN2_GITHUB_EDIT_THIS_PAGE: редактировать эту страницу
THEME_LEARN2_GITHUB_NOTE: Нашли ошибки? Думаете, что можете улучшить документацию?
THEME_LEARN2_CLEAR_HISTORY: Очистить историю
THEME_LEARN2_BUILT_WITH_GRAV: Сделано на <a href="http://getgrav.org">Grav</a> — современной файловой CMS
THEME_LEARN2_SEARCH_DOCUMENTATION: Поиск по документации

9
themes/learn2/learn2.php Normal file
View file

@ -0,0 +1,9 @@
<?php
namespace Grav\Theme;
use Grav\Common\Theme;
class Learn2 extends Theme
{
}

10
themes/learn2/learn2.yaml Normal file
View file

@ -0,0 +1,10 @@
enabled: true
root_page: # optional: set root page of documentation
top_level_version: false # Use versions for top level navigation
show_all_pages: false # Show all pages without having to 'open' them
google_analytics_code: # Enter your `UA-XXXXXXXX-X` code here
home_url: # http://getgrav.org
github:
position: top # top | bottom | off
tree: https://github.com/getgrav/grav-skeleton-rtfm-site/blob/develop/
commits: https://github.com/getgrav/grav-skeleton-rtfm-site/commits/develop/

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

2
themes/learn2/scss.sh Normal file
View file

@ -0,0 +1,2 @@
#!/bin/sh
scss --watch scss:css-compiled

View file

@ -0,0 +1,14 @@
// Core
@import "core";
// Breakpoints
@import "breakpoints";
// Layout
@import "layout";
// Typography
@import "typography";
// Nav
@import "nav";

View file

@ -0,0 +1,17 @@
// Media Device Breakpoints
$large-desktop-container: 75.000em !default;
$desktop-container: 60.000em !default;
$tablet-container: 48.000em !default;
$large-mobile-container: 30.000em !default;
$mobile-container: 100% !default;
// Breakpoint Variables For Particles
$media: "all" !default;
$desktop-max: "#{$media} and (max-width:#{$desktop-container - 0.062})" !default;
$mobile-only: "#{$media} and (max-width:#{$tablet-container - 0.062})" !default;
$no-mobile: "#{$media} and (min-width:#{$tablet-container})" !default;
$small-mobile-range: "#{$media} and (max-width:#{$large-mobile-container})" !default;
$large-mobile-range: "#{$media} and (min-width:#{$large-mobile-container + 0.063}) and (max-width:#{$tablet-container - 0.062})" !default;
$tablet-range: "#{$media} and (min-width:#{$tablet-container}) and (max-width:#{$desktop-container - 0.062})" !default;
$desktop-range: "#{$media} and (min-width:#{$desktop-container}) and (max-width:#{$large-desktop-container - 0.062})" !default;
$large-desktop-range: "#{$media} and (min-width:#{$large-desktop-container})" !default;

View file

@ -0,0 +1,2 @@
// Border Radius
$core-border-radius: rem(3) !default;

View file

@ -0,0 +1,8 @@
// Content Block Spacing Variables
$content-margin: 0.625rem !default;
$content-padding: 0.938rem !default;
// Fixed Block Variables
$fixed-block-full: percentage(1/4) !default;
$fixed-block-desktop: percentage(1/3) !default;
$fixed-block-tablet: percentage(1/2) !default;

View file

@ -0,0 +1,3 @@
// Dropdowns
$dropdown-width: 140px !default;
$flyout-width: 140px !default;

View file

@ -0,0 +1,14 @@
// Base Sizes
$core-font-size: 1.05rem !default;
$core-line-height: 1.7 !default;
// Heading Sizes
$h1-font-size: $core-font-size + 2.20 !default;
$h2-font-size: $core-font-size + 1.50 !default;
$h3-font-size: $core-font-size + 1.10 !default;
$h4-font-size: $core-font-size + 0.75 !default;
$h5-font-size: $core-font-size + 0.35 !default;
$h6-font-size: $core-font-size - 0.15 !default;
// Spacing
$leading-margin: $core-line-height * 1rem !default;

View file

@ -0,0 +1,5 @@
// Colors
@import "colors";
// Typography
@import "bullets";

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