Skip to content

Commit

Permalink
fix(Remove): check version (require *Logseq v0.9.11* or later)
Browse files Browse the repository at this point in the history
  • Loading branch information
YU000jp committed Jan 20, 2024
1 parent 6016dc4 commit d7b423c
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 137 deletions.
35 changes: 13 additions & 22 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
import "@logseq/libs"
import { BlockEntity, LSPluginBaseInfo, PageEntity } from "@logseq/libs/dist/LSPlugin.user"
import { setup as l10nSetup } from "logseq-l10n" //https://github.com/sethyuan/logseq-l10n
import { setup as l10nSetup } from "logseq-l10n"; //https://github.com/sethyuan/logseq-l10n
import fileBottom from './bottom.css?inline'
import { hierarchyForFirstLevelOnly, hierarchyRemoveBeginningLevel } from "./hierarchyList"
import { provideStyleByVersion, removeElementClass, removeElementId, removeProvideStyle, titleCollapsedRegisterEvent, versionCheck } from "./lib"
import { provideStyle, removeElementClass, removeElementId, removeProvideStyle, titleCollapsedRegisterEvent } from "./lib"
import fileCSSMain from './main.css?inline'
import fileNestingPageAccessory from "./nestingPageAccessory.css?inline"
import filePageAccessory from "./pageAccessory.css?inline"
import fileNestingPageAccessory from "./pageAccessory.css?inline"
import { settingsTemplate, } from "./settings"
import fileSide from './side.css?inline'
import { removeOnSettingsChangedHierarchyPageTitleOnce, revertOnSettingsChangedHierarchyPageTitleOnce, splitHierarchy, } from "./splitHierarchy"
import CSSUnlinkedHidden from './unlinkedHidden.css?inline'
import { removeOnSettingsChangedHierarchyPageTitleOnce, revertOnSettingsChangedHierarchyPageTitleOnce, splitHierarchy } from "./splitHierarchy"
import { CSSpageSubOrder, Child, getTocBlocks, headersList, insertElement, tocContentTitleCollapsed } from "./toc"
import ja from "./translations/ja.json"
import ko from "./translations/ko.json"
import zhCN from "./translations/zh-CN.json"
import zhHant from "./translations/zh-Hant.json"
import CSSUnlinkedHidden from './unlinkedHidden.css?inline'
import fileWide from './wide.css?inline'
import fileWideModeJournalQueries from './wideJournalQueries.css?inline'
let currentPageName: string = ""
Expand All @@ -30,16 +29,13 @@ const keyUnlinkedReferencesHidden = "th-unlinkedReferences-hidden"
export const keyHierarchyForFirstLevelOnly = "th-hierarchyForFirstLevelOnly"
export const keyHierarchyRemoveBeginningLevel = "th-hierarchyRemoveBeginningLevel"

let versionOver: boolean = false

