Subscribe to feed

In a recent ePUB I got lazy. Rather than having separate XHTML files for each section I kept them in larger files and used HTML anchor and name tags to match them up. Problem is this doesn’t work.

What I had was one file per chapter, divided into sections. So my content.xhtml looked like this:

<h1>Chapter Title</h1>
<h2><a name="part1"></a>First Part</h2>
...
<h2><a name="part2"></a>Second Part</h2>
...
<h2><a name="part3"></a>Third Part</h2>
...

This was then accessed from toc.ncx as follows. Important link bits in bold:

...
<navPoint playOrder=11><navLabel><text>Chapter Title</text></navLabel>
  <content src="chapter.xhtml" /></navPoint>
<navPoint playOrder=12><navLabel><text>Part 1</text></navLabel>
  <content src="chapter.xhtml#part1" /></navPoint>
<navPoint playOrder=13><navLabel><text>Part 2</text></navLabel>
  <content src="chapter.xhtml#part2" /></navPoint>
<navPoint playOrder=14><text>Part </text></navLabel>
  <content src="chapter.xhtml#part3" /></navPoint>
...

None of these TOC links work when published as an ePUB (testing in Adobe Digital Editions).

Bit of digging (this helped) and testing, and issue is with the “name” piece. These are not recognised. Instead you need to use IDs.

The good news is you don’t have to change the toc.ncx references, or any other references to the sections. Only the targets need to change. Edit your content from:

<h2><a name="part1">First Part</h2>

To any of the following:

<h2><a id="part1"></a>First Part</h2>
<h2><a id="part1" name="part1"></a>First Part</h2>
<h2 id="part1">First Part</h2>

Obviously the third option (add the ID to the heading itself) is the cleanest. However the first option is the one easiest to implement via global search and replace. Which means it was the one I chose.

Share

One of the most annoying omissions in Sharepoint 2007 is the inability to share calendars between sites and subsites:

  • maintain a master calendar and view it (or part of it) in a subsite, or
  • maintain a calendar in the subsite and “roll it up” with other subsite calendars to a master view in the main site.

Apparently this is rectified in Sharepoint 2010 but if you’re unable to upgrade, and aren’t allowed to build your own webparts, you’ve to look elsewhere for a solution:

  • use a 3rd party webpart (can recommend the Bamboo Solutions offering having used it elsewhere), or
  • hacking together via the page viewer webpart (I never got this to work but your mileage may vary)

However this article describes a 3rd option we implemented which met the requirement by not using calendars at all.  Instead we used XML.

Share

Just had a frustrating issue in building a new ePUB where the validation (thanks Threepress) failed saying the OPF file was missing. Even though it was there clear as day in the source files.

If you do have an .OPF file but get this error, then the issue is not with this file at all, but with container.xml (which lives in the META-INF folder). This file does little more than point to your .OPF file. The error therefore arises if it points in the wrong direction.

In my instance the issue was caused by using an ePUB template/shell with a different default value for the filename and path to the .OPF. Note if I’d been paying attention the error message gives you all the information needed to resolve the issue since it reports a different filename for the .OPF to the one created. If they don’t match then container.xml is the culprit.

Here’s the all important line in container.xml. Make sure the name and match match your own construction.

<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
Share

From William Morris (Beauty of Life, 1980):

If you want a golden rule that will fit everybody, this is it. Have nothing in your houses that you do not know to be useful, or believe to be beautiful.

Quoted by Donald Norman in Emotional Design, 2004.

Share

From Bjarne Stroustrup, quoted in Top 50 Programming Quotes of all Time:

I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.

Share

Whenever you record an action within a UPK capture, it uses a template to determine how to describe each action you complete. You can customise this template text so that steps are presented in a language and format that best fits your requirements. Your customisations are then automatically applied across all your published outputs: simulations and documentation.

Note this topic explains how to change the standard text for all steps, and all captures. If you just want to make a one-off edit to the text in a single step you can make your life easier by just editing it directly. Just click the Insert template text as user text button in the frame properties and edit away.

How template files are organised and applied

UPK provides separate template files for each language. To find the current files for your required language open your library and navigate to System > Templates. The template files are organised in separate folders for each language:

Share

From Evgeny Morozov, quoted in a Gizmodo article on the subject of the week (year?), wikileaks: The reaction of governments to Wikileaks should scare the hell out of you..

Wikileaks is what happens when the entire US government is forced to go through a full body scanner.

Share

if you want to get a quick picture of how wide and varied the eBook market is, visit the UK Book Depository and choose to customise your preferred reader for eBooks. It gives you a great list of devices to choose from:

It’s a wide market!

The iPad is highlighted above as I was looking for books for it. And interestingly, even though it supports the ePUB standard (and they recognise it does on the site) they say they’ve no books. DRM strikes (itself in the foot) again!

Share

There are probably a million reasons why UPK does not work when published on your LMS. This may help resolve one of them.

Just created a LMS package without issue. But when publishing on our LMS (we’re using Oracle iLearn) the module would work fine until I try to run one of the simulations. After clicking “See It”, “Try it” or “Know It”, nothing would happen.

Turns out the reason why not was because I’d built the package with the wrong version of SCORM. When publishing (and SCORM version is set when publishing, not as part of the UPK options), UPK defaults to SCORM version 1.3 (2004).

However our LMS is only at 1.2. So the reason why the simulations were not loaded was simply that the package and LMS could not communicate over progress/status.

Changing the SCORM version to 1.2 in UPK, and republishing the LMS package, resolved the issue. The package now presents, completes and tracks perfectly.

[Annoyingly, this setting is not saved so you have to remember to reset it each time you publish. Would be better as a global option - you listening Oracle?]

Share