|
| 1 | + |
| 2 | +# Northeastern University Wireless Club (W1KBN) Intro to Git Workshop |
| 3 | + |
| 4 | +Welcome to the repository for the Northeastern University Wireless Club Intro to Git Workshop. |
| 5 | +This repository contains the slide deck and related materials used for our LaTeX Workshop. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Workshop Slides |
| 10 | + |
| 11 | +A precompiled PDF of the slide deck is available in the [Releases](https://github.com/nu-wireless/git/releases/tag/2025-fall) section for quick viewing. |
| 12 | + |
| 13 | +--- |
| 14 | +## Workshop Instructions |
| 15 | + |
| 16 | +### Using the Demo `index.html` File |
| 17 | + |
| 18 | +We will be providing you with a demo `index.html` file for this workshop. |
| 19 | +The goal is not to teach HTML. |
| 20 | +The goal is to give you a simple file you can edit while learning Git, commit your changes, and, if time allows, publish it using GitHub Pages so you leave with something you can show. |
| 21 | + |
| 22 | +You are not expected to know HTML, design websites, or write code for the page. |
| 23 | +Just look for the `<!-- EDIT HERE -->` comments inside the file and fill in your own information. |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +## What you will do with `index.html` |
| 28 | + |
| 29 | +1. Download the demo HTML file from the Releases section or clone the repository containing it. |
| 30 | + |
| 31 | +2. Edit only the sections marked with `<!-- EDIT HERE -->`. |
| 32 | + |
| 33 | + * Replace placeholder text such as your name, major, interests, or links. |
| 34 | + * Remove the “MODIFY AS NEEDED” pill once you customize your skill tags. |
| 35 | + |
| 36 | +3. Use Git commands to track your changes: |
| 37 | + |
| 38 | + ```bash |
| 39 | + git add index.html |
| 40 | + git commit -m "personalize my webpage" |
| 41 | + git push |
| 42 | + ``` |
| 43 | + |
| 44 | + We will walk through these steps during the workshop. |
| 45 | + |
| 46 | +4. If time permits, we will also publish your page using GitHub Pages so you have a live link that you can share. |
| 47 | + |
| 48 | +--- |
| 49 | + |
| 50 | +## Hosting Your Page on GitHub Pages (if time allows) |
| 51 | + |
| 52 | +There are two simple options. We will guide you through both during the workshop. |
| 53 | + |
| 54 | +### Option 1: The simplest method |
| 55 | + |
| 56 | +Create a repository named `yourusername.github.io`. |
| 57 | + |
| 58 | +1. Create a new public repository named exactly: |
| 59 | + |
| 60 | + ``` |
| 61 | + yourusername.github.io |
| 62 | + ``` |
| 63 | +2. Add `index.html` to the root of the repository. |
| 64 | +3. Commit and push. |
| 65 | + |
| 66 | +Your site will then be available at: |
| 67 | + |
| 68 | +``` |
| 69 | +https://yourusername.github.io |
| 70 | +``` |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +### Option 2: Any repository name |
| 75 | + |
| 76 | +1. Use any repository name you prefer. |
| 77 | +2. Add `index.html` to the root of the repository. |
| 78 | +3. Go to: |
| 79 | + Settings > Pages |
| 80 | +4. Under "Build and deployment", select: |
| 81 | + |
| 82 | + * Source: Deploy from a branch |
| 83 | + * Branch: main |
| 84 | + * Folder: root or docs |
| 85 | + |
| 86 | +GitHub will generate a link to your site after it builds. |
| 87 | +This usually takes about one minute. |
| 88 | + |
| 89 | +--- |
| 90 | + |
| 91 | +## What you should walk away with |
| 92 | + |
| 93 | +By the end of the workshop, you should have: |
| 94 | + |
| 95 | +* Used real Git commands on a real file |
| 96 | +* Learned how to push changes to GitHub |
| 97 | +* Optionally published a personal webpage |
| 98 | +* Created something small but polished that you can show others |
| 99 | +* Gained a working understanding of Git fundamentals |
| 100 | + |
| 101 | +The focus is Git, not HTML. |
| 102 | +The HTML file is simply a hands-on way to practice and leave with something you can be proud of. |
| 103 | + |
| 104 | +--- |
| 105 | +## Compiling the Slides Yourself |
| 106 | + |
| 107 | +### Intended Audience |
| 108 | + |
| 109 | +This repository is primarily maintained by the Wireless Club Workshop Team. |
| 110 | + |
| 111 | +The public can view the precompiled slide deck, but local compilation is primarily intended for officers. Successful compilation requires invoking the `--shell-escape` flag during build, as the source uses it to execute a Git command that retrieves the current commit hash for the footer. |
| 112 | + |
| 113 | +To compile successfully, you must have a local clone of the repository that includes the `.git` directory. The build process depends on this metadata to parse the Git commit head through the `\iexec` command. |
| 114 | + |
| 115 | +If you only download `main.tex` or a ZIP archive from GitHub, the `.git` directory will be missing and the version hash in the footer will not render correctly. In that case, you can still compile the slides by creating your own repository or removing the versioning command from the footer. |
| 116 | + |
| 117 | +Officers with repository access can clone and compile directly. External users would need to fork or create their own repository to do the same. |
| 118 | + |
| 119 | +--- |
| 120 | + |
| 121 | +### Requirements |
| 122 | + |
| 123 | +To compile the slide deck locally, make sure you have: |
| 124 | + |
| 125 | +* A LaTeX distribution such as TeX Live, MiKTeX, or MacTeX |
| 126 | +* The `minted` package |
| 127 | + (requires Python and Pygments; compile with the `--shell-escape` flag) |
| 128 | +* A LaTeX editor such as VS Code with the |
| 129 | + [LaTeX Workshop extension](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop), TeXstudio, or TeXShop |
| 130 | + |
| 131 | +--- |
| 132 | + |
| 133 | +### Why Local Compilation Is Required |
| 134 | + |
| 135 | +This presentation cannot be built online (such as on Overleaf) because it needs the `--shell-escape` flag, which allows LaTeX to execute external commands. |
| 136 | +To my knolwedge, Overleaf does not support user projects that invoke shell commands during compilation. |
| 137 | + |
| 138 | +The `--shell-escape` flag is needed because of the following command defined in the source: |
| 139 | + |
| 140 | +```latex |
| 141 | +\usepackage{iexec} |
| 142 | +\newcommand{\gitAbbrevHash}{\iexec{git rev-parse --short HEAD}} |
| 143 | +``` |
| 144 | + |
| 145 | +The `iexec` package runs the system command `git rev-parse --short HEAD` to automatically insert the current commit hash into the footer. |
| 146 | +This requires both Git and a repository clone with its `.git` directory intact. |
| 147 | +If you download only `main.tex` without the `.git` folder, the command will not return anything, and the “Version” field in the footer will be blank. |
| 148 | + |
| 149 | +--- |
| 150 | + |
| 151 | +### How to Compile |
| 152 | + |
| 153 | +1. Clone the repository |
| 154 | + |
| 155 | +2. Compile using `pdflatex` (or any compiler) with the shell escape flag |
| 156 | + |
| 157 | + ```bash |
| 158 | + pdflatex --shell-escape main.tex |
| 159 | + ``` |
| 160 | + |
| 161 | + If you are using VS Code with LaTeX Workshop, make sure the `--shell-escape` flag is included in your build recipe. |
| 162 | + |
| 163 | + I personally have only ever compiled this slide deck with pdflatex, so I cannot speak for lualatex or any otehr compilers. |
| 164 | + |
| 165 | +--- |
| 166 | + |
| 167 | +## Repository Structure |
| 168 | + |
| 169 | +``` |
| 170 | +. |
| 171 | +├── assets/ # Assets used in the slide deck |
| 172 | +│ ├── branching.png |
| 173 | +│ ├── git-logo.png |
| 174 | +│ ├── git-snapshot.png |
| 175 | +│ └── xkcd-git-comic.png |
| 176 | +├── demo/ |
| 177 | +│ └── index.html # Demo HTML file for workshop participants |
| 178 | +├── README.md # This README file |
| 179 | +└── main.tex # Main Beamer slide deck source file |
| 180 | +``` |
| 181 | + |
| 182 | +--- |
| 183 | + |
| 184 | +## Troubleshooting |
| 185 | + |
| 186 | +* **Blank version field in footer:** You are compiling outside a Git repository or missing the `.git` directory. You either need to be an officer with push access or create your own Git repo. |
| 187 | +* **Error's mentioning shell escape** Re-run compilation with the `--shell-escape` flag. |
| 188 | + |
| 189 | +--- |
| 190 | + |
| 191 | +## Questions |
| 192 | + |
| 193 | +If you have any questions or feedback, please reach out: |
| 194 | +* Contributor's Email: [elarbi.m@northeastern.edu](mailto:elarbi.m@northeastern.edu) |
| 195 | +* Workshop Email: [workshops@nuwireless.org](mailto:workshops@nuwireless.org) |
| 196 | +* Club Website: [https://nuwireless.org](https://nuwireless.org) |
| 197 | + |
| 198 | +--- |
| 199 | + |
| 200 | +## License |
| 201 | + |
| 202 | +This project is licensed under the |
| 203 | +[**Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License**](https://creativecommons.org/licenses/by-nc-sa/4.0/). <img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""> <img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt=""> <img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/nc.svg?ref=chooser-v1" alt=""> <img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" alt=""> |
0 commit comments