2025-02 ПСКОВ 2 готов на 50% | PSKOV 2 is 50% ready

This commit is contained in:
2025-02-11 22:37:37 +03:00
parent 37dbf82d7f
commit 3869d5b841
23 changed files with 743 additions and 263 deletions

View File

@@ -0,0 +1,82 @@
Title: PSKOV 2 for JVM
Date: 2025-02-11 00:00
Category: News
Slug: psk-jvm-item
Lang: en
![splash][splash]
# Seperate pages' generation
In January I implemented half of the functionality of original
PSKOV: generation of separate HTML pages from Markdown.
Both PSKOV 1 and PSKOV 2 produce HTML files that look the same in web browsers.
However, the contents of the generated HTML files differ because PSKOV 1 uses
[Showdown][showdown] to convert Markdown to HTML, whereas PSKOV 2 uses
[intellij-markdown][intellij-markdown].
Let's see how the generated HTML files compare. Suppose we have the following
page in Markdown:
```
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
```
PSKOV 1 converts the aforementioned Markdown to the following HTML:
```
<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>
```
PSKOV 2:
```
<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>
```
Here's how both HTML files are rendered in web browsers:
![result][result]
Identical rendering of different files. My internal
perfectionist is outraged by such a disrepancy. And my internal
pragmatist thinks this hardly deserves such an attention.
# February
In February I'm going to update the cross-language dialect's translator to produce Context.
[intellij-markdown]: https://github.com/JetBrains/markdown
[result]: ../../images/2025_psk-jvm-item_result.png
[showdown]: https://github.com/showdownjs/showdown
[splash]: ../../images/2025_psk-jvm-item.png

View File

@@ -25,6 +25,27 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="psk-jvm-item.html">PSKOV 2 for 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="seperatepagesgeneration">Seperate pages' generation</h1>
<p>In January I implemented half of the functionality of original
PSKOV: generation of separate HTML pages from Markdown.</p>
<p>Both PSKOV 1 and PSKOV 2 produce HTML files that look the same in web browsers.
However, the contents of the generated HTML files differ because PSKOV 1 uses
<a href="https://github.com/showdownjs/showdown">Showdown</a> to convert Markdown to HTML, whereas PSKOV 2 uses
<a href="https://github.com/JetBrains/markdown">intellij-markdown</a>.</p>
<p>Let's see how the generated HTML files compare. Suppose we have the following. . .</p>
</div>
<div class="news_item_more">
<a href="psk-jvm-item.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="year24.html">Results of the year 2024</a>
</h2>
@@ -217,30 +238,6 @@ The instrument under development is limited to C++11 in order to support OpenWrt
<div class="news_item_more">
<a href="memory-text-ui.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="memory-logic.html">"Memory" game logic</a>
</h2>
<p class="news_item_date">
2024-05-03 00:00
</p>
<div class="news_item_contents">
<h1 id="memorygamelogic">"Memory" game logic</h1>
<p>In April I implemented "Memory" game logic in Python as limited language model and successfully converted the code to C++ by the instrument under development.</p>
<p>Limited language model assumes the following architecture of two parts:</p>
<ol>
<li>state context</li>
<li>pure functions without side effects working only with the context</li>
</ol>
<p>Game logic state context in Python currently looks like this (<a href="https://git.opengamestudio.org/kornerr/research-portable-memory/src/commit/6fcd542daa6242c8c23dddb88d04cda74a730328/v3/memory_Context.h">C++</a>):</p>
<p>```python
class memory_Context:
def <strong>init</strong>(self):
self.hiddenItems = []. . .</p>
</div>
<div class="news_item_more">
<a href="memory-logic.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 1 of 8</p>
<p>

View File

@@ -25,6 +25,30 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="memory-logic.html">"Memory" game logic</a>
</h2>
<p class="news_item_date">
2024-05-03 00:00
</p>
<div class="news_item_contents">
<h1 id="memorygamelogic">"Memory" game logic</h1>
<p>In April I implemented "Memory" game logic in Python as limited language model and successfully converted the code to C++ by the instrument under development.</p>
<p>Limited language model assumes the following architecture of two parts:</p>
<ol>
<li>state context</li>
<li>pure functions without side effects working only with the context</li>
</ol>
<p>Game logic state context in Python currently looks like this (<a href="https://git.opengamestudio.org/kornerr/research-portable-memory/src/commit/6fcd542daa6242c8c23dddb88d04cda74a730328/v3/memory_Context.h">C++</a>):</p>
<p>```python
class memory_Context:
def <strong>init</strong>(self):
self.hiddenItems = []. . .</p>
</div>
<div class="news_item_more">
<a href="memory-logic.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="llm-first-py-cxx.html">The first example of a portable code</a>
</h2>
@@ -190,22 +214,6 @@ It seems that right now we have less completed features than before the release
<div class="news_item_more">
<a href="the-pros-and-cons-of-restarting-from-scratch.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="on-the-way-to-durable-applications.html">On the way to durable applications</a>
</h2>
<p class="news_item_date">
2019-08-05 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2019-08-05_on-the-way-to-durable-applications.jpg" alt="Pskov's veche" /></p>
<p>This article describes our first durable application for desktop PCs: PSKOV static site generator.</p>
<p><strong>Durability</strong></p>
<p>A durable application is an application that functions without a single change on operating systems released in years 2010-2030. In other words, a durable application has backward compatibility of 10 years and has the stability to run for 10 years. Actually, <a href="http://opengamestudio.org/pskov">PSKOV</a> runs even under Windows 2000, so PSKOV has backward compatibility of 19 years.. . .</p>
</div>
<div class="news_item_more">
<a href="on-the-way-to-durable-applications.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 2 of 8</p>
<p>

