1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-04-13 11:40:39 +02:00

#216 @milanse добавление кнопки "Код" в MD разметке, доработка существующих кнопок по MD

This commit is contained in:
Anton Ivanov 2020-06-27 20:36:03 +03:00
parent 3ff097065b
commit 28ed95d360
6 changed files with 239 additions and 34 deletions

View File

@ -457,11 +457,13 @@
<Button name="КомандаMDЖирный" id="455">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаMDЖирный</CommandName>
<Font bold="true" kind="AutoFont"/>
<ExtendedTooltip name="КомандаMDЖирныйРасширеннаяПодсказка" id="456"/>
</Button>
<Button name="КомандаMDКурсив" id="457">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаMDКурсив</CommandName>
<Font italic="true" kind="AutoFont"/>
<ExtendedTooltip name="КомандаMDКурсивРасширеннаяПодсказка" id="458"/>
</Button>
<Button name="КомандаMDЗачеркнутый" id="465">
@ -495,6 +497,11 @@
<CommandName>Form.Command.КомандаMDЦитата</CommandName>
<ExtendedTooltip name="КомандаMDЦитатаРасширеннаяПодсказка" id="464"/>
</Button>
<Button name="КомандаMDКод" id="591">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаMDКод</CommandName>
<ExtendedTooltip name="КомандаMDКодРасширеннаяПодсказка" id="592"/>
</Button>
<Button name="КомандаMDДобавитьТаблицу" id="451">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаMDДобавитьТаблицу</CommandName>
@ -513,9 +520,10 @@
</v8:item>
</Title>
<TitleLocation>None</TitleLocation>
<Width>50</Width>
<AutoMaxWidth>false</AutoMaxWidth>
<AutoMaxHeight>false</AutoMaxHeight>
<MultiLine>true</MultiLine>
<ExtendedEdit>true</ExtendedEdit>
<ContextMenu name="ТекстСодержанияКонтекстноеМеню" id="199"/>
<ExtendedTooltip name="ТекстСодержанияРасширеннаяПодсказка" id="200"/>
</InputField>
@ -2532,7 +2540,7 @@
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Добавить таблицу (Markdown)</v8:content>
<v8:content>Добавить таблицу</v8:content>
</v8:item>
</ToolTip>
<Picture>
@ -2547,13 +2555,13 @@
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда MDДобавить заголовки</v8:content>
<v8:content>Добавить заголовки</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда MDДобавить заголовки</v8:content>
<v8:content>Добавить заголовки</v8:content>
</v8:item>
</ToolTip>
<Picture>
@ -2574,7 +2582,7 @@
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда MDЖирный</v8:content>
<v8:content>Жирный</v8:content>
</v8:item>
</ToolTip>
<Picture>
@ -2802,6 +2810,26 @@
</Picture>
<Action>ВставитьКартинку</Action>
<Representation>Picture</Representation>
<ModifiesSavedData>true</ModifiesSavedData>
</Command>
<Command name="КомандаMDКод" id="18">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда MDКод</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Прогараммный код</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.узИконкаMDКод</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>КомандаMDКод</Action>
</Command>
</Commands>
<CommandInterface>

View File

