Commit 52ea4664 authored by Striver's avatar Striver
Browse files

Доработал команду создания документации

parent 9d27bf8e
......@@ -472,7 +472,7 @@
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
Для создания журнала требуется определить общий уровень (используемый по-умолчанию).
Для отдельных модулей можно определить собственный уровень в ассоциативном массиве.
......@@ -487,7 +487,7 @@
</p>
</div>
<div class="ddoc_examples">
<h4>Examples</h4>
<h4>Примеры:</h4>
<p class="para">
<section class="code_listing">
......@@ -539,7 +539,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -571,7 +571,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -603,7 +603,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -624,7 +624,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
Создаёт поток, ведущий журнал
......@@ -632,7 +632,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_params">
<h4>Parameters</h4>
<h4>Параметры:</h4>
<table cellspacing="0" cellpadding="5" border="0" class="graybox">
<tbody>
<tr class="ddoc_param_row">
......@@ -694,7 +694,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -727,7 +727,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -750,7 +750,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_params">
<h4>Parameters</h4>
<h4>Параметры:</h4>
<table cellspacing="0" cellpadding="5" border="0" class="graybox">
<tbody>
<tr class="ddoc_param_row">
......@@ -772,7 +772,7 @@ Thread.sleep(msecs(100));
</table>
</div>
<div class="ddoc_returns">
<h4>Return Value</h4>
<h4>Возвращаемое значение:</h4>
<p class="para">
уровни модулей с типом <b>УровниЖурнала</b>[string]
......@@ -781,7 +781,7 @@ Thread.sleep(msecs(100));
</div>
<div class="ddoc_section">
<p class="para">
<span class="ddoc_section_h">Note:</span>
<span class="ddoc_section_h">Замечание:</span>
побочное действие: в случае ошибок названия соответствующих модулей
сохраняются в массиве <a href="#ошибки_конвертации_уровней_модулей">ошибки_конвертации_уровней_модулей</a>
</p>
......@@ -799,7 +799,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -820,7 +820,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
Преобразует параметры со строковыми уровнями журналирования в значения с типом
<a href="#УровниЖурнала">УровниЖурнала</a>,
......@@ -835,7 +835,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_params">
<h4>Parameters</h4>
<h4>Параметры:</h4>
<table cellspacing="0" cellpadding="5" border="0" class="graybox">
<tbody>
<tr class="ddoc_param_row">
......@@ -897,7 +897,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -918,7 +918,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_params">
<h4>Parameters</h4>
<h4>Параметры:</h4>
<table cellspacing="0" cellpadding="5" border="0" class="graybox">
<tbody>
<tr class="ddoc_param_row">
......@@ -971,7 +971,7 @@ Thread.sleep(msecs(100));
</table>
</div>
<div class="ddoc_examples">
<h4>Examples</h4>
<h4>Примеры:</h4>
<p class="para">
<section class="code_listing">
......@@ -999,7 +999,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -1020,7 +1020,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
Если в журнал отправляется длинный многострочный текст в качестве записи,
то его лучше перед отправкой в журнал пропустить через эту функцию,
......@@ -1030,7 +1030,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_params">
<h4>Parameters</h4>
<h4>Параметры:</h4>
<table cellspacing="0" cellpadding="5" border="0" class="graybox">
<tbody>
<tr class="ddoc_param_row">
......@@ -1052,7 +1052,7 @@ Thread.sleep(msecs(100));
</table>
</div>
<div class="ddoc_returns">
<h4>Return Value</h4>
<h4>Возвращаемое значение:</h4>
<p class="para">
Текст с отступами в начале строк, пригодный для отправки в журнал.
</p>
......@@ -1070,7 +1070,7 @@ Thread.sleep(msecs(100));
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -1092,7 +1092,7 @@ Thread.sleep(msecs(100));
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
Обычно вызывать не требуется, при выходе из программы (или если
в ней случилась ошибка) журнал корректно сохраняется. Функция добавлена
......
......@@ -476,7 +476,7 @@
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -497,10 +497,11 @@
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
Для создания экземпляра структуры необходимо определить кортеж <b>std.meta.AliasSeq</b> следующего формата: <br>
</p>
<section class="code_listing">
<div class="code_sample">
<div class="dlang">
......@@ -516,12 +517,12 @@
</div>
</div>
</section>
</p>
<p class="para">
Тип кортежа AliasSeq необязательно импортировать отдельно, он импортирован публично в этом модуле.
<br><br>
Допустимые типы для свойств структуры <b><code class="code">Настройки</code></b>:
</p>
<section class="code_listing">
<div class="code_sample">
<div class="dlang">
......@@ -532,7 +533,6 @@
</div>
</div>
</section>
</p>
<p class="para">
Строковые значения необходимо обрамлять экранированными кавычками \" (как в примере вверху).
<br><br>
......@@ -541,6 +541,7 @@
Отсутствующие в файле свойства (или те, что загружались с ошибкой) остаются со значением по-умолчанию.
Доступ к свойству осуществляется через @property-метод с именем свойства:
</p>
<section class="code_listing">
<div class="code_sample">
<div class="dlang">
......@@ -551,7 +552,6 @@
</div>
</div>
</section>
</p>
<p class="para">
Свойства реализованы в режиме только для чтения.
</p>
......@@ -567,7 +567,7 @@
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -600,7 +600,7 @@
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -632,7 +632,7 @@
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -653,7 +653,7 @@
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
В случае отсутствия файла или ошибки чтения выводится соответствующее
сообщение, а свойства остаются со значениями по-умолчанию.
......@@ -662,7 +662,7 @@
</p>
</div>
<div class="ddoc_params">
<h4>Parameters</h4>
<h4>Параметры:</h4>
<table cellspacing="0" cellpadding="5" border="0" class="graybox">
<tbody>
<tr class="ddoc_param_row">
......@@ -710,7 +710,7 @@
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -731,7 +731,7 @@
</p>
</div>
<div class="ddoc_description">
<h4>Discussion</h4>
<p class="para">
Метод определён для целей тестирования, обычно в структуре <b>Настройки</b>
используется метод <a href="#Настройки.прочитать_настройки_из_файла">прочитать_настройки_из_файла</a>.
......@@ -745,7 +745,7 @@
</p>
</div>
<div class="ddoc_params">
<h4>Parameters</h4>
<h4>Параметры:</h4>
<table cellspacing="0" cellpadding="5" border="0" class="graybox">
<tbody>
<tr class="ddoc_param_row">
......@@ -782,7 +782,7 @@
</div>
<div class="ddoc_section">
<p class="para">
<span class="ddoc_section_h">Note:</span>
<span class="ddoc_section_h">Замечание:</span>
В случае, если при преобразовании типа существующего свойства произошла ошибка,
имя этого свойства записывается в массив <b>ошибочные_переменные</b>, а у самого
свойства остаётся значение по-умолчанию.
......@@ -801,7 +801,7 @@
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......@@ -833,7 +833,7 @@
</div><div class="ddoc_decl">
<section class="section">
<div class="declaration">
<h4>Declaration</h4>
<div class="dlang">
<p class="para">
<code class="code">
......
import sys #, os
from bs4 import BeautifulSoup
import sys, os, re #
#from bs4 import BeautifulSoup
def исправить_description(ddoc_description):
return
НОВЫЕ_ЗАГОЛОВКИ = {
"<h4>Declaration</h4>":"",
"<h4>Discussion</h4>":"",
"<h4>Parameters</h4>":"<h4>Параметры:</h4>",
"<h4>Note:</h4>":"<h4>Примечание:</h4>",
'<span class="ddoc_section_h">Note:</span>':'<span class="ddoc_section_h">Замечание:</span>',
"<h4>Return Value</h4>":"<h4>Возвращаемое значение:</h4>",
"<h4>Examples</h4>":"<h4>Примеры:</h4>",
}
def исправить_документацию(имя_файла, изменить_имя_файла=False):
текст = open(имя_файла, encoding="utf8").read()
#Исправляем косяк вложенности тега <section> в тэг <p>. Браузеры такое не поддерживают
reg = re.compile('(<section class="code_listing">.+?</section>)', re.DOTALL)
соответсвия = reg.finditer(текст)
границы = []
for соответсвие in соответсвия:
границы.append((соответсвие.start(), соответсвие.end()))
границы.reverse()
#print("границы = ", границы)
for начало, конец in границы:
текст3 = текст[конец:]
if текст3.lstrip()[:2] == "</":
continue
текст1 = текст[:начало]
текст2 = текст[начало:конец]
текст = текст1 + " </p>\n" + текст2 + '\n <p class="para">' + текст3
#Исправляем косяк со ссылками. Случается внутри косяка вложенности тега <section> в тэг <p>
reg=re.compile(r'<a href="#<code class="code">(?P<объект>[\w_]+)</code>\.(?P<член>[\w_]+)">(?P<текст>[\w_]+)</a>')
текст=reg.sub(r'<a href="#\g<объект>.\g<член>">\g<текст></a>', текст)
#Перевод заголовков на русский и удаление ненужных.
for старый_заголовок, новый_заголовок in НОВЫЕ_ЗАГОЛОВКИ.items():
текст = текст.replace(старый_заголовок, новый_заголовок)
#Сохраняем результат
if изменить_имя_файла:
разделённое_имя_файла = os.path.split(имя_файла)
новое_имя_файла = разделённое_имя_файла[0] + os.sep + "_" + разделённое_имя_файла[1]
else:
новое_имя_файла = имя_файла
open(новое_имя_файла, "w", encoding="utf8").write(текст)
#print(новое_имя_файла)
def исправить_документацию(имя_файла):
текст = open(имя_файла, encoding="utf8").read()
суп=BeautifulSoup(текст, "lxml")
def main():
try:
имя_файла = sys.argv[1]
except KeyError:
print("введите имя файла!")
sys.exit(1)
исправить_документацию(имя_файла)
if __name__ == __main__:
main()
\ No newline at end of file
try:
имя_файла = sys.argv[1]
except KeyError:
print("введите имя файла!")
sys.exit(1)
исправить_документацию(имя_файла, изменить_имя_файла=False)
if __name__ == "__main__":
main()
dmd -D -o- -Dd=doc my_utils/nastroyki_struct.d
dmd -D -o- -Dd=doc my_utils/journal.d
\ No newline at end of file
python3 fix_doc.py doc/nastroyki_struct.html
dmd -D -o- -Dd=doc my_utils/journal.d
python3 fix_doc.py doc/journal.html
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment