|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <!DOCTYPE html>
- <html>
- <meta charset="utf-8">
- <head>
- <link rel="stylesheet" href="../../style.css">
- </head>
- <body>
- <script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
- <div id="header">
- <div class="header2">
- <div class="menu">
- <a href="../../ru/news/index.html">Новости</a>
- <a href="../../ru/game/index.html">Игры</a>
- <a href="../../ru/tool/index.html">Инструменты</a>
- <a href="../../ru/page/about.html">О нас</a>
- </div>
- <div id="lang">
- <a href="../../en/news/psk-jvm-item.html">EN</a>
- <a href="../../ru/news/psk-jvm-item.html">RU</a>
- </div>
- <div class="clear"></div>
- </div>
- </div>
- <h3 class="left_item_title">В новостях...</h3>
- <center>
- <div class="news_item">
- <h2 class="news_item_title">
- <a href="psk-jvm-item.html">ПСКОВ 2 на JVM</a>
- </h2>
- <p class="news_item_date">
- 2025-02-11 00:00
- </p>
- <div class="news_item_contents">
- <p><img src="../../images/2025_psk-jvm-item.png" alt="splash" /></p>
- <h1 id="">Генерация отдельных страниц</h1>
- <p>В январе сделал половину функциональности оригинального ПСКОВа на Kotlin для JVM,
- а именно: генерацию отдельных страниц HTML из Markdown.</p>
- <p>И ПСКОВ 1, и ПСКОВ 2 генерируют файлы HTML, которые отображаются идентично
- в веб-браузерах. Тем не менее, содержимое этих сгенерированных файлов отличается,
- т.к. ПСКОВ 1 использует <a href="https://github.com/showdownjs/showdown">Showdown</a> для конвертации Markdown в HTML,
- а ПСКОВ 2 - <a href="https://github.com/JetBrains/markdown">intellij-markdown</a>.</p>
- <p>Взглянем на описываемую разницу. Допустим, у нас есть следующая страница Markdown:</p>
- <pre><code>Simple page in **Markdown** to convert to **HTML**.
-
- | № | Parser | Language |
- |---|--- |--- |
- | 1 | [Showdown][showdown] | JavaScript |
- | 2 | [intellij-markdown][intellij-markdown] | Kotlin |
-
- [intellij-markdown]: https://github.com/JetBrains/markdown
- [showdown]: https://github.com/showdownjs/showdown
- </code></pre>
- <p>ПСКОВ 1 генерирует следующий файл HTML:</p>
- <pre><code><p>Simple page in <strong>Markdown</strong> to convert to <strong>HTML</strong>.</p>
- <table>
- <thead>
- <tr>
- <th>№</th>
- <th>Parser</th>
- <th>Language</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>1</td>
- <td><a href="https://github.com/showdownjs/showdown">Showdown</a></td>
- <td>JavaScript</td>
- </tr>
- <tr>
- <td>2</td>
- <td><a href="https://github.com/JetBrains/markdown">intellij-markdown</a></td>
- <td>Kotlin</td>
- </tr>
- </tbody>
- </table>
- </code></pre>
- <p>ПСКОВ 2:</p>
- <pre><code><body><p>Simple page in <strong>Markdown</strong> to convert to <strong>HTML</strong>.</p><table><thead><tr><th>№</th><th>Parser</th><th>Language</th></tr></thead><tbody><tr><td>1</td><td><a href="https://github.com/showdownjs/showdown">Showdown</a></td><td>JavaScript</td></tr><tr class="intellij-row-even"><td>2</td><td><a href="https://github.com/JetBrains/markdown">intellij-markdown</a></td><td>Kotlin</td></tr></tbody></table></body>
- </code></pre>
- <p>А вот как оба файла отображаются в веб-браузере:</p>
- <p><img src="../../images/2025_psk-jvm-item_result.png" alt="result" /></p>
- <p>Идентичное отображение двух различающихся файлов.
- Мой внутренний перфекционист, конечно, возмущён несоответствием, но мой
- внутренний прагматик считает эту разницу несущественной.</p>
- <h1 id="-1">Февраль</h1>
- <p>В феврале доведу конвертер межъязыкового диалекта до генерации Context.</p>
- </div>
- </div>
- <div id="disqus_thread"></div>
- <script>
- var disqus_config = function () {
- this.page.url = "https://opengamestudio.org/ru/news/psk-jvm-item.html";
- this.page.identifier = "psk-jvm-item.html";
- };
- (function() { // DON'T EDIT BELOW THIS LINE
- var d = document, s = d.createElement('script');
- s.src = 'https://opengamestudio.disqus.com/embed.js';
- s.setAttribute('data-timestamp', +new Date());
- (d.head || d.body).appendChild(s);
- })();
- </script>
- <noscript>Пожалуйста, включите JavaScript для просмотра <a href="https://disqus.com/?ref_noscript">комментариев на платформе Disqus.</a></noscript>
- <div id="footer">
- Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
- из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
- </div>
- </center>
- </body>
- </html>
|