This commit is contained in:
Eeason Shen 2025-03-18 16:28:32 +08:00
parent af25131b0f
commit 69546533b1
22 changed files with 101 additions and 1123 deletions

View File

@ -1,22 +1,22 @@
# Freenove Tutorial Online # Freenove Tutorial Online
<img src="readme\freenove-logo.png" alt="freenove-logo" width='100%' align="left"/> <img src="extra\freenove-logo.png" alt="freenove-logo" width='100%' align="left"/>
## <img src="readme\start.png" alt="start" width='5%' align="left"/> **Quick Start** ## <img src="extra\start.png" alt="start" width='5%' align="left"/> **Quick Start**
Online Tutorial URL[tutorial](https://docs.freenove.com/en/latest/) Online Tutorial URL[tutorial](https://docs.freenove.com/en/latest/)
## <img src="readme\text.png" alt="text" width='5%' align="left"/> **Materials Download** ## <img src="extra\text.png" alt="text" width='5%' align="left"/> **Materials Download**
Tutorial Materials Download URL[download](https://docs.freenove.com/en/latest/about-freenove/tutorial.html) Tutorial Materials Download URL[download](https://docs.freenove.com/en/latest/about-freenove/tutorial.html)
## <img src="readme\support.png" alt="support" width='4%' align="left"/> **Support** ## <img src="extra\support.png" alt="support" width='4%' align="left"/> **Support**
We are fully responsible for our products! We are fully responsible for our products!
@ -28,6 +28,6 @@ In general, we will reply to you within one working day.
## <img src="readme\freenove.png" alt="freenove" width='5%' align="left"/>**Freenove Official Website** ## <img src="extra\freenove.png" alt="freenove" width='5%' align="left"/>**Freenove Official Website**
Freenove Official Website URL: [Freenove](https://freenove.com/) Freenove Official Website URL: [Freenove](https://freenove.com/)

View File

@ -1,326 +0,0 @@
/*
* CSS hacks and small modification for my Sphinx website
* :copyright: Copyright 2013-2016 Lilian Besson
* :license: GPLv3, see LICENSE for details.
*/
/* Colors and text decoration.
For example, :black:`text in black` or :blink:`text blinking` in rST. */
.black {
color: black;
}
.gray {
color: gray;
}
.grey {
color: gray;
}
.silver {
color: silver;
}
.white {
color: white;
}
.maroon {
color: maroon;
}
.red {
color: red;
}
.magenta {
color: magenta;
}
.fuchsia {
color: fuchsia;
}
.pink {
color: pink;
}
.orange {
color: orange;
}
.yellow {
color: yellow;
}
.lime {
color: lime;
}
.green {
color: green;
}
.olive {
color: olive;
}
.teal {
color: teal;
}
.cyan {
color: cyan;
}
.aqua {
color: aqua;
}
.blue {
color: blue;
}
.navy {
color: navy;
}
.purple {
color: purple;
}
.under {
text-decoration: underline;
}
.over {
text-decoration: overline;
}
.blink {
text-decoration: blink;
}
/* .line {
text-decoration: line-through;
}
.strike {
text-decoration: line-through;
} */
.it {
font-style: italic;
}
.ob {
font-style: oblique;
}
.small {
font-size: small;
}
.large {
font-size: large;
}
.smallpar {
font-size: small;
}
/* Style pour les badges en bas de la page. */
div.supportBadges {
margin: 1em;
text-align: right;
}
div.supportBadges ul {
padding: 0;
display: inline;
}
div.supportBadges li {
display: inline;
}
div.supportBadges a {
margin-right: 1px;
opacity: 0.6;
}
div.supportBadges a:hover {
opacity: 1;
}
/* Details elements in the sidebar */
a.reference {
border-bottom: none;
text-decoration: none;
}
ul.details {
font-size: 80%;
}
ul.details li p {
font-size: 85%;
}
ul.externallinks {
font-size: 85%;
}
/* Pour le drapeau de langue */
img.languageswitch {
width: 50px;
height: 32px;
margin-left: 5px;
vertical-align: bottom;
}
div.sphinxsidebar {
overflow: hidden !important;
font-size: 120%;
word-wrap: break-word;
width: 300px;
max-width: 300px;
}
div.sphinxsidebar h3 {
font-size: 125%;
}
div.sphinxsidebar h4 {
font-size: 110%;
}
div.sphinxsidebar a {
font-size: 85%;
}
/* Image style for scrollUp jQuery plugin */
#scrollUpLeft {
bottom: 50px;
left: 260px;
height: 38px;
width: 38px;
background: url('//perso.crans.org/besson/_images/.top.svg');
background: url('../_images/.top.svg');
}
@media screen and (max-width: 875px) {
#scrollUpLeft {
right: 50px;
left: auto;
}
}
/* responsive for font-size. */
@media (max-width: 875px) {
body {
font-size: 105%;
/* Increase font size for responsive theme */
}
}
@media (max-width: 1480px) and (min-width: 876px) {
body {
font-size: 110%;
/* Increase font size for not-so-big screens */
}
}
@media (min-width: 1481px) {
body {
font-size: 115%;
/* Increase even more font size for big screens */
}
}
/* Social Icons in the sidebar (available: twitter, facebook, linkedin, google+, bitbucket, github) */
.social-icons {
display: inline-block;
margin: 0;
text-align: center;
}
.social-icons a {
background: none no-repeat scroll center top #444444;
border: 1px solid #F6F6F6;
border-radius: 50% 50% 50% 50%;
display: inline-block;
height: 35px;
width: 35px;
margin: 0;
text-indent: -9000px;
transition: all 0.2s ease 0s;
text-align: center;
border-bottom: none;
}
.social-icons li {
display: inline-block;
list-style-type: none;
border-bottom: none;
}
.social-icons li a {
border-bottom: none;
}
.social-icons a:hover {
background-color: #666666;
transition: all 0.2s ease 0s;
text-decoration: none;
}
.social-icons a.facebook {
background-image: url('../_images/.facebook.png');
background-image: url('//perso.crans.org/besson/_images/.facebook.png');
display: block;
margin-left: auto;
margin-right: auto;
background-size: 35px 35px;
}
.social-icons a.bitbucket {
background-image: url('../_images/.bitbucket.png');
background-image: url('//perso.crans.org/besson/_images/.bitbucket.png');
display: block;
margin-left: auto;
margin-right: auto;
background-size: 35px 35px;
}
.social-icons li a.github {
background-image: url('../_images/.github.png');
background-image: url('//perso.crans.org/besson/_images/.github.png');
display: block;
margin-left: auto;
margin-right: auto;
background-size: 35px 35px;
}
.social-icons li a.wikipedia {
background-image: url('../_images/.wikipedia.png');
background-image: url('//perso.crans.org/besson/_images/.wikipedia.png');
display: block;
margin-left: auto;
margin-right: auto;
background-size: 35px 35px;
}

View File

@ -1,142 +0,0 @@
/*
* CSS hacks and small modification for my Sphinx website
* :copyright: Copyright 2013-2016 Lilian Besson
* :license: GPLv3, see LICENSE for details.
*/
/* Colors and text decoration.
For example, :black:`text in black` or :blink:`text blinking` in rST. */
.black {
color: black;
}
.gray {
color: gray;
}
.grey {
color: gray;
}
.silver {
color: silver;
}
.white {
color: white;
}
.maroon {
color: maroon;
}
.red {
color: red;
}
.magenta {
color: magenta;
}
.fuchsia {
color: fuchsia;
}
.pink {
color: pink;
}
.orange {
color: orange;
}
.yellow {
color: yellow;
}
.lime {
color: lime;
}
.green {
color: green;
}
.olive {
color: olive;
}
.teal {
color: teal;
}
.cyan {
color: cyan;
}
.aqua {
color: aqua;
}
.blue {
color: blue;
}
.navy {
color: navy;
}
.purple {
color: purple;
}
.huge {
font-size: xx-large;
}
.big {
font-size: x-large;
}
.small{
font-size: small;
}
.tiny{
font-size: smaller;
}
.large {
font-size: large;
}
.larger {
font-size: larger;
}
.x-large{
font-size: x-large;
}
.xx-large{
font-size: xx-large;
}
.small {
font-size: small;
}
.smaller {
font-size: smaller;
}
.x-small{
font-size: x-small;
}
.xx-small{
font-size: xx-small;
}

View File

@ -1,377 +0,0 @@
/* 顶部导航栏 */
#nav-bar {
height: 3.5rem;
width: 100%;
background-color: #f0f0f0;
position: fixed;
top: 0;
left: 0;
z-index: 100;
}
/* 原RTD左侧导航栏下移 */
.wy-nav-side {
/* top: 3.5rem; */
z-index: 2;
}
/* 原页面下移 */
.wy-grid-for-nav {
top: 3.5rem;
height: calc(100% - 3.5rem);
overflow-y: auto;
position: fixed;
}
/* 原Logo删除 */
.wy-side-nav-search>.icon.icon-home {
display: none;
}
/* 版本号删除 */
.version {
display: none;
}
/* 搜索栏调整 */
.wy-side-nav-search {
/* 搜索栏背景去除 */
background: none;
/* 移除搜索栏下方margin让下面内容上移 */
margin-bottom: 0 !important;
margin-top: 3.5rem;
}
/* 搜索框调整 */
.wy-side-nav-search input[type=text] {
/* 移除搜索框的蓝色边缘 */
border-color: unset !important;
}
.nav-bar-logo {
/* width: 15rem; */
padding: 0rem;
height: 3.5rem;
width: 300px;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
}
#advertisingBox {
display: flex;
flex-direction: column;
height: 3.5rem;
width: 100%;
max-width: 800px;
}
#advertising {
display: flex;
height: 2.1rem;
justify-content: center;
align-items: center;
font-size: 1.6rem;
background-color: #8a8585;
font-weight: bold;
}
#advertising span {
color: black;
font-family: Roboto, sans-serif !important;
}
#advertising span:nth-child(2),
#advertising span:last-child {
color: white;
}
.nav-bar__itemBox {
display: flex;
justify-content: space-evenly;
align-items: center;
height: 1.4rem;
}
.nav-bar-items {
display: flex;
max-width: 1100px;
}
.nav-bar__item {
color: #202020;
font-size: 1rem;
line-height: 1rem;
text-align: center;
margin: 0 .6rem;
/* height: 3.5rem; */
position: relative;
display: flex;
}
.nav-bar__item>a {
text-decoration: none;
color: inherit;
font-family: Roboto, sans-serif !important;
font-weight: 400;
margin: auto;
}
.nav-bar__item:hover>a {
color: #019cda;
}
.icon.icon--arrow-bottom {
width: .8rem;
margin-left: .5rem;
}
.icon.icon--nav-triangle {
display: none;
position: absolute;
bottom: -1px;
height: .6rem;
margin-left: 3rem;
z-index: 2;
transition: .2s ease-in-out;
}
.icon.icon--nav-triangle-left {
position: absolute;
height: .8rem;
top: 1rem;
right: 100%;
}
.icon.icon--arrow-right {
height: .8rem;
}
.nav-dropdown {
display: none;
top: 100%;
position: absolute;
background-color: #ffffff;
min-width: 18rem;
text-align: start;
border: 1px solid #e1e3e4;
z-index: 1;
padding: .6rem 0;
}
.nav-dropdown__item {
color: black;
position: relative;
padding: .4rem .8rem;
text-decoration: none;
display: block;
}
.nav-dropdown .nav-dropdown {
top: -.6rem;
left: 100%;
}
.nav-dropdown__item:hover>a {
color: #019cda;
}
.nav-dropdown__item>a {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
text-decoration: none;
color: inherit;
}
.nav-bar__item:hover>.nav-dropdown,
.nav-bar__item:hover>a>.icon.icon--nav-triangle {
display: block;
}
.nav-dropdown__item:hover>.nav-dropdown {
display: block;
}
* {
font-family: "Verdana" ! important;
}
.setMenu {
overflow-y: hidden;
}
.setMenu::-webkit-scrollbar {
background: transparent;
height: 4px;
}
.setMenu::-webkit-scrollbar-track-piece {
-webkit-border-radius: 4px;
border-radius: 4px;
background: #ccc;
}
.setMenu::-webkit-scrollbar-thumb {
background: #019cda;
height: 4px;
}
.rasPad .iconImg {
width: 178px;
border-radius: 0;
height: auto;
padding: 0;
margin: auto auto .809em auto;
}
.readTheDocIcon {
margin: auto auto .809em auto;
display: block;
}
.readTheDocIcon .readIconImg {
width: 99px;
height: auto;
border-radius: 0px;
background-image: url("https://ezblock.cc/readDocFile/readTheDoc.svg");
background-repeat: no-repeat;
background-position: left center;
background-size: 15px 15px;
color: #fff;
padding-left: 30px;
}
footer {
opacity: 0;
}
.addthis-smartlayers #at4-share,
.addthis-smartlayers #at4-soc {
right: 0 !important;
left: auto !important;
top: 35% !important;
animation-name: false !important;
}
#at4-scc {
display: none !important;
}
.addthis_inline_share_toolbox {
display: none !important;
}
@media screen and (max-width: 768px) {
#advertising {
display: none !important;
}
.nav-bar__itemBox {
height: 3.5rem;
overflow-x: auto;
}
.wy-nav-content-wrap {
top: 3.5rem !important;
}
}
/* .extrabody-content {
position: fixed;
width: 100%;
height: 4em;
z-index: 200;
top: 0;
left: 0;
}
.wy-nav-side {
position: fixed;
margin-top: 4em;
top: 0;
bottom: 0;
left: 0;
padding-bottom: 2em;
width: 300px;
overflow-x: hidden;
overflow-y: hidden;
min-height: 100%;
color: #9b9b9b;
background: #343131;
z-index: 200;
}
.wy-side-nav-search {
position: static;
display: block;
width: 300px;
padding: .809em;
margin-bottom: .809em;
z-index: 200;
background-color: #2980b9;
text-align: center;
color: #fcfcfc;
}
.wy-nav-content {
padding: 1.618em 3.236em;
height: 100%;
max-width: 800px;
margin-left: 0;
margin-top: 4em;
}
.dropdown-checkbox {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 1;
}
.dropdown-content label {
display: block;
margin: 0;
padding: 5px 10px;
cursor: pointer;
}
.dropdown-content label:hover {
background-color: #f1f1f1;
}
.dropdown-checkbox .dropbtn {
background-color: #4CAF50;
color: white;
padding: 5px;
font-size: 16px;
border: none;
cursor: pointer;
}
.dropdown-checkbox .dropbtn:hover {
background-color: #3e8e41
} */
.product-table td {
white-space: normal !important;
}
.product-image {
max-width: 120px;
width: 120px;
}

