summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2021-10-19 02:49:28 -0500
committerGary Kramlich <grim@reaperworld.com>2021-10-19 02:49:28 -0500
commit4f2d75a99ba9749e63b07a761d6373a9d04f13f4 (patch)
tree7d31dd61c36f553a5fea42c832408c78bd8b3f46 /doc
parent1493a25aa3dbfccc166c0e80a58483a976dddfc3 (diff)
downloadpidgin-4f2d75a99ba9749e63b07a761d6373a9d04f13f4.tar.gz
Convert pidgin from gtk-doc to gi-docgen
Testing Done: Ran the docs locally and in convey. Reviewed at https://reviews.imfreedom.org/r/1076/
Diffstat (limited to 'doc')
-rw-r--r--doc/reference/pidgin/meson.build82
-rw-r--r--doc/reference/pidgin/pidgin-docs.xml121
-rw-r--r--doc/reference/pidgin/pidgin.toml.in66
-rw-r--r--doc/reference/pidgin/signals_gtkaccount.md21
-rw-r--r--doc/reference/pidgin/signals_gtkaccount.xml41
-rw-r--r--doc/reference/pidgin/signals_gtkblist.md98
-rw-r--r--doc/reference/pidgin/signals_gtkblist.xml146
-rw-r--r--doc/reference/pidgin/signals_gtkconv.md189
-rw-r--r--doc/reference/pidgin/signals_gtkconv.xml273
-rw-r--r--doc/reference/pidgin/signals_gtklog.xml46
-rw-r--r--doc/reference/pidgin/urlmap.js13
-rw-r--r--doc/reference/pidgin/version.xml.in1
12 files changed, 419 insertions, 678 deletions
diff --git a/doc/reference/pidgin/meson.build b/doc/reference/pidgin/meson.build
index 55229bf651..39df411b34 100644
--- a/doc/reference/pidgin/meson.build
+++ b/doc/reference/pidgin/meson.build
@@ -1,54 +1,36 @@
-DOC_MODULE = 'pidgin'
-
-# Header files or dirs to ignore when scanning. Use base file/dir names
-ignore_hfiles = [
- 'pixmaps',
- 'plugins',
- 'themes',
- 'win32',
- 'gtkinternal.h',
- 'pidgin.gresource.h',
- 'pidginprivate.h',
-]
-
-# Extra options to supply to gtkdoc-scan.
-scan_args = [
- '--deprecated-guards=PURPLE_DISABLE_DEPRECATED|PIDGIN_DISABLE_DEPRECATED',
- '--rebuild-types',
- '--rebuild-sections',
- '--ignore-headers=' + ' '.join(ignore_hfiles),
-]
-
-# Extra options to supply to gtkdoc-mkdb.
-mkdb_args = [
- '--ignore-files=' + ' '.join(ignore_hfiles),
-]
-
-# Extra options to supply to fixxref
-fixxref_args = [
- '--extra-dir=../libpurple',
+pidgin_doc_content_files = [
+ 'signals_gtkaccount.md',
+ 'signals_gtkblist.md',
+ 'signals_gtkconv.md',
]
-configure_file(
- input : 'version.xml.in',
- output : 'version.xml',
- configuration : version_conf)
+if get_option('doc')
+ pidgin_toml = configure_file(
+ input : 'pidgin.toml.in',
+ output : 'pidgin.toml',
+ configuration : version_conf,
+ install : true,
+ install_dir : docs_dir / 'pidgin',
+ )
-# Extra SGML files that are included by $(DOC_MAIN_XML_FILE).
-content_files = [
- 'signals_gtkaccount.xml',
- 'signals_gtkblist.xml',
- 'signals_gtkconv.xml',
- 'signals_gtklog.xml',
-]
+ pidgin_doc = custom_target('pidgin-doc',
+ input : [ pidgin_toml, pidgin_gir[0] ],
+ output : 'pidgin',
+ command : [
+ gidocgen,
+ 'generate',
+ '--quiet',
+ '--fatal-warnings',
+ '--config=@INPUT0@',
+ '--output-dir=@OUTPUT@',
+ '--no-namespace-dir',
+ '--content-dir=@0@'.format(meson.current_source_dir()),
+ '@INPUT1@'
+ ],
+ depend_files : [ pidgin_doc_content_files ],
+ build_by_default : true,
+ install : true,
+ install_dir : docs_dir,
+ )
+endif
-pidgin_doc = gnome.gtkdoc(DOC_MODULE,
- main_xml : DOC_MODULE + '-docs.xml',
- src_dir : libpidgin_inc,
- dependencies : libpidgin_dep,
- install : true,
- scan_args : scan_args,
- mkdb_args : mkdb_args,
- fixxref_args : fixxref_args,
- gobject_typesfile : DOC_MODULE + '.types',
- content_files : content_files)
diff --git a/doc/reference/pidgin/pidgin-docs.xml b/doc/reference/pidgin/pidgin-docs.xml
deleted file mode 100644
index 476ce11477..0000000000
--- a/doc/reference/pidgin/pidgin-docs.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-
-<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
-<!ENTITY version SYSTEM "version.xml">
-]>
-<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
- <bookinfo>
- <title>Pidgin Reference Manual</title>
- <abstract>
- <title>Pidgin &version;</title>
- <para>
- Pidgin is a GTK+ frontend to libpurple.
- </para>
- </abstract>
- </bookinfo>
-
- <part id="API">
- <title>API Reference</title>
-
- <xi:include href="xml/gtkaccount.xml" />
- <xi:include href="xml/gtkblist.xml" />
- <xi:include href="xml/gtkconn.xml" />
- <xi:include href="xml/gtkconv.xml" />
- <xi:include href="xml/gtkconvwin.xml" />
- <xi:include href="xml/gtkdialogs.xml" />
- <xi:include href="xml/gtkdnd-hints.xml" />
- <xi:include href="xml/gtkicon-theme-loader.xml" />
- <xi:include href="xml/gtkicon-theme.xml" />
- <xi:include href="xml/gtkidle.xml" />
- <xi:include href="xml/gtkmedia.xml" />
- <xi:include href="xml/gtknotify.xml" />
- <xi:include href="xml/gtkpluginpref.xml" />
- <xi:include href="xml/gtkprivacy.xml" />
- <xi:include href="xml/gtkrequest.xml" />
- <xi:include href="xml/gtkroomlist.xml" />
- <xi:include href="xml/gtksavedstatuses.xml" />
- <xi:include href="xml/gtkstatus-icon-theme.xml" />
- <xi:include href="xml/gtkstatusbox.xml" />
- <xi:include href="xml/gtkutils.xml" />
- <xi:include href="xml/gtkwhiteboard.xml" />
- <xi:include href="xml/gtkxfer.xml" />
- <xi:include href="xml/minidialog.xml" />
- <xi:include href="xml/pidgin.xml" />
- <xi:include href="xml/pidginabout.xml" />
- <xi:include href="xml/pidginaccountactionsmenu.xml" />
- <xi:include href="xml/pidginaccountchooser.xml" />
- <xi:include href="xml/pidginaccountfilterconnected.xml" />
- <xi:include href="xml/pidginaccountfilterprotocol.xml" />
- <xi:include href="xml/pidginaccountsmenu.xml" />
- <xi:include href="xml/pidginaccountstore.xml" />
- <xi:include href="xml/pidginactiongroup.xml" />
- <xi:include href="xml/pidginapplication.xml" />
- <xi:include href="xml/pidginattachment.xml" />
- <xi:include href="xml/pidginavatar.xml" />
- <xi:include href="xml/pidgincellrendererexpander.xml" />
- <xi:include href="xml/pidginclosebutton.xml" />
- <xi:include href="xml/pidgincolor.xml" />
- <xi:include href="xml/pidgincontactcompletion.xml" />
- <xi:include href="xml/pidgincontactlist.xml" />
- <xi:include href="xml/pidginconversationwindow.xml" />
- <xi:include href="xml/pidgincore.xml" />
- <xi:include href="xml/pidgincredentialproviderrow.xml" />
- <xi:include href="xml/pidgincredentialspage.xml" />
- <xi:include href="xml/pidgindebug.xml" />
- <xi:include href="xml/pidgindialog.xml" />
- <xi:include href="xml/pidgingdkpixbuf.xml" />
- <xi:include href="xml/pidginiconname.xml" />
- <xi:include href="xml/pidgininfopane.xml" />
- <xi:include href="xml/pidgininvitedialog.xml" />
- <xi:include href="xml/pidginmenutray.xml" />
- <xi:include href="xml/pidginmessage.xml" />
- <xi:include href="xml/pidginmooddialog.xml" />
- <xi:include href="xml/pidginplugininfo.xml" />
- <xi:include href="xml/pidginpluginsdialog.xml" />
- <xi:include href="xml/pidginpluginsmenu.xml" />
- <xi:include href="xml/pidginprefs.xml" />
- <xi:include href="xml/pidginpresenceicon.xml" />
- <xi:include href="xml/pidginprotocolchooser.xml" />
- <xi:include href="xml/pidginprotocolstore.xml" />
- <xi:include href="xml/pidginscrollbook.xml" />
- <xi:include href="xml/pidginstock.xml" />
- <xi:include href="xml/pidginstylecontext.xml" />
- <xi:include href="xml/pidgintalkatu.xml" />
- </part>
-
- <part id="signals">
- <title>Purple-signals Reference</title>
-
- <xi:include href="signals_gtkaccount.xml" />
- <xi:include href="signals_gtkblist.xml" />
- <xi:include href="signals_gtkconv.xml" />
- <xi:include href="signals_gtklog.xml" />
- </part>
-
- <part>
- <title>Appendices</title>
-
- <index id="api-index-full">
- <title>API Index</title>
- <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
- </index>
-
- <index id="api-deprecated">
- <title>Index of deprecated symbols</title>
- <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
- </index>
-
- <index id="api-3.0.0">
- <title>Index of new symbols in 3.0.0</title>
- <xi:include href="xml/api-index-3.0.0.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-2.10.0">
- <title>Index of new symbols in 2.10.0</title>
- <xi:include href="xml/api-index-2.10.0.xml"><xi:fallback /></xi:include>
- </index>
-
- <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
- </part>
-</book>
diff --git a/doc/reference/pidgin/pidgin.toml.in b/doc/reference/pidgin/pidgin.toml.in
new file mode 100644
index 0000000000..a09e62beaf
--- /dev/null
+++ b/doc/reference/pidgin/pidgin.toml.in
@@ -0,0 +1,66 @@
+[library]
+version = "@PURPLE_VERSION@"
+browse_url = "https://keep.imfreedom.org/pidgin/pidgin/"
+repository_url = "https://keep.imfreedom.org/pidgin/pidgin/"
+website_url = "https://keep.imfreedom.org/pidgin/pidgin/"
+authors = "Pidgin Developers"
+logo_url = ""
+license = "GPL-2.0-or-later"
+description = "Pidgin Universal Chat Client"
+dependencies = [ "GLib-2.0", "GObject-2.0", "Gtk-3.0", "Purple-3.0", "GPlugin-1.0", "GPlugin-Gtk3-1.0", "Talkatu-0.0" ]
+devhelp = true
+search_index = true
+
+ [dependencies."GLib-2.0"]
+ name = "GLib"
+ description = "General-purpose, portable utility library."
+ docs_url = "https://docs.gtk.org/glib/"
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://docs.gtk.org/gobject/"
+
+ [dependencies."Gtk-3.0"]
+ name = "Gtk"
+ description = "The GTK toolkit"
+ docs_url = "https://docs.gtk.org/gtk3/"
+
+ [dependencies."Purple-3.0"]
+ name = "Purple"
+ description = "Purple Universal Chat Library"
+ docs_url = "https://docs.imfreedom.org/purple3/"
+
+ [dependencies."GPlugin-1.0"]
+ name = "GPlugin"
+ description = "GPlugin Plugin Library"
+ docs_urls = "https://docs.imfreedom.org/gplugin/"
+
+ [dependencies."GPlugin-Gtk3-1.0"]
+ name = "GPlugin-Gtk3"
+ description = "GPlugin Gtk3 Widget Library"
+ docs_urls = "https://docs.imfreedom.org/gplugin-gtk3/"
+
+ [dependencies."Talkatu-0.0"]
+ name = "Talkatu"
+ description = "Talkatu Gtk3 Chat Widgets"
+ docs_urls = "https://docs.imfreedom.org/talkatu/"
+
+[theme]
+name = "basic"
+show_index_summary = true
+show_class_hierarchy = true
+
+[source-location]
+base_url = "https://keep.imfreedom.org/pidgin/pidgin/file/default/"
+
+[extra]
+# The same order will be used when generating the index
+content_files = [
+ "signals_gtkaccount.md",
+ "signals_gtkblist.md",
+ "signals_gtkconv.md",
+]
+content_images = [
+]
+urlmap_file = "urlmap.js"
diff --git a/doc/reference/pidgin/signals_gtkaccount.md b/doc/reference/pidgin/signals_gtkaccount.md
new file mode 100644
index 0000000000..617397cc14
--- /dev/null
+++ b/doc/reference/pidgin/signals_gtkaccount.md
@@ -0,0 +1,21 @@
+Title: Account Signals
+Slug: account-signals
+
+## Account Signals
+
+### account-modified
+
+```c
+void user_function(PurpleAccount *account, gpointer user_data);
+```
+
+Emitted when the settings for an account have been changed and saved.
+
+**Parameters:**
+
+**account**
+: The account that has been modified.
+
+**user_data**
+: User data set when the signal handler was connected.
+
diff --git a/doc/reference/pidgin/signals_gtkaccount.xml b/doc/reference/pidgin/signals_gtkaccount.xml
deleted file mode 100644
index fb0fc22a93..0000000000
--- a/doc/reference/pidgin/signals_gtkaccount.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version='1.0' encoding="ISO-8859-1"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-]>
-<chapter id="chapter-signals-gtkaccount">
-<title>Account signals</title>
-
-<refsect1 id="gtkaccounts.signals" role="signal_proto">
-<title role="signal_proto.title">List of signals</title>
-<synopsis>
- &quot;<link linkend="gtkaccounts-account-modified">account-modified</link>&quot;
-</synopsis>
-</refsect1>
-
-<refsect1 id="gtkaccounts.signal-details" role="signals">
-<title role="signals.title">Signal details</title>
-
-<refsect2 id="gtkaccounts-account-modified" role="signal">
- <title>The <literal>&quot;account-modified&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleAccount *account,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted when the settings for an account have been changed and saved.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>account</parameter>&#160;:</term>
- <listitem><simpara>The account that has been modified.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-</refsect1>
-
-</chapter>
diff --git a/doc/reference/pidgin/signals_gtkblist.md b/doc/reference/pidgin/signals_gtkblist.md
new file mode 100644
index 0000000000..dca21bb35b
--- /dev/null
+++ b/doc/reference/pidgin/signals_gtkblist.md
@@ -0,0 +1,98 @@
+Title: Buddy List Signals
+Slug: blist-signals
+
+## Buddy List Signals
+
+### gtkblist-hiding
+
+```c
+void user_function(PurpleBuddyList *blist, gpointer user_data);
+```
+
+Emitted when the buddy list is about to be hidden.
+
+**Parameters:**
+
+**blist**
+: The buddy list.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+### gtkblist-unhiding
+
+```c
+void user_function(PurpleBuddyList *blist, gpointer user_data);
+```
+Emitted when the buddy list is about to be unhidden.
+
+**Parameters:**
+
+**blist**
+: The buddy list.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+### gtkblist-created
+
+```c
+void user_function(PurpleBuddyList *blist, gpointer user_data);
+```
+
+Emitted when the buddy list is created.
+
+**Parameters:**
+
+**blist**
+: The buddy list.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+### drawing-tooltip
+
+```c
+void user_function(PurpleBlistNode *node, GString *text, gboolean full, gpointer user_data);
+```
+
+Emitted just before a tooltip is displayed. `text` is a standard GString, so
+the plugin can modify the text that will be displayed.
+
+**Parameters:**
+
+**node**
+: The blist node for the tooltip.
+
+**text**
+: A pointer to the text that will be displayed.
+
+**full**
+: Whether we're doing a full tooltip for the priority buddy or a compact
+tooltip for a non-priority buddy.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+### drawing-buddy
+
+```c
+char *user_function(PurpleBuddy *buddy, gpointer user_data);
+```
+
+Emitted to allow plugins to handle markup within a buddy's name or to override
+the default of no formatting for names shown in the buddy list.
+
+**Parameters:**
+
+**buddy**
+: A pointer to the PupleBuddy that will be displayed.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+**Returns:**
+
+The text to display (must be allocated), or `NULL` if no changes to the default
+behavior are desired.
+
diff --git a/doc/reference/pidgin/signals_gtkblist.xml b/doc/reference/pidgin/signals_gtkblist.xml
deleted file mode 100644
index 100cdf8b9b..0000000000
--- a/doc/reference/pidgin/signals_gtkblist.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version='1.0' encoding="ISO-8859-1"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-]>
-<chapter id="chapter-signals-gtkblist">
-<title>Buddy List signals</title>
-
-<refsect1 id="gtkblist.signals" role="signal_proto">
-<title role="signal_proto.title">List of signals</title>
-<synopsis>
- &quot;<link linkend="gtkblist-gtkblist-hiding">gtkblist-hiding</link>&quot;
- &quot;<link linkend="gtkblist-gtkblist-unhiding">gtkblist-unhiding</link>&quot;
- &quot;<link linkend="gtkblist-gtkblist-created">gtkblist-created</link>&quot;
- &quot;<link linkend="gtkblist-drawing-tooltip">drawing-tooltip</link>&quot;
- &quot;<link linkend="gtkblist-drawing-buddy">drawing-buddy</link>&quot;
-</synopsis>
-</refsect1>
-
-<refsect1 id="gtkblist.signal-details" role="signals">
-<title role="signals.title">Signal details</title>
-
-<refsect2 id="gtkblist-gtkblist-hiding" role="signal">
- <title>The <literal>&quot;gtkblist-hiding&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleBuddyList *blist,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted when the buddy list is about to be hidden.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>blist</parameter>&#160;:</term>
- <listitem><simpara>The buddy list.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkblist-gtkblist-unhiding" role="signal">
- <title>The <literal>&quot;gtkblist-unhiding&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleBuddyList *blist,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted when the buddy list is about to be unhidden.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>blist</parameter>&#160;:</term>
- <listitem><simpara>The buddy list.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkblist-gtkblist-created" role="signal">
- <title>The <literal>&quot;gtkblist-created&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleBuddyList *blist,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted when the buddy list is created.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>blist</parameter>&#160;:</term>
- <listitem><simpara>The buddy list.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkblist-drawing-tooltip" role="signal">
- <title>The <literal>&quot;drawing-tooltip&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleBlistNode *node,
- GString *text,
- gboolean full,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted just before a tooltip is displayed. <literal>text</literal> is a standard GString, so the plugin can modify the text that will be displayed.
- </para>
- <note><para>
-Make sure to free <literal>*text</literal> before you replace it!
- </para></note>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>node</parameter>&#160;:</term>
- <listitem><simpara>The blist node for the tooltip.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>text</parameter>&#160;:</term>
- <listitem><simpara>A pointer to the text that will be displayed.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>full</parameter>&#160;:</term>
- <listitem><simpara>Whether we're doing a full tooltip for the priority buddy or a compact tooltip for a non-priority buddy.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkblist-drawing-buddy" role="signal">
- <title>The <literal>&quot;drawing-buddy&quot;</literal> signal</title>
-<programlisting>
-char * user_function (PurpleBuddy *buddy,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted to allow plugins to handle markup within a buddy's name or to override the default of no formatting for names shown in the buddy list.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>buddy</parameter>&#160;:</term>
- <listitem><simpara>A pointer to the PurpleBuddy that will be displayed.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis>Returns</emphasis>&#160;:</term>
- <listitem><simpara>The text to display (must be allocated), or <literal>NULL</literal> if no changes to the default behavior are desired.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-</refsect1>
-
-</chapter>
diff --git a/doc/reference/pidgin/signals_gtkconv.md b/doc/reference/pidgin/signals_gtkconv.md
new file mode 100644
index 0000000000..808a65618d
--- /dev/null
+++ b/doc/reference/pidgin/signals_gtkconv.md
@@ -0,0 +1,189 @@
+Title: Conversation Signals
+Slug: conversation-signals
+
+## Conversation signals
+
+### displaying-im-msg
+
+```c
+gboolean
+user_function(PurpleAccount *account,
+ const gchar *who,
+ gchar **message,
+ PurpleConversation *conv,
+ PurpleMessageFlags flags,
+ gpointer user_data);
+```
+
+Emitted just before a message is displayed in an IM conversation. `message` is
+a pointer to a string, so the plugin can replace the message that will be
+displayed. This can also be used to cancel displaying a message by returning
+`TRUE`.
+
+> **NOTE:** Make sure to free `*message` before you replace it!
+
+**Parameters:**
+
+**account**
+: The account.
+
+**who**
+: The name of the user.
+
+**message**
+: A pointer to the message.
+
+**conv**
+: The conversation.
+
+**flags**
+: Flags for this message.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+**Returns:**
+
+`TRUE` if the message should be canceled, or `FALSE` otherwise.
+
+## displayed-im-msg
+
+```c
+void
+user_function(PurpleAccount *account,
+ const gchar *who,
+ gchar *message,
+ PurpleConversation *conv,
+ PurpleMessageFlags flags,
+ gpointer user_data);
+```
+
+Emitted after a message is displayed in an IM conversation.
+
+**Parameters:**
+
+**account**
+: The account.
+
+**who**
+: The name of the user.
+
+**message**
+: The message.
+
+**conv**
+: The conversation.
+
+**flags**
+: Flags for this message.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+### displaying-chat-msg
+
+```c
+gboolean
+user_function(PurpleAccount *account,
+ const gchar *who,
+ gchar **message,
+ PurpleConversation *conv,
+ PurpleMessageFlags flags,
+ gpointer user_data);
+```
+
+Emitted just before a message is displayed in a chat. `message` is a pointer to
+a string, so the plugin can replace the message that will be displayed. This
+can also be used to cancel displaying a message by returning `TRUE`.
+
+> **NOTE:** Make sure to free `*message` before you replace it!
+
+**Parameters:**
+
+**account**
+: The account the message is being displayed and sent on.
+
+**who**
+: The name of the user.
+
+**message**
+: A pointer to the message that will be displayed and sent.
+
+**conv**
+: The conversation the message is being displayed and sent on.
+
+**flags**
+: Flags for this message.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+**Returns:**
+
+`TRUE` if the message should be canceled, or `FALSE` otherwise.
+
+### displayed-chat-msg
+
+```c
+void
+user_function(PurpleAccount *account,
+ const gchar *who,
+ gchar *message,
+ PurpleConversation *conv,
+ PurpleMessageFlags flags,
+ gpointer user_data);
+```
+
+Emitted after a message is displayed in a chat conversation.
+
+**Parameters:**
+
+**account**
+: The account the message is being displayed and sent on.
+
+**who**
+: The name of the user.
+
+**message**
+: A pointer to the message that will be displayed and sent.
+
+**conv**
+: The conversation the message is being displayed and sent on.
+
+**flags**
+: Flags for this message.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+### conversation-switched
+
+```c
+void user_function(PurpleConversation *conv, gpointer user_data);
+```
+
+Emitted when a window switched from one conversation to another.
+
+**Parameters:**
+
+**new_conv**
+: The now active conversation.
+
+**user_data**
+: User data set when the signal handler was connected.
+
+### conversation-displayed
+
+```c
+void user_function(PidginConversation *gtkconv, gpointer user_data);
+```
+
+Emitted right after the Pidgin UI is attached to a new conversation.
+
+**Parameters:**
+
+**gtkconv**
+: The PidginConversation.
+
+**user_data**
+: User data set when the signal handler was connected.
diff --git a/doc/reference/pidgin/signals_gtkconv.xml b/doc/reference/pidgin/signals_gtkconv.xml
deleted file mode 100644
index 4c9fcf5951..0000000000
--- a/doc/reference/pidgin/signals_gtkconv.xml
+++ /dev/null
@@ -1,273 +0,0 @@
-<?xml version='1.0' encoding="ISO-8859-1"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-]>
-<chapter id="chapter-signals-gtkconv">
-<title>Conversation signals</title>
-
-<refsect1 id="gtkconvs.signals" role="signal_proto">
-<title role="signal_proto.title">List of signals</title>
-<synopsis>
- &quot;<link linkend="gtkconvs-conversation-dragging">conversation-dragging</link>&quot;
- &quot;<link linkend="gtkconvs-displaying-im-msg">displaying-im-msg</link>&quot;
- &quot;<link linkend="gtkconvs-displayed-im-msg">displayed-im-msg</link>&quot;
- &quot;<link linkend="gtkconvs-displaying-chat-msg">displaying-chat-msg</link>&quot;
- &quot;<link linkend="gtkconvs-displayed-chat-msg">displayed-chat-msg</link>&quot;
- &quot;<link linkend="gtkconvs-conversation-switched">conversation-switched</link>&quot;
- &quot;<link linkend="gtkconvs-conversation-displayed">conversation-displayed</link>&quot;
-</synopsis>
-</refsect1>
-
-<refsect1 id="gtkconvs.signal-details" role="signals">
-<title role="signals.title">Signal details</title>
-
-<refsect2 id="gtkconvs-conversation-dragging" role="signal">
- <title>The <literal>&quot;conversation-dragging&quot;</literal> signal</title>
-<programlisting>
-void user_function (PidginConvWindow *source,
- PidginConvWindow *destination,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted when a conversation is being drag and dropped between windows.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>source</parameter>&#160;:</term>
- <listitem><simpara>The window where the conversation is.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>destination</parameter>&#160;:</term>
- <listitem><simpara>The window where the conversation will be moved to.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-
-<refsect2 id="gtkconvs-displaying-im-msg" role="signal">
- <title>The <literal>&quot;displaying-im-msg&quot;</literal> signal</title>
-<programlisting>
-gboolean user_function (PurpleAccount *account,
- const char *who,
- char **message,
- PurpleConversation *conv,
- PurpleMessageFlags flags,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted just before a message is displayed in an IM conversation. <literal>message</literal> is a pointer to a string, so the plugin can replace the message that will be displayed. This can also be used to cancel displaying a message by returning <literal>TRUE</literal>.
- </para>
- <note><para>
-Make sure to free <literal>*message</literal> before you replace it!
- </para></note>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>account</parameter>&#160;:</term>
- <listitem><simpara>The account.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>who</parameter>&#160;:</term>
- <listitem><simpara>The name of the user.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>message</parameter>&#160;:</term>
- <listitem><simpara>A pointer to the message.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>conv</parameter>&#160;:</term>
- <listitem><simpara>The conversation.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>flags</parameter>&#160;:</term>
- <listitem><simpara>Flags for this message.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis>Returns</emphasis>&#160;:</term>
- <listitem><simpara><literal>TRUE</literal> if the message should be canceled, or <literal>FALSE</literal> otherwise.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkconvs-displayed-im-msg" role="signal">
- <title>The <literal>&quot;displayed-im-msg&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleAccount *account,
- const char *who,
- char *message,
- PurpleConversation *conv,
- PurpleMessageFlags flags,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted after a message is displayed in an IM conversation.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>account</parameter>&#160;:</term>
- <listitem><simpara>The account.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>who</parameter>&#160;:</term>
- <listitem><simpara>The name of the user.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>message</parameter>&#160;:</term>
- <listitem><simpara>The message.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>conv</parameter>&#160;:</term>
- <listitem><simpara>The conversation.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>flags</parameter>&#160;:</term>
- <listitem><simpara>Flags for this message.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkconvs-displaying-chat-msg" role="signal">
- <title>The <literal>&quot;displaying-chat-msg&quot;</literal> signal</title>
-<programlisting>
-gboolean user_function (PurpleAccount *account,
- const char *who,
- char **message,
- PurpleConversation *conv,
- PurpleMessageFlags flags,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted just before a message is displayed in a chat. <literal>message</literal> is a pointer to a string, so the plugin can replace the message that will be displayed. This can also be used to cancel displaying a message by returning <literal>TRUE</literal>.
- </para>
- <note><para>
-Make sure to free <literal>*message</literal> before you replace it!
- </para></note>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>account</parameter>&#160;:</term>
- <listitem><simpara>The account the message is being displayed and sent on.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>who</parameter>&#160;:</term>
- <listitem><simpara>The name of the user.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>message</parameter>&#160;:</term>
- <listitem><simpara>A pointer to the message that will be displayed and sent.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>conv</parameter>&#160;:</term>
- <listitem><simpara>The conversation the message is being displayed and sent on.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>flags</parameter>&#160;:</term>
- <listitem><simpara>Flags for this message.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis>Returns</emphasis>&#160;:</term>
- <listitem><simpara><literal>TRUE</literal> if the message should be canceled, or <literal>FALSE</literal> otherwise.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkconvs-displayed-chat-msg" role="signal">
- <title>The <literal>&quot;displayed-chat-msg&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleAccount *account,
- const char *who,
- char *message,
- PurpleConversation *conv,
- PurpleMessageFlags flags,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted after a message is displayed in a chat conversation.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>account</parameter>&#160;:</term>
- <listitem><simpara>The account the message is being displayed and sent on.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>who</parameter>&#160;:</term>
- <listitem><simpara>The name of the user.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>message</parameter>&#160;:</term>
- <listitem><simpara>A pointer to the message that will be displayed and sent.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>conv</parameter>&#160;:</term>
- <listitem><simpara>The conversation the message is being displayed and sent on.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>flags</parameter>&#160;:</term>
- <listitem><simpara>Flags for this message.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkconvs-conversation-switched" role="signal">
- <title>The <literal>&quot;conversation-switched&quot;</literal> signal</title>
-<programlisting>
-void user_function (PurpleConversation *conv,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted when a window switched from one conversation to another.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>new_conv</parameter>&#160;:</term>
- <listitem><simpara>The now active conversation.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-<refsect2 id="gtkconvs-conversation-displayed" role="signal">
- <title>The <literal>&quot;conversation-displayed&quot;</literal> signal</title>
-<programlisting>
-void user_function (PidginConversation *gtkconv,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted right after the Pidgin UI is attached to a new conversation.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>gtkconv</parameter>&#160;:</term>
- <listitem><simpara>The PidginConversation.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-</refsect1>
-
-</chapter>
diff --git a/doc/reference/pidgin/signals_gtklog.xml b/doc/reference/pidgin/signals_gtklog.xml
deleted file mode 100644
index e8201a7341..0000000000
--- a/doc/reference/pidgin/signals_gtklog.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version='1.0' encoding="ISO-8859-1"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-]>
-<chapter id="chapter-signals-gtklog">
-<title>Log signals</title>
-
-<refsect1 id="gtklogs.signals" role="signal_proto">
-<title role="signal_proto.title">List of signals</title>
-<synopsis>
- &quot;<link linkend="gtklogs-log-displaying">log-displaying</link>&quot;
-</synopsis>
-</refsect1>
-
-<refsect1 id="gtklogs.signal-details" role="signals">
-<title role="signals.title">Signal details</title>
-
-<refsect2 id="gtklogs-log-displaying" role="signal">
- <title>The <literal>&quot;log-displaying&quot;</literal> signal</title>
-<programlisting>
-void user_function (PidginLogViewer *viewer,
- PurpleLog *log,
- gpointer user_data)
-</programlisting>
- <para>
-Emitted when a log is being displayed.
- </para>
- <variablelist role="params">
- <varlistentry>
- <term><parameter>viewer</parameter>&#160;:</term>
- <listitem><simpara>The log viewer.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>log</parameter>&#160;:</term>
- <listitem><simpara>The log being displayed.</simpara></listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>user_data</parameter>&#160;:</term>
- <listitem><simpara>user data set when the signal handler was connected.</simpara></listitem>
- </varlistentry>
- </variablelist>
-</refsect2>
-
-</refsect1>
-
-</chapter>
diff --git a/doc/reference/pidgin/urlmap.js b/doc/reference/pidgin/urlmap.js
new file mode 100644
index 0000000000..b8718df7c4
--- /dev/null
+++ b/doc/reference/pidgin/urlmap.js
@@ -0,0 +1,13 @@
+// SPDX-FileCopyrightText: 2021 GNOME Foundation
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
+// A map between namespaces and base URLs for their online documentation
+baseURLs = [
+ [ 'GLib', 'https://docs.gtk.org/glib/' ],
+ [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+ [ 'GPlugin', 'https://docs.imfreedom.org/gplugin/' ],
+ [ 'GPlugin-Gtk3', 'https://docs.imfreedom.org/gplugin-gtk3/' ],
+ [ 'Gtk', 'https://docs.gtk.org/gtk3/' ],
+ [ 'Purple3', 'https://docs.imfreedom.org/purple3/' ],
+ [ 'Talkatu', 'https://docs.imfreedom.org/talkatu/' ],
+]
diff --git a/doc/reference/pidgin/version.xml.in b/doc/reference/pidgin/version.xml.in
deleted file mode 100644
index 405528f9af..0000000000
--- a/doc/reference/pidgin/version.xml.in
+++ /dev/null
@@ -1 +0,0 @@
-@PURPLE_VERSION@