1
0
mirror of https://github.com/twirl/The-API-Book.git synced 2025-05-25 22:08:06 +02:00

fresh build

This commit is contained in:
Sergey Konstantinov 2023-09-24 20:17:51 +03:00
parent 0a9cd639fd
commit b292809fba
11 changed files with 450 additions and 315 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

BIN
docs/API.en.sample.epub Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

@ -42,7 +42,7 @@
</header>
<br />Subscribe for updates on <a class="github" href="https://github.com/twirl/The-API-Book"></a>
<br/>Follow me on <a class="linkedin" href="https://www.linkedin.com/in/twirl/"></a> · <a class="twitter" href="https://twitter.com/blogovodoved"></a> · <a class="substack" href="https://twirl.substack.com/">Substack</a>
<br />Support this work on <a class="patreon" href="https://www.patreon.com/yatwirl">Patreon</a> · <a class="kindle" href="https://www.amazon.com/gp/product/B09RHH44S5/ref=dbs_a_def_rwt_hsch_vapi_tkin_p1_i0">buy Kindle version [1st edition]</a>
<br />Support this work on <a class="patreon" href="https://www.patreon.com/yatwirl">Patreon</a> · <a class="kindle" href="https://www.amazon.com/gp/product/B09RHH44S5/">buy Kindle version</a>
<br />Share: <a class="share share-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F" target="_blank"></a> · <a class="share share-twitter" href="https://twitter.com/intent/tweet?text=The%20API%20by%20Sergey%20Konstantinov%20%E2%80%94%20a%20book%20about%20designing%20APIs%2C%20extending%20them%20and%20finding%20a%20proper%20place%20in%20the%20market&url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F&hashtags=API%2CTheAPIBook&via=blogovodoved" target="_blank"></a> · <a class="share share-linkedin" href="https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F" target="_blank"></a> · <a class="share share-reddit" href="https://www.reddit.com/submit?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F&title=The%20API%20by%20Sergey%20Konstantinov%20%E2%80%94%20a%20book%20about%20designing%20APIs%2C%20extending%20them%20and%20finding%20a%20proper%20place%20in%20the%20market" target="_blank"></a><br/>⚙️⚙️⚙️
</nav>
<p>API-first development is one of the hottest technical topics nowadays since many companies have started to realize that APIs serves as a multiplier to their opportunities — but it amplifies the design mistakes as well.</p>
@ -123,7 +123,7 @@
</ul>
</li>
<li>
<h4><a href="API.en.html#section-6">[Work in Progress] Section V. SDKs & UI Libraries</a></h4>
<h4><a href="API.en.html#section-6">Section V. SDKs & UI Libraries</a></h4>
<ul class="section">
<li><a href="API.en.html#sdk-toc-technology-overview">Chapter 41. On Terminology. An Overview of Technologies for UI Development</a></li>
<li><a href="API.en.html#sdk-problems-solutions">Chapter 42. SDKs: Problems and Solutions</a></li>
@ -132,8 +132,8 @@
<li><a href="API.en.html#sdk-mv-frameworks">Chapter 45. The MV* Frameworks</a></li>
<li><a href="API.en.html#sdk-backend-driven">Chapter 46. The Backend-Driven UI</a></li>
<li><a href="API.en.html#sdk-shared-resources">Chapter 47. Shared Resources and Asynchronous Locks</a></li>
<li><a href="API.en.html#chapter-48">Chapter 48. Computed Properties</a></li>
<li><a href="API.en.html#chapter-49">Chapter 49. Conclusion</a></li>
<li><a href="API.en.html#sdk-computed-properties">Chapter 48. Computed Properties</a></li>
<li><a href="API.en.html#sdk-conclusion">Chapter 49. Conclusion</a></li>
</ul>
</li>
<li>

