<!-- This is the Document Type Definition for font configuration files -->
-<!ELEMENT fontconfig (dir |
+<!ELEMENT fontconfig (alias |
cache |
cachedir |
- include |
config |
- selectfont |
- match |
- alias)* >
+ description |
+ dir |
+ include |
+ match |
+ remap-dir |
+ reset-dirs |
+ selectfont)* >
<!--
Add a directory that provides fonts
-->
<!ELEMENT dir (#PCDATA)>
-<!ATTLIST dir xml:space (default|preserve) 'preserve'>
+<!ATTLIST dir
+ prefix (default|xdg|relative|cwd) "default"
+ xml:space (default|preserve) 'preserve'>
<!--
Define the per-user file that holds cache font information.
If the filename begins with '~', it is replaced with the users
home directory path.
+
+ If 'prefix' is 'default' or 'cwd', then the current working directory will be added prior to the value.
+ If 'prefix' is 'xdg', then the value in the $XDG_DATA_HOME will be added prior to the value.
+ If 'prefix' is 'relative', then the path of current file will be added prior to the value.
-->
<!ELEMENT cache (#PCDATA)>
<!ATTLIST cache xml:space (default|preserve) 'preserve'>
home directory path.
-->
<!ELEMENT cachedir (#PCDATA)>
-<!ATTLIST cachedir xml:space (default|preserve) 'preserve'>
+<!ATTLIST cachedir
+ prefix CDATA "default"
+ xml:space (default|preserve) 'preserve'>
+
+<!--
+ Set a string as a description for the targeted config file
+
+ Set 'domain' to change where to pull translations from.
+ This will be done through gettext.
+-->
+<!ELEMENT description (#PCDATA)>
+<!ATTLIST description
+ domain CDATA "fontconfig-conf">
<!--
Reference another configuration file; note that this
<!ELEMENT include (#PCDATA)>
<!ATTLIST include
ignore_missing (no|yes) "no"
+ prefix CDATA "default"
+ deprecated (yes|no) "no"
xml:space (default|preserve) "preserve">
<!--
the set of valid Unicode chars. This idea
was borrowed from Mozilla
-->
-<!ELEMENT blank (int)*>
+<!ELEMENT blank (int|range)*>
<!--
Aliases are just a special case for multiple match elements
</edit>
</match>
-->
+
+<!--
+ Map a font path as the path "as-path"
+-->
+<!ELEMENT remap-dir (#PCDATA)>
+<!ATTLIST remap-dir
+ as-path CDATA #REQUIRED
+ prefix (default|xdg|relative|cwd) "default"
+ xml:space (default|preserve) "preserve">
+
+<!--
+ Reset the list of fonts directories
+-->
+<!ELEMENT reset-dirs EMPTY>
+
<!--
Periodically rescan the font configuration and
directories to synch internal state with filesystem
<!ELEMENT pattern (patelt)*>
-<!ENTITY % constant 'int|double|string|matrix|bool|charset|const'>
+<!ENTITY % constant 'int|double|string|matrix|bool|charset|langset|const'>
<!ELEMENT patelt (%constant;)*>
<!ATTLIST patelt
name CDATA #REQUIRED>
-<!ELEMENT alias (family*, prefer?, accept?, default?)>
+<!ELEMENT alias (test?, family*, prefer?, accept?, default?)>
<!ATTLIST alias
binding (weak|strong|same) "weak">
<!ELEMENT prefer (family)*>
<!ELEMENT family (#PCDATA)>
<!ATTLIST family xml:space (default|preserve) 'preserve'>
-<!ENTITY % expr 'int|double|string|matrix|bool|charset
+<!ENTITY % expr 'int|double|string|matrix|bool|charset|langset
|name|const
|or|and|eq|not_eq|less|less_eq|more|more_eq|contains|not_contains
|plus|minus|times|divide|not|if|floor|ceil|round|trunc'>
if 'target' is 'font', execute the match on the result of a font
selection.
-->
-<!ELEMENT match (test*, edit*)>
+<!ELEMENT match (test|edit)+>
<!ATTLIST match
target (pattern|font|scan) "pattern">
qual (any|all|first|not_first) "any"
name CDATA #REQUIRED
target (pattern|font|default) "default"
+ ignore-blanks (true|false) "false"
compare (eq|not_eq|less|less_eq|more|more_eq|contains|not_contains) "eq">
<!--
<!ELEMENT edit (%expr;)*>
<!ATTLIST edit
name CDATA #REQUIRED
- mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
+ mode (assign|assign_replace|prepend|append|prepend_first|append_last|delete|delete_all) "assign"
binding (weak|strong|same) "weak">
<!--
<!ATTLIST double xml:space (default|preserve) 'preserve'>
<!ELEMENT string (#PCDATA)>
<!ATTLIST string xml:space (default|preserve) 'preserve'>
-<!ELEMENT matrix (double,double,double,double)>
+<!ELEMENT matrix ((%expr;), (%expr;), (%expr;), (%expr;))>
<!ELEMENT bool (#PCDATA)>
<!ELEMENT charset (int|range)*>
<!ELEMENT range (int,int)>
+<!ELEMENT langset (string)*>
<!ELEMENT name (#PCDATA)>
-<!ATTLIST name xml:space (default|preserve) 'preserve'>
+<!ATTLIST name xml:space (default|preserve) 'preserve'
+ target (default|font|pattern) 'default'>
<!ELEMENT const (#PCDATA)>
<!ATTLIST const xml:space (default|preserve) 'preserve'>
<!ELEMENT or (%expr;)*>