Skills

Cnki Journal Index

Query journal indexing/inclusion status on CNKI - check which databases include a...

Install

npx skills add cookjohn/cnki-skills --skill cnki-journal-index -g -a claude-code -y
Category
Design
Updated
8mo ago
License
See repository
Context cost
Lightabout 1,356 tokens
Runs scripts
No, instructions only

What it does

Query journal indexing/inclusion status on CNKI - check which databases include a journal (北大核心, CSSCI, CSCD, SCI, EI, etc.), get impact factors and evaluation data. Use when user asks about a journal's level, indexing, or ranking.

CNKI Journal Indexing Query (收录查询)

Check which databases index a journal and extract evaluation metrics from its CNKI detail page.

Arguments

$ARGUMENTS is either:

  • A journal name (will search first, then navigate to detail)
  • A CNKI journal detail URL (containing navi.cnki.net/knavi/detail)

Steps

1. Navigate to the journal detail page

If URL provided: Navigate directly.

  • Use mcp__chrome-devtools__navigate_page with the URL.
  • Use mcp__chrome-devtools__wait_for with text ["该刊被以下数据库收录"] and timeout 15000.

If journal name provided: Search first.

  • Navigate to https://navi.cnki.net/knavi
  • Search for the journal (same as cnki-journal-search steps 2-4)
  • Click the first matching journal title link
  • Use mcp__chrome-devtools__list_pages to find and select the new detail tab
  • Wait for the detail page to load

2. Check for captcha

Take snapshot. If "拖动下方拼图完成验证" found, notify user.

3. Extract journal info via JavaScript

Use mcp__chrome-devtools__evaluate_script with this function:

() => {
  const body = document.body.innerText;

  // Journal title
  const titleEl = document.querySelector('h3.titbox, h3.titbox1');
  const titleText = titleEl?.innerText?.trim() || '';
  const titleParts = titleText.split('\n').map(s => s.trim()).filter(Boolean);
  const nameCN = titleParts[0] || '';
  const nameEN = titleParts[1] || '';

  // Indexing tags - extract from text between title and "基本信息"
  const tagText = body.match(/Chinese.*?\n\n([\s\S]*?)\n\n基本信息/)?.[1]
    || body.match(new RegExp(nameCN + '[\\s\\S]*?\\n\\n([\\s\\S]*?)\\n\\n基本信息'))?.[1]
    || '';
  const knownTags = ['北大核心','CSSCI','CSCD','SCI','EI','CAS','JST','WJCI','AMI','Scopus','卓越期刊','网络首发'];
  const indexedIn = knownTags.filter(tag => tagText.includes(tag) || body.includes(tag));
Read the whole SKILL.md on GitHub

More in Design