This commit is contained in:
InsanusMokrassar
2023-06-10 07:53:25 +00:00
parent 7457aea297
commit d67f0e483a
28 changed files with 859 additions and 873 deletions

View File

@@ -1170,21 +1170,21 @@
<h1 id="text">Text<a class="headerlink" href="#text" title="Permanent link">&para;</a></h1>
<p>For the text creating there are several tools. The most simple one is to concatenate several text sources to make list of text sources as a result:</p>
<pre><code class="language-kotlin">val sources = &quot;Regular start of text &quot; + bold(&quot;with bold part&quot;) + italic(&quot;and italic ending&quot;)
</code></pre>
<div class="language-kotlin highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="kd">val</span><span class="w"> </span><span class="nv">sources</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;Regular start of text &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">bold</span><span class="p">(</span><span class="s">&quot;with bold part&quot;</span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">italic</span><span class="p">(</span><span class="s">&quot;and italic ending&quot;</span><span class="p">)</span>
</span></code></pre></div>
<p>But there is a little bit more useful way: entities builder:</p>
<pre><code class="language-kotlin">val items = (0 until 10).map { it.toString() }
buildEntities(&quot; &quot;) {// optional &quot; &quot; auto separator which will be pasted between text sources
+&quot;It is regular start too&quot; + bold(&quot;it is bold as well&quot;)
items.forEachIndexed { i, item -&gt;
if (i % 2) {
italic(item)
} else {
strikethrough(item)
}
}
}
</code></pre>
<div class="language-kotlin highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="kd">val</span><span class="w"> </span><span class="nv">items</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="m">0</span><span class="w"> </span><span class="n">until</span><span class="w"> </span><span class="m">10</span><span class="p">).</span><span class="na">map</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nb">it</span><span class="p">.</span><span class="na">toString</span><span class="p">()</span><span class="w"> </span><span class="p">}</span>
</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="n">buildEntities</span><span class="p">(</span><span class="s">&quot; &quot;</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="c1">// optional &quot; &quot; auto separator which will be pasted between text sources</span>
</span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="o">+</span><span class="s">&quot;It is regular start too&quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">bold</span><span class="p">(</span><span class="s">&quot;it is bold as well&quot;</span><span class="p">)</span>
</span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="n">items</span><span class="p">.</span><span class="na">forEachIndexed</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">item</span><span class="w"> </span><span class="o">-&gt;</span>
</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="m">2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
</span><span id="__span-1-6"><a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a><span class="w"> </span><span class="n">italic</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
</span><span id="__span-1-7"><a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
</span><span id="__span-1-8"><a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a><span class="w"> </span><span class="n">strikethrough</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
</span><span id="__span-1-9"><a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a><span class="w"> </span><span class="p">}</span>
</span><span id="__span-1-10"><a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a><span class="w"> </span><span class="p">}</span>
</span><span id="__span-1-11"><a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a><span class="p">}</span>
</span></code></pre></div>
<p>In the code above we are creating an items list just for demonstrating that inside of buildEntities body we may use any operations for cunstructing our result list of <code>TextSource</code>s. As a result, will be created the list which will looks like in telegram as &ldquo;It is regular start too <strong>it is bold as well</strong> <em>0</em> ~~1~~ <em>2</em> ~~3~~ <em>4</em> ~~5~~ <em>6</em> ~~7~~ <em>8</em> ~~9~~&rdquo;.</p>