Mumakore mashoma apfuura ndave kunyanya kubatanidzwa mune zvinyorwa. Kunyora chinyorwa chinotsanangura nezve mashandiro eimwe sisitimu kunowanzo kuve nyore. Kudhirowa dhayagiramu icharatidza zvese zvakakosha zvinhu uye kubatana pakati pezvinhu izvi zvakare nyore.
Asi chinonyanya kunetsa ndechekuchengeta magwaro aya achienderana. Uye zvinyorwa zvinenge zvakanaka, asi madhayagiramu... Nokuti... zvinyorwa zvese zviri online, i.e. mu html format, ipapo zvinyorwa zvinoperekedzwa nemifananidzo ye gif/jpeg/png, iyo inonyatsoratidza madhayagiramu. Uye madhayagiramu anodhirowewa muzvirongwa zvakasiyana seVisio kana online masevhisi a la draw.io. Wobva waendesa kunze dhayagiramu mune graphic fomati uye woibatanidza kune html. Zviri nyore.
Dambudziko nderei?
Zvirongwa zvinowanzova nyore. Zvakanyanya, kwete zvakanyanya kuoma. Hongu, nhamba yezvinhu ndeye gumi nemaviri kana maviri, nhamba yekubatanidza inenge yakafanana. Kuwedzera masiginecha, mamwe mazita. Zvirongwa zviri nyore zvinogona kutsanangurwa mumashoko, asi zvakanyanya kuoma, ahem ... (c) "havazonzwisisa, changamire." Kune zvirongwa zvakawanda, shanduko dzinoda kuitwa kwavari nguva nenguva, episodically, i.e. nguva dzose, nokuti vanotevera kuvandudzwa kwezvinhu zvedu.
Unogona kupinza iyo html yesevhisi. Wakambozviedza here?
Hongu chokwadi. Semuenzaniso, ini ndinoda magiraidhi kubva kugliffy.com. Asi kuti uite shanduko, unofanirwa kuenda kune yechitatu-bato sevhisi uye kugadzirisa ipapo. Uye zvakanyanya kuoma kupa zvigadziriso kune waunoshanda naye.
Chii chandinofanira kuita?
Nguva pfupi yadarika ndakawana repository paGithub mune zvinokurudzirwa
Nenzira, ini ndinonyora zvinyorwa kwete zvachose muhtml. Kazhinji, zvinyorwa seti yemafaira ane markdown mavara, ayo anozoshandurwa kuita yakazara-yakazara zvinyorwa saiti neimwe injini, semuenzaniso wintersmith. Kana kuti wiki system.
Zvinoitika zvakanyanya nyore: isu takanyora zvinyorwa, ipapo script tag inovhura uye iyo JS kodhi yechirongwa inotsanangurwa mairi.
Chii futi?
Ini ndaifarira iyi repository, asi uyu hausi iwo chete muenzaniso apo dhayagiramu inodhirowa uchishandisa kodhi kana chinyorwa chinomiririra. (Pakupera kwechinyorwa kuchave nezvinongedzo kumapurojekiti uye zvinyorwa zvandakadyisa paGoogle padhiyagiramu yemusoro sekodhi.)
Uye handisi ndega ndinogadzirisa zvinyorwa. Dzimwe nguva vatinoshanda navo vanopawo - gadzirisa izwi, shandura tsananguro, isa mifananidzo mitsva.
Naizvozvo, ndinoda kuona dhayagiramu mune inoverengeka, inonzwisisika mavara manyorerwo ayo asingazode yekudzidza kwenguva refu. Uye mune dzimwe nzvimbo unogona kukopa-namira kuti ukurumidze kuwedzera dunhu idzva.
Uye mumwe waanoshanda naye akacherechedza kuti kodhi, hongu, yakanaka, asi kana ukashandisa chimiro, zvese zvinogona kuomarara uye kutaura.
Nokudaro, ndakaedza kufungidzira dhayagiramu seti yezvikamu zviduku zvishoma zvinotsanangura nodes, kubatanidza, mapoka emanodhi, pamwe chete nenzvimbo yemanodhi. Zvakazoitika, mumaonero angu akazvininipisa, zviri nyore, kunyangwe, hongu, kuravira uye ruvara ...
Iyi ichati sei muhurongwa?
- Node imwe neimwe inotsanangurwa nechiziviso chinozivisa node.
- Iwe unogona zvakare kuwedzera icon kune node uye kuwedzera chinyorwa.
- Iwe unogona kutsanangura hukama pakati pe node mbiri.
- Nokuda kwekukurukurirana pamufananidzo, unogona kuisa ruvara uye kunyora.
- Hunhu hwekutaurirana hunotsanangurwa sekubva kunobva kune chinangwa. Uye kunobva uye chinangwa zvinoratidzwa nenode identifiers.
- Node imwe kana kupfuura inogona kuwedzerwa kuboka.
- Hukama hunogonawo kutsanangurwa zvese kubva muboka uye kuboka.
Tichishandisa mitemo iyi iri nyore, tinowana mufananidzo unotevera. Just? Quite.
Uye inotsanangurwa neinotevera js kodhi. Chinhu chikuru apa ndicho chinhu chezvikamu. Imo ma nodes anoratidzwa - nodes, edges - kubatanidza.
const elements = {
nodes: [ // ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ·Π»Ρ
{ id: 'client', type: 'smartphone', label: 'Mobile App'},
{ id: 'server', type: 'server', label: 'Main Server'},
{ id: 'db1', type: 'database', label: 'DB 1'},
{ id: 'db2', type: 'database', label: 'DB 2'},
],
edges: [ // ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΠ²ΡΠ·ΠΈ
{ source: 'client', target: 'server', label: 'request' },
{ source: 'server', target: 'db1', label: 'request' },
{ source: 'server', target: 'db2', label: 'request' },
],
};
Diagram('scheme1', elements);
Ehe, ini handina kuuya nekudhirowa kwedunhu ini, asi ndakashandisa raibhurari
Zvakanaka, uyu muenzaniso wakapfava. Zvinganyanya kuoma here?
Hongu. Kuratidza zvinzvimbo, tinoshandisa zvinzvimbo, kuratidza mapoka, tinoratidza rondedzero yemapoka mumapoka, uye zvinhu pachazvo zvine hunhu hweboka.
Uye iyi ndiyo kodhi:
<div id="scheme5" style="height:500px;width:800px;"></div>
<script>
const elements5 = {
groups: [
{ id: 'g1', label: 'ΠΡΡΠΏΠΏΠ° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² 1'},
{ id: 'g2', label: 'ΠΡΡΠΏΠΏΠ° ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² 2'},
],
nodes: [
{ id: 'man1', type: 'person', label: 'Π§Π΅Π»ΠΎΠ²Π΅ΠΊ'},
{ id: 'client', type: 'smartphone', label: 'Π‘ΠΌΠ°ΡΡΡΠΎΠ½'},
{ id: 'agent-backend', type: 'server', group: 'g1', label: 'agent-backend'},
{ id: 'web', type: 'server', group: 'g1', label: 'ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ admin'},
{ id: 'www', type: 'server', group: 'g1', label: 'ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π°Π³ΡΡΠ·ΠΊΠΈ'},
{ id: 'mongodb1', type: 'database', group: 'g1', label: 'Mongo DB 1'},
{ id: 'mongodb2', type: 'database', group: 'g1', label: 'Mongo DB 2'},
{ id: 'runner-integration1', type: 'worker', group: 'g1', label: 'ΠΎΡΠΏΡΠ°Π²ΠΊΠ°'},
{ id: 'runner-integration2', type: 'worker', group: 'g1', label: 'ΠΎΡΠΏΡΠ°Π²ΠΊΠ°'},
{ id: 'api', type: 'server', group: 'g1', label: 'API'},
{ id: 'server2', type: 'server', group:'g2', label: 'ΡΠ΅ΡΠ²Π΅Ρ'},
{ id: 'otherServer', type: 'server', group:'g2', label: 'ΡΠ΅ΡΠ²Π΅Ρ'},
{ id: 'firebase', type: 'cloud', label: 'Google Firebase'},
],
edges: [
{ source: 'client', target: 'agent-backend', label: 'json', color: 'red' },
{ source: 'agent-backend', target: 'mongodb1', color: 'red' },
{ source: 'agent-backend', target: 'mongodb2', color: 'red' },
{ source: 'mongodb1', target: 'runner-integration1', label: 'Π΄Π°Π½Π½ΡΠ΅' },
{ source: 'mongodb2', target: 'runner-integration2', label: 'Π΄Π°Π½Π½ΡΠ΅' },
{ source: 'mongodb1', target: 'web', label: 'Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ' },
{ source: 'runner-integration1', target: 'server2', label: 'Π΄Π°Π½Π½ΡΠ΅' },
{ source: 'runner-integration2', target: 'otherServer', label: 'Π΄Π°Π½Π½ΡΠ΅' },
{ source: 'api', target: 'firebase', label: 'Π·Π°ΠΏΡΠΎΡΡ', color: 'blue', },
{ source: 'firebase', target: 'client', label: 'push', color: 'blue'},
{ source: 'server2', target: 'api', label: 'ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ', color: 'blue'},
{ source: 'man1', target: 'client', },
],
positions: [
{ id: 'client', row: 2, col: 1,},
{ id: 'agent-backend', row: 2, col: 3,},
{ id: 'web', row: 6, col: 3,},
{ id: 'www', row: 1, col: 3,},
{ id: 'mongodb1', row: 1, col: 4,},
{ id: 'mongodb2', row: 2, col: 5,},
{ id: 'runner-integration1', row: 3, col: 3,},
{ id: 'runner-integration2', row: 4, col: 3,},
{ id: 'api', row: 5, col: 3,},
{ id: 'server2', row: 6, col: 7,},
{ id: 'otherServer', row: 4, col: 7,},
{ id: 'firebase', row: 5, col: 1,},
{ id: 'logger', row: 2, col: 7,},
{ id: 'crm', row: 5, col: 8,},
],
};
Diagram('scheme5', elements5, {layout: 'grid'});
</script>
Kune rimwe divi, chirongwa chakadaro chingangoita akati wandei masikirini ekodhi palaptop, kune rumwe rutivi, chimiro a la json chinokubvumira kuzadza data rese nekuenzanisa, nekukurumidza uye iwe unogona kukopa-namira.
Sei zvinzvimbo zvakaiswa zvakasiyana kubva node?
Inonyanya kugadzikana. Kutanga tinotsanangura nodes. Ipapo tinogona kutsanangura mapoka akati wandei toaratidza mumanodhi. Zvadaro tinosarudza zvisungo. Uye chete ipapo, apo zvinhu zvikuru uye zvibatanidza pakati pavo zviripo, tinotora nzvimbo yezvinhu izvi pamufananidzo. Kana zvakasiyana.
Zvinoita here pasina zvigaro?
Zvinogoneka pasina zvigaro. Asi ichave yakaunyana zvishoma; iwe unogona kuona iyi sarudzo mumienzaniso. Izvi zvinokonzerwa nekuti kune algorithm yenzvimbo yemanodhi e cytoscape
Zvinzvimbo zvinogona zvakare kutsanangurwa muBattleship maitiro. Avo. imwe node iri muA1, uye imwe mud5. Zvinonyanya kubatsira kuti cytoscape inoita kuti zvinhu zviri pajirasi zvifambe, i.e. tinokwanisa kuvafambisa-famba, toona sarudzo dzakasiyana dzemarongerwo, uye tozogadzirisa kurongeka kwezvinhu zvatinoda mukodhi.
Kazhinji, zvinonzwisisika. Unogonawo kuedza?
Zvechokwadi, kuti ndikurumidze kugadzira matunhu, ndakazviita mudiki
Wakambozviedza here? Iwe unogona ikozvino kuwedzera kune peji rako.
Zvino zvakare:
1. Kubatanidza script
<script src="https://unpkg.com/@antirek/[email protected]/dist/code-full.min.js"></script>
2. Wedzera kodhi kuhtml
<div id="scheme1" style="height:300px;width:800px;"></div>
<script>
const elements = {
nodes: [
{ id: 'client', type: 'smartphone', label: 'Mobile App'},
{ id: 'server', type: 'server', label: 'Main Server'},
{ id: 'db1', type: 'database', label: 'DB 1'},
{ id: 'db2', type: 'database', label: 'DB 2'},
],
edges: [
{ source: 'client', target: 'server', label: 'request' },
{ source: 'server', target: 'db1', label: 'request' },
{ source: 'server', target: 'db2', label: 'request' },
],
};
Diagram('scheme1', elements);
</script>
3. tinogadzirisa kodhi kudhiyagiramu yatinoda (ndinofunga zviri nyore pane kudhirowa zizi :)
Mamwe mashoko pa
Chii mumagumo?
Ndakazadzisa zvinangwa zvangu - kuwedzera inline dhayagiramu kune zvinyorwa, iyo fomati iri nyore uye inonzwisisika. Haina kukodzera maseketi epamusoro, asi kumaseketi madiki anotsanangura chimiro chekubatanidza, zvakanaka chose. Iwe unogona kugara uchikurumidza kugadzirisa uye kuchinja chimwe chinhu nekufamba kwenguva. Ehe, uye vatinoshanda navo vanogona kugadzirisa chimwe chinhu muchiteshi ivo pachavo, zvinyorwa zvinyorwa zvezvinhu, pasina kudzidziswa kwakakosha))
Chii chinogona kuvandudzwa?
Pane, hongu, zvakawanda zvingasarudzwa pano. Wedzera mamwe ma icons (ese aripo anowedzerwa inline kune script). Sarudza imwe inonyatsoratidza seti yezvidhori. Ita kuti zvikwanise kutsanangura maitiro emutsara wekubatanidza. Wedzera mufananidzo wekumashure.
Unofungei?
Ini ndatove nemazano akati wandei ekuita mune nyaya, iwe unogona zvakare kuwedzera ako mune zvakataurwa.
Mhinduro yangu inoshanda mune yakamanikana yematambudziko, uye pamwe iwe uchawana chiri nyore chishandiso chekudhirowa madhayagiramu nekungoanyora - sezvavanoti 'ndiratidze dhiyagiramu yako sekodhi'
Sarudzo yakanaka Basa guru (9 marudzi emachati online edhita)Chokwadi, mermaid.js - Uye kana iwe uchida yakanyanya kutsanangurwa uye yakaoma madhayagiramu, saka iwe zvechokwadi uchayemura chirongwa ichi:
go.drawthe.net
Source: www.habr.com