View File

@@ -25,6 +25,22 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="on-the-way-to-durable-applications.html">On the way to durable applications</a>
</h2>
<p class="news_item_date">
2019-08-05 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2019-08-05_on-the-way-to-durable-applications.jpg" alt="Pskov's veche" /></p>
<p>This article describes our first durable application for desktop PCs: PSKOV static site generator.</p>
<p><strong>Durability</strong></p>
<p>A durable application is an application that functions without a single change on operating systems released in years 2010-2030. In other words, a durable application has backward compatibility of 10 years and has the stability to run for 10 years. Actually, <a href="http://opengamestudio.org/pskov">PSKOV</a> runs even under Windows 2000, so PSKOV has backward compatibility of 19 years.. . .</p>
</div>
<div class="news_item_more">
<a href="on-the-way-to-durable-applications.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="defending-availability.html">Defending availability</a>
</h2>
@@ -171,32 +187,6 @@
<div class="news_item_more">
<a href="openscenegraph-examples.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-techdemo1-gameplay.html">First techdemo of OGS Mahjong 2: Gameplay</a>
</h2>
<p class="news_item_date">
2018-02-16 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-02-16-mahjong-techdemo1-gameplay.png" alt="End of a Mahjong party" /></p>
<p>We are glad to announce the release of the first technical demonstration of OGS Mahjong 2. The purpose of this release was to verify gameplay across supported platforms.</p>
<p>Get techdemo for your platform:</p>
<ul>
<li>Run <a href="https://ogstudio.github.io/game-mahjong/versions/013/mjin-player.html">Web version</a> in your browser</li>
<li>Get <a href="https://drive.google.com/open?id=1KW8IEN8Dpz8ODeg8BctVSJyzj9-AL9hR">Android version</a></li>
<li>Get <a href="https://drive.google.com/open?id=1oj0-OXSmEatttzn86u2vgP9SRAIC0ozB">Windows version</a></li>
<li>Get <a href="https://drive.google.com/open?id=1EX7kLIThLiMz9_W7VmBPySms3mlrF-i6">Linux version</a></li>
<li>Get <a href="https://drive.google.com/open?id=1KWnvbHzan8MpMcZPG2QC-7KWoEYbqrM2">macOS version</a></li>
</ul>
<p>Notes:</p>
<ul>
<li>iOS version is not released because it cannot be easily shared outside AppStore.. . .</li>
</ul>
</div>
<div class="news_item_more">
<a href="mahjong-techdemo1-gameplay.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 3 of 8</p>
<p>

