Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite, improve, update and correct the documentation #102

Open
wants to merge 50 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
6040a81
Improved table formatting
Korne127 Jul 30, 2024
94e530b
Rewrote, improved and updated linuxdeploy user guide
Korne127 Jul 30, 2024
56f5353
Rewrote, improved and updated packaging guide overview
Korne127 Jul 31, 2024
b855641
Collected, created and unified information about each packaging tool
Korne127 Aug 1, 2024
6eac511
Rewrote and collected information about different packaging approaches
Korne127 Aug 1, 2024
c7ef64a
Rewrote, improved and updated packaging automation section
Korne127 Aug 1, 2024
003ff0c
Collected, rewrote and improved creating AppDir structure section
Korne127 Aug 2, 2024
ac79f28
Added desktop entry & icon file page and collected information in it
Korne127 Aug 2, 2024
585a208
Moved AppImage creation tool pages into a common section
Korne127 Aug 3, 2024
cdef3eb
Rewrote packaging guide introduction
Korne127 Aug 3, 2024
a47d896
Updated AppDir specification and related pages accordingly
Korne127 Aug 3, 2024
d91b91b
Split up, moved and rewrote introduction software overview
Korne127 Aug 4, 2024
90c3505
Improved concept page and compile version information
Korne127 Aug 4, 2024
8d3b969
Improved and updated introduction section
Korne127 Nov 13, 2024
d24130b
Merged motivation and advantages pages and rewrote it
Korne127 Nov 13, 2024
c149815
Split up Running AppImage page and rewrote new pages
Korne127 Nov 14, 2024
d57e9bb
Improved, corrected and rewrote FUSE Troubleshooting page
Korne127 Nov 17, 2024
ac1243f
Improved, updated and corrected user guide pages
Korne127 Nov 18, 2024
8226791
Rewrote, improved and added updating information
Korne127 Dec 10, 2024
cf65575
Corrected information on calling bundled executables
Korne127 Dec 10, 2024
6d715f2
Improved, added and update signature information
Korne127 Dec 11, 2024
1779cdb
Improved AppStream information
Korne127 Dec 17, 2024
8848c9f
Added, improved and updated software catalog information
Korne127 Dec 20, 2024
4a1b448
Improved environment variables page
Korne127 Dec 20, 2024
40f41f4
Updated contact page
Korne127 Dec 20, 2024
4bccd0e
Rewrote Software Overview page as AppImageKit
Korne127 Dec 20, 2024
5488a75
(Re-)moved best practices page
Korne127 Dec 24, 2024
0ad0ecb
Corrected all inexistent links
Korne127 Dec 25, 2024
1fa3f39
Rewrote and improved front page, quickstart, FAQ and chapter pages
Korne127 Dec 26, 2024
bc7345a
Rewrote, updated and majorly improved entire AppImage reference section
Korne127 Jan 3, 2025
d94ceee
Updated outdated references to AppImageKit
Korne127 Jan 3, 2025
09d6487
Added terminal info to troubleshooting page
Korne127 Jan 4, 2025
60ec042
Added other desktop integration tools
Korne127 Jan 4, 2025
8c5d174
Updated FUSE page to new static runtime change
Korne127 Jan 4, 2025
a931110
Improved and updated pkg2appimage page
Korne127 Jan 5, 2025
4a6768c
Improved, updated and corrected testing page.
Korne127 Jan 6, 2025
fa332a7
Carried out several minor improvements
Korne127 Jan 6, 2025
0ae44ec
Improved README
Korne127 Jan 7, 2025
d956078
Improved (and removed) reference links
Korne127 Jan 7, 2025
951d508
Re-enabled smartquotes
Korne127 Jan 7, 2025
3932369
Made sphinx syntax more consistent
Korne127 Jan 8, 2025
f09fa9e
Made code blocks more consistent
Korne127 Jan 9, 2025
1116846
Corrected sphinx hyperlink syntax
Korne127 Jan 9, 2025
2d9efc8
Improved AppImage creation tools page, macOS page and configuration
Korne127 Jan 10, 2025
c2c5f0b
Added AppImage type explanations and references
Korne127 Jan 10, 2025
809018f
Added section on how to determine the runtime type
Korne127 Jan 11, 2025
1aa5325
Added a section about the alternative implementation
Korne127 Jan 11, 2025
0e20ee2
Massively improved and corrected AppStream generator
Korne127 Jan 13, 2025
06bb96e
Merged packaging guide introduction into packaging main page
Korne127 Jan 13, 2025
37b8100
Updated outdated and non-existing URLs
Korne127 Jan 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,4 @@ build/
.venv*/
venv*/
virtualenv*/
venv*/
.idea/
2 changes: 1 addition & 1 deletion .woodpecker/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ pipeline:
- epub_filename=AppImage-documentation-git"$(date +%Y%m%d)"."$(git rev-parse --short HEAD)".epub
- mkdir -p build/html/download
- cp build/epub/AppImage.epub build/html/download/"$epub_filename"
- bash -xe ci/embed-epub-link.sh "$epub_filename"
- bash -xe .woodpecker/embed-epub-link.sh "$epub_filename"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll most likely switch to a Docker-based deployment workflow in the future. I'll open an issue.


