ProductPromotion
Logo

Clojure

made by https://0x3d.site

GitHub - clj-commons/marginalia: Ultra-lightweight literate programming for clojure inspired by docco
Ultra-lightweight literate programming for clojure inspired by docco - clj-commons/marginalia
Visit Site

GitHub - clj-commons/marginalia: Ultra-lightweight literate programming for clojure inspired by docco

GitHub - clj-commons/marginalia: Ultra-lightweight literate programming for clojure inspired by docco

Marginalia 0.9.2

Clojars Project

Marginalia has a new home

marginalia

Ultra-lightweight literate programming[1] for Clojure and ClojureScript inspired by docco

Marginalia is a source code documentation tool that parses Clojure and ClojureScript code and outputs a side-by-side source view with appropriate comments and docstrings aligned.

To get a quick look at what the Marginalia output looks like, visit the official site.

View the release notes for this version of Marginalia

Usage

Currently Marginalia can be used in a number of ways as described below.

Leiningen

https://github.com/clj-commons/lein-marginalia

To use Marginalia with Leiningen add the following code to the project's project.clj file:

With Leiningen 1.x, add [lein-marginalia "0.9.2"] to your project.clj's :dev-dependencies argument of the defproject function, then run lein deps.

With Leiningen 2.x, add [[lein-marginalia "0.9.2"]] to the :plugins entry in either your project.clj file or your :user profile.

See the lein-marginalia page for more details.

Once installed, you can generate your complete source documentation with the command:

lein marg <options> <files>

deps.edn

Add marginalia/marginalia {:mvn/version "0.9.2"} as a dep. To use it from the command line, do something like this:

{:aliases
  {:marginalia
   {:extra-deps {marginalia/marginalia {:mvn/version "0.9.2"}}
    :main-opts  ["-m" "marginalia.main" "-n" "YourProjectName"
                 "src" "test"]}}}

And invoke it with clojure -M:marginalia. Without the alias, you could use clojure -M -m marginalia.main.

Invocation

Marginalia accepts options as described below:

Flag Default Description
-d --dir ./docs Directory into which the documentation will be written
-f --file uberdoc.html File into which the documentation will be written
-n --name (from project.clj) Project name
-v --version (from project.clj) Project version
-D --desc (from project.clj) Project description
-a --deps (from project.clj) Project dependencies in the form <group1>:<artifact1>:<version1>;<group2>...
-c --css (from project.clj) Additional css resources <resource1>;<resource2>;...
-j --js (from project.clj) Additional javascript resources <jsfile1>;<jsfile2>;...
-m --multi disabled Generate each namespace documentation as a separate file
-e --exclude (from project.clj) Exclude source file(s) from the document generation process <file1>;<file2>;...
-l --leiningen Generate the documentation for a Leiningen project file
-L --lift-in-line-comments disabled Lift ;; inline comments to the top of the enclosing form.
-X --exclude-lifted-comments disabled If inline comments are being lifted, then also exclude them from the source code display

Options can also be added to .marginalia/config.edn (a map with keys taken from the second column of the table).

Maven

The zi plugin supports Marginalia.

    <plugin>
      <groupId>org.cloudhoist.plugin</groupId>
      <artifactId>zi</artifactId>
      <version>0.5.0</version>
      <configuration>
        <marginaliaTargetDirectory>autodoc/marginalia</marginaliaTargetDirectory>
      </configuration>
    </plugin>

And the following to the project's settings.xml file.

    <pluginGroups>
      <pluginGroup>org.cloudhoist.plugin</pluginGroup>
    </pluginGroups>

    <profiles>
      <profile>
        <id>clojure-dev</id>
        <pluginRepositories>
          <pluginRepository>
            <id>sonatype-snapshots</id>
            <url>http://oss.sonatype.org/content/repositories/releases</url>
          </pluginRepository>
        </pluginRepositories>
      </profile>
    </profiles>

    <activeProfiles>
      <activeProfile>clojure-dev</activeProfile>
    </activeProfiles>

Contributors and thanks

I would like to thank Zachary Kim for taking a pile of incoherent code and making it something worth using. Marginalia would be nothing without his hard work and vision.

I would also like to thank Justin Balthrop and Brenton Ashworth for their support and code contributions.

Marginalia is currently maintained by Tim Macdonald.

Notes

[1] While the phrase ultra-lightweight literate programming is used to describe Marginalia, it is in no way a tool for classical literate programming. That is, Marginalia is a linear documentation generator allowing no out-of-order reassembly of source.

Marginalia is...

sorted by first commit

If I've missed your name then please ping me.

License

Copyright (C) 2010-2024 Sean Corfield, Gary Deer, Fogus and contributors.

Distributed under the Eclipse Public License, the same as Clojure.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory