diff --git a/.github/workflows/Deploy.yml b/.github/workflows/Deploy.yml index 49a7dd0..093f9fe 100644 --- a/.github/workflows/Deploy.yml +++ b/.github/workflows/Deploy.yml @@ -18,6 +18,9 @@ jobs: permissions: write-all steps: - uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 - name: 👀 Set preview path for PRs run: | diff --git a/.gitignore b/.gitignore index bd4b8d5..a59750d 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,8 @@ node_modules/ package-lock.json CLAUDE.md __cache +# Vault sync outputs (generated by make.jl / ObsidianXranklin.sync_vault) +notes/*/ +_assets/vault/ +_assets/graph_data.json +_assets/graph-view.js diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..76a80ed --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "vault"] + path = vault + url = git@github.com:BonhamLab/LabWiki.git diff --git a/Manifest.toml b/Manifest.toml index ae31396..c99ef84 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.12.1" +julia_version = "1.12.5" manifest_format = "2.0" -project_hash = "ea2907a67fa7ba6f556e5d80c73d551c9d3af39f" +project_hash = "7d26a9a303d8e4c1df25a3417fefe15a141671a4" [[deps.ANSIColoredPrinters]] git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" @@ -49,11 +49,16 @@ version = "4.18.1" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.3.0+1" + [[deps.ConcurrentUtilities]] deps = ["Serialization", "Sockets"] -git-tree-sha1 = "d9d26935a0bcffc87d2613ce14c527c99fc543fd" +git-tree-sha1 = "21d088c496ea22914fe80906eb5bce65755e5ec8" uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.5.0" +version = "2.5.1" [[deps.Dates]] deps = ["Printf"] @@ -63,7 +68,7 @@ version = "1.11.0" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -version = "1.6.0" +version = "1.7.0" [[deps.ExceptionUnwrapping]] deps = ["Test"] @@ -106,15 +111,15 @@ version = "3.7.0+0" [[deps.Git_jll]] deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "e2aef26f7d273f1e5b1daba56837c47b49b4388f" +git-tree-sha1 = "dc34a3e3d96b4ed305b641e626dc14c12b7824b8" uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" -version = "2.51.1+0" +version = "2.53.0+0" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "5e6fe50ae7f23d171f44e311c2960294aaa0beb5" +git-tree-sha1 = "51059d23c8bb67911a2e6fd5130229113735fc7e" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.19" +version = "1.11.0" [[deps.Hyperscript]] deps = ["Test"] @@ -154,9 +159,9 @@ version = "1.7.1" [[deps.JSON]] deps = ["Dates", "Logging", "Parsers", "PrecompileTools", "StructUtils", "UUIDs", "Unicode"] -git-tree-sha1 = "06ea418d0c95878c8f3031023951edcf25b9e0ef" +git-tree-sha1 = "b3ad4a0255688dcb895a52fafbaae3023b588a90" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "1.2.0" +version = "1.4.0" [deps.JSON.extensions] JSONArrowExt = ["ArrowTypes"] @@ -164,6 +169,18 @@ version = "1.2.0" [deps.JSON.weakdeps] ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" +[[deps.JSON3]] +deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] +git-tree-sha1 = "411eccfe8aba0814ffa0fdf4860913ed09c34975" +uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" +version = "1.14.3" + + [deps.JSON3.extensions] + JSON3ArrowExt = ["ArrowTypes"] + + [deps.JSON3.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" + [[deps.JuliaSyntaxHighlighting]] deps = ["StyledStrings"] uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011" @@ -177,7 +194,7 @@ version = "0.6.4" [[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "8.11.1+1" +version = "8.15.0+0" [[deps.LibGit2]] deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"] @@ -206,9 +223,9 @@ version = "1.18.0+0" [[deps.Literate]] deps = ["Base64", "IOCapture", "JSON", "REPL"] -git-tree-sha1 = "da046be6d63304f7ba9c1bb04820fb306ba1ab12" +git-tree-sha1 = "bb26d8b8ed0fa451ce3511e99c950653a2f31fe1" uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" -version = "2.20.1" +version = "2.21.0" [[deps.LiveServer]] deps = ["HTTP", "LoggingExtras", "MIMEs", "Sockets", "Test"] @@ -238,15 +255,19 @@ version = "1.11.0" [[deps.MbedTLS]] deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] -git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +git-tree-sha1 = "8785729fa736197687541f7053f6d8ab7fc44f92" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.9" +version = "1.1.10" [[deps.MbedTLS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "3cce3511ca2c6f87b19c34ffc623417ed2798cbd" +git-tree-sha1 = "ff69a2b1330bcb730b9ac1ab7dd680176f5896b8" uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.10+0" +version = "2.28.1010+0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" +version = "1.11.0" [[deps.Mocking]] deps = ["Compat", "ExprTools"] @@ -256,7 +277,7 @@ version = "0.8.1" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2025.5.20" +version = "2025.11.4" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" @@ -268,6 +289,12 @@ git-tree-sha1 = "bf1f49fd62754064bc42490a8ddc2aa3694a8e7a" uuid = "2bd173c7-0d6d-553b-b6af-13a54713934c" version = "2.0.0" +[[deps.ObsidianXranklin]] +deps = ["Dates", "JSON3", "YAML"] +path = "../ObsidianXranklin.jl" +uuid = "8d335cfd-d756-4e08-9ddc-49de0f021f04" +version = "0.1.0" + [[deps.OpenSSH_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll", "Zlib_jll"] git-tree-sha1 = "301412a644646fdc0ad67d0a87487466b491e53d" @@ -275,15 +302,15 @@ uuid = "9bd350c2-7e96-507f-8002-3f2e150b4e1b" version = "10.2.1+0" [[deps.OpenSSL]] -deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "f1a7e086c677df53e064e0fdd2c9d0b0833e3f6e" +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "NetworkOptions", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "1d1aaa7d449b58415f97d2839c318b70ffb525a0" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.5.0" +version = "1.6.1" [[deps.OpenSSL_jll]] deps = ["Artifacts", "Libdl"] uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.5.1+0" +version = "3.5.4+0" [[deps.OrderedCollections]] git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" @@ -304,7 +331,7 @@ version = "2.8.3" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.12.0" +version = "1.12.1" weakdeps = ["REPL"] [deps.Pkg.extensions] @@ -318,9 +345,9 @@ version = "1.3.3" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "0f27480397253da18fe2c12a4ba4eb9eb208bf3d" +git-tree-sha1 = "8b770b60760d4451834fe79dd483e318eee709c4" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.5.0" +version = "1.5.2" [[deps.Printf]] deps = ["Unicode"] @@ -365,11 +392,23 @@ version = "1.2.0" uuid = "6462fe0b-24de-5631-8697-dd941f90decc" version = "1.11.0" +[[deps.StringEncodings]] +deps = ["Libiconv_jll"] +git-tree-sha1 = "b765e46ba27ecf6b44faf70df40c57aa3a547dcb" +uuid = "69024149-9ee7-55f6-a4c4-859efe599b68" +version = "0.3.7" + +[[deps.StructTypes]] +deps = ["Dates", "UUIDs"] +git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8" +uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" +version = "1.11.0" + [[deps.StructUtils]] deps = ["Dates", "UUIDs"] -git-tree-sha1 = "cd47aa083c9c7bdeb7b92de26deb46d6a33163c9" +git-tree-sha1 = "28145feabf717c5d65c1d5e09747ee7b1ff3ed13" uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42" -version = "2.5.1" +version = "2.6.3" [deps.StructUtils.extensions] StructUtilsMeasurementsExt = ["Measurements"] @@ -406,9 +445,9 @@ version = "1.11.0" [[deps.TimeZones]] deps = ["Artifacts", "Dates", "Downloads", "InlineStrings", "Mocking", "Printf", "Scratch", "TZJData", "Unicode", "p7zip_jll"] -git-tree-sha1 = "06f4f1f3e8ff09e42e59b043a747332e88e01aba" +git-tree-sha1 = "d422301b2a1e294e3e4214061e44f338cafe18a2" uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" -version = "1.22.1" +version = "1.22.2" [deps.TimeZones.extensions] TimeZonesRecipesBaseExt = "RecipesBase" @@ -437,10 +476,18 @@ version = "1.11.0" [[deps.Xranklin]] deps = ["ANSIColoredPrinters", "CRC32c", "Dates", "FranklinParser", "IOCapture", "LiveServer", "Logging", "Markdown", "OrderedCollections", "Pkg", "REPL", "Reexport", "Serialization", "TOML", "URIs"] -path = "../Xranklin.jl" +git-tree-sha1 = "e6f2ea98dd566b8b6f3418b6fdfa7c7562cb9320" +repo-rev = "main" +repo-url = "git@github.com:tlienart/Xranklin.jl.git" uuid = "558449b0-171e-4e1f-900f-d076a5ddf486" version = "0.1.0" +[[deps.YAML]] +deps = ["Base64", "Dates", "Printf", "StringEncodings"] +git-tree-sha1 = "a1c0c7585346251353cddede21f180b96388c403" +uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6" +version = "0.4.16" + [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" @@ -452,6 +499,6 @@ uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.64.0+1" [[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.5.0+2" +version = "17.7.0+0" diff --git a/Project.toml b/Project.toml index b8af3b6..9c0046f 100644 --- a/Project.toml +++ b/Project.toml @@ -4,5 +4,6 @@ Git = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" Hyperscript = "47d2ed2b-36de-50cf-bf87-49c2cf4b8b91" Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306" NodeJS = "2bd173c7-0d6d-553b-b6af-13a54713934c" +ObsidianXranklin = "8d335cfd-d756-4e08-9ddc-49de0f021f04" TimeZones = "f269a46b-ccf7-5d73-abea-4c690281aa53" Xranklin = "558449b0-171e-4e1f-900f-d076a5ddf486" diff --git a/_css/callouts.css b/_css/callouts.css new file mode 100644 index 0000000..cbc7cd6 --- /dev/null +++ b/_css/callouts.css @@ -0,0 +1,110 @@ +/* Obsidian callout blocks */ + +.callout { + border-radius: 6px; + margin: 1.2em 0; + padding: 0.8em 1em; + border-left: 4px solid #aaaaaa; + background-color: #f8f8f8; +} + +.callout-title { + font-weight: 600; + margin-bottom: 0.4em; + font-size: 0.95em; + text-transform: uppercase; + letter-spacing: 0.03em; +} + +.callout-content > p:first-child { margin-top: 0; } +.callout-content > p:last-child { margin-bottom: 0; } + +/* Type-specific colors */ + +.callout-note { border-left-color: #448aff; background-color: #e8f0fe; } +.callout-note .callout-title { color: #1a5ccc; } + +.callout-info { border-left-color: #00bcd4; background-color: #e0f7fa; } +.callout-info .callout-title { color: #006d7a; } + +.callout-tip, +.callout-hint, +.callout-important { border-left-color: #00c853; background-color: #e8f5e9; } +.callout-tip .callout-title, +.callout-hint .callout-title, +.callout-important .callout-title { color: #2e7d32; } + +.callout-warning, +.callout-caution, +.callout-attention { border-left-color: #ff9800; background-color: #fff8e1; } +.callout-warning .callout-title, +.callout-caution .callout-title, +.callout-attention .callout-title { color: #e65100; } + +.callout-danger, +.callout-error, +.callout-failure, +.callout-fail, +.callout-missing { border-left-color: #f44336; background-color: #fdecea; } +.callout-danger .callout-title, +.callout-error .callout-title, +.callout-failure .callout-title, +.callout-fail .callout-title, +.callout-missing .callout-title { color: #b71c1c; } + +.callout-question, +.callout-help, +.callout-faq { border-left-color: #9c27b0; background-color: #f3e5f5; } +.callout-question .callout-title, +.callout-help .callout-title, +.callout-faq .callout-title { color: #6a1b9a; } + +.callout-success, +.callout-check, +.callout-done { border-left-color: #4caf50; background-color: #e8f5e9; } +.callout-success .callout-title, +.callout-check .callout-title, +.callout-done .callout-title { color: #1b5e20; } + +.callout-example { border-left-color: #7c4dff; background-color: #ede7f6; } +.callout-example .callout-title { color: #4527a0; } + +.callout-quote, +.callout-cite { border-left-color: #9e9e9e; background-color: #f5f5f5; } +.callout-quote .callout-title, +.callout-cite .callout-title { color: #424242; } + +/* Unpublished wiki-links */ + +a[href="#wikilink-missing"] { + color: #999; + text-decoration: none; + border-bottom: 1px dashed #bbb; + pointer-events: none; + cursor: default; +} + +/* Obsidian Bases table */ + +.obsidian-base { + border-collapse: collapse; + width: 100%; + margin: 1em 0; + font-size: 0.95em; +} + +.obsidian-base th, +.obsidian-base td { + border: 1px solid #ddd; + padding: 0.5em 0.8em; + text-align: left; +} + +.obsidian-base th { + background-color: #f0f0f0; + font-weight: 600; +} + +.obsidian-base tr:nth-child(even) { + background-color: #fafafa; +} diff --git a/_layout/header.html b/_layout/header.html index ade68da..37ab3d6 100644 --- a/_layout/header.html +++ b/_layout/header.html @@ -6,7 +6,7 @@
  • {{nav_link /people/ People}}
  • {{nav_link /protocols/ Protocols}}
  • {{nav_link /projects/ Projects}}
  • -
  • {{nav_link https://publish.obsidian.md/bonhamlab Wiki}}
  • +
  • {{nav_link /notes/ Wiki}}
  • diff --git a/_layout/style.html b/_layout/style.html index f3ad8bf..ca1d31f 100644 --- a/_layout/style.html +++ b/_layout/style.html @@ -1,4 +1,5 @@ + diff --git a/config.jl b/config.jl index 502ac14..909c6f6 100644 --- a/config.jl +++ b/config.jl @@ -3,3 +3,7 @@ website_descr = "Website for the Bonham Lab at Tufts Medical Center" website_url = "http://bonhamlab.github.io/" author = "Kevin Bonham, PhD" + +ignore = ["vault/", "CLAUDE.md"] + +obsidian_home = "bonham-lab-wiki" diff --git a/make.jl b/make.jl new file mode 100644 index 0000000..412fdf4 --- /dev/null +++ b/make.jl @@ -0,0 +1,9 @@ +using Pkg +Pkg.activate(@__DIR__) + +using ObsidianXranklin + +ObsidianXranklin.sync_vault("vault", "."; + output_dir = "notes", + index_note = "bonham-lab-wiki", +) diff --git a/notes/graph.md b/notes/graph.md new file mode 100644 index 0000000..363c082 --- /dev/null +++ b/notes/graph.md @@ -0,0 +1,9 @@ ++++ +title = "Notes Graph" ++++ + +# Notes Graph + +Interactive map of published notes and their connections. Click a node to navigate to that note. + +{{obsidian_graph}} diff --git a/notes/index.md b/notes/index.md new file mode 100644 index 0000000..1e1f926 --- /dev/null +++ b/notes/index.md @@ -0,0 +1,17 @@ ++++ +category = "home" ++++ +# Welcome to the Bonham Lab Wiki! + +Here you'll find info about the goings on in the Bonham Lab. +For the main lab website, go to https://lab.bonham.ch + +If you're a new lab member, check out [Getting Started](/notes/getting-started/), and [Using Obsidian](/notes/using-obsidian/). + +## Protocols + +- [Getting Started](/notes/getting-started/) +- [Using Obsidian](/notes/using-obsidian/) +- [Coding and version control](/notes/coding-and-version-control/) +- [High performance computing](#wikilink-missing) +- [Benchwork and wetlab protocols](#wikilink-missing) diff --git a/utils.jl b/utils.jl index adb1c0e..b6f0dd3 100644 --- a/utils.jl +++ b/utils.jl @@ -1,6 +1,14 @@ using Literate using TimeZones using Git +import ObsidianXranklin + +if isdir("vault") + ObsidianXranklin.sync_vault("vault", "."; + output_dir = "notes", + index_note = getgvar(:obsidian_home, nothing), + ) +end @reexport using Dates import Hyperscript as HS @@ -150,6 +158,8 @@ function get_projects(basepath::String="projects") end # Add this to your utils.jl file +hfun_obsidian_graph() = ObsidianXranklin.hfun_obsidian_graph() + function hfun_nav_link(args) # Get the current page path (href, text) = args diff --git a/vault b/vault new file mode 160000 index 0000000..069e682 --- /dev/null +++ b/vault @@ -0,0 +1 @@ +Subproject commit 069e6822bdd46f49fe6a736d1f75045d2e268b2c