Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2922c9982a | ||
|
|
062c105bc1 | ||
|
|
18d77b7279 | ||
|
|
a1cd9897ea | ||
|
|
dad6abee58 | ||
|
|
2672f9b087 | ||
|
|
4315a75a12 | ||
|
|
fc4a7454ad | ||
|
|
87410aea50 | ||
|
|
de98d00a1c | ||
|
|
e94ffd9d79 | ||
|
|
d7aebb784d | ||
|
|
20b8cb939d | ||
|
|
ff4217c3d1 | ||
|
|
4fb72d30d8 | ||
|
|
d2b8fc0bda | ||
|
|
951181628a | ||
|
|
ccee274847 | ||
|
|
967f6728ef | ||
|
|
bf11ffb626 | ||
|
|
c12cabbe4e | ||
|
|
e997594db9 | ||
|
|
6f5e3b395f | ||
|
|
8bf2caf20d | ||
|
|
040021ee0e | ||
|
|
5018a3a848 | ||
|
|
df1c74a91d | ||
|
|
bb3893d36c | ||
|
|
fe57449f6c | ||
|
|
c725adaa09 | ||
|
|
7731bfa4e0 | ||
|
|
e72546aaec | ||
|
|
d6d648f0f4 | ||
|
|
56fddd56f5 | ||
|
|
3c9c350bc0 | ||
|
|
8340a04bd6 | ||
|
|
ccef70fd3d | ||
|
|
0650fa7bbe | ||
|
|
5cffa06385 | ||
|
|
4df17a151e | ||
|
|
c8e314b690 | ||
|
|
3d91f3c235 | ||
|
|
32cd536ada | ||
|
|
0ba523d071 | ||
|
|
314171b2b1 | ||
|
|
909309cc2e | ||
|
|
32b6de0c3a | ||
|
|
7e22e7b67d | ||
|
|
36f0d7450c | ||
|
|
73d958911f | ||
|
|
6b4a2b5406 | ||
|
|
cd8d1c9b10 | ||
|
|
a79fedda77 | ||
|
|
558ef7fbdf | ||
|
|
7c6609a414 | ||
|
|
54514f494f | ||
|
|
67aa7ca79f | ||
|
|
344f5af01b | ||
|
|
8150d6c48c | ||
|
|
05ee0dbdb5 | ||
|
|
2db3076c92 | ||
|
|
90daed18df | ||
|
|
65dd2c645a | ||
|
|
89d70a940c | ||
|
|
4944517a0e | ||
|
|
2a7ee7f0b2 | ||
|
|
6edbd47c9a | ||
|
|
d755c39e4a | ||
|
|
b7f8327209 | ||
|
|
27c82d8411 | ||
|
|
e0b159c069 | ||
|
|
cfb19820fa | ||
|
|
e05ca13608 | ||
|
|
15cf96c01f | ||
|
|
2caec91a0f | ||
|
|
9465a1e0a8 | ||
|
|
251272c708 | ||
|
|
f068a0e0fa | ||
|
|
d0034cd112 | ||
|
|
ae6d5ebeef | ||
|
|
8466e70424 | ||
|
|
c3d8f27f48 | ||
|
|
b85229f1a1 | ||
|
|
d03298a048 | ||
|
|
798e0b487e | ||
|
|
49444d72b4 | ||
|
|
c0e0fe4dcb | ||
|
|
9a189848ea | ||
|
|
96b09bfc1d | ||
|
|
9a6c913d89 | ||
|
|
42010594be | ||
|
|
5469c30b75 | ||
|
|
fe9a2ee202 | ||
|
|
5e27dc7e9f | ||
|
|
69d083e3c0 | ||
|
|
2b95f9724e | ||
|
|
4066a07892 | ||
|
|
443ab58f65 | ||
|
|
e0116acbe4 | ||
|
|
91e9bf0207 | ||
|
|
aff0335f7e | ||
|
|
4d8baaa19b | ||
|
|
65452d80f1 | ||
|
|
df4d432151 | ||
|
|
1390f2c783 | ||
|
|
be99d0e900 | ||
|
|
97fcf1d5fc | ||
|
|
c9b14d7c45 | ||
|
|
3d0dda0347 | ||
|
|
8d69b35d67 | ||
|
|
7ba142a9f2 | ||
|
|
56ac55806d | ||
|
|
47f53c14db | ||
|
|
a47d40b914 | ||
|
|
be33ae30bb | ||
|
|
6d5f1306bf | ||
|
|
ad3dc716e7 | ||
|
|
089b125a89 | ||
|
|
dfd4554a11 | ||
|
|
1b98297881 | ||
|
|
cacc8fcafe | ||
|
|
ac07d39db8 | ||
|
|
e27aa77cec | ||
|
|
cbc9f68dd6 | ||
|
|
944d0f5a70 | ||
|
|
9ded7ef830 | ||
|
|
adb18b7ce3 | ||
|
|
8220e60257 | ||
|
|
b09af655e7 | ||
|
|
5833f8a3d8 | ||
|
|
72132d5e88 | ||
|
|
4167c4db78 | ||
|
|
3e1f6b9137 | ||
|
|
bb08b19c0d | ||
|
|
7497919e8f | ||
|
|
41cbe7b31c | ||
|
|
425e951341 | ||
|
|
2e4a0b92fc | ||
|
|
9f839579e2 | ||
|
|
900066b9d4 | ||
|
|
97534b0670 | ||
|
|
62672ade04 | ||
|
|
b22e1c1ccc | ||
|
|
1b8e60c26d | ||
|
|
035dfdd332 | ||
|
|
d1707d3c72 | ||
|
|
c9bed097ba | ||
|
|
5acb90025f | ||
|
|
2d12da79b0 | ||
|
|
bede379021 | ||
|
|
38acde1b20 | ||
|
|
d0c4a5addd | ||
|
|
b8a7ccf005 | ||
|
|
68fc53585e | ||
|
|
26afc125c7 | ||
|
|
090b39f78b | ||
|
|
3722de6b13 | ||
|
|
d93c9aa780 | ||
|
|
ea56504aee | ||
|
|
46b91edfdf | ||
|
|
d2dfde519d | ||
|
|
1eac56f22c | ||
|
|
fb491a6bb2 | ||
|
|
3da7c89b66 | ||
|
|
e842cf3a57 | ||
|
|
85b0e8f1a6 | ||
|
|
b8e03ff6c1 | ||
|
|
54b1703d67 | ||
|
|
15d647a0ec | ||
|
|
353558ddb3 | ||
|
|
9f58d30050 | ||
|
|
4f0632cdf1 | ||
|
|
ff8ba71948 | ||
|
|
a367591327 | ||
|
|
c91925fbc2 | ||
|
|
479f1649ef | ||
|
|
06f69184b6 | ||
|
|
3471d9a57c | ||
|
|
28d4035477 | ||
|
|
3e1d151efd | ||
|
|
556cfc3036 | ||
|
|
c49b757be6 | ||
|
|
cec7e2caf3 | ||
|
|
9a0c07a461 | ||
|
|
c7064c18b9 | ||
|
|
fb897310c8 | ||
|
|
5944849326 | ||
|
|
1255f1e6c7 | ||
|
|
d7bc09d859 | ||
|
|
f84a448351 | ||
|
|
7e34690e0c | ||
|
|
6f6d378600 | ||
|
|
216b463b8f | ||
|
|
4ad84cb5e5 | ||
|
|
19e0946717 | ||
|
|
0de1ad06cd | ||
|
|
72427006dd | ||
|
|
0e5f702651 | ||
|
|
4f1b0fc838 | ||
|
|
23d0963c2d | ||
|
|
dcb35fb80f | ||
|
|
b1768854c3 | ||
|
|
4ed4eaf8e8 | ||
|
|
d167b53b17 | ||
|
|
18eff80a30 | ||
|
|
a44ec5f624 |
@@ -0,0 +1,132 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Report a problem with ZoiteChat
|
||||
title: "[Bug]: "
|
||||
labels: bug
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
```
|
||||
+------------------------------------------------------------+
|
||||
| ZoiteChat Bug Report |
|
||||
| Please fill this out so the bug goblin has enough crumbs. |
|
||||
+------------------------------------------------------------+
|
||||
```
|
||||
|
||||
## Summary
|
||||
|
||||
What went wrong?
|
||||
|
||||
```text
|
||||
Describe the bug clearly and briefly.
|
||||
```
|
||||
|
||||
## Steps to Reproduce
|
||||
|
||||
```text
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
```
|
||||
|
||||
## Expected Result
|
||||
|
||||
```text
|
||||
What should have happened?
|
||||
```
|
||||
|
||||
## Actual Result
|
||||
|
||||
```text
|
||||
What happened instead?
|
||||
```
|
||||
|
||||
## ZoiteChat Version
|
||||
|
||||
```text
|
||||
ZoiteChat version:
|
||||
Build/source: GitHub release / Fedora package / source build / Windows installer / other
|
||||
Commit hash, if built from source:
|
||||
```
|
||||
|
||||
## System Information
|
||||
|
||||
```text
|
||||
OS:
|
||||
OS version:
|
||||
Desktop environment:
|
||||
Display server: Wayland / X11 / Windows / other
|
||||
CPU architecture: x86_64 / aarch64 / other
|
||||
```
|
||||
|
||||
## IRC / Network Details
|
||||
|
||||
```text
|
||||
IRC network/server:
|
||||
Port:
|
||||
TLS/SSL enabled: yes / no
|
||||
SASL enabled: yes / no
|
||||
Using bouncer/ZNC: yes / no
|
||||
Proxy/VPN involved: yes / no
|
||||
IRCv3 capabilities involved, if known:
|
||||
```
|
||||
|
||||
## Plugins, Scripts, and Config
|
||||
|
||||
```text
|
||||
Plugins enabled:
|
||||
Scripts loaded:
|
||||
Theme/custom CSS:
|
||||
Custom config changes:
|
||||
Does the bug still happen with a clean config? yes / no / untested
|
||||
```
|
||||
|
||||
## Logs / Terminal Output
|
||||
|
||||
Paste relevant output below.
|
||||
|
||||
```text
|
||||
```
|
||||
|
||||
## Raw IRC Lines, If Relevant
|
||||
|
||||
Remove passwords, tokens, IPs, private channels, private messages, certs, and account details before posting.
|
||||
|
||||
```text
|
||||
```
|
||||
|
||||
## Crash Details, If Relevant
|
||||
|
||||
```text
|
||||
Did ZoiteChat crash? yes / no
|
||||
Crash reporter output:
|
||||
Backtrace:
|
||||
Core dump available: yes / no
|
||||
```
|
||||
|
||||
## Screenshots
|
||||
|
||||
Attach screenshots or screen recordings if the issue is visual.
|
||||
|
||||
## Regression Check
|
||||
|
||||
```text
|
||||
Did this work in an older version? yes / no / unknown
|
||||
Last known working version:
|
||||
First broken version:
|
||||
```
|
||||
|
||||
## Checklist
|
||||
|
||||
* [ ] I searched existing issues first.
|
||||
* [ ] I tested with the latest ZoiteChat version available to me.
|
||||
* [ ] I included steps to reproduce the issue.
|
||||
* [ ] I removed private information from logs and raw IRC lines.
|
||||
* [ ] I included system and network details where relevant.
|
||||
|
||||
## Extra Notes
|
||||
|
||||
```text
|
||||
Anything else that might help.
|
||||
```
|
||||
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: false
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an improvement for ZoiteChat
|
||||
title: "[Feature]: "
|
||||
labels: enhancement
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
```text
|
||||
Describe the feature or enhancement clearly and briefly.
|
||||
```
|
||||
|
||||
## Problem
|
||||
|
||||
```text
|
||||
What problem would this solve?
|
||||
```
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
```text
|
||||
How should ZoiteChat behave?
|
||||
```
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
```text
|
||||
Other approaches or workarounds you considered.
|
||||
```
|
||||
|
||||
## Use Case
|
||||
|
||||
```text
|
||||
Who benefits from this, and when would they use it?
|
||||
```
|
||||
|
||||
## Platform Details
|
||||
|
||||
```text
|
||||
OS:
|
||||
ZoiteChat version:
|
||||
Build/source: GitHub release / Fedora package / source build / Windows installer / other
|
||||
```
|
||||
|
||||
## Checklist
|
||||
|
||||
* [ ] I searched existing issues first.
|
||||
* [ ] I checked whether this already exists in the latest ZoiteChat version available to me.
|
||||
* [ ] I explained the problem this would solve.
|
||||
|
||||
## Extra Notes
|
||||
|
||||
```text
|
||||
Anything else that might help.
|
||||
```
|
||||
@@ -2,7 +2,7 @@ name: AppImage Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
branches: [master, 'release/**']
|
||||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
@@ -30,13 +30,13 @@ jobs:
|
||||
gettext \
|
||||
libcanberra-dev libglib2.0-dev \
|
||||
libarchive-dev \
|
||||
libgtk-3-dev \
|
||||
libgtk-3-dev libfontconfig1-dev libpango1.0-dev xvfb xauth dbus-daemon at-spi2-core \
|
||||
libwayland-client0 libwayland-cursor0 libwayland-egl1 \
|
||||
libxkbcommon0 \
|
||||
libgtk-3-bin libglib2.0-bin shared-mime-info gsettings-desktop-schemas \
|
||||
libgtk-3-bin libglib2.0-bin glib-networking shared-mime-info gsettings-desktop-schemas \
|
||||
liblua5.4-dev libpci-dev libperl-dev libssl-dev libayatana-appindicator3-dev \
|
||||
perl python3 python3-minimal python3-dev python3-cffi mono-devel desktop-file-utils \
|
||||
fonts-noto-color-emoji breeze-gtk-theme \
|
||||
breeze-gtk-theme \
|
||||
patchelf file curl
|
||||
|
||||
- name: Configure
|
||||
@@ -56,6 +56,9 @@ jobs:
|
||||
set -eux
|
||||
ninja -C build
|
||||
|
||||
- name: Test emoji catalog, font coverage and picker
|
||||
run: xvfb-run -a dbus-run-session -- meson test -C build --print-errorlogs "Emoji Data Tests" "Emoji Font Tests" "Emoji UI Tests"
|
||||
|
||||
- name: Install to AppDir
|
||||
run: |
|
||||
set -eux
|
||||
@@ -86,11 +89,21 @@ jobs:
|
||||
cp -a /usr/lib/x86_64-linux-gnu/python3/dist-packages AppDir/usr/lib/x86_64-linux-gnu/python3/
|
||||
fi
|
||||
|
||||
if [ -d "/usr/lib/x86_64-linux-gnu/perl-base" ]; then
|
||||
install -d AppDir/usr/lib/x86_64-linux-gnu
|
||||
cp -a /usr/lib/x86_64-linux-gnu/perl-base AppDir/usr/lib/x86_64-linux-gnu/
|
||||
fi
|
||||
|
||||
if [ -d "/usr/lib/x86_64-linux-gnu/perl" ]; then
|
||||
install -d AppDir/usr/lib/x86_64-linux-gnu
|
||||
cp -a /usr/lib/x86_64-linux-gnu/perl AppDir/usr/lib/x86_64-linux-gnu/
|
||||
fi
|
||||
|
||||
if [ -d "/usr/lib/x86_64-linux-gnu/perl5" ]; then
|
||||
install -d AppDir/usr/lib/x86_64-linux-gnu
|
||||
cp -a /usr/lib/x86_64-linux-gnu/perl5 AppDir/usr/lib/x86_64-linux-gnu/
|
||||
fi
|
||||
|
||||
if [ -d "/usr/share/perl" ]; then
|
||||
install -d AppDir/usr/share
|
||||
cp -a /usr/share/perl AppDir/usr/share/
|
||||
@@ -100,20 +113,17 @@ jobs:
|
||||
install -d AppDir/usr/share
|
||||
cp -a /usr/share/perl5 AppDir/usr/share/
|
||||
fi
|
||||
|
||||
perl -MFile::Spec -e 'print "Build host File::Spec: $INC{\"File/Spec.pm\"}\n"'
|
||||
find AppDir/usr -path '*/File/Spec.pm' -print -quit | grep -q .
|
||||
|
||||
if compgen -G '/usr/lib/x86_64-linux-gnu/libpython3*.so*' > /dev/null; then
|
||||
install -d AppDir/usr/lib/x86_64-linux-gnu
|
||||
cp -a /usr/lib/x86_64-linux-gnu/libpython3*.so* AppDir/usr/lib/x86_64-linux-gnu/
|
||||
fi
|
||||
|
||||
if [ -d "/usr/share/gtk-3.0/emoji" ]; then
|
||||
install -d AppDir/usr/share/gtk-3.0
|
||||
cp -a /usr/share/gtk-3.0/emoji AppDir/usr/share/gtk-3.0/
|
||||
fi
|
||||
|
||||
if [ -f "/usr/share/fonts/truetype/noto/NotoColorEmoji.ttf" ]; then
|
||||
install -d AppDir/usr/share/fonts/truetype/noto
|
||||
cp -a /usr/share/fonts/truetype/noto/NotoColorEmoji.ttf AppDir/usr/share/fonts/truetype/noto/
|
||||
fi
|
||||
# Every package ships the pinned font, including portable builds.
|
||||
cmp data/fonts/NotoColorEmoji.ttf AppDir/usr/share/fonts/zoitechat/NotoColorEmoji.ttf
|
||||
|
||||
if [ -d "/usr/lib/x86_64-linux-gnu/gtk-3.0/modules" ]; then
|
||||
install -d AppDir/usr/lib/x86_64-linux-gnu/gtk-3.0
|
||||
@@ -125,6 +135,20 @@ jobs:
|
||||
cp -a /usr/lib/gtk-3.0/modules AppDir/usr/lib/gtk-3.0/
|
||||
fi
|
||||
|
||||
# HTTPS inline-image downloads use GSocketClient TLS on Linux.
|
||||
# GLib provides the API, but TLS and system-proxy support live in
|
||||
# loadable GIO modules shipped by glib-networking. Bundle those
|
||||
# modules so the AppImage does not depend on the host copy.
|
||||
gio_module_dir="$(pkg-config --variable=giomoduledir gio-2.0)"
|
||||
|
||||
test -n "$gio_module_dir"
|
||||
test -f "${gio_module_dir}/libgiognutls.so"
|
||||
install -d "AppDir${gio_module_dir}"
|
||||
cp -a "${gio_module_dir}"/libgio*.so "AppDir${gio_module_dir}/"
|
||||
gio-querymodules "AppDir${gio_module_dir}"
|
||||
test -f "AppDir${gio_module_dir}/libgiognutls.so"
|
||||
test -s "AppDir${gio_module_dir}/giomodule.cache"
|
||||
|
||||
- name: Verify bundled plugins
|
||||
run: |
|
||||
set -eux
|
||||
@@ -162,7 +186,7 @@ jobs:
|
||||
|
||||
APPDIR="${APPDIR:-$(dirname "$(readlink -f "$0")")}"
|
||||
|
||||
export PATH="${PATH:-/usr/bin:/bin}:$APPDIR/usr/bin"
|
||||
export PATH="$APPDIR/usr/bin:${PATH:-/usr/bin:/bin}"
|
||||
export LD_LIBRARY_PATH="$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}"
|
||||
export XDG_DATA_DIRS="$APPDIR/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
|
||||
export GTK_EXE_PREFIX="$APPDIR/usr"
|
||||
@@ -178,14 +202,6 @@ jobs:
|
||||
export GTK_PATH="$gtk_path_entries${GTK_PATH:+:$GTK_PATH}"
|
||||
fi
|
||||
|
||||
if [ -d "$APPDIR/etc/fonts" ]; then
|
||||
export FONTCONFIG_SYSROOT="$APPDIR"
|
||||
export FONTCONFIG_PATH="$APPDIR/etc/fonts${FONTCONFIG_PATH:+:$FONTCONFIG_PATH}"
|
||||
if [ -f "$APPDIR/etc/fonts/fonts.conf" ]; then
|
||||
export FONTCONFIG_FILE="$APPDIR/etc/fonts/fonts.conf"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins" ]; then
|
||||
export ZOITECHAT_LIBDIR="$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins"
|
||||
elif [ -d "$APPDIR/usr/lib/zoitechat/plugins" ]; then
|
||||
@@ -211,6 +227,23 @@ jobs:
|
||||
|
||||
unset GTK_MODULES
|
||||
|
||||
perl5lib_entries=""
|
||||
for dir in \
|
||||
"$APPDIR/usr/lib/x86_64-linux-gnu/perl-base" \
|
||||
"$APPDIR/usr/lib/x86_64-linux-gnu/perl"/* \
|
||||
"$APPDIR/usr/lib/x86_64-linux-gnu/perl5"/* \
|
||||
"$APPDIR/usr/share/perl"/* \
|
||||
"$APPDIR/usr/share/perl5"
|
||||
do
|
||||
if [ -d "$dir" ]; then
|
||||
perl5lib_entries="${perl5lib_entries:+$perl5lib_entries:}$dir"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$perl5lib_entries" ]; then
|
||||
export PERL5LIB="$perl5lib_entries${PERL5LIB:+:$PERL5LIB}"
|
||||
fi
|
||||
|
||||
export PYTHONHOME="$APPDIR/usr"
|
||||
python_stdlib_dir="$(find "$APPDIR/usr/lib" -maxdepth 1 -type d -name 'python3.*' | head -n 1 || true)"
|
||||
pythonpath_entries=""
|
||||
@@ -227,6 +260,9 @@ jobs:
|
||||
export PYTHONPATH="$pythonpath_entries${PYTHONPATH:+:$PYTHONPATH}"
|
||||
fi
|
||||
|
||||
# Register the private font without hiding the host's normal fonts.
|
||||
export ZOITECHAT_EMOJI_FONT="${ZOITECHAT_EMOJI_FONT:-$APPDIR/usr/share/fonts/zoitechat/NotoColorEmoji.ttf}"
|
||||
|
||||
# OpenSSL trust store override
|
||||
export SSL_CERT_FILE="${SSL_CERT_FILE:-$APPDIR/etc/ssl/certs/ca-certificates.crt}"
|
||||
export SSL_CERT_DIR="${SSL_CERT_DIR:-$APPDIR/etc/ssl/certs}"
|
||||
@@ -256,7 +292,6 @@ jobs:
|
||||
EOF
|
||||
chmod +x AppRun
|
||||
|
||||
|
||||
VERSION="$(git describe --tags --always)"
|
||||
|
||||
./linuxdeploy-x86_64.AppImage \
|
||||
|
||||
@@ -2,7 +2,7 @@ name: Flatpak Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
branches: [master, 'release/**']
|
||||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
name: Manjaro Package Build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, main]
|
||||
pull_request:
|
||||
branches: [master, main]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
manjaro-package:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: manjarolinux/base:latest
|
||||
|
||||
steps:
|
||||
- name: Install packaging toolchain
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
pacman -Syu --noconfirm
|
||||
pacman -S --noconfirm --needed \
|
||||
base-devel \
|
||||
git \
|
||||
namcap \
|
||||
meson \
|
||||
ninja \
|
||||
pkgconf \
|
||||
glib2 \
|
||||
glib2-devel \
|
||||
gtk3 \
|
||||
openssl \
|
||||
libcanberra \
|
||||
libayatana-appindicator \
|
||||
iso-codes \
|
||||
lua \
|
||||
perl \
|
||||
python \
|
||||
python-cffi \
|
||||
pciutils
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
|
||||
- name: Build package and generate .SRCINFO (non-root)
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
id -u builder >/dev/null 2>&1 || useradd -m builder
|
||||
chown -R builder:builder "$GITHUB_WORKSPACE"
|
||||
su builder -c "cd '$GITHUB_WORKSPACE/packaging/manjaro' && makepkg --noconfirm --syncdeps --cleanbuild"
|
||||
su builder -c "cd '$GITHUB_WORKSPACE/packaging/manjaro' && makepkg --printsrcinfo > .SRCINFO"
|
||||
|
||||
- name: Lint PKGBUILD and package with namcap
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
cd "$GITHUB_WORKSPACE/packaging/manjaro"
|
||||
namcap PKGBUILD
|
||||
pkg_file="$(find . -maxdepth 1 -type f -name '*.pkg.tar.*' | head -n1)"
|
||||
namcap "$pkg_file"
|
||||
|
||||
- name: Collect artifacts
|
||||
run: |
|
||||
set -euxo pipefail
|
||||
mkdir -p artifacts
|
||||
cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/*.pkg.tar.* artifacts/
|
||||
cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/PKGBUILD artifacts/
|
||||
cp -v "$GITHUB_WORKSPACE"/packaging/manjaro/.SRCINFO artifacts/
|
||||
|
||||
- name: Upload package artifacts
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: zoitechat-manjaro-package
|
||||
path: artifacts/*
|
||||
if-no-files-found: error
|
||||
@@ -4,6 +4,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- 'release/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
@@ -65,8 +66,32 @@ jobs:
|
||||
Download-WithRetry -Url https://github.com/jrsoftware/issrc/releases/download/is-6_7_1/innosetup-6.7.1.exe -OutFile deps\innosetup-unicode.exe
|
||||
& deps\innosetup-unicode.exe /VERYSILENT | Out-Null
|
||||
|
||||
Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.0-pre1/GTK3_Gvsbuild_zoitechat-2.18.0-pre1_${{ matrix.platform }}.7z -OutFile deps\gtk-${{ matrix.arch }}.7z
|
||||
& 7z.exe x deps\gtk-${{ matrix.arch }}.7z -oC:\gtk-build\gtk\x64\release
|
||||
Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.20.0-alpha.1/GTK3_Gvsbuild_zoitechat-2.20.0-alpha.1_x64.zip -OutFile deps\gtk-${{ matrix.arch }}.zip
|
||||
Expand-Archive -LiteralPath deps\gtk-${{ matrix.arch }}.zip -DestinationPath C:\gtk-build\gtk\x64\release -Force
|
||||
|
||||
# The GTK3 archive omits librsvg. Add only its renderer, loader and
|
||||
# license from the companion release, keeping the GTK3 DLLs intact.
|
||||
Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.20.0-alpha.1/GTK4_Gvsbuild_zoitechat-2.20.0-alpha.1_x64.zip -OutFile deps\svg-runtime.zip
|
||||
if ((Get-FileHash deps\svg-runtime.zip -Algorithm SHA256).Hash -ne 'fb657f9ebae3a6807defb15e66091d643a703ee66cb37488e3e11e5646f45adb') {
|
||||
throw 'Unexpected SVG runtime archive checksum'
|
||||
}
|
||||
$svgArchive = [System.IO.Compression.ZipFile]::OpenRead((Resolve-Path deps\svg-runtime.zip))
|
||||
try {
|
||||
foreach ($name in @('bin/rsvg-2-2.dll', 'lib/gdk-pixbuf-2.0/2.10.0/loaders/pixbufloader_svg.dll', 'share/doc/librsvg/COPYING.LIB')) {
|
||||
$entry = $svgArchive.GetEntry($name)
|
||||
if ($null -eq $entry) { throw "Missing SVG runtime file: $name" }
|
||||
$destination = Join-Path 'C:\gtk-build\gtk\x64\release' $name
|
||||
New-Item -ItemType Directory -Path (Split-Path $destination) -Force | Out-Null
|
||||
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, $destination, $true)
|
||||
}
|
||||
}
|
||||
finally { $svgArchive.Dispose() }
|
||||
# This loads the module now, catching missing DLLs before the build.
|
||||
& C:\gtk-build\gtk\x64\release\bin\gdk-pixbuf-query-loaders.exe --update-cache
|
||||
if ($LASTEXITCODE -ne 0) { throw 'Could not generate the pixbuf loader cache' }
|
||||
if (-not (Select-String -LiteralPath 'C:\gtk-build\gtk\x64\release\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache' -SimpleMatch '"svg"')) {
|
||||
throw 'SVG loader could not be loaded with the GTK3 runtime'
|
||||
}
|
||||
|
||||
Download-WithRetry -Url https://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-hicolor-icon-theme-0.18-1-any.pkg.tar.zst -OutFile deps\hicolor-icon-theme.pkg.tar.zst
|
||||
python -c "import tarfile,zstandard,pathlib;archive=pathlib.Path(r'deps\\hicolor-icon-theme.pkg.tar.zst');target=pathlib.Path(r'C:\\gtk-build\\gtk\\x64\\release');dctx=zstandard.ZstdDecompressor();f=archive.open('rb');reader=dctx.stream_reader(f);tf=tarfile.open(fileobj=reader,mode='r|');[tf.extract(m,path=target) for m in tf if m.name.startswith('mingw64/share/icons/hicolor/')];tf.close();reader.close();f.close()"
|
||||
@@ -113,6 +138,26 @@ jobs:
|
||||
New-Item -Path $pyDir -Name "${{ matrix.platform }}" -ItemType Junction -Value $pyRoot | Out-Null
|
||||
}
|
||||
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.8.10'
|
||||
architecture: ${{ matrix.arch }}
|
||||
|
||||
- name: Prepare Python 3.8
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install cffi
|
||||
|
||||
$pyRoot = $env:pythonLocation
|
||||
if (-not $pyRoot) { $pyRoot = & python -c "import sys; print(sys.prefix)" }
|
||||
|
||||
foreach ($pyDir in @("C:\gtk-build\python-3.8.10", "C:\gtk-build\python-3.8")) {
|
||||
New-Item -Path $pyDir -ItemType Directory -Force | Out-Null
|
||||
$target = Join-Path $pyDir "${{ matrix.platform }}"
|
||||
if (Test-Path $target) { Remove-Item $target -Recurse -Force }
|
||||
New-Item -Path $pyDir -Name "${{ matrix.platform }}" -ItemType Junction -Value $pyRoot | Out-Null
|
||||
}
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
@@ -124,14 +169,51 @@ jobs:
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set "PYTHON38_DIR=C:\gtk-build\python-3.8\${{ matrix.platform }}"
|
||||
if not exist "%PYTHON38_DIR%\libs\python38.lib" (
|
||||
echo Missing %PYTHON38_DIR%\libs\python38.lib
|
||||
dir "%PYTHON38_DIR%\libs"
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "%PYTHON38_DIR%\Lib\site-packages\_cffi_backend.cp38*.pyd" (
|
||||
echo Missing %PYTHON38_DIR%\Lib\site-packages\_cffi_backend.cp38*.pyd
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set "LIB=%PYTHON_DIR%\libs;%LIB%"
|
||||
set "INCLUDE=%PYTHON_DIR%\include;%INCLUDE%"
|
||||
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -Command "$archiveLib='C:\gtk-build\gtk\x64\release\lib\libarchive.lib'; if (-not (Test-Path $archiveLib)) { $archiveDll = Get-ChildItem 'C:\gtk-build\gtk\x64\release\bin\libarchive*.dll' | Select-Object -First 1; if ($archiveDll) { Push-Location 'C:\gtk-build\gtk\x64\release\lib'; & 'C:\gtk-build\gendef\gendef.exe' $archiveDll.FullName | Out-Null; $archiveDef = Get-ChildItem 'libarchive*.def' | Select-Object -First 1; if ($archiveDef) { & lib /def:$archiveDef.Name /machine:${{ matrix.platform }} /out:libarchive.lib | Out-Null }; Pop-Location } }"
|
||||
|
||||
msbuild win32\zoitechat.sln /m /verbosity:minimal /p:Configuration=Release /p:Platform=${{ matrix.platform }}
|
||||
if errorlevel 1 exit /b 1
|
||||
|
||||
if not exist "..\zoitechat-build\${{ matrix.platform }}\rel\plugins\hcpython38.dll" (
|
||||
echo hcpython38.dll was not built
|
||||
exit /b 1
|
||||
)
|
||||
if not exist "..\zoitechat-build\${{ matrix.platform }}\rel\_cffi_backend.cp38*.pyd" (
|
||||
echo _cffi_backend for Python 3.8 was not staged for the installer
|
||||
exit /b 1
|
||||
)
|
||||
shell: cmd
|
||||
|
||||
- name: Test emoji catalog, font coverage and picker
|
||||
shell: cmd
|
||||
run: |
|
||||
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"
|
||||
set "PATH=%CD%\..\zoitechat-build\x64\rel;%PATH%"
|
||||
set "GDK_PIXBUF_MODULE_FILE=%CD%\..\zoitechat-build\x64\rel\lib\gdk-pixbuf-2.0\2.10.0\loaders.cache"
|
||||
set "ZOITECHAT_EMOJI_FONT=%CD%\..\zoitechat-build\x64\rel\share\fonts\zoitechat\NotoColorEmoji.ttf"
|
||||
fc /b data\fonts\NotoColorEmoji.ttf "%ZOITECHAT_EMOJI_FONT%"
|
||||
if errorlevel 1 exit /b 1
|
||||
for %%T in (data font ui) do (
|
||||
msbuild win32\emoji-tests.vcxproj /m /verbosity:minimal /p:Configuration=Release /p:Platform=x64 /p:EmojiTestKind=%%T
|
||||
if errorlevel 1 exit /b 1
|
||||
..\zoitechat-build\x64\tests\emoji-%%T-tests.exe --tap
|
||||
if errorlevel 1 exit /b 1
|
||||
)
|
||||
|
||||
- name: Preparing Artifacts
|
||||
run: |
|
||||
move ..\zoitechat-build\${{ matrix.platform }}\ZoiteChat-*.exe .\
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
version: 2
|
||||
sphinx:
|
||||
configuration: 'docs/conf.py'
|
||||
build:
|
||||
os: 'ubuntu-22.04'
|
||||
tools:
|
||||
python: '3.11'
|
||||
@@ -1,12 +1,12 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
<https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
@@ -225,7 +225,7 @@ impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -303,17 +303,15 @@ the "copyright" line and a pointer to where the full notice is found.
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
@@ -330,11 +328,34 @@ necessary. Here is a sample; alter the names:
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
<signature of Moe Ghoul>, 1 April 1989
|
||||
Moe Ghoul, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
|
||||
|
||||
|
||||
======================================================================
|
||||
ADDITIONAL LICENSE NOTICE
|
||||
======================================================================
|
||||
|
||||
ZoiteChat source code:
|
||||
GPL version 2
|
||||
See Above.
|
||||
|
||||
Unicode Emoji and CLDR data:
|
||||
Unicode License v3
|
||||
data/emoji/LICENSE-UNICODE.txt
|
||||
|
||||
gemoji shortcode data:
|
||||
MIT License
|
||||
Copyright (c) 2019 GitHub, Inc.
|
||||
data/emoji/LICENSE-GEMOJI.txt
|
||||
|
||||
Noto Color Emoji:
|
||||
SIL Open Font License 1.1
|
||||
data/fonts/OFL.txt
|
||||
|
||||
@@ -1,7 +1,71 @@
|
||||
ZoiteChat ChangeLog
|
||||
=================
|
||||
|
||||
2.19.0 (2026-07-28)
|
||||
-------------------
|
||||
|
||||
- Added Python 3.8 compatibility for older Windows releases.
|
||||
- Added on-demand SASL password prompts, including renewed prompts after reconnecting.
|
||||
- Corrected NickServ authentication to use the decrypted password for the active network.
|
||||
- Made system theme matching the default and polished GTK3 theme integration.
|
||||
- Applied more settings changes immediately, reducing the need to restart ZoiteChat.
|
||||
- Added descriptive tooltips to the color picker choices and refined default text-event colors.
|
||||
- Stabilized channel tree font handling across palette and theme updates.
|
||||
- Corrected the chat scrollbar increment used by its arrow buttons.
|
||||
- Improved Windows URL launching through the native shell.
|
||||
- Restored expected minimize behavior when clicking ZoiteChat on the Windows taskbar.
|
||||
|
||||
2.18.3 (2026-06-29)
|
||||
-------------------
|
||||
|
||||
- Added IRCv3 support for message tags, echo-message, typing notifications, and replies.
|
||||
- Restored the accept-invalid-cert TLS bypass behavior.
|
||||
- Replaced legacy IPv4 APIs and added support for OpenSSL 4 APIs.
|
||||
- Snapshot Python hooks during plugin unload for safer plugin shutdown.
|
||||
- Fixed Windows GtkStatusIcon tray menu popup behavior.
|
||||
- Fixed self-echoed private messages routing to the target tab.
|
||||
- Fixed the lag ping timeout window.
|
||||
|
||||
2.18.2 (2026-06-20)
|
||||
-------------------
|
||||
|
||||
- Improved security and connection handling with stronger TLS defaults,
|
||||
safer certificate/hostname validation, FiSHLiM OpenSSL fixes, keyring support,
|
||||
and getaddrinfo-based DCC lookups.
|
||||
- Expanded FiSHLiM usability with a GTK key manager, context-menu access, and clearer
|
||||
channel/private-message key handling.
|
||||
- Improved keyboard and navigation behavior with customizable keybinds, reset support,
|
||||
channel-name switching, /server -noproxy, and configurable stale-link ping checks.
|
||||
- Refined the GTK interface with native file chooser dialogs, topic layout preferences,
|
||||
timestamp/date hover tooltips, better restore-down relayout, text scroll speed controls,
|
||||
and aligned network meters.
|
||||
- Added privacy and display options, including hiding join/part hostmasks and improved
|
||||
topic/multiline mode layout controls.
|
||||
- Fixed several platform/UI edge cases, including tray restore from iconified state, DBus unload
|
||||
handling, GTK3 theme refresh/saving, and tab switcher compatibility.
|
||||
|
||||
2.18.1 (2026-05-21)
|
||||
-------------------
|
||||
|
||||
- Migrated D-Bus handling to GDBus.
|
||||
- Enabled mouse wheel channel switching by default and consumed handled tab wheel events.
|
||||
- Switched main panes to native GTK scrollbars.
|
||||
- Tightened userlist button and meter layout.
|
||||
- Made the native Windows file chooser modal.
|
||||
- Set the Windows AppUserModelID before GTK startup.
|
||||
- Updated Windows CI to use the new GTK3 bundle zip.
|
||||
- Updated Windows installer architecture checks to use x64-compatible detection.
|
||||
- Bumped the Flatpak Perl runtime to 5.42.2.
|
||||
- Fixed palette color reads to preserve base GTK state.
|
||||
- Fixed auto-replace whole-word matching.
|
||||
- Fixed checksum file stream cleanup.
|
||||
- Fixed byte handling in the Python console.
|
||||
- Guarded GTK drag-and-drop handlers against null windows.
|
||||
- Fixed size_t and integer handling issues.
|
||||
- Removed the Winamp plugin.
|
||||
|
||||
2.18.0 (2026-04-20)
|
||||
-------------------
|
||||
|
||||
- Added optional close buttons on tabs.
|
||||
- Added Ctrl+W to close tabs and Ctrl+Shift+T to reopen recently closed tabs.
|
||||
@@ -19,6 +83,7 @@ ZoiteChat ChangeLog
|
||||
- Improved AppStream metainfo validation.
|
||||
|
||||
2.18.0~pre6 (2026-03-30)
|
||||
------------------------
|
||||
|
||||
- Applied app theme CSS to the menubar consistently across the app.
|
||||
- Restored horizontal separator lines in menus.
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
UNICODE LICENSE V3
|
||||
|
||||
COPYRIGHT AND PERMISSION NOTICE
|
||||
|
||||
Copyright © 1991-2026 Unicode, Inc.
|
||||
|
||||
NOTICE TO USER: Carefully read the following legal agreement. BY
|
||||
DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING DATA FILES, AND/OR
|
||||
SOFTWARE, YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
|
||||
TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT
|
||||
DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of data files and any associated documentation (the "Data Files") or
|
||||
software and any associated documentation (the "Software") to deal in the
|
||||
Data Files or Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, and/or sell
|
||||
copies of the Data Files or Software, and to permit persons to whom the
|
||||
Data Files or Software are furnished to do so, provided that either (a)
|
||||
this copyright and permission notice appear with all copies of the Data
|
||||
Files or Software, or (b) this copyright and permission notice appear in
|
||||
associated Documentation.
|
||||
|
||||
THE DATA FILES AND SOFTWARE ARE 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 OF
|
||||
THIRD PARTY RIGHTS.
|
||||
|
||||
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE
|
||||
BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES,
|
||||
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA
|
||||
FILES OR SOFTWARE.
|
||||
|
||||
Except as contained in this notice, the name of a copyright holder shall
|
||||
not be used in advertising or otherwise to promote the sale, use or other
|
||||
dealings in these Data Files or Software without prior written
|
||||
authorization of the copyright holder.
|
||||
@@ -0,0 +1,30 @@
|
||||
# Bundled emoji data
|
||||
|
||||
These are pinned copies of the upstream data files that
|
||||
`tools/gen-emoji-data.py` compiles into ZoiteChat's emoji picker catalog
|
||||
at build time. Bundling them means every ZoiteChat package exposes the
|
||||
same emoji, names, categories and search keywords, independent of the
|
||||
GTK runtime version or the emoji data a distribution installs under
|
||||
`/usr/share/gtk-3.0/emoji`.
|
||||
|
||||
Nothing here affects what is sent over IRC: the picker inserts plain
|
||||
Unicode sequences. Official builds register the bundled Noto Color Emoji
|
||||
font privately for consistent rendering, while preserving platform font
|
||||
fallback if registration is unavailable.
|
||||
|
||||
| File | Source | Version |
|
||||
| ---- | ------ | ------- |
|
||||
| `emoji-test.txt` | [Unicode emoji data](https://unicode.org/Public/emoji/17.0/emoji-test.txt) (mirrored at [unicode-org/unicodetools](https://github.com/unicode-org/unicodetools/blob/main/unicodetools/data/emoji/17.0/emoji-test.txt)) | Emoji 17.0 |
|
||||
| `cldr-annotations-en.xml` | [unicode-org/cldr](https://github.com/unicode-org/cldr/blob/release-48/common/annotations/en.xml) `common/annotations/en.xml` | CLDR release 48 |
|
||||
| `cldr-annotations-derived-en.xml` | [unicode-org/cldr](https://github.com/unicode-org/cldr/blob/release-48/common/annotationsDerived/en.xml) `common/annotationsDerived/en.xml` | CLDR release 48 |
|
||||
| `gemoji.json` | [github/gemoji](https://github.com/github/gemoji/blob/v4.1.0/db/emoji.json) `db/emoji.json` | v4.1.0 |
|
||||
|
||||
The pinned versions are recorded in `VERSIONS`.
|
||||
|
||||
## Licenses
|
||||
|
||||
- `emoji-test.txt`, `cldr-annotations-en.xml`,
|
||||
`cldr-annotations-derived-en.xml`: © Unicode, Inc., distributed under
|
||||
the [Unicode License v3](https://www.unicode.org/license.txt).
|
||||
- `gemoji.json`: from the gemoji project, MIT licensed,
|
||||
© GitHub, Inc.
|
||||
@@ -0,0 +1,6 @@
|
||||
# Pinned versions of the emoji source data in this directory.
|
||||
# Keep in sync with the files themselves; tools/gen-emoji-data.py
|
||||
# verifies unicode-emoji against the emoji-test.txt header.
|
||||
unicode-emoji=17.0
|
||||
cldr=48
|
||||
gemoji=4.1.0
|
||||
@@ -0,0 +1,91 @@
|
||||
Copyright 2013 Google LLC
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) shall not be
|
||||
used to promote, endorse or advertise any Modified Version, except to
|
||||
acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s)
|
||||
or with their explicit written permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
@@ -0,0 +1,43 @@
|
||||
# Bundled emoji font
|
||||
|
||||
`NotoColorEmoji.ttf` reports Noto Color Emoji version 2.051 and covers
|
||||
Unicode Emoji 17.0. It is vendored from Debian's
|
||||
`fonts-noto-color-emoji` 2.051 package, built from the corresponding
|
||||
Google Noto Emoji release.
|
||||
|
||||
Every GTK build installs this exact file: Windows (installer and portable
|
||||
build files), AppImage, Flatpak and native Meson/RPM builds. It is loaded
|
||||
into a private Pango/FreeType font map as `ZoiteChat Emoji`; an older system
|
||||
Noto font cannot replace it. No font is installed globally on Windows.
|
||||
|
||||
Chat windows and the emoji picker share this map. Fontconfig still loads
|
||||
system fonts and configuration for ordinary text, and the configured text
|
||||
font, size and style remain in effect. In particular, plain digits, `#`
|
||||
and `*` are not assigned emoji metrics.
|
||||
|
||||
Windows uses the same FreeType backend rather than GDI registration or an
|
||||
OS-version-specific picker. The dependency bundle already ships FreeType,
|
||||
Fontconfig and PangoFT2. This rendering path does not require Windows' native
|
||||
color-font support. Actual Windows 7 execution still needs testing on that OS.
|
||||
|
||||
Meson requires PangoFT2 >= 1.44 and Fontconfig >= 2.13. Normal installations
|
||||
load `share/fonts/zoitechat/NotoColorEmoji.ttf` beneath the configured data
|
||||
directory; Windows resolves it relative to the executable. AppImage sets
|
||||
`ZOITECHAT_EMOJI_FONT` to its own copy. For an uninstalled development build:
|
||||
|
||||
```sh
|
||||
ZOITECHAT_EMOJI_FONT="$PWD/data/fonts/NotoColorEmoji.ttf" build/src/fe-gtk/zoitechat
|
||||
```
|
||||
|
||||
A missing/unloadable file logs a warning and retains system-font fallback.
|
||||
CI verifies the installed copy and tests catalog/font coverage; AppImage and
|
||||
Windows also run the interactive picker regression tests. Native themes,
|
||||
DPI and different Pango/Cairo versions can still affect pixel-level output.
|
||||
|
||||
Upstream release: https://github.com/googlefonts/noto-emoji/releases/tag/v2.051
|
||||
|
||||
Vendored file SHA-256:
|
||||
`dac5c27651082d6c53dab5081f50d2022ddf6877d730fa919cf6a4fc2af22de0`
|
||||
|
||||
The font is distributed under the SIL Open Font License 1.1. See
|
||||
`OFL.txt`.
|
||||
@@ -0,0 +1,13 @@
|
||||
emoji_font_dir = join_paths(get_option('datadir'), 'fonts', 'zoitechat')
|
||||
emoji_font_doc_dir = join_paths(get_option('datadir'), 'doc', 'zoitechat', 'fonts')
|
||||
|
||||
install_data(
|
||||
'NotoColorEmoji.ttf',
|
||||
install_dir: emoji_font_dir,
|
||||
)
|
||||
|
||||
install_data(
|
||||
'OFL.txt',
|
||||
'README.md',
|
||||
install_dir: emoji_font_doc_dir,
|
||||
)
|
||||
@@ -3,6 +3,7 @@ if get_option('plugin')
|
||||
endif
|
||||
|
||||
if get_option('gtk-frontend')
|
||||
subdir('fonts')
|
||||
subdir('icons')
|
||||
subdir('misc')
|
||||
subdir('man')
|
||||
|
||||
@@ -2,6 +2,7 @@ appdir = join_paths(get_option('datadir'), 'applications')
|
||||
metainfodir = join_paths(get_option('datadir'), 'metainfo')
|
||||
mimedir = join_paths(get_option('datadir'), 'mime', 'packages')
|
||||
desktop_utils = find_program('desktop-file-validate', required: false)
|
||||
appstreamcli = find_program('appstreamcli', required: false)
|
||||
|
||||
if get_option('gtk-frontend')
|
||||
if get_option('install-appdata')
|
||||
@@ -13,7 +14,6 @@ if get_option('gtk-frontend')
|
||||
install_dir: metainfodir
|
||||
)
|
||||
|
||||
appstreamcli = find_program('appstreamcli', required: false)
|
||||
if appstreamcli.found()
|
||||
test('Validate net.zoite.Zoitechat.appdata.xml', appstreamcli,
|
||||
args: ['validate', zoitechat_appdata]
|
||||
|
||||
@@ -29,6 +29,96 @@
|
||||
<id>zoitechat.desktop</id>
|
||||
</provides>
|
||||
<releases>
|
||||
<release date="2026-09-15" version="2.19.1">
|
||||
<description>
|
||||
<ul>
|
||||
<li>Fixed /msg messages showing twice on servers using IRCv3 <code>echo-message</code>.</li>
|
||||
<li>Fixed escaping a leading command slash so <code>//text</code> sends <code>/text</code> as normal chat.</li>
|
||||
<li>Fixed automatic away clearing when sending messages on servers using <code>echo-message</code>.</li>
|
||||
<li>Fixed other users' away status not updating until rejoining a channel when <code>away-notify</code> updates are missed.</li>
|
||||
<li>Fixed private messages and <code>/me</code> actions being routed to the wrong window when using WeeChat's IRC relay, while preserving channel ACTION routing.</li>
|
||||
<li>Fixed a Flatpak startup error caused by the D-Bus service still using the old HexChat app ID.</li>
|
||||
<li>Fixed optional Windows 10 theme downloads in the Windows installer.</li>
|
||||
<li>Fixed the GTK warning when switching from channel tabs to the channel tree.</li>
|
||||
<li>Fixed GTK3 theme archive root detection so themes with an <code>index.theme</code> file are preferred correctly.</li>
|
||||
<li>Fixed source-build configuration when plugin AppStream metadata installation is disabled, and corrected the minimum Meson version to 0.59.</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release date="2026-07-28" version="2.19.0">
|
||||
<description>
|
||||
<ul>
|
||||
<li>Added Python 3.8 compatibility for older Windows releases.</li>
|
||||
<li>Added on-demand SASL password prompts, including renewed prompts after reconnecting.</li>
|
||||
<li>Corrected NickServ authentication to use the decrypted password for the active network.</li>
|
||||
<li>Made system theme matching the default and polished GTK3 theme integration.</li>
|
||||
<li>Applied more settings changes immediately, reducing the need to restart ZoiteChat.</li>
|
||||
<li>Added descriptive tooltips to the color picker choices and refined default text-event colors.</li>
|
||||
<li>Stabilized channel tree font handling across palette and theme updates.</li>
|
||||
<li>Corrected the chat scrollbar increment used by its arrow buttons.</li>
|
||||
<li>Improved Windows URL launching through the native shell.</li>
|
||||
<li>Restored expected minimize behavior when clicking ZoiteChat on the Windows taskbar.</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release date="2026-06-29" version="2.18.3">
|
||||
<description>
|
||||
<ul>
|
||||
<li>Added IRCv3 support for message tags, echo-message, typing notifications, and replies.</li>
|
||||
<li>Restored the accept-invalid-cert TLS bypass behavior.</li>
|
||||
<li>Replaced legacy IPv4 APIs and added support for OpenSSL 4 APIs.</li>
|
||||
<li>Snapshot Python hooks during plugin unload for safer plugin shutdown.</li>
|
||||
<li>Fixed Windows GtkStatusIcon tray menu popup behavior.</li>
|
||||
<li>Fixed self-echoed private messages routing to the target tab.</li>
|
||||
<li>Fixed the lag ping timeout window.</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release date="2026-06-20" version="2.18.2">
|
||||
<description>
|
||||
<p>Security and connections:</p>
|
||||
<ul>
|
||||
<li>Improved TLS, certificate and hostname validation, FiSHLiM OpenSSL handling, keyring support, and DCC host lookups.</li>
|
||||
</ul>
|
||||
<p>FiSHLiM:</p>
|
||||
<ul>
|
||||
<li>Added a GTK key manager with context-menu access and clearer channel/private-message key handling.</li>
|
||||
</ul>
|
||||
<p>Interface and preferences:</p>
|
||||
<ul>
|
||||
<li>Improved keybind customization, reset support, channel-name switching, <code>/server -noproxy</code>, and stale-link ping checks.</li>
|
||||
<li>Refined GTK behavior with native file choosers, topic layout preferences, timestamp/date tooltips, text scroll controls, and aligned network meters.</li>
|
||||
<li>Added privacy and display options for hiding join/part hostmasks and controlling topic/multiline layout.</li>
|
||||
</ul>
|
||||
<p>Fixes:</p>
|
||||
<ul>
|
||||
<li>Fixed tray restore, DBus unload handling, GTK3 theme refresh/saving, topic relayout, and tab switcher compatibility.</li>
|
||||
<li>Updated project documentation.</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release date="2026-05-21" version="2.18.1">
|
||||
<description>
|
||||
<ul>
|
||||
<li>Migrated D-Bus handling to GDBus.</li>
|
||||
<li>Enabled mouse wheel channel switching by default and consumed handled tab wheel events.</li>
|
||||
<li>Switched main panes to native GTK scrollbars.</li>
|
||||
<li>Tightened userlist button and meter layout.</li>
|
||||
<li>Made the native Windows file chooser modal.</li>
|
||||
<li>Set the Windows AppUserModelID before GTK startup.</li>
|
||||
<li>Updated Windows CI to use the new GTK3 bundle zip.</li>
|
||||
<li>Updated Windows installer architecture checks to use x64-compatible detection.</li>
|
||||
<li>Bumped the Flatpak Perl runtime to 5.42.2.</li>
|
||||
<li>Fixed palette color reads to preserve base GTK state.</li>
|
||||
<li>Fixed auto-replace whole-word matching.</li>
|
||||
<li>Fixed checksum file stream cleanup.</li>
|
||||
<li>Fixed byte handling in the Python console.</li>
|
||||
<li>Guarded GTK drag-and-drop handlers against null windows.</li>
|
||||
<li>Fixed size_t and integer handling issues.</li>
|
||||
<li>Removed the Winamp plugin.</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release date="2026-04-20" version="2.18.0">
|
||||
<description>
|
||||
<p>Tabs and navigation:</p>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Source https://coderwall.com/p/wws2uq
|
||||
sudo: false
|
||||
language: python
|
||||
python:
|
||||
- "2.7"
|
||||
cache:
|
||||
pip: true
|
||||
custom_install: true
|
||||
# command to install dependencies
|
||||
install: pip install --upgrade Sphinx
|
||||
# command to run tests
|
||||
script: sphinx-build -n -b html -d _build/doctrees . _build/html
|
||||
# Flags used here, not in `make html`:
|
||||
# -n Run in nit-picky mode. Currently, this generates warnings for all missing references.
|
||||
# -W Turn warnings into errors. This means that the build stops at the first warning and sphinx-build exits with exit status 1.
|
||||
@@ -0,0 +1,94 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
type = PO
|
||||
|
||||
[zoitechat-documentation.addons]
|
||||
file_filter = po/<lang>/LC_MESSAGES/addons.po
|
||||
source_file = _build/locale/addons.pot
|
||||
source_lang = en
|
||||
|
||||
[zoitechat-documentation.appearance]
|
||||
file_filter = po/<lang>/LC_MESSAGES/appearance.po
|
||||
source_file = _build/locale/appearance.pot
|
||||
source_lang = en
|
||||
|
||||
[zoitechat-documentation.building]
|
||||
file_filter = po/<lang>/LC_MESSAGES/building.po
|
||||
source_file = _build/locale/building.pot
|
||||
source_lang = en
|
||||
|
||||
[zoitechat-documentation.changelog]
|
||||
file_filter = po/<lang>/LC_MESSAGES/changelog.po
|
||||
source_file = _build/locale/changelog.pot
|
||||
source_lang = en
|
||||
|
||||
[zoitechat-documentation.commands]
|
||||
file_filter = po/<lang>/LC_MESSAGES/commands.po
|
||||
source_file = _build/locale/commands.pot
|
||||
source_lang = en
|
||||
|
||||
#[zoitechat-documentation.developers]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/developers.po
|
||||
#source_file = _build/locale/developers.pot
|
||||
#source_lang = en
|
||||
|
||||
[zoitechat-documentation.faq]
|
||||
file_filter = po/<lang>/LC_MESSAGES/faq.po
|
||||
source_file = _build/locale/faq.pot
|
||||
source_lang = en
|
||||
|
||||
#[zoitechat-documentation.getting_started]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/getting_started.po
|
||||
#source_file = _build/locale/getting_started.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.helping]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/helping.po
|
||||
#source_file = _build/locale/helping.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.index]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/index.po
|
||||
#source_file = _build/locale/index.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.perl_modules]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/perl_modules.po
|
||||
#source_file = _build/locale/perl_modules.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.plugins]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/plugins.po
|
||||
#source_file = _build/locale/plugins.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.script_dbus]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/script_dbus.po
|
||||
#source_file = _build/locale/script_dbus.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.script_javascript]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/script_javascript.po
|
||||
#source_file = _build/locale/script_javascript.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.script_perl]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/script_perl.po
|
||||
#source_file = _build/locale/script_perl.pot
|
||||
#source_lang = en
|
||||
|
||||
#[zoitechat-documentation.script_python]
|
||||
#file_filter = po/<lang>/LC_MESSAGES/script_python.po
|
||||
#source_file = _build/locale/script_python.pot
|
||||
#source_lang = en
|
||||
|
||||
[zoitechat-documentation.settings]
|
||||
file_filter = po/<lang>/LC_MESSAGES/settings.po
|
||||
source_file = _build/locale/settings.pot
|
||||
source_lang = en
|
||||
|
||||
[zoitechat-documentation.tips]
|
||||
file_filter = po/<lang>/LC_MESSAGES/tips.po
|
||||
source_file = _build/locale/tips.pot
|
||||
source_lang = en
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
-rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ZoiteChat.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ZoiteChat.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/ZoiteChat"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ZoiteChat"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
server:
|
||||
@cd $(BUILDDIR)/html
|
||||
@python -u -m SimpleHTTPServer
|
||||
@@ -0,0 +1,42 @@
|
||||
# ZoiteChat documentation
|
||||
|
||||
## Getting started
|
||||
|
||||
* Install [Python 3](https://www.python.org/)
|
||||
* Install pip for Python 3
|
||||
* Install Sphinx: `python -m pip install sphinx`
|
||||
* On Windows: ensure your Python 3 installation is on `PATH`
|
||||
* Run `make html` to build the HTML files
|
||||
* Run the Python webserver to test your changes: `make server`
|
||||
(http://localhost:8000/)
|
||||
|
||||
|
||||
## Conventions
|
||||
|
||||
* 4 Spaces are used for indentation.
|
||||
* Ordered or unordered lists use visual indentation, where any non-list
|
||||
subelement would use an indentation of a multiple of 4 again.
|
||||
|
||||
Example:
|
||||
|
||||
```rest
|
||||
- a list item
|
||||
- a list item
|
||||
with a visually indented continuation
|
||||
- a list item with a sub-list
|
||||
|
||||
- that is also visually indented
|
||||
- a list item with a code block
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
that is not visually indented
|
||||
```
|
||||
|
||||
## Read the Docs theme skin
|
||||
|
||||
The HTML output keeps the existing `basicstrap` Sphinx theme, then applies the
|
||||
ZoiteChat main-site skin from `_static/css/zoitechat-docs.css`.
|
||||
|
||||
Brand navigation links are set in `conf.py` through `html_context`, and the
|
||||
header logo uses `_static/zoitechat-logo.svg`.
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,362 @@
|
||||
{#
|
||||
basicstrap/layout.html
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Master layout template for Sphinx themes. on Twitter Bootstrap
|
||||
|
||||
:copyright: Copyright 2012 by tell-k.
|
||||
:license: MIT Licence, see LICENSE for details.
|
||||
#}
|
||||
{%- block doctype -%}
|
||||
<!DOCTYPE html>
|
||||
{%- endblock %}
|
||||
{%- set reldelim1 = reldelim1 is not defined and ' »' or reldelim1 %}
|
||||
{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
|
||||
{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
|
||||
(sidebars != []) %}
|
||||
{%- set url_root = pathto('', 1) %}
|
||||
{# XXX necessary? #}
|
||||
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
|
||||
{%- if not embedded and docstitle %}
|
||||
{%- set titlesuffix = " — "|safe + docstitle|e %}
|
||||
{%- else %}
|
||||
{%- set titlesuffix = "" %}
|
||||
{%- endif %}
|
||||
|
||||
{%- if theme_bootstrap_version == "3" %}
|
||||
{%- set bs_span_prefix = "col-md-" %}
|
||||
{%- set class_device_xs= "xs" %}
|
||||
{%- set class_device_sm= "sm" %}
|
||||
{%- set class_device_md= "md" %}
|
||||
{%- set class_row = "row" %}
|
||||
{%- else %}
|
||||
{%- set bs_span_prefix = "span" %}
|
||||
{%- set class_device_xs= "phone" %}
|
||||
{%- set class_device_sm= "tablet" %}
|
||||
{%- set class_device_md= "desktop" %}
|
||||
{%- if (not theme_row_fixed|tobool) %}
|
||||
{%- set class_row = "row-fluid" %}
|
||||
{%- else %}
|
||||
{%- set class_row = "row" %}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{%- macro relbar() %}
|
||||
<div id="navbar-related" class=" related navbar {% if (theme_relbar_inverse|tobool) %}navbar-inverse{% else %}navbar-default{% endif %}" role="navigation" aria-label="related navigation">
|
||||
<div class="navbar-inner">
|
||||
<ul class="nav navbar-nav {% if theme_noresponsiverelbar|tobool %}text-center{% endif %}">
|
||||
<li><a href="{{ pathto(master_doc) }}">{{ shorttitle|e }}</a></li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav {% if not theme_noresponsiverelbar|tobool %}pull-right hidden-{{ class_device_xs }} hidden-{{ class_device_sm }}{% else %}text-center{% endif %}">
|
||||
{% if not (theme_nosidebar|tobool) %}
|
||||
{%- for rellink in rellinks|reverse %}
|
||||
<li><a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags|e }}" {{ accesskey(rellink[2]) }}>{{ rellink[3] }}</a></li>
|
||||
{%- endfor %}
|
||||
{%- block rootrellink %}
|
||||
{%- endblock %}
|
||||
{%- for parent in parents %}
|
||||
<li><a href="{{ parent.link|e }}" {% if loop.last %}{{ accesskey("U") }}{% endif %}>{{ parent.title }}</a></li>
|
||||
{%- endfor %}
|
||||
<li><a href="#">top</a></li>
|
||||
{%- block relbaritems %} {% endblock %}
|
||||
{% else %}
|
||||
{%- if prev %}
|
||||
<li><a href="{{ prev.link|e }}"><i class="icon icon-double-angle-left"></i> {{ prev.title }}</a></li>
|
||||
{%- endif %}
|
||||
<li><a class="uplink" href="{{ pathto(master_doc) }}">{{ _('Contents') }}</a></li>
|
||||
{%- if next %}
|
||||
<li><a href="{{ next.link|e }}">{{ next.title }} <i class="icon icon-double-angle-right"></i></a></li>
|
||||
{%- endif %}
|
||||
<li><a href="#">top</a></li>
|
||||
{%- endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro sidebar() %}
|
||||
{%- if render_sidebar %}
|
||||
<div class="{{ bs_span_prefix }}{{ theme_sidebar_span }} hidden-{{ class_device_xs }}" id="sidebar-wrapper">
|
||||
<div class="sidebar hidden-{{ class_device_xs }}" role="navigation" aria-label="main navigation">
|
||||
{%- block sidebarlogo %}
|
||||
{%- if logo %}
|
||||
<p class="logo"><a href="{{ pathto(master_doc) }}">
|
||||
<img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
|
||||
</a></p>
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
|
||||
{%- if sidebars != None %}
|
||||
{#- new style sidebar: explicitly include/exclude templates #}
|
||||
{%- for sidebartemplate in sidebars %}
|
||||
{%- include sidebartemplate %}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
{#- old style sidebars: using blocks -- should be deprecated #}
|
||||
{%- block sidebartoc %}
|
||||
{%- include "localtoc.html" %}
|
||||
{%- endblock %}
|
||||
{%- block sidebarrel %}
|
||||
{%- include "relations.html" %}
|
||||
{%- endblock %}
|
||||
{%- block sidebarsourcelink %}
|
||||
{%- include "sourcelink.html" %}
|
||||
{%- endblock %}
|
||||
{%- if customsidebar %}
|
||||
{%- include customsidebar %}
|
||||
{%- endif %}
|
||||
{%- block sidebarsearch %}
|
||||
{%- include "searchbox.html" %}
|
||||
{%- endblock %}
|
||||
{%- endif %}
|
||||
</div>
|
||||
</div>
|
||||
{%- endif %}
|
||||
{%- endmacro %}
|
||||
|
||||
|
||||
{% set script_files = (['_static/js/jquery.min.js'] if '_static/js/jquery.min.js' not in script_files else []) + script_files + ['_static/js/bootstrap' + theme_bootstrap_version + '.min.js'] %}
|
||||
{%- macro script() %}
|
||||
{%- if '_static/documentation_options.js' not in script_files %}
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '{{ url_root }}',
|
||||
VERSION: '{{ release|e }}',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
|
||||
HAS_SOURCE: {{ has_source|lower }}
|
||||
};
|
||||
</script>
|
||||
{%- endif %}
|
||||
{%- for scriptfile in script_files %}
|
||||
{%- if scriptfile is string -%}
|
||||
<script src="{{ pathto(scriptfile, 1) }}"></script>
|
||||
{%- else -%}
|
||||
{{ js_tag(scriptfile) }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
<script type="text/javascript" src="{{ pathto('_static/js/jquery.cookie.min.js', 1) }}"></script>
|
||||
<script type="text/javascript" src="{{ pathto('_static/js/basicstrap.js', 1) }}"></script>
|
||||
<script type="text/javascript">
|
||||
DOCUMENTATION_OPTIONS.FILE_SUFFIX = DOCUMENTATION_OPTIONS.FILE_SUFFIX || '.html';
|
||||
DOCUMENTATION_OPTIONS.LINK_SUFFIX = DOCUMENTATION_OPTIONS.LINK_SUFFIX || '.html';
|
||||
</script>
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro css() %}
|
||||
{%- if (theme_googlewebfont|tobool) %}
|
||||
<link rel="stylesheet" href="{{ pathto(theme_googlewebfont_url, 1) }}" media="screen and (min-width:481px)" type="text/css" />
|
||||
{%- endif %}
|
||||
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/basicstrap-base.css', 1) }}" type="text/css" />
|
||||
|
||||
{%- if (theme_inner_theme|tobool) %}
|
||||
<link rel="stylesheet" id="current-theme" href="{{ pathto('_static/css/bootstrap' + theme_bootstrap_version + '/' + theme_inner_theme_name + '.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" id="current-adjust-theme" href="{{ pathto('_static/css/adjust_theme/' + theme_inner_theme_name + '.css', 1) }}" type="text/css" />
|
||||
{%- else %}
|
||||
<link rel="stylesheet" id="current-theme" href="{{ pathto('_static/css/bootstrap' + theme_bootstrap_version + '/bootstrap.min.css', 1) }}" type="text/css" />
|
||||
<link rel="stylesheet" id="current-adjust-theme" type="text/css" />
|
||||
{%- endif %}
|
||||
|
||||
{%- if theme_bootstrap_version == "3" and theme_noflatdesign|tobool %}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/bootstrap' + theme_bootstrap_version + '/bootstrap-theme.min.css', 1) }}" type="text/css" />
|
||||
{%- endif %}
|
||||
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/font-awesome.min.css', 1) }}">
|
||||
{% if (theme_nav_fixed_top|tobool) %}
|
||||
<style type="text/css">
|
||||
body {
|
||||
{%- if theme_bootstrap_version == "3" %}
|
||||
padding-top: 60px;
|
||||
padding-bottom: 40px;
|
||||
{%- else %}
|
||||
padding-top: 60px;
|
||||
padding-bottom: 40px;
|
||||
{%- endif %}
|
||||
}
|
||||
</style>
|
||||
{% endif %}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
|
||||
{%- if (not theme_noresponsive|tobool) and theme_bootstrap_version == "2" %}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/bootstrap2/bootstrap-responsive.min.css', 1) }}" type="text/css" />
|
||||
{%- endif %}
|
||||
|
||||
{%- if theme_noresponsive|tobool and theme_bootstrap_version == "3" %}
|
||||
<link rel="stylesheet" href="{{ pathto('_static/css/bootstrap3/bootstrap-non-responsive.css', 1) }}" type="text/css" />
|
||||
{%- endif %}
|
||||
|
||||
{# Keep project CSS last so Bootstrap/basicstrap cannot re-float or resize the docs columns. #}
|
||||
{%- for cssfile in css_files %}
|
||||
{%- if cssfile is string -%}
|
||||
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
|
||||
{%- else -%}
|
||||
{{ css_tag(cssfile) }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- endmacro %}
|
||||
|
||||
<html lang="{{ theme_lang }}">
|
||||
<head>
|
||||
<meta charset="{{ encoding }}" />
|
||||
{{ metatags }}
|
||||
{%- block htmltitle %}
|
||||
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
|
||||
{%- endblock %}
|
||||
|
||||
{%- if theme_noresponsive|tobool and theme_bootstrap_version == "3" %}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{%- endif %}
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
{{ css() }}
|
||||
{%- if not embedded %}
|
||||
{{ script() }}
|
||||
{%- if use_opensearch %}
|
||||
<link rel="search" type="application/opensearchdescription+xml"
|
||||
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
|
||||
href="{{ pathto('_static/opensearch.xml', 1) }}"/>
|
||||
{%- endif %}
|
||||
{%- if favicon %}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- block linktags %}
|
||||
{%- if hasdoc('about') %}
|
||||
<link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('genindex') %}
|
||||
<link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('search') %}
|
||||
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
|
||||
{%- endif %}
|
||||
{%- if hasdoc('copyright') %}
|
||||
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
|
||||
{%- endif %}
|
||||
<link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" />
|
||||
{%- if parents %}
|
||||
<link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}" />
|
||||
{%- endif %}
|
||||
{%- if next %}
|
||||
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
|
||||
{%- endif %}
|
||||
{%- if prev %}
|
||||
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
|
||||
{%- endif %}
|
||||
{%- endblock %}
|
||||
{%- block extrahead %} {% endblock %}
|
||||
</head>
|
||||
<body role="document">
|
||||
|
||||
{%- block header %}
|
||||
<header id="navbar-top" class="site-header" role="banner">
|
||||
<div class="shell nav-shell">
|
||||
<a class="brand" href="https://zoitechat.org/" aria-label="ZoiteChat home">
|
||||
<img class="brand-logo" src="{{ pathto('_static/zoitechat-logo.svg', 1) }}" alt="" width="44" height="48">
|
||||
<span class="brand-text">ZoiteChat</span>
|
||||
</a>
|
||||
<nav class="site-nav" aria-label="Primary">
|
||||
<a href="https://zoitechat.org/">Home</a>
|
||||
<a href="https://zoitechat.org/addons.php">Addons</a>
|
||||
<a href="https://zoitechat.org/download.php">Download</a>
|
||||
<a href="{{ pathto(master_doc) }}">Docs</a>
|
||||
<a href="https://github.com/ZoiteChat/zoitechat" target="_blank" rel="noopener">GitHub</a>
|
||||
<details class="nav-menu">
|
||||
<summary>IRC Support</summary>
|
||||
<div class="nav-menu-panel" aria-label="IRC support channels">
|
||||
<a href="https://zoite.net/webchat/?join=%23zoitechat" target="_blank" rel="noopener">
|
||||
<strong>Zoite IRC</strong>
|
||||
<span>Official network, #zoitechat</span>
|
||||
</a>
|
||||
<a href="https://web.libera.chat/#zoitechat" target="_blank" rel="noopener">
|
||||
<strong>Libera.Chat</strong>
|
||||
<span>Secondary support channel, #zoitechat</span>
|
||||
</a>
|
||||
</div>
|
||||
</details>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
{% endblock %}
|
||||
|
||||
<!-- container -->
|
||||
<div class="{% if (not theme_content_fixed|tobool) %}container-fluid{% else %}container{% endif %} docs-shell">
|
||||
|
||||
<!-- row -->
|
||||
<div class="{{ class_row }} docs-main-row">
|
||||
{%- block content %}
|
||||
|
||||
{%- block sidebar1 %}
|
||||
{% if (not theme_rightsidebar|tobool) %} {{ sidebar() }} {% endif %}
|
||||
{% endblock %}
|
||||
|
||||
<div class="{% if (not theme_nosidebar|tobool) %}{{ bs_span_prefix }}{{ 12 - theme_sidebar_span|int }}{% else %}{{ bs_span_prefix }}12{% endif %}" id="content-wrapper">
|
||||
<div class="document" role="main">
|
||||
{%- block document %}
|
||||
<div class="documentwrapper">
|
||||
{%- if render_sidebar %}
|
||||
<div class="bodywrapper">
|
||||
{%- endif %}
|
||||
<div class="body">
|
||||
{% block body %} {% endblock %}
|
||||
</div>
|
||||
{%- if render_sidebar %}
|
||||
</div>
|
||||
{%- endif %}
|
||||
</div>
|
||||
{%- endblock %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{%- block sidebar2 %}
|
||||
{% if (theme_rightsidebar|tobool) %} {{ sidebar() }} {% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{%- endblock %}{# /content block #}
|
||||
</div><!-- /row -->
|
||||
|
||||
<!-- row -->
|
||||
<div class="{{ class_row }} footer-relbar">
|
||||
{%- block relbar2 %}{{ relbar() }}{% endblock %}
|
||||
</div><!-- /row -->
|
||||
|
||||
<!-- footer -->
|
||||
{%- block footer %}
|
||||
<footer class="site-footer" role="contentinfo">
|
||||
<div class="shell footer-grid">
|
||||
<div>
|
||||
<div class="footer-brand-wrap">
|
||||
<img class="footer-logo" src="{{ pathto('_static/zoitechat-logo.svg', 1) }}" alt="" width="40" height="44">
|
||||
<div class="footer-brand">ZoiteChat</div>
|
||||
</div>
|
||||
<p class="footer-copy">ZoiteChat is a HexChat fork, carrying that client lineage forward with care. Built on the foundation HexChat left behind, and grateful to the project and people that made it possible.</p>
|
||||
</div>
|
||||
<div class="footer-links">
|
||||
<a href="https://zoitechat.org/download.php">Download</a>
|
||||
<a href="https://zoitechat.org/addons.php">Addons</a>
|
||||
<a href="https://zoitechat.org/privacy.php">Privacy Policy</a>
|
||||
<a href="{{ pathto(master_doc) }}">Documentation</a>
|
||||
<a href="https://github.com/ZoiteChat/zoitechat" target="_blank" rel="noopener">Source code</a>
|
||||
<a href="https://zoite.net/webchat/?join=%23zoitechat" target="_blank" rel="noopener">Official IRC support</a>
|
||||
<a href="https://web.libera.chat/#zoitechat" target="_blank" rel="noopener">Libera IRC support</a>
|
||||
</div>
|
||||
<div class="footer-meta">
|
||||
<div>Documentation source: Read the Docs / Sphinx</div>
|
||||
<div>Theme skin: ZoiteChat main site</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{%- endblock %}
|
||||
<!-- /footer -->
|
||||
|
||||
</div>
|
||||
<!-- /container -->
|
||||
|
||||
{%- if theme_theme_preview|tobool %}
|
||||
{%- include "_theme_preview.html" %}
|
||||
{%- endif %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,63 @@
|
||||
{#
|
||||
basicstrap/search.html
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Template for the search page.
|
||||
|
||||
:copyright: Copyright 2012 by tell-k.
|
||||
:license: MIT Licence, see LICENSE for details.
|
||||
#}
|
||||
{% extends "layout.html" %}
|
||||
{% set title = _('Search') %}
|
||||
{% set script_files = script_files + (['_static/language_data.js'] if '_static/language_data.js' not in script_files else []) + ['_static/searchtools.js'] %}
|
||||
{% block extrahead %}
|
||||
<script type="text/javascript">
|
||||
jQuery(function() { Search.loadIndex("{{ pathto('searchindex.js', 1) }}"); });
|
||||
</script>
|
||||
{{ super() }}
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
<h1 id="search-documentation">{{ _('Search') }}</h1>
|
||||
<div id="fallback" class="admonition warning">
|
||||
<script type="text/javascript">$('#fallback').hide();</script>
|
||||
<p>
|
||||
{% trans %}Please activate JavaScript to enable the search
|
||||
functionality.{% endtrans %}
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
{% trans %}From here you can search these documents. Enter your search
|
||||
words into the box below and click "search". Note that the search
|
||||
function will automatically search for all of the words. Pages
|
||||
containing fewer words won't appear in the result list.{% endtrans %}
|
||||
</p>
|
||||
<form class="form-search form-inline" action="" method="get">
|
||||
<div class="input-append input-group">
|
||||
<input type="text" class="search-query form-control" name="q" value="" placeholder="Search...">
|
||||
<span class="input-group-btn">
|
||||
<input type="submit" class="btn" value="{{ _('search') }}" />
|
||||
</span>
|
||||
</div>
|
||||
<span id="search-progress" style="padding-left: 10px"></span>
|
||||
</form>
|
||||
|
||||
<div role="main">
|
||||
{% if search_performed %}
|
||||
<h2>{{ _('Search Results') }}</h2>
|
||||
{% if not search_results %}
|
||||
<p>{{ _('Your search did not match any results.') }}</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div id="search-results">
|
||||
{% if search_results %}
|
||||
<ul>
|
||||
{% for href, caption, context in search_results %}
|
||||
<li><a href="{{ pathto(href) }}">{{ caption }}</a>
|
||||
<div class="context">{{ context|e }}</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,27 @@
|
||||
{#
|
||||
basicstrap/searchbox.html
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Sphinx sidebar template: quick search box.
|
||||
|
||||
:copyright: Copyright 2012 by tell-k.
|
||||
:license: MIT Licence, see LICENSE for details.
|
||||
#}
|
||||
{%- if pagename != "search" %}
|
||||
<div id="searchbox" role="search">
|
||||
<h3>{{ _('Quick search') }}</h3>
|
||||
<form class="search form-inline" action="{{ pathto('search') }}" method="get">
|
||||
<div class="input-append input-group">
|
||||
<input type="text" class="search-query form-control" name="q" placeholder="Search...">
|
||||
<span class="input-group-btn">
|
||||
<input type="submit" class="btn" value="{{ _('Go') }}" />
|
||||
</span>
|
||||
</div>
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
{{ _('Enter search terms or a module, class or function name.') }}
|
||||
</p>
|
||||
</div>
|
||||
{%- endif %}
|
||||
@@ -0,0 +1,38 @@
|
||||
{#
|
||||
basicstrap/searchresults.html
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Template for the body of the search results page.
|
||||
|
||||
:copyright: Copyright 2012 by tell-k.
|
||||
:license: MIT Licence, see LICENSE for details.
|
||||
#}
|
||||
<h1 id="search-documentation">Search</h1>
|
||||
<p>
|
||||
From here you can search these documents. Enter your search
|
||||
words into the box below and click "search".
|
||||
</p>
|
||||
<form class="form-search" action="" method="get">
|
||||
<div class="input-append">
|
||||
<input type="text" class="search-query" name="q">
|
||||
<input type="submit" class="btn" value="{{ _('search') }}" />
|
||||
</div>
|
||||
<span id="search-progress" style="padding-left: 10px"></span>
|
||||
</form>
|
||||
{%- if search_performed %}
|
||||
<h2>Search Results</h2>
|
||||
{%- if not search_results %}
|
||||
<p>Your search did not match any results.</p>
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
<div id="search-results">
|
||||
{%- if search_results %}
|
||||
<ul class="search">
|
||||
{% for href, caption, context in search_results %}
|
||||
<li><a href="{{ docroot }}{{ href }}/?highlight={{ q }}">{{ caption }}</a>
|
||||
<div class="context">{{ context|e }}</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{%- endif %}
|
||||
</div>
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
/* Table
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.docutils {
|
||||
border-color: {{ table_border_color }};
|
||||
}
|
||||
table.docutils th,
|
||||
table.docutils td
|
||||
{
|
||||
border-color: {{ table_border_color }};
|
||||
}
|
||||
table.docutils tbody + tbody {
|
||||
border-color: {{ table_border_color }};
|
||||
}
|
||||
|
||||
/* Table-bordered
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.table-bordered {
|
||||
border-color: {{ table_border_color }};
|
||||
}
|
||||
|
||||
/* -- admonition -- */
|
||||
div.admonition {
|
||||
color: {{ warning_color }};
|
||||
background-color: {{ warning_background_color }};
|
||||
border-color: {{ warning_border_color }};
|
||||
}
|
||||
|
||||
/* -- danger, error -- */
|
||||
div.danger,
|
||||
div.error {
|
||||
color: {{ danger_color }};
|
||||
background-color: {{ danger_background_color }};
|
||||
border-color: {{ danger_border_color }};
|
||||
}
|
||||
|
||||
/* -- warning, caution, attention -- */
|
||||
div.warning,
|
||||
div.caution,
|
||||
div.attention {
|
||||
color: {{ warning_color }};
|
||||
background-color: {{ warning_background_color }};
|
||||
border-color: {{ warning_border_color }};
|
||||
}
|
||||
|
||||
/* -- note, important -- */
|
||||
div.note,
|
||||
div.important {
|
||||
color: {{ note_color }};
|
||||
background-color: {{ note_background_color }};
|
||||
border-color: {{ note_border_color }};
|
||||
}
|
||||
|
||||
/* -- hint, tip -- */
|
||||
div.hint,
|
||||
div.tip {
|
||||
color: {{ hint_color }};
|
||||
background-color: {{ hint_background_color }};
|
||||
border-color: {{ hint_border_color }};
|
||||
}
|
||||
|
||||
div.topic {
|
||||
background-color: {{ table_oddrow_color }};
|
||||
border-color: {{ table_border_color }};
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{% set table_border_color = "#357279" %}
|
||||
|
||||
{% set danger_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set danger_background_color = "#d5b321" %}
|
||||
{% set danger_border_color = "#d5b321" %}
|
||||
|
||||
{% set warning_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set warning_background_color = "#df6e1e" %}
|
||||
{% set warning_border_color = "#df6e1e" %}
|
||||
|
||||
{% set note_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set note_background_color = "#48ca3b" %}
|
||||
{% set note_border_color = "#48ca3b" %}
|
||||
|
||||
{% set hint_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set hint_background_color = "#4d3a7d" %}
|
||||
{% set hint_border_color = "#4d3a7d" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #00747d !important;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #00747d;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #00747d;
|
||||
border-top: 1px solid #00747d;
|
||||
border-bottom: 1px solid #00747d;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: #d92432;
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: #e5c953;
|
||||
color: #ffffff;
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #eeeeee !important;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #eeeeee;
|
||||
border: 1px solid #eeeeee;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #eeeeee;
|
||||
border-top: 1px solid #eeeeee;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: #178acc;
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: #022f5a;
|
||||
color: #ffffff;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#ff0039" %}
|
||||
{% set danger_border_color = "transparent" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#ff7518" %}
|
||||
{% set warning_border_color = "transparent" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#3fb618" %}
|
||||
{% set note_border_color = "#transparent" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#9954bb" %}
|
||||
{% set hint_border_color = "transparent" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #e6e6e6 !important;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #e6e6e6;
|
||||
border: 1px solid #e6e6e6;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #e6e6e6;
|
||||
border-top: 1px solid #e6e6e6;
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: #090909;
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: #0066cc;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
{% if theme_bootstrap_version == "2" %}
|
||||
/* Docutils
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.docutils td.label {
|
||||
min-height: 0px;
|
||||
}
|
||||
{% endif %}
|
||||
@@ -0,0 +1,73 @@
|
||||
{% set table_border_color = "#222222" %}
|
||||
|
||||
{% set danger_color = "#eeeeee" %}
|
||||
{% set danger_background_color = "#cc0000" %}
|
||||
{% set danger_border_color = "transparent" %}
|
||||
|
||||
{% set warning_color = "#eeeeee" %}
|
||||
{% set warning_background_color = "#666666" %}
|
||||
{% set warning_border_color = "transparent" %}
|
||||
|
||||
{% set note_color = "#eeeeee" %}
|
||||
{% set note_background_color = "#5c8a00" %}
|
||||
{% set note_border_color = "#transparent" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#007399" %}
|
||||
{% set hint_border_color = "transparent" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #282828 !important;
|
||||
}
|
||||
|
||||
/* Field-list
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.field-list {
|
||||
background-color: #060606;
|
||||
}
|
||||
|
||||
/* Citation
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.citation{
|
||||
background-color: #060606;
|
||||
}
|
||||
|
||||
/* Footnote
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.footnote {
|
||||
background-color: #060606;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #222222;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #282828;
|
||||
border-top: 1px solid #282828;
|
||||
border-bottom: 1px solid #282828;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{% set table_border_color = "#464545" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#e94b35" %}
|
||||
{% set danger_border_color = "#e94b35" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#f59d00" %}
|
||||
{% set warning_border_color = "#f59d00" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#00bd8b" %}
|
||||
{% set note_border_color = "#00bd8b" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#2c97de" %}
|
||||
{% set hint_border_color = "#2c97de" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #464545 !important;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #464545;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #464545;
|
||||
border-top: 1px solid #464545;
|
||||
border-bottom: 1px solid #464545;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: transparent;
|
||||
color: #00bc8c;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: transparent;
|
||||
color: #375a7f;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{% set table_border_color = "#ecf0f1" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#dd4838" %}
|
||||
{% set danger_border_color = "#dd4838" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#ec9B00" %}
|
||||
{% set warning_border_color = "#ec9B00" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#40bc9c" %}
|
||||
{% set note_border_color = "#40bc9c" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#4b99dc" %}
|
||||
{% set hint_border_color = "#4b99dc" %}
|
||||
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #ecf0f1 !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #ecf0f1;
|
||||
border-top: 1px solid #ecf0f1;
|
||||
border-bottom: 1px solid #ecf0f1;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: transparent;
|
||||
color: #00bc8c;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: transparent;
|
||||
color: #2c3e50;
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#ed6761" %}
|
||||
{% set danger_border_color = "#ed6761" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#f77400" %}
|
||||
{% set warning_border_color = "#f77400" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#11b446" %}
|
||||
{% set note_border_color = "#11b446" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#306598" %}
|
||||
{% set hint_border_color = "#306598" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #eeeeee !important;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #eeeeee;
|
||||
border-color: #eeeeee;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #eeeeee;
|
||||
border-top: 1px solid #eeeeee;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #000000;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: #eeeeee;
|
||||
color: #000000;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: #e74b47;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* Etc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.navbar-inner ul.pull-right li a{
|
||||
font-size: 15px;
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#ff3f2c" %}
|
||||
{% set danger_border_color = "#ff3f2c" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#ff8500" %}
|
||||
{% set warning_border_color = "#ff8500" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#18B81D" %}
|
||||
{% set note_border_color = "#18B81D" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#71CAED" %}
|
||||
{% set hint_border_color = "#71CAED" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #eeeeee !important;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #fafafa;
|
||||
border-color: #eeeeee;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #eeeeee;
|
||||
border-top: 1px solid #eeeeee;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #999999;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: transparent;
|
||||
color: #333333;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #999999;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: transparent;
|
||||
color: #333333;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#d23f3c" %}
|
||||
{% set danger_border_color = "#d23f3c" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#f19842" %}
|
||||
{% set warning_border_color = "#f19842" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#69a858" %}
|
||||
{% set note_border_color = "#69a858" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#8e45ab" %}
|
||||
{% set hint_border_color = "#8e45ab" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#db524b" %}
|
||||
{% set danger_border_color = "#db524b" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#f2ae43" %}
|
||||
{% set warning_border_color = "#f2ae43" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#39af40" %}
|
||||
{% set note_border_color = "#39af40" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#56C0E0" %}
|
||||
{% set hint_border_color = "#56C0E0" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #eeeeee !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #eeeeee;
|
||||
border-top: 1px solid #eeeeee;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #f7f7f7;
|
||||
border-color: #eeeeee;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
margin-left: 7px;
|
||||
margin-right: 7px;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
color: #4582ec;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
border-color: #dddddd;
|
||||
color: #4582ec;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #333333;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
|
||||
/* Etc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.navbar-inner ul.pull-right li a{
|
||||
font-size: 15px;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#c9605a" %}
|
||||
{% set danger_border_color = "#c9605a" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#e48353" %}
|
||||
{% set warning_border_color = "#e48353" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#9fbe5b" %}
|
||||
{% set note_border_color = "#9fbe5b" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#55abda" %}
|
||||
{% set hint_border_color = "#55abda" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
@@ -0,0 +1,60 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#d88400" %}
|
||||
{% set danger_border_color = "#d88400" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#9c43a1" %}
|
||||
{% set warning_border_color = "#9c43a1" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#439500" %}
|
||||
{% set note_border_color = "#439500" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#0099d1" %}
|
||||
{% set hint_border_color = "#0099d1" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #dddddd !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #dddddd;
|
||||
border-top: 1px solid #dddddd;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #f4f4f4;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #333333;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
color: #d9230f;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #fac0ba;
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{% set table_border_color = "#1c1e22" %}
|
||||
|
||||
{% set danger_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set danger_background_color = "#f05e57" %}
|
||||
{% set danger_border_color = "#ef4b60" %}
|
||||
|
||||
{% set warning_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set warning_background_color = "#fa9500" %}
|
||||
{% set warning_border_color = "#eb6500" %}
|
||||
|
||||
{% set note_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set note_background_color = "#468847" %}
|
||||
{% set note_border_color = "#5ec65d" %}
|
||||
|
||||
{% set hint_color = "rgba(255, 255, 255, 0.9)" %}
|
||||
{% set hint_background_color = "#56C0E0" %}
|
||||
{% set hint_border_color = "#31ced9" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #1c1e22 !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #1c1e22;
|
||||
border-top: 1px solid #1c1e22;
|
||||
border-bottom: 1px solid #1c1e22;
|
||||
}
|
||||
|
||||
|
||||
/* Field-list
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.field-list {
|
||||
background-color: #272B30;
|
||||
}
|
||||
|
||||
/* Citation
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.citation{
|
||||
background-color: #272B30;
|
||||
}
|
||||
|
||||
/* Footnote
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.footnote {
|
||||
background-color: #272B30;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #1c1e22;
|
||||
border-color: #0b0b0d;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #c8c8c8;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
background-color: #272b2e;
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #c8c8c8;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
background-color: #272b2e;
|
||||
color: #ffffff;
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#cd0200" %}
|
||||
{% set danger_border_color = "#be001e" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#d47500" %}
|
||||
{% set warning_border_color = "#c54c00" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#3cb521" %}
|
||||
{% set note_border_color = "#4b9f1d" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#3399f3" %}
|
||||
{% set hint_border_color = "#11adf1" %}
|
||||
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #eeeeee !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #eeeeee;
|
||||
border-top: 1px solid #eeeeee;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #eeeeee;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #777777;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
color: #3399f3;
|
||||
-webkit-transition: color ease-in-out .2s;
|
||||
transition: color ease-in-out .2s;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #c8c8c8;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
-webkit-transition: color ease-in-out .2s;
|
||||
transition: color ease-in-out .2s;
|
||||
}
|
||||
|
||||
/* Etc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.navbar-inner ul.pull-right li a{
|
||||
font-size: 12px;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{% set table_border_color = "#999999" %}
|
||||
{% set table_oddrow_color = "#eaeaea;" %}
|
||||
{% set table_hover_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#d14432" %}
|
||||
{% set danger_border_color = "#c72d35" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#f26522" %}
|
||||
{% set warning_border_color = "#f13614" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#24c00b" %}
|
||||
{% set note_border_color = "#3aa80a" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#185af9" %}
|
||||
{% set hint_border_color = "#066ee7" %}
|
||||
|
||||
div.navbar-inner ul.pull-right li a{
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
a.brand {
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
table.docutils th.head {
|
||||
background-color: #015b4e;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
@@ -0,0 +1,123 @@
|
||||
{% set table_border_color = "#4d5d6d" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#db524b" %}
|
||||
{% set danger_border_color = "#db524b" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#f2ae43" %}
|
||||
{% set warning_border_color = "#f2ae43" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#58b957" %}
|
||||
{% set note_border_color = "#58b957" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#56c0e0" %}
|
||||
{% set hint_border_color = "#56c0e0" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #4d5d6d !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #4d5d6d;
|
||||
border-top: 1px solid #4d5d6d;
|
||||
border-bottom: 1px solid #4d5d6d;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #4d5d6d;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
font-size: 12px;
|
||||
color: #ebebeb;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
color: #ebebeb;
|
||||
background-color: #485563;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ebebeb;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #ebebeb;
|
||||
background-color: #c85e17;
|
||||
}
|
||||
|
||||
/* Code
|
||||
---------------------------------------------------------*/
|
||||
|
||||
code, pre {
|
||||
padding:0 3px 2px;
|
||||
font-family:Menlo,Monaco,Consolas,"Courier New",monospace;
|
||||
font-size:12px;
|
||||
color:#3a3f44;
|
||||
-webkit-border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
border-radius:3px;
|
||||
}
|
||||
code{
|
||||
padding:2px 4px;
|
||||
color:#d14;
|
||||
background-color:#f7f7f9;
|
||||
border:1px solid #e1e1e8;
|
||||
white-space:nowrap;
|
||||
}
|
||||
pre{
|
||||
display:block;
|
||||
padding:10px;
|
||||
margin:0 0 10.5px;
|
||||
font-size:13px;
|
||||
line-height:21px;
|
||||
word-break:break-all;
|
||||
word-wrap:break-word;
|
||||
white-space:pre;
|
||||
white-space:pre-wrap;
|
||||
background-color:#f5f5f5;
|
||||
border:1px solid #ccc;
|
||||
border:1px solid rgba(0, 0, 0, 0.15);
|
||||
-webkit-border-radius:4px;
|
||||
-moz-border-radius:4px;
|
||||
border-radius:4px;
|
||||
}
|
||||
pre.prettyprint{
|
||||
margin-bottom:21px;
|
||||
}
|
||||
pre code{
|
||||
padding:0;
|
||||
color:inherit;
|
||||
white-space:pre;
|
||||
white-space:pre-wrap;
|
||||
background-color:transparent;
|
||||
border:0;
|
||||
}
|
||||
|
||||
div.navbar-inner ul.pull-right li a{
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
|
||||
@media (max-width: 480px) {
|
||||
a.brand {
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#e13622" %}
|
||||
{% set danger_border_color = "#e13622" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#f0b82d" %}
|
||||
{% set warning_border_color = "#f0b82d" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#30b644" %}
|
||||
{% set note_border_color = "#30b644" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#782753" %}
|
||||
{% set hint_border_color = "#782753" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #eeeeee !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #eeeeee;
|
||||
border-top: 1px solid #eeeeee;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #eeeeee;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
background-color: #97310e;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
background-color: #3e152b;
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{% set table_border_color = "#dddddd" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#f33f13" %}
|
||||
{% set danger_border_color = "#ed2c00" %}
|
||||
|
||||
{% set warning_color = "#ffffff" %}
|
||||
{% set warning_background_color = "#eb9100" %}
|
||||
{% set warning_border_color = "#d28100" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#3ead68" %}
|
||||
{% set note_border_color = "#379b5d" %}
|
||||
|
||||
{% set hint_color = "#ffffff" %}
|
||||
{% set hint_background_color = "#56c0e0" %}
|
||||
{% set hint_border_color = "#3ab5da" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
/* Heading
|
||||
---------------------------------------------------------*/
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
border-bottom: 1px solid #dddddd !important;
|
||||
}
|
||||
|
||||
/* Genindex
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.genindex-jumpbox {
|
||||
color: #dddddd;
|
||||
border-top: 1px solid #dddddd;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
/* Contents
|
||||
---------------------------------------------------------*/
|
||||
|
||||
div.contents {
|
||||
background-color: #fafafa;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* Smartphone Local Toc
|
||||
---------------------------------------------------------*/
|
||||
|
||||
ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
background-color: #272727;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #ffffff;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
background-color: #006687;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{% set table_border_color = "#228000" %}
|
||||
|
||||
{% set danger_color = "#ffffff" %}
|
||||
{% set danger_background_color = "#f40000" %}
|
||||
{% set danger_border_color = "#a20000" %}
|
||||
|
||||
{% set warning_color = "#000000" %}
|
||||
{% set warning_background_color = "#fcfe00" %}
|
||||
{% set warning_border_color = "#f40000" %}
|
||||
|
||||
{% set note_color = "#ffffff" %}
|
||||
{% set note_background_color = "#228000" %}
|
||||
{% set note_border_color = "#2faa00" %}
|
||||
|
||||
{% set hint_color = "#000000" %}
|
||||
{% set hint_background_color = "#57ffff" %}
|
||||
{% set hint_border_color = "#a8a900" %}
|
||||
|
||||
{% include "static/css/adjust_theme/_common_adjust.css" %}
|
||||
|
||||
table.docutils {
|
||||
-webkit-border-radius: 0px;
|
||||
-moz-border-radius: 0px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
div.admonition {
|
||||
-webkit-border-radius: 0px;
|
||||
-moz-border-radius: 0px;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
div.topic {
|
||||
background: url("../../img/stars.gif") !important;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,350 @@
|
||||
@import url("../basic.css");
|
||||
|
||||
|
||||
/* Table
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table {
|
||||
border: 0;
|
||||
max-width: 100%;
|
||||
background-color: transparent;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0 !important;
|
||||
}
|
||||
|
||||
table.docutils {
|
||||
width: 100%;
|
||||
margin-bottom: 20px;
|
||||
border: 1px solid #dddddd;
|
||||
border-collapse: separate;
|
||||
*border-collapse: collapse;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
table.docutils th {
|
||||
font-weight: bold;
|
||||
}
|
||||
table.docutils th,
|
||||
table.docutils td
|
||||
{
|
||||
padding: 8px;
|
||||
line-height: 20px;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
border: none;
|
||||
border-spacing: 0 !important;
|
||||
border-collapse: none;
|
||||
border-top: 1px solid #dddddd;
|
||||
}
|
||||
table.docutils caption + thead tr:first-child th,
|
||||
table.docutils caption + tbody tr:first-child th,
|
||||
table.docutils caption + tbody tr:first-child td,
|
||||
table.docutils colgroup + thead tr:first-child th,
|
||||
table.docutils colgroup + tbody tr:first-child th,
|
||||
table.docutils colgroup + tbody tr:first-child td,
|
||||
table.docutils thead:first-child tr:first-child th,
|
||||
table.docutils tbody:first-child tr:first-child th,
|
||||
table.docutils tbody:first-child tr:first-child td {
|
||||
border-top: 0;
|
||||
}
|
||||
table.docutils thead th {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
table.docutils tbody + tbody {
|
||||
border-top: 2px solid #dddddd;
|
||||
}
|
||||
|
||||
/* Table-bordered
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.table-bordered {
|
||||
border-top: 1px solid #dddddd;
|
||||
border-left: 1px solid #dddddd;
|
||||
border-right: none;
|
||||
}
|
||||
table.table-bordered > thead > tr > th,
|
||||
table.table-bordered > tbody > tr > th,
|
||||
table.table-bordered > tfoot > tr > th,
|
||||
table.table-bordered > thead > tr > td,
|
||||
table.table-bordered > tbody > tr > td,
|
||||
table.table-bordered > tfoot > tr > td {
|
||||
border-left: none;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
/* Highlight Table
|
||||
---------------------------------------------------------*/
|
||||
|
||||
.highlighttable .code pre {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.highlighttable .linenos pre {
|
||||
word-break: normal;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
div.highlight {
|
||||
background: none;
|
||||
}
|
||||
|
||||
/* Field-list
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.field-list {
|
||||
width: auto;
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Citation
|
||||
---------------------------------------------------------*/
|
||||
|
||||
table.citation{
|
||||
width: auto;
|
||||
margin-bottom: 0;
|
||||
border: none;
|
||||
}
|
||||
table.citation td.label {
|
||||
font-size: 100%;
|
||||
display: block;
|
||||
line-height: normal;
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
/* Footnote
|
||||
---------------------------------------------------------*/
|
||||
|
||||
a.footnote-reference {
|
||||
vertical-align: super;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
table.footnote td.label {
|
||||
font-size: 100%;
|
||||
display: block;
|
||||
line-height: normal;
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
table.footnote {
|
||||
width: auto;
|
||||
margin-bottom: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
/* Footer
|
||||
---------------------------------------------------------*/
|
||||
|
||||
footer {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
padding: 0px;
|
||||
padding-left: auto;
|
||||
padding-right: auto;
|
||||
}
|
||||
|
||||
/* Sidebar
|
||||
------------------------------------------------------- */
|
||||
div.sidebar {
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: none;
|
||||
width: 100%;
|
||||
float: none;
|
||||
}
|
||||
|
||||
div.sidebar ul:second-child {
|
||||
color: red;
|
||||
background-color: #000 !important;
|
||||
list-style: none !important;
|
||||
}
|
||||
|
||||
/* Definition lists
|
||||
----------------------------------------------------------- */
|
||||
|
||||
dl dd {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
/* Admonition styles
|
||||
----------------------------------------------------------- */
|
||||
div.admonition {
|
||||
padding: 8px 35px 8px 0px;
|
||||
margin-bottom: 20px;
|
||||
color: #c09853;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
|
||||
background-color: #fcf8e3;
|
||||
border: 1px solid #fbeed5;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
div.admonition p {
|
||||
margin: 0.5em 1em 0.5em 1em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.admonition pre {
|
||||
margin: 0.4em 1em 0.4em 1em;
|
||||
}
|
||||
|
||||
div.admonition p.admonition-title {
|
||||
margin: 0;
|
||||
padding: 0.1em 0 0.1em 0.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.admonition ul, div.admonition ol {
|
||||
margin: 0.1em 0.5em 0.5em 3em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* -- danger, error -- */
|
||||
div.danger,
|
||||
div.error {
|
||||
color: #b94a48;
|
||||
background-color: #f2dede;
|
||||
border-color: #eed3d7;
|
||||
}
|
||||
|
||||
|
||||
/* -- warning, caution, attention -- */
|
||||
div.warning,
|
||||
div.caution,
|
||||
div.attention {
|
||||
|
||||
}
|
||||
|
||||
/* -- note, important -- */
|
||||
div.note,
|
||||
div.important {
|
||||
color: #468847;
|
||||
background-color: #dff0d8;
|
||||
border-color: #d6e9c6;
|
||||
}
|
||||
|
||||
/* -- hint, tip -- */
|
||||
div.hint,
|
||||
div.tip {
|
||||
color: #3a87ad;
|
||||
background-color: #d9edf7;
|
||||
border-color: #bce8f1;
|
||||
}
|
||||
|
||||
/* Etc
|
||||
----------------------------------------------------------- */
|
||||
|
||||
div.figure-round img {
|
||||
-webkit-border-radius: 6px;
|
||||
-moz-border-radius: 6px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
div.figure-polaroid img{
|
||||
padding: 4px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
div.figure-circle img {
|
||||
-webkit-border-radius: 500px;
|
||||
-moz-border-radius: 500px;
|
||||
border-radius: 500px;
|
||||
}
|
||||
|
||||
a.headerlink {
|
||||
font-size: 60% !important;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
/*
|
||||
#searchbox .search-query {
|
||||
width: 60%;
|
||||
}
|
||||
*/
|
||||
|
||||
div.topic {
|
||||
min-height: 20px;
|
||||
padding: 9px;
|
||||
margin-bottom: 20px;
|
||||
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #e3e3e3;
|
||||
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
ul.sp-localtoc {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
ul.sp-localtoc ul{
|
||||
list-style: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
ul.sp-localtoc ul a{
|
||||
padding-left: 15px;
|
||||
padding-top:7px;
|
||||
padding-bottom:7px;
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
color: #777777;
|
||||
}
|
||||
ul.sp-localtoc ul a:hover{
|
||||
color: #555555;
|
||||
}
|
||||
ul.sp-localtoc ul ul{
|
||||
list-style: none;
|
||||
}
|
||||
ul.sp-localtoc ul ul a{
|
||||
padding-left: 25px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul a{
|
||||
padding-left: 35px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul ul a{
|
||||
padding-left: 45px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul ul ul a{
|
||||
padding-left: 55px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul ul ul a{
|
||||
padding-left: 65px;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a{
|
||||
color: #999999;
|
||||
}
|
||||
div.navbar-inverse ul.sp-localtoc ul a:hover{
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
|
||||
div.footer-relbar {
|
||||
margin-top:10px;
|
||||
}
|
||||
|
||||
div.sidebar ul {
|
||||
list-style: none;
|
||||
padding-left: 10px;
|
||||
}
|
||||
div.sidebar ul ul {
|
||||
list-style: initial;
|
||||
padding-left: 40px;
|
||||
}
|
||||
div.sidebar p.topless {
|
||||
padding-left: 10px;
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
/* Bootstrap
|
||||
------------------------------------------------------- */
|
||||
|
||||
/* apply font awesome
|
||||
------------------------------------------------------- */
|
||||
|
||||
div.danger p.admonition-title:before,
|
||||
div.error p.admonition-title:before,
|
||||
div.warning p.admonition-title:before,
|
||||
div.caution p.admonition-title:before,
|
||||
div.attention p.admonition-title:before,
|
||||
div.important p.admonition-title:before,
|
||||
div.note p.admonition-title:before,
|
||||
div.hint p.admonition-title:before,
|
||||
div.tip p.admonition-title:before
|
||||
{
|
||||
display: inline-block;
|
||||
font-family: FontAwesome;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
div.danger p.admonition-title:before,
|
||||
div.error p.admonition-title:before {
|
||||
content: "\f06a\00a0";
|
||||
}
|
||||
div.warning p.admonition-title:before,
|
||||
div.caution p.admonition-title:before,
|
||||
div.attention p.admonition-title:before {
|
||||
content: "\f071\00a0";
|
||||
}
|
||||
div.important p.admonition-title:before,
|
||||
div.note p.admonition-title:before {
|
||||
content: "\f05a\00a0";
|
||||
}
|
||||
div.hint p.admonition-title:before,
|
||||
div.tip p.admonition-title:before {
|
||||
content: "\f0eb\00a0";
|
||||
}
|
||||
|
||||
{%- if theme_h1_size != '' %}
|
||||
h1 { font-size: {{ theme_h1_size }}; line-height: {{ theme_h1_size }};}
|
||||
{% endif %}
|
||||
{%- if theme_h2_size != '' %}
|
||||
h2 { font-size: {{ theme_h2_size }}; line-height: {{ theme_h2_size }};}
|
||||
{% endif %}
|
||||
{%- if theme_h3_size != '' %}
|
||||
h3 { font-size: {{ theme_h3_size }}; line-height: {{ theme_h3_size }};}
|
||||
{% endif %}
|
||||
{%- if theme_h4_size != '' %}
|
||||
h4 { font-size: {{ theme_h4_size }}; line-height: {{ theme_h4_size }};}
|
||||
{% endif %}
|
||||
{%- if theme_h5_size != '' %}
|
||||
h5 { font-size: {{ theme_h5_size }}; line-height: {{ theme_h5_size }};}
|
||||
{% endif %}
|
||||
{%- if theme_h6_size != '' %}
|
||||
h6 { font-size: {{ theme_h6_size }}; line-height: {{ theme_h6_size }};}
|
||||
{% endif %}
|
||||
|
||||
{%- if (theme_googlewebfont|tobool) %}
|
||||
body,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
textarea,
|
||||
h1 small,
|
||||
h2 small,
|
||||
h3 small,
|
||||
h4 small,
|
||||
h5 small,
|
||||
h6 small,
|
||||
.navbar,
|
||||
.navbar-search .search-query,
|
||||
.navbar .navbar-search .search-query,
|
||||
/*
|
||||
.navbar .search-query::-moz-placeholder,
|
||||
.navbar .search-query::-webkit-input-placeholder,
|
||||
*/
|
||||
.navbar .brand,
|
||||
.navbar .nav>li>a,
|
||||
.navbar .navbar-text,
|
||||
.navbar .dropdown-menu li>a,
|
||||
.nav li>a,
|
||||
div.subnav,
|
||||
div.subnav .nav>li>a,
|
||||
div.subnav .nav>li:first-child>a,
|
||||
div.subnav .nav>li.active>a,
|
||||
legend,
|
||||
.btn,
|
||||
.alert-heading
|
||||
{
|
||||
{{ theme_googlewebfont_style }}
|
||||
}
|
||||
{%- endif %}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
{%- if theme_bootstrap_version == '2' %}
|
||||
div.sidebar ul {
|
||||
margin-left: 0;
|
||||
}
|
||||
ul.sp-localtoc{
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
ul.sp-localtoc ul{
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
ul.sp-localtoc ul ul{
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
ul.sp-localtoc ul ul a{
|
||||
margin-left: 25px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul a{
|
||||
margin-left: 35px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul ul a{
|
||||
margin-left: 45px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul ul ul a{
|
||||
margin-left: 55px;
|
||||
}
|
||||
ul.sp-localtoc ul ul ul ul ul a{
|
||||
margin-left: 65px;
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
|
||||
/* for tablet */
|
||||
@media (max-width: 767px) {
|
||||
form.sp-searchbox div.input-append {
|
||||
margin-top: 10px;
|
||||
margin-left: 12px;
|
||||
}
|
||||
form.sp-searchbox div.input-append {
|
||||
{%- if theme_bootstrap_version == '2' %}
|
||||
width: 70%;
|
||||
{% else %}
|
||||
width: 90%;
|
||||
{% endif %}
|
||||
}
|
||||
form.sp-searchbox input.search-query {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* for smartphone */
|
||||
@media (max-width: 480px) {
|
||||
a.brand {
|
||||
width: 80%;
|
||||
}
|
||||
a.navbar-brand {
|
||||
width: 80%;
|
||||
height: 100%;
|
||||
}
|
||||
.searchbox .search-query {
|
||||
width: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
/* for desktop */
|
||||
@media (min-width: 768px) {
|
||||
{% if theme_nav_fixed %}
|
||||
.navbar-inner div.container {
|
||||
width: {{ theme_nav_width }};
|
||||
}
|
||||
{% endif %}
|
||||
{% if theme_content_fixed %}
|
||||
div.container {
|
||||
width: {{ theme_content_width }};
|
||||
}
|
||||
{% endif %}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
/* Template-specific stuff
|
||||
*
|
||||
* Customizations just for the template; these are not necessary for anything
|
||||
* with disabling the responsiveness.
|
||||
*/
|
||||
|
||||
/* Account for fixed navbar */
|
||||
body {
|
||||
min-width: 970px;
|
||||
}
|
||||
|
||||
/* Finesse the page header spacing */
|
||||
.page-header {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.page-header .lead {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* Non-responsive overrides
|
||||
*
|
||||
* Utilitze the following CSS to disable the responsive-ness of the container,
|
||||
* grid system, and navbar.
|
||||
*/
|
||||
/* Reset the container */
|
||||
.container {
|
||||
width: 970px;
|
||||
max-width: none !important;
|
||||
}
|
||||
|
||||
/* Demonstrate the grids */
|
||||
.col-xs-3 {
|
||||
}
|
||||
|
||||
.container .navbar-header,
|
||||
.container .navbar-collapse {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* Always float the navbar header */
|
||||
.navbar-header {
|
||||
float: left;
|
||||
}
|
||||
|
||||
/* Undo the collapsing navbar */
|
||||
.navbar-collapse {
|
||||
display: block !important;
|
||||
height: auto !important;
|
||||
padding-bottom: 0;
|
||||
overflow: visible !important;
|
||||
}
|
||||
.navbar-toggle {
|
||||
display: none;
|
||||
}
|
||||
.navbar-collapse {
|
||||
border-top: 0;
|
||||
}
|
||||
.navbar-brand {
|
||||
margin-left: -15px;
|
||||
}
|
||||
/* Always apply the floated nav */
|
||||
.navbar-nav {
|
||||
float: left;
|
||||
margin: 0;
|
||||
}
|
||||
.navbar-nav > li {
|
||||
float: left;
|
||||
}
|
||||
.navbar-nav > li > a {
|
||||
padding: 15px;
|
||||
}
|
||||
/* Redeclare since we override the float above */
|
||||
.navbar-nav.navbar-right {
|
||||
float: right;
|
||||
}
|
||||
/* Undo custom dropdowns */
|
||||
.navbar .navbar-nav .open .dropdown-menu {
|
||||
position: absolute;
|
||||
float: left;
|
||||
}
|
||||