一千萬個為什麽

搜索

有效的ePub的最低要求內容是什麽?



我想從頭開始創建我自己的ePub文檔,無需使用任何工具,以便我可以完全控制最終結果。

具有有效ePub文件的所需文件的絕對最小集合是多少?或者,用編程術語來說,ePub會是什麽樣的“你好,世界。”文件看起來像?

轉載註明原文: 有效的ePub的最低要求內容是什麽?

一共有 2 個回答:

這是一個epub 3.0文件,可以通過 epubcheck 3.0.1 (本文撰寫之時的當前版本)進行驗證。當然,還有更多的信息可以(而且應該)進入,但是您要求最低限度。我們將從文件結構開始:在根目錄中,有一個mimetype文件和兩個文件夾 - OEBPS和META-INF。這裏是mimetype文件的內容:

application/epub+zip

請務必不要在那裏有任何退貨/換行符。 在META-INF文件夾中,有一個文件,即container.xml:

<?xml version="1.0"?>

  
    
  

在OEBPS文件夾中,事情變得稍微復雜一些。首先是content.opf文件:

<?xml version="1.0" encoding="UTF-8" ?>


<metadata>
    Title
    isbn
    <meta property="dcterms:modified">2014-03-27T09:14:09Z
    en



    
    
    
    



    



然後是toc.xhtml文件:

<?xml version="1.0" encoding="utf-8"?>

<head>
<title>toc.xhtml</title>
<link href="template.css" rel="stylesheet" type="text/css" />
</head>

<body>

    
</body>

</html>

最後,我們有電子書本身的內容,在這種情況下是1_hello.xhtml:

<?xml version="1.0" encoding="utf-8"?>

<head>
<title>1_hello.xhtml</title>
<link href="template.css" rel="stylesheet" type="text/css" />
</head>

<body>

    

Hello World!

</body>
</html> 

作為獎勵,還有一個toc.ncx文件。這並非必須是有效的,但如果您希望本書在epub 2.0.1設備上具有工作目錄(這幾乎是所有這些設備):

<?xml version="1.0" encoding="UTF-8" ?>


<head>
    <meta name="dtb:uid" content="isbn"/>
    <meta name="dtb:depth" content="1"/>
</head>


    



    
        cover
        
    



還有那裏的template.css,它只是一個CSS樣式表。在這種情況下,它看起來像這樣:

h1 {
  text-align: center;
}

就是這樣!對於更復雜的內容,可以在 https://code.google.com/p處獲取許多免費的epub 3示例/ epub的采樣/

關於我對Tom的ePub的評論沒有驗證,他的第13行的 toc.xhtml 中有一個錯誤,應該編碼為

  • Hello
  • 這將從IDPF驗證器生成錯誤消息,如下所示:

    enter image description here

    關於3.0版ePub,我不同意並相信應該指出,當ePub僅作為ePub 3.0格式構建時,它將不會在epubcheck中驗證3.0以外的版本。這可以通過終端使用 epubcheck命令行來實現和測試(這是不同的題)。

    如果提供的ePub已提交並針對epubcheck 2.0版運行,則它將失敗,原因如下:

      屬性的值無效;必須等於“2.0”
    • 屬性“屬性”不允許在這裏;預期屬性“content”,“id”,“name”,“scheme”或“xml:lang”
    • 元素“meta”缺少必需的屬性“content”和“name”
    • 文字不允許在這裏;預計元素結束標記
    • 屬性“屬性”不允許在這裏;預期屬性“fallback”,“fallback-style”,“href”,“media-type”,“required-modules”或“required-namespace”
    • 元素“nav”不能在任何地方使用;預期元素“地址”,“塊引用”,“del”,“div”,“dl”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6”,“hr” “ins”,“noscript”,“ns:svg”,“ol”,“p”,“pre”,“script”,“table”或“ul”(帶有xmlns:ns =“http:// www。 w3.org/2000/svg“)</代碼>
    • 元素“nav”不能在任何地方使用;預期元素“地址”,“塊引用”,“del”,“div”,“dl”,“h1”,“h2”,“h3”,“h4”,“h5”,“h6”,“hr” “ins”,“noscript”,“ns:svg”,“ol”,“p”,“pre”,“script”,“table”或“ul”(帶有xmlns:ns =“http:// www。 w3.org/2000/svg“)</代碼>

    這顯示了我對工業標準的論點是,可以構建 version 2.0 ePub CAN以支持運行 version 3.0 的設備並與其一起工作,並且應將其編碼為質量和驗證。

    另外,如果我們正在討論ePub的結構。使用OEBPS文件結構在技術上是針對版本1中的ePub的。因為只要 container.xml 指向並找到一個真正的 .opf文件結構是什麽文件我請求並構建我的ePubs,如下所示:

    META-INF
    -container.xml
    xhtml
    -toc.xhtml
    -.xhtml files
    css
    -stylesheet.css
    content.opf
    toc.ncx
    mimetype
    

    在OEBPS , OPS 中找到 .opf.ncx 文件,維護起來更容易, >, OPF 等等文件結構。

    同樣我也是評論我的代碼的一個忠實粉絲,因為它不會改變我的代碼清單的性能:

    
        <!-- .ncx -->
        
    
        <!-- .xhtml -->
        
        
    
        <!-- .css -->