|
| 1 | +--- |
| 2 | +title: Documentation Development |
| 3 | +nav_order: 9 |
| 4 | +permalink: /Documentation/Development |
| 5 | +--- |
| 6 | + |
| 7 | +# Documentation Development |
| 8 | +{: .no_toc } |
| 9 | + |
| 10 | +This chapter covers the consumption of the documentation, e.g. in an IDE, as well as the development process of the content itself. |
| 11 | + |
| 12 | +* TOC goes here |
| 13 | +{:toc} |
| 14 | +## Permanent Links |
| 15 | + |
| 16 | +The stable, or machine-accessible part of the documentation tree is rooted on the `/tB/` prefix. The URLs with this prefix, as well as the internal links (e.g. [`docs.twinbasic.com/tB/Modules/Math#round`](../tB/Modules/Math#round)), are stable. |
| 17 | + |
| 18 | +### /tB/Core/\<Statement\> |
| 19 | + |
| 20 | +- [AppActivate](../tB/Core/AppActivate) |
| 21 | +- [Beep](../tB/Core/Beep) |
| 22 | +- [Call](../tB/Core/Call) |
| 23 | +- [ChDir](../tB/Core/ChDir) |
| 24 | +- [ChDrive](../tB/Core/ChDrive) |
| 25 | +- [Class](../tB/Core/Class) |
| 26 | +- [Close](../tB/Core/Close) |
| 27 | +- [CoClass](../tB/Core/CoClass) |
| 28 | +- [Const](../tB/Core/Const) |
| 29 | +- [Continue](../tB/Core/Continue) |
| 30 | +- [Date](../tB/Core/Date) |
| 31 | +- [Declare](../tB/Core/Declare) |
| 32 | +- [Deftype](../tB/Core/Deftype) |
| 33 | +- [DeleteSetting](../tB/Core/DeleteSetting) |
| 34 | +- [Dim](../tB/Core/Dim) |
| 35 | +- [Do-Loop](../tB/Core/Do-Loop) |
| 36 | +- [End](../tB/Core/End) |
| 37 | +- [Enum](../tB/Core/Enum) |
| 38 | +- [Erase](../tB/Core/Erase) |
| 39 | +- [Error](../tB/Core/Error) |
| 40 | +- [Event](../tB/Core/Event) |
| 41 | +- [Exit](../tB/Core/Exit) |
| 42 | +- [FileCopy](../tB/Core/FileCopy) |
| 43 | +- [For-Next](/tB/Core/For-Next) |
| 44 | +- [Function](../tB/Core/Function) |
| 45 | +- [Get](../tB/Core/Get) |
| 46 | +- [GetSetting](../tB/Core/GetSetting) |
| 47 | +- [GoSub-Return](../tB/Core/GoSub-Return) |
| 48 | +- [GoTo](../tB/Core/GoTo) |
| 49 | +- [If-Then-Else](../tB/Core/If-Then-Else) |
| 50 | +- [Implements](../tB/Core/Implements) |
| 51 | +- [Input](../tB/Core/Input) |
| 52 | +- [Interface](../tB/Core/Interface) |
| 53 | +- [Is](../tB/Core/Is) |
| 54 | +- [Kill](../tB/Core/Kill) |
| 55 | +- [LBound](../tB/Core/LBound) |
| 56 | +- [Let](../tB/Core/Let) |
| 57 | +- [Line-Input](../tB/Core/Line-Input) |
| 58 | +- [Load](../tB/Core/Load) |
| 59 | +- [Lock](../tB/Core/Lock) |
| 60 | +- [LSet](../tB/Core/LSet) |
| 61 | +- [Mid-equals](../tB/Core/Mid-equals) for `Mid(...) = ...` |
| 62 | +- [MidB-equals](../tB/Core/MidB-equals) for `MidB(...) = ...` |
| 63 | +- [MkDir](../tB/Core/MkDir) |
| 64 | +- [Module](../tB/Core/Module) |
| 65 | +- [Name](../tB/Core/Name) |
| 66 | +- [New](../tB/Core/New) |
| 67 | +- [Option](../tB/Core/Option) |
| 68 | +- [On-Error](../tB/Core/On-Error) |
| 69 | +- [On-GoSub](../tB/Core/On-GoSub) |
| 70 | +- [On-GoTo](../tB/Core/On-GoTo) |
| 71 | +- [Open](../tB/Core/Open) |
| 72 | +- [ParamArray](../tB/Core/ParamArray) |
| 73 | +- [Print](../tB/Core/Print) |
| 74 | +- [Private](../tB/Core/Private) |
| 75 | +- [Property](../tB/Core/Property) |
| 76 | +- [Public](../tB/Core/Public) |
| 77 | +- [Put](../tB/Core/Put) |
| 78 | +- [RaiseEvent](../tB/Core/RaiseEvent) |
| 79 | +- [ReDim](../tB/Core/ReDim) |
| 80 | +- [Reset](../tB/Core/Reset) |
| 81 | +- [Resume](../tB/Core/Resume) |
| 82 | +- [RmDir](../tB/Core/RmDir) |
| 83 | +- [RSet](../tB/Core/RSet) |
| 84 | +- [SavePicture](../tB/Core/SavePicture) |
| 85 | +- [SaveSetting](../tB/Core/SaveSetting) |
| 86 | +- [Seek](../tB/Core/Seek) |
| 87 | +- [Select-Case](../tB/Core/Select-Case) |
| 88 | +- [SendKeys](../tB/Core/SendKeys) |
| 89 | +- [Set](../tB/Core/Set) |
| 90 | +- [SetAttr](../tB/Core/SetAttr) |
| 91 | +- [Static](../tB/Core/Static) |
| 92 | +- [Sub](../tB/Core/Sub) |
| 93 | +- [Stop](../tB/Core/Stop) |
| 94 | +- [Time](../tB/Core/Time) |
| 95 | +- [Type](../tB/Core/Type) |
| 96 | +- [Unload](../tB/Core/Unload) |
| 97 | +- [Unlock](../tB/Core/Unlock) |
| 98 | +- [While-Wend](../tB/Core/While-Wend) |
| 99 | +- [Width](../tB/Core/Width) |
| 100 | +- [With](../tB/Core/With) |
| 101 | +- [Write](../tB/Core/Write) |
| 102 | + |
| 103 | +### /tB/Modules/\<ModuleName\> |
| 104 | + |
| 105 | +These are modules within VBA and VBRUN: |
| 106 | + |
| 107 | +- VBA |
| 108 | + - [Collection](../tB/Modules/Collection) |
| 109 | + - [Compilation](../tB/Modules/Compilation) |
| 110 | + - [Constants](../tB/Modules/Constants) |
| 111 | + - [Conversion](../tB/Modules/Conversion) |
| 112 | + - [DateTime](../tB/Modules/DateTime) |
| 113 | + - [ErrObject](../tB/Modules/ErrObject) |
| 114 | + - [ExpressionService](../tB/Modules/ExpressionService) |
| 115 | + - [FileSystem](../tB/Modules/FileSystem) |
| 116 | + - [Financial](../tB/Modules/Financial) |
| 117 | + - [Information](../tB/Modules/Information) |
| 118 | + - [Interaction](../tB/Modules/Interaction) |
| 119 | + - [Math](../tB/Modules/Math) |
| 120 | + - [Strings](../tB/Modules/Strings) |
| 121 | + - [TextEncodingConstants](../tB/Modules/TextEncodingConstants) |
| 122 | + - Internal [_HiddenModule](../tB/Modules/_HiddenModule) |
| 123 | +- VBRUN |
| 124 | + - [AmbientProperties](../tB/Modules/AmbientProperties) |
| 125 | + - [AsyncProperty](../tB/Modules/AsyncProperty) |
| 126 | + - [Constants](../tB/Modules/Constants) |
| 127 | + - [ContainedControls](../tB/Modules/ContainedControls) |
| 128 | + - [DataMembers](../tB/Modules/DataMembers) |
| 129 | + - [DataObject](../tB/Modules/DataObject) |
| 130 | + - [ErrorCallstack](../tB/Modules/ErrorCallstack) |
| 131 | + - [ErrorContext](../tB/Modules/ErrorContext) |
| 132 | + - [ErrorStackFrame](../tB/Modules/ErrorStackFrame) |
| 133 | + - [Hyperlink](../tB/Modules/Hyperlink) |
| 134 | + - [ParentControls](../tB/Modules/ParentControls) |
| 135 | + - [PropertyBag](../tB/Modules/PropertyBag) |
| 136 | + |
| 137 | +## Documentation Development Environment |
| 138 | + |
| 139 | +The documentation is built (renderd to html) using [Jekyll][jekyllrb]. |
| 140 | + |
| 141 | +1. Ensure that Jekyll and Ruby are installed. |
| 142 | + |
| 143 | + - [Installing Jekyll via RubyInstaller on Windows](https://jekyllrb.com/docs/installation/windows/#installation-via-rubyinstaller) |
| 144 | + |
| 145 | + Also ensure that Jekyll is in the PATH. To adjust the path on Windows, press <kbd>⊞ R</kbd>, type `SystemPropertiesAdvanced ` <kbd> Enter</kbd>, and click the **Environment Variables...** button.  |
| 146 | + |
| 147 | +2. Fork [https://github.com/twinbasic/documentation][docs-repo] to your own GitHub account if you plan on making any changes or for convenience. This can be skipped if you just want to build the documentation without changes. |
| 148 | + |
| 149 | +3. Clone either your fork in #2, or the [documentation repository itself][docs-repo]. |
| 150 | + |
| 151 | +4. **Go to the `/docs` folder in the cloned working tree.** Building, serving, and other documentation operations are all done in this folder, *not* in the repository root. |
| 152 | + |
| 153 | +To build the documentation, i.e. render it from `.md` files to the `_site` folder: |
| 154 | + |
| 155 | + bundle exec jekyll build |
| 156 | + |
| 157 | +To build and serve the documentation from http://localhost:4000: |
| 158 | + |
| 159 | + bundle exec jekyll serve |
| 160 | + |
| 161 | +or, on Windows only: |
| 162 | + |
| 163 | + serve.bat |
| 164 | + |
| 165 | +The documentation server detects changes in the filesystem and automatically regenerates the html files as needed. The server does *not* follow changes in `_config.yml`. If you change the configuration, the server has to be restarted. Interrupt the server by pressing **^C** repeatedly. |
| 166 | + |
| 167 | +To check that none of the internal links in the documentation are broken: |
| 168 | + |
| 169 | + bundle exec htmlproofer ./_site --disable-external --no-enforce-https |
| 170 | + |
| 171 | +or, on Windows only |
| 172 | + |
| 173 | + check.bat |
| 174 | + |
| 175 | + |
| 176 | + |
| 177 | +[docs-repo]: https://github.com/twinbasic/documentation |
| 178 | +[jekyllrb]: https://jekyllrb.com/ |
0 commit comments