■ 简介


为了便于编辑多个相互之间有交叉引用的博文,需要能够在CSND博文编辑状态下就能够获得各个博文最后引用的链接。这种方式适合于:

  • 将一个大型的博文拆解成很多小的博文;
  • 在博文之间能够相互进行索引;

在以前都需要将CSDN的博文保存之后,重新通过“查看”打开,才能够在浏览器的地址栏获得博文的最终的链接地址,这样操作稍微麻烦一些。下面通过实验给出编辑中博文的地址和最后引用点值之间的关系。

01编辑状态下的博文地址


1.地址之间的联系

在打开Markdown编辑器之后,最初的网页的地址为:

https://editor.csdn.net/md/ 在输入博文题目,以及一小段内容之后,电机“**保存草稿**”之后,博文的地址栏的内容就变成了: https://editor.csdn.net/md?articleId=107375420 如果将博文保存,然后通过“**查看**”再次浏览该博文时,浏览器的地址变成了: https://zhuoqing.blog.csdn.net/article/details/107375420

此时可以看到,最终的浏览地址与在编辑状态下的地址之间的关系:

将编辑状态下的地址后面articalid=" 之后的数字字符串替换成: https://zhuoqing.blog.csdn/net/artical/details/

2.修改url2link

在原来的PYTHON命令 url2link 中增加 自动处理部分。可以碰到articalid=字符串自动进行替换。

#------------------------------------------------------------
findstr = '?articleId='
idid = urlstr.find(findstr)if idid >= 0:urlstr = 'https://zhuoqing.blog.csdn.net/article/details/' + urlstr[idid+len(findstr):]

※ 结论


通过音源在编辑状态下的博文地址,可以扩展博文之间的交叉引用,提高编辑的效率。

通过修改 url2link 命令,使其能够自动完成 articalid= 的字符串替换过程。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# URL2LINK.PY                  -- by Dr. ZhuoQing 2020-02-09
#
# Note:
#============================================================from head import *
import requests#------------------------------------------------------------
from bs4 import BeautifulSoupcsdn_title = '写文章-CSDN博客'urlstr = clipboard.paste()
noteflag = 0#printf(urlstr)#------------------------------------------------------------
if urlstr.find('http') < 0:if len(sys.argv) < 2:printf('url2link url\a')exit()urlstr = sys.argv[1]if urlstr.find('http') < 0:printf('url2link url\a')exit()keyread = tspread()ctrlflag = 0;if len(sys.argv) > 2:if sys.argv[2].find('SHIFT') >= 0:ctrlflag = 1if sys.argv[2].find('NOTE') >= 0:noteflag = 1if len(sys.argv) > 3:if sys.argv[3].find('SHIFT') >= 0:ctrlflag = 1if sys.argv[3].find('NOTE') >= 0: noteflag = 1#--------------------------------------------------------if keyread[7] != 0 or ctrlflag != 0:prompt = 'Py&thon Input:'if ctrlflag != 0:prompt = 'Python &Input >>:'oldtitle = ''if keyread[8] != 0:xmltext = requests.get(urlstr)soup = BeautifulSoup(xmltext.text, 'lxml')oldtitle = soup.head.title.string.split('_')[0]else:tspsendwindowkey(csdn_title, 'c', control=1)oldtitle = clipboard.paste()title = tspinputline(string=oldtitle, hint=urlstr, title=prompt).strip(' ')if len(title) == 0:xmltext = requests.get(urlstr)soup = BeautifulSoup(xmltext.text, 'lxml')title = soup.head.title.string.split('_')[0]
#            printff(title)else:if title[0] == '#':anchorstr = titlexmltext = requests.get(urlstr)soup = BeautifulSoup(xmltext.text, 'lxml')title = soup.head.title.string.split('_')[0]+anchorstr#                printff(title)else:xmltext = requests.get(urlstr)soup = BeautifulSoup(xmltext.text, 'lxml')title = soup.head.title.string.split('_')[0]#------------------------------------------------------------
else:if len(sys.argv) < 2:tspsendwindowkey(csdn_title, 'c', control=1)tempstr = clipboard.paste()if len(tempstr) == 0:xmltext = requests.get(urlstr)soup = BeautifulSoup(xmltext.text, 'lxml')title = soup.head.title.string.split('_')[0]
#            printff(title)else: title = tempstrelse:title = sys.argv[1]if title[0] == '#':anchorstr = titletspsendwindowkey(csdn_title, 'c', control=1)tempstr = clipboard.paste()if len(tempstr) == 0:xmltext = requests.get(urlstr)soup = BeautifulSoup(xmltext.text, 'lxml')title = soup.head.title.string.split('_')[0]
#                printff(title)else: title = tempstrtitle = title+anchorstr#------------------------------------------------------------
headstr = ''
if title[0] == '.':title = title[1:]headstr = '- [ ]'if title[0] == ',':title = title[1:]headstr = '- [x]'#------------------------------------------------------------
findstr = '?articleId='
idid = urlstr.find(findstr)if idid >= 0:urlstr = 'https://zhuoqing.blog.csdn.net/article/details/' + urlstr[idid+len(findstr):]#------------------------------------------------------------
titlesharp = title.find('#')
if titlesharp >= 0:urlstr = urlstr + title[titlesharp:]title = title[0:titlesharp]#------------------------------------------------------------
if noteflag != 0:insertstring = '%s [**``%s``**](%s) '%(headstr, title, urlstr)
else:insertstring = '%s [**%s**](%s) '%(headstr, title, urlstr)clipboard.copy(insertstring)
#printf(insertstring)tspsendwindowkey(csdn_title, 'v', control=1)clipboard.copy('')
tspfocuswindow(csdn_title)#------------------------------------------------------------
#        END OF FILE : URL2LINK.PY
#============================================================

