No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

2025-02_psk-jvm-item.md 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. Title: ПСКОВ 2 на JVM
  2. Date: 2025-02-11 00:00
  3. Category: News
  4. Slug: psk-jvm-item
  5. Lang: ru
  6. ![splash][splash]
  7. # Генерация отдельных страниц
  8. В январе сделал половину функциональности оригинального ПСКОВа на Kotlin для JVM,
  9. а именно: генерацию отдельных страниц HTML из Markdown.
  10. И ПСКОВ 1, и ПСКОВ 2 генерируют файлы HTML, которые отображаются идентично
  11. в веб-браузерах. Тем не менее, содержимое этих сгенерированных файлов отличается,
  12. т.к. ПСКОВ 1 использует [Showdown][showdown] для конвертации Markdown в HTML,
  13. а ПСКОВ 2 - [intellij-markdown][intellij-markdown].
  14. Взглянем на описываемую разницу. Допустим, у нас есть следующая страница Markdown:
  15. ```
  16. Simple page in **Markdown** to convert to **HTML**.
  17. | № | Parser | Language |
  18. |---|--- |--- |
  19. | 1 | [Showdown][showdown] | JavaScript |
  20. | 2 | [intellij-markdown][intellij-markdown] | Kotlin |
  21. [intellij-markdown]: https://github.com/JetBrains/markdown
  22. [showdown]: https://github.com/showdownjs/showdown
  23. ```
  24. ПСКОВ 1 генерирует следующий файл HTML:
  25. ```
  26. <p>Simple page in <strong>Markdown</strong> to convert to <strong>HTML</strong>.</p>
  27. <table>
  28. <thead>
  29. <tr>
  30. <th>№</th>
  31. <th>Parser</th>
  32. <th>Language</th>
  33. </tr>
  34. </thead>
  35. <tbody>
  36. <tr>
  37. <td>1</td>
  38. <td><a href="https://github.com/showdownjs/showdown">Showdown</a></td>
  39. <td>JavaScript</td>
  40. </tr>
  41. <tr>
  42. <td>2</td>
  43. <td><a href="https://github.com/JetBrains/markdown">intellij-markdown</a></td>
  44. <td>Kotlin</td>
  45. </tr>
  46. </tbody>
  47. </table>
  48. ```
  49. ПСКОВ 2:
  50. ```
  51. <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>
  52. ```
  53. А вот как оба файла отображаются в веб-браузере:
  54. ![result][result]
  55. Идентичное отображение двух различающихся файлов.
  56. Мой внутренний перфекционист, конечно, возмущён несоответствием, но мой
  57. внутренний прагматик считает эту разницу несущественной.
  58. # Февраль
  59. В феврале доведу конвертер межъязыкового диалекта до генерации Context.
  60. [intellij-markdown]: https://github.com/JetBrains/markdown
  61. [result]: ../../images/2025_psk-jvm-item_result.png
  62. [showdown]: https://github.com/showdownjs/showdown
  63. [splash]: ../../images/2025_psk-jvm-item.png