summary refs log tree commit diff
path: root/nixos/doc/manual/options-to-docbook.xsl
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-29 16:52:40 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-29 17:39:31 +0100
commit60c4c468f17900e1aaaec82a404ebefe082e5f24 (patch)
tree318677c85a5bc888a24827e35696b169629c0202 /nixos/doc/manual/options-to-docbook.xsl
parentb64f43cdbd5bb5c9586b299d257aa4e17417a998 (diff)
downloadnixlib-60c4c468f17900e1aaaec82a404ebefe082e5f24.tar
nixlib-60c4c468f17900e1aaaec82a404ebefe082e5f24.tar.gz
nixlib-60c4c468f17900e1aaaec82a404ebefe082e5f24.tar.bz2
nixlib-60c4c468f17900e1aaaec82a404ebefe082e5f24.tar.lz
nixlib-60c4c468f17900e1aaaec82a404ebefe082e5f24.tar.xz
nixlib-60c4c468f17900e1aaaec82a404ebefe082e5f24.tar.zst
nixlib-60c4c468f17900e1aaaec82a404ebefe082e5f24.zip
Manual: Render strings containing special characters as indented strings
Diffstat (limited to 'nixos/doc/manual/options-to-docbook.xsl')
-rw-r--r--nixos/doc/manual/options-to-docbook.xsl10
1 files changed, 8 insertions, 2 deletions
diff --git a/nixos/doc/manual/options-to-docbook.xsl b/nixos/doc/manual/options-to-docbook.xsl
index c44a8575978a..05a891f8ac08 100644
--- a/nixos/doc/manual/options-to-docbook.xsl
+++ b/nixos/doc/manual/options-to-docbook.xsl
@@ -90,8 +90,14 @@
 
 
   <xsl:template match="string">
-    <!-- !!! escaping -->
-    <xsl:text>"</xsl:text><xsl:value-of select="str:replace(str:replace(str:replace(@value, '\', '\\'), '&quot;', '\&quot;'), '&#010;', '\n')" /><xsl:text>"</xsl:text>
+    <xsl:choose>
+      <xsl:when test="(contains(@value, '&quot;') or contains(@value, '\')) and not(contains(@value, '&#010;'))">
+        <xsl:text>''</xsl:text><xsl:value-of select='str:replace(@value, "${", "&apos;&apos;${")' /><xsl:text>''</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>"</xsl:text><xsl:value-of select="str:replace(str:replace(str:replace(@value, '\', '\\'), '&quot;', '\&quot;'), '&#010;', '\n')" /><xsl:text>"</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
   </xsl:template>