CKEditor TextSelection-ը Drupal-ի համար․ պահպանում է կուրսորը և ընտրությունը Source ռեժիմին անցնելիս
Եթե բավական երկար ժամանակ Drupal-ում բովանդակություն եք խմբագրում, ամենայն հավանականությամբ հանդիպել եք այս փոքր, բայց նյարդայնացնող աշխատանքի հոսքի խափանմանը․ դուք ընտրում եք բառ կամ տեղադրում եք կուրսորը, անցնում եք Source՝ նշագրման (markup) փոքր փոփոխություն անելու համար, և… կորցնում եք ձեր տեղը։ Ես կառուցեցի փոքր մոդուլ, որը հենց դա է լուծում։
Ի՞նչ է անում մոդուլը
CKEditor TextSelection-ը Drupal-ի մոդուլ է, որը CKEditor 5-ի “Text Selection” փլագինը ինտեգրում է Drupal-ի CKEditor 5 խմբագրիչի մեջ։ Նրա հիմնական նպատակը պարզ է՝ պահպանել կուրսորի դիրքը և տեքստի ընտրությունը WYSIWYG և Source ռեժիմների միջև անցնելիս — և ընտրությունը տեսանելի պահել՝ այն էկրանին բերելով (scroll into view)։
- Պահպանում է կուրսորի դիրքը WYSIWYG ↔ Source փոխարկումների ժամանակ։
- Պահպանում է իրական տեքստային ընտրությունը (ոչ միայն կարետը)։
- Սքրոլում է դիտման հատվածը՝ ընտրությունը երկու ռեժիմներում էլ տեսանելի պահելու համար։
- Լավ է աշխատում նաև CKEditor CodeMirror Source Editing մոդուլի հետ՝ Source ռեժիմում ավելի հարմար խմբագրման փորձի համար։
- Ոգեշնչված է CKEditor 4-ի դասական add-on-ի վարքագծից՝ CKEditor 4 TextSelection ։
Ինչու է սա կարևոր (UX մանրուք, որը իրականում ժամանակ է խնայում)
Խմբագիրները Source ռեժիմ են անցնում հիմնավոր պատճառներով՝ մաքրելու պատճենված/տեղադրված (pasted) markup-ը, կարգավորելու հղման որևէ ատրիբուտ, շտկելու ցանկի կառուցվածքը, ստուգելու վերնագրերը կամ համոզվելու, որ HTML-ը հենց այնպիսին է, ինչպիսին նախատեսել են։ Յուրաքանչյուր փոխարկման ժամանակ ընտրությունը/կարետը կորցնելը ավելացնում է «շփոթեցնող դիմադրություն»՝ հատկապես երկար հոդվածներում։ Այս մոդուլի նպատակը պարզ է՝ ձեզ պահել հոսքի մեջ։
Ինչպես է աշխատում (ընդհանուր պատկերացում)
WYSIWYG-ից Source անցնելիս փլագինը ձեր ընթացիկ կուրսորի դիրքը կամ ընտրությունը քարտեզագրում է խմբագրիչի մոդելից դեպի HTML source-ի համապատասխան դիրքը։ Հետադարձ անցման ժամանակ այն կարդում է Source ռեժիմում գտնվող կուրսորը/ընտրությունը և վերականգնում է այն rich text խմբագրիչում։ Եթե ինչ-որ բան հնարավոր չէ իդեալապես քարտեզագրել (կային ու կլինեն եզակի դեպքեր), այն «կոռեկտ» կերպով է ձախողվում՝ առանց խմբագրիչը վնասելու։
Փորձեք (դեմո)
Ուզու՞մ եք տեսնել CKEditor 5-ի հիմքում գտնվող փլագինը գործի մեջ։ Բացեք դեմոն, ընտրեք որևէ արտահայտություն, միացրեք Source-ը և տեսեք, թե ինչպես է ընտրությունը մնում նույն տեղում՝ CKEditor 5 Text Selection Plugin Demo ։
Drupal նախագծի հղումներ
- Նախագծի էջը՝ https://www.drupal.org/project/ckeditor_textselection
- Թողարկումներ՝ https://www.drupal.org/project/ckeditor_textselection/releases (այստեղ ստուգեք վերջին տարբերակը և համատեղելիության նշումները)
- Git հրահանգներ (clone/patch workflow)՝ https://www.drupal.org/project/ckeditor_textselection/git-instructions
- Խնդիրներ (issues)՝ https://www.drupal.org/project/issues/ckeditor_textselection
Տեղադրում
1) Տեղադրում Composer-ի միջոցով
Տեղադրեք մոդուլը Composer-ով (խորհուրդ է տրվում)։ Եթե ցանկանում եք կոնկրետ տարբերակ, ընտրեք այն Releases էջից ։
composer require drupal/ckeditor_textselection2) Միացրեք մոդուլը
Միացրեք CKEditor TextSelection-ը ինչպես ցանկացած contributed մոդուլ (UI կամ Drush)։
3) Միացրեք այն ձեր text format-ում
- Գնացեք Administration → Configuration → Content authoring → Text formats and editors։
- Բացեք այն format-ը, որը օգտագործում է CKEditor 5։
- CKEditor 5-ի կարգավորումներում միացրեք Text Selection փլագինը։
- Համոզվեք, որ գործիքագոտում հասանելի է Source editing կոճակը (փոխարկման համար ձեզ պետք է Source ռեժիմը)։
- Պահպանեք text format-ի կարգավորումները։
4) Պատրաստ է
Լրացուցիչ կարգավորումներ պետք չեն։ Միացնելուց հետո ընտրության պահպանումը աշխատում է ավտոմատ՝ ամեն անգամ ռեժիմները փոխարկելիս։
Օգտագործումը CodeMirror Source Editing-ի հետ
Եթե ձեր խմբագրական թիմը Source ռեժիմում նախընտրում է շարահյուսության ընդգծում (syntax highlighting), այս մոդուլը զույգեք CKEditor CodeMirror Source Editing մոդուլի հետ։ Դա բարձրացնում է ընթեռնելիությունը՝ պահպանելով ընտրության պահպանումը։
Կափարիչի տակ․ upstream նախագծեր
Drupal մոդուլը կառուցված է CKEditor 5 upstream փլագինի վրա։ Եթե ցանկանում եք նայել կամ մասնակցել դրա զարգացմանը՝
- GitHub պահոց՝ https://github.com/levmyshkin/ckeditor5-textselection
- Packagist փաթեթ՝ https://packagist.org/packages/levmyshkin/ckeditor5-textselection
Կարծիքներն ու ներդրումները ողջունելի են
Շատ կուրախանամ լսել կարծիքներ Drupal-ի խմբագիրներից, site builder-ներից և ծրագրավորողներից — հատկապես բարդ եզակի դեպքերի շուրջ, երբ WYSIWYG-ի և HTML-ի միջև ընտրության քարտեզագրումը կարող է երկիմաստ լինել։ Կիսվեք դիտարկումներով, բացեք issues կամ մասնակցեք՝ CKEditor TextSelection-ը Drupal.org-ում ։