Β«ΠŸΡ€ΠΎΡ‡Ρ‚Ρƒ ΠΏΠΎΡ‚ΠΎΠΌΒ»: трудная ΡΡƒΠ΄ΡŒΠ±Π° ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-страничСк

Π•ΡΡ‚ΡŒ Π²ΠΈΠ΄Ρ‹ софта, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ΄Π½ΠΈ люди ΠΆΠΈΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сущСствуСт ΠΈ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ. Для мСня Π΄ΠΎΠ»Π³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π±Ρ‹Π» Macropool WebResearch, позволявший ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ, Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-страницы Π² Π½Π΅ΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π£Π²Π΅Ρ€Π΅Π½, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ прСкрасно обходятся ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ ссылок ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ ΠΏΠ°ΠΏΠΊΠΈ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ сохранённых Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². МнС ΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ хотя Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ "ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅" ΠΈΠ»ΠΈ "ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹Π΅", быстро ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ тСкста ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ доступности ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сайта. Π‘Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅ΡΡ‚ΡŒ врСмя Ρ€ΠΎΠ²Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π½Π΅Ρ‚ (Π² Π΄ΠΎΡ€ΠΎΠ³Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€), Π΄Π° ΠΈ ссылки, ΠΊ соТалСнию, Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π΅Π΄ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½Ρ‹ΠΌΠΈ.

Π’ΠΈΠ΄ΠΈΠΌΠΎ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° Ρ‚Π°ΠΊΠΈΡ… людСй ΠΈ рассчитывали Π°Π²Ρ‚ΠΎΡ€Ρ‹ WebResearch. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° нашпигована самыми Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ функциями: каталогизация ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ ΠΈ ΠΏΠΎ Ρ‚Π΅Π³Π°ΠΌ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ, всСвозмоТныС Π²ΠΈΠ΄Ρ‹ экспорта/ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Однако ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊ 2013 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ пСрСстал ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ΠΈΠ» сущСствованиС ΠΈ сайт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π•Ρ‰Ρ‘ нСсколько Π»Π΅Ρ‚ ΠΌΠ½Π΅ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ ΠΊΠ°Ρ‚Π°Ρ‚ΡŒΡΡ Π½Π° этой лошадкС, Π½ΠΎ сначала ΠΎΡ‚Π²Π°Π»ΠΈΠ»ΠΈΡΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ (доступныС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³Π΄Π°ΡˆΠ½ΠΈΡ… вСрсий IE ΠΈ FireFox), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈ соврСмСнныС сайты пСрСстали Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² просмотрщикС Π½Π° основС старого IE-Π΄Π²ΠΈΠΆΠΊΠ°.

«ΠŸΡ€ΠΎΡ‡Ρ‚Ρƒ ΠΏΠΎΡ‚ΠΎΠΌ»: трудная ΡΡƒΠ΄ΡŒΠ±Π° ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-страничСк
Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ WebResearch, PC Week/RE β„–17 (575)

Π”ΠΎΡ€ΠΎΠ³Π° Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ΠΈΠΉ

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стало ясно, Ρ‡Ρ‚ΠΎ Π·Π°ΠΌΠ΅Π½Ρ‹ Π½Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, я Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ взялся Π·Π° поиск ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π°. МнС казалось, особых слоТностСй здСсь Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ТСлания ΠΌΠΎΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ скромны. Π― Π±Ρ‹Π» Π³ΠΎΡ‚ΠΎΠ² ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ лишь ΠΌΠ°Π»Ρ‹ΠΌ подмноТСством срСдств WebResearch, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ Π² сСбя:

  • сохранСниС HTML страницы ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ;
  • хотя Π±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈΠ·Π°Ρ†ΠΈΠΈ (ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, организация ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΌΠ΅Ρ‚ΠΊΠΈ);
  • (ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° PDF Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²;
  • любой сносный способ синхронизации ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами.

К ΠΌΠΎΠ΅ΠΌΡƒ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡŽ, Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ ΠΌΠ½Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ, хотя я чСстно ΠΈΠ·Π»Π°Π·ΠΈΠ» ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ вдоль ΠΈ ΠΏΠΎΠΏΠ΅Ρ€Ρ‘ΠΊ ΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΠ» с дСсяток подходящих ΠΏΠΎ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Evernote, Π³Π΄Π΅ похоТая ΠΏΠΎ описанию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ подпискС). На сСгодняшний дСнь Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ ΠΌΠΎΠΈΠΌ поТСланиям Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ TagSpaces ΠΈ myBase. Π˜Ρ… ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, прСдставляСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ интСрСс.

