docs: Move the GMarkup SECTION

Move the content to the new markup.md file.

Helps: #3037
This commit is contained in:
Matthias Clasen 2023-09-24 21:22:36 -04:00 committed by Philip Withnall
parent 3d55be0b82
commit 8b9c4cfb87
4 changed files with 52 additions and 54 deletions

View File

@ -62,6 +62,7 @@ content_files = [
"reference-counting.md",
"testing.md",
"threads.md",
"markup.md",
]
content_images = [
"file-name-encodings.png",

View File

@ -0,0 +1,50 @@
Title: Simple XML Subset Parser
SPDX-License-Identifier: LGPL-2.1-or-later
SPDX-FileCopyrightText: 2011, 2014 Matthias Clasen
SPDX-FileCopyrightText: 2012 David King
# Simple XML Subset Parser
The "GMarkup" parser is intended to parse a simple markup format
that's a subset of XML. This is a small, efficient, easy-to-use
parser. It should not be used if you expect to interoperate with
other applications generating full-scale XML, and must not be used if you
expect to parse untrusted input. However, it's very useful for application
data files, config files, etc. where you know your application will be the
only one writing the file.
Full-scale XML parsers should be able to parse the subset used by
GMarkup, so you can easily migrate to full-scale XML at a later
time if the need arises.
GMarkup is not guaranteed to signal an error on all invalid XML;
the parser may accept documents that an XML parser would not.
However, XML documents which are not well-formed (which is a
weaker condition than being valid. See the
[XML specification](http://www.w3.org/TR/REC-xml/)
for definitions of these terms.) are not considered valid GMarkup
documents.
## Simplifications to XML
The simplifications compared to full XML include:
- Only UTF-8 encoding is allowed
- No user-defined entities
- Processing instructions, comments and the doctype declaration
are "passed through" but are not interpreted in any way
- No DTD or validation
The markup format does support:
- Elements
- Attributes
- 5 standard entities: `&` `<` `>` `"` `'`
- Character references
- Sections marked as CDATA
## An example parser
Here is an example for a markup parser:
[markup-example.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/glib/tests/markup-example.c)

View File

@ -160,6 +160,7 @@ expand_content_files = [
'running.md',
'testing.md',
'threads.md',
'markup.md',
]
glib_gir = meson.current_source_dir() / 'GLib-2.0.gir'

View File

@ -38,60 +38,6 @@
#include "glibintl.h"
#include "gthread.h"
/**
* SECTION:markup
* @Title: Simple XML Subset Parser
* @Short_description: parses a subset of XML
* @See_also: [XML Specification](http://www.w3.org/TR/REC-xml/)
*
* The "GMarkup" parser is intended to parse a simple markup format
* that's a subset of XML. This is a small, efficient, easy-to-use
* parser. It should not be used if you expect to interoperate with
* other applications generating full-scale XML, and must not be used if you
* expect to parse untrusted input. However, it's very
* useful for application data files, config files, etc. where you
* know your application will be the only one writing the file.
* Full-scale XML parsers should be able to parse the subset used by
* GMarkup, so you can easily migrate to full-scale XML at a later
* time if the need arises.
*
* GMarkup is not guaranteed to signal an error on all invalid XML;
* the parser may accept documents that an XML parser would not.
* However, XML documents which are not well-formed (which is a
* weaker condition than being valid. See the
* [XML specification](http://www.w3.org/TR/REC-xml/)
* for definitions of these terms.) are not considered valid GMarkup
* documents.
*
* Simplifications to XML include:
*
* - Only UTF-8 encoding is allowed
*
* - No user-defined entities
*
* - Processing instructions, comments and the doctype declaration
* are "passed through" but are not interpreted in any way
*
* - No DTD or validation
*
* The markup format does support:
*
* - Elements
*
* - Attributes
*
* - 5 standard entities: & < > " '
*
* - Character references
*
* - Sections marked as CDATA
* ## An example parser # {#example}
*
* Here is an example for a markup parser:
* [markup-example.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/glib/tests/markup-example.c)
*/
G_DEFINE_QUARK (g-markup-error-quark, g_markup_error)
typedef enum