Browse Source

lazygit

main
Gregory Leeman 2 weeks ago
parent
commit
4b7c700c62
  1. 2
      workflowy-helper/diary.opml
  2. 48
      workflowy-helper/diary.py
  3. 6
      workflowy-helper/main.js
  4. 70
      workflowy-helper/style.css

2
workflowy-helper/diary.opml

File diff suppressed because one or more lines are too long

48
workflowy-helper/diary.py

@ -1,41 +1,38 @@
import xml.etree.ElementTree as ET import xml.etree.ElementTree as ET
import datetime import datetime
# Function to generate the outline for a given week def ordinal(n):
if 11 <= n % 100 <= 13:
suffix = 'th'
else:
suffix = {1: 'st', 2: 'nd', 3: 'rd'}.get(n % 10, 'th')
return str(n) + suffix
def generate_weekly_opml(week_num, year=2025): def generate_weekly_opml(week_num, year=2025):
# Start of the week (Sunday)
start_date = datetime.date(year, 1, 1) + datetime.timedelta(weeks=week_num-1) start_date = datetime.date(year, 1, 1) + datetime.timedelta(weeks=week_num-1)
# Adjust to get the Sunday of the week (since Python's datetime module uses Monday as the start of the week)
start_date = start_date - datetime.timedelta(days=start_date.weekday() + 1) start_date = start_date - datetime.timedelta(days=start_date.weekday() + 1)
# monday_date = start_date + datetime.timedelta(days=1) day_date = start_date
weekday = day_date.strftime('%A')
# Create the root element for the week outline with Sunday date as a note week_outline = ET.Element(
# week_outline = ET.Element("outline", text=f"2025 Week {week_num}", _note=f"<time startYear='2025' startMonth='{monday_date.month}' startDay='{monday_date.day}'>Monday, {monday_date.strftime('%b')} {monday_date.day}, 2025</time>") "outline",
week_outline = ET.Element("outline", text=f"2025 Week {week_num}") text=f"2025 Week {week_num}",
# ET.SubElement(week_outline, "outline") _note=f"<time startYear='2025' startMonth='{day_date.month}' startDay='{day_date.day}'> {weekday[:3]}, {day_date.strftime('%b')} {day_date.day}, 2025</time>"
)
# Loop through the days of the week (Sunday to Saturday) empty = ET.SubElement(week_outline, "outline", text="")
for i in range(7): for i in range(7):
day_date = start_date + datetime.timedelta(days=i) day_date = start_date + datetime.timedelta(days=i)
weekday = day_date.strftime('%A') weekday = day_date.strftime('%A')
# Create the day outline with a link for tasks
day_outline = ET.SubElement( day_outline = ET.SubElement(
week_outline, week_outline,
"outline", "outline",
text=f"<b><span class='colored bc-{get_color(weekday)}'>{weekday}</span></b>", text=f"<b><span class='colored c-{get_color(weekday)}'>{weekday} {ordinal(day_date.day)} {day_date.strftime('%b')}</span></b>",
_note=f"<time startYear='2025' startMonth='{day_date.month}' startDay='{day_date.day}'> {weekday[:3]}, {day_date.strftime('%b')} {day_date.day}, 2025</time>" _note=f"<time startYear='2025' startMonth='{day_date.month}' startDay='{day_date.day}'> {weekday[:3]}, {day_date.strftime('%b')} {day_date.day}, 2025</time>"
) )
# Example of activities (these can be customized)
if weekday in ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']: if weekday in ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']:
outline = ET.SubElement(day_outline, "outline", text="") outline = ET.SubElement(day_outline, "outline", text="")
return week_outline return week_outline
# Function to return a color based on the weekday (for styling)
def get_color(weekday): def get_color(weekday):
colors = { colors = {
"Sunday": "purple", "Sunday": "purple",
@ -48,33 +45,22 @@ def get_color(weekday):
} }
return colors.get(weekday, "gray") return colors.get(weekday, "gray")
# Function to create OPML for all weeks in 2025 and the first week of 2026
def create_opml_for_year_and_first_week_2026(): def create_opml_for_year_and_first_week_2026():
root_opml = ET.Element("opml", version="2.0") root_opml = ET.Element("opml", version="2.0")
head = ET.SubElement(root_opml, "head") head = ET.SubElement(root_opml, "head")
owner_email = ET.SubElement(head, "ownerEmail") owner_email = ET.SubElement(head, "ownerEmail")
owner_email.text = "[email protected]" owner_email.text = "[email protected]"
body = ET.SubElement(root_opml, "body") body = ET.SubElement(root_opml, "body")
for week_num in range(1, 53):
# Generate OPML for each week of 2025
for week_num in range(1, 53): # There are 52 weeks in 2025
week_opml = generate_weekly_opml(week_num) week_opml = generate_weekly_opml(week_num)
body.append(week_opml) body.append(week_opml)
# Now, handle the first week of 2026
week_2026_opml = generate_weekly_opml(1, year=2026) week_2026_opml = generate_weekly_opml(1, year=2026)
body.append(week_2026_opml) body.append(week_2026_opml)
# Generate the final tree
tree = ET.ElementTree(root_opml) tree = ET.ElementTree(root_opml)
return tree return tree
# Create the OPML file
def save_opml_to_file(filename="diary.opml"): def save_opml_to_file(filename="diary.opml"):
tree = create_opml_for_year_and_first_week_2026() tree = create_opml_for_year_and_first_week_2026()
tree.write(filename, encoding="utf-8", xml_declaration=True) tree.write(filename, encoding="utf-8", xml_declaration=True)
# Call the function to create the OPML
save_opml_to_file() save_opml_to_file()