TagSpaces — это Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΎΡ‚ "ΡΡ‚ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ-ΠΌΠΎΠ΄Π½Ρ‹ΠΉ-ΠΌΠΎΠ»ΠΎΠ΄Ρ‘ΠΆΠ½Ρ‹ΠΉ" ΠΎΡ€Π³Π°Π½Π°ΠΉΠ·Π΅Ρ€ Π½Π° Electron с красивым сайтом, Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ вёрсткой ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‚Ρ‘ΠΌΠ½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ, ΠΊΡƒΠ΄Π° ΠΆ Π±Π΅Π· Π½Π΅Ρ‘. ΠŸΡ€ΠΈ этом злосчастноС ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ c ΠΌΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π·Π°ΠΊΡ€ΡƒΠ³Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ Π·Π½Π°Ρ‡ΠΊΠ°ΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ экрана, вмСщая ΠΏΡ€ΠΈ этом ΡˆΡ‚ΡƒΠΊ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ элСмСнтов максимум, Π° Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ горячих клавиш ΠΈΠ»ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° просматриваСмого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΏΠΎ остаточному ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΊΡ€ΠΈΠ²ΠΎ, Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ прСвращаСтся Π² скучный ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠΈΠΉ комплСкс ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ с ΠΌΡ‹ΡˆΡŒΡŽ.

Π•Π³ΠΎ Π°Π½Ρ‚ΠΈΠΏΠΎΠ΄ myBase Ρ€ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½Ρ†Π° дСвяностых: здСсь ΠΏΠΎΠΌΠΈΠΌΠΎ чисто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΊΡ€Π°ΠΉΠ½Π΅ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ настроСк ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Однако Π² качСствС ΠΎΠΊΠ½Π° просмотра здСсь выступаСт всё Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π° основС старого IE (Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ), Π° всС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ хранятся Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. Если Π΅Ρ‘ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ Dropbox, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (Π΄Ρ€ΡƒΠ³ΠΈΡ… способов синхронизации с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами всё Ρ€Π°Π²Π½ΠΎ Π½Π΅Ρ‚), Ρ‚ΠΎ ΠΏΡ€ΠΈ малСйшСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ приходится Π΄ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒΡΡ закачивания Π½Π° сСрвСр сотСн ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

ΠŸΠΎΠ²ΠΎΡ€ΠΎΡ‚Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚

ВСроятно, дальнСйшСС содСрТаниС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ прСдставляСтся ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ: сСйчас Π½Π°ΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ°Ρ‚ собствСнный вСлосипСд, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, окаТСтся Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρƒ Π²Ρ‹ΡˆΠ΅ любого ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π°. Как Π±Ρ‹ Π΄Π°, Π½ΠΎ Π½Π΅ совсСм. Π― Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Π» мытарств с myBase ΠΈ TagSpaces ΠΈ набросал собствСнный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ссылку Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ. Однако этот ΠΌΠ΅Π»ΠΊΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½ΡƒΠΆΠ΄ сам ΠΏΠΎ сСбС Π½Π΅ заслуТивал Π±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ; я ΠΏΠΈΡˆΡƒ Π² большСй стСпСни ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ показалось интСрСсным ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΈ Ρ†Π΅Π»Ρ‹ΠΌ рядом нСприятных ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ рассчитывал.

Π¦Π΅Π»ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ

Начну с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ мСня сСйчас довольно напряТённая Тизнь, ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ Ρ…ΠΎΠ±Π±ΠΈ-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ попросту Π½Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ с самого Π½Π°Ρ‡Π°Π»Π° я Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ Π³ΠΎΡ‚ΠΎΠ² Π»Π΅ΠΏΠΈΡ‚ΡŒ свой инструмСнт ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ попадутся ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΡƒ, Ссли это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Π΄Π΅Π»ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π±Π΅Ρ€ΡƒΡΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ лишь Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π½ΠΈΠΊΠ°ΠΊ нСльзя.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ сохранСниС страниц

