Cleaned and fixed the org link broken export error
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
:ID: 3a8274ef-f2fe-486d-9caf-0c56982b9917
|
:ID: 3a8274ef-f2fe-486d-9caf-0c56982b9917
|
||||||
:END:
|
:END:
|
||||||
#+title: RSS Articles
|
#+title: RSS Articles
|
||||||
|
#+filetags: :research:articles:
|
||||||
|
|
||||||
* [[https://blog.pragmaticengineer.com/downdetector-and-the-real-cost-of-no-upstream-dependencies/][Downdetector and the real cost of no upstream dependencies]]
|
* [[https://blog.pragmaticengineer.com/downdetector-and-the-real-cost-of-no-upstream-dependencies/][Downdetector and the real cost of no upstream dependencies]]
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
|
|||||||
@@ -244,11 +244,6 @@
|
|||||||
"title": "haskell_notes",
|
"title": "haskell_notes",
|
||||||
"url": "/20241212013207-haskell_notes.html"
|
"url": "/20241212013207-haskell_notes.html"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"id": "dc9ece84-0b14-4afd-b25a-786cf1618996",
|
|
||||||
"title": "HFDP",
|
|
||||||
"url": "/Head First Design Patterns.html"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"id": "086ca3ca-39ec-4d37-b56d-b6d9f51e6873",
|
"id": "086ca3ca-39ec-4d37-b56d-b6d9f51e6873",
|
||||||
"title": "how-to-solve-leetcode",
|
"title": "how-to-solve-leetcode",
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ This file is auto-generated. Do not edit manually.
|
|||||||
|
|
||||||
* H
|
* H
|
||||||
- [[id:347d2663-515b-4d9a-9ee9-7706ee86a845][haskell_notes]]
|
- [[id:347d2663-515b-4d9a-9ee9-7706ee86a845][haskell_notes]]
|
||||||
- [[id:dc9ece84-0b14-4afd-b25a-786cf1618996][HFDP]]
|
|
||||||
- [[id:086ca3ca-39ec-4d37-b56d-b6d9f51e6873][how-to-solve-leetcode]]
|
- [[id:086ca3ca-39ec-4d37-b56d-b6d9f51e6873][how-to-solve-leetcode]]
|
||||||
|
|
||||||
* I
|
* I
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
#+title: HFDP
|
|
||||||
|
|
||||||
* Head First Design Patterns
|
|
||||||
:PROPERTIES:
|
|
||||||
:NOTER_DOCUMENT: ../../../pdfs/bootcamp/Head First Design Patterns.pdf
|
|
||||||
:ID: dc9ece84-0b14-4afd-b25a-786cf1618996
|
|
||||||
:END:
|
|
||||||
|
|
||||||
** Chapter 1
|
|
||||||
:PROPERTIES:
|
|
||||||
:NOTER_PAGE: 36
|
|
||||||
:END:
|
|
||||||
*** Structural:
|
|
||||||
The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
|
|
||||||
|
|
||||||
- Encapsulate what varies
|
|
||||||
|
|
||||||
- Favor composition over inheritance
|
|
||||||
|
|
||||||
- Program to interfaces, not implementations
|
|
||||||
|
|
||||||
** Chapter 2
|
|
||||||
:PROPERTIES:
|
|
||||||
:NOTER_PAGE: 82
|
|
||||||
:END:
|
|
||||||
*** Observer:
|
|
||||||
The Observer Pattern defines a one-to-many dependency between objects so that when
|
|
||||||
one object changes state, all of its dependents are notified and updated automatically.
|
|
||||||
|
|
||||||
Subjects, or as we also know them, Observables, update Observers using a common
|
|
||||||
interface
|
|
||||||
|
|
||||||
Observers are loosely coupled in that the Observable knows nothing about them,
|
|
||||||
other than that they implement the Observer interface.
|
|
||||||
|
|
||||||
You can push or pull data from the Observable when using the pattern (pull is
|
|
||||||
considered more “correct”).
|
|
||||||
|
|
||||||
Don’t depend on a specific order of notification for your Observers.
|
|
||||||
|
|
||||||
Java has several implementations of the Observer Pattern, including the general
|
|
||||||
purpose java.util.Observable
|
|
||||||
|
|
||||||
- Strive for loosely coupled designs between objects that interact
|
|
||||||
** Notes for page 137
|
|
||||||
:PROPERTIES:
|
|
||||||
:NOTER_PAGE: 137
|
|
||||||
:END:
|
|
||||||
|
|
||||||
- Classes should be open for extension, but closed for modification.
|
|
||||||
** Notes for page 142
|
|
||||||
:PROPERTIES:
|
|
||||||
:NOTER_PAGE: 142
|
|
||||||
:END:
|
|
||||||
Notes for the decaroter pattern.
|
|
||||||
** Notes for page 143
|
|
||||||
:PROPERTIES:
|
|
||||||
:NOTER_PAGE: 143
|
|
||||||
:END:
|
|
||||||
Decorator pattern: The Decorator Pattern attaches additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.
|
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
:ID: DE792A73-FD00-4048-82D8-AB6E84E869F2
|
:ID: DE792A73-FD00-4048-82D8-AB6E84E869F2
|
||||||
:END:
|
:END:
|
||||||
#+title: Index
|
#+title: Index
|
||||||
|
#+filetags: :index:
|
||||||
|
|
||||||
* [[id:b2fb976a-c23c-4275-8a53-da343c223b97][Brain MOC]]
|
* [[id:b2fb976a-c23c-4275-8a53-da343c223b97][Brain MOC]]
|
||||||
|
|
||||||
|
|||||||
@@ -25,10 +25,10 @@
|
|||||||
(require 'seq)
|
(require 'seq)
|
||||||
(require 'cl-lib)
|
(require 'cl-lib)
|
||||||
|
|
||||||
(setq org-export-with-broken-links t)
|
;(setq org-export-with-broken-links t)
|
||||||
|
|
||||||
(setq org-id-locations-file "~/.emacs.d/.org-id-locations")
|
(setq org-id-locations-file "~/.emacs.d/.org-id-locations")
|
||||||
|
|
||||||
(defun z/org-html-wrap-content-for-stack (orig-fun contents info)
|
(defun z/org-html-wrap-content-for-stack (orig-fun contents info)
|
||||||
"Wrap Org HTML #content in stack container, leaving postamble outside."
|
"Wrap Org HTML #content in stack container, leaving postamble outside."
|
||||||
(let* ((html (funcall orig-fun contents info))
|
(let* ((html (funcall orig-fun contents info))
|
||||||
@@ -194,14 +194,6 @@ Created with %c on <a href=\"https://www.archlinux.org/\">Arch</a> <a href=\"htt
|
|||||||
;; Configure LaTeX image generation
|
;; Configure LaTeX image generation
|
||||||
(setq org-latex-create-formula-image-program 'imagemagick)
|
(setq org-latex-create-formula-image-program 'imagemagick)
|
||||||
|
|
||||||
(setq org-roam-file-exclude-regexp
|
|
||||||
(concat
|
|
||||||
"\\.sync-conflict-"
|
|
||||||
"\\|all-files\\.org$"
|
|
||||||
"\\|#"
|
|
||||||
"\\|\\.~"
|
|
||||||
"\\|<.*>$"))
|
|
||||||
|
|
||||||
(defun my/get-org-roam-backlinks (filename)
|
(defun my/get-org-roam-backlinks (filename)
|
||||||
"Return backlinks for the given org-roam file. FILENAME should be the full path to the org-roam file."
|
"Return backlinks for the given org-roam file. FILENAME should be the full path to the org-roam file."
|
||||||
(save-excursion
|
(save-excursion
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ def generate_search_index(org_dir, out_file):
|
|||||||
org_dir = Path(org_dir).expanduser()
|
org_dir = Path(org_dir).expanduser()
|
||||||
out_file = Path(out_file).expanduser()
|
out_file = Path(out_file).expanduser()
|
||||||
|
|
||||||
# Recursively find all .org files (excluding Emacs lockfiles like .#foo.org)
|
|
||||||
org_files = [
|
org_files = [
|
||||||
f for f in org_dir.rglob("*.org")
|
f for f in org_dir.rglob("*.org")
|
||||||
if not re.search(r"/\.#[^/]+\.org$", str(f))
|
if not re.search(r"/\.#[^/]+\.org$", str(f))
|
||||||
@@ -34,10 +33,12 @@ def generate_search_index(org_dir, out_file):
|
|||||||
index = []
|
index = []
|
||||||
for file_path in org_files:
|
for file_path in org_files:
|
||||||
org_id, title = get_org_id_and_title(file_path)
|
org_id, title = get_org_id_and_title(file_path)
|
||||||
|
filepath_relative = file_path.relative_to(org_dir).with_suffix('')
|
||||||
|
|
||||||
if org_id:
|
if org_id:
|
||||||
index.append({
|
index.append({
|
||||||
"title": title,
|
"title": title,
|
||||||
"url": f"/{file_path.stem}.html",
|
"url": f"/{filepath_relative}.html",
|
||||||
"id": org_id
|
"id": org_id
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user