Definition Context

The definition context handles content organization, reuse, and inclusion. It’s fundamental to LAMD’s modular approach to content creation.

Key Macros

Content Definition

\ifndef{name}
    Prevents multiple inclusion of content
    Args:
        name: Unique identifier for content block

\define{name}
    Defines a named content block
    Args:
        name: Must match corresponding ifndef

\endif
    Ends a definition block
    No arguments

Content Inclusion

\include{filepath}
    Includes content from another file
    Args:
        filepath: Path to file to include

\input{filename}
    Direct content inclusion
    Args:
        filename: File to input directly

Source Management

\editme
    Adds source file edit link
    No arguments but requires repository configuration

\jekyllinclude{filename}
    Jekyll-specific inclusion
    Args:
        filename: Jekyll include file

Example Usage

% In _ml/includes/neural-networks.md
\ifndef{neuralNetworks}
\define{neuralNetworks}

\editme

\section{Neural Networks}
... content ...

\endif

% In main lecture file
\include{_ml/includes/neural-networks.md}
\include{_ml/includes/backpropagation.md}

Directory Structure

lectures/
  ├── _ml/
  │   └── includes/
  │       ├── neural-networks.md
  │       └── backpropagation.md
  ├── _physics/
  │   └── includes/
  └── _math/
      └── includes/

Best Practices

  1. Use Clear Naming

    • Choose descriptive snippet names

    • Use consistent naming conventions

    • Avoid name collisions

  2. Organization

    • Group related content

    • Maintain clear directory structure

    • Document dependencies

  3. Reusability

    • Keep snippets focused

    • Minimize dependencies

    • Document requirements

  4. Version Control

    • Track all snippet files

    • Maintain change history

    • Document major changes

  5. Documentation

    • Comment complex snippets

    • Provide usage examples

    • Document prerequisites