Best Python code snippet using lisa_python
renderer_html.py
Source:renderer_html.py
...47 dict_, assets_img_ = ret.result()48 search_plus_index.update(dict_)49 assets_img.update(assets_img_)50 # åå
¥ç´¢å¼51 with open(get_pure_path(book.book_output, "search_plus_index.json"), 'w', encoding="utf-8") as f:52 f.write(json.dumps(search_plus_index, ensure_ascii=False))53 return assets_img54def _render_html(book_title, title, author, basePath, book_summary,55 prev_title, prev_relative_path, next_title, next_relative_path, href, book_path, book_output,56 language, i18n, github_url, base_assets, book_js):57 """ç产HTMLï¼è¿åç´¢å¼"""58 # 解æ页é¢59 base_assets_path = get_pure_path(*(basePath, base_assets) if base_assets else basePath) # èµæºè·¯å¾60 book_page, toc_tree, tag_katex, tag_mermaid, tag_prism, tag_lightbox, assets_img = parse_file(61 get_pure_path(book_path, href),62 basePath63 )64 # ç»è£
页å
导èª65 toc = ""66 if len(toc_tree) > 0:67 toc = "<div id='anchor-navigation-ex-navbar'><i class='fa fa-anchor'></i><ul><li>" \68 "<span class='title-icon fa fa-hand-o-right'></span><a aria-label class='on-toolbar-action' href='' " \69 f"""onclick="$('.fa.fa-align-justify').parent()[0].click();">{i18n.get('SUMMARY_TOGGLE')}</a></li>"""70 for h1Toc in toc_tree:71 toc += "<li><span class='title-icon fa fa-hand-o-right'></span>" \72 "<a href='#" + h1Toc["url"] + "'><b>" + h1Toc["level"] + "</b>" + h1Toc["name"] + "</a></li>"73 if len(h1Toc["children"]) > 0:74 toc += "<ul>"75 for h2Toc in h1Toc["children"]:76 toc += "<li><span class='title-icon fa fa-hand-o-right'></span>" \77 "<a href='#" + h2Toc["url"] + "'><b>" + h2Toc["level"] + "</b>" + h2Toc["name"] + "</a></li>"78 if len(h2Toc["children"]) > 0:79 toc += "<ul>"80 for h3Toc in h2Toc["children"]:81 toc += "<li><span class='title-icon fa fa-hand-o-right'></span><a href='#" + h3Toc[82 "url"] + "'><b>" + h3Toc["level"] + "</b>" + h3Toc["name"] + "</a></li>"83 toc += "</ul>"84 toc += "</ul>"85 toc += "</ul></div><a href='#" + toc_tree[0]['url'] \86 + "' id='anchorNavigationExGoTop'><i class='fa fa-arrow-up'></i></a>"87 footer = f"""<footer class="page-footer"><span class="copyright">© {time.localtime().tm_year} {author}. 88All rights reserved.</span><span class="footer-modification">89<span id="busuanzi_container_site_uv" style="display:none">æ¬ç«è®¿å®¢æ° <span id="busuanzi_value_site_uv">90</span> 人次</span></span></footer>91<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>92<script>93{book_js}94</script>"""95 # js96 _js = {}97 if tag_katex:98 _js["katex"] = [get_pure_path(f"{base_assets_path}/lsbook/katex/katex.min.js"),99 get_pure_path(f"{base_assets_path}/lsbook/katex/contrib/auto-render.min.js")]100 if tag_lightbox:101 pass102 if tag_mermaid:103 _js["mermaid"] = [get_pure_path(f"{base_assets_path}/lsbook/mermaid/mermaid.min.js")]104 if tag_prism:105 _js["prism"] = [get_pure_path(f"{base_assets_path}/lsbook/prismjs/clipboard.min.js"),106 get_pure_path(f"{base_assets_path}/lsbook/prismjs/prism.js")]107 # ä¸ä¸é¡µ108 previous_page_link = prev_relative_path != "" and previous_page_link_5_1.substitute(109 prev_title=prev_title,110 prev_relative_path=prev_relative_path111 ) or ""112 next_page_link = next_relative_path != "" and next_page_link_5_2.substitute(113 next_title=next_title,114 next_relative_path=next_relative_path,115 ) or ""116 # ç»è£
æ£æ117 book_body = book_body_4.substitute(118 previous_page_link=previous_page_link,119 next_page_link=next_page_link,120 title=title,121 basePath=basePath,122 toc=toc,123 footer=footer,124 book_page=book_page,125 SEARCH_RESULTS_TITLE=i18n.get("SEARCH_RESULTS_TITLE"),126 SEARCH_NO_RESULTS_TITLE=i18n.get("SEARCH_NO_RESULTS_TITLE")127 )128 # ç»è£
身ä½129 body = html_body_2.substitute(130 book_summary=book_summary,131 book_body=book_body,132 basePath=basePath,133 language=language,134 LsBook_LINK=i18n.get("LsBook_LINK"),135 github_url=github_url,136 SEARCH_PLACEHOLDER=i18n.get("SEARCH_PLACEHOLDER"),137 js=_js,138 previous_page_link=prev_relative_path,139 next_page_link=next_relative_path140 )141 # ç»è£
头142 head = html_head_1.substitute(143 title=f"{book_title} - {title}",144 author=author,145 base_assets_path=base_assets_path,146 next_relative_path=next_relative_path,147 css=css.substitute(base_assets_path=base_assets_path),148 description=title149 )150 # ç»è£
æ´ä½151 page = html_root_0.substitute(152 head=head,153 body=body,154 lang=language,155 js=js.substitute(base_assets_path=base_assets_path)156 )157 out_path = get_pure_path(book_output, href)158 if os.path.basename(href).lower() == "readme.md":159 out_path = get_pure_path(os.path.dirname(out_path), "index.html")160 else:161 out_path = set_extension(out_path, ".html")162 with open(out_path, "w", encoding="utf-8") as f:163 f.write(page)164 body = re.sub(r"(<([^>]+)>)", "", book_page)165 body = re.sub(r"[\n ]+", "", body)166 url = get_pure_path(os.path.relpath(out_path, book_output))167 return {url: {168 "url": url,169 "title": title,170 "keywords": "",171 "body": body,...
path.py
Source:path.py
...27 :param ext: æ©å±å28 :return:29 """30 return get_filename_not_ext(filename) + ext31def get_pure_path(path, *paths):32 """è·åè·¯å¾ï¼åé符为 / """33 return Path(os.path.join(path, *paths)).as_posix()34def get_abs_path(path, *paths):35 """è·åç»å¯¹è·¯å¾"""36 return os.path.abspath(get_pure_path(path, *paths))37def get_rel_path(book_output, ref: str, current_ref: str):38 """转æ¢ä¸ºç¸å¯¹è·¯å¾39 :param book_output: 书ç±ç®å½40 :param ref: è¦è½¬æ¢çè·¯å¾41 :param current_ref: å½åè·¯å¾42 :return:43 """44 _ref = ref45 if os.path.basename(_ref).lower() == "readme.md":46 if os.path.dirname(ref):47 _ref = get_pure_path(os.path.relpath(os.path.dirname(ref)), "index.md")48 else:49 _ref = "index.md"50 return get_pure_path(get_filename_not_ext(51 os.path.relpath(52 get_pure_path(book_output, _ref),53 os.path.dirname(get_pure_path(book_output, current_ref))54 )55 ))56def get_relative_path(book_output, ref: str):57 """转æ¢æ¬é¡µé¢ç¸å¯¹äºæ ¹çç¸å¯¹è·¯å¾"""...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!