Π’ ΠΊΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Π΅Π±-страницы Π½Π° дискС? Π‘ ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Ρ€Π°Π½Π΅Π΅ сформулированных Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠ½Π΅ казалось, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ Π½Π΅Π²Π΅Π»ΠΈΠΊ: Π»ΠΈΠ±ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сохранСния "Π²Π΅Π±-страница ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ", Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ основной HTML Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠ°ΠΏΠΊΠ° со связанными рСсурсами, Π»ΠΈΠ±ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ MHTML. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠ½Π΅ сразу показался ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ: Π½Π΅Π²Π΅Π»ΠΈΠΊΠ° Ρ€Π°Π΄ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π° дискС ΠΏΠΎΠΌΠΎΠΉΠΊΡƒ ΠΈΠ· ΠΊΡƒΡ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… понадобится ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ лишнСС ΠΏΡ€ΠΈ поискС ΠΈ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Когда я пытался Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с TagSpaces, ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС свои Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ имя ΠΏΠ°ΠΏΠΊΠΈ с рСсурсами Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ с Ρ‚ΠΎΡ‡ΠΊΠΈ: Ρ‚ΠΎΠ³Π΄Π° систСма распознавала ΠΈΡ… ΠΊΠ°ΠΊ "скрытыС" ΠΈ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π»Π°.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° скрыта ΠΈΠ· Π²ΠΈΠ΄Ρƒ Π² myBase, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всё хранится Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π² ΠΌΠΎΡ‘ΠΌ случаС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ простоты взял Π²Π΅Ρ€Ρ…: ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всё Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° дискС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Ρ€ΠΎΠ΄Π΅ копирования, пСрСимСнования, удалСния ΠΈ синхронизации.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ MHTML ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠ΅ свои Π²Ρ€Π΅ΠΌΠ΅Π½Π°. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ MHTML Π±Ρ‹Π» Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½ ΠΈΠ· Chrome этим Π»Π΅Ρ‚ΠΎΠΌ, ΠΈ я Π²ΠΎΡ‚ Π΄Π°ΠΆΠ΅ Π½Π΅ знаю, Π² Ρ‡Ρ‘ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдполагаСтся Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ страницы? ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ дСлась, Π΅ΡΡ‚ΡŒ сторонниС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ это ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π½Π΅Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сохранСниС Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ MHTML Π½Π΅ поддСрТиваСтся Π² Chromium Embedded Framework, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ прибавляСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΌΠ°.

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ я стал ΠΈΡΠΊΠ°Ρ‚ΡŒ простой способ сохранСния страниц ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠ±Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΌΠ°Π»ΠΎΠΉ ΠΊΡ€ΠΎΠ²ΡŒΡŽ: я наткнулся Π½Π° Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ SingleFile, ΡƒΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ содСрТимоС Π²Π΅Π±-страницы Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ нСзависимом HTML-Ρ„Π°ΠΉΠ»Π΅. ДСлаСтся это ΠΏΡƒΡ‚Ρ‘ΠΌ прСобразования всСх связанных рСсурсов Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ base64 ΠΈ внСдрСния нСпосрСдствСнно Π² HTML. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΈ этом Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° растёт, Π΄Π° ΠΈ содСрТимоС выглядит нСсколько замусорСнным, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠ½Π΅ показался Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΌ ΠΈ простым, ΠΈ я остановился Π½Π° Π½Ρ‘ΠΌ.

SingleFile поставляСтся ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊ ΠΈ Π² Π²ΠΈΠ΄Π΅ прилоТСния ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. БСйчас я просто ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ: это достаточно ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли Π½Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ для сохранСния. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, вСроятно, ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ этот процСсс. Для Π²Ρ‹Π·ΠΎΠ²Π° стороннСго прилоТСния ΠΈΠ· Chrome ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ External Application Button — это Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ ΠΌΠΎΡ‘ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅. ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ принСсло ΠΏΠΎΠ»ΡŒΠ·Ρƒ: с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ я сконвСртировал ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΏΠ°ΠΏΠΎΠΊ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· TagSpaces Π² Π½Π°Π±ΠΎΡ€ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π₯Π»ΠΎΠΏΠΎΡ‚Ρ‹ с GUI ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ

МнС показалось, Ρ‡Ρ‚ΠΎ для всСвозмоТных простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ строками Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Python, Π° ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ wxWidgets, Π²Ρ‹Π±ΠΎΡ€ wxPython Π² качСствС основного Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° выглядСл Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ.

Π”Π°Π»Π΅Π΅, Π½Π°ΡΠΌΠΎΡ‚Ρ€Π΅Π²ΡˆΠΈΡΡŒ Π½Π° косяки с ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ страниц Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, я сдСлал для сСбя Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ СдинствСнный Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ способ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ — это Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° основС соврСмСнного Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Chrome ΠΈΠ»ΠΈ Firefox.

Π”ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² послСдний Ρ€Π°Π· ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ‡Π΅ΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Π»Π΅Ρ‚ 15 Π½Π°Π·Π°Π΄, ΠΈ я Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π» Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠΎΠ΄Π²ΠΎΡ…ΠΎΠ². Оказалось, Ρ‡Ρ‚ΠΎ "просто ΡˆΠ»Ρ‘ΠΏΠ½ΡƒΡ‚ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ" нСльзя: ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π²ΠΎΡ‚ чСловСчСство Π½Π΅ сумСло Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎ ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с этой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Какой-Π½ΠΈΠ±ΡƒΠ΄ΡŒ listbox ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² любом GUI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅, Π΄Π° Π΅Ρ‰Ρ‘ ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ кроссплатформСнный ΠΊΠΎΠ΄, ΠΈ ΠΌΠ½Π΅ казалось, Ρ‡Ρ‚ΠΎ Π² 2019 Π³ΠΎΠ΄Ρƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ HTML Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ повсСмСстно Ρ€Π΅ΡˆΡ‘Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Оказалось, Ρ‡Ρ‚ΠΎ Π² wxWidgets, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, стандартный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ "Π±Ρ€Π°ΡƒΠ·Π΅Ρ€" являСтся кроссплатформСнной ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΎΠΉ Π½Π°Π΄ систСмно-зависимым "Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² случаС Windows, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Internet Explorer 7, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ситуация Π² Windows Forms Π½ΠΈΡ‡ΡƒΡ‚ΡŒ Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅, ΠΈ вСрсии свСТСС IE9 доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… манипуляций с рССстром. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½Π΅ я ΠΎΠ΄ΠΈΠ½ занимался послСдниС 15 Π»Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΄Π΅Π»Π°ΠΌΠΈ — здСсь Ρ‚ΠΎΠΆΠ΅ с мСста Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡΠ΄Π²ΠΈΠ½ΡƒΠ»ΠΎΡΡŒ.

Π”Π°Π»ΡŒΡˆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ΠΎ ΠΌΠ½ΠΎΠΉ стоял Π²Ρ‹Π±ΠΎΡ€: ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. ПоколСбавшись, я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ сначала Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ ΠΈ достаточно быстро наткнулся Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ CEF Python: Python bindings for Chromium Embedded Framework, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€ΠΎΠ²Π½ΠΎ для Π·Π°Π΄Π°Ρ‡ΠΈ встраивания Chromium Π² прилоТСния Π½Π° Python.

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: Python являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных языков программирования Π² ΠΌΠΈΡ€Π΅, Chrome — ΠΏΠΎ сути монополист Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΈ этом CEF Python фактичСски поддСрТиваСтся энСргиСй ΠΎΠ΄Π½ΠΎΠ³ΠΎ парня, сил ΠΈ Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ Π΅ΠΌΡƒ. НСуТСли это большС Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ?..

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΌΠ½Π΅ CEF Python Π² ΠΈΡ‚ΠΎΠ³Π΅ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³: хотя Π΄Π°ΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с wxWidgets ΠΈΠ· рСпозитория ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½ΠΎ Π³Π»ΡŽΡ‡ΠΈΡ‚, я ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΏΠΎΠ²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌ подольшС, Π½ΠΎ Ρ‚Π°ΠΊ ΠΈ Π½Π΅ смог Ρ€Π΅ΡˆΠΈΡ‚ΡŒ всС Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π”Π°ΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Ρƒ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ Π² Ρ‚Π΅ΠΌΡƒ, вряд Π»ΠΈ ΠΎΠ½Π° Ρ‚ΠΎΠ³ΠΎ заслуТиваСт.