View File

@ -1,25 +0,0 @@
:root{
--fn_nav_height: 2.0rem
}
.extrabody-content{
/* border: solid #00F 2px; */
background-color: #EFEFEF;
height: var(--fn_nav_height);
}
.wy-grid-for-nav {
top: var(--fn_nav_height);
height: calc(100% - var(--fn_nav_height));
height: 100%;
overflow-y: auto;
position: fixed;
}
.wy-nav-side {
top: var(--fn_nav_height);
z-index: 2;
}

View File

@ -1,3 +0,0 @@
.font-20 {
font-size: 20px;
}

View File

@ -1,105 +0,0 @@
@charset "utf-8";
/* CSS Document */
:root{
--fn_nav_height: 2.0rem;
--fn_nav_fontsize: 1.5rem;
}
.nav_fn {
/* border: solid #F00 5px; */
background-color: rgb(52, 49, 49);
position: absolute;
width: fit-content;
height: auto;
left: 0;
top: 0;
z-index: 1;
opacity: 0.8;
}
.nav_fn ul {
background-color: rgb(52, 49, 49);
/* border: solid #F00 5px; */
width: auto;
height: auto;
font-size: var(--fn_nav_fontsize);
line-height: var(--fn_nav_height);
/* display:inline-block; */
text-align: center;
float: left;
position: relative;
margin: 0;
padding: 0;
/* overflow:hidden; */
list-style-type: none;
}
.nav_fn li {
background-color: #003333;
display: block;
float: left;
width:9px;
height: var(--fn_nav_height);
cursor: pointer;
margin-left: 0px;
list-style-type: none;
opacity: 0.8;
}
.navLogo {
background: url(../component-imgs/freenove-logo.png) no-repeat center;
background-size: 100%;
float: left;
width: auto;
height: var(--fn_nav_height);
}
.nav_fn .navDropDown {
width: 100%;
height: 100%;
position: relative;
}
.nav_fn .dropBtn {
/* border: solid #00F 2px; */
display: inline-block;
color: white;
text-align: center;
width: 100%;
height: 100%;
text-decoration: none;
}
.nav_fn a:hover,
.navDropDown:hover .dropBtn {
background-color: #111;
}
.nav_fn .navDropDown {
width: 100%;
height: 100%;
display: inline-block;
}
.nav_fn .dropDownContent {
/* opacity: 1; */
width: 100%;
background-color: #F9F9F9;
position: absolute;
display: none;
box-shadow: 0px 8px 15px 5px rgba(0, 0, 0, 0.8);
}
.nav_fn .dropDownContent a {
color: black;
text-decoration: none;
display: block;
}
.nav_fn .dropDownContent a:hover {
background-color: #F1F1F1;
}
.nav_fn .navDropDown:hover .dropDownContent {
display: block;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,55 +0,0 @@
// JavaScript Document
$(document).ready(function () {
loadReady();
});
$(window).resize(function () {
// console.log('resize ... ');
NaviResize();
});
function loadReady() {
// console.log('ready ... ');
NaviResize();
var autoPlay2 = setInterval("test()", 1000);
$(".dropBtn").click(function () {
// $(this).css("background-color", "#FFF");
$("#txt").text("click:");
});
}
function NaviResize() {
// var wy_nav_side = document.getElementsByClassName('wy-nav-side')[0];
// var wy_nav_content = document.getElementsByClassName('wy-nav-content')[0];
// // var nav_fn = document.getElementsByClassName('nav_fn')[0];
// var rect_wy_nav_side = wy_nav_side.getBoundingClientRect();
// // var rect_wy_nav_content = wy_nav_content.getBoundingClientRect();
// // var rect_nav_fn = nav_fn.getBoundingClientRect();
// console.log('rect_wy_nav_side :', rect_wy_nav_side.width);
// console.log('wy_nav_content:', wy_nav_content.width);
// $('.wy-nav-content').on
// // var winWidth = $(window).width();
// console.log("wy-nav-side " + $('.wy-nav-side').width() + ' wy-nav-content: ' + $('.wy-nav-content').outerWidth(true) + " " + $('.wy-nav-side').offset().left + "");
var navWidth = $('.wy-nav-side').width() + $('.wy-nav-content').outerWidth(true) + $('.wy-nav-side').offset().left;
var navHeight = $(".extrabody-content").height();
var navItemWidth = navWidth / 7;
navItemWidth = navItemWidth < 60 ? 60 : navItemWidth;
var navItemHeight = navItemWidth / 5;
console.log("navWidth " + navWidth + ' navItemWidth: ' + navItemWidth + " " + $('.wy-nav-side').offset().left + "");
// $(".extrabody-content").height(navItemWidth);
// $(".nav_fn").height(navItemHeight);
// $(".nav_fn>ul").css("line-height", navItemHeight + "px");
$(".nav_fn>ul>li").width(navItemWidth);
// console.log('.extrabody-content.height: ' + $(".extrabody-content").height());
$(".nav_fn>ul>li").height($(".extrabody-content").height);
$(".nav_fn>ul a").css("font-size", navItemWidth * 0.15 + "px");
}
function test() {
//var today=new Date()
//var h=today.getHours()
//var m=today.getMinutes()
//var s=today.getSeconds()
$("#txt").fadeToggle(1000);
//$("#txt").text(bannerCount+":"+winWidth);
}

View File

@ -14,3 +14,8 @@
.. role:: xx-small .. role:: xx-small
.. role:: medium .. role:: medium
.. role:: x-large-bold

View File

@ -0,0 +1,22 @@
{%- if (theme_prev_next_buttons_location == 'bottom' or theme_prev_next_buttons_location == 'both') and (next or prev)
%}
{#- Translators: This is an ARIA section label for the footer section of the page. -#}
<div class="rst-footer-buttons" role="navigation" aria-label="{{ _('Footer') }}">
{%- if prev %}
<a href="{{ prev.link|e }}" class="btn btn-neutral float-left" title="{{ prev.title|striptags|e }}" accesskey="p"
rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> {{ _('Previous') }}</a>
{%- endif %}
{%- if next %}
<a href="{{ next.link|e }}" class="btn btn-neutral float-right" title="{{ next.title|striptags|e }}" accesskey="n"
rel="next">{{ _('Next') }} <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
{%- endif %}
</div>
<br>
{%- endif %}
{%- block extrafooter %}
<div id="footer_content">
</div>
{% endblock %}

View File

@ -2,6 +2,11 @@
{%- block extrabody %} {%- block extrabody %}
<div class="extrabody-content"> <div class="extrabody-content">
{%- include "navigation.html" %}
<div id="navContent">
<div class="nav_fn">
</div>
</div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -1,71 +0,0 @@
<link href="{{ pathto('_static/css/navigationStyle.css', 1) }}" rel="stylesheet" />
<!-- <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> -->
<script type="text/javascript" src="{{ pathto('_static/js/navigationStyle.js', 1) }}"></script>
<div class="nav_fn">
<ul>
<!-- <li class="navLogo"><a href="/index.html"></a></li> -->
<li>
<div class="navDropDown">
<a href="https://docs.freenove.com/en/latest/" class="dropBtn">Home</a>
<div class="dropDownContent">
</div>
</div>
</li>
<li>
<div class="navDropDown">
<a href="#" class="dropBtn">Store</a>
<div class="dropDownContent">
<a href="https://store.freenove.com/">Official </a>
<a href="https://www.ebay.com/str/freenove">eBay </a>
<a href="https://freenove.aliexpress.com/store">AliExpress </a>
<a href="https://www.amazon.com/freenove">Amazon </a>
</div>
</div>
</li>
<li>
<div class="navDropDown">
<a href="https://docs.freenove.com/en/latest/about-freenove/tutorial.html#" class="dropBtn">Tutorial</a>
<div class="dropDownContent">
</div>
</div>
</li>
<li>
<div class="navDropDown">
<a href="https://docs.freenove.com/en/latest/about-freenove/support.html#" class="dropBtn">Support</a>
<div class="dropDownContent">
</div>
</div>
</li>
<li>
<div class="navDropDown">
<a href="https://docs.freenove.com/en/latest/about-freenove/app.html#" class="dropBtn">App</a>
<div class="dropDownContent">
</div>
</div>
</li>
<li>
<div class="navDropDown">
<a href="https://docs.freenove.com/en/latest/about-freenove/contact.html#" class="dropBtn">Contact</a>
<div class="dropDownContent">
</div>
</div>
</li>
<li>
<div class="navDropDown">
<a href="https://docs.freenove.com/en/latest/about-freenove/about.html#" class="dropBtn">About</a>
<div class="dropDownContent">
</div>
</div>
</li>
<!-- <li id="txt">
<div class="navDropDown">
<a href="https://freenove.com/" class="dropBtn">Welcome</a>
<div class="dropDownContent">
</div>
</div>
</li> -->
</ul>
</div>

View File

@ -15,6 +15,23 @@ sys.path.insert(0, pathlib.Path(__file__).parents[2].resolve().as_posix())
os.system("rm -r freenove_Kit") os.system("rm -r freenove_Kit")
os.system("git clone --depth 1 https://github.com/Freenove/Freenove_Ultimate_Starter_Kit_for_ESP32 freenove_Kit") os.system("git clone --depth 1 https://github.com/Freenove/Freenove_Ultimate_Starter_Kit_for_ESP32 freenove_Kit")
# # 删除文件夹
# os.system("rm -r _static")
# os.system("rm -r _templates")
# os.system("rm freenove-logo.png")
# # 克隆所需资料到freenove_css文件夹中
# os.system("git clone --branch nav https://github.com/Freenove/freenove-docs freenove_css")
# # 复制网页样式到对应位置
# os.system("cp -r freenove_css/_static .")
# os.system("cp -r freenove_css/_templates .")
# # 复制网页样式到对应位置
# os.system("cp freenove_css/freenove-logo.png .")
# # 删除文件夹
# os.system("rm -r freenove_css")
def prepend_to_file(file_path, content): def prepend_to_file(file_path, content):
with open(file_path, "r+") as file: with open(file_path, "r+") as file:
@ -38,7 +55,7 @@ print("hello")
# -- Project information ----------------------------------------------------- # -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = "fnk0066-docs" project = "fnk0047-docs"
copyright = "2016 - " + str(datetime.now().year) + ", support@freenove.com" copyright = "2016 - " + str(datetime.now().year) + ", support@freenove.com"
author = "freenove" author = "freenove"
release = "v1.0" release = "v1.0"
@ -67,8 +84,8 @@ html_theme = "sphinx_rtd_theme"
html_static_path = ["_static"] html_static_path = ["_static"]
html_favicon = "_static/images/freenove_logo_tag_icon.png"
html_logo = "freenove-logo.png" html_logo = "_static/images/freenove_logo_home_button.png"
html_theme_options = { html_theme_options = {
"collapse_navigation": False, "collapse_navigation": False,
"logo_only": True, "logo_only": True,
@ -79,6 +96,11 @@ html_theme_options = {
# 'style_nav_header_background': '#005500', # 'style_nav_header_background': '#005500',
} }
# multi-language docs
language = 'en'
locale_dirs = ['../locales/'] # path is example but recommended.
gettext_compact = False # optional.
gettext_uuid = True # optional.
rst_prolog = """ rst_prolog = """
.. include:: <s5defs.txt> .. include:: <s5defs.txt>
@ -99,18 +121,24 @@ prolog = "\n".join(
print(rst_prolog) print(rst_prolog)
del frozen_locals del frozen_locals
html_css_files = [ html_css_files = [
"css/color-roles.css", 'https://cdn.jsdelivr.net/gh/Freenove/freenove-docs/docs/source/_static/css/color-roles.css',
'https://cdn.jsdelivr.net/gh/Freenove/freenove-docs/docs/source/_static/css/custom.css',
'https://cdn.jsdelivr.net/gh/Freenove/freenove-docs/docs/source/_static/css/navigationStyle.css',
]
html_js_files = [
'https://cdn.jsdelivr.net/gh/Freenove/freenove-docs/docs/source/_static/js/custom.js',
# 'js/custom.js'
] ]
html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "/")
intersphinx_mapping = { intersphinx_mapping = {
"rpi-starter-kit": ("https://freenove-docs2.readthedocs.io/projects/fnk0066/en/latest/", None), # "rpi-starter-kit": ("https://freenove-docs2.readthedocs.io/projects/fnk0066/en/latest/", None),
} }
intersphinx_disabled_reftypes = ["*"] intersphinx_disabled_reftypes = ["*"]
def setup(app): def setup(app):
pass pass
app.add_css_file("css/custom.css") # app.add_css_file("css/custom.css")

View File

@ -1,14 +1,36 @@
###################################################### ######################################################
Freenove ESP32 WROVER Board FNK0060
###################################################### ######################################################
FNK0060 Freenove ESP32 WROVER Board
********************************* ******************************************************
Download
====================================================
Please download the full resources including code examples, datasheets, etc. first.
`Click to download <https://github.com/Freenove/Freenove_ESP32_WROVER_Board/archive/refs/heads/master.zip>`_
Support
====================================================
We are fully responsible for our products!
Please feel free to send us an email if you have any concerns,
whether they are questions before buying or problems in use.
`support@freenove.com <support@freenove.com>`_
In general, we will reply to you within one working day.
Documentation
====================================================
This product provides the following online documents.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
:caption: Language
:glob:
fnk0060/codes/C.rst fnk0060/codes/C.rst
fnk0060/codes/Python.rst fnk0060/codes/Python.rst

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB