From 963eb26bfbee32eff825df4977f4605d573bb1ef Mon Sep 17 00:00:00 2001 From: Mauro Cicolella Date: Sat, 15 Apr 2017 14:55:34 +0000 Subject: [PATCH] added plugin-lifecycle and code-analysis-quality pages --- docs/source/_templates/index.html | 6 ++++-- docs/source/index.rst | 1 + docs/source/plugins/images/plugin-lifecycle.png | Bin 0 -> 19132 bytes docs/source/plugins/plugin-lifecycle.rst | 15 +++++++++++++++ .../the-project/code-analysis-quality.rst | 7 +++++++ 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 docs/source/plugins/images/plugin-lifecycle.png create mode 100644 docs/source/plugins/plugin-lifecycle.rst create mode 100644 docs/source/the-project/code-analysis-quality.rst diff --git a/docs/source/_templates/index.html b/docs/source/_templates/index.html index c432155..12708af 100644 --- a/docs/source/_templates/index.html +++ b/docs/source/_templates/index.html @@ -31,6 +31,7 @@

{{ _('Freedomotic Developer Manual') }}

- {%trans%}What is a plugin?{%endtrans%}
- {%trans%}Plugin manifest and configuration{%endtrans%}
- {%trans%}Create a new plugin{%endtrans%}
+ - {%trans%}Plugin lifecycle{%endtrans%}
- {%trans%}Freedomotic APIs{%endtrans%}
- {%trans%}Bind things state to hardware data{%endtrans%}
- {%trans%}Bind things state to web services data{%endtrans%}
@@ -77,9 +78,10 @@

{{ _('Freedomotic Developer Manual') }}

- {%trans%}Google+{%endtrans%}
- {%trans%}LinkedIn{%endtrans%}
- {%trans%}Twitter{%endtrans%}
- -

+
{%trans%}Open source project management tools{%endtrans%}
+ - {%trans%}Code analysis and quality{%endtrans%}
+

diff --git a/docs/source/index.rst b/docs/source/index.rst index 3dc4bfe..a6dd6b6 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -44,6 +44,7 @@ Contents: What is a plugin? Plugins manifest and configuration Create a new plugin + Plugin lifecycle Freedomotic APIs Bind things state to hardware data Bind things state to web services data diff --git a/docs/source/plugins/images/plugin-lifecycle.png b/docs/source/plugins/images/plugin-lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..928e8515965ad13e0426eac88c00141df546e503 GIT binary patch literal 19132 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 + +`Sonarqube `_ \ No newline at end of file