如何实现MARKDOWN网页内跳转?

网友投稿 2579 2022-05-30

■ 前言

在以下几种情况下,需要能够在网页内快速定位跳转:

如果网页实在是太长了,后面和前面的叙述需要相互引用,实现网页内跳转可以便于阅读和查看。

如果通过连接跳转到另外的长网页,也希望能够快速定位到相关内容,则需要提供在链接网页中跳转的方式。

JohnTsai在他的博文 markdown技巧:实现网页内跳转 中给出了两种使用MARKDOWN编辑器来获得网页内的跳转方式。下面基于他介绍的方法,来给出网页内跳转实现方法。

01网页内跳转

1.基本HTML标签实现方式

这个方式是由John Tsai给出的,分成两步:

定义一个锚(id):

跳转到的地方

使用markdown语法:

[点击跳转](#jump)

2.使用csdnnote命令

方法1: 选中CSDN markdown编辑器的一段文字,然后在使用csdnnote命令,输入:

#: 直接将选中的文字转换成HTML的跳转语句,并将锚(空锚)放置在剪切板上,在后面粘贴到需要跳转的地方。

#* :将选中的问题转换成加粗跳转语句,其它的与前面相同。

方法2: 不选中任何CSDN markdown中的问题,直接运行输入:

#提示文字:将提示文字转换成HTML跳转语句,并粘贴在CSDN当前位置,生成锚拷贝到剪切板,以备后面粘贴到合适的地方。

#提示文字:与前面相同,只是将提示文字加粗*。

如果前面的提示文字是空,则只在当前位置粘贴锚。

###锚字符: 在当前位置粘贴锚,文字是锚文字.

02转移到另外网页内的跳转

实现跳转到另外网页内的特点位置,只是在传统的MARKDOWN的链接格式中,在URL字符串后面增加:#锚文字,即可。

比如下面示例中的情况。(可以点击右侧字符测试一下: 跳转到另外网页内部锚位置 )

[**跳转到另外网页内部锚位置**](https://zhuoqing.blog.csdn.net/article/details/107294049#1234)

1

当然,这需要有一个先决条件,那就是**#锚文字**在所跳转的网页内是存在的。如果这个网页也是你自己的MARKDOWN编写的话,就比较方便了。

※ 小结

采用MARKDOWN编辑文档内部,利用HTML锚标示设定的方式,可以实现网页内,网页外的锚点之间的跳转。这就大大方便对于网页内容引用的精确性。

对于其它网页的应用,必须知道其它网页内的锚的位置。如果其它网页是由你自己MARKDOWN编辑的,这个位置是已知的。但对于别人的网页如何定义出其中的锚的标示,则还需要进一步的探究和实验。

使用PYTHON命令中的csdnnote可以大大提高设定锚和跳转的操作。

对于csdnnote其它功能,比如如何在MARKDOWN内部设定 注释 , 注解 。请参照以下csdnnote的源程序来使用。

#!/usr/local/bin/python # -*- coding: gbk -*- #============================================================ # CSDNNOTE.PY -- by Dr. ZhuoQing 2020-02-12 # # Note: #============================================================ from head import * #------------------------------------------------------------ csdn_window = '写文章-CSDN博客' #------------------------------------------------------------ csdnpaste = '' tspsendwindowkey(csdn_window, 'c', control=1) csdnpaste = clipboard.paste() #------------------------------------------------------------ num = '%d'%(int(time.time()) % 1e6) if len(sys.argv) < 2: if len(csdnpaste) == 0: stringinsert = tspinputline(hint='keyword:explanation') else: stringinsert = tspinputline(hint='%s:explanation'%csdnpaste) else: stringinsert = ' '.join(sys.argv[1:]) #------------------------------------------------------------ if len(csdnpaste) > 0 and len(stringinsert) > 0: if stringinsert[0] == '.' or stringinsert[0] == '*': notestr = '*[%s]: %s'%(csdnpaste, stringinsert[1:]) if stringinsert[0] == '.': csdnpaste = ' %s '%csdnpaste else: csdnpaste = '**%s**'%csdnpaste clipboard.copy(csdnpaste) tspsendwindowkey(csdn_window, 'v', control=1) clipboard.copy(notestr) printf('\a') tspfocuswindow(csdn_window) exit() if stringinsert[0] =='#': numstr = num stringinsert = sys.argv[1].replace('_', ' ') anchorstr = '' if len(sys.argv) > 2: anchorstr = ' '.join(sys.argv[2:]) if anchorstr[0] == '*': anchorstr = '**%s**'%anchorstr[1:] if len(stringinsert) > 1: numstr = stringinsert[1:] csdnpaste1 = '[%s](#%s)'%(csdnpaste, numstr) if len(stringinsert) >= 2: if stringinsert[1] == '*': if len(stringinsert[2:]) > 0: numstr = stringinsert[2:] csdnpaste1 = '[**%s**](#%s)'%(csdnpaste, numstr) clipboard.copy(csdnpaste1) tspsendwindowkey(csdn_window, 'v', control=1) notestr = '%s'%(numstr, anchorstr) clipboard.copy(notestr) printf('\a') tspfocuswindow(csdn_window) exit() #------------------------------------------------------------ if len(csdnpaste) == 0 and len(stringinsert) > 0: strlen = 0 numstr = num if stringinsert[0] =='#': stringinsert = sys.argv[1].replace('_', ' ') anchorstr = '' if len(sys.argv) > 2: anchorstr = ' '.join(sys.argv[2:]) if anchorstr[0] == '*': anchorstr = '**%s**'%anchorstr[1:] csdnpaste1 = '[%s](#%s)'%(stringinsert[1:], num) strlen = len(stringinsert[1:]) if strlen > 0: newstr = stringinsert[1:] sharpnum = newstr.find('#') if sharpnum >= 0: csdnpaste1 = '[%s](#%s)'%(newstr[:sharpnum], newstr[sharpnum+1:]) strlen = sharpnum numstr = newstr[sharpnum+1:] #---------------------------------------------------- if len(stringinsert) >= 2: if stringinsert[1] == '*': csdnpaste1 = '[**%s**](#%s)'%(stringinsert[2:], num) strlen = stringinsert[2:] if strlen > 0: newstr = stringinsert[2:] sharpnum = newstr.find('#') if sharpnum >= 0: csdnpaste1 = '[%s](#%s)'%(newstr[:sharpnum], newstr[sharpnum+1:]) strlen = sharpnum numstr = newstr[sharpnum+1:] if len(stringinsert) >= 3: if stringinsert[0:3] == '###': if len(stringinsert[3:]) > 0: if stringinsert[-1] == '#': stringinsert = stringinsert[:-1] anchorstr = stringinsert[3:] elif stringinsert[-1] == '*': stringinsert = stringinsert[:-1] anchorstr = "**"+stringinsert[3:]+"**" notestr = '%s'%(stringinsert[3:], anchorstr) clipboard.copy(notestr) tspsendwindowkey(csdn_window, 'v', control=1) printf('\a') tspfocuswindow(csdn_window) exit() else: strlen = 0 #---------------------------------------------------- if strlen > 0: clipboard.copy(csdnpaste1) tspsendwindowkey(csdn_window, 'v', control=1) notestr = '%s'%(numstr, anchorstr) clipboard.copy(notestr) if strlen == 0: tspsendwindowkey(csdn_window, 'v', control=1) printf('\a') tspfocuswindow(csdn_window) exit() #------------------------------------------------------------ doublecolumn = stringinsert.find('::') if doublecolumn > 0: stringinsert = '**%s**:%s'%(stringinsert[0:doublecolumn], stringinsert[doublecolumn+2:]) #------------------------------------------------------------ if len(csdnpaste) == 0: notestr = '[^%s]:%s'%(num, stringinsert) + '\r\n' clipboard.copy(notestr) tspsendwindowkey(csdn_window, 'v', control=1) clipboard.copy('[^%s]'%num) else: clipboard.copy('**%s**[^%s]'%(csdnpaste, num)) tspsendwindowkey(csdn_window, 'v', control=1) if stringinsert[0] == ':': notestr = '\r\n[^%s]:%s:%s'%(num, csdnpaste, stringinsert[1:]) clipboard.copy(notestr) tspsendwindowkey(csdn_window, 'v', control=1) else: notestr = '[^%s]:%s:%s'%(num, csdnpaste, stringinsert) clipboard.copy(notestr) tspfocuswindow(csdn_window) printf('\a') #------------------------------------------------------------ # END OF FILE : CSDNNOTE.PY #============================================================

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

如何实现MARKDOWN网页内跳转?

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

HTML Markdown

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Go+ 值,常量,变量
下一篇:Liunx部署中出现的坑
相关文章