"Akong basahon kini sa ulahi": ang lisud nga kapalaran sa usa ka offline nga koleksyon sa mga panid sa Internet

Adunay mga matang sa software nga ang pipila ka mga tawo dili mabuhi nga wala, samtang ang uban dili gani mahanduraw nga ang ingon nga butang anaa o nga bisan kinsa nagkinahanglan niini. Alang kanako sa daghang mga tuig kini nga programa Macropool WebResearch, nga nagtugot kanimo sa pagtipig, pagbasa ug pag-organisar sa mga panid sa Internet ngadto sa usa ka matang sa offline nga librarya. Sigurado ko nga daghan sa among mga magbabasa ang nakab-ot nga maayo sa usa ka koleksyon sa mga link o kombinasyon sa usa ka browser ug usa ka folder nga adunay usa ka set sa gitipig nga mga dokumento. Gusto nako nga mamarkahan sa labing menos ang mga dokumento ingon "basaha" o "mga paborito", dali nga mobalhin gikan sa usa ka teksto ngadto sa lain ug dili magdepende sa pagkaanaa sa Internet o usa ka piho nga site. Kini mahitabo nga adunay panahon sa pagbasa sa tukma sa diha nga walay Internet (sa dalan, alang sa panig-ingnan), ug ang mga link, subo, sa kasagaran turns ngadto sa mubo nga kinabuhi.

Dayag, ang mga tagsulat sa WebResearch nagsalig sa gibanabana nga kini nga mga tawo. Kini nga programa puno sa lain-laing mga gimbuhaton: pag-catalog sa mga seksyon ug mga tag, pag-edit sa mga nota, tanang matang sa export/import, ug uban pa. Apan, sa palibot sa 2013, ang proyekto mihunong sa pag-update, ug unya ang website sa developer wala na maglungtad. Sulod sa daghang mga tuig nakahimo ako sa pagsakay niini nga kabayo, apan una ang mga plugins sa browser nahulog (magamit lamang alang sa mga bersyon sa IE ug FireFox kaniadto), ug unya ang mga modernong site mihunong sa pagpakita sa normal sa usa ka viewer base sa daan nga IE engine.

"Akong basahon kini sa ulahi": ang lisud nga kapalaran sa usa ka offline nga koleksyon sa mga panid sa Internet
Panguna nga bintana sa WebResearch, Semana sa PC/RE No. 17 (575)

Dalan sa Kasagmuyo

Sa diha nga kini nahimong tin-aw nga ang usa ka kapuli dili malikayan, sa luyo nagsugod ako sa pagpangita alang sa usa ka desente analogue. Para nako wala’y bisan unsang espesyal nga mga kalisud dinhi, tungod kay ang akong mga tinguha hilabihan ka kasarangan. Andam na ako sa paghimo sa usa ka gamay nga subset sa mga himan sa WebResearch, lakip ang:

  • pag-save sa usa ka panid sa HTML gikan sa browser gamit ang usa ka extension;
  • labing menos gamay nga mga himan sa pag-catalog (pag-usab sa ngalan, pag-organisar sa mga katalogo, mga label);
  • (mas maayo) suporta alang sa PDF nga mga dokumento;
  • bisan unsang desente nga paagi sa pag-sync sa imong koleksyon sa ubang mga aparato.

Sa akong katingala, wala koy nakit-an nga susama, bisan kung matinud-anon nakong gisuhid ang Internet sa layo ug halapad ug mabinantayon nga nagtuon sa usa ka dosena nga mga programa nga mohaum sa mga anotasyon (gawas sa Evernote, diin ang pagpaandar nga susama sa paghulagway magamit lamang pinaagi sa suskrisyon). Karon, ang mga butang nga labing menos makatagbaw sa akong mga gusto mao ang mga proyekto TagSpaces ΠΈ myBase. Ang ilang pagtuon, sa kasagarang pagkasulti, adunay piho nga interes sa kultura.

