ieee-export
/ieee-export
Eksportuje cytowania z IEEE Xplore do formatu RIS, BibTeX lub zwykłego tekstu, także do Zotero.
- Autor
- yuanyuanma03 ↗
- Repozytorium
- academic-research-skills ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 21.08.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 2
- Skrypty
- 1
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 2
Brak sygnałów. Repozytorium zmienione 21.08.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
- 1 skrypt w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.
Skrypty: scripts/push_to_zotero.py
Co robi i kiedy
Eksportuje cytowania z IEEE Xplore do formatu RIS, BibTeX lub zwykłego tekstu, także do Zotero.
Argumenty
/ieee-export [article number(s)] [format: ris|bibtex|text] [zotero]
Oryginalny opis (EN)
Exports citations from IEEE Xplore in RIS, BibTeX, or plain text format. Supports pushing to Zotero. Use when the user wants to export or save citation data for papers.
Jak działa
- Single Article Export (from Document Page)
- Batch Export (from Search Results)
- Zotero Push
- Export Format Reference
- Notes
Podgląd SKILL.md
---
name: ieee-export
description: Exports citations from IEEE Xplore in RIS, BibTeX, or plain text format. Supports pushing to Zotero. Use when the user wants to export or save citation data for papers.
argument-hint: "[article number(s)] [format: ris|bibtex|text] [zotero]"
version: 0.1.0
---
# IEEE Xplore Citation Export
Export article citations from IEEE Xplore. Supports Plain Text, BibTeX, RIS, RefWorks formats, and Zotero push.
## Single Article Export (from Document Page)
### Step 1: Navigate to article page (if needed)
If not already on the article page:
```
navigate_page({
url: "{BASE_URL}/document/{ARNUMBER}/",
initScript: "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})
```
### Step 2: Open "Cite This" modal and extract citation
Click the "Cite This" button, select the desired format tab, and extract the citation text:
```javascript
async (format) => {
// format: 'text', 'bibtex', 'ris', 'refworks'
// Wait for page to load
for (let i = 0; i < 20; i++) {
if (document.querySelector('.document-title')) break;
await new Promise(r => setTimeout(r, 500));
}
// Click "Cite This" button
const citeBtn = [...document.querySelectorAll('button')].find(b => b.textContent.trim() === 'Cite This');
if (!citeBtn) return { error: 'Cite This button not found.' };
citeBtn.click();
// Wait for modal to appear
await new Promise(r => setTimeout(r, 1500));
// Map format to tab name
const tabMap = {
'text': 'Plain Text',
'bibtex': 'BibTeX',
'ris': 'RIS',
'refworks': 'Refworks'
};
const tabName = tabMap[format] || 'BibTeX';
// Click the desired format tab
const tab = [...document.querySelectorAll('.cite-this-container a')].find(a => a.textContent.trim() === tabName);
if (tab) tab.click();
// Wait for content to load
await new Promise(r => setTimeout(r, 1000));
// Extract citation text
const citeContent = document.querySelector('.cite-this-container .ql-editor') ||
document.querySelector('.cite-this-container [xplmathjax]') ||
document.querySelector('.cite-this-container pre');
const citationText = citeContent?.textContent?.trim() || '';
// Get article info for metadata
const title = document.querySelector('.document-title span')?.textContent?.trim() || '';
const arnumber = window.location.pathname.match(/\/document\/(\d+)/)?.[1] || '';
// Close modal
const closeBtn = document.querySelector('.cite-this-container .fa-times') ||
document.querySelector('.modal .close');
if (closeBtn) closeBtn.click();
return { citationText, format: tabName, title, arnumber };
}
```
### Step 3: Save or push citation
**Save to file**: Write the citation text to a local file using the appropriate extension (`.bib`, `.ris`, `.txt`).
**Push to Zotero**: See Zotero section below.
## Batch Export (from Search Results)
### Step 1: On search results page, select articles and open Export modal
```javascript
async (arnumbers) => {
// Select articles
const items = document.querySelectorAll('.List-results-items .result-item');
let selected = 0;
items.forEach(item => {
const titleLink = item.querySelector('h3 a[href*="/document/"]');
const docNum = titleLink?.href?.match(/\/document\/(\d+)/)?.[1] || '';
if (arnumbers.includes(docNum)) {
const checkbox = item.querySelector('input[type="checkbox"]');
if (checkbox && !checkbox.checked) {
checkbox.click();
selected++;
}
}
});
// Click Export button — it's a button with class xpl-btn-primary and text "Export"
// Note: The button exists in the results-actions bar, NOT inside a dropdown
const exportBtn = [...document.querySelectorAll('button.xpl-btn-primary, button')]
.find(b => b.textContent.trim() === 'Export');
if (!exportBtn) return { error: 'Export button not found. Make sure you are on a search results page.' };
// Must select at least one article before Export works
if (selected === 0) {
return { error: 'No articles selected. Select articles first, then export.' };
}
exportBtn.click();
await new Promise(r => setTimeout(r, 2000));
return { selected, message: 'Export modal opened. Proceed with format selection.' };
}
```
### Step 2: Select Citations tab and download
```javascript
async (format) => {
// Click Citations tab in export modal
const citationsTab = [...document.querySelectorAll('.nav-link')].find(a => a.textContent.trim() === 'Citations');
if (citationsTab) citationsTab.click();
await new Promise(r => setTimeout(r, 1000));
// Select format radio button
// IMPORTANT: Radio buttons are DISABLED until articles are selected in the Results tab first.
// If radios are disabled, switch to Results tab, select articles, then come back to Citations tab.
const formatMap = {
'text': 'download-ascii',
'bibtex': 'download-bibtex',
'ris': 'download-ris',
'refworks': 'download-refworks'
};
const labelFor = formatMap[format] || 'download-bibtex';
// Find the radio by label text as fallback since for= attribute may not match id
const allLabels = document.querySelectorAll('.export-form label, .tab-pane.active label');
const targetLabel = [...allLabels].find(l => l.getAttribute('for') === labelFor ||
l.textContent.trim().toLowerCase().includes(format));
const radio = targetLabel?.querySelector('input[type="radio"]');
if (radio) {
if (radio.disabled) {
return { error: 'Format radio buttons are disabled. Articles must be selected first. Use Step 1 to select articles before exporting citations.' };
}
radio.click();
}
// Select "Citation and Abstract" option
const citAbsLabel = [...allLabels].find(l => l.getAttribute('for') === 'citation-abstract' ||
l.textContent.trim().includes('Citation and Abstract'));
const citAbsRadio = citAbsLabel?.querySelector('input[type="radio"]');
if (citAbsRadio && !citAbsRadio.disabled) citAbsRadio.click();
await new Promise(r => setTimeout(r, 500));
// Click Download button
const downloadBtn = [...document.querySelectorAll('.tab-pane.active button, .modal button')].find(b =>
b.textContent.trim().includes('Download') && !b.textContent.trim().includes('Cancel')
);
if (downloadBtn) {
downloadBtn.click();
return { success: true, format };
}
return { error: 'Download button not found in export panel.' };
}
```
## Zotero Push
To push citations to a locally running Zotero instance. Two modes are supported:
**Prerequisites**: Zotero desktop must be running with the Connector API enabled (default on port 23119).
### Mode 1: RIS import (simple, no PDF)
After extracting RIS citation text from the Cite This modal:
```bash
python scripts/push_to_zotero.py --ris-data "{RIS_CONTENT}"
```
Or save to a file first and import:
```bash
python scripts/push_to_zotero.py --ris-file "{RIS_FILE_PATH}"
```
### Mode 2: JSON import (structured data with optional PDF attachment)
Save paper data as a JSON file, then run:
```bash
python scripts/push_to_zotero.py --json "{JSON_FILE_PATH}"
```
**JSON format** (single paper or array):
```json
{
"title": "Paper Title",
"authors": ["Author One", "Author Two"],
"journal": "IEEE Transactions on ...",
"date": "2026",
"doi": "10.1109/...",
"volume": "46",
"issue": "3",
"pages": "1234-1245",
"abstract": "...",
"keywords": ["keyword1", "keyword2"],
"url": "https://ieeexplore.ieee.org/document/{ARNUMBER}",
"pdfUrl": "https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber={ARNUMBER}",
"cookies": "..."
}
```
### Listing Zotero collections
```bash
python scripts/push_to_zotero.py --list
```
## Export Format Reference
| Format | File Extension | Use Case |
|--------|---------------|----------|
| Plain Text | `.txt` | Human-readable citation |
| BibTeX | `.bib` | LaTeX documents |
| RIS | `.ris` | Reference managers (Zotero, Mendeley, EndNote) |
| RefWorks | `.txt` | RefWorks import |
## Notes
- The "Cite This" modal on document pages provides citation data for individual articles.
- The "Export" button on search results pages handles batch citation export.
- For batch export, articles must first be selected via checkboxes.
- Citation formats include: Plain Text, BibTeX, RIS, RefWorks.
- Include options: "Citation Only" or "Citation and Abstract".
- For Zotero push, ensure Zotero desktop is running before invoking.
Pliki w paczce (2)
- SKILL.md 8 KB
- scripts/push_to_zotero.py 15 KB
Wersje
W bazie nie ma innych skilli o nazwie ieee-export.
Migawka bazy z 28.10.2026 · wersja paczki 0ce57c1cad30 (skrót SHA-256 całej paczki)
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 98ieee-search
Wyszukuje artykuły naukowe w IEEE Xplore po słowach kluczowych. - 100citations
Formatuje cytowania i bibliografie z biblioteki Zotero w dowolnym stylu CSL (APA, Chicago, MLA, IEEE, Vancouver), eksportuje BibTeX, RIS i CSL-JSON lub tworzy dokument Word z żywymi polami Zotero. - 100cnki-export
Eksportuje artykuł z CNKI do Zotero lub zapisuje go jako plik RIS, przy zapisywaniu pozycji i danych cytowania. - 100export
Eksportuje cytowania do BibTeX, RIS, listy Markdown, filtrowanych zestawów lub własnego stylu cytowania, albo zamienia Markdown na DOCX do udostępnienia. - 100cnki-export
Przenosi dane artykułu z CNKI do Zotero albo do pliku RIS, żeby zapisać pozycję bibliograficzną lub dane cytowania. - 100nature-citation
Wyszukuje, weryfikuje i eksportuje cytowania według rygoru czasopism rodziny Nature i CNS: sprawdza DOI i status retrakcji, eksportuje do BibTeX, RIS, ENW lub Zotero RDF.