@ -602,6 +602,87 @@
КонецПроцедуры
// }milanse 07.06.2020 0:06:35
// {[+](фрагмент ДОБАВЛЕН), milanse 20.06.2020
&НаКлиенте
Процедура ОформитьТекстMD(СимволыДляДобавления)
Перем чКонецКолонки, чКонецСтроки, чНачалоКолонки, чНачалоСтроки;
чНачалоСтроки = 0;
чНачалоКолонки = 0;
чКонецСтроки = 0;
чКонецКолонки = 0;
Элементы.ТекстСодержания.ПолучитьГраницыВыделения(чНачалоСтроки,чНачалоКолонки,чКонецСтроки,чКонецКолонки);
Элементы.ТекстСодержания.ВыделенныйТекст = СимволыДляДобавления+Элементы.ТекстСодержания.ВыделенныйТекст+СимволыДляДобавления;
Элементы.ТекстСодержания.ПолучитьГраницыВыделения(чНачалоСтроки,чНачалоКолонки,чКонецСтроки,чКонецКолонки);
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
Элементы.ТекстСодержания.УстановитьГраницыВыделения(чКонецСтроки,чКонецКолонки,чКонецСтроки,чКонецКолонки);
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
КонецПроцедуры // - #216 Иванов А.Б. 2020-06-27 @milanse
// + #216 Иванов А.Б. 2020-06-27 @milanse
&НаКлиенте
Процедура ДобавитьСимволыВНачалоСтрокиMD(СимволыДляДобавления)
Перем чКонецКолонки, чКонецСтроки, чНачалоКолонки, чНачалоСтроки;
чНачалоСтроки = 0;
чНачалоКолонки = 0;
чКонецСтроки = 0;
чКонецКолонки = 0;
Элементы.ТекстСодержания.ПолучитьГраницыВыделения(чНачалоСтроки,чНачалоКолонки,чКонецСтроки,чКонецКолонки);
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.УстановитьТекст(Элементы.ТекстСодержания.ТекстРедактирования);
Если ТекстовыйДокумент.КоличествоСтрок() = 0 Тогда
ТекстовыйДокумент.ДобавитьСтроку(СимволыДляДобавления);
чПозицияКонцаКолонки = СтрДлина(СимволыДляДобавления)+1;
Иначе
Для НомерСтроки = чНачалоСтроки По чКонецСтроки Цикл
ИсходнаяСтрока = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки);
ТекстовыйДокумент.ЗаменитьСтроку(НомерСтроки,СимволыДляДобавления + ИсходнаяСтрока);
КонецЦикла;
чПозицияКонцаКолонки = СтрДлина(ТекстовыйДокумент.ПолучитьСтроку(чКонецСтроки))+1;
КонецЕсли;
Объект.ТекстСодержания = ТекстовыйДокумент.ПолучитьТекст();
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
Элементы.ТекстСодержания.УстановитьГраницыВыделения(чКонецСтроки,чПозицияКонцаКолонки,чКонецСтроки,чПозицияКонцаКолонки);
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
КонецПроцедуры // - #216 Иванов А.Б. 2020-06-27 @milanse
// + #216 Иванов А.Б. 2020-06-27 @milanse
&НаКлиенте
Процедура ОформитьФрагментКода(СимволыНачало,СимволыОкончание)
Перем чКонецКолонки, чКонецСтроки, чНачалоКолонки, чНачалоСтроки;
чНачалоСтроки = 0;
чНачалоКолонки = 0;
чКонецСтроки = 0;
чКонецКолонки = 0;
Элементы.ТекстСодержания.ПолучитьГраницыВыделения(чНачалоСтроки,чНачалоКолонки,чКонецСтроки,чКонецКолонки);
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.УстановитьТекст(Элементы.ТекстСодержания.ТекстРедактирования);
ТекстовыйДокумент.ВставитьСтроку(чНачалоСтроки,СимволыНачало);
ТекстовыйДокумент.ВставитьСтроку(чКонецСтроки+2,СимволыОкончание);
чПозицияКонцаКолонки = СтрДлина(ТекстовыйДокумент.ПолучитьСтроку(чКонецСтроки+2))+1;
Объект.ТекстСодержания = ТекстовыйДокумент.ПолучитьТекст();
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
Элементы.ТекстСодержания.УстановитьГраницыВыделения(чКонецСтроки+2,чПозицияКонцаКолонки,чКонецСтроки+2,чПозицияКонцаКолонки);
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
КонецПроцедуры // - #216 Иванов А.Б. 2020-06-27 @milanse
// }milanse 07.06.2020 0:06:35
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
@ -1186,11 +1267,16 @@
&НаКлиенте
Процедура КомандаMDДобавитьЗаголовки(Команда)
ТекстMD = "# This is an <h1> tag
|## This is an <h2> tag
|###### This is an <h6> tag";
// + #216 Иванов А.Б. 2020-06-27 @milanse
//ТекстMD = "# This is an <h1> tag
//|## This is an <h2> tag
//|###### This is an <h6> tag";
//
//КомандаMDДобавитьШаблон(ТекстMD);
//milanse 20.06.2020
ДобавитьСимволыВНачалоСтрокиMD("# ");
// - #216 Иванов А.Б. 2020-06-27 @milanse
КомандаMDДобавитьШаблон(ТекстMD);
КонецПроцедуры
&НаКлиенте
@ -1203,39 +1289,63 @@
&НаКлиенте
Процедура КомандаMDЖирный(Команда)
ТекстMD = "**This text will be bold**
|__This will also be bold__";
КомандаMDДобавитьШаблон(ТекстMD);
// + #216 Иванов А.Б. 2020-06-27 @milanse
//ТекстMD = "**This text will be bold**
//|__This will also be bold__";
//КомандаMDДобавитьШаблон(ТекстMD);
//milanse 20.06.2020
ОформитьТекстMD("**");
// - #216 Иванов А.Б. 2020-06-27 @milanse
КонецПроцедуры
&НаКлиенте
Процедура КомандаMDКурсив(Команда)
ТекстMD = "*This text will be italic*
|_This will also be italic_";
КомандаMDДобавитьШаблон(ТекстMD);
// + #216 Иванов А.Б. 2020-06-27 @milanse
//ТекстMD = "*This text will be italic*
//|_This will also be italic_";
//
//КомандаMDДобавитьШаблон(ТекстMD);
//milanse 20.06.2020
ОформитьТекстMD("*");
// - #216 Иванов А.Б. 2020-06-27 @milanse
КонецПроцедуры
&НаКлиенте
Процедура КомандаMDНумерованныйСписок(Команда)
ТекстMD = "1. Item 1
|1. Item 2
|1. Item 3
| * Item 3a
| * Item 3b";
КомандаMDДобавитьШаблон(ТекстMD);
// + #216 Иванов А.Б. 2020-06-27 @milanse
//ТекстMD = "1. Item 1
//|1. Item 2
//|1. Item 3
//| * Item 3a
//| * Item 3b";
//
//КомандаMDДобавитьШаблон(ТекстMD);
//milanse 20.06.2020
ДобавитьСимволыВНачалоСтрокиMD("1. ");
// - #216 Иванов А.Б. 2020-06-27 @milanse
КонецПроцедуры
&НаКлиенте
Процедура КомандаMDМаркерыСписок(Команда)
ТекстMD = "* Item 1
|* Item 2
| * Item 2a
| * Item 2b";
КомандаMDДобавитьШаблон(ТекстMD);
// + #216 Иванов А.Б. 2020-06-27 @milanse
//ТекстMD = "* Item 1
//|* Item 2
//| * Item 2a
//| * Item 2b";
//
//КомандаMDДобавитьШаблон(ТекстMD);
//milanse 20.06.2020
ДобавитьСимволыВНачалоСтрокиMD("* ");
// - #216 Иванов А.Б. 2020-06-27 @milanse
КонецПроцедуры
&НаКлиенте
@ -1243,26 +1353,68 @@
MDДобавитьПереводСтроки();
Объект.ТекстСодержания = Объект.ТекстСодержания + ТекстMD;
Объект.ТекстСодержания = Объект.ТекстСодержания + ТекстMD;
// + #216 Иванов А.Б. 2020-06-27 @milanse
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.УстановитьТекст(Объект.ТекстСодержания);
//milanse 20.06.2020
чПоследняяСтрока = ТекстовыйДокумент.КоличествоСтрок();
чПоследняяКолонка = СтрДлина(ТекстовыйДокумент.ПолучитьСтроку(ТекстовыйДокумент.КоличествоСтрок()))+1;
Элементы.ТекстСодержания.УстановитьГраницыВыделения(чПоследняяСтрока,чПоследняяКолонка,чПоследняяСтрока,чПоследняяКолонка);
ОбновитьОтображениеДанных(Элементы.ТекстСодержания);
// - #216 Иванов А.Б. 2020-06-27 @milanse
КонецПроцедуры
&НаКлиенте
Процедура КомандаMDЦитата(Команда)
ТекстMD = "As Kanye West said:
|
|> We're living the future so
|> the present is our past.";
КомандаMDДобавитьШаблон(ТекстMD);
// + #216 Иванов А.Б. 2020-06-27 @milanse
//ТекстMD = "As Kanye West said:
//|
//|> We're living the future so
//|> the present is our past.";
//
//КомандаMDДобавитьШаблон(ТекстMD);
//milanse 20.06.2020
ДобавитьСимволыВНачалоСтрокиMD("> ");
// - #216 Иванов А.Б. 2020-06-27 @milanse
КонецПроцедуры
&НаКлиенте
Процедура КомандаMDЗачеркнутый(Команда)
ТекстMD = "~~This text will be strikeout~~";
КомандаMDДобавитьШаблон(ТекстMD);
// + #216 Иванов А.Б. 2020-06-27 @milanse
//ТекстMD = "~~This text will be strikeout~~";
//КомандаMDДобавитьШаблон(ТекстMD);
//milanse 20.06.2020
ОформитьТекстMD("~~");
// - #216 Иванов А.Б. 2020-06-27 @milanse
КонецПроцедуры
//milanse 20.06.2020
&НаКлиенте
Процедура КомандаMDКод(Команда)
чНачалоСтроки = 0;
чНачалоКолонки = 0;
чКонецСтроки = 0;
чКонецКолонки = 0;
Элементы.ТекстСодержания.ПолучитьГраницыВыделения(чНачалоСтроки,чНачалоКолонки,чКонецСтроки,чКонецКолонки);
Если чНачалоСтроки <> чКонецСтроки Тогда
ОформитьФрагментКода("```bsl","```");
Иначе
ОформитьТекстMD("`");
КонецЕсли;
КонецПроцедуры // - #216 Иванов А.Б. 2020-06-27 @milanse
&НаКлиенте
Процедура КонфигурацияОтборПриИзменении(Элемент)
УстановитьПараметрыИзмененныеОбъекты();

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<CommonPicture uuid="ecbf8f95-722f-4fd3-94c3-a58b2d037f49">
<Properties>
<Name>узИконкаMDКод</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Иконка MD код</v8:content>
</v8:item>
</Synonym>
<Comment/>
<AvailabilityForChoice>false</AvailabilityForChoice>
<AvailabilityForAppearance>false</AvailabilityForAppearance>
</Properties>
</CommonPicture>
</MetaDataObject>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ExtPicture xmlns="http://v8.1c.ru/8.3/xcf/extrnprops" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.9">
<Picture>
<xr:Abs>Picture.png</xr:Abs>
<xr:LoadTransparent>false</xr:LoadTransparent>
</Picture>
</ExtPicture>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -546,6 +546,7 @@
<CommonPicture>ЭлектронноеПисьмоВходящее</CommonPicture>
<CommonPicture>ЭлектронноеПисьмоИсходящее</CommonPicture>
<CommonPicture>ЯндексКарты</CommonPicture>
<CommonPicture>узИконкаMDКод</CommonPicture>
<SessionParameter>АвторизованныйПользователь</SessionParameter>
<SessionParameter>БуферОбмена</SessionParameter>
<SessionParameter>ВерсииШаблоновОграниченияДоступа</SessionParameter>