deploy:
image: drillster/drone-rsync
Expand Down
2 changes: 1 addition & 1 deletion ci/embed-epub-link.sh → .woodpecker/embed-epub-link.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ cat >> source/index.rst <<\EOF
Download this document
----------------------

`Download as ePub <download/epub_filename>`_
`Download as ePub <download/epub_filename>`__
EOF

sed -i "s|epub_filename|$epub_filename|" source/index.rst
64 changes: 49 additions & 15 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,29 +1,63 @@
AppImage docs
=============

|ci_status| |cd_status|

.. |cd_status| image:: https://drone.assassinate-you.net/api/badges/AppImage/docs.appimage.org/status.svg
:alt: CD status
:target: https://drone.assassinate-you.net/AppImage/docs.appimage.org

.. |ci_status| image:: https://github.com/AppImage/docs.appimage.org/workflows/CI/badge.svg
.. image:: https://github.com/AppImage/docs.appimage.org/workflows/CI/badge.svg
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why remove the alt text?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What alt text did I remove? As far as I can tell, I only removed the CD status badge as it doesn't exist anymore.

:alt: CI status
:target: https://github.com/AppImage/docs.appimage.org/actions

This repository is the home of the AppImage project's documentation.
It is the central source of information for users of AppImage (both
users and developers).
This repository is the home of the AppImage project documentation. This documentation is the central source of information for both AppImage developers and users.

View it at https://docs.appimage.org/.
You can view it at https://docs.appimage.org/.


Build
-----

This is a `Sphinx <https://sphinx-doc.org>`_ project, and can be built like
any other Sphinx project (e.g., using :code:`make html`)
This is a `Sphinx <https://sphinx-doc.org>`__ project, and can be built like any other Sphinx project. If you have never used Sphinx before, this section explains how it can be set up and built.

Convenience script
++++++++++++++++++

The easiest way to set up this project and build the documentation is to use the included convenience script ``make.sh``:

.. code-block:: shell

# Clone the project
> git clone https://github.com/AppImage/docs.appimage.org.git
> cd docs.appimage.org

# Set up and build the documentation
> make.sh html

Calling make.sh will build the documentation after setting up the project and everything required to build the documentation (such as creating a Python virtual environment and installing the dependencies in it). It will only perform the preparation steps that haven't been done before, so you can simply call it each time you want to re-build the documentation.

**Live reloading:** You can use ``make.sh watch`` instead of ``make.sh html`` |live_reloading|

Manually
++++++++

If you want to set up the project and build the documentation manually, you can use the following commands. (The ``make.sh`` script does essentially the same, just with additional tests whether these preparation steps have already been done before.)

.. code-block:: shell

# Clone the project
> git clone https://github.com/AppImage/docs.appimage.org.git
> cd docs.appimage.org

# Create and activate a Python virtual environment
> mkdir venv
> python3 -m venv venv
> source venv/bin/activate

