{"id":121,"date":"2018-12-10T17:10:54","date_gmt":"2018-12-10T17:10:54","guid":{"rendered":"https:\/\/openbook.ums.edu.my\/userguide\/chapter\/fix-validation-errors\/"},"modified":"2024-09-19T04:19:26","modified_gmt":"2024-09-19T04:19:26","slug":"fix-validation-errors","status":"publish","type":"chapter","link":"https:\/\/openbook.ums.edu.my\/userguide\/chapter\/fix-validation-errors\/","title":{"raw":"Fix Validation Errors","rendered":"Fix Validation Errors"},"content":{"raw":"Pressbooks EPUB and PDF files are made to be compatible with the submission specifications at all major ebook stores and print-on-demand services. However, sometimes markup that isn't compatible with the EPUB or PDF file formats can be imported into Pressbooks when you bring in your content. We recommend testing your files before you submit them to your distributor of choice to make sure they pass all specifications.\n<h1><a id=\"receivingvalidationlogs\" href=\"\"><\/a>Email Yourself\u00a0Validation Logs<\/h1>\nYou can decide whether or not you want to receive validation logs for all your exported files. To enable or modify this setting:\n<ol>\n \t<li>Go to\u00a0<strong>Settings &gt; Export\u00a0<\/strong>from the left sidebar menu in Pressbooks<\/li>\n \t<li>Next to \"Email Validation Logs,\" choose either \"Yes\" or \"No\"<\/li>\n \t<li>Click\u00a0<strong>Save Changes\u00a0<\/strong><\/li>\n<\/ol>\nBy default, all books' Email Validation Log setting is set to \"No. Ignore validation errors.\" If you choose to receive validation logs (or error reports) from Pressbooks, all file validation error logs will be forwarded to the email address associated with your Pressbooks account.\n\n<img class=\"alignnone size-full wp-image-384\" src=\"https:\/\/pressbooks.pub\/app\/uploads\/sites\/4748\/2013\/04\/Screen-Shot-2018-12-11-at-4.59.13-PM.png\" alt=\"Export Settings screen on Pressbooks.com\" width=\"987\" height=\"600\">\n\nAfterward, you'll receive a message whenever any file you export has an error. You'll know exported files contain errors if you see a banner at the top of the Export screen that reads: \"Warning: The export has validation errors. See logs for more details.\"\n\n<img class=\"alignnone size-full wp-image-385\" src=\"https:\/\/pressbooks.pub\/app\/uploads\/sites\/4748\/2022\/10\/Screen-Shot-2018-12-10-at-5.16.31-PM.png\" alt=\"Export validation error banner on the Exports screen. \" width=\"474\" height=\"91\">\n<span style=\"text-align: initial; font-size: 1em;\">\nEach type of file is validated against different standards, so their validation logs will also differ.\u00a0<\/span>\n<h1><a id=\"epubvalidationlogs\" href=\"\"><\/a>Interpret EPUB Validation Logs<\/h1>\nEPUB validation logs will appear in your email inbox with the following subject line:\u00a0<strong>Pressbooks\\Modules\\Export\\Epub\\<\/strong>\n\nBelow is an example of what an error report may look like.\n<div class=\"textbox shaded\">\n\nArray\n(\n[time] =&gt; Mon Dec 10 22:17:33 2018\n[user] =&gt; tmcgrath\n[site_url] =&gt; https:\/\/yourbooktitle.pressbook<wbr>s.com\/wp\n[blog_id] =&gt; 107381\n[theme] =&gt; Atwood\n)\n<strong>ERROR(RSC-020): \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/app\/<wbr>uploads\/sites\/107381\/pressbook<wbr>s\/exports\/Test-Book-2-<wbr>1544480239.epub\/OEBPS\/chapter-<wbr>056-your-chapter.<wbr>html(26,268): 'http:\/\/bit.ly\/btb-v092\"&gt;http:<wbr>\/\/bit.ly\/btb-v092' is not a valid URL.<\/strong>\n\nCheck finished with errors.\n\n<\/div>\nThis sample validation log can be broken down into parts. The initial Array includes specific metadata about your book. You'll see the time the book was exported, the username of the person who exported the book, and the URL of the book in Pressbooks, its ID number, and theme. The error message itself includes several important pieces of information:\n\nERROR<strong>(RSC-020): <\/strong>The part in parenthesis refers to <a href=\"https:\/\/www.w3.org\/publishing\/epubcheck\/docs\/messages\/\">type of validation error produced by EPUBCheck<\/a>. This particular error code is shown when the validator finds an invalid URL.\n\n\/srv\/www\/pressbooks.com\/releases\/20181205114740\/web\/app\/uploads\/sites\/107381\/pressbooks\/exports\/Test-Book-2-1544480239.epub\/OEBPS\/<strong>chapter-035-your-chapter.html:\u00a0<\/strong>The bolded part of this string tells you which part of the EPUB file the validation error was found in. In this example, the message is telling us that the error occurred in chapter 35, which has been titled \"Your Chapter.\" If you saved a chapter before giving it a title, this URL will have the randomly generated slug instead of the chapter's title.\n\n<strong>(26,268):\u00a0<\/strong>The last piece of data from this URL is the exact line and character the error occurs at in your EPUB file's HTML. You can unzip your EPUB file and use a text editor (or Calibre) to open the file in question to inspect the exact location.\n\n<strong>'http:\/\/bit.ly\/btb-v042\"&gt;http:\/\/bit.ly\/btb-v042' is not a valid URL:<\/strong> This part of the message gives us more information about the RSC-020 (invalid URL error). In this case, the error message has provided the offending text which should help you more quickly find and fix the problem in the relevant chapter.\n<h1><a id=\"pdfvalidationlogs\" href=\"\"><\/a>Interpret PDF Validation Logs<\/h1>\nPDF files tend to have fewer validation errors than ebook files. However, errors still sometimes occur. PDF validation logs will appear in your email inbox with the subject line:\u00a0<strong>Pressbooks\\Modules\\Export\\Prince\\Pdf<\/strong>\n\nBelow is an example of what a PDF validation log may look like.\n<div class=\"textbox shaded\">Array\n(\n[time] =&gt; Tue Sep 19 01:09:21 2017\n[user] =&gt; tmcgrath\n[site_url] =&gt; https:\/\/yourbooktitle.pressbo<wbr>oks.com\n[blog_id] =&gt; 64631\n[theme] =&gt; Adunis\n[url] =&gt; http:\/\/yourbooktitle.pressboo<wbr>ks.com\/format\/xhtml?timestamp=<wbr>1505783354&amp;hashkey=d5f7474bad0<wbr>0cfde913572c9fe1caaa9&amp;pb-<wbr>latex-zoom=3&amp;fullsize-images=1\n)\nMon Sep 18 21:09:16 2017: ---- begin\nMon Sep 18 21:09:20 2017<strong>: page 163: warning: no font for Emoticons character U+1F609, fallback to '?'<\/strong>\nMon Sep 18 21:09:21 2017: finished: success\nMon Sep 18 21:09:21 2017: ---- end<\/div>\nThe PDF validation log is straightforward; you'll see the date stamps for the beginning, the flagged errors, the successful finish, and the end of the process. The only part you'll need to look at is the error.\n\nFind an error by looking for the word \"warning\". Each warning will begin with a timestamp. Afterward, you'll see a description of the error. For the example above, on page 163, the PDF converter was unable to find a font in the file that supplied the emoticon character entered by the user.\n\nTo solve an error like the one above, a user can find the page number from the error report, go to its chapter in Pressbooks, and remove the emoticon that caused the problem.\n<h1><a id=\"sasserrorvalidationlogs\" href=\"\"><\/a>SASS Error Validation Logs<\/h1>\nSASS errors report problems with your book's CSS (cascading style sheet). SASS errors appear in your email inbox with the subject line:\u00a0<strong>SASS Error\u00a0<\/strong>\n\nBelow is an example of what a SASS error may look like.\n<div class=\"textbox shaded\">Array\n(\n[time] =&gt; Sun Dec\u00a0 9 23:44:51 2018\n[user] =&gt; mcgratay\n[site_url] =&gt; https:\/\/yourbooktitle.pressbooks.com\/wp\n[blog_id] =&gt; 112926\n[Exception] =&gt; Array\n(\n[code] =&gt; 0\n<strong>\u00a0 [error] =&gt; unclosed block: failed at `` (stdin) on line 49<\/strong>\n[file] =&gt; \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/vendor\/<wbr>leafo\/scssphp\/src\/Parser.php\n[line] =&gt; 128\n[trace] =&gt; #0 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/vendor\/<wbr>leafo\/scssphp\/src\/Parser.php(<wbr>173): Leafo\\ScssPhp\\Parser-&gt;throwPar<wbr>seError('unclosed block')\n#1 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/vendor\/<wbr>leafo\/scssphp\/src\/Compiler.<wbr>php(197): Leafo\\ScssPhp\\Parser-&gt;parse('$<wbr>chapter: 'Chap...')\n#2 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/app\/<wbr>plugins\/pressbooks\/inc\/class-<wbr>sass.php(183): Leafo\\ScssPhp\\Compiler-&gt;compil<wbr>e('$chapter: 'Chap...')\n#3 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/app\/<wbr>plugins\/pressbooks\/inc\/class-<wbr>styles.php(468): Pressbooks\\Sass-&gt;compile('$cha<wbr>pter: 'Chap...', Array)\n#4 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/app\/<wbr>plugins\/pressbooks\/inc\/modules<wbr>\/export\/<span class=\"il\">prince<\/span>\/class-<span class=\"il\">pdf<\/span>.php(<wbr>245): Pressbooks\\Styles-&gt;customize('<wbr><span class=\"il\">prince<\/span>', '\\n\\n@<span class=\"il\">prince<\/span>-<span class=\"il\">pdf<\/span> {...', '\\n\\n@<span class=\"il\">prince<\/span>-<span class=\"il\">pdf<\/span> {...')\n#5 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/app\/<wbr>plugins\/pressbooks\/inc\/modules<wbr>\/export\/<span class=\"il\">prince<\/span>\/class-docraptor<wbr>.php(55): Pressbooks\\Modules\\Export\\Prin<wbr>ce\\<span class=\"il\">Pdf<\/span>-&gt;kneadCss()\n#6 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/app\/<wbr>plugins\/pressbooks\/inc\/modules<wbr>\/export\/class-export.php(744): Pressbooks\\Modules\\Export\\Prin<wbr>ce\\Docraptor-&gt;convert()\n#7 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/wp\/wp-<wbr>includes\/class-wp-hook.php(<wbr>286): Pressbooks\\Modules\\Export\\Expo<wbr>rt::formSubmit('')\n#8 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/wp\/wp-<wbr>includes\/class-wp-hook.php(<wbr>310): WP_Hook-&gt;apply_filters(NULL, Array)\n#9 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/wp\/wp-<wbr>includes\/plugin.php(453): WP_Hook-&gt;do_action(Array)\n#10 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/wp\/wp-<wbr>settings.php(450): do_action('init')\n#11 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/wp-<wbr>config.php(9): require_once('\/srv\/www\/pressb.<wbr>..')\n#12 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/wp\/wp-<wbr>load.php(42): require_once('\/srv\/www\/pressb.<wbr>..')\n#13 \/srv\/www\/pressbooks.com\/releas<wbr>es\/20181205114740\/web\/wp\/wp-<wbr>admin\/admin.php(31): require_once('\/srv\/www\/pressb.<wbr>..')\n#14 {main}\n))<\/div>\nSASS errors are produced by malformed CSS and are typically triggered by something you've added using the <a href=\"https:\/\/pressbooks.pub\/guide\/chapter\/customizing-your-exports-with-custom-styles\/\">Custom Styles feature<\/a>. The important part of the SASS error is the information that comes after:\n\n<strong> \u00a0 [error] =&gt;<\/strong>\n\nIn the example above, the error in the CSS is an \"unclosed block.\" The error log states that the block has failed on line 49. You can go into your CSS, find line 49, and modify the CSS to resolve the error. With this error, the user forgot to add a closing bracket \"}\" to their custom styles. The <a href=\"https:\/\/jigsaw.w3.org\/css-validator\/#validate_by_input\">W3C's CSS Validation tool<\/a> can be very helpful in helping you figure out the source of errors in your custom CSS (and how to resolve them).\n\n&nbsp;","rendered":"<p>Pressbooks EPUB and PDF files are made to be compatible with the submission specifications at all major ebook stores and print-on-demand services. However, sometimes markup that isn&#8217;t compatible with the EPUB or PDF file formats can be imported into Pressbooks when you bring in your content. We recommend testing your files before you submit them to your distributor of choice to make sure they pass all specifications.<\/p>\n<h1><a id=\"receivingvalidationlogs\" href=\"\"><\/a>Email Yourself\u00a0Validation Logs<\/h1>\n<p>You can decide whether or not you want to receive validation logs for all your exported files. To enable or modify this setting:<\/p>\n<ol>\n<li>Go to\u00a0<strong>Settings &gt; Export\u00a0<\/strong>from the left sidebar menu in Pressbooks<\/li>\n<li>Next to &#8220;Email Validation Logs,&#8221; choose either &#8220;Yes&#8221; or &#8220;No&#8221;<\/li>\n<li>Click\u00a0<strong>Save Changes\u00a0<\/strong><\/li>\n<\/ol>\n<p>By default, all books&#8217; Email Validation Log setting is set to &#8220;No. Ignore validation errors.&#8221; If you choose to receive validation logs (or error reports) from Pressbooks, all file validation error logs will be forwarded to the email address associated with your Pressbooks account.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-384\" src=\"https:\/\/pressbooks.pub\/app\/uploads\/sites\/4748\/2013\/04\/Screen-Shot-2018-12-11-at-4.59.13-PM.png\" alt=\"Export Settings screen on Pressbooks.com\" width=\"987\" height=\"600\" \/><\/p>\n<p>Afterward, you&#8217;ll receive a message whenever any file you export has an error. You&#8217;ll know exported files contain errors if you see a banner at the top of the Export screen that reads: &#8220;Warning: The export has validation errors. See logs for more details.&#8221;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-385\" src=\"https:\/\/pressbooks.pub\/app\/uploads\/sites\/4748\/2022\/10\/Screen-Shot-2018-12-10-at-5.16.31-PM.png\" alt=\"Export validation error banner on the Exports screen.\" width=\"474\" height=\"91\" \/><br \/>\n<span style=\"text-align: initial; font-size: 1em;\"><br \/>\nEach type of file is validated against different standards, so their validation logs will also differ.\u00a0<\/span><\/p>\n<h1><a id=\"epubvalidationlogs\" href=\"\"><\/a>Interpret EPUB Validation Logs<\/h1>\n<p>EPUB validation logs will appear in your email inbox with the following subject line:\u00a0<strong>Pressbooks\\Modules\\Export\\Epub\\<\/strong><\/p>\n<p>Below is an example of what an error report may look like.<\/p>\n<div class=\"textbox shaded\">\n<p>Array<br \/>\n(<br \/>\n[time] =&gt; Mon Dec 10 22:17:33 2018<br \/>\n[user] =&gt; tmcgrath<br \/>\n[site_url] =&gt; https:\/\/yourbooktitle.pressbook<wbr \/>s.com\/wp<br \/>\n[blog_id] =&gt; 107381<br \/>\n[theme] =&gt; Atwood<br \/>\n)<br \/>\n<strong>ERROR(RSC-020): \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/app\/<wbr \/>uploads\/sites\/107381\/pressbook<wbr \/>s\/exports\/Test-Book-2-<wbr \/>1544480239.epub\/OEBPS\/chapter-<wbr \/>056-your-chapter.<wbr \/>html(26,268): &#8216;http:\/\/bit.ly\/btb-v092&#8243;&gt;http:<wbr \/>\/\/bit.ly\/btb-v092&#8242; is not a valid URL.<\/strong><\/p>\n<p>Check finished with errors.<\/p>\n<\/div>\n<p>This sample validation log can be broken down into parts. The initial Array includes specific metadata about your book. You&#8217;ll see the time the book was exported, the username of the person who exported the book, and the URL of the book in Pressbooks, its ID number, and theme. The error message itself includes several important pieces of information:<\/p>\n<p>ERROR<strong>(RSC-020): <\/strong>The part in parenthesis refers to <a href=\"https:\/\/www.w3.org\/publishing\/epubcheck\/docs\/messages\/\">type of validation error produced by EPUBCheck<\/a>. This particular error code is shown when the validator finds an invalid URL.<\/p>\n<p>\/srv\/www\/pressbooks.com\/releases\/20181205114740\/web\/app\/uploads\/sites\/107381\/pressbooks\/exports\/Test-Book-2-1544480239.epub\/OEBPS\/<strong>chapter-035-your-chapter.html:\u00a0<\/strong>The bolded part of this string tells you which part of the EPUB file the validation error was found in. In this example, the message is telling us that the error occurred in chapter 35, which has been titled &#8220;Your Chapter.&#8221; If you saved a chapter before giving it a title, this URL will have the randomly generated slug instead of the chapter&#8217;s title.<\/p>\n<p><strong>(26,268):\u00a0<\/strong>The last piece of data from this URL is the exact line and character the error occurs at in your EPUB file&#8217;s HTML. You can unzip your EPUB file and use a text editor (or Calibre) to open the file in question to inspect the exact location.<\/p>\n<p><strong>&#8216;http:\/\/bit.ly\/btb-v042&#8243;&gt;http:\/\/bit.ly\/btb-v042&#8217; is not a valid URL:<\/strong> This part of the message gives us more information about the RSC-020 (invalid URL error). In this case, the error message has provided the offending text which should help you more quickly find and fix the problem in the relevant chapter.<\/p>\n<h1><a id=\"pdfvalidationlogs\" href=\"\"><\/a>Interpret PDF Validation Logs<\/h1>\n<p>PDF files tend to have fewer validation errors than ebook files. However, errors still sometimes occur. PDF validation logs will appear in your email inbox with the subject line:\u00a0<strong>Pressbooks\\Modules\\Export\\Prince\\Pdf<\/strong><\/p>\n<p>Below is an example of what a PDF validation log may look like.<\/p>\n<div class=\"textbox shaded\">Array<br \/>\n(<br \/>\n[time] =&gt; Tue Sep 19 01:09:21 2017<br \/>\n[user] =&gt; tmcgrath<br \/>\n[site_url] =&gt; https:\/\/yourbooktitle.pressbo<wbr \/>oks.com<br \/>\n[blog_id] =&gt; 64631<br \/>\n[theme] =&gt; Adunis<br \/>\n[url] =&gt; http:\/\/yourbooktitle.pressboo<wbr \/>ks.com\/format\/xhtml?timestamp=<wbr \/>1505783354&amp;hashkey=d5f7474bad0<wbr \/>0cfde913572c9fe1caaa9&amp;pb-<wbr \/>latex-zoom=3&amp;fullsize-images=1<br \/>\n)<br \/>\nMon Sep 18 21:09:16 2017: &#8212;- begin<br \/>\nMon Sep 18 21:09:20 2017<strong>: page 163: warning: no font for Emoticons character U+1F609, fallback to &#8216;?&#8217;<\/strong><br \/>\nMon Sep 18 21:09:21 2017: finished: success<br \/>\nMon Sep 18 21:09:21 2017: &#8212;- end<\/div>\n<p>The PDF validation log is straightforward; you&#8217;ll see the date stamps for the beginning, the flagged errors, the successful finish, and the end of the process. The only part you&#8217;ll need to look at is the error.<\/p>\n<p>Find an error by looking for the word &#8220;warning&#8221;. Each warning will begin with a timestamp. Afterward, you&#8217;ll see a description of the error. For the example above, on page 163, the PDF converter was unable to find a font in the file that supplied the emoticon character entered by the user.<\/p>\n<p>To solve an error like the one above, a user can find the page number from the error report, go to its chapter in Pressbooks, and remove the emoticon that caused the problem.<\/p>\n<h1><a id=\"sasserrorvalidationlogs\" href=\"\"><\/a>SASS Error Validation Logs<\/h1>\n<p>SASS errors report problems with your book&#8217;s CSS (cascading style sheet). SASS errors appear in your email inbox with the subject line:\u00a0<strong>SASS Error\u00a0<\/strong><\/p>\n<p>Below is an example of what a SASS error may look like.<\/p>\n<div class=\"textbox shaded\">Array<br \/>\n(<br \/>\n[time] =&gt; Sun Dec\u00a0 9 23:44:51 2018<br \/>\n[user] =&gt; mcgratay<br \/>\n[site_url] =&gt; https:\/\/yourbooktitle.pressbooks.com\/wp<br \/>\n[blog_id] =&gt; 112926<br \/>\n[Exception] =&gt; Array<br \/>\n(<br \/>\n =&gt; 0<br \/>\n<strong>\u00a0 [error] =&gt; unclosed block: failed at `` (stdin) on line 49<\/strong><br \/>\n[file] =&gt; \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/vendor\/<wbr \/>leafo\/scssphp\/src\/Parser.php<br \/>\n[line] =&gt; 128<br \/>\n[trace] =&gt; #0 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/vendor\/<wbr \/>leafo\/scssphp\/src\/Parser.php(<wbr \/>173): Leafo\\ScssPhp\\Parser-&gt;throwPar<wbr \/>seError('unclosed block')<br \/>\n#1 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/vendor\/<wbr \/>leafo\/scssphp\/src\/Compiler.<wbr \/>php(197): Leafo\\ScssPhp\\Parser-&gt;parse('$<wbr \/>chapter: 'Chap...')<br \/>\n#2 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/app\/<wbr \/>plugins\/pressbooks\/inc\/class-<wbr \/>sass.php(183): Leafo\\ScssPhp\\Compiler-&gt;compil<wbr \/>e('$chapter: 'Chap...')<br \/>\n#3 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/app\/<wbr \/>plugins\/pressbooks\/inc\/class-<wbr \/>styles.php(468): Pressbooks\\Sass-&gt;compile('$cha<wbr \/>pter: 'Chap...', Array)<br \/>\n#4 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/app\/<wbr \/>plugins\/pressbooks\/inc\/modules<wbr \/>\/export\/<span class=\"il\">prince<\/span>\/class-<span class=\"il\">pdf<\/span>.php(<wbr \/>245): Pressbooks\\Styles-&gt;customize('<wbr \/><span class=\"il\">prince<\/span>', '\\n\\n@<span class=\"il\">prince<\/span>-<span class=\"il\">pdf<\/span> {...', '\\n\\n@<span class=\"il\">prince<\/span>-<span class=\"il\">pdf<\/span> {...')<br \/>\n#5 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/app\/<wbr \/>plugins\/pressbooks\/inc\/modules<wbr \/>\/export\/<span class=\"il\">prince<\/span>\/class-docraptor<wbr \/>.php(55): Pressbooks\\Modules\\Export\\Prin<wbr \/>ce\\<span class=\"il\">Pdf<\/span>-&gt;kneadCss()<br \/>\n#6 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/app\/<wbr \/>plugins\/pressbooks\/inc\/modules<wbr \/>\/export\/class-export.php(744): Pressbooks\\Modules\\Export\\Prin<wbr \/>ce\\Docraptor-&gt;convert()<br \/>\n#7 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/wp\/wp-<wbr \/>includes\/class-wp-hook.php(<wbr \/>286): Pressbooks\\Modules\\Export\\Expo<wbr \/>rt::formSubmit('')<br \/>\n#8 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/wp\/wp-<wbr \/>includes\/class-wp-hook.php(<wbr \/>310): WP_Hook-&gt;apply_filters(NULL, Array)<br \/>\n#9 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/wp\/wp-<wbr \/>includes\/plugin.php(453): WP_Hook-&gt;do_action(Array)<br \/>\n#10 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/wp\/wp-<wbr \/>settings.php(450): do_action('init')<br \/>\n#11 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/wp-<wbr \/>config.php(9): require_once('\/srv\/www\/pressb.<wbr \/>..')<br \/>\n#12 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/wp\/wp-<wbr \/>load.php(42): require_once('\/srv\/www\/pressb.<wbr \/>..')<br \/>\n#13 \/srv\/www\/pressbooks.com\/releas<wbr \/>es\/20181205114740\/web\/wp\/wp-<wbr \/>admin\/admin.php(31): require_once('\/srv\/www\/pressb.<wbr \/>..')<br \/>\n#14 {main}<br \/>\n))<\/div>\n<p>SASS errors are produced by malformed CSS and are typically triggered by something you've added using the <a href=\"https:\/\/pressbooks.pub\/guide\/chapter\/customizing-your-exports-with-custom-styles\/\">Custom Styles feature<\/a>. The important part of the SASS error is the information that comes after:<\/p>\n<p><strong> \u00a0 [error] =&gt;<\/strong><\/p>\n<p>In the example above, the error in the CSS is an \"unclosed block.\" The error log states that the block has failed on line 49. You can go into your CSS, find line 49, and modify the CSS to resolve the error. With this error, the user forgot to add a closing bracket \"}\" to their custom styles. The <a href=\"https:\/\/jigsaw.w3.org\/css-validator\/#validate_by_input\">W3C's CSS Validation tool<\/a> can be very helpful in helping you figure out the source of errors in your custom CSS (and how to resolve them).<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"author":1,"menu_order":7,"template":"","meta":{"pb_show_title":"","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-121","chapter","type-chapter","status-publish","hentry"],"part":108,"_links":{"self":[{"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/pressbooks\/v2\/chapters\/121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/pressbooks\/v2\/chapters\/121\/revisions"}],"predecessor-version":[{"id":122,"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/pressbooks\/v2\/chapters\/121\/revisions\/122"}],"part":[{"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/pressbooks\/v2\/parts\/108"}],"metadata":[{"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/pressbooks\/v2\/chapters\/121\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/wp\/v2\/media?parent=121"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/pressbooks\/v2\/chapter-type?post=121"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/wp\/v2\/contributor?post=121"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/openbook.ums.edu.my\/userguide\/wp-json\/wp\/v2\/license?post=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}