VSCode小說插件ReadNovel根據內容查找頁碼
寫在前面
-
環境
-
平平無奇的vscode
-
插件ReadNovel(暗示)
-
-
問題
- 我用手機看了好多章了,然后要用vscode這個看
- 如何在vscode續上呢?(即從當前 章節/段落 繼續看)
-
目標:
-
輸入當前章節的關鍵字,查找到對應的 頁碼 (注意這個頁碼是ReadNovel在小說文件上對應的頁碼, 不是對應的行數)
-
進一步說明:
- 這個頁碼用於保存你看到的位置,實際上插件的作者在對小說文本進行處理的時候,在小說文件的開頭新增了好幾行文本
- 其次,在讀取處理的時候,對空行進行了處理,所以上述頁碼的數值並不是完全對應文檔的總行數,而是去掉空行的文本總行數,再減去開頭新增的這些行
-
解決方案
-
使用步驟:
- 啟動腳本,輸入關鍵詞,查找目標頁碼
page
- 打開小說,修改第一行的頁碼為
page
,保存小說 - 啟動vscode,啟動ReadNovel
- 開始🐟
- 啟動腳本,輸入關鍵詞,查找目標頁碼
-
腳本如下,需要注意的是,我這里是讀取了vscode的配置文件,所以寫的比較復雜,你自己用的話,直接把小說的路徑 賦給
book_path
就ok了""" 對vscode插件:ReadNovel提供內容查找和頁碼定位的操作 """ # -----------------【可以刪除】--------------------- # 這里是獲取vscode配置文件json,讀取成dict的過程 import sys sys.path.append("constants folder") from constants import get_vscode_json_dict vscode_json_dict = get_vscode_json_dict() # -------------------------------------------------- import os from dataclasses import dataclass # 可以直接把文件路徑粘到這里就行,不需要像我這樣從vscode的配置文件中 book_path = vscode_json_dict.get("ReadNovel.filePath") book_name = os.path.split(book_path)[-1] @dataclass class LocationReadNovel: def __post_init__(self): self.lines_without_blank = self.read_aim_file() def read_aim_file(self): with open(book_path, 'r', encoding='utf-8') as f: lines = f.readlines() return [x for x in lines if len(x.strip()) > 0] def find_page(self, words): index = 0 infos = [] for l in self.lines_without_blank: if words in l: infos.append((index, l)) index += 1 # 展示 for i, info in infos: print(i, ': ', info) def main(): lrn = LocationReadNovel() print('當前書名:', book_name) while True: find_words = input("請輸入檢索內容:(輸入q退出)\n\r") if find_words.strip() == 'q': break lrn.find_page(find_words) if __name__ == '__main__': main()
-
最后展示一下效果:
- ☁️ 我的CSDN:https://blog.csdn.net/qq_21579045
- ❄️ 我的博客園:https://www.cnblogs.com/lyjun/
- ☀️ 我的Github:https://github.com/TinyHandsome
- 🌈 我的bilibili:https://space.bilibili.com/8182822
- 🐧 粉絲交流群:1060163543,神秘暗號:為干飯而來
碌碌謀生,謀其所愛。🌊 @李英俊小朋友