# 11 May - 15 May 2020
###### tags: `Study Note`
## Monday, 11 May 2020
the "converter" able to generate the index file.
the code quality is not good enough, will focus on finishing the functional first then the code quality.
## Tuesday, 12 May 2020
Text conversion finished, will implement the images for tomorrow.
Problems:

will try to reduce the warning
## Wednesday, 13 May 2020
add the image attachment function to the puthon code
## Thursday, 14 May 2020
- meeting with zhimin
- Code:
:::spoiler
```
import re
f = open('O-RAN_FH_Lib_SAS.rst', encoding="utf8")
# Collecting the contents
contents_lock = False
content_list = []
h1_count = 0
h2_count = 0
h3_count = 0
appendix_count = 0
iter = 1
while(True):
iter += 1
lines = f.readline()
if (lines != '\n'):
if (lines == "Figures\n"):
break
print(iter)
lines = lines.rstrip() # delete new line
words = lines.split(' ') # to check wether the line is content list
print(words[0])
# check before contents
if not(contents_lock):
if words[0] == "Contents":
contents_lock = True
print("udah")
continue
sections = words[0].split('.')
# check if its h1
appendix_rules = [words[0] == "Appendix"]
if(all(appendix_rules)):
h1_count += 1
content_list.append([h1_count,
0,
0,
" ".join(words[0:-1])])
continue
h1_rules = [len(sections) == 2,
sections[0].isdecimal(),
sections[1].isdecimal(),
sections[1] == "0"]
if all(h1_rules):
print("Heading 1")
print("CL = ", len(content_list))
h1_count += 1
content_list.append([h1_count,
0,
0,
" ".join(words[1:-1])])
h2_count = 0 # clear h2 counts
continue
append_sub_rules = [len(sections) == 2,
sections[0] == "A",
sections[1].isdecimal()]
if(all(append_sub_rules)):
appendix_count += 1
appendix_sub_count = 0
content_list.append([h1_count,
appendix_count,
0,
" ".join(words[1:-1])])
continue
# check if its h2
h2_rules = [len(sections) == 2,
sections[0].isdecimal(),
sections[1].isdecimal(),
sections[1] != "0"]
if(all(h2_rules)):
print("Heading 2 ")
h2_count += 1
content_list.append([h1_count,
h2_count,
0,
" ".join(words[1:-1])])
h3_count = 0 # clear h3 counts
continue
# check if its h3
h3_rules = [len(sections) == 3,
sections[0].isdecimal(),
sections[1].isdecimal(),
sections[1] != "0",
sections[2].isdecimal()]
if(all(h3_rules)):
print("Heading 3")
h3_count += 1
content_list.append([h1_count,
h2_count,
h3_count,
" ".join(words[1:-1])])
continue
append_sub_sub_rules = [sections[0] == "A",
sections[1].isdecimal(),
sections[2].isdecimal()]
if(all(append_sub_rules)):
appendix_sub_count += 1
content_list.append([h1_count,
appendix_count(),
appendix_sub_count(),
" ".join(words[1:-1])])
continue
content_list.append([0,0,0,"ENDOFFILE"])
for i in range(len(content_list)):
print(content_list[i])
# Finish Collecting the contents
f.seek(0) # Reset the files
# Generate the index file
scroll_to = content_list[0][3]
index_format = ["Contents",
"Revision History"]
file_header = """.. Copyright (c) 2019 Intel
..
.. Licensed under the Apache License, Version 2.0 (the "License");
.. you may not use this file except in compliance with the License.
.. You may obtain a copy of the License at
..
.. http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
"""
new_file = open("index.rst", "w", encoding="utf-8")
new_file.write(file_header)
lines = f.readline()
new_file.write(lines)
new_file.write("=" * (len(lines)-1)+"\n")
lines = f.readline()
while(lines != index_format[0]+"\n"):
if(lines == "\n"):
lines = f.readline()
continue
new_file.write("| " +lines)
lines = f.readline()
# Contents
new_file.write(""".. toctree::
:maxdepth: 2
:caption: Contents:
""")
for i in range(len(content_list)):
if((content_list[i][1] == 0)
and (content_list[i][2] == 0)):
new_file.write(" "+content_list[i][3].replace(' ', '-').replace(',', '')+".rst\n")
# Others headings
next_format = index_format[1]
lines = f.readline()
skip_line = True
while lines != "Introduction\n":
if skip_line:
if lines == "Revision History\n":
new_file.write("\n\n" + lines)
new_file.write("-" * (len(lines)-1)+"\n")
skip_line = False
lines = f.readline()
continue
new_file.write(lines)
lines = f.readline()
while lines == "\n":
lines = f.readline()
# Generate the rest files
next_h1 = ""
next_h2 = ""
list_h1 = []
for i in range(len(content_list)):
if((content_list[i][1] == 0)
and (content_list[i][2] == 0)):
list_h1.append(i)
print(content_list[i][3])
print(list_h1)
i = 0;
appendix_num = 1
appendix_section = False
while(lines != ""):
if lines == "-\n":
lines = f.readline()
new_file.write("\n\n")
elif(lines == content_list[list_h1[i]][3]+"\n"):
print(content_list[list_h1[i]][3])
# close file
new_file.close()
del new_file
new_file = 0
file_name = content_list[list_h1[i]][3].replace(' ', '-').replace(',', '')+".rst"
print(file_name)
new_file = open(file_name, "w", encoding="utf-8")
new_file.write(file_header)
new_file.write(lines)
elif(lines == "="*len(content_list[list_h1[i]][3])+"\n"):
new_file.write(lines)
new_file.write("""
.. contents::
:depth: 3
:local:
""")
# add iteration
i = i+1
print("next: ", content_list[list_h1[i]][3])
elif "Appendix "+ str(appendix_num) + " " + processed_lines == content_list[list_h1[i]][3]:
new_file.close()
del new_file
new_file = 0
file_name = ("Appendix "+ str(appendix_num) + " " + processed_lines).replace(' ', '-').replace(',', '')+".rst"
new_file = open(file_name, "w", encoding="utf-8")
new_file.write(file_header)
new_file.write(processed_lines+"\n")
new_file.write("="*len(processed_lines)+"\n")
appendix_section = True
appendix_space = []
for j in range(list_h1[i]+1, len(content_list)):
if content_list[j][1] > 0 and content_list[j][2] == 0:
appendix_space.append(j)
appendix_iter = 0
i = i+1
appendix_num += 1
elif appendix_section == True:
if(processed_lines == content_list[appendix_space[appendix_iter]][3]):
new_file.write("A."+str(content_list[appendix_space[appendix_iter]][1])+" "+processed_lines+"\n")
new_file.write("-"*len("A."+str(content_list[list_h1[i]][1])+" "+processed_lines))
appendix_iter += 1
if len(appendix_space) == appendix_iter:
appendix_section = False
else:
if re.match(r"Figure [0-9]*[.] +", lines):
image_path = "images/" + re.sub(r"[\s\/\\]","-",re.sub(r"Figure [0-9]*[.] ", "", lines).strip())+".jpg"
new_file.write(".. image:: " + image_path + "\n")
new_file.write(" :width: 400\n")
new_file.write(" :alt: " + lines + "\n")
print(lines)
new_file.write(lines.strip() + "\n")
else:
if re.match(r"Figure [0-9]*[.] +", lines):
image_path = "images/" + re.sub(r"[\s\/\\]","-",re.sub(r"Figure [0-9]*[.] ", "", lines).strip())+".jpg"
new_file.write(".. image:: " + image_path + "\n")
new_file.write(" :width: 600\n")
new_file.write(" :alt: " + lines + "\n")
print(lines)
new_file.write(lines.strip() + "\n")
lines = f.readline()
processed_lines = " ".join(lines.split()[1:])
new_file.close()
```
:::
## Friday, 15 May 2020
try to convert the FAPI document