{"id":693,"date":"2026-07-28T19:21:15","date_gmt":"2026-07-28T17:21:15","guid":{"rendered":"https:\/\/asociacionindexcom.org\/?page_id=693"},"modified":"2026-08-25T19:20:58","modified_gmt":"2026-08-25T17:20:58","slug":"organizador-y-limpiador-de-bibliografias","status":"publish","type":"page","link":"https:\/\/asociacionindexcom.org\/en\/organizador-y-limpiador-de-bibliografias\/","title":{"rendered":"Bibliography organiser and cleaner"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_block_section\"><span class=\"et_pb_background_pattern\"><\/span>\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\">    <style id=\"icbo2-styles\">\n        .icbo2-tool {\n            --icbo2-red: #c81018;\n            --icbo2-red-dark: #9f0d13;\n            --icbo2-black: #171717;\n            --icbo2-ink: #2c2c2c;\n            --icbo2-muted: #66635f;\n            --icbo2-ivory: #f7f4ee;\n            --icbo2-line: #ddd7cc;\n            color: var(--icbo2-ink);\n            font-family: \"Source Sans 3\", Arial, sans-serif;\n            margin: 32px auto;\n            max-width: 1120px;\n        }\n\n        .icbo2-tool,\n        .icbo2-tool *,\n        .icbo2-tool *::before,\n        .icbo2-tool *::after {\n            box-sizing: border-box;\n        }\n\n        .icbo2-shell {\n            background: var(--icbo2-ivory);\n            border: 1px solid var(--icbo2-line);\n            border-top: 7px solid var(--icbo2-red);\n            border-radius: 18px;\n            box-shadow: 0 20px 55px rgba(23, 23, 23, .10);\n            overflow: hidden;\n        }\n\n        .icbo2-header {\n            padding: 40px 42px 30px;\n        }\n\n        .icbo2-kicker {\n            color: var(--icbo2-red);\n            font-size: 13px;\n            font-weight: 800;\n            letter-spacing: .09em;\n            margin: 0 0 8px;\n            text-transform: uppercase;\n        }\n\n        .icbo2-tool .icbo2-title {\n            color: var(--icbo2-black);\n            font-family: \"Libre Baskerville\", Georgia, serif;\n            font-size: clamp(30px, 4vw, 46px);\n            line-height: 1.12;\n            margin: 0 0 14px;\n        }\n\n        .icbo2-intro {\n            color: var(--icbo2-muted);\n            font-size: 18px;\n            line-height: 1.6;\n            margin: 0;\n            max-width: 820px;\n        }\n\n        .icbo2-workspace {\n            background: #fff;\n            border-top: 1px solid var(--icbo2-line);\n            padding: 34px 42px 42px;\n        }\n\n        .icbo2-field-label {\n            color: var(--icbo2-black);\n            display: block !important;\n            font-size: 17px;\n            font-weight: 800;\n            margin: 0 0 9px !important;\n        }\n\n        .icbo2-tool .icbo2-source,\n        .icbo2-tool .icbo2-output {\n            appearance: none;\n            background: #fff;\n            border: 1px solid #8f8a82 !important;\n            border-radius: 10px !important;\n            color: var(--icbo2-ink) !important;\n            display: block !important;\n            font: 16px\/1.55 \"Source Sans 3\", Arial, sans-serif !important;\n            min-height: 290px;\n            padding: 17px !important;\n            resize: vertical;\n            width: 100% !important;\n        }\n\n        .icbo2-tool textarea::placeholder {\n            color: #8a8781;\n            opacity: 1;\n        }\n\n        .icbo2-tool textarea:focus,\n        .icbo2-tool select:focus,\n        .icbo2-tool button:focus-visible {\n            border-color: var(--icbo2-red) !important;\n            box-shadow: 0 0 0 4px rgba(200, 16, 24, .16) !important;\n            outline: none !important;\n        }\n\n        .icbo2-privacy {\n            align-items: center;\n            color: var(--icbo2-muted);\n            display: flex;\n            font-size: 14px;\n            gap: 8px;\n            line-height: 1.45;\n            margin: 10px 0 0;\n        }\n\n        .icbo2-privacy-mark {\n            background: var(--icbo2-red);\n            border-radius: 50%;\n            color: #fff;\n            display: inline-grid;\n            flex: 0 0 20px;\n            font-size: 12px;\n            font-weight: 800;\n            height: 20px;\n            place-items: center;\n            width: 20px;\n        }\n\n        .icbo2-options {\n            display: grid;\n            gap: 18px;\n            grid-template-columns: repeat(2, minmax(0, 1fr));\n            margin-top: 26px;\n        }\n\n        .icbo2-option-label {\n            color: var(--icbo2-black);\n            display: block;\n            font-size: 15px;\n            font-weight: 750;\n        }\n\n        .icbo2-tool .icbo2-select {\n            appearance: auto;\n            background: #fff;\n            border: 1px solid #8f8a82 !important;\n            border-radius: 8px !important;\n            color: var(--icbo2-ink) !important;\n            display: block !important;\n            font: 16px \"Source Sans 3\", Arial, sans-serif !important;\n            height: 48px !important;\n            margin-top: 7px !important;\n            padding: 8px 12px !important;\n            width: 100% !important;\n        }\n\n        .icbo2-actions {\n            align-items: center;\n            display: flex;\n            flex-wrap: wrap;\n            gap: 12px;\n            margin-top: 28px;\n        }\n\n        .icbo2-tool .icbo2-button {\n            appearance: none;\n            border-radius: 999px !important;\n            cursor: pointer;\n            font: 800 16px \"Source Sans 3\", Arial, sans-serif !important;\n            line-height: 1 !important;\n            min-height: 48px;\n            padding: 14px 23px !important;\n            text-decoration: none !important;\n            transition: background-color .18s ease, border-color .18s ease, transform .18s ease;\n        }\n\n        .icbo2-tool .icbo2-primary {\n            background: var(--icbo2-red) !important;\n            border: 2px solid var(--icbo2-red) !important;\n            color: #fff !important;\n        }\n\n        .icbo2-tool .icbo2-primary:hover {\n            background: var(--icbo2-red-dark) !important;\n            border-color: var(--icbo2-red-dark) !important;\n            transform: translateY(-1px);\n        }\n\n        .icbo2-tool .icbo2-secondary {\n            background: #fff !important;\n            border: 2px solid var(--icbo2-black) !important;\n            color: var(--icbo2-black) !important;\n        }\n\n        .icbo2-tool .icbo2-secondary:hover {\n            background: var(--icbo2-black) !important;\n            color: #fff !important;\n        }\n\n        .icbo2-status {\n            font-size: 15px;\n            font-weight: 700;\n            min-height: 24px;\n            padding-top: 14px;\n        }\n\n        .icbo2-status.is-error {\n            color: #a30e15;\n        }\n\n        .icbo2-results {\n            border-top: 1px solid var(--icbo2-line);\n            margin-top: 32px;\n            padding-top: 32px;\n        }\n\n        .icbo2-results[hidden] {\n            display: none !important;\n        }\n\n        .icbo2-tool .icbo2-results-title {\n            color: var(--icbo2-black);\n            font-family: \"Libre Baskerville\", Georgia, serif;\n            font-size: 28px;\n            margin: 0 0 18px;\n        }\n\n        .icbo2-summary {\n            display: grid;\n            gap: 12px;\n            grid-template-columns: repeat(4, minmax(0, 1fr));\n            margin-bottom: 18px;\n        }\n\n        .icbo2-stat {\n            background: var(--icbo2-ivory);\n            border: 1px solid var(--icbo2-line);\n            border-radius: 10px;\n            padding: 17px;\n        }\n\n        .icbo2-stat strong,\n        .icbo2-stat span {\n            display: block;\n        }\n\n        .icbo2-stat strong {\n            color: var(--icbo2-red);\n            font-size: 29px;\n            line-height: 1;\n            margin-bottom: 7px;\n        }\n\n        .icbo2-stat span {\n            color: var(--icbo2-muted);\n            font-size: 14px;\n        }\n\n        .icbo2-findings {\n            background: #fff;\n            border: 1px solid var(--icbo2-line);\n            border-left: 5px solid var(--icbo2-red);\n            border-radius: 10px;\n            margin-bottom: 22px;\n            padding: 19px 21px;\n        }\n\n        .icbo2-findings h4 {\n            color: var(--icbo2-black);\n            font-size: 17px;\n            margin: 0 0 9px;\n        }\n\n        .icbo2-findings ul {\n            margin: 0;\n            padding-left: 20px;\n        }\n\n        .icbo2-findings li + li {\n            margin-top: 7px;\n        }\n\n        .icbo2-finding-safe { color: #22652f; }\n        .icbo2-finding-review { color: #725000; }\n        .icbo2-finding-warning { color: #9f1118; }\n\n        .icbo2-output-wrap {\n            background: var(--icbo2-ivory);\n            border: 1px solid var(--icbo2-line);\n            border-radius: 12px;\n            padding: 22px;\n        }\n\n        @media (max-width: 760px) {\n            .icbo2-tool { margin: 18px auto; }\n            .icbo2-shell { border-radius: 12px; }\n            .icbo2-header { padding: 28px 20px 23px; }\n            .icbo2-workspace { padding: 24px 20px 30px; }\n            .icbo2-options,\n            .icbo2-summary { grid-template-columns: 1fr; }\n            .icbo2-tool .icbo2-source,\n            .icbo2-tool .icbo2-output { min-height: 235px; }\n            .icbo2-tool .icbo2-button { width: 100%; }\n        }\n    <\/style>\n\n    <section class=\"icbo2-tool\" data-icbo2-tool>\n        <div class=\"icbo2-shell\">\n            <header class=\"icbo2-header\">\n                <p class=\"icbo2-kicker\">Herramientas acad\u00e9micas IndexCom<\/p>\n                <h1 class=\"icbo2-title\">Organizador y limpiador de bibliograf\u00edas<\/h1>\n                <p class=\"icbo2-intro\">Ordena referencias, elimina duplicados evidentes y detecta datos que conviene revisar antes de entregar un trabajo acad\u00e9mico.<\/p>\n            <\/header>\n\n            <div class=\"icbo2-workspace\">\n                <label class=\"icbo2-field-label\">Bibliograf\u00eda original\n                    <textarea class=\"icbo2-source\" rows=\"12\" spellcheck=\"false\" placeholder=\"Pega aqu\u00ed una referencia por l\u00ednea\u2026\" data-icbo2-source><\/textarea>\n                <\/label>\n\n                <p class=\"icbo2-privacy\"><span class=\"icbo2-privacy-mark\" aria-hidden=\"true\">\u2713<\/span>El contenido se procesa exclusivamente en tu navegador. IndexCom no lo env\u00eda ni lo almacena.<\/p>\n\n                <div class=\"icbo2-options\">\n                    <label class=\"icbo2-option-label\">Separaci\u00f3n de referencias\n                        <select class=\"icbo2-select\" data-icbo2-separator>\n                            <option value=\"auto\">Detectar autom\u00e1ticamente<\/option>\n                            <option value=\"line\">Una referencia por l\u00ednea<\/option>\n                            <option value=\"blank\">Separadas por una l\u00ednea en blanco<\/option>\n                        <\/select>\n                    <\/label>\n\n                    <label class=\"icbo2-option-label\">Orden del resultado\n                        <select class=\"icbo2-select\" data-icbo2-sort>\n                            <option value=\"author\">Alfab\u00e9tico por autor\u00eda<\/option>\n                            <option value=\"original\">Mantener el orden original<\/option>\n                        <\/select>\n                    <\/label>\n                <\/div>\n\n                <div class=\"icbo2-actions\">\n                    <button type=\"button\" class=\"icbo2-button icbo2-primary\" data-icbo2-analyze>Analizar bibliograf\u00eda<\/button>\n                    <button type=\"button\" class=\"icbo2-button icbo2-secondary\" data-icbo2-reset>Restablecer<\/button>\n                <\/div>\n\n                <div class=\"icbo2-status\" role=\"status\" aria-live=\"polite\" data-icbo2-status><\/div>\n\n                <section class=\"icbo2-results\" hidden data-icbo2-results>\n                    <h3 class=\"icbo2-results-title\">Resultado del an\u00e1lisis<\/h3>\n                    <div class=\"icbo2-summary\" data-icbo2-summary><\/div>\n                    <div class=\"icbo2-findings\" data-icbo2-findings><\/div>\n\n                    <div class=\"icbo2-output-wrap\">\n                        <label class=\"icbo2-field-label\">Bibliograf\u00eda limpia\n                            <textarea class=\"icbo2-output\" rows=\"12\" spellcheck=\"false\" data-icbo2-output><\/textarea>\n                        <\/label>\n                        <div class=\"icbo2-actions\">\n                            <button type=\"button\" class=\"icbo2-button icbo2-primary\" data-icbo2-copy>Copiar resultado<\/button>\n                            <button type=\"button\" class=\"icbo2-button icbo2-secondary\" data-icbo2-download>Descargar TXT<\/button>\n                        <\/div>\n                    <\/div>\n                <\/section>\n            <\/div>\n        <\/div>\n    <\/section>\n\n    <script id=\"icbo2-script\">\n        (function () {\n            'use strict';\n\n            var DOI_PATTERN = \/(?:https?:\\\/\\\/(?:dx\\.)?doi\\.org\\\/|doi\\s*:\\s*)?(10\\.\\d{4,9}\\\/[-._;()\/:a-z0-9]+)\/i;\n\n            function boot() {\n                document.querySelectorAll('[data-icbo2-tool]').forEach(function (tool) {\n                    if (tool.getAttribute('data-icbo2-ready') === '1') {\n                        return;\n                    }\n                    tool.setAttribute('data-icbo2-ready', '1');\n                    init(tool);\n                });\n            }\n\n            function init(tool) {\n                var source = tool.querySelector('[data-icbo2-source]');\n                var separator = tool.querySelector('[data-icbo2-separator]');\n                var sort = tool.querySelector('[data-icbo2-sort]');\n                var status = tool.querySelector('[data-icbo2-status]');\n                var results = tool.querySelector('[data-icbo2-results]');\n                var summary = tool.querySelector('[data-icbo2-summary]');\n                var findings = tool.querySelector('[data-icbo2-findings]');\n                var output = tool.querySelector('[data-icbo2-output]');\n\n                tool.querySelector('[data-icbo2-analyze]').addEventListener('click', function () {\n                    var raw = source.value.trim();\n                    if (!raw) {\n                        setStatus(status, 'Pega al menos una referencia para comenzar.', true);\n                        source.focus();\n                        return;\n                    }\n\n                    var original = splitReferences(raw, separator.value);\n                    var normalized = original.map(normalizeReference).filter(Boolean);\n                    var deduplicated = removeDuplicates(normalized);\n                    var clean = deduplicated.items.slice();\n\n                    if (sort.value === 'author') {\n                        clean.sort(function (a, b) {\n                            return a.localeCompare(b, 'es', { sensitivity: 'base' });\n                        });\n                    }\n\n                    output.value = clean.join('\\n\\n');\n                    renderSummary(summary, original.length, clean.length, deduplicated.duplicates, countDois(clean));\n                    renderFindings(findings, clean, deduplicated.duplicates);\n                    results.hidden = false;\n                    setStatus(status, 'An\u00e1lisis completado. Revisa las advertencias antes de utilizar el resultado.', false);\n                    results.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                });\n\n                tool.querySelector('[data-icbo2-reset]').addEventListener('click', function () {\n                    source.value = '';\n                    output.value = '';\n                    results.hidden = true;\n                    summary.textContent = '';\n                    findings.textContent = '';\n                    setStatus(status, '', false);\n                    source.focus();\n                });\n\n                tool.querySelector('[data-icbo2-copy]').addEventListener('click', function () {\n                    copyText(output.value).then(function () {\n                        setStatus(status, 'Bibliograf\u00eda copiada al portapapeles.', false);\n                    }).catch(function () {\n                        setStatus(status, 'No se pudo copiar autom\u00e1ticamente. Selecciona el resultado y c\u00f3pialo manualmente.', true);\n                    });\n                });\n\n                tool.querySelector('[data-icbo2-download]').addEventListener('click', function () {\n                    if (!output.value.trim()) {\n                        setStatus(status, 'No hay ning\u00fan resultado para descargar.', true);\n                        return;\n                    }\n                    downloadText(output.value);\n                    setStatus(status, 'Archivo TXT preparado.', false);\n                });\n            }\n\n            function splitReferences(text, mode) {\n                var normalized = text.replace(\/\\r\\n?\/g, '\\n').trim();\n                if (mode === 'blank' || (mode === 'auto' && \/\\n\\s*\\n\/.test(normalized))) {\n                    return normalized.split(\/\\n\\s*\\n+\/).map(cleanWhitespace).filter(Boolean);\n                }\n                return normalized.split('\\n').map(cleanWhitespace).filter(Boolean);\n            }\n\n            function cleanWhitespace(value) {\n                return value.replace(\/\\s+\/g, ' ').trim();\n            }\n\n            function normalizeReference(reference) {\n                \/\/ Preserve DOI punctuation before normalizing prose punctuation.\n                var value = cleanWhitespace(reference);\n                var match = value.match(DOI_PATTERN);\n                function normalizeProse(text) {\n                    return cleanWhitespace(text)\n                        .replace(\/\\s+([,;:.])\/g, '$1')\n                        .replace(\/([,;:])([^\\s\/])\/g, '$1 $2');\n                }\n                if (!match) return normalizeProse(value);\n                var before = normalizeProse(value.slice(0, match.index));\n                var after = normalizeProse(value.slice(match.index + match[0].length));\n                return cleanWhitespace([before, 'https:\/\/doi.org\/' + extractDoi(match[0]), after].filter(Boolean).join(' '));\n            }\n\n            function extractDoi(reference) {\n                var match = reference.match(DOI_PATTERN);\n                return match ? match[1].replace(\/[.,;]+$\/, '').toLowerCase() : '';\n            }\n\n            function canonicalKey(reference) {\n                var doi = extractDoi(reference);\n                if (doi) {\n                    return 'doi:' + doi;\n                }\n                return reference\n                    .normalize('NFD')\n                    .replace(\/[\\u0300-\\u036f]\/g, '')\n                    .toLowerCase()\n                    .replace(\/https?:\\\/\\\/doi\\.org\\\/\/g, '')\n                    .replace(\/[^\\p{L}\\p{N}]\/gu, '');\n            }\n\n            function removeDuplicates(references) {\n                var seen = new Set();\n                var items = [];\n                var duplicates = 0;\n\n                references.forEach(function (reference) {\n                    var key = canonicalKey(reference);\n                    if (seen.has(key)) {\n                        duplicates += 1;\n                        return;\n                    }\n                    seen.add(key);\n                    items.push(reference);\n                });\n\n                return { items: items, duplicates: duplicates };\n            }\n\n            function countDois(references) {\n                return references.filter(function (reference) {\n                    return Boolean(extractDoi(reference));\n                }).length;\n            }\n\n            function renderSummary(container, originals, finalCount, duplicates, dois) {\n                container.textContent = '';\n                addStat(container, originals, 'Referencias detectadas');\n                addStat(container, finalCount, 'Referencias finales');\n                addStat(container, duplicates, 'Duplicados eliminados');\n                addStat(container, dois, 'DOI detectados');\n            }\n\n            function addStat(container, value, label) {\n                var card = document.createElement('div');\n                var number = document.createElement('strong');\n                var text = document.createElement('span');\n                card.className = 'icbo2-stat';\n                number.textContent = String(value);\n                text.textContent = label;\n                card.append(number, text);\n                container.appendChild(card);\n            }\n\n            function renderFindings(container, references, duplicates) {\n                container.textContent = '';\n                var title = document.createElement('h4');\n                var list = document.createElement('ul');\n                var missingYear = references.filter(function (reference) {\n                    return !\/\\b(?:19|20)\\d{2}[a-z]?\\b\/i.test(reference);\n                }).length;\n                var veryShort = references.filter(function (reference) {\n                    return reference.length < 35;\n                }).length;\n\n                title.textContent = 'Comprobaciones';\n                container.append(title, list);\n\n                addFinding(list, duplicates ? duplicates + ' posible(s) duplicado(s) eliminado(s).' : 'No se han detectado duplicados evidentes.', duplicates ? 'review' : 'safe');\n                addFinding(list, missingYear ? missingYear + ' referencia(s) sin un a\u00f1o reconocible.' : 'Todas las referencias contienen un a\u00f1o reconocible.', missingYear ? 'warning' : 'safe');\n                if (veryShort) {\n                    addFinding(list, veryShort + ' referencia(s) parecen demasiado breves y requieren revisi\u00f3n manual.', 'warning');\n                }\n                addFinding(list, 'La herramienta no sustituye la revisi\u00f3n final conforme al estilo bibliogr\u00e1fico exigido.', 'review');\n            }\n\n            function addFinding(list, text, type) {\n                var item = document.createElement('li');\n                item.className = 'icbo2-finding-' + type;\n                item.textContent = text;\n                list.appendChild(item);\n            }\n\n            function setStatus(container, message, isError) {\n                container.textContent = message;\n                container.classList.toggle('is-error', Boolean(isError));\n            }\n\n            function copyText(text) {\n                if (navigator.clipboard && window.isSecureContext) {\n                    return navigator.clipboard.writeText(text);\n                }\n                return new Promise(function (resolve, reject) {\n                    var area = document.createElement('textarea');\n                    area.value = text;\n                    area.style.position = 'fixed';\n                    area.style.opacity = '0';\n                    document.body.appendChild(area);\n                    area.select();\n                    try {\n                        document.execCommand('copy') ? resolve() : reject(new Error('copy'));\n                    } catch (error) {\n                        reject(error);\n                    }\n                    area.remove();\n                });\n            }\n\n            function downloadText(text) {\n                var blob = new Blob([text], { type: 'text\/plain;charset=utf-8' });\n                var url = URL.createObjectURL(blob);\n                var link = document.createElement('a');\n                link.href = url;\n                link.download = 'bibliografia-limpia-indexcom.txt';\n                document.body.appendChild(link);\n                link.click();\n                link.remove();\n                URL.revokeObjectURL(url);\n            }\n\n            if (document.readyState === 'loading') {\n                document.addEventListener('DOMContentLoaded', boot);\n            } else {\n                boot();\n            }\n        }());\n    <\/script>\n    <\/div><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Ordena bibliograf\u00edas, elimina duplicados y detecta datos que necesitan revisi\u00f3n con la herramienta gratuita de IndexCom, procesada en tu navegador.<\/p>","protected":false},"author":282331895,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"footnotes":""},"class_list":["post-693","page","type-page","status-publish","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PhjIsM-bb","jetpack-related-posts":[{"id":483,"url":"https:\/\/asociacionindexcom.org\/en\/herramientas-academicas-2\/","url_meta":{"origin":693,"position":0},"title":"Academic tools","author":"Rafael \u00d3scar Ramiro Mart\u00ednez","date":"July 27, 2026","format":false,"excerpt":"Explora las herramientas acad\u00e9micas de IndexCom para buscar contenidos, generar citas, crear diagramas PRISMA y organizar bibliograf\u00edas en l\u00ednea.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1065,"url":"https:\/\/asociacionindexcom.org\/en\/limpiador-bibliografico-premium\/","url_meta":{"origin":693,"position":1},"title":"Premium bibliography cleaner","author":"Rafael \u00d3scar Ramiro Mart\u00ednez","date":"August 10, 2026","format":false,"excerpt":"Analiza bibliograf\u00edas extensas, agrupa duplicados, comprueba DOI y descarga informes de revisi\u00f3n con el Limpiador bibliogr\u00e1fico Premium de IndexCom.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1064,"url":"https:\/\/asociacionindexcom.org\/en\/citas-academicas-premium\/","url_meta":{"origin":693,"position":2},"title":"Premium academic citations","author":"Rafael \u00d3scar Ramiro Mart\u00ednez","date":"August 10, 2026","format":false,"excerpt":"Procesa varios DOI, revisa sus metadatos, organiza referencias en distintos estilos y exporta bibliograf\u00edas con Citas acad\u00e9micas Premium de IndexCom.","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/pages\/693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/users\/282331895"}],"replies":[{"embeddable":true,"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/comments?post=693"}],"version-history":[{"count":7,"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/pages\/693\/revisions"}],"predecessor-version":[{"id":1205,"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/pages\/693\/revisions\/1205"}],"wp:attachment":[{"href":"https:\/\/asociacionindexcom.org\/en\/wp-json\/wp\/v2\/media?parent=693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}