Showing posts with label md. Show all posts
Showing posts with label md. Show all posts

20 January 2026

How to convert a PDF file into a Markdown file or HTML file?

To convert a PDF into a Markdown file using the Python-based tool called Marker on Ubuntu, you need to set up the environment, install the
marker-pdf package, and then use the command-line interface. 
Prerequisites
Before installing Marker, ensure your Ubuntu system meets the following prerequisites:
  • Python: Version 3.10 or higher is required.
  • PyTorch: Marker needs PyTorch to run, as it relies on deep learning models.
  • System Libraries: You may need additional system libraries for advanced features like OCR with ocrmypdf or tesseract. 
Step-by-Step Guide
  1. Open your terminal on Ubuntu.
  2. Install system dependencies (optional, but recommended for full functionality, including OCR):
    bash
    # Install required apt packages
    sudo apt-get update
    sudo apt-get install -y build-essential libssl-dev libffi-dev python3-dev
    # Install tesseract and ghostscript related dependencies
    sudo apt-get install -y libleptonica-dev libtesseract-dev pkg-config
    sudo apt-get install -y ocrmypdf ghostscript
    
  3. Create a virtual environment to avoid conflicts with other Python projects (recommended):
    bash
    python3 -m venv marker_env
    source marker_env/bin/activate
    
  4. Install PyTorch by following the instructions on the official PyTorch website for your specific system configuration (CPU or GPU). A typical CPU-only installation command might look like:
    bash
    pip install torch torchvision torchaudio
    
  5. Install Marker using pip. You can install the basic PDF package or the full version for other document types:
    bash
    # For PDF conversion only
    pip install marker-pdf
    
    # For full functionality (PDFs, images, etc.)
    # pip install 'marker-pdf[full]'
    
  6. Convert a PDF file to Markdown using the command line tool marker_single.

    $ marker_single /path/to/file.pdf  

    --output_format [markdown|json|html|chunks]: Specify the format for the output results.
    --output_dir PATH: Directory where output files will be saved. Defaults to the value specified in settings.OUTPUT_DIR.

    https://github.com/datalab-to/marker

01 December 2025

How to automatically create 'Table of Contents' of a markdown text file in vim?

To use the Vim global command for lines containing only "===" or "---", the pattern needs to match the entire line content exactly.
Here is how to construct the pattern:
Code
:g/^\(===\|---\)/-1p
Explanation of the pattern:
  • ^: This anchor matches the beginning of the line. It ensures that the pattern must start at the very beginning of the line.
  • \(...\): This creates a capturing group for alternation.
  • ===: This matches the literal string "===".
  • \|: This is the OR operator within a regular expression. It allows matching either the pattern before it or the pattern after it.
  • ---: This matches the literal string "---".
  • \): This closes the capturing group.
  • -1 : Print the line above the '===' line (or '---' line)
  • p : Print

01 November 2025

cssUniversal.html

<style>
    body {
        margin: 0;
        background-color: rgba(0, 0, 0, 0.09);
        color: rgba(0, 0, 0, 0.6);
        font-family: sans-serif;
    }

    div.container {
        display: flex;
        justify-content: center;
        min-height: 100vh;
        padding: 1rem;
    }

    div.card {
        background-color: rgba(255, 255, 255, 1);
        max-width: 585px;
        width: 100%;
        box-shadow:
            0 4px 8px 0 rgba(0, 0, 0, 0.2),
            0 6px 20px 0 rgba(0, 0, 0, 0.19);
        padding: 1rem;
        border-radius: 4px;
    }

    h1,
    h2,
    h3 {
        margin: 1.5rem 0 0.75rem 0;
    }

    div.card {
        padding-bottom: 3rem;
    }

    .contact {
        text-align: center;
    }

    table {
        font-family: Arial, Helvetica, sans-serif;
        border-collapse: collapse;
        width: 100%;
    }
    
    td, th {
        border: 1px solid #ddd;
        padding: 8px;
    }
    
    tr:nth-child(even){background-color: #f2f2f2;}
    
    tr:hover {background-color: #ddd;}
    
    th {
        padding-top: 12px;
        padding-bottom: 12px;
        text-align: left;
        background-color: #04AA6D;
        color: white;
    }

    @media print {
        body {
            background: white !important;
        }

        .container {
            display: block;
            min-height: auto;
            padding: 0;
            margin: 0;
        }

        .card {
            box-shadow: none !important;
            border: none;
            background: white !important;
            max-width: 100%;
            padding: 1in;
        }

        body, p, li, h1, h2, h3 {
            color: black; !important;
            font-family: "Arial", sans-serif;
        }

        nav, footer, .no-print {
            display: none !important;
        }

        a {
            color: black;
            text-decoration: none;
        }
    }
</style>

<body>
    <div class="container">
        <div class="card">
            <div class="contact">...</div>
            ...
        </div>
    </div>
</body>

08 September 2025