# Install the required dependencies into the venv
> pip3 install -r requirements.txt

# Build the documentation
> make html
Comment on lines +36 to +56
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note for self: use Poetry or another automation solution to eliminate make.sh.


After that, you can rebuild the documentation simply with ``make html`` (although you have to execute ``source venv/bin/activate`` before that in every new terminal session).

**Live reloading:** You can use ``make watch`` instead of ``make html`` |live_reloading|

For less experienced users of Sphinx/Python/virtualenv etc., a convenience script that sets up a local isolated Sphinx environment is included. It's a transparent wrapper for the :code:`Makefile`, and can be used as a drop-in replacement :code:`./make.sh html`.

For development (i.e., writing documentation), `sphinx-autobuild <https://github.com/GaretJax/sphinx-autobuild>`_ has been integrated into the build system, which sets up a live-reloading webserver that rebuilds the site on changes and reloads the page in the browser automatically. You can use it by running :code:`./make.sh watch`.
.. |live_reloading| replace:: to set up a live-reloading webserver that automatically rebuilds the documentation and reloads the page in the browser on any change. (This is powered by `sphinx-autobuild <https://github.com/GaretJax/sphinx-autobuild>`__.)
104 changes: 104 additions & 0 deletions source/_static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,107 @@
hyphenate-limit-last: always;
hyphenate-limit-zone: 8%;
}


/* Fix to display tables properly */

.wy-table-responsive table td, .wy-table-responsive table th {
white-space: normal;
}


/* For the formatted table in the AppImage creation tools page */

.formatted-table tr:nth-child(1) td {
background-color: #006400 !important;
color: #000000 !important;
}
.formatted-table tr:nth-child(2) td {
background-color: #006400 !important;
color: #000000 !important;
}
.formatted-table tr:nth-child(3) td {
background-color: #FFFF00 !important;
color: #000000 !important;
}
.formatted-table tr:nth-child(4) td {
background-color: #FFFF00 !important;
color: #000000 !important;
}
.formatted-table tr:nth-child(5) td {
background-color: #FF8000 !important;
color: #000000 !important;
}
.formatted-table tr:nth-child(6) td {
background-color: #FF8000 !important;
color: #000000 !important;
}
.formatted-table tr:nth-child(7) td {
background-color: #FF0000 !important;
color: #000000 !important;
}


/* To allow bold hyperlinks and substitutions */

.bold-link a {
font-weight: bold;
}

.bold {
font-weight: bold;
}


/* For additional information in the AppStream generator */

.tooltip {
position: relative;
display: inline-block;
cursor: pointer;
vertical-align: super;
font-size: smaller;
text-decoration: underline;
color: #007bff;
}

.tooltip .tooltip-text {
visibility: hidden;
width: 200px;
background-color: #555;
color: #fff;
text-align: center;
border-radius: 5px;
padding: 5px;
position: absolute;
z-index: 1;
bottom: 125%; /* Position above the element */
left: 50%;
transform: translateX(-50%);
opacity: 0;
transition: opacity 0.3s;
box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
}

.tooltip:hover .tooltip-text {
visibility: visible;
opacity: 1;
}

.tooltip .tooltip-text::after {
content: '';
position: absolute;
top: 100%; /* Arrow points downward */
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: #555 transparent transparent transparent;
}


/* For the AppStream generator */

.full-width {
width: 100%;
}
Binary file not shown.
17 changes: 6 additions & 11 deletions source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,8 @@
templates_path = ['_templates']

# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
source_suffix = ['.rst']
# You can specify multiple suffixes:
source_suffix = {'.rst': 'restructuredtext'}

# The master toctree document.
master_doc = 'index'
Expand All @@ -65,7 +64,7 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = "en"

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
Expand Down Expand Up @@ -124,6 +123,7 @@
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
html_css_files = ["css/custom.css"]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What version of Sphinx have you tried this with? I think in the past this setting didn't exist. I might be wrong on that, though.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the documentation, it has been added in version 1.8.
I don't know which exact version I used though right now, I'll assume the newest one as I just followed the requirements.txt file.


# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
Expand Down Expand Up @@ -201,15 +201,10 @@

# -- Options for intersphinx extension ---------------------------------------

# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'https://docs.python.org/': None}
# Intersphinx stub configuration
intersphinx_mapping = {}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some feedback: I think intersphinx was once relevant because we planned to host separate docs repositories for different projects.


# -- Options for todo extension ----------------------------------------------

# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True


# apply some subtle changes to the selected theme via custom CSS file
def setup(app):
app.add_css_file("css/custom.css")
27 changes: 10 additions & 17 deletions source/contact.rst
Original file line number Diff line number Diff line change
@@ -1,32 +1,25 @@
.. _ref-contact:
.. _contact:

Contact
=======

The AppImage project documentation is brought to you by `the AppImage team <https://github.com/AppImage>`__. The source code is available `on GitHub <https://github.com/AppImage/docs.appimage.org>`__.
The AppImage project documentation is brought to you by `the AppImage team <https://github.com/AppImage>`__ and other `contributors <https://github.com/AppImage/docs.appimage.org/graphs/contributors>`__. The source code is available `on GitHub <https://github.com/AppImage/docs.appimage.org>`__.

This page outlines how you can contact the team behind AppImage, e.g., to get additional support or have questions answered.
If you have further questions or need additional support, please feel free to contact the AppImage team:


IRC
---
GitHub discussions
------------------

If you have further questions, please feel free to contact the AppImage team. The easiest and fastest way is to join our `IRC channel #appimage <ircs://irc.libera.chat/appimage>`__ on `Libera.Chat <https://libera.chat>`__ (`webchat <https://web.libera.chat/#AppImage>`__).
An easy way to contact us is to ask questions on the `AppImage GitHub discussions page <https://github.com/orgs/AppImage/discussions>`__. Questions are usually answered in one to two days, and you'll get notified as soon as someone answered you. Posts stay, so you can always keep track of the conversation. You can also browse through other posts to see if someone else had the same question or problem.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do not include what seems to be an SLA, we might not be able to keep up with such a standard. If you stay more vague (e.g., "a few days"), I could live with it.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wrote usually as this was how I assessed it when looking at the Github discussions (questions were often even answered in just a few hours), so rather as an estimate and not as a guarantee. I can change it though if you want.


You can join the channel from Matrix, too: ``#appimage:libera.chat``.

.. note::
IRC
---

Please beware that it might take a few minutes/hours until someone will check the chat and might be able to help you, so don't give up too quickly, and leave e.g., the tab open in the background if you can. You can also try at other times again. Please read `this article <https://workaround.org/getting-help-on-irc/>`__ before joining the IRC chat if you are new to IRC.
An alternative way to contact is us to join our `IRC channel #appimage <ircs://irc.libera.chat/appimage>`__ on `Libera.Chat <https://libera.chat>`__ (`webchat <https://web.libera.chat/#AppImage>`__). While this may be faster, you have to stay online for some hours until someone checks the chat and can help you, so don't give up too quickly, and e.g. leave the tab open in the background if you can. Please read `this article <https://web.archive.org/web/20241126204341/https://workaround.org/getting-help-on-irc>`__ before joining the IRC chat if you are new to IRC.

.. seealso::

The :code:`#appimage` channel on freenode has been abandoned and is not maintained by the AppImage project. The channel :code:`##appimage` (which was created after :code:`#appimage` was forcefully removed because it mentioned our move) has never been official and has never been maintained by us.
The ``#appimage`` channel on freenode has been abandoned and is not maintained by the AppImage project. The channel ``##appimage`` (which was created after ``#appimage`` was forcefully removed because it mentioned our move) has never been official and has never been maintained by us.

Please see `this article <https://www.devever.net/~hl/freenode_abuse2>`__ for more information on what happened to our channel and why we planned to transition to a new network.


Forum
-----

A slower but more sustainable way is to use the `Discourse forum <https://discourse.appimage.org>`__. You can log in using your existing Google or GitHub account, or alternatively register a local account with your email address.
9 changes: 6 additions & 3 deletions source/error-pages/404.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
:orphan:

