GithubHelp home page GithubHelp logo

lggruspe / slipbox Goto Github PK

View Code? Open in Web Editor NEW
56.0 3.0 5.0 7.9 MB

A static site generator for Zettelkasten notes

Home Page: https://lggruspe.github.io/slipbox

License: MIT License

Python 68.82% JavaScript 1.06% Makefile 1.20% Lua 14.10% HTML 0.84% CSS 0.39% TeX 0.05% Dockerfile 0.50% TypeScript 13.04%
markdown zettelkasten pandoc cli static-site-generator text-search notes python knowledge-base personal-knowledge-base

slipbox's People

Contributors

dependabot[bot] avatar lggruspe avatar reyman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

slipbox's Issues

Backlinks visible into notes ?

Hi,
I see in code that you compute backlinks for every notes, is it possible to add "shortcode" or anything to include linked notes (not tagged notes) to page during generation ?
Best regards !

Reverse order of notes in home page so that new notes (larger IDs) are shown first

Is your feature request related to a problem? Please describe.
New notes go to the end of the list. When you have a large number of notes, you have to scroll to the bottom to see the new notes.

Describe the solution you'd like
Reverse the order of the list of notes in the home page so that new notes are immediately visible.

`slipbox check`: add data arg to pass data to checkers

Is your feature request related to a problem? Please describe.
Use case: passing data to a checker. For example, enabling checks only on a specific cluster of notes.

Describe the solution you'd like
Here's an example.

slipbox check --enable isolated-note,graph-cycle --data data.json

data.json contains data to pass to the checkers.

{
  "graph-cycle": {
    "tags": ["#foo", "#bar"]
  },
  "isolated-note": {
    "tags": ["#foo", "#bar"]
  }
}

Then the graph-cycle and isolated-note checks will only be applied to the notes with the specified tags.

Describe alternatives you've considered
Passing data via config file is another option.

[slipbox]
# omitted ...

[check]
graph-cycle = true
isolated-note = true

[check.graph-cycle]
tags = "#foo,#bar"

[check.isolated-note]
tags = "#foo,#bar"

Add checker that shows warning when different tags have similar spelling

Is your feature request related to a problem? Please describe.
Suppose you have #language and #languages, it would be better if you only had one of these.

Describe the solution you'd like
New checker: slipbox check --enable tags-with-similar-spelling

Then the output would be a list of tags with similar spelling.

Handling duplicate IDs

New notes with the same note ID as an existing note overwrite the existing note. Should slipbox keep the existing note instead?

Alias for group of checkers

Is your feature request related to a problem? Please describe.
It can be tedious to enable multiple checkers at once. It would be useful to have aliases for groups of checkers that are commonly used together.

all already exists.

Describe the solution you'd like
graph for notes-graph-related checks?
link for link-related warnings?

Describe alternatives you've considered
Maybe add an [alias] section to the config file for defining custom aliases?

Fix notes preprocessor

Notes preprocessor inserts HTML comments into notes, so it only supports Markdown and HTML? It's supposed to work with other formats supported by Pandoc.

Slipbox main list don't display, big number problem with li value ?

Hi,
I'm trying to use slipbox with my ZK timestamp based UUID (ex 20211011140846 for 2021-10-11-...), but i everything goes well on navigation with big number, the main menu (index.html) is blank not displayed.

Here the result of my index.html with no errors after build :

<main>
<section id="home" class="level1" title="Home">
<h1>Slipbox</h1>
<ol class="slipbox-list">
<li value='20211011140846'></li>
<li value='20211011142113'></li>
</ol>
</section>

<section id="20211011140846" class="level1 slipbox-note" data-filename="20211011140846.md" title="GT Notebook">
<h1>GT Notebook</h1>
<p>Réflexion sur l’objet Notebook</p>
<ul>
<li><a href="20211011142113">Notebook &amp; Constructivisme</a> Notebook &amp; Constructivisme</li>
</ul>
</section>
<section id="20211011142113" class="level1 slipbox-note" data-filename="20211011142113.md" title="Notebook &amp; Constructivisme">
<h1>Notebook &amp; Constructivisme</h1>
...

The number appear then disapear, probably linked to this 404 :

Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
127.0.0.1 - - [11/Oct/2021 18:49:46] "GET /public/ HTTP/1.1" 200 -
127.0.0.1 - - [11/Oct/2021 18:49:47] code 404, message File not found
127.0.0.1 - - [11/Oct/2021 18:49:47] "GET /usr/share/javascript/mathjax/tex-mml-chtml.js HTTP/1.1" 404 -
127.0.0.1 - - [11/Oct/2021 18:49:47] "GET /public/app.js HTTP/1.1" 304 -
127.0.0.1 - - [11/Oct/2021 18:49:47] "GET /public/graph/data.json HTTP/1.1" 304 -

Switch to multi-page HTML output?

Why?

  • slipbox build generates HTML every time it's run. It might run into problems with extremely large notes.
  • Large pages take a while to load; the js waits for the entire DOM to load first.

Issues:

  • Some features rely on the output being single page. Ex: text search works by running fuse.js on the DOM.
  • Where to save HTML pages?

Graph in `#ref-` pages

Describe the bug
When you go to a tag page (e.g. /#foo) and look at the notes graph, it shows a graph of the notes in the #foo cluster.
But when you go to a page in a reference page (e.g. /#ref-John2020) and look at the notes graph, it shows the graph of all the notes in the slipbox.

Expected behavior
The notes graph should only show notes that cite the reference.

Desktop (please complete the following information):

  • 0.19.11 and below

Timestamps vs. hash?

Are timestamps reliable enough for looking for modified files? Maybe file hashes should be used instead?

Interactive init

slipbox init should configure notes directory interactively if no options are specified.

Ex: This should be interactive:

python -m slipbox init

but not this:

python -m slipbox init --document_options '-o index.html -s'

Allow use of pandoc filters

Is your feature request related to a problem? Please describe.
There's currently no way to use slipbox with custom pandoc filters.

Describe the solution you'd like

Allow passing filters via CLI args or config file:

slipbox build --filters './filters/foo.lua:./filters/bar:./filters/baz.lua'

Or with config file:

[slipbox]
# omitted ...

[pandoc-options]
filters = filters/foo.lua:filters/bar:filters/baz.lua

# or:

[pandoc-filters]
filters/foo.lua = true
filters/bar = true
filters/baz.lua = true

add specific error message for missiing graphviz dependency

Thanks a lot for the beautiful generator for the notes. I think it is really a missing link in the ecosystem - too many editors, to few open free presenatations of notes, in my opinion.

I spotted a problem which prevents me from running slipbox: the dependency check:

Q:\slipbox
λ slipbox
pandoc not found

Q:\slipbox
λ python -c"from shutil import which; print(which('pandoc'))"
C:\Users\epogr\Anaconda3\Scripts\pandoc.EXE

pandoc is available on the system, but fails the check by slipbox, wonder why that happens. Maybe aoid dependecy check at all and allow to fail when called and not found?

check: show warning if there's a note with no ID

Is your feature request related to a problem? Please describe.
When you add a section that doesn't have an ID, slipbox just ignores it.

Describe the solution you'd like
Add no-id check.
The output is a list of files that contain sections without a note ID.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.