Conversation
| <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> |
There was a problem hiding this comment.
Should this be Franklin?
There was a problem hiding this comment.
There was a problem hiding this comment.
Gotcha -- there is Franklin and Xranklin. :)
There was a problem hiding this comment.
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.
|
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. |
|
You have to manually add https://github.com/tlienart/Xranklin.jl because it's not registered, instantiate, then |
| mintoclevel = 2 | ||
| base_url_prefix = "BioTutorials" | ||
|
|
||
| ignore = ["node_modules/", "CLAUDE.md"] |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
It's helpful that these old tutorials are being deleted.
|
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.
|
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 ownindex.mdfile so that we can add new tutorial series later.