From 982508d30f887b4fe8b2a855792ae1e33f378222 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 22 Feb 2018 17:21:34 +1300 Subject: All new documentation This patch does a lot. - Ditch sphinx in favor of hugo. This gives us complete control of the layout and presentation of our docs. Henceforth, docs will be hosted on our website rather than ReadTheDocs. - Create a simple, clean doc layout and theme. - Remove large parts of the documentaion. I've ditched anything that was a) woefully out of date, b) too detailed, or c) too hard to maintain in the long term. - Huge updates to the docs themselves: completely rewrite addons documentation, add docs for core concepts like commands and options, and revise and tweak a lot of the existing docs. With this patch, we're also changing the way we publish and maintain the docs. From now on, we don't publish docs for every release. Instead, the website will contain ONE set of docs for each major release. The online docs will be updated if needed as minor releases are made. Docs are free to improve during minor releases, but anything that changes behaviour sufficiently to require a doc change warrants a new major release. This also leaves us free to progressively update and improve docs out of step with our release cadence. With this new scheme, I feel CI over the docs is less important. I've removed it for now, but won't object if someone wants to add it back in. --- docs/dev/addingviews.html | 52 ----------------------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 docs/dev/addingviews.html (limited to 'docs/dev/addingviews.html') diff --git a/docs/dev/addingviews.html b/docs/dev/addingviews.html deleted file mode 100644 index f6ba645c..00000000 --- a/docs/dev/addingviews.html +++ /dev/null @@ -1,52 +0,0 @@ -As discussed in [the Flow View section of the mitmproxy -overview](@!urlTo("mitmproxy.html")!@), mitmproxy allows you to inspect and -manipulate flows. When inspecting a single flow, mitmproxy uses a number of -heuristics to show a friendly view of various content types; if mitmproxy -cannot show a friendly view, mitmproxy defaults to a __raw__ view. - -Each content type invokes a different flow viewer to parse the data and display -the friendly view. Users can add custom content viewers by adding a view class -to contentview.py, discussed below. - -## Adding a new View class to contentview.py - -The content viewers used by mitmproxy to present a friendly view of various -content types are stored in contentview.py. Reviewing this file shows a number -of classes named ViewSomeDataType, each with the properties: __name__, -__prompt__, and __content\_types__ and a function named __\_\_call\_\___. - -Adding a new content viewer to parse a data type is as simple as writing a new -View class. Your new content viewer View class should have the same properties -as the other View classes: __name__, __prompt__, and __content\_types__ and a -__\_\_call\_\___ function to parse the content of the request/response. - -* The __name__ property should be a string describing the contents and new content viewer; -* The __prompt__ property should be a two item tuple: - - - __1__: A string that will be used to display the new content viewer's type; and - - __2__: A one character string that will be the hotkey used to select the new content viewer from the Flow View screen; - -* The __content\_types__ property should be a list of strings of HTTP Content\-Types that the new content viewer can parse. - * Note that mitmproxy will use the content\_types to try and heuristically show a friendly view of content and that you can override the built-in views by populating content\_types with values for content\_types that are already parsed -- e.g. "image/png". - -After defining the __name__, __prompt__, and __content\_types__ properties of -the class, you should write the __\_\_call\_\___ function, which will parse the -request/response data and provide a friendly view of the data. The -__\_\_call\_\___ function should take the following arguments: __self__, -__hdrs__, __content__, __limit__; __hdrs__ is a MultiDict object containing -the headers of the request/response; __content__ is the content of the -request/response, and __limit__ is an integer representing the amount of data -to display in the view window. - -The __\_\_call\_\___ function returns two values: (1) a string describing the -parsed data; and (2) the parsed data for friendly display. The parsed data to -be displayed should be a list of strings formatted for display. You can use -the __\_view\_text__ function in contentview.py to format text for display. -Alternatively, you can display content as a series of key-value pairs; to do -so, prepare a list of lists, where each list item is a two item list -- a key -that describes the data, and then the data itself; after preparing the list of -lists, use the __common.format\_keyvals__ function on it to prepare it as text -for display. - -If the new content viewer fails or throws an exception, mitmproxy will default -to a __raw__ view. -- cgit v1.2.3