@ -123,7 +123,7 @@
</ul>
</li>
<li>
<h4><a href="API.ru.html#section-6">[В разработке] Раздел V. SDK и UI</a></h4>
<h4><a href="API.ru.html#section-6">Раздел V. SDK и UI</a></h4>
<ul class="section">
<li><a href="API.ru.html#sdk-toc-technology-overview">Глава 41. Терминология. Обзор технологий разработки SDK</a></li>
<li><a href="API.ru.html#sdk-problems-solutions">Глава 42. SDK: проблемы и решения</a></li>
@ -132,8 +132,8 @@
<li><a href="API.ru.html#sdk-mv-frameworks">Глава 45. MV*-фреймворки</a></li>
<li><a href="API.ru.html#sdk-backend-driven">Глава 46. Backend-Driven UI</a></li>
<li><a href="API.ru.html#sdk-shared-resources">Глава 47. Разделяемые ресурсы и асинхронные блокировки</a></li>
<li><a href="API.ru.html#chapter-48">Глава 48. Вычисляемые свойства</a></li>
<li><a href="API.ru.html#chapter-49">Глава 49. В заключение</a></li>
<li><a href="API.ru.html#sdk-computed-properties">Глава 48. Вычисляемые свойства</a></li>
<li><a href="API.ru.html#sdk-conclusion">Глава 49. Заключение</a></li>
</ul>
</li>
<li>

@ -1,101 +1,86 @@
@page {
margin: 20mm 18mm 27mm 25mm;
size: 145mm 204mm;
}
@media print {
@page {
margin: 20mm 18mm 27mm 25mm;
size: letter;
}
@page:first {
margin: 0;
size: 102mm 157mm;
};
html,
body {
margin: 0;
padding: 0;
font-size: 14pt;
}
html,
body {
margin: 0;
padding: 0;
}
.toc a,
ul li,
ol li {
text-size-adjust: none;
}
.toc a, ul li, ol li {
text-size-adjust: none;
font-size: 11pt !important;
}
pre {
margin: 0 0 1em 0;
width: calc(100% - 2px);
line-height: 0.8em !important;
}
pre {
margin: 0 0 1em 0;
width: calc(100% - 2px);
line-height: 0.8em !important;
}
p code,
pre code {
font-size: 12pt !important;
}
p code, pre code {
font-size: 9pt !important;
}
img {
margin: 1px;
}
img {
margin: 1px;
}
img.cc-by-nc-img {
width: 90px;
}
img.cc-by-nc-img {
width: 90px;
}
h1,
h2,
h3,
h4,
h5 {
break-after: avoid;
line-height: 1.2em;
font-size: 120%;
}
h1,
h2,
h3,
h4,
h5,
h6 {
page-break-before: auto;
page-break-after: avoid;
line-height: 1.2em;
font-size: 80%;
}
h6 {
break-before: avoid;
}
p {
orphans: 5;
font-size: 11pt;
}
p {
orphans: 5;
widows: 5;
}
img {
margin-top: 1em;
page-break-before: auto;
page-break-after: avoid;
}
img {
margin-top: 1em;
break-after: avoid;
}
.cover {
background-image: url(/cover_300dpi.png);
background-position: 50% 50%;
background-repeat: no-repeat;
background-size: cover;
position: relative;
margin: 0;
aspect-ratio: 102/150;
}
.cover {
display: none;
}
.cover h1 {
font-size: 7mm;
text-align: left;
padding: 8mm 18mm 10mm 18mm;
line-height: 12mm;
}
.toc ul li ul li + li,
h4 + ul,
h4 + p {
break-inside: avoid;
break-before: avoid;
break-after: avoid;
}
.cover h1 .title {
font-size: 10mm;
}
.page-break {
break-after: page;
}
p,
ul,
ol {
orphans: 4;
}
.no-page-break {
break-inside: avoid;
}
.page-break,
.cover {
page-break-after: always;
}
.no-page-break {
page-break-inside: avoid;
}
nav.page-main {
display: none;
nav.page-main {
display: none;
}
}

@ -77,7 +77,7 @@ export const templates = {
>${l10n.frontPage.title}</span
>
</h1>
</div><div class="page-break"></div><div class="annotation"><p class="text-align-left">
</div><div class="annotation"><p class="text-align-left">
<strong>${l10n.author}. ${l10n.title}.</strong><br />
<a target="_blank" href="mailto:${l10n.links.email}">${
l10n.links.emailString