2011-01-21 16 views
18

पुनः बनाना वहाँ किसी भी ओपन सोर्स प्रोजेक्ट या jQuery प्लगइन है कि मैं GitHub Network Graph?कैसे GitHub नेटवर्क ग्राफ़

मैं इसी तरह की सुविधा के साथ कुछ बनाना चाहते पुन: उपयोग कर सकते हैं कर रहे हैं।

+3

लॉगिन, अपने GitHub रेपो लिए जाते हैं, 'नेटवर्क' – zack

+0

@zack पर क्लिक करें, कि मैं किस बारे में कहा, "स्रोत देखें" था की तुलना में बेहतर है =) – Incognito

+0

कुछ भी नहीं अच्छा ol हास्य की 'डेवलपर भावना की तरह। - मैंने यहां पोस्ट करने से पहले स्रोत की जांच की, लेकिन यह इतना स्वामित्व है कि मेरे लिए इंजीनियर को उलटा करना असंभव है। यही कारण है कि मैं उम्मीद कर रहा था कि वहाँ कुछ ओएस समाधान था। - हालांकि टिप के लिए धन्यवाद। – Ward

उत्तर

8

आप Github's Network API कि हैंडल पर भरोसा कर सकते हैं:

सभी डाटा नेटवर्क ग्राफ आकर्षित करने के लिए की जरूरत है, नए परिवर्तन और सभी प्रासंगिक प्रतिबद्ध के साथ हर कांटा के प्रमुखों लिस्टिंग।

प्रतिपादन के लिए, गिथब अपने नेटवर्क ग्राफ़ को प्रदर्शित करने के लिए कैनवास का उपयोग करता है। आप RaphaelJS library पर एक अच्छा काम Github के प्रभाव रेखांकन प्रतिपादन करता है देखने के लिए चाहते हो सकता है: http://raphaeljs.com/github/impact.html

+0

नेटवर्क एपीआई के लिए प्रलेखन के लिए लिंक अब 404 पेज है। क्या यह अप्रचलित है? या इसके लिए कोई नया लिंक है? –

+0

@MichaelT मुझे लगता है कि यह अब http://developer.github.com/v3/activity/events/ होगा? –

22

Github नेटवर्क विचारों पहली बार में रिवर्स इंजीनियर बहुत मुश्किल लग रहे हैं। हालांकि, http://jsbeautifier.org/ के साथ इसे कम करने के बाद कोड काफी समझ में आता है। तो bundle_github.js और bundle_common.js चलाएं और एक jQuery 1.4.2 स्रोत को पकड़ें। फिर आप पृष्ठ को स्रोत/डीबगिंग शुरू करने के लिए तैयार हैं।

Github नेटवर्क पृष्ठ में, यदि कैनवास काम कर रहा है, नेटवर्क बस द्वारा उत्पन्न होता है:

var ng = new Network("#ng", 920, 600) 

जो defineNetwork(window.jQuery), द्वारा उत्पन्न एक वस्तु का उपयोग करने पर चला जाता है जो (अन्य बातों का एक बहुत कुछ के बीच में)

  1. इनपुट
  2. से निपटने के लिए d.KeyDriver और d.MouseDriver के उदाहरण बनाता the Github Network API
  3. से डेटा प्राप्त
  4. समय, शीर्ष लेख और पाद आकर्षित करने के लिए d.Chrome का उपयोग करता
  5. d.Graph का उपयोग करता नेटवर्क ग्राफ लिखने के

(प्रत्येक d.ClassName नेटवर्क वस्तु की एक आंतरिक वर्ग है, इस प्रकार उनके स्रोत defineNetwork स्रोत कोड के अंदर पाया जाता है)

मैंने वास्तव में कोड में जाने के लिए समय नहीं लिया और यह कैसे काम करता है इस बारे में सभी विवरण ढूंढने में समय नहीं लगा, लेकिन यह ठीक है। अब आप जो करना चाहते हैं उसके आधार पर, आप उदा।

  • (शायद) बहुत मामूली संशोधनों करने के लिए कोड GitHub बाहर Github डेटा प्रस्तुत करना प्राप्त करने के लिए बनाते हैं।कॉम
  • the Github Network API प्रारूप में अपने स्वयं के डेटा उपलब्ध कराने के, और कहा कि
  • अनुकूलन सिर्फ d.Graph अपने खुद के डेटा के साथ काम करने वर्ग कल्पना
  • बस कोड को पढ़ने और जानने के

नोट: शायद आप कानूनी रूप से कोड का उपयोग नहीं कर सकते हैं और न ही संशोधित किया जा सकता है, इसलिए मैं केवल सीखने के उद्देश्यों (हालांकि IANAL) के लिए ऐसा करने की सलाह देता हूं।

+0

यह अब एक टूटी हुई लिंक प्रतीत होता है: http://develop.github.com/p/network.html क्या जिथब ने उस विकल्प को हटा दिया? – GuySoft

+1

@ ग्युटबॉफ्ट जीगुब एपीआई पिछले दो वर्षों में अपडेट किया गया है, और इस उत्तर का विवरण अब पुराना है। मुझे लगता है कि नेटवर्क ग्राफ आजकल शाखाओं और फोर्क एपीआई का उपयोग करता है। वैसे भी, कोड को पकड़ना अभी भी आसान है, इसे सुशोभित करें और देखें कि यह क्या करता है। – dancek