simple average symbols per page algorithm
This commit is contained in:
3
Makefile
3
Makefile
@@ -27,7 +27,8 @@ npm:
|
|||||||
# Build project
|
# Build project
|
||||||
build:
|
build:
|
||||||
$(ENB) make $(ENB_FLAGS)
|
$(ENB) make $(ENB_FLAGS)
|
||||||
@cp -r lib build/index/lib
|
@rm -rf build/index/lib
|
||||||
|
@cp -rf lib build/index/lib
|
||||||
@mv build/index/index.ru.html build/index/index.html
|
@mv build/index/index.ru.html build/index/index.html
|
||||||
|
|
||||||
# Clean build results
|
# Clean build results
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ modules.define(
|
|||||||
// связанный баг https://st.yandex-team.ru/CHITALKA-65
|
// связанный баг https://st.yandex-team.ru/CHITALKA-65
|
||||||
nextTick(function () {
|
nextTick(function () {
|
||||||
this._buildCFIs();
|
this._buildCFIs();
|
||||||
|
this._countSymbols();
|
||||||
this._calcDimensions();
|
this._calcDimensions();
|
||||||
|
|
||||||
this._restoreSavedPosition();
|
this._restoreSavedPosition();
|
||||||
@@ -301,8 +302,7 @@ modules.define(
|
|||||||
this._pageCount = this._getBookPages();
|
this._pageCount = this._getBookPages();
|
||||||
|
|
||||||
// Среднее число символов на странице, speedCoeff - эмпирически вычисленный коэффцицент
|
// Среднее число символов на странице, speedCoeff - эмпирически вычисленный коэффцицент
|
||||||
var speedCoeff = (this._pageWidth / (11 * this._fontSize / 16));
|
this._avgSymbolsOnPage = Math.round(this._totalBookSymbols / this._pageCount)
|
||||||
this._avgSymbolsOnPage = Math.round(Math.floor(this._bookCanvasHeight / this._lineHeight) * speedCoeff);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -490,40 +490,31 @@ modules.define(
|
|||||||
parent = parent || this._bookPlaceholder;
|
parent = parent || this._bookPlaceholder;
|
||||||
var counter = 1;
|
var counter = 1;
|
||||||
id = id || '/';
|
id = id || '/';
|
||||||
var totalSymbols = 0;
|
|
||||||
|
|
||||||
$(parent).contents().map(function (i, el) {
|
$(parent).contents().map(function (i, el) {
|
||||||
var genID = id + counter;
|
var genID = id + counter;
|
||||||
var symbols;
|
|
||||||
|
|
||||||
if (el.nodeType === TEXT_NODE) {
|
if (el.nodeType === TEXT_NODE) {
|
||||||
symbols = $.trim(el.textContent).length;
|
|
||||||
totalSymbols += symbols;
|
|
||||||
|
|
||||||
// оборачиваем только если не пустая нода и не единственная
|
// оборачиваем только если не пустая нода и не единственная
|
||||||
if ($.trim(el.textContent) !== '' && $(parent).size() > 1) {
|
if ($.trim(el.textContent) !== '' && $(parent).size() > 1) {
|
||||||
var wrap = $('<span></span>');
|
var wrap = $('<span></span>');
|
||||||
wrap.attr('data-4cfi', genID);
|
wrap.attr('data-4cfi', genID);
|
||||||
if (symbols) {
|
|
||||||
wrap.attr('data-symbols', symbols);
|
|
||||||
}
|
|
||||||
|
|
||||||
$(el).wrap(wrap);
|
$(el).wrap(wrap);
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$(el).attr('data-4cfi', genID);
|
$(el).attr('data-4cfi', genID);
|
||||||
|
|
||||||
symbols = this._buildCFIs(el, genID + '/');
|
|
||||||
totalSymbols += symbols;
|
|
||||||
if (symbols) {
|
|
||||||
$(el).attr('data-symbols', symbols);
|
|
||||||
}
|
|
||||||
counter++;
|
counter++;
|
||||||
}
|
}
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
return totalSymbols;
|
/**
|
||||||
|
* Вычисляет число символов в книге
|
||||||
|
*/
|
||||||
|
_countSymbols: function () {
|
||||||
|
this._totalBookSymbols = $.trim(this._bookPlaceholder.get(0).textContent).replace(/\s{2,}/g, ' ').length;
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -26,9 +26,9 @@
|
|||||||
</section>
|
</section>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
|
|
||||||
<navMap style="display: none;">
|
<!--<navMap style="display: none;">-->
|
||||||
<xsl:apply-templates select="fb:body" mode="toc"/>
|
<!--<xsl:apply-templates select="fb:body" mode="toc"/>-->
|
||||||
</navMap>
|
<!--</navMap>-->
|
||||||
|
|
||||||
|
|
||||||
<xsl:for-each select="fb:body">
|
<xsl:for-each select="fb:body">
|
||||||
|
|||||||
Reference in New Issue
Block a user