.. custom 404 error page -- must be set up to be shown for all 404 errors in the webserver's configuration
..
Custom 404 error page
This must be set up to be shown for all 404 errors in the webserver's configuration

.. image:: /_static/img/appimage-grayscale.svg
:align: center
:width: 200px


404: Not found
==============

The resource you requested could not be found.

.. note::
As this documentation is still work in progress, the content might have been moved. Please use the search function or the table of contents to find its new location.
As this documentation is continuously being changed, the content might have been moved. Please use the search function or the table of contents to find its new location.

:ref:`Back to home page <home>`
:ref:`Back to the home page <home>`
41 changes: 27 additions & 14 deletions source/index.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
.. image:: /_static/img/appimage.svg
:align: center
:width: 300px

------------------

.. include:: substitutions.rst

.. _home:

Expand All @@ -14,19 +9,31 @@ Welcome to the AppImage documentation

------------------

.. seealso::
Welcome to the AppImage documentation.

.. cssclass:: bold-link

**If you are a first time user and just want to know how to run an AppImage (on your system or in a docker container) or have issues with an AppImage, see the** :ref:`Quickstart page <quickstart>`\ **!**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence should contain less words IMO. People might read over the word "quickstart" more easily in the current state.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, don't you have to intend this for the statement above to have any effect?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see your point. I feel like all of these are valid concerns (especially explicitly mentioning docker as the usual way to use (older) AppImages doesn't work on them so many might just look at the documentation for that).

I tried to make it something that people see and realize quickly by moving the big logo that took up all the space one initially looks at downloads and marking it bold so that it directly catches the eye.

What do you think about splitting it up into two statements like:

If you are a first time user and just want to run an AppImage, see the QuickStart page!

If you want to run an AppImage in a docker container or have issues with an AppImage, also see the QuickStart page.

Maybe I could also remove the "Welcome to the AppImage documentation." as it's duplicated with the headline anyways.

What do you mean with your second comment though?

But you're right, it's long.


| If you are a user and want to know how to integrate AppImages into your desktop, update them, use them portably or inspect their content, read the :ref:`user guide <user-guide>`. It covers all these topics and more.
| Its :ref:`Quickstart page <quickstart>` covers all frequently asked questions and the most common problems.

.. cssclass:: bold-link

| **If you are a first time developer and want to know how to easily create an AppImage, look at the** :ref:`packaging guide <packaging-guide>`\ **:**
| It covers all requirements like desktop entry files, shows how to create an AppImage using modern AppImage creation tools |packaging_optional|

.. centered:: **First-time users, heads up!** Check out our :ref:`ref-quickstart` chapter!
If you want to know about |introduction_content|, read the :ref:`introduction chapter <introduction>`.

In this documentation, all aspects of the AppImage project shall be explained, to have a single unified source of information.
If you want to know about |reference_content|, see the :ref:`reference chapter <reference>`.

------------------

As you can see, this documentation explains all aspects of the AppImage project and serves as a single unified up-to-date source of information.

.. note::
.. centered::
**This documentation contains a lot of valuable information, but there's always something to add.** `Contributions welcome! <https://github.com/AppImage/docs.appimage.org>`_

If you are new to AppImage, please read the introduction. It describes the ideas behind AppImage, shows the motivation, explains why you as a user and/or developer should be interested in AppImages. Also, it explains the core concepts of AppImage's design.

To learn more about *using* AppImages, please read the User Guide. If you are interested in building and distributing AppImages or building software that works with AppImages, please check the Packaging Guide.
**This documentation contains a lot of valuable information, but there's always something to add.** `Contributions welcome! <https://github.com/AppImage/docs.appimage.org>`__

.. toctree::
introduction/index
Expand All @@ -36,3 +43,9 @@ To learn more about *using* AppImages, please read the User Guide. If you are in
contact
:maxdepth: 2
:caption: Contents:

------------------

.. image:: /_static/img/appimage.svg
:align: center
:width: 300px
Loading