Skip to content

Comments

Back to ssg#19

Open
kescobo wants to merge 3 commits intomainfrom
back-to-ssg
Open

Back to ssg#19
kescobo wants to merge 3 commits intomainfrom
back-to-ssg

Conversation

@kescobo
Copy link
Member

@kescobo kescobo commented Feb 18, 2026

This deletes all of the package / documenter / vitepress stuff and takes us back to a Xranklin.jl SSG.

Rosalind posts are maintained, and automatically displayed using the {{list_dir rosalind}} function. On the homepage, the {{list_series}} function should grab subdirectories that have their own index.md file so that we can add new tutorial series later.

<a href="http://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> {{ fill author }}
{{isnotpage /tag/*}} · Last modified: {{ fill fd_mtime }}{{end}}
<br>
Built with <a href="https://github.com/tlienart/Xranklin.jl">Xranklin.jl</a>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be Franklin?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gotcha -- there is Franklin and Xranklin. :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, Xranklin is a complete rewrite of Franklin that was going to become Franklin v2. But the author got very busy and has stepped back from Julia development. It's totally functional though.

@danielle-pinto
Copy link
Collaborator

What's the best way to review this code? I'm going to try and run it on a local server and do a sanity check as a first pass. I noticed a minor typo which is currently leading to an error.

@kescobo
Copy link
Member Author

kescobo commented Feb 20, 2026

You have to manually add https://github.com/tlienart/Xranklin.jl because it's not registered, instantiate, then using Xranklin; Xranklin.serve(). That should launch a preview in your browser

mintoclevel = 2
base_url_prefix = "BioTutorials"

ignore = ["node_modules/", "CLAUDE.md"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got the following error,

ERROR: ArgumentError: indices must be unique and sorted
Stacktrace:
  [1] _throw_argerror(s::String)
    @ Base ./array.jl:317
  [2] _deleteat!(a::Vector{FranklinParser.Block}, inds::Vector{Int64}, dltd::Base.Nowhere)
    @ Base ./array.jl:1897
  [3] _deleteat!
    @ ./array.jl:1884 [inlined]
  [4] deleteat!
    @ ./array.jl:1859 [inlined]
  [5] form_links!(blocks::Vector{FranklinParser.Block})
    @ FranklinParser ~/.julia/packages/FranklinParser/pgHS0/src/blocks/find_blocks.jl:435
  [6] find_blocks(tokens::SubArray{FranklinParser.Token, 1, Vector{FranklinParser.Token}, Tuple{UnitRange{Int64}}, true}; is_md::Bool)
    @ FranklinParser ~/.julia/packages/FranklinParser/pgHS0/src/blocks/find_blocks.jl:47
  [7] find_blocks
    @ ~/.julia/packages/FranklinParser/pgHS0/src/blocks/find_blocks.jl:8 [inlined]
  [8] #75
    @ ~/.julia/packages/FranklinParser/pgHS0/src/partition.jl:109 [inlined]
  [9] partition(s::SubString{…}, tokenizer::FranklinParser.var"#72#73"{…}, blockifier::FranklinParser.var"#75#76"; tokens::SubArray{…}, disable::Vector{…}, postproc::typeof(FranklinParser.default_md_postproc!))
    @ FranklinParser ~/.julia/packages/FranklinParser/pgHS0/src/partition.jl:41
 [10] md_partition(e::SubString{String}; kw::@Kwargs{})
    @ FranklinParser ~/.julia/packages/FranklinParser/pgHS0/src/partition.jl:112
 [11] md_partition
    @ ~/.julia/packages/FranklinParser/pgHS0/src/partition.jl:112 [inlined]
 [12] convert_md(md::SubString{…}, c::Xranklin.LocalContext; tohtml::Bool, nop::Bool, error_backtracking_iteration::Int64, kw::@Kwargs{})
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/convert/markdown/md_core.jl:45
 [13] convert_md
    @ ~/.julia/packages/Xranklin/eTwhW/src/convert/markdown/md_core.jl:20 [inlined]
 [14] convert_md(s::String, a::Xranklin.LocalContext; kw::@Kwargs{})
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/convert/markdown/md_core.jl:153
 [15] convert_md
    @ ~/.julia/packages/Xranklin/eTwhW/src/convert/markdown/md_core.jl:153 [inlined]
 [16] process_md_file_pass_1(lc::Xranklin.LocalContext, fpath::String; allow_init_skip::Bool)
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/process/md/pass_1.jl:72
 [17] process_md_file_pass_1
    @ ~/.julia/packages/Xranklin/eTwhW/src/process/md/pass_1.jl:19 [inlined]
 [18] _md_loop_1(gc::Xranklin.GlobalContext{…}, fp::Pair{…}, skip_dict::Dict{…}, allow_init_skip::Bool; reproc::Bool)
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/build/full_pass.jl:347
 [19] _md_loop_1
    @ ~/.julia/packages/Xranklin/eTwhW/src/build/full_pass.jl:337 [inlined]
 [20] full_pass_markdown(gc::Xranklin.GlobalContext{…}, watched::Dict{…}; skip_files::Vector{…}, allow_init_skip::Bool, final::Bool)
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/build/full_pass.jl:426
 [21] full_pass_markdown
    @ ~/.julia/packages/Xranklin/eTwhW/src/build/full_pass.jl:388 [inlined]
 [22] full_pass(gc::Xranklin.GlobalContext{…}, watched_files::Dict{…}; skip_files::Vector{…}, initial_pass::Bool, config_changed::Bool, utils_changed::Bool, allow_no_index::Bool, final::Bool)
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/build/full_pass.jl:179
 [23] serve(d::String; dir::String, folder::String, clear::Bool, final::Bool, single::Bool, eval::Bool, nocode::Bool, threads::Bool, use_threads::Bool, prepath::String, prefix::String, base_url_prefix::String, allow_no_index::Bool, debug::Bool, cleanup::Bool, skip::Vector{…}, port::Int64, host::String, launch::Bool)
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/build/serve.jl:222
 [24] serve
    @ ~/.julia/packages/Xranklin/eTwhW/src/build/serve.jl:58 [inlined]
 [25] serve()
    @ Xranklin ~/.julia/packages/Xranklin/eTwhW/src/build/serve.jl:58
 [26] top-level scope
    @ REPL[127]:1
Some type information was truncated. Use `show(err)` to see complete types.

but it was fixed with this change that Claude suggested.

ignore = ["node_modules/", "docs/node_modules/", "docs/build/", "CLAUDE.md"]

Not sure if this was just a local issue, but I thought I'd make a note of it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the docs directory is deleted on my system, I'll check next week - that should have been propagated to this branch. But not surprised that caused problems

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's helpful that these old tutorials are being deleted.

@danielle-pinto
Copy link
Collaborator

Looks good to me, except I want to confirm if you also get that the error I made a comment about. It is possible it is related to deploying the website locally, so I wanted to check in before requesting a change.

I'm also making note of things that don't need to be fixed now, but should be fixed in another PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants