# Создание расширений для парсинга

**URL:** https://meta.discourse.org/t/creating-parsing-extensions/154915
**Category:** Development
**Created:** [15.Июнь.2020 18:25:18 UTC](https://meta.discourse.org/t/creating-parsing-extensions/154915 "2020-06-15T18:25:18Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![R4356th](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r4356th/32/184027_2.png) [@R4356th](https://meta.discourse.org/u/R4356th)
#### Post date: [15.Июнь.2020 18:25:18 UTC](https://meta.discourse.org/t/creating-parsing-extensions/154915/1 "2020-06-15T18:25:18Z")

</div>

Здравствуйте,  
Я хочу создать расширение для парсинга в Discourse, которое будет преобразовывать текст вида `say [Hello World!]` в ![scratchblocks](https://global.discourse-cdn.com/meta/original/3X/3/7/375a824f3316a9a81de37f523983abd993760b02.png) и многие другие изображения такого типа. Нужно ли мне вносить какие-либо изменения в существующие файлы Discourse, или я могу сразу начать писать код, не затрагивая их?

---

<div class="post-metadata">

### Author: ![Johani](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/johani/32/176920_2.png) [@Johani](https://meta.discourse.org/u/Johani)
#### Post date: [15.Июнь.2020 18:38:18 UTC](https://meta.discourse.org/t/creating-parsing-extensions/154915/2 "2020-06-15T18:38:18Z")

</div>

Привет и добро пожаловать в Meta, @R4356th 👋

> [@R4356th](#):
>
> Нужно ли мне вносить какие-либо изменения в существующие файлы Discourse?

Нет, внесение изменений в файлы Discourse на вашем сервере (в данном контексте) означает, что вы либо не сможете обновить свой сайт, либо ваши изменения будут удалены при следующем обновлении.

Подход к этому заключается в создании [плагина](https://meta.discourse.org/t/beginners-guide-to-creating-discourse-plugins-part-1/30515) или [темы / компонента темы](https://meta.discourse.org/t/developer-s-guide-to-discourse-themes/93648).

Это методы, которые вы можете использовать для расширения функциональности Discourse в соответствии с вашими потребностями.

Для вашей конкретной функции вам понадобится плагин. Рекомендую посмотреть исходный код плагина bbcode для вдохновения.

> **[GitHub - discourse/discourse-bbcode: vBulletin BBCode plugin](https://github.com/discourse/discourse-bbcode)**
>
> vBulletin BBCode plugin

---

<div class="post-metadata">

### Author: ![R4356th](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r4356th/32/184027_2.png) [@R4356th](https://meta.discourse.org/u/R4356th)
#### Post date: [15.Июнь.2020 18:40:27 UTC](https://meta.discourse.org/t/creating-parsing-extensions/154915/3 "2020-06-15T18:40:27Z")

</div>

Спасибо большое, это должно помочь.

---

<div class="post-metadata">

### Author: ![R4356th](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r4356th/32/184027_2.png) [@R4356th](https://meta.discourse.org/u/R4356th)
#### Post date: [17.Июнь.2020 13:45:21 UTC](https://meta.discourse.org/t/creating-parsing-extensions/154915/4 "2020-06-17T13:45:21Z")

</div>

Нужно ли писать парсер на PHP?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [17.Июнь.2020 13:56:33 UTC](https://meta.discourse.org/t/creating-parsing-extensions/154915/5 "2020-06-17T13:56:33Z")

</div>

Возможно, вам стоит посмотреть по адресу: [Developer's guide to Markdown extensions](https://meta.discourse.org/t/developers-guide-to-markdown-extensions/66023?u=merefield)

(В целом, для сведения: все расширения Discourse написаны на EmberJS и Rails, но, как ожидается, здесь вам понадобится только JavaScript).

---

<div class="post-metadata">

### Author: ![R4356th](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r4356th/32/184027_2.png) [@R4356th](https://meta.discourse.org/u/R4356th)
#### Post date: [19.Июнь.2020 13:24:36 UTC](https://meta.discourse.org/t/creating-parsing-extensions/154915/6 "2020-06-19T13:24:36Z")

</div>

Спасибо. 😊
