Compare commits

..
Author SHA1 Message Date
deepend ba2871dc55 Fix installer offline docs extraction 2026-06-09 13:02:36 -06:00
deepend a14080523e Fix Flatpak workflow indentation 2026-06-09 12:27:03 -06:00
deepend a5cc0c6776 Fix offline docs install paths 2026-06-09 12:09:14 -06:00
deepend 337d7684e4 fix download path 2026-06-04 14:44:56 -06:00
280 changed files with 2084 additions and 68523 deletions
-132
View File
@@ -1,132 +0,0 @@
---
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.
```
-1
View File
@@ -1 +0,0 @@
blank_issues_enabled: false
-57
View File
@@ -1,57 +0,0 @@
---
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.
```
+26 -26
View File
@@ -2,7 +2,7 @@ name: AppImage Build
on:
push:
branches: [master, 'release/**']
branches: [master]
pull_request:
branches: [master]
@@ -30,13 +30,13 @@ jobs:
gettext \
libcanberra-dev libglib2.0-dev \
libarchive-dev \
libgtk-3-dev libfontconfig1-dev libpango1.0-dev xvfb xauth dbus-daemon at-spi2-core \
libgtk-3-dev \
libwayland-client0 libwayland-cursor0 libwayland-egl1 \
libxkbcommon0 \
libgtk-3-bin libglib2.0-bin glib-networking shared-mime-info gsettings-desktop-schemas \
libgtk-3-bin libglib2.0-bin 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 \
breeze-gtk-theme \
fonts-noto-color-emoji breeze-gtk-theme \
patchelf file curl
- name: Configure
@@ -56,15 +56,17 @@ 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
rm -rf AppDir
DESTDIR="${PWD}/AppDir" ninja -C build install
- name: Verify offline docs install
run: |
set -eux
test -f AppDir/usr/share/doc/zoitechat/html/index.html
- name: Bundle scripting runtimes in AppDir
run: |
set -eux
@@ -122,8 +124,15 @@ jobs:
cp -a /usr/lib/x86_64-linux-gnu/libpython3*.so* AppDir/usr/lib/x86_64-linux-gnu/
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/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
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
@@ -135,20 +144,6 @@ 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
@@ -202,6 +197,14 @@ 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
@@ -260,9 +263,6 @@ 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}"
+7 -1
View File
@@ -2,7 +2,7 @@ name: Flatpak Build
on:
push:
branches: [master, 'release/**']
branches: [master]
pull_request:
branches: [master]
@@ -37,6 +37,12 @@ jobs:
cache: false
restore-cache: false
- name: Verify offline docs install
run: |
flatpak --user install -y zoitechat.flatpak
app_dir="$(flatpak info --user --show-location net.zoite.Zoitechat)"
test -f "$app_dir/files/share/zoitechat/offline-docs/index.html"
- name: Upload Flatpak Bundle
id: upload_flatpak
uses: actions/upload-artifact@v6
@@ -0,0 +1,79 @@
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
+9 -81
View File
@@ -4,7 +4,6 @@ on:
push:
branches:
- master
- 'release/**'
pull_request:
branches:
- master
@@ -66,33 +65,9 @@ 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.20.0-alpha.1/GTK3_Gvsbuild_zoitechat-2.20.0-alpha.1_x64.zip -OutFile deps\gtk-${{ matrix.arch }}.zip
Download-WithRetry -Url https://github.com/ZoiteChat/gvsbuild/releases/download/zoitechat-2.18.1/GTK3_Gvsbuild_zoitechat-2.18.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()"
@@ -138,26 +113,6 @@ 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"
@@ -169,50 +124,23 @@ 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
- name: Verify offline docs install
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
)
if not exist "..\zoitechat-build\${{ matrix.platform }}\rel\offline-docs\index.html" exit /b 1
findstr /C:"Name:" "..\zoitechat-build\${{ matrix.platform }}\bin\zoitechat.iss" | findstr /C:"docs"
findstr /C:"OFFLINEDOCSURL" "..\zoitechat-build\${{ matrix.platform }}\bin\zoitechat.iss"
findstr /C:"Source:" "..\zoitechat-build\${{ matrix.platform }}\bin\zoitechat.iss" | findstr /C:"offline-docs"
findstr /C:"offline-docs.tar.gz" "..\zoitechat-build\${{ matrix.platform }}\bin\zoitechat.iss"
findstr /C:"InstallOfflineDocs" "..\zoitechat-build\${{ matrix.platform }}\bin\zoitechat.iss"
shell: cmd
- name: Preparing Artifacts
run: |
-7
View File
@@ -1,7 +0,0 @@
version: 2
sphinx:
configuration: 'docs/conf.py'
build:
os: 'ubuntu-22.04'
tools:
python: '3.11'
+24 -45
View File
@@ -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.,
<https://fsf.org/>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
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 Lesser General Public License instead.) You can apply it to
the GNU Library 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) <year> <name of author>
Copyright (C) 19yy <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,15 +303,17 @@ 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, see <https://www.gnu.org/licenses/>.
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
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) year name of author
Gnomovision version 69, Copyright (C) 19yy 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.
@@ -328,34 +330,11 @@ 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 Moe Ghoul>, 1 April 1989
Moe Ghoul, President of Vice
<signature of Ty Coon>, 1 April 1989
Ty Coon, 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 Lesser General
library. If this is what you want to do, use the GNU Library 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
View File
@@ -1 +0,0 @@
2.20.0-dev
-43
View File
@@ -1,49 +1,6 @@
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)
-------------------
-39
View File
@@ -1,39 +0,0 @@
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.
-30
View File
@@ -1,30 +0,0 @@
# 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.
-6
View File
@@ -1,6 +0,0 @@
# 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
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-23479
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
-91
View File
@@ -1,91 +0,0 @@
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.
-43
View File
@@ -1,43 +0,0 @@
# 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`.
-13
View File
@@ -1,13 +0,0 @@
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,
)
+12 -1
View File
@@ -3,8 +3,19 @@ if get_option('plugin')
endif
if get_option('gtk-frontend')
subdir('fonts')
subdir('icons')
subdir('misc')
subdir('man')
endif
offline_docs_url = get_option('offline-docs-url')
offline_docs = custom_target('offline-docs',
output: 'offline-docs.stamp',
command: [find_program('python3'), files('misc/fetch_offline_docs.py'), offline_docs_url, '@OUTDIR@', meson.source_root()],
build_by_default: true,
)
meson.add_install_script(
files('misc/install_offline_docs.py'),
join_paths(meson.current_build_dir(), 'offline-docs'),
offline_docs_dir,
)
+89
View File
@@ -0,0 +1,89 @@
#!/usr/bin/env python3
import html
import io
import pathlib
import shutil
import sys
import tarfile
import tempfile
import urllib.error
import urllib.request
url = sys.argv[1]
out_dir = pathlib.Path(sys.argv[2])
source_dir = pathlib.Path(sys.argv[3]) if len(sys.argv) > 3 else pathlib.Path.cwd()
docs_dir = out_dir / "offline-docs"
if docs_dir.exists():
shutil.rmtree(docs_dir)
docs_dir.mkdir(parents=True, exist_ok=True)
def write_source_docs() -> None:
parts = [
'<!doctype html><html><head><meta charset="utf-8">'
"<title>ZoiteChat Documentation</title></head><body>"
"<h1>ZoiteChat Documentation</h1>"
]
for name in ("readme.md", "troubleshooting.md", "changelog.rst"):
path = source_dir / name
if path.exists():
parts.append(
f"<h2>{html.escape(name)}</h2>"
f"<pre>{html.escape(path.read_text(encoding='utf-8', errors='replace'))}</pre>"
)
parts.append("</body></html>")
(docs_dir / "index.html").write_text("\n".join(parts), encoding="utf-8")
def safe_extract(tar: tarfile.TarFile, target: pathlib.Path) -> None:
target = target.resolve()
for member in tar.getmembers():
member_path = (target / member.name).resolve()
if not str(member_path).startswith(str(target) + "/"):
raise tarfile.TarError(f"unsafe archive path: {member.name}")
tar.extractall(target)
def copy_index_tree(extracted_dir: pathlib.Path) -> bool:
indexes = sorted(extracted_dir.rglob("index.html"))
if not indexes:
return False
root = indexes[0].parent
for item in root.iterdir():
dest = docs_dir / item.name
if item.is_dir():
shutil.copytree(item, dest, dirs_exist_ok=True)
else:
shutil.copy2(item, dest)
return (docs_dir / "index.html").exists()
if url:
try:
with urllib.request.urlopen(url, timeout=30) as response:
data = response.read()
with tempfile.TemporaryDirectory() as tmp:
extract_dir = pathlib.Path(tmp)
with tarfile.open(fileobj=io.BytesIO(data), mode="r:gz") as tar:
safe_extract(tar, extract_dir)
if not copy_index_tree(extract_dir):
write_source_docs()
except (OSError, tarfile.TarError, urllib.error.URLError) as error:
print(f"offline docs download failed: {error}", file=sys.stderr)
write_source_docs()
else:
write_source_docs()
(out_dir / "offline-docs.stamp").write_text("ok", encoding="utf-8")
+13
View File
@@ -0,0 +1,13 @@
#!/usr/bin/env python3
import os
import pathlib
import shutil
import sys
src = pathlib.Path(sys.argv[1])
dest = pathlib.Path(os.environ['MESON_INSTALL_DESTDIR_PREFIX']) / sys.argv[2]
if not (src / 'index.html').exists():
sys.exit(0)
if dest.exists():
shutil.rmtree(dest)
shutil.copytree(src, dest)
+1 -1
View File
@@ -2,7 +2,6 @@ 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')
@@ -14,6 +13,7 @@ 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,74 +29,6 @@
<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>
-15
View File
@@ -1,15 +0,0 @@
# 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.
-94
View File
@@ -1,94 +0,0 @@
[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
-157
View File
@@ -1,157 +0,0 @@
# 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
-42
View File
@@ -1,42 +0,0 @@
# 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`.
Binary file not shown.
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

-56
View File
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

-362
View File
@@ -1,362 +0,0 @@
{#
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 ' &raquo;' 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 = " &mdash; "|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>&nbsp;{{ 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 }}&nbsp;<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>
-63
View File
@@ -1,63 +0,0 @@
{#
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 %}
-27
View File
@@ -1,27 +0,0 @@
{#
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 %}
-38
View File
@@ -1,38 +0,0 @@
{#
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>
@@ -1,67 +0,0 @@
/* 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 }};
}
@@ -1,62 +0,0 @@
{% 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;
}
@@ -1,46 +0,0 @@
{% 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;
}
@@ -1,71 +0,0 @@
{% 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 %}
@@ -1,73 +0,0 @@
{% 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;
}
@@ -1,60 +0,0 @@
{% 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;
}
@@ -1,54 +0,0 @@
{% 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;
}
@@ -1,69 +0,0 @@
{% 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;
}
@@ -1,61 +0,0 @@
{% 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;
}
@@ -1,20 +0,0 @@
{% 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" %}
@@ -1,73 +0,0 @@
{% 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;
}
@@ -1,19 +0,0 @@
{% 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" %}
@@ -1,60 +0,0 @@
{% 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;
}
@@ -1,83 +0,0 @@
{% 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;
}
@@ -1,72 +0,0 @@
{% 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;
}
@@ -1,36 +0,0 @@
{% 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" %}
@@ -1,123 +0,0 @@
{% 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;
}
}
@@ -1,62 +0,0 @@
{% 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;
}
@@ -1,62 +0,0 @@
{% 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;
}
@@ -1,36 +0,0 @@
{% 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;
}
-350
View File
@@ -1,350 +0,0 @@
@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;
}
-186
View File
@@ -1,186 +0,0 @@
/* 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 %}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,82 +0,0 @@
/* 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;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

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