Создание электронных книг в формате FictionBook 2.1: практическое руководство. Версия 1.0 PreRelease от 17.09.2009 г (Кондратович) - страница 16

Кроме того, за бугром подрастает зубастый конкурент — e-Pub. Конечно, можно успокаивать себя, что в Рунете он не прижился. Но продвижение FB3 за рубеж он может подпортить самым решительным образом.

Конечно, за FB3 стоит уже не горстка энтузиастов, а солидная компания — «ЛитРес». Что добавляет в нашу бочку меда еще один черпачок дёгтя.

Велик соблазн сделать из FB3 чисто коммерческий формат. Тем более, что навесить DRM на zip-архив на порядок проще, чем на текстовый XML. Конечно, навряд ли FB3 станет закрытым форматом. Это, как говорится, из области фантастики. Но в том, что продвинутые средства разработки останутся монополией «ЛитРес»-а, можно даже не сомневаться. Что, несомненно, «добавит» формату привлекательности.

Впрочем, автор книги искренне надеется, что последние абзацы так и останутся параноидальными домыслами, а FB3 сравнится по популярности с MP3. К вящей радости читателей…

Часть II

Подробное описание формата FictionBook

§ 2.1 Структура файла FictionBook.

Базовые понятия

Книга FictionBook представляет собой XML-файл.

Структурно этот файл можно разделить на три части.

1) Desсription — заголовок (описание) книги;

2) Body — непосредственно текст книги. В книге может быть несколько body.

3) Binary — необязательная часть. Содержит бинарные файлы, в кодировке BASE64. [2.1] Как правило, это картинки.

§ 2.2 Пример книги в формате FictionBook

Cпецификация (schema) FictionBook находится на сайте Дмитрия Грибова, а также входит в комплект FB Tools. Поэтому размещать ее в электронной версии книги смысла нет.

Но пример книги в формате FictionBook привести необходимо:

 

 

   reference

  

    Имя автора

    Фамилия автора

    Юзич

  

   Пример книги в формате FictionBook 2.1

  

   

Это пример книги в формате FictiionBook

  

   14 апреля 2006 г.

   ru

 

 

  

    Юзич

  

   FB Tools

   2006-04-14

   1E693E16-8A80-4391-9800-C1A91A5E29A7

   1.0

  

   