const main = async () => {
versionOver = await versionCheck(0, 9, 11)
await l10nSetup({ builtinTranslations: { ja, ko, "zh-Hant": zhHant, "zh-CN": zhCN } })
/* user settings */
logseq.useSettingsSchema(settingsTemplate())

//設定項目 > ModifyHierarchyList
if (logseq.settings?.booleanModifyHierarchy === true) provideStyleByVersion(versionOver, keyNestingPageAccessory, fileNestingPageAccessory, keyPageAccessory, filePageAccessory)
if (logseq.settings?.booleanModifyHierarchy === true) provideStyle(keyNestingPageAccessory, fileNestingPageAccessory)

//設定項目 > Unlinked Referencesを表示しない
if (logseq.settings!.booleanUnlinkedReferences === true) logseq.provideStyle({
Expand Down Expand Up @@ -201,7 +197,7 @@ const onSettingsChanged = () => {

if (newSet.booleanModifyHierarchy === true
&& !parent.document.head.querySelector(`style[data-injected-style^="${keyPageAccessory}"]`))
provideStyleByVersion(versionOver, keyNestingPageAccessory, fileNestingPageAccessory, keyPageAccessory, filePageAccessory)
provideStyle(keyNestingPageAccessory, fileNestingPageAccessory)
else if (newSet.booleanModifyHierarchy === false) {
removeProvideStyle(keyPageAccessory)
removeProvideStyle(keyNestingPageAccessory)
Expand All @@ -222,16 +218,11 @@ const onSettingsChanged = () => {
logseq.provideStyle({ key: keySide, style: fileSide })
break
case "wide view":
if (versionOver === true) {
removeProvideStyle(keySide)
removeProvideStyle(keyBottom)
logseq.provideStyle({ key: keyWide, style: fileWide })
logseq.provideStyle({ key: keyPageAccessoryOrder, style: CSSpageSubOrder(logseq.settings) })
if (newSet.booleanWideModeJournalQueries === true) logseq.provideStyle({ key: keyWideModeJournalQueries, style: fileWideModeJournalQueries })
} else {
logseq.UI.showMsg("Wide view mode is available from Logseq v0.9.11")
setTimeout(() => { logseq.updateSettings({ placeSelect: oldSet.placeSelect }) }, 300)
}
removeProvideStyle(keySide)
removeProvideStyle(keyBottom)
logseq.provideStyle({ key: keyWide, style: fileWide })
logseq.provideStyle({ key: keyPageAccessoryOrder, style: CSSpageSubOrder(logseq.settings) })
if (newSet.booleanWideModeJournalQueries === true) logseq.provideStyle({ key: keyWideModeJournalQueries, style: fileWideModeJournalQueries })
break
case "unset":
removeProvideStyle(keySide)
Expand Down Expand Up @@ -260,7 +251,7 @@ const onSettingsChanged = () => {

if (oldSet.booleanModifyHierarchy === false
&& newSet.booleanModifyHierarchy === true) {
if (!parent.document.head.querySelector(`style[data-injected-style^="${keyPageAccessory}"]`) && !parent.document.head.querySelector(`style[data-injected-style^="${keyNestingPageAccessory}"]`)) provideStyleByVersion(versionOver, keyNestingPageAccessory, fileNestingPageAccessory, keyPageAccessory, filePageAccessory)
if (!parent.document.head.querySelector(`style[data-injected-style^="${keyPageAccessory}"]`) && !parent.document.head.querySelector(`style[data-injected-style^="${keyNestingPageAccessory}"]`)) provideStyle(keyNestingPageAccessory, fileNestingPageAccessory)
}
else if (oldSet.booleanModifyHierarchy === true
&& newSet.booleanModifyHierarchy === false) {
Expand Down
35 changes: 4 additions & 31 deletions src/lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,38 +18,11 @@ export const removeElementId = (elementId: string) => {
if (doc) doc.remove()
}

export const versionCheck = async (
first: number,
second: number,
third: number
): Promise<boolean> => {
let version: string = await logseq.App.getInfo("version")
//0.9.13-nightly.20230811のような文字列であった場合、-nightly以降を削除する
if (version?.includes("-")) {
const versionArr = version?.split("-") as string[]
version = versionArr[0]
}
const versionArr = version?.split(".") as string[]
if (
Number(versionArr[0]) > first ||
(Number(versionArr[0]) === first && Number(versionArr[1]) > second) ||
(Number(versionArr[1]) === second && Number(versionArr[2]) >= third)
) {
return true //指定した以上のバージョンの場合
} else return false //指定より古いバージョンの場合
}

export const provideStyleByVersion = (
versionOver: boolean,
newKey: string,
newStyle: string,
oldKey: string,
oldStyle: string
export const provideStyle = (
key: string,
style: string,
) => {
if (versionOver === true)
logseq.provideStyle({ key: newKey, style: newStyle })
//指定した以上のバージョンの場合
else logseq.provideStyle({ key: oldKey, style: oldStyle }) //指定より古いバージョンの場合
logseq.provideStyle({ key: key, style: style })
}

export const titleCollapsedRegisterEvent = (
Expand Down
63 changes: 0 additions & 63 deletions src/nestingPageAccessory.css

This file was deleted.

84 changes: 63 additions & 21 deletions src/pageAccessory.css
Original file line number Diff line number Diff line change
@@ -1,21 +1,63 @@
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child{margin-top:3.3em}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span:not(:last-child){position:relative;top:-2.4em}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span:is(:nth-last-child(2)){display:none}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference:last-child{position:absolute;left:3em}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference:last-child::before{content:">";margin-left:.9rem;margin-right:.4rem;opacity:.3;pointer-events:none}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference:not([data-ref*='/']):last-child::after{content:"<";margin-left:.9rem}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span+span.page-reference:last-child::before{pointer-events:none}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference:last-child::before{content:" > > ";letter-spacing:.6em}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference:last-child div{left:-1.35em;position:relative}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference:last-child::before{content:" > > > ";letter-spacing:.6em;pointer-events:none}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference:last-child div{left:-1.25em;position:relative}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference:last-child::before{content:" > > > > ";letter-spacing:.6em}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference:last-child div{left:-1.25em;position:relative}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference:last-child::before{content:" > > > > > ";letter-spacing:.6em}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:first-child span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference+span+span.page-reference:last-child div{left:-1.25em;position:relative}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:not(:first-child) span.page-reference:not(:last-child){display:none}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:not(:first-child) span.page-reference+span:not(.page-reference){visibility:hidden}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li:not(:first-child) span.page-reference+span:not(.page-reference)::after{content:">";visibility:visible}
body[data-page=page] div.page-hierarchy:not(.th-journal) ul.namespaces li{list-style:decimal-leading-zero;font-size:.94em}
body[data-page=page] div:is(.page-hierarchy,.relative+div.references) span.bracket{display:none}
body[data-page="page"]>div#root>div>main>div#app-container div#main-content-container {
& div {
&.page-hierarchy {
&:not(.th-journal) ul.namespaces {
padding: 0.6em .1em 1em .1em;
font-size: .93em;

&>li {
list-style: decimal-leading-zero;

& span.page-reference {
&:not(:last-child) {
display: none;
}

&+span:not(.page-reference) {
visibility: hidden;

&::after {
content: ">";
visibility: visible;
}
}

}

&:first-child {

& span {

&.page-reference+span+span.page-reference {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

&+span.page-reference:last-child::before {
pointer-events: none
}
}
}
}
}

&:not(:has(ul li:first-of-type span.page-reference[data-ref*='/'])) {
display: none
}
}

&.page-tags {

& ul {
list-style: circle;
font-size: .93em;
padding: .6em 1em 1em 1em;

&>li {
list-style: decimal-leading-zero;
}
}
}
}
}

0 comments on commit d7b423c

Please sign in to comment.