Π― ΠΈΠ·ΡƒΡ‡ΠΈΠ» ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° основС Chromium Embedded Framework ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ для C#. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ я ΠΏΠΎΡ‡Ρ‚ΠΈ всё врСмя с Windows, пСрспСктива ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ кроссплатформСнности мСня, Π² ΠΎΠ±Ρ‰Π΅ΠΌ, Π½Π΅ особСнно смущала.

ПослС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈ Π½Π° стартС Π΄Π΅Π»ΠΎ пошло Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСС: связка CefSharp ΠΈ Windows Forms оказалась Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½ΠΎΠΉ, ΠΈ ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π±Π΅Π· особых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ поставлСнных тСхничСских Π·Π°Π΄Π°Ρ‡.

О нСиспробованном

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° C# ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΈ FireFox, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Geckofx, Π½ΠΎ я ΠΏΡ€ΠΎ Π½Π΅Π³ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³Ρƒ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Qt ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ QWebEngineView основан Π½Π° Chromium, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Ρ…ΡƒΠΆΠ΅ CefSharp.

Π£ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ Qt ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ соблазн ΠΎΡ‚ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: ΠΌΠΎΠ», Π±Ρ€Π°Π» Π±Ρ‹ Qt, Π½Π΅ ΠΈΠΌΠ΅Π» Π±Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΎΠ½ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ, Π½ΠΎ ΠΈ wxWidgets ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ссли Π½Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ, Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ GUI Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Python ΠΈΠ»ΠΈ C++. И ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ скромному мнСнию ΡƒΠΆ такая Π²Π΅Ρ‰ΡŒ ΠΊΠ°ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² любой Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΉ GUI Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π±Π΅Π· плясок с Π±ΡƒΠ±Π½ΠΎΠΌ.

WebLibrary

ВСрнёмся, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΊ ΠΌΠΎΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ с Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ WebLibrary. На сСгодняшний дСнь выглядит ΠΎΠ½ΠΎ (барабанная Π΄Ρ€ΠΎΠ±ΡŒ) Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

«ΠŸΡ€ΠΎΡ‡Ρ‚Ρƒ ΠΏΠΎΡ‚ΠΎΠΌ»: трудная ΡΡƒΠ΄ΡŒΠ±Π° ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-страничСк

Помимо чистого ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ интСрфСйса здСсь Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ лишь самыС Π½Π°ΠΈΠ±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ любого ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² систСмС ΠΊΠ°ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².
  • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Навигация ΠΏΠΎ списку ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (клавиши курсора, PgUp, PgDn, Home, End), пролистываниС Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ клавишами Space ΠΈ Shift+Space.
  • ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².
  • ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ горячих клавиш.
  • Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ полю.
  • ОбновлСниС ΠΎΠΊΠ½Π° прилоТСния ΠΏΡ€ΠΈ Π»ΡŽΠ±Ρ‹Ρ… измСнСниях Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅.
  • Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ настроСк ΠΎΠΊΠ½Π° ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅.

Π­Ρ‚ΠΎ всё ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ Π²ΠΎΡ‚, скаТСм, сохранСниС Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π² TagSpaces всё Π΅Ρ‰Ρ‘ Π½Π΅ поддСрТиваСтся — Π²ΠΈΠ΄ΠΈΠΌΠΎ, Ρƒ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹.

