<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
.release-notes-wrapper {
font-family: Arial, sans-serif;
padding: 20px;
}
.header {
background: #667eea;
color: white;
padding: 15px;
border-radius: 5px;
margin-bottom: 15px;
}
.metadata {
background: #f4f5f7;
padding: 10px;
border-radius: 5px;
margin-bottom: 15px;
}
</style>
</head>
<body>
<div class="release-notes-wrapper">
<div class="header">
<h1 id="page-title">Release Notes</h1>
</div>
<div class="metadata">
<strong>Versão:</strong> <span id="version-display">-</span>
</div>
<div id="widget-container"></div>
</div>
<script>
(function() {
// Mapeamento de versões para Document IDs do Google Docs
// ATUALIZE ESTE MAPEAMENTO com os IDs reais dos seus documentos
const versionToDocId = {
'12.1.2511.2': '1gLo16QDT99iGdaoKyFHBW1n5jF-gt-awBjnSQrBZa3c',
'12.1.2511.1': 'DOCUMENT_ID_AQUI',
'12.1.2507.9': 'DOCUMENT_ID_AQUI',
// Adicione mais mapeamentos aqui
};
// Função para obter versão da página
function getPageVersion() {
// Tenta múltiplas formas
const selectors = [
'h1#title-text',
'.page-title',
'h1',
'[data-page-title]'
];
for (const selector of selectors) {
const element = document.querySelector(selector);
if (element) {
let version = element.textContent.trim();
// Limpar prefixos
version = version.replace(/^Release Notes\s*[-:]?\s*/i, '').trim();
if (version && /^\d+\.\d+\.\d+/.test(version)) {
return version;
}
}
}
// Fallback: URL
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get('title') || null;
}
// Obter versão
const version = getPageVersion();
if (!version) {
document.getElementById('widget-container').innerHTML =
'<p style="color: red;">❌ Versão não identificada. Certifique-se de que o título da página contém a versão.</p>';
return;
}
// Atualizar display
document.getElementById('version-display').textContent = version;
document.getElementById('page-title').textContent = `Release Notes - ${version}`;
// Obter Document ID
const docId = versionToDocId[version];
if (!docId) {
document.getElementById('widget-container').innerHTML =
`<p style="color: orange;">⚠️ Documento não encontrado para versão ${version}.
Adicione o mapeamento no código HTML.</p>`;
return;
}
// Construir URL do Google Doc
const googleDocUrl = `https://docs.google.com/document/d/${docId}/edit?usp=sharing`;
// Criar Widget Connector (para modo de edição)
const widgetCode = `
<ac:structured-macro ac:name="widget" ac:schema-version="1">
<ac:parameter ac:name="url">${googleDocUrl}</ac:parameter>
<ac:parameter ac:name="width">100%</ac:parameter>
<ac:parameter ac:name="height">800</ac:parameter>
</ac:structured-macro>
`;
// Se estiver em visualização, usar iframe
const iframe = document.createElement('iframe');
iframe.src = googleDocUrl.replace('/edit', '/preview');
iframe.width = '100%';
iframe.height = '800';
iframe.style.border = 'none';
iframe.style.borderRadius = '5px';
// Inserir widget
const container = document.getElementById('widget-container');
// Verificar se está em modo de edição (Confluence)
if (window.location.href.includes('editpage.action')) {
// Modo de edição: mostrar código do macro
container.innerHTML = `<pre>${widgetCode}</pre><p>Cole o código acima no editor do Confluence usando o macro Widget Connector.</p>`;
} else {
// Modo de visualização: usar iframe
container.appendChild(iframe);
}
})();
</script>
</body>
</html> |