6
workflowy-helper/main.js

@ -155,14 +155,10 @@
tag.classList.add("tag"); tag.classList.add("tag");
tag.classList.add("tag-" + tagText); tag.classList.add("tag-" + tagText);
} }
var computedStyle = window.getComputedStyle(tag);
// if (computedStyle.backgroundColor === "rgb(227, 160, 8)") {
// tag.classList.add("tag-yellow");
// }
}); });
const links = n.querySelectorAll('.contentLink'); const links = n.querySelectorAll('.contentLink');
links.forEach(link => { links.forEach(link => {
// link.spellcheck = false; link.spellcheck = false;
const nonLetterRegex = /[^a-zA-Z0-9]/g; const nonLetterRegex = /[^a-zA-Z0-9]/g;
var linkFull = link.innerText.trim().replace(nonLetterRegex, ''); var linkFull = link.innerText.trim().replace(nonLetterRegex, '');
if (linkFull.startsWith("x")) { if (linkFull.startsWith("x")) {

70
workflowy-helper/style.css

@ -40,10 +40,10 @@ body {
color: var(--grey) !important; color: var(--grey) !important;
} }
.root:not(.board) > .children, /* .root:not(.board) > .children, */
.root:not(.board) > .name { /* .root:not(.board) > .name { */
/* max-width: 800px; */ /* /1* max-width: 800px; *1/ */
} /* } */
body::-webkit-scrollbar { body::-webkit-scrollbar {
display: none; /* Chrome, Safari, Opera */ display: none; /* Chrome, Safari, Opera */
@ -64,9 +64,9 @@ body::-webkit-scrollbar {
.name > .content { /* .name > .content { */
white-space: nowrap; /* white-space: nowrap; */
} /* } */
.name > .content > .innerContentContainer { .name > .content > .innerContentContainer {
overflow: hidden; overflow: hidden;
@ -282,36 +282,62 @@ body::-webkit-scrollbar {
color: var(--white) !important; color: var(--white) !important;
} }
.linked.tagged-done > .name > .content, .tagged-done > .name > .content,
.linked.tagged-done > .notes > .content, .tagged-done > .notes > .content,
.linked.tagged-done > .name time > span, .tagged-done > .name time > span,
.linked.tagged-missed > .name > .content, .tagged-missed > .name > .content,
.linked.tagged-missed > .notes > .content, .tagged-missed > .notes > .content,
.linked.tagged-missed > .name time > span, .tagged-missed > .name time > span,
.linked.tagged-na > .name > .content, .tagged-na > .name > .content,
.linked.tagged-na > .notes > .content, .tagged-na > .notes > .content,
.linked.tagged-na > .name time > span { .tagged-na > .name time > span {
/* opacity: 0.5 !important; */ /* opacity: 0.5 !important; */
/* text-decoration: none !important; */ /* text-decoration: none !important; */
text-decoration: line-through !important; text-decoration: line-through !important;
text-decoration-thickness: 2px !important; text-decoration-thickness: 2px !important;
} }
.linked.tagged-done > .name > .content, .tagged-done > .name > .content,
.linked.tagged-done > .name time > span { .tagged-done > .name time > span {
text-decoration-color: var(--green) !important; text-decoration-color: var(--green) !important;
} }
.linked.tagged-missed > .name > .content, .tagged-missed > .name > .content,
.linked.tagged-missed > .name time > span { .tagged-missed > .name time > span {
text-decoration-color: var(--red) !important; text-decoration-color: var(--red) !important;
} }
.linked.tagged-na > .name > .content, .tagged-na > .name > .content,
.linked.tagged-na > .name time > span { .tagged-na > .name time > span {
text-decoration-color: var(--blue) !important; text-decoration-color: var(--blue) !important;
} }
.tag-new { .tag-new {
color: var(--blue) !important; color: var(--blue) !important;
} }
.tagged-e > .name > .content > .innerContentContainer,
.tagged-e > .name > .content > .innerContentContainer > .contentTag {
background-color: var(--red) !important;
color: var(--black) !important;
}
.tagged-r > .name > .content > .innerContentContainer,
.tagged-r > .name > .content > .innerContentContainer > .contentTag {
background-color: var(--blue) !important;
color: var(--black) !important;
}
.tagged-g > .name > .content > .innerContentContainer,
.tagged-g > .name > .content > .innerContentContainer > .contentTag {
background-color: var(--yellow) !important;
color: var(--black) !important;
}
.tagged-w > .name > .content > .innerContentContainer {
color: var(--red) !important;
}
.tagged-p > .name > .content > .innerContentContainer {
color: var(--green) !important;
}

Loading…
Cancel
Save