mirror of
https://gitlab.com/kupfer/kupferbootstrap.git
synced 2025-02-22 21:25:43 -05:00
docs: add sphinx docs and gitlab pages
This commit is contained in:
parent
e28239454a
commit
35a79363a4
15 changed files with 564 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
|||
stages:
|
||||
- check
|
||||
- build
|
||||
- deploy
|
||||
|
||||
format:
|
||||
stage: check
|
||||
|
@ -34,3 +35,26 @@ build_docker:
|
|||
only:
|
||||
- main
|
||||
- dev
|
||||
|
||||
.docs:
|
||||
image: "${CI_REGISTRY_IMAGE}:dev"
|
||||
before_script:
|
||||
- pacman -Sy --noconfirm python-sphinx-{click,furo}
|
||||
script:
|
||||
- (cd docs && make)
|
||||
- mv docs/html public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
|
||||
build_docs:
|
||||
stage: build
|
||||
extends: .docs
|
||||
except:
|
||||
- dev
|
||||
|
||||
pages:
|
||||
stage: deploy
|
||||
extends: .docs
|
||||
only:
|
||||
- dev
|
||||
|
|
4
docs/.gitignore
vendored
Normal file
4
docs/.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
.buildinfo
|
||||
.doctrees
|
||||
html
|
||||
source/cli
|
16
docs/Makefile
Normal file
16
docs/Makefile
Normal file
|
@ -0,0 +1,16 @@
|
|||
buildargs := -b dirhtml -aE source html
|
||||
|
||||
.PHONY: cleanbuild clean
|
||||
|
||||
cleanbuild:
|
||||
@make clean
|
||||
@make html
|
||||
|
||||
clean:
|
||||
rm -rf html source/cli
|
||||
|
||||
html:
|
||||
sphinx-build $(buildargs)
|
||||
|
||||
serve: html
|
||||
(cd html && python -m http.server 9999)
|
3
docs/requirements.txt
Normal file
3
docs/requirements.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
sphinx-click
|
||||
# furo sphinx theme
|
||||
furo
|
17
docs/source/cli.rst
Normal file
17
docs/source/cli.rst
Normal file
|
@ -0,0 +1,17 @@
|
|||
#############
|
||||
CLI Interface
|
||||
#############
|
||||
|
||||
.. click:: main:cli
|
||||
:nested: none
|
||||
:prog: kupferbootstrap
|
||||
|
||||
|
||||
Commands
|
||||
========
|
||||
|
||||
.. generated by cmd.rst
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
||||
cli/*
|
21
docs/source/cmd.rst
Normal file
21
docs/source/cmd.rst
Normal file
|
@ -0,0 +1,21 @@
|
|||
:orphan:
|
||||
:nosearch:
|
||||
|
||||
only used to trigger builds of the submodule docs!
|
||||
|
||||
.. autosummary::
|
||||
:toctree: cli
|
||||
:template: command.rst
|
||||
:recursive:
|
||||
|
||||
boot
|
||||
cache
|
||||
chroot
|
||||
config
|
||||
flash
|
||||
forwarding
|
||||
image
|
||||
packages
|
||||
ssh
|
||||
telnet
|
||||
|
21
docs/source/conf.py
Normal file
21
docs/source/conf.py
Normal file
|
@ -0,0 +1,21 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.abspath('../..'))
|
||||
extensions = [
|
||||
'sphinx_click',
|
||||
'sphinx.ext.autosummary', # Create neat summary tables
|
||||
]
|
||||
templates_path = ['templates']
|
||||
project = 'Kupfer👢strap'
|
||||
html_title = 'Kupferbootstrap'
|
||||
html_theme = 'furo'
|
||||
html_static_path = ['static']
|
||||
html_css_files = ['kupfer_docs.css']
|
||||
html_favicon = 'static/kupfer-white-filled.svg'
|
||||
html_theme_options = {
|
||||
"globaltoc_maxdepth": 5,
|
||||
"globaltoc_collapse": True,
|
||||
"light_logo": "kupfer-black-transparent.svg",
|
||||
"dark_logo": "kupfer-white-transparent.svg",
|
||||
}
|
129
docs/source/config.rst
Normal file
129
docs/source/config.rst
Normal file
|
@ -0,0 +1,129 @@
|
|||
#############
|
||||
Configuration
|
||||
#############
|
||||
|
||||
|
||||
Kupferbootstrap uses `toml <https://en.wikipedia.org/wiki/TOML>`_ for its configuration file.
|
||||
|
||||
The file can either be edited manually or managed via the :doc:`cli/config` subcommand.
|
||||
|
||||
You can quickly generate a default config by running :code:`kupferbootstrap config init -N`.
|
||||
|
||||
|
||||
File Location
|
||||
#############
|
||||
|
||||
The configuration is stored in ``~/.config/kupfer/kupferbootstrap.toml``, where ``~`` is your user's home folder.
|
||||
|
||||
|
||||
Sections
|
||||
########
|
||||
|
||||
A config file is split into sections like so:
|
||||
|
||||
.. code-block:: toml
|
||||
|
||||
[pkgbuilds]
|
||||
git_repo = "https://gitlab.com/kupfer/packages/pkgbuilds.git"
|
||||
git_branch = "dev"
|
||||
|
||||
[pacman]
|
||||
parallel_downloads = 3
|
||||
|
||||
|
||||
Here, we have two sections: ``pkgbuilds`` and ``pacman``.
|
||||
|
||||
Flavours
|
||||
########
|
||||
|
||||
Flavours are preset collections of software and functionality to enable,
|
||||
i.e. desktop environments like `Gnome <https://en.wikipedia.org/wiki/GNOME>`_
|
||||
and `Phosh <https://en.wikipedia.org/wiki/Phosh>`_.
|
||||
|
||||
|
||||
Profiles
|
||||
########
|
||||
|
||||
The last section and currently the only one with subsections is the ``profiles`` section.
|
||||
|
||||
A profile is the configuration of a specific device image. It specifies (amongst others):
|
||||
|
||||
* the device model
|
||||
* the flavour (desktop environment)
|
||||
* the host- and user name
|
||||
* extra packages to install
|
||||
|
||||
Using a profile's ``parent`` key,
|
||||
you can inherit settings from another profile.
|
||||
|
||||
This allows you to easily keep a number of slight variations of the same target profile around
|
||||
without the need to constantly modify your Kupferbootstrap configuration file.
|
||||
|
||||
You can easily create new profiles with
|
||||
`kupferbootstrap config profile init <../cli/config/#kupferbootstrap-config-profile-init>`_.
|
||||
|
||||
Here's an example:
|
||||
|
||||
.. code:: toml
|
||||
|
||||
[profiles]
|
||||
current = "graphical"
|
||||
|
||||
[profiles.default]
|
||||
parent = ""
|
||||
device = "oneplus-enchilada"
|
||||
flavour = "phosh"
|
||||
pkgs_include = [ "wget", "rsync", "nano", "tmux", "zsh", "pv", ]
|
||||
pkgs_exclude = []
|
||||
hostname = "kupferphone"
|
||||
username = "prawn"
|
||||
size_extra_mb = 800
|
||||
|
||||
[profiles.graphical]
|
||||
parent = "default"
|
||||
pkgs_include = [ "firefox", "tilix", "gnome-tweaks" ]
|
||||
size_extra_mb = "+3000"
|
||||
|
||||
[profiles.hades]
|
||||
parent = "graphical"
|
||||
flavour = "phosh"
|
||||
hostname = "hades"
|
||||
|
||||
[profiles.recovery]
|
||||
parent = "default"
|
||||
flavour = "debug-shell"
|
||||
|
||||
[profiles.beryllium]
|
||||
parent = "graphical"
|
||||
device = "xiaomi-beryllium-ebbg"
|
||||
flavour = "gnome"
|
||||
hostname = "pocof1"
|
||||
|
||||
|
||||
|
||||
The ``current`` key in the ``profiles`` section controlls which profile gets used by Kupferbootstrap by default.
|
||||
|
||||
The first subsection (``profiles.default``) describes the `default` profile
|
||||
which gets created by `config init <../cli/config/#kupferbootstrap-config-init>`_.
|
||||
|
||||
Next, we have a `graphical` profile that defines a couple of graphical programs for all but the `recovery` profile,
|
||||
since that doesn't have a GUI.
|
||||
|
||||
``size_extra_mb``
|
||||
-----------------
|
||||
|
||||
Note how ``size_extra_mb`` can either be a plain integer (``800``) or a string,
|
||||
optionally leading with a plus sign (``+3000``),
|
||||
which instructs Kupferbootstrap to add the value to the parent profile's ``size_extra_mb``.
|
||||
|
||||
``pkgs_include`` / ``pkgs_exclude``
|
||||
-----------------------------------
|
||||
|
||||
Like ``size_extra_mb``, ``pkgs_include`` will be merged with the parent profile's ``pkgs_include``.
|
||||
|
||||
To exclude unwanted packages from being inherited from a parent profile, use ``pkgs_exclude`` in the child profile.
|
||||
|
||||
.. hint::
|
||||
``pkgs_exclude`` has no influence on Pacman's dependency resolution.
|
||||
It only blocks packages during image build that would usually be explicitly installed
|
||||
due to being listed in a parent profile or the selected flavour.
|
16
docs/source/index.rst
Normal file
16
docs/source/index.rst
Normal file
|
@ -0,0 +1,16 @@
|
|||
#############################
|
||||
Kupferbootstrap Documentation
|
||||
#############################
|
||||
|
||||
This is the documentation for `Kupferbootstrap <https://gitlab.com/kupfer/kupferbootstrap>`_,
|
||||
a tool to build and flash packages and images for the `Kupfer <https://gitlab.com/kupfer/>`_ mobile Linux distro.
|
||||
|
||||
|
||||
Documentation pages
|
||||
===================
|
||||
|
||||
.. toctree::
|
||||
|
||||
install
|
||||
config
|
||||
cli
|
35
docs/source/install.rst
Normal file
35
docs/source/install.rst
Normal file
|
@ -0,0 +1,35 @@
|
|||
############
|
||||
Installation
|
||||
############
|
||||
|
||||
|
||||
#.
|
||||
Install Python 3, Docker, and git.
|
||||
|
||||
On Arch: ``pacman -S python docker git --needed --noconfirm``
|
||||
|
||||
.. Hint::
|
||||
After installing Docker you will have to add your user to the ``docker`` group:
|
||||
|
||||
``sudo usermod -aG docker "$(whoami)"``
|
||||
|
||||
Then restart your desktop session for the new group to take effect.
|
||||
|
||||
#. Pick which Kupferbootstrap branch to clone: usually either ``main`` or ``dev``
|
||||
|
||||
#. Clone the repository: ``git clone -b INSERT_BRANCHNAME_HERE https://gitlab.com/kupfer/kupferbootstrap``
|
||||
|
||||
#. Change into the folder: ``cd kupferbootstrap``
|
||||
|
||||
#.
|
||||
Install python dependencies: ``pip3 install -r requirements.txt``
|
||||
|
||||
.. Note::
|
||||
Most of our python dependencies are available as distro packages on most distros,
|
||||
sadly it's incomplete on Arch.
|
||||
|
||||
See ``requirements.txt`` for the list of required python packages.
|
||||
|
||||
#. Symlink ``kupferbootstrap`` into your ``$PATH``: ``sudo ln -s "$(pwd)/bin/kupferbootstrap" /usr/local/bin/``
|
||||
|
||||
#. You should now be able to run ``kupferbootstrap --help``!
|
90
docs/source/static/kupfer-black-transparent.svg
Normal file
90
docs/source/static/kupfer-black-transparent.svg
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="190"
|
||||
height="190"
|
||||
viewBox="0 0 190 190"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient2922">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2918" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2920" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
x="13.627879"
|
||||
y="59.548416"
|
||||
width="111.21325"
|
||||
height="97.633041"
|
||||
id="rect5030" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2922"
|
||||
id="linearGradient2924"
|
||||
x1="90.118146"
|
||||
y1="164.56091"
|
||||
x2="170.81263"
|
||||
y2="164.56091"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer2"
|
||||
style="display:none">
|
||||
<rect
|
||||
style="fill:#343a40;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.04836;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect53-7"
|
||||
width="184.064"
|
||||
height="184.064"
|
||||
x="3.0180202"
|
||||
y="3.0180202"
|
||||
ry="15.325292" />
|
||||
</g>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:hairline;fill-opacity:1;stroke:#ffffff;stroke-opacity:1;stroke-width:0.000001;vector-effect:non-scaling-stroke;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 19.966797,4 C 11.138816,4 4,11.138816 4,19.966797 V 169.78516 c 0,8.82798 7.138816,15.96679 15.966797,15.96679 H 169.73242 c 8.82798,0 15.9668,-7.13881 15.9668,-15.96679 V 19.966797 C 185.69922,11.138816 178.5604,4 169.73242,4 Z m 0,2 H 169.73242 c 7.75458,0 13.9668,6.21222 13.9668,13.966797 V 169.78516 c 0,7.75457 -6.21222,13.96679 -13.9668,13.96679 H 19.966797 C 12.21222,183.75195 6,177.53973 6,169.78516 V 19.966797 C 6,12.21222 12.21222,6 19.966797,6 Z"
|
||||
id="rect53" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text5028"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:55.9664px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect5030);fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline"
|
||||
transform="matrix(1.7767576,0,0,1.5652748,1.1199194,-51.120758)"><tspan
|
||||
x="13.626953"
|
||||
y="111.31775"
|
||||
id="tspan42"><tspan
|
||||
style="vector-effect:non-scaling-stroke"
|
||||
id="tspan40">Cu</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;paint-order:normal;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline"
|
||||
x="15.241241"
|
||||
y="34.91935"
|
||||
id="text66922"><tspan
|
||||
id="tspan66920"
|
||||
x="15.241241"
|
||||
y="34.91935"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline">29</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
x="91.402611"
|
||||
y="168.75438"
|
||||
id="text66922-3"><tspan
|
||||
id="tspan66920-6"
|
||||
x="91.402611"
|
||||
y="168.75438"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">63.546</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
90
docs/source/static/kupfer-white-filled.svg
Normal file
90
docs/source/static/kupfer-white-filled.svg
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="190"
|
||||
height="190"
|
||||
viewBox="0 0 190 190"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient2922">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2918" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2920" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
x="13.627879"
|
||||
y="59.548416"
|
||||
width="111.21325"
|
||||
height="97.633041"
|
||||
id="rect5030" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2922"
|
||||
id="linearGradient2924"
|
||||
x1="90.118146"
|
||||
y1="164.56091"
|
||||
x2="170.81263"
|
||||
y2="164.56091"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer2"
|
||||
style="display:inline">
|
||||
<rect
|
||||
style="display:inline;fill:#343a40;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.04836;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect53-7"
|
||||
width="184.064"
|
||||
height="184.064"
|
||||
x="3.0180202"
|
||||
y="3.0180202"
|
||||
ry="17" />
|
||||
</g>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#000000;fill:#ffffff;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:hairline;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.000001;vector-effect:non-scaling-stroke;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 19.966797,4 C 11.138816,4 4,11.138816 4,19.966797 V 169.78516 c 0,8.82798 7.138816,15.96679 15.966797,15.96679 H 169.73242 c 8.82798,0 15.9668,-7.13881 15.9668,-15.96679 V 19.966797 C 185.69922,11.138816 178.5604,4 169.73242,4 Z m 0,2 H 169.73242 c 7.75458,0 13.9668,6.21222 13.9668,13.966797 V 169.78516 c 0,7.75457 -6.21222,13.96679 -13.9668,13.96679 H 19.966797 C 12.21222,183.75195 6,177.53973 6,169.78516 V 19.966797 C 6,12.21222 12.21222,6 19.966797,6 Z"
|
||||
id="rect53" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text5028"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:55.9664px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect5030);display:inline;vector-effect:non-scaling-stroke;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;-inkscape-stroke:hairline"
|
||||
transform="matrix(1.7767576,0,0,1.5652748,1.1199194,-51.120758)"><tspan
|
||||
x="13.626953"
|
||||
y="110.47127"
|
||||
id="tspan42"><tspan
|
||||
style="vector-effect:non-scaling-stroke"
|
||||
id="tspan40">Cu</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;paint-order:normal;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline"
|
||||
x="15.241241"
|
||||
y="34.91935"
|
||||
id="text66922"><tspan
|
||||
id="tspan66920"
|
||||
x="15.241241"
|
||||
y="34.91935"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline">29</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
x="91.402611"
|
||||
y="168.75438"
|
||||
id="text66922-3"><tspan
|
||||
id="tspan66920-6"
|
||||
x="91.402611"
|
||||
y="168.75438"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">63.546</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
90
docs/source/static/kupfer-white-transparent.svg
Normal file
90
docs/source/static/kupfer-white-transparent.svg
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="190"
|
||||
height="190"
|
||||
viewBox="0 0 190 190"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient2922">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2918" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2920" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
x="13.627879"
|
||||
y="59.548416"
|
||||
width="111.21325"
|
||||
height="97.633041"
|
||||
id="rect5030" />
|
||||
<linearGradient
|
||||
xlink:href="#linearGradient2922"
|
||||
id="linearGradient2924"
|
||||
x1="90.118146"
|
||||
y1="164.56091"
|
||||
x2="170.81263"
|
||||
y2="164.56091"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer2"
|
||||
style="display:none">
|
||||
<rect
|
||||
style="fill:#343a40;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.04836;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect53-7"
|
||||
width="184.064"
|
||||
height="184.064"
|
||||
x="3.0180202"
|
||||
y="3.0180202"
|
||||
ry="15.325292" />
|
||||
</g>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
style="color:#000000;fill:#ffffff;fill-rule:evenodd;stroke-linejoin:round;-inkscape-stroke:hairline;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.000001;vector-effect:non-scaling-stroke;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="M 19.966797,4 C 11.138816,4 4,11.138816 4,19.966797 V 169.78516 c 0,8.82798 7.138816,15.96679 15.966797,15.96679 H 169.73242 c 8.82798,0 15.9668,-7.13881 15.9668,-15.96679 V 19.966797 C 185.69922,11.138816 178.5604,4 169.73242,4 Z m 0,2 H 169.73242 c 7.75458,0 13.9668,6.21222 13.9668,13.966797 V 169.78516 c 0,7.75457 -6.21222,13.96679 -13.9668,13.96679 H 19.966797 C 12.21222,183.75195 6,177.53973 6,169.78516 V 19.966797 C 6,12.21222 12.21222,6 19.966797,6 Z"
|
||||
id="rect53" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
id="text5028"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:55.9664px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect5030);fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline"
|
||||
transform="matrix(1.7767576,0,0,1.5652748,1.1199194,-51.120758)"><tspan
|
||||
x="13.626953"
|
||||
y="111.31775"
|
||||
id="tspan42"><tspan
|
||||
style="vector-effect:non-scaling-stroke"
|
||||
id="tspan40">Cu</tspan></tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;paint-order:normal;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline"
|
||||
x="15.241241"
|
||||
y="34.91935"
|
||||
id="text66922"><tspan
|
||||
id="tspan66920"
|
||||
x="15.241241"
|
||||
y="34.91935"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-opacity:1;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;vector-effect:non-scaling-stroke;-inkscape-stroke:hairline">29</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
x="91.402611"
|
||||
y="168.75438"
|
||||
id="text66922-3"><tspan
|
||||
id="tspan66920-6"
|
||||
x="91.402611"
|
||||
y="168.75438"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:26.6667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">63.546</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
3
docs/source/static/kupfer_docs.css
Normal file
3
docs/source/static/kupfer_docs.css
Normal file
|
@ -0,0 +1,3 @@
|
|||
.sidebar-brand-text {
|
||||
text-align: center;
|
||||
}
|
5
docs/source/templates/command.rst
Normal file
5
docs/source/templates/command.rst
Normal file
|
@ -0,0 +1,5 @@
|
|||
.. title: {{fullname}}
|
||||
|
||||
.. click:: {% if fullname == 'main' %}main:cli{% else %}{{fullname}}:cmd_{{fullname}}{% endif %}
|
||||
:prog: kupferbootstrap {{fullname}}
|
||||
:nested: full
|
Loading…
Add table
Reference in a new issue