This commit is contained in:
Kirill Polyakov
2026-02-20 03:55:40 +03:00
parent 236913f902
commit 81ec569f59
7 changed files with 43 additions and 10 deletions

View File

@ -1009,6 +1009,19 @@ bool CHTMLReader::ReadTable(std::vector<NSCSS::CNode>& arSelectors)
if(m_oLightReader.IsEmptyNode())
return false;
if (nullptr != m_pWriter && !m_pWriter->SupportNestedTables())
{
//Временно разруливаем это тут, так как по текущей логике мы сначала
//читаем всю таблицу и её вложенные элементы, а потом приступаем к конвертации,
//поэтому конвертору уже приходят вложенные таблицы, что в MD запрещено
for (std::vector<NSCSS::CNode>::const_reverse_iterator itElement{arSelectors.crbegin() + 1}; itElement < arSelectors.crend(); ++itElement)
if (L"table" == itElement->m_wsName)
return false;
if (nullptr != dynamic_cast<CMDWriter*>(m_pWriter))
((CMDWriter*)m_pWriter)->EnteredTable();
}
CStorageTable oTable;
NSCSS::CCompiledStyle *pStyle = arSelectors.back().m_pCompiledStyle;
@ -1100,6 +1113,9 @@ bool CHTMLReader::ReadTable(std::vector<NSCSS::CNode>& arSelectors)
oTable.SetAlign(pStyle->m_oDisplay.GetHAlign().ToWString());
//------
//TODO:: переписать работу с таблицами без предварительной конвертации ячеек и хранения их внутренних данных
//Читаем содержимое таблицы -> считаем ячейки -> нормализуем таблицу -> конвертим таблицу
int nDeath = m_oLightReader.GetDepth();
while(m_oLightReader.ReadNextSiblingNode(nDeath))
{