v 1.0 — создание книги (Юзич)

  

 

 

 

  </p><p>   <p>Юзич</p></p><p>   <p>ПРИМЕР КНИГИ В ФОРМАТЕ FictionBook 2.1</p></p></div></div></div> <!-- Yandex.RTB R-A-5620643-7 --> <div id="yandex_rtb_R-A-5620643-7" class="rkl"><div class="rasporka"></div></div> <script> window.yaContextCb.push(()=>{ Ya.Context.AdvManager.render({ "blockId": "R-A-5620643-7", "renderTo": "yandex_rtb_R-A-5620643-7" }) }) </script> <div class="text-center "> <a class="btn mt-standard" href="/read_51954_17" > Следующая страница </a> </div> </section> <section> <div class="bottom-nav clr"> <nav class="pagi-nav fx-row fx-center"> <ul class="navigation"> <li class="page-item"> <a class="page-link" rel="prev" href="/read_51954_15">« </a> </li> <li class="page-item"> <a class="page-link" href="/read_51954_15">15</a> </li> <li class="page-item active"> <span class="page-link">16</span> </li> <li class="page-item"> <a class="page-link" href="/read_51954_17">17</a> </li> <li class="page-item"> <a class="page-link" rel="next" href="/read_51954_17"> »</a> </li> </ul> </nav> </div> <div class="text-center"> <label for="reader-pagination-page mt-1"> Перейти на страницу </label> <select name="page" class="js-reader-pagination__page-select" data-target-path="/read_51954_1" > <option value="1" >1</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> <option value="5" >5</option> <option value="6" >6</option> <option value="7" >7</option> <option value="8" >8</option> <option value="9" >9</option> <option value="10" >10</option> <option value="11" >11</option> <option value="12" >12</option> <option value="13" >13</option> <option value="14" >14</option> <option value="15" >15</option> <option value="16" selected>16</option> <option value="17" >17</option> <option value="18" >18</option> <option value="19" >19</option> <option value="20" >20</option> <option value="21" >21</option> <option value="22" >22</option> <option value="23" >23</option> <option value="24" >24</option> <option value="25" >25</option> <option value="26" >26</option> <option value="27" >27</option> <option value="28" >28</option> <option value="29" >29</option> <option value="30" >30</option> <option value="31" >31</option> <option value="32" >32</option> <option value="33" >33</option> <option value="34" >34</option> <option value="35" >35</option> <option value="36" >36</option> <option value="37" >37</option> <option value="38" >38</option> <option value="39" >39</option> <option value="40" >40</option> <option value="41" >41</option> <option value="42" >42</option> <option value="43" >43</option> <option value="44" >44</option> <option value="45" >45</option> <option value="46" >46</option> <option value="47" >47</option> <option value="48" >48</option> <option value="49" >49</option> <option value="50" >50</option> <option value="51" >51</option> <option value="52" >52</option> <option value="53" >53</option> <option value="54" >54</option> <option value="55" >55</option> <option value="56" >56</option> <option value="57" >57</option> <option value="58" >58</option> <option value="59" >59</option> <option value="60" >60</option> <option value="61" >61</option> <option value="62" >62</option> <option value="63" >63</option> <option value="64" >64</option> <option value="65" >65</option> <option value="66" >66</option> <option value="67" >67</option> <option value="68" >68</option> <option value="69" >69</option> <option value="70" >70</option> <option value="71" >71</option> <option value="72" >72</option> <option value="73" >73</option> <option value="74" >74</option> <option value="75" >75</option> <option value="76" >76</option> <option value="77" >77</option> <option value="78" >78</option> <option value="79" >79</option> <option value="80" >80</option> <option value="81" >81</option> <option value="82" >82</option> <option value="83" >83</option> <option value="84" >84</option> <option value="85" >85</option> <option value="86" >86</option> <option value="87" >87</option> <option value="88" >88</option> <option value="89" >89</option> <option value="90" >90</option> <option value="91" >91</option> <option value="92" >92</option> <option value="93" >93</option> <option value="94" >94</option> <option value="95" >95</option> <option value="96" >96</option> <option value="97" >97</option> <option value="98" >98</option> <option value="99" >99</option> <option value="100" >100</option> <option value="101" >101</option> <option value="102" >102</option> <option value="103" >103</option> <option value="104" >104</option> <option value="105" >105</option> <option value="106" >106</option> <option value="107" >107</option> <option value="108" >108</option> <option value="109" >109</option> <option value="110" >110</option> <option value="111" >111</option> <option value="112" >112</option> <option value="113" >113</option> <option value="114" >114</option> <option value="115" >115</option> <option value="116" >116</option> <option value="117" >117</option> <option value="118" >118</option> <option value="119" >119</option> <option value="120" >120</option> <option value="121" >121</option> <option value="122" >122</option> <option value="123" >123</option> <option value="124" >124</option> <option value="125" >125</option> <option value="126" >126</option> <option value="127" >127</option> <option value="128" >128</option> <option value="129" >129</option> </select> </div> </section> </div> </main> </div> </div> </div> </div> </main> </div> </div> <footer class="footer fx-row fx-middle"> <ul class="footer-menu fx-row fx-end fx-1"> <li>Для связи и правообладателям: <a href="mailto:libs.pbn@gmail.com">libs.pbn@gmail.com</a></li> </ul> </footer> </div> </div> <script src="/build/runtime.5332280c.js" defer></script><script src="/build/site.a0b75d60.js" defer></script> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://cdn.jsdelivr.net/npm/yandex-metrica-watch/tag.js", "ym"); ym(94889703, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/94889703" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> </body> </html>