Download index.html from maralvic/basic: direct link, hf CLI and curl.
- Browser
- Download file 25.3 kB
-
https://huggingface.co/spaces/maralvic/basic/resolve/main/index.html
- Command line
-
hf download hf://spaces/maralvic/basic/index.html
-
curl -L -o index.html https://huggingface.co/spaces/maralvic/basic/resolve/main/index.html
25.3 kB
| <html lang="pt-BR"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Prof. Marcelo Vicente | Tributarista - @profmarcelovicente</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| @import url('https://fonts.cdnfonts.com/css/arial-rounded-mt'); | |
| * { | |
| font-family: 'Arial Rounded MT', sans-serif; | |
| } | |
| .search-container { | |
| background-color: white; | |
| padding: 20px; | |
| border-radius: 8px; | |
| box-shadow: 0 2px 4px rgba(0,0,0,0.1); | |
| margin-bottom: 20px; | |
| display: flex; | |
| } | |
| input { | |
| padding: 10px; | |
| flex-grow: 1; | |
| border: 1px solid #ddd; | |
| border-radius: 4px; | |
| font-size: 16px; | |
| } | |
| .search-container button { | |
| padding: 10px 15px; | |
| border: none; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| font-size: 16px; | |
| margin-left: 10px; | |
| } | |
| .result { | |
| background-color: white; | |
| padding: 20px; | |
| border-radius: 8px; | |
| box-shadow: 0 2px 4px rgba(0,0,0,0.1); | |
| margin-top: 20px; | |
| } | |
| .city-item { | |
| margin: 10px 0; | |
| padding: 10px; | |
| border-bottom: 1px solid #eee; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .access-btn { | |
| background-color: #2196F3; | |
| padding: 5px 10px; | |
| color: white; | |
| text-decoration: none; | |
| border-radius: 4px; | |
| font-size: 14px; | |
| } | |
| .access-btn:hover { | |
| background-color: #0b7dda; | |
| } | |
| .error { | |
| color: #f44336; | |
| } | |
| .loading { | |
| color: #666; | |
| font-style: italic; | |
| } | |
| .loader { | |
| border: 4px solid #f3f3f3; | |
| border-top: 4px solid #3498db; | |
| border-radius: 50%; | |
| width: 30px; | |
| height: 30px; | |
| animation: spin 1s linear infinite; | |
| margin: 20px auto; | |
| } | |
| @keyframes spin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| .loading-container { | |
| text-align: center; | |
| padding: 20px; | |
| } | |
| <!-- Original Section --> | |
| .profmarcelovicente-bg { | |
| background-color: #5466DD; | |
| } | |
| .profmarcelovicente-text { | |
| color: #667eea; | |
| } | |
| .profmarcelovicente-border { | |
| border-color: #667eea; | |
| } | |
| .profmarcelovicente-btn { | |
| background-color: #6778EE; | |
| color: white; | |
| } | |
| .profmarcelovicente-btn:hover { | |
| background-color: #5b68c7; | |
| } | |
| .dropdown:hover .dropdown-menu { | |
| display: block; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| .hero-pattern { | |
| background-image: radial-gradient(#2b6cb0 1px, transparent 1px); | |
| background-size: 20px 20px; | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-50"> | |
| <!-- Header --> | |
| <header class="text-white shadow-lg" style="background-color: #5466DD;"> | |
| <div class="container mx-auto px-4 py-3 flex justify-between items-center"> | |
| <div class="text-xl"><a href="https://marcelovicente.prof" style="color: #fff;text-decoration: none;" target="_self" >@profmarcelovicente</a></div> | |
| <div class="flex space-x-4"> | |
| <a href="https://instagram.com/profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-instagram text-2xl"></i> | |
| </a> | |
| <a href="https://facebook.com/profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-facebook text-2xl"></i> | |
| </a> | |
| <a href="https://youtube.com/@profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-youtube text-2xl"></i> | |
| </a> | |
| <a href="https://www.linkedin.com/company/profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-linkedin text-2xl"></i> | |
| </a> | |
| </div> | |
| </div> <!-- Close grid div --> | |
| </header> | |
| <!-- Hero Section --> | |
| <section class="text-white bg-cover bg-center" style="background-image: url('https://marcelovicente.prof/img/capa_02.png')"> | |
| <div class="bg-blue-900 bg-opacity-70 py-2"> | |
| <div class="container mx-auto px-4 text-center py-8"> | |
| <h1 class="text-4xl md:text-5xl mb-6">Negociações Tributárias nos Municípios e no DF</h1> | |
| <p class="text-xl md:text-2xl mb-8">Confira as modalidades de negociação disponíveis nas Unidades Federadas</p> | |
| <div class="mt-8 text-center"> | |
| <a href="https://marcelovicente.prof/live1947" target="_blank" class="inline-block profmarcelovicente-btn text-xl font-semibold px-8 py-3 rounded-full hover:shadow-md transition-all"> | |
| <i class="fas fa-rocket"></i> Quero me tornar expert! | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Content Section --> | |
| <section class="container mx-auto px-4 py-12 max-w-4xl"> | |
| <div class="bg-white rounded-lg shadow-lg p-8 mb-8"> | |
| <h2 class="text-2xl font-bold profmarcelovicente-text mb-6">As Negociações podem ser a solução para débitos fiscais municipais</h2> | |
| <p class="text-gray-700 mb-4">As negociações tributárias, como parcelamentos e transações — já regulamentadas por muitos municípios —, são mecanismos eficazes para regularizar débitos fiscais, oferecendo desde descontos expressivos até a exclusão total de cobranças indevidas.</p> | |
| <p class="text-gray-700 mb-4">No entanto, sua aplicação exige domínio técnico em todas as etapas, da análise à homologação, para evitar nulidades e garantir resultados vantajosos aos contribuintes. A atuação de um advogado especializado é indispensável para identificar irregularidades, contestar exigências ilegais e definir a estratégia mais adequada, assegurando segurança jurídica e maximizando benefícios.</p> | |
| <p class="text-gray-700 mb-6">Dominar esse nicho permite transformar passivos fiscais em oportunidades, agregando valor ao seu escritório e entregando soluções concretas aos clientes.</p> | |
| <div class="text-center mb-8"> | |
| <p class="text-gray-700 font-semibold mb-4">Quer transformar passivos fiscais em oportunidades para seus clientes? Eu te ensino a dominar esse nicho e alavancar seus resultados!</p> | |
| <a href="https://marcelovicente.prof/live1947" target="_blank" class="inline-block profmarcelovicente-btn text-xl font-semibold px-8 py-3 rounded-full hover:shadow-md transition-all"> | |
| <i class="fas fa-rocket"></i> Quero alavancar! | |
| </a> | |
| </div> | |
| </div> | |
| <div class="bg-white rounded-lg shadow-lg p-8"> | |
| <h3 class="text-xl font-semibold profmarcelovicente-text mb-4 text-center">Confira se no município em que você atua existem programas de parcelamento ou transações tributárias:</h3> | |
| <div class="search-container"> | |
| <input type="text" id="cityInput" placeholder="Digite o nome de uma cidade e pressione Enter"> | |
| <button id="searchBtn" class="profmarcelovicente-btn"><i class="fas fa-search"></i> Buscar</button> | |
| </div> | |
| <div id="resultContainer" class="result" style="display: none;"> | |
| <div id="resultContent"></div> | |
| </div> | |
| <script> | |
| let cachedMunicipios = null; | |
| let currentSearchController = null; | |
| // Adiciona evento de tecla no input | |
| document.getElementById('cityInput').addEventListener('keypress', function(e) { | |
| if (e.key === 'Enter') { | |
| searchCity(); | |
| } | |
| }); | |
| document.getElementById('searchBtn').addEventListener('click', searchCity); | |
| async function searchCity() { | |
| // Cancela a pesquisa anterior se existir | |
| if (currentSearchController) { | |
| currentSearchController.abort(); | |
| } | |
| const input = document.getElementById('cityInput').value.trim(); | |
| const resultContainer = document.getElementById('resultContainer'); | |
| const resultContent = document.getElementById('resultContent'); | |
| resultContainer.style.display = 'block'; | |
| resultContent.innerHTML = ` | |
| <div class="loading-container"> | |
| <div class="loader"></div> | |
| <p>Buscando cidades...</p> | |
| </div> | |
| `; | |
| if (!input) { | |
| resultContent.innerHTML = '<p class="error">Por favor, digite o nome de uma cidade.</p>'; | |
| return; | |
| } | |
| try { | |
| // Cria um novo AbortController para esta pesquisa | |
| const controller = new AbortController(); | |
| currentSearchController = controller; | |
| if (!cachedMunicipios) { | |
| const response = await fetch('https://servicodados.ibge.gov.br/api/v1/localidades/municipios', { | |
| signal: controller.signal | |
| }); | |
| cachedMunicipios = await response.json(); | |
| } | |
| const normalizedInput = normalizeString(input).toLowerCase(); | |
| const matchedCities = cachedMunicipios.filter(municipio => | |
| normalizeString(municipio.nome).toLowerCase().includes(normalizedInput) | |
| ).map(municipio => ({ | |
| name: municipio.nome, | |
| state: municipio.microrregiao.mesorregiao.UF.sigla | |
| })); | |
| if (controller.signal.aborted) return; | |
| if (matchedCities.length === 0) { | |
| resultContent.innerHTML = `<p class="error">O nome "${input}" não corresponde a nenhuma cidade brasileira. Tente outro.</p>`; | |
| return; | |
| } | |
| resultContent.innerHTML = ` | |
| <div class="loading-container"> | |
| <div class="loader"></div> | |
| <p>Aguarde enquanto os acessos estão sendo gerados...</p> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5 mt-4"> | |
| <div id="progressBar" class="bg-blue-600 h-2.5 rounded-full" style="width: 0%"></div> | |
| </div> | |
| </div> | |
| `; | |
| // Update progress bar during URL generation | |
| const progressBar = document.getElementById('progressBar'); | |
| const progressInterval = setInterval(() => { | |
| const currentWidth = parseInt(progressBar.style.width) || 0; | |
| const newWidth = Math.min(currentWidth + 5, 95); | |
| progressBar.style.width = `${newWidth}%`; | |
| }, 300); | |
| await displayResults(matchedCities, input, resultContent, controller); | |
| // Complete progress bar and remove it | |
| clearInterval(progressInterval); | |
| progressBar.style.width = '100%'; | |
| setTimeout(() => { | |
| progressBar.style.display = 'none'; | |
| }, 500); | |
| } catch (error) { | |
| if (error.name !== 'AbortError') { | |
| resultContent.innerHTML = '<p class="error">Erro ao carregar dados das cidades. Tente novamente mais tarde.</p>'; | |
| console.error("Erro na busca:", error); | |
| } | |
| } finally { | |
| currentSearchController = null; | |
| } | |
| } | |
| async function displayResults(matchedCities, input, resultElement, controller) { | |
| if (controller.signal.aborted) return; | |
| if (matchedCities.length === 1) { | |
| const city = matchedCities[0]; | |
| const cityUrl = await generateAccessibleUrl(city.name, city.state, controller); | |
| if (controller.signal.aborted) return; | |
| resultElement.innerHTML = ` | |
| <p>Você está procurando pela cidade de ${city.name}, ${city.state}?</p> | |
| <div class="city-item"> | |
| <span>${city.name}, ${city.state}</span> | |
| ${cityUrl ? | |
| `<a href="${cityUrl}" class="access-btn" target="_blank">Acessar</a>` : | |
| `<span class="error">Acesso não disponível</span>`} | |
| </div> | |
| `; | |
| } else { | |
| resultElement.innerHTML = `<p>Foram encontradas ${matchedCities.length} cidades com o nome "${input}":</p>`; | |
| for (const city of matchedCities) { | |
| if (controller.signal.aborted) return; | |
| const cityUrl = await generateAccessibleUrl(city.name, city.state, controller); | |
| const cityElement = document.createElement('div'); | |
| cityElement.className = 'city-item'; | |
| cityElement.innerHTML = ` | |
| <span>${city.name}, ${city.state}</span> | |
| ${cityUrl ? | |
| `<a href="${cityUrl}" class="access-btn" target="_blank">Acessar</a>` : | |
| `<span class="error">Acesso não disponível</span>`} | |
| `; | |
| resultElement.appendChild(cityElement); | |
| } | |
| } | |
| } | |
| function normalizeString(str) { | |
| return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '') | |
| .replace(/ç/g, 'c') | |
| .replace(/Ç/g, 'C'); | |
| } | |
| async function generateAccessibleUrl(cityName, state, controller) { | |
| const baseVariations = [ | |
| normalizeString(cityName).toLowerCase().replace(/[\s-]/g, ''), | |
| normalizeString(cityName).toLowerCase().replace(/(\sde|\sdo|\sda|\sdos|\sdas|\s)/g, ''), | |
| getCommonShortName(cityName) | |
| ]; | |
| const prefixVariations = ['', 'portal.', 'www.portal.', 'prefeitura.']; | |
| const testedUrls = new Set(); | |
| const validUrls = []; | |
| for (const base of baseVariations) { | |
| for (const prefix of prefixVariations) { | |
| if (controller.signal.aborted) return null; | |
| const url = `https://${prefix}${base}.${state.toLowerCase()}.gov.br`; | |
| if (!testedUrls.has(url)) { | |
| testedUrls.add(url); | |
| const isAccessible = await checkUrlAccessibility(url, controller); | |
| if (isAccessible) { | |
| validUrls.push(url); | |
| } | |
| } | |
| } | |
| } | |
| return validUrls.length > 0 ? validUrls[0] : null; | |
| } | |
| async function checkUrlAccessibility(url, controller) { | |
| try { | |
| const response = await fetch(url, { | |
| method: 'HEAD', | |
| mode: 'no-cors', | |
| signal: controller.signal | |
| }); | |
| return true; | |
| } catch (e) { | |
| if (e.name !== 'AbortError') { | |
| console.warn(`URL não acessível: ${url}`); | |
| } | |
| return false; | |
| } | |
| } | |
| function getCommonShortName(cityName) { | |
| const commonShortNames = { | |
| 'são paulo': 'sp', | |
| 'rio de janeiro': 'rj', | |
| 'belo horizonte': 'bh', | |
| 'porto alegre': 'poa', | |
| 'são bernardo do campo': 'saobernardo', | |
| 'santo andré': 'santoandre', | |
| 'são josé dos campos': 'sjc', | |
| 'são josé do rio preto': 'riopreto' | |
| }; | |
| const lowerName = cityName.toLowerCase(); | |
| return commonShortNames[lowerName] || | |
| normalizeString(cityName).toLowerCase().replace(/[\s-]/g, '').slice(0, 10); | |
| } | |
| </script> | |
| <span style="display: inline-block; height: 0;"> | |
| </span> | |
| <!-- Torne-se um Expert Section --> | |
| <div class="mb-12"> | |
| <h2 class="text-2xl font-bold profmarcelovicente-text mb-6">Como se tornar um Expert em Negociações?</h2> | |
| <div class="text-center mb-12"> | |
| <p class="text-gray-700">A especialização nesse nicho de Direito Tributário eleva o prestígio do seu escritório. Clientes satisfeitos são seus melhores embaixadores, construindo uma reputação de solucionador de problemas.</p><div class="mt-12 text-center"> | |
| <a href="https://marcelovicente.prof/live1947" target="_blank" class="inline-block text-xl font-semibold px-8 py-3 rounded-full transition-all" style="background-color: #00CC88; color: white; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);"> | |
| <i class="fas fa-play"></i> Quero assistir à Live! | |
| </a> | |
| </div> | |
| <!-- Your new section content goes here --> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> | |
| <div class="bg-white border border-gray-200 rounded-lg p-6 shadow-sm hover:shadow-md transition-shadow"> | |
| <h3 class="text-xl font-bold profmarcelovicente-text mb-3 flex items-center gap-2"> | |
| <i class="fas fa-graduation-cap"></i> | |
| <span>01 Especialize-se</span> | |
| </h3> | |
| <p class="text-gray-700">Domine as nuances das Negociações Tributárias e como aplicá-las</p> | |
| </div> | |
| <div class="bg-white border border-gray-200 rounded-lg p-6 shadow-sm hover:shadow-md transition-shadow"> | |
| <h3 class="text-xl font-bold profmarcelovicente-text mb-3 flex items-center gap-2"> | |
| <i class="fas fa-user-plus"></i> | |
| <span>02 Conquiste clientes</span> | |
| </h3> | |
| <p class="text-gray-700">Ofereça soluções que outros profissionais não conhecem</p> | |
| </div> | |
| <div class="bg-white border border-gray-200 rounded-lg p-6 shadow-sm hover:shadow-md transition-shadow"> | |
| <h3 class="text-xl font-bold profmarcelovicente-text mb-3 flex items-center gap-2"> | |
| <i class="fas fa-chart-line"></i> | |
| <span>03 Multiplique sua receita</span> | |
| </h3> | |
| <p class="text-gray-700">Transforme conhecimento especializado em resultados financeiros</p> | |
| </div> | |
| <div class="bg-white border border-gray-200 rounded-lg p-6 shadow-sm hover:shadow-md transition-shadow"> | |
| <h3 class="text-xl font-bold profmarcelovicente-text mb-3 flex items-center gap-2"> | |
| <i class="fas fa-star"></i> | |
| <span>04 Diferenciação</span> | |
| </h3> | |
| <p class="text-gray-700">Posicione-se como especialista em Negociações Tributárias</p> | |
| </div> | |
| <div class="bg-white border border-gray-200 rounded-lg p-6 shadow-sm hover:shadow-md transition-shadow"> | |
| <h3 class="text-xl font-bold profmarcelovicente-text mb-3 flex items-center gap-2"> | |
| <i class="fas fa-users"></i> | |
| <span>05 Networking</span> | |
| </h3> | |
| <p class="text-gray-700">Amplie significativamente sua rede de contatos qualificados em âmbito nacional</p> | |
| </div> | |
| <div class="bg-white border border-gray-200 rounded-lg p-6 shadow-sm hover:shadow-md transition-shadow"> | |
| <h3 class="text-xl font-bold profmarcelovicente-text mb-3 flex items-center gap-2"> | |
| <i class="fas fa-medal"></i> | |
| <span>06 Autoridade</span> | |
| </h3> | |
| <p class="text-gray-700">Construa reputação como referência em Negociações Tributárias</p> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Revenue Potential Section --> | |
| <div class="mb-12 rounded-lg p-6 shadow-sm" style="background-color: #00CC88;"> | |
| <p class="text-lg font-semibold text-white mb-4 flex items-center gap-2"> | |
| <i class="fas fa-rocket"></i> | |
| <span>Que tal adicionar de R$ 10.000,00 a R$ 20.000,00 por mês à receita do seu escritório?</span> | |
| </p> | |
| <p class="text-white">A especialização neste nicho pode ser sua chave para conquistar novos clientes e elevar substancialmente seus ganhos.</p> | |
| <p class="text-white mt-2">Clientes que buscam Negociações Tributárias frequentemente têm outras necessidades fiscais e jurídicas, transformando você no parceiro estratégico para demandas futuras, desde planejamento tributário a recuperação de créditos.</p> | |
| </div> | |
| <!-- Final Section --> | |
| <div class="text-center mb-12"> | |
| <p class="text-gray-700 mt-4">Torne-se o especialista indispensável e veja seu escritório prosperar com esta poderosa ferramenta do direito tributário.</p> | |
| <div class="mt-12 text-center"> | |
| <a href="https://marcelovicente.prof/live1947" target="_blank" class="inline-block text-xl font-semibold px-8 py-3 rounded-full transition-all" style="background-color: #00CC88; color: white; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);"> | |
| <i class="fas fa-rocket"></i> Quero Prosperar! | |
| </a> | |
| </div> | |
| <!-- Your new section content goes here --> | |
| </div> | |
| </section> | |
| <!-- Footer --> | |
| <footer class="text-white py-8" style="background-color: #5466DD;"> | |
| <div class="container mx-auto px-4"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <div class="mb-4 md:mb-0"> | |
| <h3 class="text-xl"><a href="https://marcelovicente.prof" style="color: #fff;text-decoration: none;" target="_self" >@profmarcelovicente</a></h3> | |
| <p class="text-blue-200">Prof. Marcelo Vicente | Tributarista </p> | |
| </div> | |
| <div class="flex space-x-6"> | |
| <a href="https://instagram.com/profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-instagram text-2xl"></i> | |
| </a> | |
| <a href="https://facebook.com/profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-facebook text-2xl"></i> | |
| </a> | |
| <a href="https://youtube.com/@profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-youtube text-2xl"></i> | |
| </a> | |
| <a href="https://www.linkedin.com/company/profmarcelovicente" target="_blank" class="transition"> | |
| <i class="fab fa-linkedin text-2xl"></i> | |
| </a> | |
| </div> </div> | |
| <div class="border-t border-[#6778EE] mt-6 pt-6 text-center text-white"> | |
| <p>© 2025 ECJ - Educação Corporativa e Jurídica SS Ltda. Todos os direitos reservados.</p> | |
| </div> | |
| </div> | |
| </footer> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;"><a href="https://marcelovicente.prof" style="color: #fff;text-decoration: underline;" target="_self" >Voltar ao início</a> | <i class="fas fa-rocket"></i> <a href="https://marcelovicente.prof/tta1947" style="color: #fff;text-decoration: underline;" target="_blank" >Fazer a inscrição!</a></p> | |
| </html> |