Skip to content

Commit a0b1842

Browse files
committed
Added custom markup
1 parent 6d33449 commit a0b1842

1 file changed

Lines changed: 53 additions & 18 deletions

File tree

index.ts

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import '@logseq/libs';
22
import SettingSchemaDesc from '@logseq/libs/dist/LSPlugin.user';
33

44
const markupChoices = ["markdown", "orgmode"]
5+
const markupHeadMrk = ["#", "*"]
6+
const markupTimeMrk = ["**", "*"]
57
const settingsTemplate:SettingSchemaDesc[] = [{
68
key: "defaultTitle",
79
type: 'boolean',
@@ -13,40 +15,72 @@ const settingsTemplate:SettingSchemaDesc[] = [{
1315
type: 'boolean',
1416
default: true,
1517
title: "Create a bold timestamp? (If not a header)",
16-
description: "Insert a bold timestamp, otherwise it is only the time.",
18+
description: "Insert a bold timestamp. Not for header or custom text.",
1719
},{
1820
key: "markup",
1921
type: 'enum',
2022
enumChoices: markupChoices,
2123
enumPicker: 'radio',
2224
default: markupChoices[0],
2325
title: "What markup language to use?",
24-
description: "Markdown and orgmode use different markup, choose yours.",
26+
description: "Markdown or Org-mode.",
2527
},{
2628
key: "level",
2729
type: 'number',
2830
default: 3,
2931
title: "Title level?",
3032
description: "Insert timestamped heading level, default to 3 (### HH:MM title)",
31-
}
33+
},{
34+
key: "cstTime",
35+
type: 'string',
36+
default: "",
37+
title: "Custom time stamp?",
38+
description: "Leave empty for default, \n Use '<time>' as placeholder.\nExample: '[<time>]'",
39+
}
3240
]
3341
logseq.useSettingsSchema(settingsTemplate)
3442

35-
36-
async function updateBlock(block,simple) {
37-
let content = /^#{1,6}\s+/.test(block.content)
38-
? block.content.replace(/^#{1,6}\s+/, '')
39-
: block.content;
40-
var today = new Date();
41-
let time = today.getHours() + ":" + String(today.getMinutes()).padStart(2, '0')
42-
let timePrefix = (logseq.settings.markup === markupChoices[0]) ? "**" : "*"
43-
let timestamp = (logseq.settings.defaultTitle) ? " " + time + " " : timePrefix + time + timePrefix + " "
44-
let linePrefix = (logseq.settings.markup === markupChoices[0]) ? "#" : "*"
45-
let prefix = simple ? linePrefix.repeat(logseq.settings.level) : ''
46-
await logseq.Editor.updateBlock(
47-
block.uuid,
48-
prefix + timestamp + content
49-
);
43+
async function updateBlock(block,insertHeader) {
44+
45+
//prefixB
46+
let prefix = markupHeadMrk[markupChoices.indexOf(logseq.settings.markup)].repeat(logseq.settings.level)
47+
const prefixB = (insertHeader) ? prefix : ""
48+
49+
//timeB
50+
const today = new Date();
51+
const time = today.getHours() + ":" + String(today.getMinutes()).padStart(2, '0')
52+
//FIX: don't bold if header
53+
const timePrefix = (insertHeader) ? "" : markupTimeMrk[markupChoices.indexOf(logseq.settings.markup)]
54+
const timeHolder = (logseq.settings.cstTime)
55+
? logseq.settings.cstTime
56+
: timePrefix + "<time>" + timePrefix
57+
const reTime = new RegExp("<time>")
58+
const timeB = timeHolder.replace(reTime, time)
59+
60+
//contentB
61+
prefix = prefix.replace(/\*/g,"\\*") //fix regex
62+
const re = new RegExp(`^${(prefix === "*" ) ? "\*" : prefix}{1,6}\s+`)
63+
let contentB = re.test(block.content)
64+
? block.content.replace(re, '')
65+
: block.content;
66+
67+
// const mdHeader = "#".repeat(logseq.settings.level)
68+
69+
// const linePrefix = (logseq.settings.markup)
70+
// ? markupHeadMrk[logseq.settings.markup]
71+
// : logseq.settings.cstPrefix
72+
73+
74+
// const timePrefix = (logseq.settings.markup) ? markupTimeMrk[logseq.settings.markup] : false
75+
// let timestamp = (logseq.settings.defaultTitle) ? " <time> " : timePrefix + "<time>" + timePrefix + " "
76+
// const re2 =
77+
78+
// let prefix = simple ? linePrefix.repeat(logseq.settings.level) : ''
79+
80+
await logseq.Editor.updateBlock(
81+
block.uuid,
82+
`${prefixB} ${timeB} ${contentB} `
83+
);
5084
}
5185

5286
async function insertInterstitional(simple) {
@@ -99,6 +133,7 @@ async function parseQuery(randomQuery,queryTag){
99133

100134
async function onTemplate(uuid){
101135
//is block(uuid) on a template?
136+
//returns boolean
102137
try {
103138
const block = await logseq.Editor.getBlock(uuid, {includeChildren: false})
104139
const checkTPL = (block.properties && block.properties.template != undefined) ? true : false

0 commit comments

Comments
 (0)