View File

@@ -25,6 +25,32 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-techdemo1-gameplay.html">First techdemo of OGS Mahjong 2: Gameplay</a>
</h2>
<p class="news_item_date">
2018-02-16 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-02-16-mahjong-techdemo1-gameplay.png" alt="End of a Mahjong party" /></p>
<p>We are glad to announce the release of the first technical demonstration of OGS Mahjong 2. The purpose of this release was to verify gameplay across supported platforms.</p>
<p>Get techdemo for your platform:</p>
<ul>
<li>Run <a href="https://ogstudio.github.io/game-mahjong/versions/013/mjin-player.html">Web version</a> in your browser</li>
<li>Get <a href="https://drive.google.com/open?id=1KW8IEN8Dpz8ODeg8BctVSJyzj9-AL9hR">Android version</a></li>
<li>Get <a href="https://drive.google.com/open?id=1oj0-OXSmEatttzn86u2vgP9SRAIC0ozB">Windows version</a></li>
<li>Get <a href="https://drive.google.com/open?id=1EX7kLIThLiMz9_W7VmBPySms3mlrF-i6">Linux version</a></li>
<li>Get <a href="https://drive.google.com/open?id=1KWnvbHzan8MpMcZPG2QC-7KWoEYbqrM2">macOS version</a></li>
</ul>
<p>Notes:</p>
<ul>
<li>iOS version is not released because it cannot be easily shared outside AppStore.. . .</li>
</ul>
</div>
<div class="news_item_more">
<a href="mahjong-techdemo1-gameplay.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-recreation-start.html">Mahjong recreation start</a>
</h2>
@@ -163,21 +189,6 @@
<div class="news_item_more">
<a href="ios-tutorial.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="osg-sample.html">OpenSceneGraph sample</a>
</h2>
<p class="news_item_date">
2017-05-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-05_osg-sample.png" alt="Rocket in the distance" /></p>
<p>This article describes creation of the tutorials for building sample OpenSceneGraph application under Linux, macOS, Windows, and Android in April 2017.</p>
<p>Previous tutorials described how to install OpenSceneGraph under Linux, macOS, Windows and render a model using the standard <strong>osgviewer</strong> tool. This time we worked on a <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide-application">sample OpenSceneGraph application</a> that would run under Linux, macOS, Windows, and Android.. . .</p>
</div>
<div class="news_item_more">
<a href="osg-sample.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 4 of 8</p>
<p>

View File

@@ -25,6 +25,21 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="osg-sample.html">OpenSceneGraph sample</a>
</h2>
<p class="news_item_date">
2017-05-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-05_osg-sample.png" alt="Rocket in the distance" /></p>
<p>This article describes creation of the tutorials for building sample OpenSceneGraph application under Linux, macOS, Windows, and Android in April 2017.</p>
<p>Previous tutorials described how to install OpenSceneGraph under Linux, macOS, Windows and render a model using the standard <strong>osgviewer</strong> tool. This time we worked on a <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide-application">sample OpenSceneGraph application</a> that would run under Linux, macOS, Windows, and Android.. . .</p>
</div>
<div class="news_item_more">
<a href="osg-sample.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="its-all-fine.html">It's all fine</a>
</h2>
@@ -170,24 +185,6 @@
<div class="news_item_more">
<a href="2016-september-recap.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.10.html">OGS Editor 0.10 and live session materials</a>
</h2>
<p class="news_item_date">
2016-10-03 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-03_ogs-editor-0.10.png" alt="OGS Editor with Mahjong game" /></p>
<p>Note: we won't release 0.10 for macOS due to technical difficulties with the build system. macOS support will be back for 0.11.</p>
<ul>
<li><strong>OGS Editor 0.10</strong> <a href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/51_2016-10-01_06-39-48_0.10.0/">is available at SourceForge</a>. Simply unpack the archive and launch the run script.</li>
<li><strong>Mahjong Solitaire game</strong> <a href="https://sourceforge.net/projects/osrpgcreation/files/Games/MahjongSolitaire/">is available at SourceForge</a>, too. Simply unpack the archive and launch the run script.. . .</li>
</ul>
</div>
<div class="news_item_more">
<a href="ogs-editor-0.10.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 5 of 8</p>
<p>

View File

@@ -25,6 +25,24 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="ogs-editor-0.10.html">OGS Editor 0.10 and live session materials</a>
</h2>
<p class="news_item_date">
2016-10-03 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2016-10-03_ogs-editor-0.10.png" alt="OGS Editor with Mahjong game" /></p>
<p>Note: we won't release 0.10 for macOS due to technical difficulties with the build system. macOS support will be back for 0.11.</p>
<ul>
<li><strong>OGS Editor 0.10</strong> <a href="https://sourceforge.net/projects/osrpgcreation/files/Editor/jenkins/51_2016-10-01_06-39-48_0.10.0/">is available at SourceForge</a>. Simply unpack the archive and launch the run script.</li>
<li><strong>Mahjong Solitaire game</strong> <a href="https://sourceforge.net/projects/osrpgcreation/files/Games/MahjongSolitaire/">is available at SourceForge</a>, too. Simply unpack the archive and launch the run script.. . .</li>
</ul>
</div>
<div class="news_item_more">
<a href="ogs-editor-0.10.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="yesterdays-live-session-short-overview.html">A few words about live session yesterday</a>
</h2>
@@ -154,23 +172,6 @@ It's time to create simple Mahjong solitaire game.
<div class="news_item_more">
<a href="may-live-session-announcement.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-decision.html">May live session (Editor 0.9)</a>
</h2>
<p class="news_item_date">
2016-04-24 00:00
</p>
<div class="news_item_contents">
<p>As you know, the previously published roadmap assumed, that we would hold a live session in April and it would feature a ping-pong game created with Editor 0.9.</p>
<p>We have to admit, our abilities to plan are not yet good enough. That's why the next live session will take place by the end of May. The exact date will be announced later.</p>
<p>Here's a short preview of the coming game:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/V3EvCVPc6kg" frameborder="0" allowfullscreen></iframe>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="may-live-session-decision.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 6 of 8</p>
<p>

View File

@@ -25,6 +25,23 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="may-live-session-decision.html">May live session (Editor 0.9)</a>
</h2>
<p class="news_item_date">
2016-04-24 00:00
</p>
<div class="news_item_contents">
<p>As you know, the previously published roadmap assumed, that we would hold a live session in April and it would feature a ping-pong game created with Editor 0.9.</p>
<p>We have to admit, our abilities to plan are not yet good enough. That's why the next live session will take place by the end of May. The exact date will be announced later.</p>
<p>Here's a short preview of the coming game:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/V3EvCVPc6kg" frameborder="0" allowfullscreen></iframe>
<p>. . .</p>
</div>
<div class="news_item_more">
<a href="may-live-session-decision.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="rolling-ball.html">"Rolling ball" live session videos and downloads</a>
</h2>
@@ -152,22 +169,6 @@
<div class="news_item_more">
<a href="soon-game-creation-editor-07.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="bye-desura-hello-humblebundle.html">Desura no more, hello Humble Bundle Widget</a>
</h2>
<p class="news_item_date">
2015-07-23 00:00
</p>
<div class="news_item_contents">
<p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p>
<p>Here it is:</p>
<iframe src="https://www.humblebundle.com/widget/v2/product/ogsmahjong/ySGF3h34?theme=transparent-light" width="526" height="325" style="border: none;" scrolling="no" frameborder="0"></iframe>
<p>We haven't received a single penny from Desura (due to the minimal cache out limitations), but if you bought the deluxe version from them and experiencing any problems with downloading it (right now we see no problems with that), send us a letter, tell your name on Desura, we'll figure something out.. . .</p>
</div>
<div class="news_item_more">
<a href="bye-desura-hello-humblebundle.html">Continue reading</a>
</div>
</div>
<p class="pagination_title">Page 7 of 8</p>
<p>

View File