如果在CSDN博文编辑状态下获得博文最终网络链接?相关推荐

  1. android tableview实现多选功能,iOS开发UI篇-tableView在编辑状态下的批量操作(多选)...

    先看下效果图 直接上代码 #import "MyController.h" @interface MyController () { UIButton *button; } @pr ...

  2. unity editor 编辑器插件制作基础:五、物体在Scene窗口中编辑状态下的辅助显示,以及控制功能扩展OnDrawGizmos GizmoType

    一 说明 该功能只能在编辑状态下运行,并只能在scene窗口中显示. 脚本必须继承MonoBehaviour ,并且引入UnityEngine和UnityEditor库 可以选择相关方法,在鼠标选择父 ...

  3. tableview 编辑状态下,UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert 多选的时候,替换圆圈图片

    打开编辑模式,使得tableview处于选择状态 [_tableView setEditing:YES animated:NO] - (UITableViewCellEditingStyle)tabl ...

  4. dateTimePicker编辑状态下,取值不正确的问题

    当对dateTimePicker进行编辑,回车,调用函数处理dateTimePicker的value值时,其取值结果是你编辑之前的值,而不是你编辑后的值,虽然dateTimePicker.text的值 ...

  5. vue结合百度地图绘制工具遇到的问题及解决方案(多边形编辑状态下形状显示不全、marker点添加事件无效)

    vue如何引入百度地图绘制工具 百度地图绘制工具示例 http://developer.baidu.com/map/jsdemo.htm#f0_7 百度地图绘制工具api文档 http://api.m ...

  6. unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容

    转载自:http://blog.csdn.net/andyhebear/article/details/47833383 using UnityEngine; using UnityEditor; u ...

  7. android 不可编辑 复制,Android的EditText不可编辑状态下的长按复制

    好久没更博.之前一段时间新模块开发..太忙太忙. 今天写的是刚新增的需求,用户要求可以复制一些不可编辑的EditText里面的内容,这个问题网上有几种解决办法,一个是自定义控件中重写getDefaul ...

  8. 计算机广播状态下操作,二,操作题:1

    二,操作题:1 (2008-11-19 13:29:23) 标签: 杂谈 二,操作题: 操作 1 题目: 打开WINDOWS 98的资源管理器,按顺序进行如下操作: 1.在 A 盘根目录下的NJDD目 ...

  9. 如何在Release状态下进行调试

    1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选General, ...

最新文章

  1. 自然语言模型算法太杂乱?国产统一 AI 开源框架来了
  2. 【转载】谁记录了mysql error log中的超长信息
  3. 存clob为空的值_oracle clob 存储空间
  4. vue3+TypeScript封装echarts5组件
  5. 【渝粤教育】国家开放大学2018年春季 0283-21T广告创意与表现(二) 参考试题
  6. Spring容器创建流程(2)创建beanFactory,加载BeanDefinition
  7. 102. 二叉树的层次遍历
  8. 如何设置iPhone的手机铃声?【来自星星的你】
  9. R|ggplot2(七)|自定义主题
  10. 深度解析MySQL启动时报“The server quit without updating PID file”错误的原因
  11. 如何html设置下载的字体呢?
  12. 12级软件测试课程博客汇总
  13. 31道Java面试题,java冒泡排序详解
  14. css中字体下划线样式,css下划线 浅谈css自定义下划线
  15. ZigBee的发展也有“碎片化”zigbee模块
  16. 武大计算机保研北大,17名北大毕业生保研到武大?网友说亏大了,其实这些学生赚大了!...
  17. 西游记中观世音菩萨的三个箍
  18. ubuntu 钉钉 输入法不能输入中文,只能输入英文。
  19. SmartNavigation苗条版ClientNavigation增肥
  20. LabVIEW Arduino TCP/IP远程智能家居系统(项目篇—5)

热门文章

  1. xcode升级之后,VVDocument失效的解决办法
  2. JS判断数组里面是否包含指定的数
  3. 关于学习过程中走过的弯路
  4. 解读网络“攻城狮”的发展---老赵带你铺一段路
  5. C#温故而知新学习系列之面向对象编程—构造函数(七)
  6. 每句话都可以品半辈子!!!
  7. Win10 资源管理器窗口无边框的问题
  8. c/C++计算int / int *数组的长度;sizeof(指针),sizeof(数组名)的区别
  9. 4springboot:日志(上)
  10. 中国小品演员都要卷舌?