Бтатус (ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ/ΠΈΠ·Π±Ρ€Π°Π½Π½ΠΎΠ΅) попросту хранится Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» doc.html пСрСимСновываСтся Π² doc{R,S}.html). Бинхронизация ΠΊΠ°ΠΊ таковая Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π°, Π½ΠΎ я попросту Π΄Π΅Ρ€ΠΆΡƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² Dropbox — Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², это всСго лишь ΠΏΠ°ΠΏΠΊΠ° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Π’ ΠΏΠ»Π°Π½Π°Ρ… Π΅Ρ‰Ρ‘ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ простыС Π²Π΅Ρ‰ΠΈ Π²Ρ€ΠΎΠ΄Π΅ пСрСмСщСния ΠΈ удалСния Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅Π³Π°ΠΌΠΈ. Если ΠΊΡ‚ΠΎ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ — Π±ΡƒΠ΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π΄.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π‘Π°ΠΌΡ‹Π΅ Ρ€Π°Π·Π½Ρ‹Π΅. Как я сказал с самого Π½Π°Ρ‡Π°Π»Π°, ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, насколько инструмСнтарий ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ инструмСнтария Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. Для мСня ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ срСдством Π²Ρ€ΠΎΠ΄Π΅ WebResearch СстСствСнно, ΠΈ я ΠΎΡ‰ΡƒΡ‰Π°Π» ΠΏΠΎΡ‡Ρ‚ΠΈ физичСский дискомфорт ΠΎΡ‚ Π΅Π³ΠΎ отсутствия. ΠŸΡ€ΠΈ этом, судя ΠΏΠΎ всСму, Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ² Ρƒ мСня Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈΠ½Π°Ρ‡Π΅ Π±Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с поиском Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Π±Ρ‹. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ случаи происходят ΠΈ с ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ мСинстримным софтом: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Microsoft Π½Π΅ собираСтся ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΄Π΅ΡΠΊΡ‚ΠΎΠΏΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ OneNote, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ я Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вСрсиСй 2016 Π³ΠΎΠ΄Π°, ΠΈ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ придётся с Π½Π΅Ρ‘ Ρ‚ΠΎΠΆΠ΅ ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Ρ‚ΡŒ.

Π•Ρ‰Ρ‘ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎ, насколько нСпросто ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π½Ρ‹Π½Π΅ΡˆΠ½Π΅ΠΌ Π»Π°Π½Π΄ΡˆΠ°Ρ„Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ². МнС ΠΏΠΎ Π΄ΠΎΠ»Π³Ρƒ слуТбы Ρ€Π΅Π΄ΠΊΠΎ приходится ΠΏΠΈΡΠ°Ρ‚ΡŒ дСсктопныС прилоТСния ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, ΠΈ я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π», Ρ‡Ρ‚ΠΎ для ΠΌΠΎΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΎΠ΄Π½ΠΎ ΠΎΠΊΠ½ΠΎ, Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ взаимодСйствия) ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ любой инструмСнт для любого языка программирования. Π’ΠΎΡ‚ прямо Π±Π΅Ρ€Ρ‘ΠΌ Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΈ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ Π΄Π΅Π»Π°Π΅ΠΌ.

Оказалось, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΡƒΠ΄Π° ΠΌΠ΅Π½Π΅Π΅ Π±Π»Π°Π³ΠΎΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Π°, ΠΈ Π½Π°Ρ€Π²Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ просто Π½Π° Ρ€ΠΎΠ²Π½ΠΎΠΌ мСстС. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π΅ΡΡ‚ΡŒ Ρƒ мСня Π΄Π²Π° splitter-Π°, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’Π°ΠΊ Π²ΠΎΡ‚, Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² wxWidgets ΠΊΡ€Π°ΠΉΠ½Π΅ нСпросто, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ систСма выставляСт ΠΈΡ… Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ практичСски послС всСх доступных ΠΌΠ½Π΅ событий, ΠΈ приходится Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ всячСским хакСрством, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ. Π’ΠΎΡ‚ ΠΊΡ‚ΠΎ Π±Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»?

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² Windows Forms всё Π·Π°Ρ‚ΠΎΡ‡Π΅Π½ΠΎ ΠΏΠΎΠ΄ "бизнСс-интСрфСйсы". ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всё, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ, оказалось доступно ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ: ΠΈ сохранСниС/восстановлСниС настроСк прилоТСния, ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (скаТСм, Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π», Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TreeView ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚ корня Π΄ΠΎ любого Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ элСмСнта Π² Π²ΠΈΠ΄Π΅ строки), ΠΈ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства Π²Ρ€ΠΎΠ΄Π΅ отслСТиватСля ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ содСрТимого ΠΏΠ°ΠΏΠΊΠΈ.

Π’ любом случаС врСмя ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½ΠΎ Π½Π΅ зря, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‚Π°ΠΊ Ρ‡Π΅Π³ΠΎ ΠΆΠ΅ Π΅Ρ‰Ρ‘ ΠΆΠ΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚ ΠΆΠΈΠ·Π½ΠΈ, Π²Π΅Ρ€Π½ΠΎ?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