@@ -25,6 +25,22 @@
<h1>News</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="bye-desura-hello-humblebundle.html">Desura no more, hello Humble Bundle Widget</a>
</h2>
<p class="news_item_date">
2015-07-23 00:00
</p>
<div class="news_item_contents">
<p>After the recent bankruptcy of Desura's parent company, we decided, that we need a new place for our Deluxe version. Something better, more modern and more trustworthy. We have chosen the Humble Widget, with which you can buy the deluxe version of the game without leaving our site.</p>
<p>Here it is:</p>
<iframe src="https://www.humblebundle.com/widget/v2/product/ogsmahjong/ySGF3h34?theme=transparent-light" width="526" height="325" style="border: none;" scrolling="no" frameborder="0"></iframe>
<p>We haven't received a single penny from Desura (due to the minimal cache out limitations), but if you bought the deluxe version from them and experiencing any problems with downloading it (right now we see no problems with that), send us a letter, tell your name on Desura, we'll figure something out.. . .</p>
</div>
<div class="news_item_more">
<a href="bye-desura-hello-humblebundle.html">Continue reading</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="test-chamber-for-everyone.html">Test chamber for everyone (Editor 0.7.0)</a>
</h2>

110
en/news/psk-jvm-item.html Normal file
View File

@@ -0,0 +1,110 @@
<!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="../../en/news/index.html">News</a>
<a href="../../en/game/index.html">Games</a>
<a href="../../en/tool/index.html">Tools</a>
<a href="../../en/page/about.html">About</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">In the news...</h3>
<center>
<div class="news_item">
<h2 class="news_item_title">
<a href="psk-jvm-item.html">PSKOV 2 for 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="seperatepagesgeneration">Seperate pages' generation</h1>
<p>In January I implemented half of the functionality of original
PSKOV: generation of separate HTML pages from Markdown.</p>
<p>Both PSKOV 1 and PSKOV 2 produce HTML files that look the same in web browsers.
However, the contents of the generated HTML files differ because PSKOV 1 uses
<a href="https://github.com/showdownjs/showdown">Showdown</a> to convert Markdown to HTML, whereas PSKOV 2 uses
<a href="https://github.com/JetBrains/markdown">intellij-markdown</a>.</p>
<p>Let's see how the generated HTML files compare. Suppose we have the following
page in 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>PSKOV 1 converts the aforementioned Markdown to the following HTML:</p>
<pre><code>&lt;p&gt;Simple page in &lt;strong&gt;Markdown&lt;/strong&gt; to convert to &lt;strong&gt;HTML&lt;/strong&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Parser&lt;/th&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/showdownjs/showdown"&gt;Showdown&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;JavaScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/JetBrains/markdown"&gt;intellij-markdown&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Kotlin&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</code></pre>
<p>PSKOV 2:</p>
<pre><code>&lt;body&gt;&lt;p&gt;Simple page in &lt;strong&gt;Markdown&lt;/strong&gt; to convert to &lt;strong&gt;HTML&lt;/strong&gt;.&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Parser&lt;/th&gt;&lt;th&gt;Language&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&lt;a href="https://github.com/showdownjs/showdown"&gt;Showdown&lt;/a&gt;&lt;/td&gt;&lt;td&gt;JavaScript&lt;/td&gt;&lt;/tr&gt;&lt;tr class="intellij-row-even"&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&lt;a href="https://github.com/JetBrains/markdown"&gt;intellij-markdown&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Kotlin&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/body&gt;
</code></pre>
<p>Here's how both HTML files are rendered in web browsers:</p>
<p><img src="../../images/2025_psk-jvm-item_result.png" alt="result" /></p>
<p>Identical rendering of different files. My internal
perfectionist is outraged by such a disrepancy. And my internal
pragmatist thinks this hardly deserves such an attention.</p>
<h1 id="february">February</h1>
<p>In February I'm going to update the cross-language dialect's translator to produce Context.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/en/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>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<div id="footer">
The site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>
from <a href="http://github.com/ogstudio/site-opengamestudio">this source code</a>.
</div>
</center>
</body>
</html>