diff --git a/src/service/template/index.ts b/src/service/template/index.ts index 73517aa..2806213 100644 --- a/src/service/template/index.ts +++ b/src/service/template/index.ts @@ -1,6 +1,7 @@ import extract from "remark-extract-frontmatter"; import frontmatter from "remark-frontmatter"; -import stringify from "retext-stringify"; +import stringify from "remark-stringify"; +import textStringify from "retext-stringify"; import parser from "remark-parse"; import unified from "unified"; import { parse } from "yaml"; @@ -58,6 +59,17 @@ export class Template< return arg1 == arg2 ? options.fn(this) : options.inverse(this); }); } + + public static cleanText(text: string) { + const processor = unified() + .use(textStringify) + .use(frontmatter) + .use(extract, { yaml: parse }) + .use(removeFrontmatter) + .use(parser); + + return processor.processSync(text).contents.toString(); + } } Template.registerHelpers(); diff --git a/src/service/vk/handlers/PostNewHandler.ts b/src/service/vk/handlers/PostNewHandler.ts index ec0e265..e1f64f3 100644 --- a/src/service/vk/handlers/PostNewHandler.ts +++ b/src/service/vk/handlers/PostNewHandler.ts @@ -15,6 +15,7 @@ import { extractURLs } from "../../../utils/extract"; import logger from "../../logger"; import Composer from "telegraf"; import CallbackQueryUpdate = Update.CallbackQueryUpdate; +import { Template } from "../../template"; type Button = "links" | "likes" | "more"; type UrlPrefix = string; @@ -92,6 +93,7 @@ export class PostNewHandler extends VkEventHandler { const extras: ExtraReplyMessage = { disable_web_page_preview: true, + parse_mode: "Markdown", reply_markup: await this.createKeyboard(text, undefined, context.wall.id), }; @@ -372,7 +374,7 @@ export class PostNewHandler extends VkEventHandler { user, group: this.group, type, - text, + text: Template.cleanText(text), }); }; diff --git a/templates/post_new.md b/templates/post_new.md index adc35bd..b7b467b 100644 --- a/templates/post_new.md +++ b/templates/post_new.md @@ -11,11 +11,15 @@ --- {{!-- use handlebars template here - available variables are: text, user, group + available variables are: text, user, group, type (see PostNewHandler) --}} +{{#ifEq type 'suggest'}} +Предложка: + +{{/ifEq}} {{text}} {{#if user}} --- [{{user.first_name}} {{user.last_name}}](https://vk.com/id{{user.id}}) +[{{user.first_name}} {{user.last_name}}](https://vk.com/id{{user.id}}) {{/if}}