Ang TagSpaces usa ka "estilo-fashionable-youth" organizer sa Electron nga adunay nindot nga website, adaptive layout ug, siyempre, usa ka mangitngit nga tema, asa man kita kung wala kini. Sa parehas nga oras, ang dili maayo nga talaan sa mga sulud sa koleksyon nga adunay us aka us aka lingin nga mga imahen nagkuha sa katunga sa screen, samtang nag-akomodar sa mga kaluhaan ka mga elemento sa kadaghanan, ug ang mga batakang butang sama sa suporta sa mga mainit nga yawe o paghubad sa dokumento nga gitan-aw gisulat. sumala sa nahabilin nga prinsipyo. Ingon usa ka sangputanan, ang mga dokumento gipakita nga hiwi, ug ang pagtrabaho kauban ang pagkolekta nahimo nga usa ka makalaay ug makahurot nga set sa mga ehersisyo gamit ang mouse.

Ang antipode myBase niini naggikan sa ulahing bahin sa nineties: dinhi, dugang sa pulos functional interface kami adunay usa ka labi ka adunahan nga set sa mga setting ug mga gimbuhaton. Bisan pa, ang bintana sa pagtan-aw dinhi parehas nga browser nga gibase sa daan nga IE (nga nagpalisud na sa pagbasa), ug ang tanan nga mga dokumento gitipigan sa usa ka monolithic database. Kung ibutang nimo kini sa folder sa Dropbox, pananglitan (wala pa'y lain nga mga paagi sa pag-synchronize sa ubang mga aparato), unya sa gamay nga pagbag-o sa koleksyon kinahanglan ka maghulat hangtod gatusan ka megabytes nga kasayuran ang ma-upload sa server.

Usa ka punto sa pagbag-o

Tingali, ang dugang nga sulud sa mubo nga sulat ingon klaro sa magbabasa: karon itanyag ang among kaugalingon nga bisikleta, nga, siyempre, mahimong ulo ug abaga labaw sa bisan unsang analogue. Matang sa oo, apan dili kaayo. Dili gyud nako maagwanta ang pagsulay sa myBase ug TagSpaces ug gi-sketch ang akong kaugalingon nga manager sa dokumento, ang link nga akong ihatag sa hapit na matapos. Bisan pa, kining gamay nga personal nga proyekto dili takus sa kaugalingon nga artikulo sa kaugalingon; Nagsulat ko sa kadaghanan tungod kay naghunahuna ko nga makapaikag nga ipaambit ang kasinatian nga akong naangkon sa panahon sa akong trabaho ug daghang dili maayo nga mga sorpresa nga wala nako damha.

Mga katuyoan ug katuyoan

Tugoti ako nga magsugod sa kamatuoran nga ako adunay usa ka medyo busy nga kinabuhi karon, ug ako wala’y oras alang sa hingpit nga mga proyekto sa kalingawan. Busa, gikan sa sinugdanan, nakahukom ko nga andam na ako sa pagkulit sa akong instrumento gikan sa bisan unsang mga sangkap nga moabut sa kamot, kung kini makapadali sa mga butang. Dugang pa, sa pagkakaron naningkamot ko nga ipatuman lamang ang hingpit nga minimum sa pagpaandar, nga imposibleng buhaton nga wala.

Format sa Data ug Pagtipig sa Panid

Sa unsa nga porma kinahanglan nga itago ang mga panid sa web sa disk? Gikonsiderar ang nauna nga giporma nga mga kinahanglanon, para nako gamay ra ang kapilian: bisan ang format sa pagtipig sa "tibuok web page", nga mao, ang panguna nga file sa HTML ug usa ka folder nga adunay kauban nga mga kapanguhaan, o ang format sa MHTML. Ang unang opsyon diha-diha dayon ingon og dili kaayo gusto kanako: adunay gamay nga kalipay nga adunay usa ka basurahan sa mga file sa imong disk, diin kinahanglan nimo nga makuha ang mahinungdanong mga dokumento, i-filter kung unsa ang wala kinahanglana sa pagpangita, ug pag-monitor sa integridad sa pagkopya. Sa dihang misulay ko sa pagtrabaho uban sa TagSpaces, kinahanglan nakong i-save ang tanan nakong mga dokumento aron ang ngalan sa resource folder nagsugod sa usa ka tuldok: unya ang sistema miila niini nga "gitago" ug wala kini ipakita.

Kini nga problema gitago gikan sa pagtan-aw sa myBase, tungod kay ang tanan gitipigan sa database, apan sa akong kaso ang prinsipyo sa kayano mipatigbabaw: Gusto gyud nako nga tipigan ang tanan ingon nga regular nga mga file sa disk aron dili nako kinahanglan nga atubangon ang pagpatuman sa naandan nga mga operasyon sama sa pagkopya, pagbag-o sa ngalan, pagtangtang ug pag-synchronize.

Ang MHTML format nag-agi sa lisud nga mga panahon. Usa ka sayon ​​nga paagi sa pagluwas sa MHTML gisipa gikan sa Chrome karong ting-init, ug wala gani ko kahibalo kon asa ang mga panid kinahanglan nga tipigan karon? Tin-aw nga ang oportunidad wala pa mawala, adunay mga ikatulong partido nga mga extension, apan sa kinatibuk-an kini usa ka matang sa dili maayo nga ilhanan. Dugang pa, pagtipig sa MHTML format wala gisuportahan sa Chromium Embedded Framework, nga wala usab makadugang sa pagkamalaumon.

Sa samang higayon, nagsugod ko sa pagpangita sa usa ka yano nga paagi sa pagluwas sa mga panid gikan sa browser ngadto sa usa ka piho nga folder. Ingon usa ka sangputanan, ang duha nga mga problema nasulbad sa gamay nga kapildihan: Nakakita ako usa ka matahum nga proyekto SingleFile, makahimo sa pagluwas sa mga sulod sa usa ka web page sa usa ka bulag nga independente nga HTML file. Gihimo kini pinaagi sa pag-convert sa tanang nahilambigit nga mga kahinguhaan ngadto sa base64 nga pormat ug pag-embed niini direkta ngadto sa HTML. Siyempre, ang gidak-on sa file motubo, ug ang mga sulod tan-awon sa usa ka gamay nga cluttered, apan sa kinatibuk-ang paagi ingon nga kasaligan ug yano alang kanako, ug ako mipuyo niini.

Ang SingleFile moabut ingon usa ka extension sa browser ug usa ka aplikasyon sa linya sa command. Karon gigamit ra nako ang extension: kini dali ra, gawas sa kamatuoran nga kinahanglan nimo nga mano-mano nga pilion ang target nga folder para sa pagtipig. Sa umaabot, tingali sulayan nako nga mapaayo ang aplikasyon aron mapasimple kini nga proseso. Aron makatawag ug third-party nga aplikasyon gikan sa Chrome, mahimo nimong gamiton ang extension Butang sa gawas nga aplikasyon - kini usa pa ka mapuslanon nga nadiskobrehan nako. Pinaagi sa dalan, ang aplikasyon mapuslanon na: uban sa tabang niini akong nakabig ang usa ka koleksyon sa mga folder ug mga file gikan sa TagSpaces ngadto sa usa ka hugpong sa mga independenteng HTML nga mga dokumento.

Problema sa GUI ug browser

Akong nakit-an ang Python nga maayo alang sa tanan nga mga matang sa yano nga mga operasyon sa file ug string, ug tungod kay gigamit ang usa sa akong mga proyekto sa trabaho wxWidgets, pagpili wxPython morag lohikal isip nag-unang gambalay.

Dugang pa, nga nakakita og igo nga mga problema sa pagpakita sa mga panid sa ubang mga programa, nakahinapos ako nga ang bugtong kasaligan nga paagi sa pag-atubang niini mao ang pagpaila sa usa ka visualizer sa programa base sa modernong browser, nga mao, Chrome o Firefox.

Angkunon nako nga ang kataposang higayon nga kinahanglan nakong buhaton ang sama niini mga 15 ka tuig na ang milabay, ug wala ko magdahom nga dunay mga lit-ag. Kini nahimo nga imposible nga "isagpa lang ang browser sa porma": sa usa ka paagi ang tawo wala makahimo sa kasaligan ug sa tanan nga pagsagubang niini nga buluhaton. Ang pila ka klase sa listbox o butones sa usa ka porma mahimong ibutang sa bisan unsang balangkas sa GUI, ug bisan ang pagmugna og cross-platform code, ug ingon nako nga sa 2019, ang pagpakita sa HTML kinahanglan usab nga usa ka problema nga nasulbad sa tanan.

Nahibal-an nga sa wxWidgets, pananglitan, ang sagad nga sangkap nga "browser" usa ka cross-platform wrapper sa "browser" nga nagsalig sa sistema, nga sa kaso sa Windows, pananglitan, nagpasabut. Internet Explorer 7, ug ang sitwasyon sa Windows Forms dili mas maayo, ug ang mga bersyon nga mas bag-o kay sa IE9 magamit lamang gamit ang dili-trivial pagmaniobra sa rehistro. Sama sa imong makita, dili lang ako ang nagbuhat sa uban pang mga butang sa miaging 15 ka tuig-wala’y bisan unsa nga nausab dinhi.

Unya nag-atubang ako sa usa ka kapilian: usba ang balangkas o pangitaa ang usa ka alternatibo nga sangkap alang sa browser. Human sa pagduha-duha, nakahukom ko nga sulayan una ang ikaduha nga agianan ug dali nga nakit-an ang proyekto CEF Python: Python bindings alang sa Chromium Embedded Framework, gidisenyo alang sa tahas sa pag-embed sa Chromium sa mga aplikasyon sa Python.

Susiha ang sitwasyon: Ang Python usa sa labing inila nga mga programming language sa kalibutan, ang Chrome usa ka monopolist sa merkado sa browser. Sa parehas nga oras, ang CEF Python sa tinuud gisuportahan sa kusog usa ka lalaki, kusog ug kahimsog kaniya. Wala na ba gayoy nanginahanglan niini?..

Bisan pa, ang CEF Python wala makatabang kanako sa katapusan: bisan kung ang sukaranan nga panig-ingnan sa panagsama sa wxWidgets gikan sa repositoryo sa proyekto prangka nga buggy, gisulayan nako kini nga mas daghan pa, apan dili masulbad ang tanan nga mga problema nga mitungha. Dili na ako molalom pa sa hilisgutan; dili kini angayan niini.

Gitan-aw nako ang mga sangkap base sa Chromium Embedded Framework sa mas detalyado ug sa katapusan nakahukom nga sulayan kini bersyon para sa C#. Tungod kay nagtrabaho ako hapit sa tanan nga oras sa Windows, ang paglaum sa pag-undang sa pag-andar sa cross-platform, sa kinatibuk-an, wala gyud makasamok kanako.

Human sa pipila ka dili kalikayan nga kasamok sa sinugdanan, ang mga butang nahimong mas paspas: ang kombinasyon sa CefSharp ug Windows Forms nahimong usa ka mananaog, ug ako nakahimo sa pagsulbad sa kadaghanan sa mga teknikal nga mga problema nga walay bisan unsa nga mga problema.

Mahitungod sa wala pa masulayan

Mahimo usab nimong sulayan ang pagpatuman sa FireFox sa usa ka aplikasyon sa C # gamit ang sangkap Geckofx, pero wala koy masulti bahin niya. Usa ka standard browser component sa Qt framework nga gitawag QWebEngineView gitukod sa Chromium, mao nga tingali kini molihok ingon usab sa CefSharp.

Ang mga fans sa Qt mahimong matintal sa pagkomento: kung gikuha lang nila ang Qt, wala sila'y mga problema. Mahimong tinuod kini, apan ang wxWidgets mahimong makonsiderar, kung dili ang una, unya ang ikaduha nga kapilian kung nagpili usa ka balangkas sa GUI alang sa mga aplikasyon sa Python o C++. Ug sa akong mapainubsanon nga opinyon, ang usa ka butang sama sa usa ka browser kinahanglan nga matukod sa bisan unsang labi pa o dili kaayo naugmad nga balangkas sa GUI nga wala magsayaw gamit ang tamburin.

WebLibrary

Balik ta, bisan pa, sa akong aplikasyon nga adunay titulo nga nagtrabaho WebLibrary. Karon kini tan-awon (drum roll) sama niini:

"Akong basahon kini sa ulahi": ang lisud nga kapalaran sa usa ka offline nga koleksyon sa mga panid sa Internet

labut pa sa limpyo ug mubo nga interface Ang labing sukaranan nga mga gimbuhaton lamang ang gipatuman dinhi:

  • Ipakita ang bisan unsang piho nga direktoryo sa sistema ingon usa ka librarya sa dokumento.
  • Tan-awa ang mga dokumento sa bintana sa browser. Pag-navigate sa listahan sa naandan nga paagi (mga cursor key, PgUp, PgDn, Home, End), pag-scroll sa browser gamit ang Space ug Shift+Space keys.
  • Pag-usab sa ngalan sa mga dokumento.
  • Markahi ang mga dokumento isip nabasa o paborito gamit ang mga hotkey.
  • Pagsunud sa mga dokumento sa bisan unsang natad.
  • I-refresh ang window sa aplikasyon kung adunay mga pagbag-o sa folder sa librarya.
  • I-save ang mga setting sa bintana kung mogawas.

Tanan kini ingon og wala’y hinungdan nga pagpaandar, apan, ingnon ta, ang pagtipig sa mga gidak-on sa kolum sa TagSpaces dili gihapon suportado - dayag, ang mga tagsulat adunay ubang mga prayoridad.

Ang status (basaha/paborito) kay gitipigan lang sa file name (read file doc.html giusab ang ngalan sa doc{R,S}.html). Wala’y pag-synchronize nga ingon niana, apan gitipigan ra nako ang librarya sa Dropbox - pagkahuman, kini usa ra ka folder nga adunay mga file.

Adunay pa mga plano sa pagpauswag sa yano nga mga butang sama sa pagbalhin ug pagtangtang sa mga file, ingon man pag-implementar sa pag-tag gamit ang arbitraryong mga tag. Kung adunay gusto nga motabang, malipay lang ako.

kaplag

Nagkalainlain. Sama sa akong giingon gikan sa sinugdanan, katingalahan kung unsa ka lahi ang toolkit sa usa ka tawo gikan sa lain. Ang paggamit sa usa ka himan sama sa WebResearch natural nga moabut kanako, ug gibati nako ang halos pisikal nga kahasol tungod sa pagkawala niini. Sa parehas nga oras, dayag, gamay ra ang akong hunahuna nga mga tawo, kung dili, wala’y mga problema sa pagpangita sa mga analogue. Sa laing bahin, ang susamang mga kaso mahitabo sa mas daghan nga mainstream software: pananglitan, ang Microsoft dili mag-update sa desktop nga bersyon sa OneNote, mao nga napugos ako sa paggamit sa 2016 nga bersyon, ug sa madugay o sa madali kinahanglan usab ako nga mobalhin gikan sa kini sa usa ka dapit.

Ang makapakurat usab mao kung unsa ka lisud ang pag-navigate sa karon nga talan-awon sa mga librarya ug mga balangkas. Sa akong linya sa trabaho, panagsa ra nga kinahanglan kong magsulat sa mga aplikasyon sa desktop gikan sa pagsugod hangtod sa katapusan, ug akong gihunahuna nga ang literal nga bisan unsang himan alang sa bisan unsang programming language mahimong angay alang sa akong buluhaton (usa ka bintana, tulo nga mga sangkap, wala’y hinungdan nga mga interaksyon). Mao nga kuhaon ra namo ang bisan unsa ug buhaton kini sulod sa pipila ka adlaw.

Nahibal-an nga ang reyalidad dili kaayo maayo, ug mahimo ka nga makaatubang sa usa ka problema nga wala’y hinungdan. Ingnon ta nga duna koy duha ka splitter nga magamit sa pag-stretch sa browser window. Busa, ang pagpasig-uli sa ilang mga posisyon human sa loading ngadto sa wxWidgets hilabihan ka lisud, tungod kay ang sistema nagbutang kanila sa mga default nga mga posisyon human sa hapit tanan nga mga panghitabo nga anaa kanako, ug ako kinahanglan nga mobuhat sa tanan nga matang sa hacking sa pagkab-ot sa unsay akong gikinahanglan. Kinsay nakatag-an?

Sa laing bahin, klaro nga sa Windows Forms ang tanan gidisenyo alang sa "mga interface sa negosyo". Hapit tanan nga gikinahanglan anaa sa gawas sa kahon: pag-save / pagpasig-uli sa mga setting sa aplikasyon, usa ka kombenyente nga interface sa mga sangkap (pananglitan, wala ko magdahom nga ang TreeView component mahimong pangutan-on alang sa tibuok nga agianan gikan sa gamut ngadto sa bisan unsang elemento sa bata. sa porma sa usa ka hilo), ug dili hinungdanon nga mga himan sama sa usa ka folder nga pagbag-o sa sulud sa tracker.

Sa bisan unsa nga kaso, ang panahon wala mag-usik, ug ang resulta maisip nga makapatagbaw, busa unsa pa ang imong gusto gikan sa kinabuhi, di ba?

Source: www.habr.com

Idugang sa usa ka comment