{"id":20074264,"url":"https://github.com/juniper/lab-doc-convert","last_synced_at":"2025-05-05T21:31:33.934Z","repository":{"id":137208156,"uuid":"257567814","full_name":"Juniper/lab-doc-convert","owner":"Juniper","description":null,"archived":false,"fork":false,"pushed_at":"2022-08-25T16:47:06.000Z","size":3811,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-09T04:26:49.294Z","etag":null,"topics":["conversion","documentation","documentation-tool","html","juniper","lab","mammoth","pandoc","sphinx-doc","word"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Juniper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-21T11:04:08.000Z","updated_at":"2024-11-13T19:43:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"c69a8631-d97e-4851-9e08-deaddff26887","html_url":"https://github.com/Juniper/lab-doc-convert","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juniper%2Flab-doc-convert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juniper%2Flab-doc-convert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juniper%2Flab-doc-convert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Juniper%2Flab-doc-convert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Juniper","download_url":"https://codeload.github.com/Juniper/lab-doc-convert/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252580032,"owners_count":21771253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["conversion","documentation","documentation-tool","html","juniper","lab","mammoth","pandoc","sphinx-doc","word"],"created_at":"2024-11-13T14:50:10.906Z","updated_at":"2025-05-05T21:31:33.924Z","avatar_url":"https://github.com/Juniper.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n# Lab documentation essentials including Word to HTML conversion\r\n\r\n# [Tutorial Video on YouTube](https://www.youtube.com/watch?v=6-RIzlekp9c)\r\n\r\n## Note: Some of the original information is missing here on purpose to keep this README.md crisp! Please use the supplied File Lab-doc-essentials.docx for more detailed information.\r\n\r\n# 1\tWHY this Framework?\r\nWe have developed this Framework inside Juniper to document internal Labs and deployed IT-Infrastructure so **that others can EASILY re-use it** to get to the same or similar results.\r\n\r\n**The focus is to be able to produce a documentation that is intended for someone who have never seen the lab before to run it and to build own labs themselves.**\r\n\r\nLabs and IT-Infrastructure in general change all the time and it is hard to follow them without **having examples** (especially when they are tested). If you already produced examples, then it would be good if you are able to help others in a way that:\r\n- Allow People to cut and paste the example of your code/CLI to directly use it. This will save their precious time by typing in stuff and limits errors.\r\n- Tell People what is important to check when they execute one off your examples. You are the Expert when you create the Lab so you must tell others where to look at. Limit the Time others need to review your documentation. As example when you document a something from a Logfile output with like 30 lines of output and only one or few lines are relevant then highlight those important lines and don’t have people trying to find out what is important.\r\n- Tell People upfront if there are any changes that will need to be adopted when they repeat your example. Do not assume someone knows about potential changes one has to do to adapt something for his lab. For example, if there are just a few changes of a Router Configuration to get if operational in a different location with other IP-Addresses or Interface-Names then tell others about it when you create the lab documentation.\r\n\r\nThese have been the goals in mind when we created this.\r\n- Make is easy for others to work with your Documents.\r\n- Tell important things in a way that they are obvious and easy to spot.\r\n- Try to limit the Time others must spend on this.\r\n- Tell it in a way that it causes lesser Questions from the audience to you because then People will contact you for help and that doesn’t scale.\r\n\r\n\u003cspan style=\"color:blue\"\u003eTreat yourself as a Movie-Director. You must tell the Story in a way that you don’t lose your audience. So, create a nice documentation that you would like to see from somebody else helping you.\u003c/span\u003e\r\n\r\nTo archive our Mantras, we’ve come up with a Color coding schema that we use for program code, Router configuration and all kinds of CLI-isch things we need to Document. We use a manual Syntax highlighting because the Editor of a Lab documentation usually knows what the important points are the audience needs to know about. We use the following four Text-colors:\r\n\r\n![Image](readmemdpictures/pic01.png)\r\n\r\nWith the following example you can easily see how power-full this is and what a great help it is to get this is to get things going and accelerate. You don’t need to be an Expert in Unix but is very easy to see that when you key in the shell-command \"df -lh\" (green) you will get a resulting output of various things reported (black). As you have marked the important to look at items of your output everyone can simply spot now that the important piece to look after is the mount-point \"/\" which has 1.7Terabyte capacity avail in our example.\r\n\r\n![Image](readmemdpictures/pic02.png)\r\n\r\nIf there would be something in Purple color marked, then your audience would instantly know there is a potential change the have to adapt (especially when they attempt to cut\u0026paste CLI or config-snippets). Like in the example below where you have a complicated CLI-command but in other Labs there may be a different password to be used so you have to exactly mark that piece so that others can easily spot is and modify for own labs like below when they try to reuse your example:\r\n\r\n![Image](readmemdpictures/pic16.png)\r\n\r\n**\u003cspan style=\"color:red\"\u003eBeing able to define and pass over these divine color-markings into the final documentation is a key aspect of this Framework\u003c/span\u003e**\u003cspan style=\"color:red\"\u003e and it also speeds up the creation of the documentation to need to explain less on how to use the Lab and what expected the results are.\u003c/span\u003e\r\n\r\n## Sorry but some Chapters are missing here on purpose to keep this README.md crisp\r\n\r\nOur goal is to have something that looks in Word like this (with Navigation Pane activated)\r\n\r\n![Image](readmemdpictures/pic03.png)\r\n\r\nTo be converted into HTML and then have a very similar (or even better) look and feel like the example below\r\n\r\n![Image](readmemdpictures/pic04.png)\r\n\r\n# 3\tWord-Document conversion to HTML with readthedocs theme\r\nOur Lab Framework consists of two important Pieces:\r\n1.\tA Word-Template and Styles for the Editor of the Lab documentation. This enables you to create the Documents and use the suggested Color-Schema easily that makes it so easy to follow the instructions.\r\n2.\tA Converter that transforms the Word-Doc from the Editor in nice looking static HTML Pages that can be reviewed offline/online via an ordinary (Java-Script enabled) Web-Browser. The Color-Schema is preserved for the original Word. Simple Copy\u0026Paste form HTML is guaranteed to work without losing indents vs. a PDF.\r\n\r\nBoth approaches and how to use them is explained in the following Chapters.\r\n\r\n## 3.1\tHow to import the Styles of this Document into your existing Doc\r\nThe styles (they are reduced to the bare minimum of what you see here) of this document act as template for the conversion. It is important to keep the name of the style the same in the document you want to convert but you can change the look and feel in your own word documents if you like.\r\n\r\nYou have two methods of getting your own, existing documents updated.\r\n\r\n1.\tIf they are small documents, then it is best to use the Empty-Word-Template.docx File and use that as your own Word-Doc. Then you just use copy and paste from your existing document to the template and make sure it’s getting the right styles applied.\r\n\r\n2.\tOn large existing documents it may pay-off to import the styles for this document and then make sure they are used as appropriate.\r\n\r\n\u003cspan style=\"color:red\"\u003eThis second method has the potential back draw that maybe you use a style that’s not known in the first process where we use python-mammoth but check the output of this process and maybe adapt the style-mapping if you run into issues.\u003c/span\u003e\r\n\r\nThe second is a suggestion I found originally here: https://www.extendoffice.com/documents/word/1004-word-import-styles.html.\r\n\r\n![Image](readmemdpictures/pic05.png)\r\n\r\n![Image](readmemdpictures/pic06.png)\r\n\r\n![Image](readmemdpictures/pic07.png)\r\n\r\n![Image](readmemdpictures/pic08.png)\r\n\r\n![Image](readmemdpictures/pic09.png)\r\n\r\n![Image](readmemdpictures/pic10.png)\r\n\r\n![Image](readmemdpictures/pic17.png)\r\n\r\n![Image](readmemdpictures/pic11.png)\r\n\r\nIn my case also the Style-Sheet Quick access Pane automatically added the new Styles so I only need to delete the existing ones that are no longer needed/used which is a right-click on each and then \"Remove from Style Gallery\".\r\n![Image](readmemdpictures/pic12.png)\r\n\r\n## 3.2\tUsing a Docker Container for conversion\r\nThis work is based on the suggestion of my colleague Marcel Wiget to use a Container instead of a VM or native Linux-Shell as the original approach was. It’s easier to use and we have tested this with Windows 10, MacOS and Ubuntu-Linux. We’ve passed Word-Docs with more than a 1.000 Pages successfully though this.\r\n\r\n\u003cspan style=\"color:red\"\u003eIf your Docker-Platform is Windows 10 then make sure it’s been set to use Linux-Containers and not Windows Containers.\u003c/span\u003e\r\n\r\n### 3.2.1\tCreating the translation Container\r\nDo a \"git clone\" of the repository or download it as a ZIP-Archive and unpack it. Once this is done go into the sub-directory where the content is. It should be similar to the below:\r\n```\r\nc:\\tmp\\doc2html\u003edir\r\n\r\n04/15/2020  12:36 PM    \u003cDIR\u003e          .\r\n04/15/2020  12:36 PM    \u003cDIR\u003e          ..\r\n04/08/2020  03:38 PM                82 .gitignore\r\n04/15/2020  10:08 AM            13,230 convert.sh\r\n04/09/2020  09:26 AM               720 COPYRIGHT\r\n04/01/2020  02:59 PM               804 Dockerfile\r\n04/01/2020  10:55 PM            77,567 Empty-Word-Template.docx\r\n04/15/2020  12:24 PM         2,056,312 Lab-doc-essentials.docx\r\n04/08/2020  07:59 PM            18,097 LICENSE\r\n04/15/2020  12:36 PM    \u003cDIR\u003e          newproject\r\n04/15/2020  12:33 PM            19,505 README.md\r\n04/15/2020  12:36 PM    \u003cDIR\u003e          readmemdpictures\r\n```\r\n\r\n\u003cspan style=\"color:blue\"\u003eMake sure you have no other big files in this directory as \"Docker build\" doesn’t like this.\u003c/span\u003e\r\n\r\nThen we build the Container locally as shown. The build runs about 10-15 Minutes depending on your Internet connection. When we build the Container, we try to always use the latest version of the Third-Party Software we use but it may happen that we have not tested this combination. In this case you might want to nail a certain version causing you an issue in the Dockerfile. The information which versions we have used is below in the logfile.\r\n```\r\ndocker build -t juniper/doc2html .\r\n```\r\n\r\n### 3.2.2\tConverting a Document from Word to HTML\r\nWhen you run the document translation via \"docker run\" you have three argument options to use to instruct the converter:\r\n- You use the **argument \"new\"**: This will delete, if they exist, the subdirectories \"source\" and \"build\" so be warned. Then it calls Sphinx to **generate a new Project** with some minor input you have to give. This will create the local Makefile for Sphinx and generate all necessary Files needed in the Project. We will modify these files as need for the converter to add some modules and so on. When all this is done it seeks for the latest Word-Doc in your directory and attempts to translate it.\r\n- You use **no additional argument**: This assumes that there is an existing Project with sub-directories \"source\" and \"build\" and Sphinx-Makefile from a previous run with the \"new\"-Argument set. So, we will use the existing Project data and attempt to translate the latest Word-Doc in that directory into HTML. Simply use this approach on any changes you did to get a new conversion done.\r\n- You use the **argument \"old\"**: This is similar like having used no additional argument so, you need an existing Project. This also suppresses the Dynamic Tag generation in the beginning using the previous values. This is useful to speed up the translation on large Documents (\u003e300 Pages) but can cause a collision of one of the 16 Tags we use with the Text inside the Document. So, you have been warned! **This option may have unwanted side-effects!**\r\n\r\n\r\nThe below is an example using the Windows 10 native Shell. On all other Platforms with a more Unix like Shell use instead:\r\n```\r\ndocker run -ti --rm -v ${PWD}:/u juniper/doc2html new\r\n```\r\n\r\nHere we run the Container for the first time after it’s built so we must add the \"new\" command for the first translation to build a new Project.\r\n```\r\nc:\\tmp\\doc2html\u003edocker run -ti --rm -v %cd%:/u juniper/doc2html new\r\nYour container args are: new\r\n\r\nPlease answer the first question about \"Separate source and build directories\" with YES\r\nWelcome to the Sphinx 2.4.4 quickstart utility.\r\n\r\nPlease enter values for the following settings (just press Enter to\r\naccept a default value, if one is given in brackets).\r\n\r\nSelected root path: .\r\n\r\nYou have two options for placing the build directory for Sphinx output.\r\nEither, you use a directory \"_build\" within the root path, or you separate\r\n\"source\" and \"build\" directories within the root path.\r\n\u003e Separate source and build directories (y/n) [n]: y\r\n\r\nThe project name will occur in several places in the built documentation.\r\n\u003e Project name: myProject\r\n\u003e Author name(s): HS\r\n\u003e Project release []: 1.0\r\n\r\nIf the documents are to be written in a language other than English,\r\nyou can select a language here by its language code. Sphinx will then\r\ntranslate text that it generates into that language.\r\n\r\nFor a list of supported codes, see\r\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language.\r\n\u003e Project language [en]:\r\n\r\nCreating file ./source/conf.py.\r\nCreating file ./source/index.rst.\r\nCreating file ./Makefile.\r\nCreating file ./make.bat.\r\n\r\nFinished: An initial directory structure has been created.\r\n\r\nYou should now populate your master file ./source/index.rst and create other documentation\r\nsource files. Use the Makefile to build the docs, like so:\r\n   make builder\r\nwhere \"builder\" is one of the supported builders, e.g. html, latex or linkcheck.\r\n\r\n\r\ngenerate tags that are collision free with the text inside word ...\r\n_0_MtuheJ2jc8_0_\r\n_0_KdrGRftWzg_0_\r\n_0_PAOHw06JcK_0_\r\n_0_SuNHTCSPh2_0_\r\n_0_OhC4CFKS38_0_\r\n_0_IMX0UXGuJD_0_\r\n_0_WsNLUysWwX_0_\r\n_0_cPWrqVnu8P_0_\r\n_0_sE1yYu0QsX_0_\r\n_0_lHAecFG6AG_0_\r\n_0_4aUslEGnBx_0_\r\n_0_Lxa1dlDpZm_0_\r\n_0_ZQ6OkfhJV9_0_\r\n_0_FhyezLNBlk_0_\r\n_0_keQn5oLVJl_0_\r\n_0_uMJSdVfABo_0_\r\n\r\nread the dynamic tags into the 16 global variables ...\r\n\r\ncreate your own dynamic translation map using the variables ...\r\np[style-name='header'] =\u003e p:fresh\r\np[style-name='Body Text'] =\u003e p:fresh\r\np[style-name='No Spacing'] =\u003e pre.sourcecode:separator('\\n')\r\np[style-name='CLI10'] =\u003e pre.sourcecode:separator('\\n')\r\np[style-name='CLI8'] =\u003e pre.sourcecode:separator('\\n') \u003e _0_WsNLUysWwX_0_\r\np[style-name='CLI6'] =\u003e pre.sourcecode:separator('\\n') \u003e _0_sE1yYu0QsX_0_\r\np[style-name='CLI4'] =\u003e pre.sourcecode:separator('\\n') \u003e _0_4aUslEGnBx_0_\r\np[style-name='2Note'] =\u003e _0_keQn5oLVJl_0_\r\np[style-name='3Warning'] =\u003e _0_ZQ6OkfhJV9_0_\r\np[style-name='CLI10green'] =\u003e pre.sourcecode:separator('\\n') \u003e _0_MtuheJ2jc8_0_\r\np[style-name='CLI10red'] =\u003e pre.sourcecode:separator('\\n') \u003e _0_PAOHw06JcK_0_\r\np[style-name='CLI10purple'] =\u003e pre.sourcecode:separator('\\n') \u003e _0_OhC4CFKS38_0_\r\nr[style-name='CLI10green Char'] =\u003e _0_MtuheJ2jc8_0_\r\nr[style-name='CLI10red Char'] =\u003e _0_PAOHw06JcK_0_\r\nr[style-name='CLI10purple Char'] =\u003e _0_OhC4CFKS38_0_\r\n\r\nremoving old images from source folder ...\r\n\r\nrunning mammoth ...\r\nImage of type image/x-emf is unlikely to display in web browsers\r\nAn unrecognised element was ignored: {urn:schemas-microsoft-com:office:office}OLEObject\r\nUnrecognised paragraph style: toc 1 (Style ID: Verzeichnis1)\r\nUnrecognised paragraph style: toc 2 (Style ID: Verzeichnis2)\r\nUnrecognised paragraph style: toc 3 (Style ID: Verzeichnis3)\r\n\r\nsave the color termination points via relabel them else the pandoc conversion will throw them away ...\r\n1/6 Processes\r\n2/6 Processes\r\n3/6 Processes\r\n4/6 Processes\r\n5/6 Processes\r\n6/6 Processes\r\n\r\nPre-Process to disable syntax highlight, insert notes and warnings\r\n1/3 Processes\r\n2/3 Processes\r\n3/3 Processes\r\n\r\nPatch the beginning of a font4-Block to make the entire section hidden ...\r\n1/3 Processes\r\n2/3 Processes\r\n3/3 Processes\r\nEncoding for stdout is only ANSI_X3.4-1968, will auto-encode text with utf8 before output\r\ncentralmsvm-certs.tgz\r\n\r\n.\r\n.\r\n.\r\n\r\nbuilding our static html pages ...\r\nRunning Sphinx v2.4.4\r\nmaking output directory... done\r\nbuilding [mo]: targets for 0 po files that are out of date\r\nbuilding [html]: targets for 2 source files that are out of date\r\nupdating environment: [new config] 2 added, 0 changed, 0 removed\r\nreading sources... [100%] readme\r\nlooking for now-outdated files... none found\r\npickling environment... done\r\nchecking consistency... done\r\npreparing documents... done\r\nwriting output... [100%] readme\r\ngenerating indices...  genindexdone\r\nwriting additional pages...  search/usr/local/lib/python3.6/dist-packages/sphinx_rtd_theme/search.html:21: RemovedInSphinx30Warning: To modify script_files in the theme is deprecated. Please insert a \u003cscript\u003e tag directly in your theme instead.\r\n  {% endblock %}\r\ndone\r\ncopying images... [100%] 20.png\r\ncopying static files... ... done\r\ncopying extra files... done\r\ndumping search index in English (code: en)... done\r\ndumping object inventory... done\r\nbuild succeeded.\r\n\r\nThe HTML pages are in build/html.\r\n\r\nconvert CLI-labels to color codes in html\r\n1/6 Processes\r\n2/6 Processes\r\n3/6 Processes\r\n4/6 Processes\r\n5/6 Processes\r\n6/6 Processes\r\n\r\njust revoke the small font labels for now as the used readthedoc theme is small enough\r\n1/6 Processes\r\n2/6 Processes\r\n3/6 Processes\r\n4/6 Processes\r\n5/6 Processes\r\n6/6 Processes\r\n\r\nalso remove the labels in the stored *.rst files ...\r\n1/12 Processes\r\n2/12 Processes\r\n3/12 Processes\r\n4/12 Processes\r\n5/12 Processes\r\n6/12 Processes\r\n7/12 Processes\r\n8/12 Processes\r\n9/12 Processes\r\n10/12 Processes\r\n11/12 Processes\r\n11/12 Processes\r\n\r\nprepare distribution package with word and html-files in a Lab-doc-essentials.zip ...\r\nFile detected:centralmsvm-certs.tgz\r\ncp source/centralmsvm-certs.tgz build/distribute/readthedocs-html-version\r\n  adding: Lab-doc-essentials.docx (deflated 6%)\r\n  adding: readthedocs-html-version/ (stored 0%)\r\n  adding: readthedocs-html-version/UnhideButton.png (stored 0%)\r\n  adding: readthedocs-html-version/_images/ (stored 0%)\r\n  adding: readthedocs-html-version/_images/1.jpeg (deflated 59%)\r\n  adding: readthedocs-html-version/_images/10.png (deflated 1%)\r\n  adding: readthedocs-html-version/_images/11.png (deflated 1%)\r\n.\r\n.\r\n.\r\n  adding: readthedocs-html-version/index.html (deflated 73%)\r\n  adding: readthedocs-html-version/objects.inv (deflated 1%)\r\n  adding: readthedocs-html-version/readme.html (deflated 76%)\r\n  adding: readthedocs-html-version/search.html (deflated 68%)\r\n  adding: readthedocs-html-version/searchindex.js (deflated 54%)\r\n\r\nstatic html pages in build/html:\r\nUnhideButton.png  _images  _sources  _static  genindex.html  index.html  objects.inv  readme.html  search.html  searchindex.js\r\n\r\nYour distribution zip file:Lab-doc-essentials.zip\r\n\r\nAs this is a new Project we have auto-generated the reStructuredText welcome and index-Page for you.\r\nIf you want to edit that to expand or change what is displayed edit the File: source/index.rst\r\n\r\nc:\\tmp\\doc2html\u003edir\r\n.\r\n04/02/2020  09:58 AM    \u003cDIR\u003e          .\r\n04/02/2020  09:58 AM    \u003cDIR\u003e          ..\r\n04/02/2020  09:58 AM    \u003cDIR\u003e          build\r\n04/02/2020  01:01 AM            12,104 convert.sh\r\n04/01/2020  02:59 PM               804 Dockerfile\r\n04/01/2020  10:55 PM            77,567 Empty-Word-Template.docx\r\n04/01/2020  11:43 PM         1,459,410 Lab-doc-essentials.docx\r\n04/02/2020  09:58 AM         9,218,828 Lab-doc-essentials.zip\r\n04/02/2020  09:58 AM               799 make.bat\r\n04/02/2020  09:58 AM               638 Makefile\r\n04/02/2020  09:42 AM    \u003cDIR\u003e          newproject\r\n04/02/2020  09:58 AM    \u003cDIR\u003e          source\r\n```\r\n\r\nThe conversion process has automatically created a ZIP-File that contains the original Word-File plus the new HTML version. You can change that behavior in the File \"convert.sh\" if you don’t like it. Below you see the initial archive-structure.\r\n\r\n![Image](readmemdpictures/pic13.png)\r\n\r\nIf you change into the \"readthedocs-html-version\" folder you will see rendered HTML-Version with the index.hml-File as starting Page.\r\n\r\n![Image](readmemdpictures/pic14.png)\r\n\r\nYou can now put that folder onto your Webserver for online review or unpack it locally to review it offline on your PC or Notebook. The first Page should look similar to this:\r\n\r\n![Image](readmemdpictures/pic15.png)\r\n\r\n## Again: Some other Chapters are missing here on purpose to keep this README.md crisp. Please use the supplied File Lab-doc-essentials.docx for more detailed information.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniper%2Flab-doc-convert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuniper%2Flab-doc-convert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniper%2Flab-doc-convert/lists"}