From 722bf55c576a81e96c0bfaab2f3f5255b7b8b388 Mon Sep 17 00:00:00 2001 From: "David B. Kinder" Date: Thu, 18 Feb 2021 11:09:52 -0800 Subject: [PATCH] doc: update doc build instructions Signed-off-by: David B. Kinder --- doc/tutorials/docbuild.rst | 17 +++++++++++------ doc/tutorials/images/doc-gen-flow.dot | 23 +++++++++++++++++++++++ doc/tutorials/images/doc-gen-flow.png | Bin 0 -> 23858 bytes 3 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 doc/tutorials/images/doc-gen-flow.dot create mode 100644 doc/tutorials/images/doc-gen-flow.png diff --git a/doc/tutorials/docbuild.rst b/doc/tutorials/docbuild.rst index cfcfe6772..cc34fe673 100644 --- a/doc/tutorials/docbuild.rst +++ b/doc/tutorials/docbuild.rst @@ -34,6 +34,9 @@ The project's documentation contains the following items: device-model folders, and from sources in the acrn-kernel repo (as explained later). +.. image:: images/doc-gen-flow.png + :align: center + The reStructuredText files are processed by the Sphinx documentation system and use the breathe extension for including the doxygen-generated API material. @@ -239,12 +242,14 @@ good, you can push directly to the publishing site with: make publish -This will delete everything in the publishing repo's **latest** folder -(in case the new version has deleted files) and push a copy of the -newly-generated HTML content directly to the GitHub pages publishing -repo. The public site at https://projectacrn.github.io will be updated -typically within a few minutes, so it's best to verify the locally -generated HTML before publishing. +This uses git commands to synchronize the new content with what's +already published and will delete files in the publishing repo's +**latest** folder that are no longer needed. New or changed files from +the newly-generated HTML content are added to the GitHub pages +publishing repo. The public site at https://projectacrn.github.io will +be updated by the `GitHub pages system +`_, typically within a few +minutes. Document Versioning ******************* diff --git a/doc/tutorials/images/doc-gen-flow.dot b/doc/tutorials/images/doc-gen-flow.dot new file mode 100644 index 000000000..a19fbc4fa --- /dev/null +++ b/doc/tutorials/images/doc-gen-flow.dot @@ -0,0 +1,23 @@ +# Doc Generation flow +# dot -Tpng -odoc-gen-flow.png doc-gen-flow.dot + +digraph docgen { + node [ fontname="verdana"] + bgcolor=transparent; rankdir=LR; + images [shape="rectangle" label=".png, .jpg\nimages"] + rst [shape="rectangle" label="restructuredText\nfiles"] + conf [shape="rectangle" label="conf.py\nconfiguration"] + rtd [shape="rectangle" label="read-the-docs\ntheme"] + header [shape="rectangle" label="c header\ncomments"] + xml [shape="rectangle" label="XML"] + html [shape="rectangle" label="HTML\nweb site"] + sphinx[shape="ellipse" label="sphinx +\nbreathe,\ndocutils"] + images -> sphinx + rst -> sphinx + conf -> sphinx + header -> doxygen + doxygen -> xml + xml-> sphinx + rtd -> sphinx + sphinx -> html + } diff --git a/doc/tutorials/images/doc-gen-flow.png b/doc/tutorials/images/doc-gen-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..837563a6fbfdd42bafd50b86813c8d2f19c8327f GIT binary patch literal 23858 zcmZU*2UL?w@IDL)Md<_urHDWP1p(0>6mqEJRKVSJ@U@mn<0@^$Y)ofwiM%| zRd4>Pi-^byS(zMeX#Q0CX>DXXsKa`%w70wnnO*uDF

7Z;29)h5rBkBbco;Xm7$@ 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 MYJK^&iAUo90nbrI6951J literal 0 HcmV?d00001