This repo contains the code for the next minor (and, once properly tested, major) version of Franklin.jl. The code has basically been re-written from scratch, and your help is needed to uncover bugs and problems.
Most of what's offered by Franklin is also offered by Xranklin (apart from what's listed in this issue which we should make as precise as possible).
Link to the new docs (under active construction, note that the search won't work, and I'm also aware that the nav does not work well on mobile phone).
Assumptions:
- you are familiar with Franklin, and already have a website repo that works,
- you're using GitHub and GitHub deployment (if not, it's also great, but you'll be more on your own for now),
- you're using Julia 1.6+
- your editor uses LF (lines end with
\n, this is only a concern for you if you're on Windows but if you use a modern editor, it should be the default or easy to set)
Here's a suggested workflow:
- duplicate an existing Franklin-repo and give me collaborator access to that duplicated repo (to speed up debugging),
- clone the repo locally, and add
Xranklinto your environment withPkg.add(url="https://github.com/tlienart/Xranklin.jl", rev="main"); cdto the repo and dousing Xranklin; serve(debug=true), this will generate a lot of output,- if you have errors, check the migration points below to see if the error can be quickly fixed, if not, open an issue
- indicate your OS, Julia version, link to the repo and to the commit that failed if not the latest
- indicate the patch version of Xranklin,
- copy paste the error and previous few lines in the issue,
- assuming things work locally, test the deployment
- make sure you adjust
prepathinconfig.md - create or change the
.github/workflows/deploy.ymlto the script below - check if it deploys successfully (check in the repo settings that
Pagesconsumegh-pages)
- make sure you adjust
- thoughts, feedback, open an issue
- thanks a lot!!
Click here to expand the github deploy script
name: Build and Deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v3
- name: Cache
uses: actions/cache@v2
with:
path: |
__cache
~/.julia
key: ${{ runner.os }}-franklin-cache-${{ github.sha }}
restore-keys: ${{ runner.os }}-franklin-cache-
# Julia
- name: Install Julia
uses: julia-actions/setup-julia@v1
with:
version: 1.7
# Website build
- run: julia -e '
using Pkg; Pkg.add(url="https://github.com/tlienart/Xranklin.jl", rev="main");
using Xranklin; build();'
# Deployment and caching
- run: touch __site/.nojekyll
- name: Deploy ๐
uses: JamesIves/github-pages-deploy-action@releases/v4
with:
BRANCH: gh-pages
FOLDER: __siteLink to the new docs, the docs are being built so expect rough edges but if you find things that can be added or explained better, please open issues. Don't worry too much about layout issues for now.
Changes:
- page variable definitions, move from
@def x = ...to+++ ... +++blocks (see docs),@defwill still work but will not allow multi-line assignments, generally+++...+++are preferred now @delayis removed (it's not required anymore)lxfunsnow take arguments ashfuns(a list of parameters corresponding to the braces) see this exampleenvfunsnow take arguments differently, see this exampleDatesis not available by default, you have to explicitly addusing Datesin yourutils.jlor in your+++...+++blocks in order to be able to call things likeDate(2022,2,1)
This has not yet been migrated and so you shouldn't expect it to work (see also this issue)
- RSS generation
- sitemap generation
- robots generation
- slug
- lunr
It helps to use ignore = ... in your config.md to avoid trying to build your full site
at once which will be very helpful in gradually debugging things. For instance you may have
something like
ignore = ["posts/", "about/", "foo/bar.md"]
to indicate that the directories posts/ and about/ as well as the file foo/bar.md should be ignored.
Now that there's a __cache folder generated alongside the __site folder, add it to your
.gitignore file so it doesn't get pushed.
So it will look something like this:
__site/
__cache/
.DS_Store # if you're on macos
lx_funnow take args ashfunssolx_foo(p::Vector{String})@defdo not accept multiline assignments anymore, generally prefer+++...+++blocks- hard assumption of LF (i.e. end of lines are
\nand not\r\n) (LF Assumption)
Notes
- (LF Assumption) this could be relaxed, not sure how many people would have an issue;
also for it to make sense would need to test on a windows box.
To relax, update
FranklinParserto have a token for\r\n, and update things with occurrences of\n(including theprocess_line_returnfunction). Potentially having an editor with\r\nwill not make things fail (since we'll capture the\n) but it's not tested.
- hyperrefs
- booktabs (for tables)
- csquotes (for blockquotes)
brew install stork-search/stork-tap/stork
# brew info stork
JS lib:
<script src="https://files.stork-search.net/releases/v1.6.0/stork.js"></script>